diff -u linux-riscv-6.5.0/Documentation/admin-guide/kernel-parameters.txt linux-riscv-6.5.0/Documentation/admin-guide/kernel-parameters.txt --- linux-riscv-6.5.0/Documentation/admin-guide/kernel-parameters.txt +++ linux-riscv-6.5.0/Documentation/admin-guide/kernel-parameters.txt @@ -2942,6 +2942,10 @@ locktorture.torture_type= [KNL] Specify the locking implementation to test. + locktorture.writer_fifo= [KNL] + Run the write-side locktorture kthreads at + sched_set_fifo() real-time priority. + locktorture.verbose= [KNL] Enable additional printk() statements. @@ -5791,6 +5795,13 @@ This feature may be more efficiently disabled using the csdlock_debug- kernel parameter. + smp.panic_on_ipistall= [KNL] + If a csd_lock_timeout extends for more than + the specified number of milliseconds, panic the + system. By default, let CSD-lock acquisition + take as long as they take. Specifying 300,000 + for this value provides a 5-minute timeout. + smsc-ircc2.nopnp [HW] Don't use PNP to discover SMC devices smsc-ircc2.ircc_cfg= [HW] Device configuration I/O port smsc-ircc2.ircc_sir= [HW] SIR base I/O port diff -u linux-riscv-6.5.0/Makefile linux-riscv-6.5.0/Makefile --- linux-riscv-6.5.0/Makefile +++ linux-riscv-6.5.0/Makefile @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 5 -SUBLEVEL = 8 +SUBLEVEL = 13 EXTRAVERSION = NAME = Hurr durr I'ma ninja sloth @@ -1600,7 +1600,7 @@ # Directories & files removed with 'make clean' CLEAN_FILES += include/ksym vmlinux.symvers modules-only.symvers \ modules.builtin modules.builtin.modinfo modules.nsdeps \ - compile_commands.json .thinlto-cache rust/test rust/doc \ + compile_commands.json .thinlto-cache rust/test \ rust-project.json .vmlinux.objs .vmlinux.export.c # Directories & files removed with 'make mrproper' diff -u linux-riscv-6.5.0/Ubuntu.md linux-riscv-6.5.0/Ubuntu.md --- linux-riscv-6.5.0/Ubuntu.md +++ linux-riscv-6.5.0/Ubuntu.md @@ -1,5 +1,5 @@ Name: linux-riscv -Version: 6.5.0 +Version: 6.5.10 Series: 23.10 (mantic) Description: This is the source code for the Ubuntu linux kernel for the 23.10 series. This diff -u linux-riscv-6.5.0/arch/arm/boot/dts/ti/omap/motorola-mapphone-common.dtsi linux-riscv-6.5.0/arch/arm/boot/dts/ti/omap/motorola-mapphone-common.dtsi --- linux-riscv-6.5.0/arch/arm/boot/dts/ti/omap/motorola-mapphone-common.dtsi +++ linux-riscv-6.5.0/arch/arm/boot/dts/ti/omap/motorola-mapphone-common.dtsi @@ -640,6 +640,7 @@ &uart3 { interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH &omap4_pmx_core 0x17c>; + overrun-throttle-ms = <500>; }; &uart4 { diff -u linux-riscv-6.5.0/arch/arm64/Kconfig linux-riscv-6.5.0/arch/arm64/Kconfig --- linux-riscv-6.5.0/arch/arm64/Kconfig +++ linux-riscv-6.5.0/arch/arm64/Kconfig @@ -1369,6 +1369,8 @@ config CPU_BIG_ENDIAN bool "Build big-endian kernel" depends on !LD_IS_LLD || LLD_VERSION >= 130000 + # https://github.com/llvm/llvm-project/commit/1379b150991f70a5782e9a143c2ba5308da1161c + depends on AS_IS_GNU || AS_VERSION >= 150000 help Say Y if you plan on running a kernel with a big-endian userspace. diff -u linux-riscv-6.5.0/arch/arm64/boot/dts/freescale/imx8mp-debix-model-a.dts linux-riscv-6.5.0/arch/arm64/boot/dts/freescale/imx8mp-debix-model-a.dts --- linux-riscv-6.5.0/arch/arm64/boot/dts/freescale/imx8mp-debix-model-a.dts +++ linux-riscv-6.5.0/arch/arm64/boot/dts/freescale/imx8mp-debix-model-a.dts @@ -285,7 +285,6 @@ usb_hub_2_x: hub@1 { compatible = "usbbda,5411"; reg = <1>; - reset-gpios = <&gpio4 25 GPIO_ACTIVE_LOW>; vdd-supply = <®_usb_hub>; peer-hub = <&usb_hub_3_x>; }; @@ -294,7 +293,6 @@ usb_hub_3_x: hub@2 { compatible = "usbbda,411"; reg = <2>; - reset-gpios = <&gpio4 25 GPIO_ACTIVE_LOW>; vdd-supply = <®_usb_hub>; peer-hub = <&usb_hub_2_x>; }; @@ -444,7 +442,6 @@ pinctrl_usb1: usb1grp { fsl,pins = < MX8MP_IOMUXC_GPIO1_IO14__USB2_OTG_PWR 0x10 - MX8MP_IOMUXC_SAI2_TXC__GPIO4_IO25 0x19 >; }; diff -u linux-riscv-6.5.0/arch/arm64/boot/dts/freescale/imx8mp.dtsi linux-riscv-6.5.0/arch/arm64/boot/dts/freescale/imx8mp.dtsi --- linux-riscv-6.5.0/arch/arm64/boot/dts/freescale/imx8mp.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/freescale/imx8mp.dtsi @@ -2034,6 +2034,7 @@ phys = <&usb3_phy0>, <&usb3_phy0>; phy-names = "usb2-phy", "usb3-phy"; snps,gfladj-refclk-lpm-sel-quirk; + snps,parkmode-disable-ss-quirk; }; }; @@ -2076,6 +2077,7 @@ phys = <&usb3_phy1>, <&usb3_phy1>; phy-names = "usb2-phy", "usb3-phy"; snps,gfladj-refclk-lpm-sel-quirk; + snps,parkmode-disable-ss-quirk; }; }; diff -u linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt7986a.dtsi linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt7986a.dtsi --- linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt7986a.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt7986a.dtsi @@ -374,6 +374,10 @@ reg = <0 0x11230000 0 0x1000>, <0 0x11c20000 0 0x1000>; interrupts = ; + assigned-clocks = <&topckgen CLK_TOP_EMMC_416M_SEL>, + <&topckgen CLK_TOP_EMMC_250M_SEL>; + assigned-clock-parents = <&apmixedsys CLK_APMIXED_MPLL>, + <&topckgen CLK_TOP_NET1PLL_D5_D2>; clocks = <&topckgen CLK_TOP_EMMC_416M_SEL>, <&infracfg CLK_INFRA_MSDC_HCK_CK>, <&infracfg CLK_INFRA_MSDC_CK>, @@ -610,22 +614,34 @@ thermal-sensors = <&thermal 0>; trips { + cpu_trip_crit: crit { + temperature = <125000>; + hysteresis = <2000>; + type = "critical"; + }; + + cpu_trip_hot: hot { + temperature = <120000>; + hysteresis = <2000>; + type = "hot"; + }; + cpu_trip_active_high: active-high { temperature = <115000>; hysteresis = <2000>; type = "active"; }; - cpu_trip_active_low: active-low { + cpu_trip_active_med: active-med { temperature = <85000>; hysteresis = <2000>; type = "active"; }; - cpu_trip_passive: passive { - temperature = <40000>; + cpu_trip_active_low: active-low { + temperature = <60000>; hysteresis = <2000>; - type = "passive"; + type = "active"; }; }; }; diff -u linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt8195.dtsi linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt8195.dtsi --- linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt8195.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt8195.dtsi @@ -627,6 +627,8 @@ power-domain@MT8195_POWER_DOMAIN_VENC_CORE1 { reg = ; + clocks = <&vencsys_core1 CLK_VENC_CORE1_LARB>; + clock-names = "venc1-larb"; mediatek,infracfg = <&infracfg_ao>; #power-domain-cells = <0>; }; @@ -689,6 +691,8 @@ power-domain@MT8195_POWER_DOMAIN_VENC { reg = ; + clocks = <&vencsys CLK_VENC_LARB>; + clock-names = "venc0-larb"; mediatek,infracfg = <&infracfg_ao>; #power-domain-cells = <0>; }; @@ -2665,7 +2669,7 @@ reg = <0 0x1b010000 0 0x1000>; mediatek,larb-id = <20>; mediatek,smi = <&smi_common_vpp>; - clocks = <&vencsys_core1 CLK_VENC_CORE1_LARB>, + clocks = <&vencsys_core1 CLK_VENC_CORE1_VENC>, <&vencsys_core1 CLK_VENC_CORE1_GALS>, <&vppsys0 CLK_VPP0_GALS_VDO0_VDO1_VENCSYS_CORE1>; clock-names = "apb", "smi", "gals"; @@ -2958,7 +2962,7 @@ clock-names = "merge","merge_async"; power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>; mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0xc000 0x1000>; - mediatek,merge-mute = <1>; + mediatek,merge-mute; resets = <&vdosys1 MT8195_VDOSYS1_SW0_RST_B_MERGE0_DL_ASYNC>; }; @@ -2971,7 +2975,7 @@ clock-names = "merge","merge_async"; power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>; mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0xd000 0x1000>; - mediatek,merge-mute = <1>; + mediatek,merge-mute; resets = <&vdosys1 MT8195_VDOSYS1_SW0_RST_B_MERGE1_DL_ASYNC>; }; @@ -2984,7 +2988,7 @@ clock-names = "merge","merge_async"; power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>; mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0xe000 0x1000>; - mediatek,merge-mute = <1>; + mediatek,merge-mute; resets = <&vdosys1 MT8195_VDOSYS1_SW0_RST_B_MERGE2_DL_ASYNC>; }; @@ -2997,7 +3001,7 @@ clock-names = "merge","merge_async"; power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>; mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0xf000 0x1000>; - mediatek,merge-mute = <1>; + mediatek,merge-mute; resets = <&vdosys1 MT8195_VDOSYS1_SW0_RST_B_MERGE3_DL_ASYNC>; }; @@ -3010,7 +3014,7 @@ clock-names = "merge","merge_async"; power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>; mediatek,gce-client-reg = <&gce0 SUBSYS_1c11XXXX 0x0000 0x1000>; - mediatek,merge-fifo-en = <1>; + mediatek,merge-fifo-en; resets = <&vdosys1 MT8195_VDOSYS1_SW0_RST_B_MERGE4_DL_ASYNC>; }; diff -u linux-riscv-6.5.0/arch/arm64/boot/dts/nvidia/tegra234.dtsi linux-riscv-6.5.0/arch/arm64/boot/dts/nvidia/tegra234.dtsi --- linux-riscv-6.5.0/arch/arm64/boot/dts/nvidia/tegra234.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/nvidia/tegra234.dtsi @@ -43,12 +43,12 @@ , , , - , - , - , - , - , - ; + , + , + , + , + , + ; status = "okay"; }; diff -u linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/apq8016-sbc.dts linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/apq8016-sbc.dts --- linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/apq8016-sbc.dts +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/apq8016-sbc.dts @@ -198,6 +198,9 @@ pd-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>; avdd-supply = <&pm8916_l6>; + a2vdd-supply = <&pm8916_l6>; + dvdd-supply = <&pm8916_l6>; + pvdd-supply = <&pm8916_l6>; v1p2-supply = <&pm8916_l6>; v3p3-supply = <&pm8916_l17>; diff -u linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/apq8096-db820c.dts linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/apq8096-db820c.dts --- linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/apq8096-db820c.dts +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/apq8096-db820c.dts @@ -62,25 +62,23 @@ stdout-path = "serial0:115200n8"; }; - clocks { - divclk4: divclk4 { - compatible = "fixed-clock"; - #clock-cells = <0>; - clock-frequency = <32768>; - clock-output-names = "divclk4"; + div1_mclk: divclk1 { + compatible = "gpio-gate-clock"; + pinctrl-0 = <&audio_mclk>; + pinctrl-names = "default"; + clocks = <&rpmcc RPM_SMD_DIV_CLK1>; + #clock-cells = <0>; + enable-gpios = <&pm8994_gpios 15 0>; + }; - pinctrl-names = "default"; - pinctrl-0 = <&divclk4_pin_a>; - }; + divclk4: divclk4 { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <32768>; + clock-output-names = "divclk4"; - div1_mclk: divclk1 { - compatible = "gpio-gate-clock"; - pinctrl-0 = <&audio_mclk>; - pinctrl-names = "default"; - clocks = <&rpmcc RPM_SMD_DIV_CLK1>; - #clock-cells = <0>; - enable-gpios = <&pm8994_gpios 15 0>; - }; + pinctrl-names = "default"; + pinctrl-0 = <&divclk4_pin_a>; }; gpio-keys { diff -u linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/ipq8074.dtsi linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/ipq8074.dtsi --- linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/ipq8074.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/ipq8074.dtsi @@ -101,7 +101,7 @@ reg = <0x0 0x4ab00000 0x0 0x100000>; no-map; - hwlocks = <&tcsr_mutex 0>; + hwlocks = <&tcsr_mutex 3>; }; memory@4ac00000 { diff -u linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/msm8939.dtsi linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/msm8939.dtsi --- linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/msm8939.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/msm8939.dtsi @@ -1449,7 +1449,7 @@ apps_iommu: iommu@1ef0000 { compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1"; reg = <0x01ef0000 0x3000>; - ranges = <0 0x01e20000 0x40000>; + ranges = <0 0x01e20000 0x20000>; clocks = <&gcc GCC_SMMU_CFG_CLK>, <&gcc GCC_APSS_TCU_CLK>; clock-names = "iface", "bus"; diff -u linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts --- linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts @@ -20,16 +20,14 @@ qcom,pmic-id = <0x20009 0x2000a 0x00 0x00>; qcom,board-id = <31 0>; - clocks { - divclk2_haptics: divclk2 { - compatible = "fixed-clock"; - #clock-cells = <0>; - clock-frequency = <32768>; - clock-output-names = "divclk2"; + divclk2_haptics: divclk2 { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <32768>; + clock-output-names = "divclk2"; - pinctrl-names = "default"; - pinctrl-0 = <&divclk2_pin_a>; - }; + pinctrl-names = "default"; + pinctrl-0 = <&divclk2_pin_a>; }; }; diff -u linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/sc7280.dtsi linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/sc7280.dtsi --- linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/sc7280.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/sc7280.dtsi @@ -649,18 +649,6 @@ }; }; - eud_typec: connector { - compatible = "usb-c-connector"; - - ports { - port@0 { - con_eud: endpoint { - remote-endpoint = <&eud_con>; - }; - }; - }; - }; - memory@80000000 { device_type = "memory"; /* We expect the bootloader to fill in the size */ @@ -869,7 +857,8 @@ clocks = <&rpmhcc RPMH_CXO_CLK>, <&rpmhcc RPMH_CXO_CLK_A>, <&sleep_clk>, <0>, <&pcie1_lane>, - <0>, <0>, <0>, <0>; + <0>, <0>, <0>, + <&usb_1_ssphy>; clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk", "pcie_0_pipe_clk", "pcie_1_pipe_clk", "ufs_phy_rx_symbol_0_clk", "ufs_phy_rx_symbol_1_clk", @@ -3624,6 +3613,8 @@ <0 0x88e2000 0 0x1000>; interrupts-extended = <&pdc 11 IRQ_TYPE_LEVEL_HIGH>; + status = "disabled"; + ports { #address-cells = <1>; #size-cells = <0>; @@ -3634,13 +3625,6 @@ remote-endpoint = <&usb2_role_switch>; }; }; - - port@1 { - reg = <1>; - eud_con: endpoint { - remote-endpoint = <&con_eud>; - }; - }; }; }; @@ -5363,6 +5347,14 @@ reg = <0 0x18591000 0 0x1000>, <0 0x18592000 0 0x1000>, <0 0x18593000 0 0x1000>; + + interrupts = , + , + ; + interrupt-names = "dcvsh-irq-0", + "dcvsh-irq-1", + "dcvsh-irq-2"; + clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GCC_GPLL0>; clock-names = "xo", "alternate"; #freq-domain-cells = <1>; diff -u linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/sm8150.dtsi linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/sm8150.dtsi --- linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/sm8150.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/sm8150.dtsi @@ -1893,8 +1893,12 @@ ranges; clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>, <&gcc GCC_PCIE_0_CFG_AHB_CLK>, + <&gcc GCC_PCIE_0_CLKREF_CLK>, <&gcc GCC_PCIE0_PHY_REFGEN_CLK>; - clock-names = "aux", "cfg_ahb", "refgen"; + clock-names = "aux", + "cfg_ahb", + "ref", + "refgen"; resets = <&gcc GCC_PCIE_0_PHY_BCR>; reset-names = "phy"; @@ -1991,8 +1995,12 @@ ranges; clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>, <&gcc GCC_PCIE_1_CFG_AHB_CLK>, + <&gcc GCC_PCIE_1_CLKREF_CLK>, <&gcc GCC_PCIE1_PHY_REFGEN_CLK>; - clock-names = "aux", "cfg_ahb", "refgen"; + clock-names = "aux", + "cfg_ahb", + "ref", + "refgen"; resets = <&gcc GCC_PCIE_1_PHY_BCR>; reset-names = "phy"; diff -u linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/sm8350.dtsi linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/sm8350.dtsi --- linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/sm8350.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/sm8350.dtsi @@ -2939,7 +2939,7 @@ }; qup_uart18_default: qup-uart18-default-state { - pins = "gpio58", "gpio59"; + pins = "gpio68", "gpio69"; function = "qup18"; drive-strength = <2>; bias-disable; diff -u linux-riscv-6.5.0/arch/arm64/include/asm/cputype.h linux-riscv-6.5.0/arch/arm64/include/asm/cputype.h --- linux-riscv-6.5.0/arch/arm64/include/asm/cputype.h +++ linux-riscv-6.5.0/arch/arm64/include/asm/cputype.h @@ -86,7 +86,8 @@ #define ARM_CPU_PART_NEOVERSE_N2 0xD49 #define ARM_CPU_PART_CORTEX_A78C 0xD4B -#define APM_CPU_PART_POTENZA 0x000 +#define APM_CPU_PART_XGENE 0x000 +#define APM_CPU_VAR_POTENZA 0x00 #define CAVIUM_CPU_PART_THUNDERX 0x0A1 #define CAVIUM_CPU_PART_THUNDERX_81XX 0x0A2 diff -u linux-riscv-6.5.0/arch/arm64/kernel/module-plts.c linux-riscv-6.5.0/arch/arm64/kernel/module-plts.c --- linux-riscv-6.5.0/arch/arm64/kernel/module-plts.c +++ linux-riscv-6.5.0/arch/arm64/kernel/module-plts.c @@ -167,9 +167,6 @@ switch (ELF64_R_TYPE(rela[i].r_info)) { case R_AARCH64_JUMP26: case R_AARCH64_CALL26: - if (!IS_ENABLED(CONFIG_RANDOMIZE_BASE)) - break; - /* * We only have to consider branch targets that resolve * to symbols that are defined in a different section. @@ -269,9 +266,6 @@ { int i = 0, j = numrels - 1; - if (!IS_ENABLED(CONFIG_RANDOMIZE_BASE)) - return 0; - while (i < j) { if (branch_rela_needs_plt(syms, &rela[i], dstidx)) i++; diff -u linux-riscv-6.5.0/arch/mips/kernel/process.c linux-riscv-6.5.0/arch/mips/kernel/process.c --- linux-riscv-6.5.0/arch/mips/kernel/process.c +++ linux-riscv-6.5.0/arch/mips/kernel/process.c @@ -121,6 +121,19 @@ /* Put the stack after the struct pt_regs. */ childksp = (unsigned long) childregs; p->thread.cp0_status = (read_c0_status() & ~(ST0_CU2|ST0_CU1)) | ST0_KERNEL_CUMASK; + + /* + * New tasks lose permission to use the fpu. This accelerates context + * switching for most programs since they don't use the fpu. + */ + clear_tsk_thread_flag(p, TIF_USEDFPU); + clear_tsk_thread_flag(p, TIF_USEDMSA); + clear_tsk_thread_flag(p, TIF_MSA_CTX_LIVE); + +#ifdef CONFIG_MIPS_MT_FPAFF + clear_tsk_thread_flag(p, TIF_FPUBOUND); +#endif /* CONFIG_MIPS_MT_FPAFF */ + if (unlikely(args->fn)) { /* kernel thread */ unsigned long status = p->thread.cp0_status; @@ -149,20 +162,8 @@ p->thread.reg29 = (unsigned long) childregs; p->thread.reg31 = (unsigned long) ret_from_fork; - /* - * New tasks lose permission to use the fpu. This accelerates context - * switching for most programs since they don't use the fpu. - */ childregs->cp0_status &= ~(ST0_CU2|ST0_CU1); - clear_tsk_thread_flag(p, TIF_USEDFPU); - clear_tsk_thread_flag(p, TIF_USEDMSA); - clear_tsk_thread_flag(p, TIF_MSA_CTX_LIVE); - -#ifdef CONFIG_MIPS_MT_FPAFF - clear_tsk_thread_flag(p, TIF_FPUBOUND); -#endif /* CONFIG_MIPS_MT_FPAFF */ - #ifdef CONFIG_MIPS_FP_SUPPORT atomic_set(&p->thread.bd_emu_frame, BD_EMUFRAME_NONE); #endif diff -u linux-riscv-6.5.0/arch/parisc/include/asm/ldcw.h linux-riscv-6.5.0/arch/parisc/include/asm/ldcw.h --- linux-riscv-6.5.0/arch/parisc/include/asm/ldcw.h +++ linux-riscv-6.5.0/arch/parisc/include/asm/ldcw.h @@ -55,7 +55,7 @@ }) #ifdef CONFIG_SMP -# define __lock_aligned __section(".data..lock_aligned") +# define __lock_aligned __section(".data..lock_aligned") __aligned(16) #endif #endif /* __PARISC_LDCW_H */ diff -u linux-riscv-6.5.0/arch/powerpc/kernel/setup-common.c linux-riscv-6.5.0/arch/powerpc/kernel/setup-common.c --- linux-riscv-6.5.0/arch/powerpc/kernel/setup-common.c +++ linux-riscv-6.5.0/arch/powerpc/kernel/setup-common.c @@ -960,6 +960,8 @@ /* Parse memory topology */ mem_topology_setup(); + /* Set max_mapnr before paging_init() */ + set_max_mapnr(max_pfn); /* * Release secondary cpus out of their spinloops at 0x60 now that diff -u linux-riscv-6.5.0/arch/powerpc/kernel/traps.c linux-riscv-6.5.0/arch/powerpc/kernel/traps.c --- linux-riscv-6.5.0/arch/powerpc/kernel/traps.c +++ linux-riscv-6.5.0/arch/powerpc/kernel/traps.c @@ -1164,6 +1164,7 @@ __single_step_exception(regs); } +#ifdef CONFIG_PPC_FPU_REGS static inline int __parse_fpscr(unsigned long fpscr) { int ret = FPE_FLTUNK; @@ -1190,6 +1191,7 @@ return ret; } +#endif static void parse_fpe(struct pt_regs *regs) { diff -u linux-riscv-6.5.0/arch/powerpc/platforms/pseries/lpar.c linux-riscv-6.5.0/arch/powerpc/platforms/pseries/lpar.c --- linux-riscv-6.5.0/arch/powerpc/platforms/pseries/lpar.c +++ linux-riscv-6.5.0/arch/powerpc/platforms/pseries/lpar.c @@ -525,8 +525,10 @@ if (cmd) { rc = init_cpu_associativity(); - if (rc) + if (rc) { + destroy_cpu_associativity(); goto out; + } for_each_possible_cpu(cpu) { disp = per_cpu_ptr(&vcpu_disp_data, cpu); diff -u linux-riscv-6.5.0/arch/riscv/boot/dts/allwinner/sun20i-d1s.dtsi linux-riscv-6.5.0/arch/riscv/boot/dts/allwinner/sun20i-d1s.dtsi --- linux-riscv-6.5.0/arch/riscv/boot/dts/allwinner/sun20i-d1s.dtsi +++ linux-riscv-6.5.0/arch/riscv/boot/dts/allwinner/sun20i-d1s.dtsi @@ -30,7 +30,6 @@ cpu0_intc: interrupt-controller { compatible = "riscv,cpu-intc"; interrupt-controller; - #address-cells = <0>; #interrupt-cells = <1>; }; }; diff -u linux-riscv-6.5.0/arch/riscv/kernel/traps.c linux-riscv-6.5.0/arch/riscv/kernel/traps.c --- linux-riscv-6.5.0/arch/riscv/kernel/traps.c +++ linux-riscv-6.5.0/arch/riscv/kernel/traps.c @@ -408,48 +408,14 @@ #endif /* CONFIG_GENERIC_BUG */ #ifdef CONFIG_VMAP_STACK -/* - * Extra stack space that allows us to provide panic messages when the kernel - * has overflowed its stack. - */ -static DEFINE_PER_CPU(unsigned long [OVERFLOW_STACK_SIZE/sizeof(long)], +DEFINE_PER_CPU(unsigned long [OVERFLOW_STACK_SIZE/sizeof(long)], overflow_stack)__aligned(16); -/* - * A temporary stack for use by handle_kernel_stack_overflow. This is used so - * we can call into C code to get the per-hart overflow stack. Usage of this - * stack must be protected by spin_shadow_stack. - */ -long shadow_stack[SHADOW_OVERFLOW_STACK_SIZE/sizeof(long)] __aligned(16); - -/* - * A pseudo spinlock to protect the shadow stack from being used by multiple - * harts concurrently. This isn't a real spinlock because the lock side must - * be taken without a valid stack and only a single register, it's only taken - * while in the process of panicing anyway so the performance and error - * checking a proper spinlock gives us doesn't matter. - */ -unsigned long spin_shadow_stack; - -asmlinkage unsigned long get_overflow_stack(void) -{ - return (unsigned long)this_cpu_ptr(overflow_stack) + - OVERFLOW_STACK_SIZE; -} asmlinkage void handle_bad_stack(struct pt_regs *regs) { unsigned long tsk_stk = (unsigned long)current->stack; unsigned long ovf_stk = (unsigned long)this_cpu_ptr(overflow_stack); - /* - * We're done with the shadow stack by this point, as we're on the - * overflow stack. Tell any other concurrent overflowing harts that - * they can proceed with panicing by releasing the pseudo-spinlock. - * - * This pairs with an amoswap.aq in handle_kernel_stack_overflow. - */ - smp_store_release(&spin_shadow_stack, 0); - console_verbose(); pr_emerg("Insufficient stack space to handle exception!\n"); diff -u linux-riscv-6.5.0/arch/s390/kernel/ipl.c linux-riscv-6.5.0/arch/s390/kernel/ipl.c --- linux-riscv-6.5.0/arch/s390/kernel/ipl.c +++ linux-riscv-6.5.0/arch/s390/kernel/ipl.c @@ -680,6 +680,7 @@ &ipl_ccw_attr_group_lpar); break; case IPL_TYPE_ECKD: + case IPL_TYPE_ECKD_DUMP: rc = sysfs_create_group(&ipl_kset->kobj, &ipl_eckd_attr_group); break; case IPL_TYPE_FCP: diff -u linux-riscv-6.5.0/arch/x86/include/asm/kvm_host.h linux-riscv-6.5.0/arch/x86/include/asm/kvm_host.h --- linux-riscv-6.5.0/arch/x86/include/asm/kvm_host.h +++ linux-riscv-6.5.0/arch/x86/include/asm/kvm_host.h @@ -1690,6 +1690,7 @@ int (*pi_update_irte)(struct kvm *kvm, unsigned int host_irq, uint32_t guest_irq, bool set); void (*pi_start_assignment)(struct kvm *kvm); + void (*apicv_pre_state_restore)(struct kvm_vcpu *vcpu); void (*apicv_post_state_restore)(struct kvm_vcpu *vcpu); bool (*dy_apicv_has_pending_interrupt)(struct kvm_vcpu *vcpu); diff -u linux-riscv-6.5.0/arch/x86/include/asm/msr-index.h linux-riscv-6.5.0/arch/x86/include/asm/msr-index.h --- linux-riscv-6.5.0/arch/x86/include/asm/msr-index.h +++ linux-riscv-6.5.0/arch/x86/include/asm/msr-index.h @@ -553,6 +553,7 @@ #define MSR_AMD64_CPUID_FN_1 0xc0011004 #define MSR_AMD64_LS_CFG 0xc0011020 #define MSR_AMD64_DC_CFG 0xc0011022 +#define MSR_AMD64_TW_CFG 0xc0011023 #define MSR_AMD64_DE_CFG 0xc0011029 #define MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT 1 diff -u linux-riscv-6.5.0/arch/x86/kernel/amd_nb.c linux-riscv-6.5.0/arch/x86/kernel/amd_nb.c --- linux-riscv-6.5.0/arch/x86/kernel/amd_nb.c +++ linux-riscv-6.5.0/arch/x86/kernel/amd_nb.c @@ -112,6 +112,9 @@ { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_M10H_DF_F4) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_M40H_DF_F4) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_M50H_DF_F4) }, + { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_M60H_DF_F4) }, + { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_M70H_DF_F4) }, + { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_M78H_DF_F4) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CNB17H_F4) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_1AH_M00H_DF_F4) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_MI200_DF_F4) }, diff -u linux-riscv-6.5.0/arch/x86/kernel/cpu/amd.c linux-riscv-6.5.0/arch/x86/kernel/cpu/amd.c --- linux-riscv-6.5.0/arch/x86/kernel/cpu/amd.c +++ linux-riscv-6.5.0/arch/x86/kernel/cpu/amd.c @@ -1315,6 +1315,9 @@ void amd_check_microcode(void) { + if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD) + return; + on_each_cpu(zenbleed_check_cpu, NULL, 1); } diff -u linux-riscv-6.5.0/arch/x86/kernel/cpu/bugs.c linux-riscv-6.5.0/arch/x86/kernel/cpu/bugs.c --- linux-riscv-6.5.0/arch/x86/kernel/cpu/bugs.c +++ linux-riscv-6.5.0/arch/x86/kernel/cpu/bugs.c @@ -2353,6 +2353,8 @@ enum srso_mitigation { SRSO_MITIGATION_NONE, + SRSO_MITIGATION_UCODE_NEEDED, + SRSO_MITIGATION_SAFE_RET_UCODE_NEEDED, SRSO_MITIGATION_MICROCODE, SRSO_MITIGATION_SAFE_RET, SRSO_MITIGATION_IBPB, @@ -2368,11 +2370,13 @@ }; static const char * const srso_strings[] = { - [SRSO_MITIGATION_NONE] = "Vulnerable", - [SRSO_MITIGATION_MICROCODE] = "Mitigation: microcode", - [SRSO_MITIGATION_SAFE_RET] = "Mitigation: safe RET", - [SRSO_MITIGATION_IBPB] = "Mitigation: IBPB", - [SRSO_MITIGATION_IBPB_ON_VMEXIT] = "Mitigation: IBPB on VMEXIT only" + [SRSO_MITIGATION_NONE] = "Vulnerable", + [SRSO_MITIGATION_UCODE_NEEDED] = "Vulnerable: No microcode", + [SRSO_MITIGATION_SAFE_RET_UCODE_NEEDED] = "Vulnerable: Safe RET, no microcode", + [SRSO_MITIGATION_MICROCODE] = "Vulnerable: Microcode, no safe RET", + [SRSO_MITIGATION_SAFE_RET] = "Mitigation: Safe RET", + [SRSO_MITIGATION_IBPB] = "Mitigation: IBPB", + [SRSO_MITIGATION_IBPB_ON_VMEXIT] = "Mitigation: IBPB on VMEXIT only" }; static enum srso_mitigation srso_mitigation __ro_after_init = SRSO_MITIGATION_NONE; @@ -2409,10 +2413,7 @@ if (!boot_cpu_has_bug(X86_BUG_SRSO) || cpu_mitigations_off()) goto pred_cmd; - if (!has_microcode) { - pr_warn("IBPB-extending microcode not applied!\n"); - pr_warn(SRSO_NOTICE); - } else { + if (has_microcode) { /* * Zen1/2 with SMT off aren't vulnerable after the right * IBPB microcode has been applied. @@ -2425,10 +2426,15 @@ if (retbleed_mitigation == RETBLEED_MITIGATION_IBPB) { if (has_microcode) { - pr_err("Retbleed IBPB mitigation enabled, using same for SRSO\n"); srso_mitigation = SRSO_MITIGATION_IBPB; - goto pred_cmd; + goto out; } + } else { + pr_warn("IBPB-extending microcode not applied!\n"); + pr_warn(SRSO_NOTICE); + + /* may be overwritten by SRSO_CMD_SAFE_RET below */ + srso_mitigation = SRSO_MITIGATION_UCODE_NEEDED; } switch (srso_cmd) { @@ -2458,7 +2464,10 @@ setup_force_cpu_cap(X86_FEATURE_SRSO); x86_return_thunk = srso_return_thunk; } - srso_mitigation = SRSO_MITIGATION_SAFE_RET; + if (has_microcode) + srso_mitigation = SRSO_MITIGATION_SAFE_RET; + else + srso_mitigation = SRSO_MITIGATION_SAFE_RET_UCODE_NEEDED; } else { pr_err("WARNING: kernel not compiled with CPU_SRSO.\n"); goto pred_cmd; @@ -2493,10 +2502,11 @@ break; } - pr_info("%s%s\n", srso_strings[srso_mitigation], (has_microcode ? "" : ", no microcode")); +out: + pr_info("%s\n", srso_strings[srso_mitigation]); pred_cmd: - if ((boot_cpu_has(X86_FEATURE_SRSO_NO) || srso_cmd == SRSO_CMD_OFF) && + if ((!boot_cpu_has_bug(X86_BUG_SRSO) || srso_cmd == SRSO_CMD_OFF) && boot_cpu_has(X86_FEATURE_SBPB)) x86_pred_cmd = PRED_CMD_SBPB; } @@ -2704,9 +2714,7 @@ if (boot_cpu_has(X86_FEATURE_SRSO_NO)) return sysfs_emit(buf, "Mitigation: SMT disabled\n"); - return sysfs_emit(buf, "%s%s\n", - srso_strings[srso_mitigation], - boot_cpu_has(X86_FEATURE_IBPB_BRTYPE) ? "" : ", no microcode"); + return sysfs_emit(buf, "%s\n", srso_strings[srso_mitigation]); } static ssize_t gds_show_state(char *buf) diff -u linux-riscv-6.5.0/arch/x86/kernel/sev.c linux-riscv-6.5.0/arch/x86/kernel/sev.c --- linux-riscv-6.5.0/arch/x86/kernel/sev.c +++ linux-riscv-6.5.0/arch/x86/kernel/sev.c @@ -1234,10 +1234,6 @@ if (!cc_platform_has(CC_ATTR_GUEST_STATE_ENCRYPT)) return; - /* First make sure the hypervisor talks a supported protocol. */ - if (!sev_es_negotiate_protocol()) - sev_es_terminate(SEV_TERM_SET_GEN, GHCB_SEV_ES_GEN_REQ); - /* * Check whether the runtime #VC exception handler is active. It uses * the per-CPU GHCB page which is set up by sev_es_init_vc_handling(). @@ -1255,6 +1251,13 @@ } /* + * Make sure the hypervisor talks a supported protocol. + * This gets called only in the BSP boot phase. + */ + if (!sev_es_negotiate_protocol()) + sev_es_terminate(SEV_TERM_SET_GEN, GHCB_SEV_ES_GEN_REQ); + + /* * Clear the boot_ghcb. The first exception comes in before the bss * section is cleared. */ diff -u linux-riscv-6.5.0/arch/x86/kvm/svm/avic.c linux-riscv-6.5.0/arch/x86/kvm/svm/avic.c --- linux-riscv-6.5.0/arch/x86/kvm/svm/avic.c +++ linux-riscv-6.5.0/arch/x86/kvm/svm/avic.c @@ -529,8 +529,11 @@ case AVIC_IPI_FAILURE_INVALID_BACKING_PAGE: WARN_ONCE(1, "Invalid backing page\n"); break; + case AVIC_IPI_FAILURE_INVALID_IPI_VECTOR: + /* Invalid IPI with vector < 16 */ + break; default: - pr_err("Unknown IPI interception\n"); + vcpu_unimpl(vcpu, "Unknown avic incomplete IPI interception\n"); } return 1; diff -u linux-riscv-6.5.0/arch/x86/kvm/svm/nested.c linux-riscv-6.5.0/arch/x86/kvm/svm/nested.c --- linux-riscv-6.5.0/arch/x86/kvm/svm/nested.c +++ linux-riscv-6.5.0/arch/x86/kvm/svm/nested.c @@ -1243,6 +1243,9 @@ nested_svm_uninit_mmu_context(vcpu); vmcb_mark_all_dirty(svm->vmcb); + + if (kvm_apicv_activated(vcpu->kvm)) + kvm_make_request(KVM_REQ_APICV_UPDATE, vcpu); } kvm_clear_request(KVM_REQ_GET_NESTED_STATE_PAGES, vcpu); diff -u linux-riscv-6.5.0/arch/x86/kvm/svm/svm.c linux-riscv-6.5.0/arch/x86/kvm/svm/svm.c --- linux-riscv-6.5.0/arch/x86/kvm/svm/svm.c +++ linux-riscv-6.5.0/arch/x86/kvm/svm/svm.c @@ -1809,15 +1809,17 @@ bool old_paging = is_paging(vcpu); #ifdef CONFIG_X86_64 - if (vcpu->arch.efer & EFER_LME && !vcpu->arch.guest_state_protected) { + if (vcpu->arch.efer & EFER_LME) { if (!is_paging(vcpu) && (cr0 & X86_CR0_PG)) { vcpu->arch.efer |= EFER_LMA; - svm->vmcb->save.efer |= EFER_LMA | EFER_LME; + if (!vcpu->arch.guest_state_protected) + svm->vmcb->save.efer |= EFER_LMA | EFER_LME; } if (is_paging(vcpu) && !(cr0 & X86_CR0_PG)) { vcpu->arch.efer &= ~EFER_LMA; - svm->vmcb->save.efer &= ~(EFER_LMA | EFER_LME); + if (!vcpu->arch.guest_state_protected) + svm->vmcb->save.efer &= ~(EFER_LMA | EFER_LME); } } #endif diff -u linux-riscv-6.5.0/arch/x86/kvm/vmx/vmx.c linux-riscv-6.5.0/arch/x86/kvm/vmx/vmx.c --- linux-riscv-6.5.0/arch/x86/kvm/vmx/vmx.c +++ linux-riscv-6.5.0/arch/x86/kvm/vmx/vmx.c @@ -6909,7 +6909,7 @@ vmcs_write64(EOI_EXIT_BITMAP3, eoi_exit_bitmap[3]); } -static void vmx_apicv_post_state_restore(struct kvm_vcpu *vcpu) +static void vmx_apicv_pre_state_restore(struct kvm_vcpu *vcpu) { struct vcpu_vmx *vmx = to_vmx(vcpu); @@ -8275,7 +8275,7 @@ .set_apic_access_page_addr = vmx_set_apic_access_page_addr, .refresh_apicv_exec_ctrl = vmx_refresh_apicv_exec_ctrl, .load_eoi_exitmap = vmx_load_eoi_exitmap, - .apicv_post_state_restore = vmx_apicv_post_state_restore, + .apicv_pre_state_restore = vmx_apicv_pre_state_restore, .required_apicv_inhibits = VMX_REQUIRED_APICV_INHIBITS, .hwapic_irr_update = vmx_hwapic_irr_update, .hwapic_isr_update = vmx_hwapic_isr_update, diff -u linux-riscv-6.5.0/arch/x86/kvm/x86.c linux-riscv-6.5.0/arch/x86/kvm/x86.c --- linux-riscv-6.5.0/arch/x86/kvm/x86.c +++ linux-riscv-6.5.0/arch/x86/kvm/x86.c @@ -3643,6 +3643,7 @@ case MSR_AMD64_PATCH_LOADER: case MSR_AMD64_BU_CFG2: case MSR_AMD64_DC_CFG: + case MSR_AMD64_TW_CFG: case MSR_F15H_EX_CFG: break; @@ -4067,6 +4068,7 @@ case MSR_AMD64_BU_CFG2: case MSR_IA32_PERF_CTL: case MSR_AMD64_DC_CFG: + case MSR_AMD64_TW_CFG: case MSR_F15H_EX_CFG: /* * Intel Sandy Bridge CPUs must support the RAPL (running average power @@ -5385,26 +5387,37 @@ return 0; } -static void kvm_vcpu_ioctl_x86_get_xsave(struct kvm_vcpu *vcpu, - struct kvm_xsave *guest_xsave) -{ - if (fpstate_is_confidential(&vcpu->arch.guest_fpu)) - return; - - fpu_copy_guest_fpstate_to_uabi(&vcpu->arch.guest_fpu, - guest_xsave->region, - sizeof(guest_xsave->region), - vcpu->arch.pkru); -} static void kvm_vcpu_ioctl_x86_get_xsave2(struct kvm_vcpu *vcpu, u8 *state, unsigned int size) { + /* + * Only copy state for features that are enabled for the guest. The + * state itself isn't problematic, but setting bits in the header for + * features that are supported in *this* host but not exposed to the + * guest can result in KVM_SET_XSAVE failing when live migrating to a + * compatible host without the features that are NOT exposed to the + * guest. + * + * FP+SSE can always be saved/restored via KVM_{G,S}ET_XSAVE, even if + * XSAVE/XCRO are not exposed to the guest, and even if XSAVE isn't + * supported by the host. + */ + u64 supported_xcr0 = vcpu->arch.guest_supported_xcr0 | + XFEATURE_MASK_FPSSE; + if (fpstate_is_confidential(&vcpu->arch.guest_fpu)) return; - fpu_copy_guest_fpstate_to_uabi(&vcpu->arch.guest_fpu, - state, size, vcpu->arch.pkru); + fpu_copy_guest_fpstate_to_uabi(&vcpu->arch.guest_fpu, state, size, + supported_xcr0, vcpu->arch.pkru); +} + +static void kvm_vcpu_ioctl_x86_get_xsave(struct kvm_vcpu *vcpu, + struct kvm_xsave *guest_xsave) +{ + return kvm_vcpu_ioctl_x86_get_xsave2(vcpu, (void *)guest_xsave->region, + sizeof(guest_xsave->region)); } static int kvm_vcpu_ioctl_x86_set_xsave(struct kvm_vcpu *vcpu, diff -u linux-riscv-6.5.0/arch/x86/mm/mem_encrypt_amd.c linux-riscv-6.5.0/arch/x86/mm/mem_encrypt_amd.c --- linux-riscv-6.5.0/arch/x86/mm/mem_encrypt_amd.c +++ linux-riscv-6.5.0/arch/x86/mm/mem_encrypt_amd.c @@ -34,6 +34,7 @@ #include #include #include +#include #include "mm_internal.h" @@ -504,6 +505,16 @@ x86_platform.guest.enc_cache_flush_required = amd_enc_cache_flush_required; /* + * The VMM is capable of injecting interrupt 0x80 and triggering the + * compatibility syscall path. + * + * By default, the 32-bit emulation is disabled in order to ensure + * the safety of the VM. + */ + if (sev_status & MSR_AMD64_SEV_ENABLED) + ia32_disable(); + + /* * AMD-SEV-ES intercepts the RDMSR to read the X2APIC ID in the * parallel bringup low level code. That raises #VC which cannot be * handled there. diff -u linux-riscv-6.5.0/block/blk-mq.c linux-riscv-6.5.0/block/blk-mq.c --- linux-riscv-6.5.0/block/blk-mq.c +++ linux-riscv-6.5.0/block/blk-mq.c @@ -2874,11 +2874,8 @@ }; struct request *rq; - if (unlikely(bio_queue_enter(bio))) - return NULL; - if (blk_mq_attempt_bio_merge(q, bio, nsegs)) - goto queue_exit; + return NULL; rq_qos_throttle(q, bio); @@ -2894,35 +2891,23 @@ rq_qos_cleanup(q, bio); if (bio->bi_opf & REQ_NOWAIT) bio_wouldblock_error(bio); -queue_exit: - blk_queue_exit(q); return NULL; } -static inline struct request *blk_mq_get_cached_request(struct request_queue *q, - struct blk_plug *plug, struct bio **bio, unsigned int nsegs) +/* return true if this @rq can be used for @bio */ +static bool blk_mq_can_use_cached_rq(struct request *rq, struct blk_plug *plug, + struct bio *bio) { - struct request *rq; - enum hctx_type type, hctx_type; - - if (!plug) - return NULL; - rq = rq_list_peek(&plug->cached_rq); - if (!rq || rq->q != q) - return NULL; + enum hctx_type type = blk_mq_get_hctx_type(bio->bi_opf); + enum hctx_type hctx_type = rq->mq_hctx->type; - if (blk_mq_attempt_bio_merge(q, *bio, nsegs)) { - *bio = NULL; - return NULL; - } + WARN_ON_ONCE(rq_list_peek(&plug->cached_rq) != rq); - type = blk_mq_get_hctx_type((*bio)->bi_opf); - hctx_type = rq->mq_hctx->type; if (type != hctx_type && !(type == HCTX_TYPE_READ && hctx_type == HCTX_TYPE_DEFAULT)) - return NULL; - if (op_is_flush(rq->cmd_flags) != op_is_flush((*bio)->bi_opf)) - return NULL; + return false; + if (op_is_flush(rq->cmd_flags) != op_is_flush(bio->bi_opf)) + return false; /* * If any qos ->throttle() end up blocking, we will have flushed the @@ -2930,12 +2915,12 @@ * before we throttle. */ plug->cached_rq = rq_list_next(rq); - rq_qos_throttle(q, *bio); + rq_qos_throttle(rq->q, bio); blk_mq_rq_time_init(rq, 0); - rq->cmd_flags = (*bio)->bi_opf; + rq->cmd_flags = bio->bi_opf; INIT_LIST_HEAD(&rq->queuelist); - return rq; + return true; } static void bio_set_ioprio(struct bio *bio) @@ -2965,7 +2950,7 @@ struct blk_plug *plug = blk_mq_plug(bio); const int is_sync = op_is_sync(bio->bi_opf); struct blk_mq_hw_ctx *hctx; - struct request *rq; + struct request *rq = NULL; unsigned int nr_segs = 1; blk_status_t ret; @@ -2976,20 +2961,36 @@ return; } - if (!bio_integrity_prep(bio)) - return; - bio_set_ioprio(bio); - rq = blk_mq_get_cached_request(q, plug, &bio, nr_segs); - if (!rq) { - if (!bio) + if (plug) { + rq = rq_list_peek(&plug->cached_rq); + if (rq && rq->q != q) + rq = NULL; + } + if (rq) { + if (!bio_integrity_prep(bio)) return; - rq = blk_mq_get_new_requests(q, plug, bio, nr_segs); - if (unlikely(!rq)) + if (blk_mq_attempt_bio_merge(q, bio, nr_segs)) return; + if (blk_mq_can_use_cached_rq(rq, plug, bio)) + goto done; + percpu_ref_get(&q->q_usage_counter); + } else { + if (unlikely(bio_queue_enter(bio))) + return; + if (!bio_integrity_prep(bio)) + goto fail; + } + + rq = blk_mq_get_new_requests(q, plug, bio, nr_segs); + if (unlikely(!rq)) { +fail: + blk_queue_exit(q); + return; } +done: trace_block_getrq(bio); rq_qos_track(q, rq, bio); diff -u linux-riscv-6.5.0/block/blk-throttle.c linux-riscv-6.5.0/block/blk-throttle.c --- linux-riscv-6.5.0/block/blk-throttle.c +++ linux-riscv-6.5.0/block/blk-throttle.c @@ -723,6 +723,12 @@ static u64 calculate_bytes_allowed(u64 bps_limit, unsigned long jiffy_elapsed) { + /* + * Can result be wider than 64 bits? + * We check against 62, not 64, due to ilog2 truncation. + */ + if (ilog2(bps_limit) + ilog2(jiffy_elapsed) - ilog2(HZ) > 62) + return U64_MAX; return mul_u64_u64_div_u64(bps_limit, (u64)jiffy_elapsed, (u64)HZ); } reverted: --- linux-riscv-6.5.0/block/ioctl.c +++ linux-riscv-6.5.0.orig/block/ioctl.c @@ -20,8 +20,6 @@ struct blkpg_partition p; long long start, length; - if (disk->flags & GENHD_FL_NO_PART) - return -EINVAL; if (!capable(CAP_SYS_ADMIN)) return -EACCES; if (copy_from_user(&p, upart, sizeof(struct blkpg_partition))) diff -u linux-riscv-6.5.0/crypto/asymmetric_keys/x509_public_key.c linux-riscv-6.5.0/crypto/asymmetric_keys/x509_public_key.c --- linux-riscv-6.5.0/crypto/asymmetric_keys/x509_public_key.c +++ linux-riscv-6.5.0/crypto/asymmetric_keys/x509_public_key.c @@ -262,15 +262,9 @@ /* * Module stuff */ -extern int __init certs_selftest(void); static int __init x509_key_init(void) { - int ret; - - ret = register_asymmetric_key_parser(&x509_key_parser); - if (ret < 0) - return ret; - return fips_signature_selftest(); + return register_asymmetric_key_parser(&x509_key_parser); } static void __exit x509_key_exit(void) diff -u linux-riscv-6.5.0/debian.master/abi/abiname linux-riscv-6.5.0/debian.master/abi/abiname --- linux-riscv-6.5.0/debian.master/abi/abiname +++ linux-riscv-6.5.0/debian.master/abi/abiname @@ -1 +1 @@ -16 +17 diff -u linux-riscv-6.5.0/debian.master/abi/s390x/generic.modules.builtin linux-riscv-6.5.0/debian.master/abi/s390x/generic.modules.builtin --- linux-riscv-6.5.0/debian.master/abi/s390x/generic.modules.builtin +++ linux-riscv-6.5.0/debian.master/abi/s390x/generic.modules.builtin @@ -127,6 +127,7 @@ tun unix utf8data +uvdevice vfat virtio virtio_balloon diff -u linux-riscv-6.5.0/debian.master/abi/version linux-riscv-6.5.0/debian.master/abi/version --- linux-riscv-6.5.0/debian.master/abi/version +++ linux-riscv-6.5.0/debian.master/abi/version @@ -1 +1 @@ -6.5.0-16.16 +6.5.0-17.17 diff -u linux-riscv-6.5.0/debian.master/changelog linux-riscv-6.5.0/debian.master/changelog --- linux-riscv-6.5.0/debian.master/changelog +++ linux-riscv-6.5.0/debian.master/changelog @@ -1,3 +1,2091 @@ +linux (6.5.0-25.25) mantic; urgency=medium + + * mantic/linux: 6.5.0-25.25 -proposed tracker (LP: #2052615) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/2024.02.05) + + * [SRU][22.04.04]: mpi3mr driver update (LP: #2045233) + - scsi: mpi3mr: Invoke soft reset upon TSU or event ack time out + - scsi: mpi3mr: Update MPI Headers to version 3.00.28 + - scsi: mpi3mr: Add support for more than 1MB I/O + - scsi: mpi3mr: WRITE SAME implementation + - scsi: mpi3mr: Enhance handling of devices removed after controller reset + - scsi: mpi3mr: Update driver version to 8.5.0.0.0 + - scsi: mpi3mr: Split off bus_reset function from host_reset + - scsi: mpi3mr: Add support for SAS5116 PCI IDs + - scsi: mpi3mr: Add PCI checks where SAS5116 diverges from SAS4116 + - scsi: mpi3mr: Increase maximum number of PHYs to 64 from 32 + - scsi: mpi3mr: Add support for status reply descriptor + - scsi: mpi3mr: driver version upgrade to 8.5.0.0.50 + - scsi: mpi3mr: Refresh sdev queue depth after controller reset + - scsi: mpi3mr: Clean up block devices post controller reset + - scsi: mpi3mr: Block PEL Enable Command on Controller Reset and Unrecoverable + State + - scsi: mpi3mr: Fetch correct device dev handle for status reply descriptor + - scsi: mpi3mr: Support for preallocation of SGL BSG data buffers part-1 + - scsi: mpi3mr: Support for preallocation of SGL BSG data buffers part-2 + - scsi: mpi3mr: Support for preallocation of SGL BSG data buffers part-3 + - scsi: mpi3mr: Update driver version to 8.5.1.0.0 + + * The display becomes frozen after some time when a HDMI device is connected. + (LP: #2049027) + - drm/i915/dmc: Don't enable any pipe DMC events + + * Audio balancing setting doesn't work with the cirrus codec (LP: #2051050) + - ALSA: hda/cs8409: Suppress vmaster control for Dolphin models + + * partproke is broken on empty loopback device (LP: #2049689) + - block: Move checking GENHD_FL_NO_PART to bdev_add_partition() + + * CVE-2023-51780 + - atm: Fix Use-After-Free in do_vcc_ioctl + + * CVE-2023-6915 + - ida: Fix crash in ida_free when the bitmap is empty + + * Update Ubuntu.md (LP: #2051176) + - [Packaging] update Ubuntu.md + + * test_021_aslr_dapper_libs from ubuntu_qrt_kernel_security failed on K-5.19 / + J-OEM-6.1 / J-6.2 AMD64 (LP: #1983357) + - [Config]: set ARCH_MMAP_RND_{COMPAT_, }BITS to the maximum + + * Intel E810-XXV - NETDEV WATCHDOG: (ice): transmit queue timed out + (LP: #2036239) + - ice: Add driver support for firmware changes for LAG + - ice: alter feature support check for SRIOV and LAG + + * Mantic update: upstream stable patchset 2024-01-29 (LP: #2051584) + - Upstream stable to v6.1.67, v6.6.6 + - vdpa/mlx5: preserve CVQ vringh index + - hrtimers: Push pending hrtimers away from outgoing CPU earlier + - i2c: designware: Fix corrupted memory seen in the ISR + - netfilter: ipset: fix race condition between swap/destroy and kernel side + add/del/test + - zstd: Fix array-index-out-of-bounds UBSAN warning + - tg3: Move the [rt]x_dropped counters to tg3_napi + - tg3: Increment tx_dropped in tg3_tso_bug() + - kconfig: fix memory leak from range properties + - drm/amdgpu: correct chunk_ptr to a pointer to chunk. + - x86: Introduce ia32_enabled() + - x86/coco: Disable 32-bit emulation by default on TDX and SEV + - x86/entry: Convert INT 0x80 emulation to IDTENTRY + - x86/entry: Do not allow external 0x80 interrupts + - x86/tdx: Allow 32-bit emulation by default + - dt: dt-extract-compatibles: Handle cfile arguments in generator function + - dt: dt-extract-compatibles: Don't follow symlinks when walking tree + - platform/x86: asus-wmi: Move i8042 filter install to shared asus-wmi code + - of: dynamic: Fix of_reconfig_get_state_change() return value documentation + - platform/x86: wmi: Skip blocks with zero instances + - ipv6: fix potential NULL deref in fib6_add() + - octeontx2-pf: Add missing mutex lock in otx2_get_pauseparam + - octeontx2-af: Check return value of nix_get_nixlf before using nixlf + - hv_netvsc: rndis_filter needs to select NLS + - r8152: Rename RTL8152_UNPLUG to RTL8152_INACCESSIBLE + - r8152: Add RTL8152_INACCESSIBLE checks to more loops + - r8152: Add RTL8152_INACCESSIBLE to r8156b_wait_loading_flash() + - r8152: Add RTL8152_INACCESSIBLE to r8153_pre_firmware_1() + - r8152: Add RTL8152_INACCESSIBLE to r8153_aldps_en() + - mlxbf-bootctl: correctly identify secure boot with development keys + - platform/mellanox: Add null pointer checks for devm_kasprintf() + - platform/mellanox: Check devm_hwmon_device_register_with_groups() return + value + - arcnet: restoring support for multiple Sohard Arcnet cards + - octeontx2-pf: consider both Rx and Tx packet stats for adaptive interrupt + coalescing + - net: stmmac: fix FPE events losing + - xsk: Skip polling event check for unbound socket + - octeontx2-af: fix a use-after-free in rvu_npa_register_reporters + - i40e: Fix unexpected MFS warning message + - iavf: validate tx_coalesce_usecs even if rx_coalesce_usecs is zero + - tcp: fix mid stream window clamp. + - ionic: fix snprintf format length warning + - ionic: Fix dim work handling in split interrupt mode + - ipv4: ip_gre: Avoid skb_pull() failure in ipgre_xmit() + - net: atlantic: Fix NULL dereference of skb pointer in + - net: hns: fix wrong head when modify the tx feature when sending packets + - net: hns: fix fake link up on xge port + - octeontx2-af: Adjust Tx credits when MCS external bypass is disabled + - octeontx2-af: Fix mcs sa cam entries size + - octeontx2-af: Fix mcs stats register address + - octeontx2-af: Add missing mcs flr handler call + - octeontx2-af: Update Tx link register range + - dt-bindings: interrupt-controller: Allow #power-domain-cells + - netfilter: nf_tables: fix 'exist' matching on bigendian arches + - netfilter: nf_tables: validate family when identifying table via handle + - netfilter: xt_owner: Fix for unsafe access of sk->sk_socket + - tcp: do not accept ACK of bytes we never sent + - bpf: sockmap, updating the sg structure should also update curr + - psample: Require 'CAP_NET_ADMIN' when joining "packets" group + - drop_monitor: Require 'CAP_SYS_ADMIN' when joining "events" group + - mm/damon/sysfs: eliminate potential uninitialized variable warning + - tee: optee: Fix supplicant based device enumeration + - RDMA/hns: Fix unnecessary err return when using invalid congest control + algorithm + - RDMA/irdma: Do not modify to SQD on error + - RDMA/irdma: Add wait for suspend on SQD + - arm64: dts: rockchip: Expand reg size of vdec node for RK3328 + - arm64: dts: rockchip: Expand reg size of vdec node for RK3399 + - ASoC: fsl_sai: Fix no frame sync clock issue on i.MX8MP + - RDMA/rtrs-srv: Do not unconditionally enable irq + - RDMA/rtrs-clt: Start hb after path_up + - RDMA/rtrs-srv: Check return values while processing info request + - RDMA/rtrs-srv: Free srv_mr iu only when always_invalidate is true + - RDMA/rtrs-srv: Destroy path files after making sure no IOs in-flight + - RDMA/rtrs-clt: Fix the max_send_wr setting + - RDMA/rtrs-clt: Remove the warnings for req in_use check + - RDMA/bnxt_re: Correct module description string + - RDMA/irdma: Refactor error handling in create CQP + - RDMA/irdma: Fix UAF in irdma_sc_ccq_get_cqe_info() + - hwmon: (acpi_power_meter) Fix 4.29 MW bug + - ASoC: codecs: lpass-tx-macro: set active_decimator correct default value + - hwmon: (nzxt-kraken2) Fix error handling path in kraken2_probe() + - ASoC: wm_adsp: fix memleak in wm_adsp_buffer_populate + - RDMA/core: Fix umem iterator when PAGE_SIZE is greater then HCA pgsz + - RDMA/irdma: Avoid free the non-cqp_request scratch + - drm/bridge: tc358768: select CONFIG_VIDEOMODE_HELPERS + - arm64: dts: imx8mp: imx8mq: Add parkmode-disable-ss-quirk on DWC3 + - ARM: dts: imx6ul-pico: Describe the Ethernet PHY clock + - tracing: Fix a warning when allocating buffered events fails + - scsi: be2iscsi: Fix a memleak in beiscsi_init_wrb_handle() + - ARM: imx: Check return value of devm_kasprintf in imx_mmdc_perf_init + - ARM: dts: imx7: Declare timers compatible with fsl,imx6dl-gpt + - ARM: dts: imx28-xea: Pass the 'model' property + - riscv: fix misaligned access handling of C.SWSP and C.SDSP + - md: don't leave 'MD_RECOVERY_FROZEN' in error path of md_set_readonly() + - rethook: Use __rcu pointer for rethook::handler + - kprobes: consistent rcu api usage for kretprobe holder + - ASoC: amd: yc: Fix non-functional mic on ASUS E1504FA + - nvme-pci: Add sleep quirk for Kingston drives + - io_uring: fix mutex_unlock with unreferenced ctx + - ALSA: usb-audio: Add Pioneer DJM-450 mixer controls + - ALSA: pcm: fix out-of-bounds in snd_pcm_state_names + - ALSA: hda/realtek: add new Framework laptop to quirks + - ALSA: hda/realtek: Add Framework laptop 16 to quirks + - ring-buffer: Test last update in 32bit version of __rb_time_read() + - nilfs2: fix missing error check for sb_set_blocksize call + - nilfs2: prevent WARNING in nilfs_sufile_set_segment_usage() + - cgroup_freezer: cgroup_freezing: Check if not frozen + - checkstack: fix printed address + - tracing: Always update snapshot buffer size + - tracing: Disable snapshot buffer when stopping instance tracers + - tracing: Fix incomplete locking when disabling buffered events + - tracing: Fix a possible race when disabling buffered events + - packet: Move reference count in packet_sock to atomic_long_t + - r8169: fix rtl8125b PAUSE frames blasting when suspended + - regmap: fix bogus error on regcache_sync success + - platform/surface: aggregator: fix recv_buf() return value + - hugetlb: fix null-ptr-deref in hugetlb_vma_lock_write + - mm: fix oops when filemap_map_pmd() without prealloc_pte + - powercap: DTPM: Fix missing cpufreq_cpu_put() calls + - md/raid6: use valid sector values to determine if an I/O should wait on the + reshape + - arm64: dts: mediatek: mt7622: fix memory node warning check + - arm64: dts: mediatek: mt8183-kukui-jacuzzi: fix dsi unnecessary cells + properties + - arm64: dts: mediatek: cherry: Fix interrupt cells for MT6360 on I2C7 + - arm64: dts: mediatek: mt8173-evb: Fix regulator-fixed node names + - arm64: dts: mediatek: mt8195: Fix PM suspend/resume with venc clocks + - arm64: dts: mediatek: mt8183: Fix unit address for scp reserved memory + - arm64: dts: mediatek: mt8183: Move thermal-zones to the root node + - arm64: dts: mediatek: mt8183-evb: Fix unit_address_vs_reg warning on ntc + - coresight: etm4x: Remove bogous __exit annotation for some functions + - hwtracing: hisi_ptt: Add dummy callback pmu::read() + - misc: mei: client.c: return negative error code in mei_cl_write + - misc: mei: client.c: fix problem of return '-EOVERFLOW' in mei_cl_write + - LoongArch: BPF: Don't sign extend memory load operand + - LoongArch: BPF: Don't sign extend function return value + - ring-buffer: Force absolute timestamp on discard of event + - tracing: Set actual size after ring buffer resize + - tracing: Stop current tracer when resizing buffer + - parisc: Reduce size of the bug_table on 64-bit kernel by half + - parisc: Fix asm operand number out of range build error in bug table + - arm64: dts: mediatek: add missing space before { + - arm64: dts: mt8183: kukui: Fix underscores in node names + - x86/sev: Fix kernel crash due to late update to read-only ghcb_version + - gpiolib: sysfs: Fix error handling on failed export + - drm/amd/amdgpu: Fix warnings in amdgpu/amdgpu_display.c + - drm/amdgpu: Add I2C EEPROM support on smu v13_0_6 + - usb: gadget: f_hid: fix report descriptor allocation + - serial: 8250_dw: Add ACPI ID for Granite Rapids-D UART + - parport: Add support for Brainboxes IX/UC/PX parallel cards + - cifs: Fix non-availability of dedup breaking generic/304 + - Revert "xhci: Loosen RPM as default policy to cover for AMD xHC 1.1" + - smb: client: fix potential NULL deref in parse_dfs_referrals() + - ARM: PL011: Fix DMA support + - serial: sc16is7xx: address RX timeout interrupt errata + - serial: 8250: 8250_omap: Clear UART_HAS_RHR_IT_DIS bit + - serial: 8250: 8250_omap: Do not start RX DMA on THRI interrupt + - serial: 8250_omap: Add earlycon support for the AM654 UART controller + - devcoredump: Send uevent once devcd is ready + - x86/CPU/AMD: Check vendor in the AMD microcode callback + - USB: gadget: core: adjust uevent timing on gadget unbind + - cifs: Fix flushing, invalidation and file size with copy_file_range() + - cifs: Fix flushing, invalidation and file size with FICLONE + - MIPS: kernel: Clear FPU states when setting up kernel threads + - KVM: s390/mm: Properly reset no-dat + - KVM: SVM: Update EFER software model on CR0 trap for SEV-ES + - MIPS: Loongson64: Reserve vgabios memory on boot + - MIPS: Loongson64: Handle more memory types passed from firmware + - MIPS: Loongson64: Enable DMA noncoherent support + - riscv: Kconfig: Add select ARM_AMBA to SOC_STARFIVE + - [Config] updateconfigs after enabling ARM_AMBA on riscv + - scsi: sd: Fix sshdr use in sd_suspend_common() + - nouveau: use an rwlock for the event lock. + - modpost: fix section mismatch message for RELA + - drm/amdgpu: Do not program VF copy regs in mmhub v1.8 under SRIOV (v2) + - drm/amdgpu: finalizing mem_partitions at the end of GMC v9 sw_fini + - dm-crypt: start allocating with MAX_ORDER + - r8152: Hold the rtnl_lock for all of reset + - net: dsa: microchip: provide a list of valid protocols for xmit handler + - net/smc: fix missing byte order conversion in CLC handshake + - RDMA/core: Fix uninit-value access in ib_get_eth_speed() + - ARM: dts: imx6q: skov: fix ethernet clock regression + - ARM: dts: rockchip: Fix sdmmc_pwren's pinmux setting for RK3128 + - ARM: dts: bcm2711-rpi-400: Fix delete-node of led_act + - firmware: arm_scmi: Extend perf protocol ops to get number of domains + - firmware: arm_scmi: Extend perf protocol ops to get information of a domain + - firmware: arm_scmi: Fix frequency truncation by promoting multiplier type + - firmware: arm_scmi: Simplify error path in scmi_dvfs_device_opps_add() + - RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned + - RDMA/irdma: Fix support for 64k pages + - io_uring/kbuf: Fix an NULL vs IS_ERR() bug in io_alloc_pbuf_ring() + - io_uring/kbuf: check for buffer list readiness after NULL check + - arm64: dts: imx8-ss-lsio: Add PWM interrupts + - arm64: dts: freescale: imx8-ss-lsio: Fix #pwm-cells + - arm64: dts: imx93: correct mediamix power + - arm64: dts: imx8-apalis: set wifi regulator to always-on + - arm64: dts: rockchip: Fix eMMC Data Strobe PD on rk3588 + - scripts/gdb: fix lx-device-list-bus and lx-device-list-class + - ASoC: amd: yc: Fix non-functional mic on ASUS E1504FA + - ALSA: hda/realtek: Apply quirk for ASUS UM3504DA + - ALSA: hda/realtek: fix speakers on XPS 9530 (2023) + - ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7 + - lib/group_cpus.c: avoid acquiring cpu hotplug lock in group_cpus_evenly + - leds: trigger: netdev: fix RTNL handling to prevent potential deadlock + - nfp: flower: fix for take a mutex lock in soft irq context and rcu lock + - workqueue: Make sure that wq_unbound_cpumask is never empty + - drivers/base/cpu: crash data showing should depends on KEXEC_CORE + - mm/memory_hotplug: add missing mem_hotplug_lock + - mm/memory_hotplug: fix error handling in add_memory_resource() + - drm/atomic-helpers: Invoke end_fb_access while owning plane state + - drm/i915/mst: Fix .mode_valid_ctx() return values + - drm/i915/mst: Reject modes that require the bigjoiner + - arm64: dts: mt7986: change cooling trips + - arm64: dts: mt7986: define 3W max power to both SFP on BPI-R3 + - arm64: dts: mt7986: fix emmc hs400 mode without uboot initialization + - arm64: dts: mediatek: mt8186: fix clock names for power domains + - arm64: dts: mediatek: mt8186: Change gpu speedbin nvmem cell name + - coresight: Fix crash when Perf and sysfs modes are used concurrently + - coresight: ultrasoc-smb: Fix sleep while close preempt in enable_smb + - coresight: ultrasoc-smb: Config SMB buffer before register sink + - coresight: ultrasoc-smb: Fix uninitialized before use buf_hw_base + - ASoC: ops: add correct range check for limiting volume + - nvmem: Do not expect fixed layouts to grab a layout driver + - serial: ma35d1: Validate console index before assignment + - powerpc/ftrace: Fix stack teardown in ftrace_no_trace + - perf metrics: Avoid segv if default metricgroup isn't set + - ASoC: qcom: sc8280xp: Limit speaker digital volumes + - gcc-plugins: randstruct: Update code comment in relayout_struct() + - drm/amdgpu: Fix refclk reporting for SMU v13.0.6 + - drm/amdgpu: Add bootloader status check + - drm/amdgpu: Add bootloader wait for PSP v13 + - drm/amdgpu: Restrict bootloader wait to SMUv13.0.6 + - drm/amdgpu: update retry times for psp vmbx wait + - drm/amdgpu: update retry times for psp BL wait + - drm/amdgpu: Restrict extended wait to PSP v13.0.6 + - Upstream stable to v6.1.68, v6.6.7 + + * i915 regression introduced with 5.5 kernel (LP: #2044131) + - drm/i915: Skip some timing checks on BXT/GLK DSI transcoders + + * Mantic update: upstream stable patchset 2024-01-26 (LP: #2051366) + - cifs: Fix FALLOC_FL_ZERO_RANGE by setting i_size if EOF moved + - cifs: Fix FALLOC_FL_INSERT_RANGE by setting i_size after EOF moved + - smb: client: report correct st_size for SMB and NFS symlinks + - pinctrl: avoid reload of p state in list iteration + - firewire: core: fix possible memory leak in create_units() + - mmc: sdhci-pci-gli: Disable LPM during initialization + - mmc: cqhci: Increase recovery halt timeout + - mmc: cqhci: Warn of halt or task clear failure + - mmc: cqhci: Fix task clearing in CQE error recovery + - mmc: block: Retry commands in CQE error recovery + - mmc: block: Do not lose cache flush during CQE error recovery + - mmc: block: Be sure to wait while busy in CQE error recovery + - ALSA: hda: Disable power-save on KONTRON SinglePC + - ALSA: hda/realtek: Headset Mic VREF to 100% + - ALSA: hda/realtek: Add supported ALC257 for ChromeOS + - dm-verity: align struct dm_verity_fec_io properly + - scsi: Change SCSI device boolean fields to single bit flags + - scsi: sd: Fix system start for ATA devices + - drm/amd: Enable PCIe PME from D3 + - drm/amdgpu: Force order between a read and write to the same address + - drm/amd/display: Include udelay when waiting for INBOX0 ACK + - drm/amd/display: Remove min_dst_y_next_start check for Z8 + - drm/amd/display: Use DRAM speed from validation for dummy p-state + - drm/amd/display: Update min Z8 residency time to 2100 for DCN314 + - drm/amd/display: fix ABM disablement + - dm verity: initialize fec io before freeing it + - dm verity: don't perform FEC for failed readahead IO + - nvme: check for valid nvme_identify_ns() before using it + - powercap: DTPM: Fix unneeded conversions to micro-Watts + - cpufreq/amd-pstate: Fix the return value of amd_pstate_fast_switch() + - dma-buf: fix check in dma_resv_add_fence + - bcache: revert replacing IS_ERR_OR_NULL with IS_ERR + - iommu/vt-d: Add MTL to quirk list to skip TE disabling + - KVM: PPC: Book3S HV: Fix KVM_RUN clobbering FP/VEC user registers + - powerpc: Don't clobber f0/vs0 during fp|altivec register save + - parisc: Mark ex_table entries 32-bit aligned in assembly.h + - parisc: Mark ex_table entries 32-bit aligned in uaccess.h + - parisc: Use natural CPU alignment for bug_table + - parisc: Mark lock_aligned variables 16-byte aligned on SMP + - parisc: Drop the HP-UX ENOSYM and EREMOTERELEASE error codes + - parisc: Mark jump_table naturally aligned + - parisc: Ensure 32-bit alignment on parisc unwind section + - parisc: Mark altinstructions read-only and 32-bit aligned + - btrfs: add dmesg output for first mount and last unmount of a filesystem + - btrfs: ref-verify: fix memory leaks in btrfs_ref_tree_mod() + - btrfs: fix off-by-one when checking chunk map includes logical address + - btrfs: send: ensure send_fd is writable + - btrfs: make error messages more clear when getting a chunk map + - btrfs: fix 64bit compat send ioctl arguments not initializing version member + - auxdisplay: hd44780: move cursor home after clear display command + - serial: sc16is7xx: Put IOControl register into regmap_volatile + - serial: sc16is7xx: add missing support for rs485 devicetree properties + - dpaa2-eth: increase the needed headroom to account for alignment + - uapi: propagate __struct_group() attributes to the container union + - selftests/net: ipsec: fix constant out of range + - selftests/net: fix a char signedness issue + - selftests/net: unix: fix unused variable compiler warning + - selftests/net: mptcp: fix uninitialized variable warnings + - octeontx2-af: Fix possible buffer overflow + - net: stmmac: xgmac: Disable FPE MMC interrupts + - octeontx2-pf: Fix adding mbox work queue entry when num_vfs > 64 + - octeontx2-af: Install TC filter rules in hardware based on priority + - octeontx2-pf: Restore TC ingress police rules when interface is up + - r8169: prevent potential deadlock in rtl8169_close + - ravb: Fix races between ravb_tx_timeout_work() and net related ops + - net: ravb: Check return value of reset_control_deassert() + - net: ravb: Use pm_runtime_resume_and_get() + - net: ravb: Make write access to CXR35 first before accessing other EMAC + registers + - net: ravb: Start TX queues after HW initialization succeeded + - net: ravb: Stop DMA in case of failures on ravb_open() + - net: ravb: Keep reverse order of operations in ravb_remove() + - octeontx2-af: Initialize 'cntr_val' to fix uninitialized symbol error + - spi: Fix null dereference on suspend + - cpufreq: imx6q: Don't disable 792 Mhz OPP unnecessarily + - iommu/vt-d: Omit devTLB invalidation requests when TES=0 + - iommu/vt-d: Disable PCI ATS in legacy passthrough mode + - iommu/vt-d: Make context clearing consistent with context mapping + - drm/amd/pm: fix a memleak in aldebaran_tables_init + - mmc: sdhci-sprd: Fix vqmmc not shutting down after the card was pulled + - drm/amd/display: Fix MPCC 1DLUT programming + - r8169: fix deadlock on RTL8125 in jumbo mtu mode + - xen: simplify evtchn_do_upcall() call maze + - x86/xen: fix percpu vcpu_info allocation + - smb: client: fix missing mode bits for SMB symlinks + - ksmbd: fix possible deadlock in smb2_open + - drm/i915: Also check for VGA converter in eDP probe + - net: libwx: fix memory leak on msix entry + - drm/amdgpu: correct the amdgpu runtime dereference usage count + - drm/amdgpu: fix memory overflow in the IB test + - drm/amdgpu: Update EEPROM I2C address for smu v13_0_0 + - drm/amd/display: force toggle rate wa for first link training for a retimer + - ACPI: video: Use acpi_video_device for cooling-dev driver data + - iommu/vt-d: Fix incorrect cache invalidation for mm notification + - io_uring: free io_buffer_list entries via RCU + - io_uring: don't guard IORING_OFF_PBUF_RING with SETUP_NO_MMAP + - iommu: Avoid more races around device probe + - ext2: Fix ki_pos update for DIO buffered-io fallback case + - btrfs: free the allocated memory if btrfs_alloc_page_array() fails + - io_uring/kbuf: recycle freed mapped buffer ring entries + - media: v4l2-subdev: Fix a 64bit bug + - netdevsim: Don't accept device bound programs + - net: rswitch: Fix type of ret in rswitch_start_xmit() + - net: rswitch: Fix return value in rswitch_start_xmit() + - net: rswitch: Fix missing dev_kfree_skb_any() in error path + - wifi: iwlwifi: mvm: fix an error code in iwl_mvm_mld_add_sta() + - wifi: mac80211: do not pass AP_VLAN vif pointer to drivers during flush + - net: dsa: mv88e6xxx: fix marvell 6350 switch probing + - dpaa2-eth: recycle the RX buffer only after all processing done + - bpf: Add missed allocation hint for bpf_mem_cache_alloc_flags() + - neighbour: Fix __randomize_layout crash in struct neighbour + - efi/unaccepted: Fix off-by-one when checking for overlapping ranges + - ethtool: don't propagate EOPNOTSUPP from dumps + - bpf, sockmap: af_unix stream sockets need to hold ref for pair sock + - powerpc/pseries/iommu: enable_ddw incorrectly returns direct mapping for SR- + IOV device + - s390/cmma: fix handling of swapper_pg_dir and invalid_pg_dir + - drm/amd/display: Refactor edp power control + - drm/amd/display: Remove power sequencing check + - drm/i915/gsc: Mark internal GSC engine with reserved uabi class + - drm/panel: starry-2081101qfh032011-53g: Fine tune the panel power sequence + - drm/panel: nt36523: fix return value check in nt36523_probe() + - cpufreq/amd-pstate: Fix scaling_min_freq and scaling_max_freq update + - cpufreq/amd-pstate: Only print supported EPP values for performance governor + - iommu: Fix printk arg in of_iommu_get_resv_regions() + - drm/amd/display: refactor ILR to make it work + - drm/amd/display: Reduce default backlight min from 5 nits to 1 nits + - Upstream stable to v6.1.66, v6.6.5 + + * Mantic update: upstream stable patchset 2024-01-25 (LP: #2051231) + - afs: Fix afs_server_list to be cleaned up with RCU + - afs: Make error on cell lookup failure consistent with OpenAFS + - drm/panel: auo,b101uan08.3: Fine tune the panel power sequence + - drm/panel: simple: Fix Innolux G101ICE-L01 bus flags + - drm/panel: simple: Fix Innolux G101ICE-L01 timings + - wireguard: use DEV_STATS_INC() + - octeontx2-pf: Fix memory leak during interface down + - ata: pata_isapnp: Add missing error check for devm_ioport_map() + - drm/i915: do not clean GT table on error path + - drm/rockchip: vop: Fix color for RGB888/BGR888 format on VOP full + - HID: fix HID device resource race between HID core and debugging support + - ipv4: Correct/silence an endian warning in __ip_do_redirect + - net: usb: ax88179_178a: fix failed operations during ax88179_reset + - net/smc: avoid data corruption caused by decline + - arm/xen: fix xen_vcpu_info allocation alignment + - octeontx2-pf: Fix ntuple rule creation to direct packet to VF with higher Rx + queue than its PF + - amd-xgbe: handle corner-case during sfp hotplug + - amd-xgbe: handle the corner-case during tx completion + - amd-xgbe: propagate the correct speed and duplex status + - net: axienet: Fix check for partial TX checksum + - afs: Return ENOENT if no cell DNS record can be found + - afs: Fix file locking on R/O volumes to operate in local mode + - arm64: mm: Fix "rodata=on" when CONFIG_RODATA_FULL_DEFAULT_ENABLED=y + - i40e: Fix adding unsupported cloud filters + - nvmet: nul-terminate the NQNs passed in the connect command + - USB: dwc3: qcom: fix resource leaks on probe deferral + - USB: dwc3: qcom: fix ACPI platform device leak + - lockdep: Fix block chain corruption + - cifs: distribute channels across interfaces based on speed + - cifs: account for primary channel in the interface list + - cifs: fix leak of iface for primary channel + - MIPS: KVM: Fix a build warning about variable set but not used + - media: qcom: Initialise V4L2 async notifier later + - media: qcom: camss: Fix V4L2 async notifier error path + - media: qcom: camss: Fix genpd cleanup + - NFSD: Fix "start of NFS reply" pointer passed to nfsd_cache_update() + - NFSD: Fix checksum mismatches in the duplicate reply cache + - ACPI: resource: Skip IRQ override on ASUS ExpertBook B1402CVA + - swiotlb-xen: provide the "max_mapping_size" method + - bcache: replace a mistaken IS_ERR() by IS_ERR_OR_NULL() in + btree_gc_coalesce() + - md: fix bi_status reporting in md_end_clone_io + - bcache: fixup multi-threaded bch_sectors_dirty_init() wake-up race + - io_uring/fs: consider link->flags when getting path for LINKAT + - s390/dasd: protect device queue against concurrent access + - USB: serial: option: add Luat Air72*U series products + - hv_netvsc: fix race of netvsc and VF register_netdevice + - hv_netvsc: Fix race of register_netdevice_notifier and VF register + - hv_netvsc: Mark VF as slave before exposing it to user-mode + - dm-delay: fix a race between delay_presuspend and delay_bio + - bcache: check return value from btree_node_alloc_replacement() + - bcache: prevent potential division by zero error + - bcache: fixup init dirty data errors + - bcache: fixup lock c->root error + - usb: cdnsp: Fix deadlock issue during using NCM gadget + - USB: serial: option: add Fibocom L7xx modules + - USB: serial: option: fix FM101R-GL defines + - USB: serial: option: don't claim interface 4 for ZTE MF290 + - usb: typec: tcpm: Skip hard reset when in error recovery + - USB: dwc2: write HCINT with INTMASK applied + - usb: dwc3: Fix default mode initialization + - usb: dwc3: set the dma max_seg_size + - USB: dwc3: qcom: fix software node leak on probe errors + - USB: dwc3: qcom: fix wakeup after probe deferral + - io_uring: fix off-by one bvec index + - irqchip/gic-v3-its: Flush ITS tables correctly in non-coherent GIC designs + - drm/msm/dsi: use the correct VREG_CTRL_1 value for 4nm cphy + - s390/ism: ism driver implies smc protocol + - rxrpc: Fix RTT determination to use any ACK as a source + - rxrpc: Defer the response to a PING ACK until we've parsed it + - blk-cgroup: avoid to warn !rcu_read_lock_held() in blkg_lookup() + - fs: Pass AT_GETATTR_NOSEC flag to getattr interface function + - net: wangxun: fix kernel panic due to null pointer + - filemap: add a per-mapping stable writes flag + - block: update the stable_writes flag in bdev_add + - PM: tools: Fix sleepgraph syntax error + - net, vrf: Move dstats structure to core + - net: Move {l,t,d}stats allocation to core and convert veth & vrf + - bpf: Fix dev's rx stats for bpf_redirect_peer traffic + - drm/panel: boe-tv101wum-nl6: Fine tune Himax83102-j02 panel HFP and HBP + - s390/ipl: add missing IPL_TYPE_ECKD_DUMP case to ipl_init() + - net: veth: fix ethtool stats reporting + - vsock/test: fix SEQPACKET message bounds test + - net: ipa: fix one GSI register field width + - nvme: blank out authentication fabrics options if not configured + - mm: add a NO_INHERIT flag to the PR_SET_MDWE prctl + - prctl: Disable prctl(PR_SET_MDWE) on parisc + - kselftest/arm64: Fix output formatting for za-fork + - drm/msm/dpu: Add missing safe_lut_tbl in sc8280xp catalog + - drm/ast: Disconnect BMC if physical connector is connected + - thunderbolt: Set lane bonding bit only for downstream port + - ACPI: video: Use acpi_device_fix_up_power_children() + - ACPI: processor_idle: use raw_safe_halt() in acpi_idle_play_dead() + - ACPI: resource: Skip IRQ override on ASUS ExpertBook B1402CVA + - ACPI: PM: Add acpi_device_fix_up_power_children() function + - tls: fix NULL deref on tls_sw_splice_eof() with empty record + - dt-bindings: usb: microchip,usb5744: Add second supply + - usb: misc: onboard-hub: add support for Microchip USB5744 + - platform/x86/amd/pmc: adjust getting DRAM size behavior + - ALSA: hda: ASUS UM5302LA: Added quirks for cs35L41/10431A83 on i2c bus + - ALSA: hda/realtek: Add quirks for ASUS 2024 Zenbooks + - veth: Use tstats per-CPU traffic counters + - USB: xhci-plat: fix legacy PHY double init + - usb: config: fix iteration issue in 'usb_get_bos_descriptor()' + - Upstream stable to v6.1.65, v6.6.4 + + * Mantic update: v6.5.13 upstream stable release (LP: #2051142) + - locking/ww_mutex/test: Fix potential workqueue corruption + - btrfs: abort transaction on generation mismatch when marking eb as dirty + - lib/generic-radix-tree.c: Don't overflow in peek() + - x86/retpoline: Make sure there are no unconverted return thunks due to KCSAN + - perf/core: Bail out early if the request AUX area is out of bound + - srcu: Fix srcu_struct node grpmask overflow on 64-bit systems + - selftests/lkdtm: Disable CONFIG_UBSAN_TRAP in test config + - clocksource/drivers/timer-imx-gpt: Fix potential memory leak + - clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware + - srcu: Only accelerate on enqueue time + - smp,csd: Throw an error if a CSD lock is stuck for too long + - cpu/hotplug: Don't offline the last non-isolated CPU + - workqueue: Provide one lock class key per work_on_cpu() callsite + - x86/mm: Drop the 4 MB restriction on minimal NUMA node memory size + - wifi: plfxlc: fix clang-specific fortify warning + - wifi: ath12k: Ignore fragments from uninitialized peer in dp + - wifi: mac80211_hwsim: fix clang-specific fortify warning + - wifi: mac80211: don't return unset power in ieee80211_get_tx_power() + - atl1c: Work around the DMA RX overflow issue + - bpf: Detect IP == ksym.end as part of BPF program + - wifi: ath9k: fix clang-specific fortify warnings + - wifi: ath12k: fix possible out-of-bound read in ath12k_htt_pull_ppdu_stats() + - wifi: ath10k: fix clang-specific fortify warning + - wifi: ath12k: fix possible out-of-bound write in + ath12k_wmi_ext_hal_reg_caps() + - ACPI: APEI: Fix AER info corruption when error status data has multiple + sections + - net: sfp: add quirk for Fiberstone GPON-ONU-34-20BI + - wifi: mt76: mt7921e: Support MT7992 IP in Xiaomi Redmibook 15 Pro (2023) + - net: annotate data-races around sk->sk_tx_queue_mapping + - net: annotate data-races around sk->sk_dst_pending_confirm + - wifi: ath12k: mhi: fix potential memory leak in ath12k_mhi_register() + - wifi: ath10k: Don't touch the CE interrupt registers after power up + - net: sfp: add quirk for FS's 2.5G copper SFP + - vsock: read from socket's error queue + - bpf: Ensure proper register state printing for cond jumps + - wifi: iwlwifi: mvm: fix size check for fw_link_id + - Bluetooth: btusb: Add date->evt_skb is NULL check + - Bluetooth: Fix double free in hci_conn_cleanup + - ACPI: EC: Add quirk for HP 250 G7 Notebook PC + - tsnep: Fix tsnep_request_irq() format-overflow warning + - gpiolib: acpi: Add a ignore interrupt quirk for Peaq C1010 + - platform/chrome: kunit: initialize lock for fake ec_dev + - of: address: Fix address translation when address-size is greater than 2 + - platform/x86: thinkpad_acpi: Add battery quirk for Thinkpad X120e + - drm/gma500: Fix call trace when psb_gem_mm_init() fails + - drm/amdkfd: ratelimited SQ interrupt messages + - drm/komeda: drop all currently held locks if deadlock happens + - drm/amd/display: Blank phantom OTG before enabling + - drm/amd/display: Don't lock phantom pipe on disabling + - drm/amd/display: add seamless pipe topology transition check + - drm/edid: Fixup h/vsync_end instead of h/vtotal + - md: don't rely on 'mddev->pers' to be set in mddev_suspend() + - drm/amdgpu: not to save bo in the case of RAS err_event_athub + - drm/amdkfd: Fix a race condition of vram buffer unref in svm code + - drm/amd: Update `update_pcie_parameters` functions to use uint8_t arguments + - drm/amd/display: use full update for clip size increase of large plane + source + - string.h: add array-wrappers for (v)memdup_user() + - kernel: kexec: copy user-array safely + - kernel: watch_queue: copy user-array safely + - drm_lease.c: copy user-array safely + - drm: vmwgfx_surface.c: copy user-array safely + - drm/msm/dp: skip validity check for DP CTS EDID checksum + - drm/amd: Fix UBSAN array-index-out-of-bounds for SMU7 + - drm/amd: Fix UBSAN array-index-out-of-bounds for Polaris and Tonga + - drm/amdgpu: Fix potential null pointer derefernce + - drm/panel: fix a possible null pointer dereference + - drm/panel/panel-tpo-tpg110: fix a possible null pointer dereference + - drm/radeon: fix a possible null pointer dereference + - drm/amdgpu/vkms: fix a possible null pointer dereference + - drm/panel: st7703: Pick different reset sequence + - drm/amdkfd: Fix shift out-of-bounds issue + - drm/amdgpu: Fix a null pointer access when the smc_rreg pointer is NULL + - drm/amd: Disable PP_PCIE_DPM_MASK when dynamic speed switching not supported + - drm/amd/display: fix num_ways overflow error + - drm/amd: check num of link levels when update pcie param + - arm64: dts: ls208xa: use a pseudo-bus to constrain usb dma size + - selftests/efivarfs: create-read: fix a resource leak + - ASoC: mediatek: mt8188-mt6359: support dynamic pinctrl + - ASoC: soc-card: Add storage for PCI SSID + - ASoC: SOF: Pass PCI SSID to machine driver + - crypto: pcrypt - Fix hungtask for PADATA_RESET + - ASoC: SOF: ipc4: handle EXCEPTION_CAUGHT notification from firmware + - RDMA/hfi1: Use FIELD_GET() to extract Link Width + - scsi: hisi_sas: Set debugfs_dir pointer to NULL after removing debugfs + - scsi: ibmvfc: Remove BUG_ON in the case of an empty event pool + - fs/jfs: Add check for negative db_l2nbperpage + - fs/jfs: Add validity check for db_maxag and db_agpref + - jfs: fix array-index-out-of-bounds in dbFindLeaf + - jfs: fix array-index-out-of-bounds in diAlloc + - HID: lenovo: Detect quirk-free fw on cptkbd and stop applying workaround + - ARM: 9320/1: fix stack depot IRQ stack filter + - ALSA: hda: Fix possible null-ptr-deref when assigning a stream + - gpiolib: of: Add quirk for mt2701-cs42448 ASoC sound + - PCI: tegra194: Use FIELD_GET()/FIELD_PREP() with Link Width fields + - PCI: mvebu: Use FIELD_PREP() with Link Width + - atm: iphase: Do PCI error checks on own line + - PCI: Do error check on own line to split long "if" conditions + - scsi: libfc: Fix potential NULL pointer dereference in fc_lport_ptp_setup() + - PCI: Use FIELD_GET() to extract Link Width + - PCI: Extract ATS disabling to a helper function + - PCI: Disable ATS for specific Intel IPU E2000 devices + - PCI: dwc: Add dw_pcie_link_set_max_link_width() + - PCI: dwc: Add missing PCI_EXP_LNKCAP_MLW handling + - misc: pci_endpoint_test: Add Device ID for R-Car S4-8 PCIe controller + - PCI: Use FIELD_GET() in Sapphire RX 5600 XT Pulse quirk + - ASoC: Intel: soc-acpi-cht: Add Lenovo Yoga Tab 3 Pro YT3-X90 quirk + - crypto: hisilicon/qm - prevent soft lockup in receive loop + - HID: Add quirk for Dell Pro Wireless Keyboard and Mouse KM5221W + - exfat: support handle zero-size directory + - mfd: intel-lpss: Add Intel Lunar Lake-M PCI IDs + - iio: adc: stm32-adc: harden against NULL pointer deref in stm32_adc_probe() + - thunderbolt: Apply USB 3.x bandwidth quirk only in software connection + manager + - tty: vcc: Add check for kstrdup() in vcc_probe() + - dt-bindings: phy: qcom,snps-eusb2-repeater: Add magic tuning overrides + - phy: qualcomm: phy-qcom-eusb2-repeater: Use regmap_fields + - phy: qualcomm: phy-qcom-eusb2-repeater: Zero out untouched tuning regs + - usb: dwc3: core: configure TX/RX threshold for DWC3_IP + - usb: ucsi: glink: use the connector orientation GPIO to provide switch + events + - soundwire: dmi-quirks: update HP Omen match + - f2fs: fix error path of __f2fs_build_free_nids + - f2fs: fix error handling of __get_node_page + - usb: host: xhci: Avoid XHCI resume delay if SSUSB device is not present + - usb: gadget: f_ncm: Always set current gadget in ncm_bind() + - 9p/trans_fd: Annotate data-racy writes to file::f_flags + - 9p: v9fs_listxattr: fix %s null argument warning + - i3c: mipi-i3c-hci: Fix out of bounds access in hci_dma_irq_handler + - i2c: i801: Add support for Intel Birch Stream SoC + - i2c: fix memleak in i2c_new_client_device() + - i2c: sun6i-p2wi: Prevent potential division by zero + - virtio-blk: fix implicit overflow on virtio_max_dma_size + - i3c: master: mipi-i3c-hci: Fix a kernel panic for accessing DAT_data. + - media: gspca: cpia1: shift-out-of-bounds in set_flicker + - media: vivid: avoid integer overflow + - media: ipu-bridge: increase sensor_name size + - gfs2: ignore negated quota changes + - gfs2: fix an oops in gfs2_permission + - media: cobalt: Use FIELD_GET() to extract Link Width + - media: ccs: Fix driver quirk struct documentation + - media: imon: fix access to invalid resource for the second interface + - drm/amd/display: Avoid NULL dereference of timing generator + - kgdb: Flush console before entering kgdb on panic + - riscv: VMAP_STACK overflow detection thread-safe + - i2c: dev: copy userspace array safely + - ASoC: ti: omap-mcbsp: Fix runtime PM underflow warnings + - drm/qxl: prevent memory leak + - ALSA: hda/realtek: Add quirk for ASUS UX7602ZM + - drm/amdgpu: fix software pci_unplug on some chips + - pwm: Fix double shift bug + - mtd: rawnand: tegra: add missing check for platform_get_irq() + - wifi: iwlwifi: Use FW rate for non-data frames + - sched/core: Optimize in_task() and in_interrupt() a bit + - samples/bpf: syscall_tp_user: Rename num_progs into nr_tests + - samples/bpf: syscall_tp_user: Fix array out-of-bound access + - dt-bindings: serial: fix regex pattern for matching serial node children + - SUNRPC: ECONNRESET might require a rebind + - mtd: rawnand: intel: check return value of devm_kasprintf() + - mtd: rawnand: meson: check return value of devm_kasprintf() + - drm/i915/mtl: avoid stringop-overflow warning + - NFSv4.1: fix handling NFS4ERR_DELAY when testing for session trunking + - SUNRPC: Add an IS_ERR() check back to where it was + - NFSv4.1: fix SP4_MACH_CRED protection for pnfs IO + - SUNRPC: Fix RPC client cleaned up the freed pipefs dentries + - RISC-V: hwprobe: Fix vDSO SIGSEGV + - riscv: provide riscv-specific is_trap_insn() + - gfs2: Silence "suspicious RCU usage in gfs2_permission" warning + - drm/i915/tc: Fix -Wformat-truncation in intel_tc_port_init + - vdpa_sim_blk: allocate the buffer zeroed + - vhost-vdpa: fix use after free in vhost_vdpa_probe() + - gcc-plugins: randstruct: Only warn about true flexible arrays + - bpf: handle ldimm64 properly in check_cfg() + - bpf: fix precision backtracking instruction iteration + - net: set SOCK_RCU_FREE before inserting socket into hashtable + - ipvlan: add ipvlan_route_v6_outbound() helper + - tty: Fix uninit-value access in ppp_sync_receive() + - xen/events: avoid using info_for_irq() in xen_send_IPI_one() + - net: hns3: fix add VLAN fail issue + - net: hns3: add barrier in vf mailbox reply process + - net: hns3: fix incorrect capability bit display for copper port + - net: hns3: fix out-of-bounds access may occur when coalesce info is read via + debugfs + - net: hns3: fix variable may not initialized problem in hns3_init_mac_addr() + - net: hns3: fix VF reset fail issue + - net: hns3: fix VF wrong speed and duplex issue + - tipc: Fix kernel-infoleak due to uninitialized TLV value + - net: mvneta: fix calls to page_pool_get_stats + - ppp: limit MRU to 64K + - xen/events: fix delayed eoi list handling + - blk-mq: make sure active queue usage is held for bio_integrity_prep() + - ptp: annotate data-race around q->head and q->tail + - bonding: stop the device in bond_setup_by_slave() + - net: ethernet: cortina: Fix max RX frame define + - net: ethernet: cortina: Handle large frames + - net: ethernet: cortina: Fix MTU max setting + - af_unix: fix use-after-free in unix_stream_read_actor() + - netfilter: nf_conntrack_bridge: initialize err to 0 + - netfilter: nf_tables: fix pointer math issue in nft_byteorder_eval() + - netfilter: nf_tables: bogus ENOENT when destroying element which does not + exist + - net: stmmac: fix rx budget limit check + - net: stmmac: avoid rx queue overrun + - pds_core: use correct index to mask irq + - pds_core: fix up some format-truncation complaints + - gve: Fixes for napi_poll when budget is 0 + - io_uring/fdinfo: remove need for sqpoll lock for thread/pid retrieval + - net/mlx5: Decouple PHC .adjtime and .adjphase implementations + - net/mlx5e: fix double free of encap_header + - net/mlx5e: fix double free of encap_header in update funcs + - net/mlx5e: Fix pedit endianness + - net/mlx5: Consolidate devlink documentation in devlink/mlx5.rst + - net/mlx5e: Make tx_port_ts logic resilient to out-of-order CQEs + - net/mlx5e: Add recovery flow for tx devlink health reporter for unhealthy + PTP SQ + - net/mlx5e: Update doorbell for port timestamping CQ before the software + counter + - net/mlx5: Increase size of irq name buffer + - net/mlx5e: Reduce the size of icosq_str + - net/mlx5e: Check return value of snprintf writing to fw_version buffer + - net/mlx5e: Check return value of snprintf writing to fw_version buffer for + representors + - net: sched: do not offload flows with a helper in act_ct + - macvlan: Don't propagate promisc change to lower dev in passthru + - tools/power/turbostat: Fix a knl bug + - tools/power/turbostat: Enable the C-state Pre-wake printing + - scsi: ufs: core: Expand MCQ queue slot to DeviceQueueDepth + 1 + - cifs: spnego: add ';' in HOST_KEY_LEN + - cifs: fix check of rc in function generate_smb3signingkey + - perf/core: Fix cpuctx refcounting + - i915/perf: Fix NULL deref bugs with drm_dbg() calls + - perf: arm_cspmu: Reject events meant for other PMUs + - drivers: perf: Check find_first_bit() return value + - media: venus: hfi: add checks to perform sanity on queue pointers + - perf intel-pt: Fix async branch flags + - powerpc/perf: Fix disabling BHRB and instruction sampling + - randstruct: Fix gcc-plugin performance mode to stay in group + - bpf: Fix check_stack_write_fixed_off() to correctly spill imm + - bpf: Fix precision tracking for BPF_ALU | BPF_TO_BE | BPF_END + - scsi: mpt3sas: Fix loop logic + - scsi: megaraid_sas: Increase register read retry rount from 3 to 30 for + selected registers + - scsi: ufs: qcom: Update PHY settings only when scaling to higher gears + - scsi: qla2xxx: Fix system crash due to bad pointer access + - scsi: ufs: core: Fix racing issue between ufshcd_mcq_abort() and ISR + - crypto: x86/sha - load modules based on CPU features + - x86/PCI: Avoid PME from D3hot/D3cold for AMD Rembrandt and Phoenix USB4 + - x86/apic/msi: Fix misconfigured non-maskable MSI quirk + - x86/cpu/hygon: Fix the CPU topology evaluation for real + - KVM: x86: hyper-v: Don't auto-enable stimer on write from user-space + - KVM: x86: Ignore MSR_AMD64_TW_CFG access + - KVM: x86: Clear bit12 of ICR after APIC-write VM-exit + - KVM: x86: Fix lapic timer interrupt lost after loading a snapshot. + - mmc: sdhci-pci-gli: GL9755: Mask the replay timer timeout of AER + - sched: psi: fix unprivileged polling against cgroups + - audit: don't take task_lock() in audit_exe_compare() code path + - audit: don't WARN_ON_ONCE(!current->mm) in audit_exe_compare() + - proc: sysctl: prevent aliased sysctls from getting passed to init + - tty/sysrq: replace smp_processor_id() with get_cpu() + - tty: serial: meson: fix hard LOCKUP on crtscts mode + - hvc/xen: fix console unplug + - hvc/xen: fix error path in xen_hvc_init() to always register frontend driver + - hvc/xen: fix event channel handling for secondary consoles + - PCI/sysfs: Protect driver's D3cold preference from user space + - mm/damon/sysfs: remove requested targets when online-commit inputs + - mm/damon/sysfs: update monitoring target regions for online input commit + - watchdog: move softlockup_panic back to early_param + - iommufd: Fix missing update of domains_itree after splitting iopt_area + - fbdev: stifb: Make the STI next font pointer a 32-bit signed offset + - dm crypt: account large pages in cc->n_allocated_pages + - mm/damon/lru_sort: avoid divide-by-zero in hot threshold calculation + - mm/damon/ops-common: avoid divide-by-zero during region hotness calculation + - mm/damon: implement a function for max nr_accesses safe calculation + - mm/damon/core: avoid divide-by-zero during monitoring results update + - mm/damon/sysfs-schemes: handle tried region directory allocation failure + - mm/damon/sysfs-schemes: handle tried regions sysfs directory allocation + failure + - mm/damon/sysfs: check error from damon_sysfs_update_target() + - parisc: Add nop instructions after TLB inserts + - ACPI: resource: Do IRQ override on TongFang GMxXGxx + - regmap: Ensure range selector registers are updated after cache sync + - wifi: ath11k: fix temperature event locking + - wifi: ath11k: fix dfs radar event locking + - wifi: ath11k: fix htt pktlog locking + - wifi: ath11k: fix gtk offload status event locking + - wifi: ath12k: fix htt mlo-offset event locking + - wifi: ath12k: fix dfs-radar and temperature event locking + - mmc: meson-gx: Remove setting of CMD_CFG_ERROR + - genirq/generic_chip: Make irq_remove_generic_chip() irqdomain aware + - sched/core: Fix RQCF_ACT_SKIP leak + - KEYS: trusted: tee: Refactor register SHM usage + - KEYS: trusted: Rollback init_trusted() consistently + - PCI: keystone: Don't discard .remove() callback + - PCI: keystone: Don't discard .probe() callback + - arm64: Restrict CPU_BIG_ENDIAN to GNU as or LLVM IAS 15.x or newer + - arm64: module: Fix PLT counting when CONFIG_RANDOMIZE_BASE=n + - parisc/agp: Use 64-bit LE values in SBA IOMMU PDIR table + - parisc/pdc: Add width field to struct pdc_model + - parisc/power: Add power soft-off when running on qemu + - cpufreq: stats: Fix buffer overflow detection in trans_stats() + - powercap: intel_rapl: Downgrade BIOS locked limits pr_warn() to pr_debug() + - clk: socfpga: Fix undefined behavior bug in struct stratix10_clock_data + - clk: visconti: Fix undefined behavior bug in struct visconti_pll_provider + - clk: qcom: ipq8074: drop the CLK_SET_RATE_PARENT flag from PLL clocks + - clk: qcom: ipq6018: drop the CLK_SET_RATE_PARENT flag from PLL clocks + - ksmbd: fix recursive locking in vfs helpers + - ksmbd: handle malformed smb1 message + - ksmbd: fix slab out of bounds write in smb_inherit_dacl() + - mmc: vub300: fix an error code + - mmc: sdhci_am654: fix start loop index for TAP value parsing + - mmc: Add quirk MMC_QUIRK_BROKEN_CACHE_FLUSH for Micron eMMC Q2J54A + - PCI/ASPM: Fix L1 substate handling in aspm_attr_store_common() + - PCI: kirin: Don't discard .remove() callback + - PCI: exynos: Don't discard .remove() callback + - wifi: wilc1000: use vmm_table as array in wilc struct + - svcrdma: Drop connection after an RDMA Read error + - rcu/tree: Defer setting of jiffies during stall reset + - arm64: dts: qcom: ipq6018: Fix hwlock index for SMEM + - dt-bindings: timer: renesas,rz-mtu3: Fix overflow/underflow interrupt names + - PM: hibernate: Use __get_safe_page() rather than touching the list + - PM: hibernate: Clean up sync_read handling in snapshot_write_next() + - rcu: kmemleak: Ignore kmemleak false positives when RCU-freeing objects + - btrfs: don't arbitrarily slow down delalloc if we're committing + - thermal: intel: powerclamp: fix mismatch in get function for max_idle + - arm64: dts: qcom: ipq5332: Fix hwlock index for SMEM + - arm64: dts: qcom: ipq8074: Fix hwlock index for SMEM + - firmware: qcom_scm: use 64-bit calling convention only when client is 64-bit + - ACPI: FPDT: properly handle invalid FPDT subtables + - arm64: dts: qcom: ipq9574: Fix hwlock index for SMEM + - arm64: dts: qcom: ipq6018: Fix tcsr_mutex register size + - leds: trigger: netdev: Move size check in set_device_name + - mfd: qcom-spmi-pmic: Fix reference leaks in revid helper + - mfd: qcom-spmi-pmic: Fix revid implementation + - ima: annotate iint mutex to avoid lockdep false positive warnings + - ima: detect changes to the backing overlay file + - netfilter: nf_tables: split async and sync catchall in two functions + - ASoC: soc-dai: add flag to mute and unmute stream during trigger + - ASoC: codecs: wsa883x: make use of new mute_unmute_on_trigger flag + - selftests/resctrl: Fix uninitialized .sa_flags + - selftests/resctrl: Remove duplicate feature check from CMT test + - selftests/resctrl: Move _GNU_SOURCE define into Makefile + - selftests/resctrl: Reduce failures due to outliers in MBA/MBM tests + - hid: lenovo: Resend all settings on reset_resume for compact keyboards + - ASoC: codecs: wsa-macro: fix uninitialized stack variables with name prefix + - jbd2: fix potential data lost in recovering journal raced with synchronizing + fs bdev + - quota: explicitly forbid quota files from being encrypted + - kernel/reboot: emergency_restart: Set correct system_state + - i2c: core: Run atomic i2c xfer when !preemptible + - selftests/clone3: Fix broken test under !CONFIG_TIME_NS + - tracing: Have the user copy of synthetic event address use correct context + - driver core: Release all resources during unbind before updating device + links + - mcb: fix error handling for different scenarios when parsing + - dmaengine: stm32-mdma: correct desc prep when channel running + - s390/mm: add missing arch_set_page_dat() call to vmem_crst_alloc() + - s390/cmma: fix detection of DAT pages + - mm/cma: use nth_page() in place of direct struct page manipulation + - mm/memory_hotplug: use pfn math in place of direct struct page manipulation + - mm: make PR_MDWE_REFUSE_EXEC_GAIN an unsigned long + - mtd: cfi_cmdset_0001: Byte swap OTP info + - cxl/region: Do not try to cleanup after cxl_region_setup_targets() fails + - i3c: master: cdns: Fix reading status register + - i3c: master: svc: fix race condition in ibi work thread + - i3c: master: svc: fix wrong data return when IBI happen during start frame + - i3c: master: svc: fix ibi may not return mandatory data byte + - i3c: master: svc: fix check wrong status register in irq handler + - i3c: master: svc: fix SDA keep low when polling IBIWON timeout happen + - i3c: master: svc: fix random hot join failure since timeout error + - cxl/region: Fix x1 root-decoder granularity calculations + - cxl/port: Fix delete_endpoint() vs parent unregistration race + - pmdomain: bcm: bcm2835-power: check if the ASB register is equal to enable + - pmdomain: amlogic: Fix mask for the second NNA mem PD domain + - pmdomain: imx: Make imx pgc power domain also set the fwnode + - PCI: qcom-ep: Add dedicated callback for writing to DBI2 registers + - PCI: Lengthen reset delay for VideoPropulsion Torrent QN16e card + - torture: Add a kthread-creation callback to _torture_create_kthread() + - torture: Add lock_torture writer_fifo module parameter + - torture: Make torture_hrtimeout_*() use TASK_IDLE + - torture: Move stutter_wait() timeouts to hrtimers + - torture: Make torture_hrtimeout_ns() take an hrtimer mode parameter + - rcutorture: Fix stuttering races and other issues + - mm/hugetlb: prepare hugetlb_follow_page_mask() for FOLL_PIN + - mm/hugetlb: use nth_page() in place of direct struct page manipulation + - parisc: Prevent booting 64-bit kernels on PA1.x machines + - parisc/pgtable: Do not drop upper 5 address bits of physical address + - parisc/power: Fix power soft-off when running on qemu + - xhci: Enable RPM on controllers that support low-power states + - fs: add ctime accessors infrastructure + - smb3: fix creating FIFOs when mounting with "sfu" mount option + - smb3: fix touch -h of symlink + - smb3: allow dumping session and tcon id to improve stats analysis and + debugging + - smb3: fix caching of ctime on setxattr + - smb: client: fix use-after-free bug in cifs_debug_data_proc_show() + - smb: client: fix use-after-free in smb2_query_info_compound() + - smb: client: fix potential deadlock when releasing mids + - cifs: reconnect helper should set reconnect for the right channel + - cifs: force interface update before a fresh session setup + - cifs: do not reset chan_max if multichannel is not supported at mount + - cifs: Fix encryption of cleared, but unset rq_iter data buffers + - xfs: recovery should not clear di_flushiter unconditionally + - btrfs: zoned: wait for data BG to be finished on direct IO allocation + - ALSA: info: Fix potential deadlock at disconnection + - ALSA: hda/realtek: Enable Mute LED on HP 255 G8 + - ALSA: hda/realtek - Add Dell ALC295 to pin fall back table + - ALSA: hda/realtek - Enable internal speaker of ASUS K6500ZC + - ALSA: hda/realtek: Enable Mute LED on HP 255 G10 + - ALSA: hda/realtek: Add quirks for HP Laptops + - Revert ncsi: Propagate carrier gain/loss events to the NCSI controller + - Revert "i2c: pxa: move to generic GPIO recovery" + - lsm: fix default return value for vm_enough_memory + - lsm: fix default return value for inode_getsecctx + - sbsa_gwdt: Calculate timeout with 64-bit math + - i2c: designware: Disable TX_EMPTY irq while waiting for block length byte + - s390/ap: fix AP bus crash on early config change callback invocation + - net: ethtool: Fix documentation of ethtool_sprintf() + - net: dsa: lan9303: consequently nested-lock physical MDIO + - net: phylink: initialize carrier state at creation + - gfs2: don't withdraw if init_threads() got interrupted + - i2c: i801: fix potential race in i801_block_transaction_byte_by_byte + - f2fs: do not return EFSCORRUPTED, but try to run online repair + - f2fs: set the default compress_level on ioctl + - f2fs: avoid format-overflow warning + - f2fs: split initial and dynamic conditions for extent_cache + - media: lirc: drop trailing space from scancode transmit + - media: sharp: fix sharp encoding + - media: venus: hfi_parser: Add check to keep the number of codecs within + range + - media: venus: hfi: fix the check to handle session buffer requirement + - media: venus: hfi: add checks to handle capabilities from firmware + - media: ccs: Correctly initialise try compose rectangle + - drm/mediatek/dp: fix memory leak on ->get_edid callback audio detection + - drm/mediatek/dp: fix memory leak on ->get_edid callback error path + - dm-bufio: fix no-sleep mode + - dm-verity: don't use blocking calls from tasklets + - nfsd: fix file memleak on client_opens_release + - NFSD: Update nfsd_cache_append() to use xdr_stream + - LoongArch: Mark __percpu functions as always inline + - riscv: Using TOOLCHAIN_HAS_ZIHINTPAUSE marco replace zihintpause + - riscv: put interrupt entries into .irqentry.text + - riscv: mm: Update the comment of CONFIG_PAGE_OFFSET + - riscv: correct pt_level name via pgtable_l5/4_enabled + - riscv: kprobes: allow writing to x0 + - mmc: sdhci-pci-gli: A workaround to allow GL9750 to enter ASPM L1.2 + - mm: fix for negative counter: nr_file_hugepages + - mm: kmem: drop __GFP_NOFAIL when allocating objcg vectors + - mptcp: deal with large GSO size + - mptcp: add validity check for sending RM_ADDR + - mptcp: fix setsockopt(IP_TOS) subflow locking + - selftests: mptcp: fix fastclose with csum failure + - mmc: sdhci-pci-gli: GL9750: Mask the replay timer timeout of AER + - media: qcom: camss: Fix pm_domain_on sequence in probe + - media: qcom: camss: Fix vfe_get() error jump + - media: qcom: camss: Fix VFE-17x vfe_disable_output() + - media: qcom: camss: Fix VFE-480 vfe_disable_output() + - media: qcom: camss: Fix missing vfe_lite clocks check + - media: qcom: camss: Fix set CSI2_RX_CFG1_VC_MODE when VC is greater than 3 + - media: qcom: camss: Fix invalid clock enable bit disjunction + - media: qcom: camss: Fix csid-gen2 for test pattern generator + - ext4: fix race between writepages and remount + - ext4: make sure allocate pending entry not fail + - ext4: apply umask if ACL support is disabled + - ext4: correct offset of gdb backup in non meta_bg group to update_backups + - ext4: mark buffer new if it is unwritten to avoid stale data exposure + - ext4: correct return value of ext4_convert_meta_bg + - ext4: correct the start block of counting reserved clusters + - ext4: remove gdb backup copy for meta bg in setup_new_flex_group_blocks + - ext4: add missed brelse in update_backups + - ext4: properly sync file size update after O_SYNC direct IO + - ext4: fix racy may inline data check in dio write + - drm/amd/pm: Handle non-terminated overdrive commands. + - drm: bridge: it66121: ->get_edid callback must not return err pointers + - drm/i915/mtl: Support HBR3 rate with C10 phy and eDP in MTL + - drm/i915: Bump GLK CDCLK frequency when driving multiple pipes + - drm/i915: Fix potential spectre vulnerability + - drm/i915: Flush WC GGTT only on required platforms + - drm/amdgpu/smu13: drop compute workload workaround + - drm/amdgpu: don't use pci_is_thunderbolt_attached() + - drm/amdgpu: fix GRBM read timeout when do mes_self_test + - drm/amdgpu: add a retry for IP discovery init + - drm/amdgpu: don't use ATRM for external devices + - drm/amdgpu: fix error handling in amdgpu_vm_init + - drm/amdgpu: fix error handling in amdgpu_bo_list_get() + - drm/amdgpu: lower CS errors to debug severity + - drm/amdgpu: Fix possible null pointer dereference + - drm/amd/display: Guard against invalid RPTR/WPTR being set + - drm/amd/display: Fix DSC not Enabled on Direct MST Sink + - drm/amd/display: fix a NULL pointer dereference in amdgpu_dm_i2c_xfer() + - drm/amd/display: Enable fast plane updates on DCN3.2 and above + - drm/amd/display: Change the DMCUB mailbox memory location from FB to inbox + - powerpc/powernv: Fix fortify source warnings in opal-prd.c + - tracing: Have trace_event_file have ref counters + - net/mlx5e: Avoid referencing skb after free-ing in drop path of + mlx5e_sq_xmit_wqe + - net/mlx5e: Track xmit submission to PTP WQ after populating metadata map + - Linux 6.5.13 + + * Mantic update: v6.5.12 upstream stable release (LP: #2051129) + - hwmon: (nct6775) Fix incorrect variable reuse in fan_div calculation + - numa: Generalize numa_map_to_online_node() + - sched/topology: Fix sched_numa_find_nth_cpu() in CPU-less case + - sched/topology: Fix sched_numa_find_nth_cpu() in non-NUMA case + - sched/fair: Fix cfs_rq_is_decayed() on !SMP + - iov_iter, x86: Be consistent about the __user tag on copy_mc_to_user() + - sched/uclamp: Set max_spare_cap_cpu even if max_spare_cap is 0 + - sched/uclamp: Ignore (util == 0) optimization in feec() when p_util_max = 0 + - objtool: Propagate early errors + - sched: Fix stop_one_cpu_nowait() vs hotplug + - nfsd: Handle EOPENSTALE correctly in the filecache + - vfs: fix readahead(2) on block devices + - writeback, cgroup: switch inodes with dirty timestamps to release dying + cgwbs + - x86/srso: Fix SBPB enablement for (possible) future fixed HW + - x86/srso: Print mitigation for retbleed IBPB case + - x86/srso: Fix vulnerability reporting for missing microcode + - x86/srso: Fix unret validation dependencies + - futex: Don't include process MM in futex key on no-MMU + - x86/numa: Introduce numa_fill_memblks() + - ACPI/NUMA: Apply SRAT proximity domain to entire CFMWS window + - x86/sev-es: Allow copy_from_kernel_nofault() in earlier boot + - x86/boot: Fix incorrect startup_gdt_descr.size + - cpu/hotplug: Remove dependancy against cpu_primary_thread_mask + - cpu/SMT: Create topology_smt_thread_allowed() + - cpu/SMT: Make SMT control more robust against enumeration failures + - x86/apic: Fake primary thread mask for XEN/PV + - srcu: Fix callbacks acceleration mishandling + - drivers/clocksource/timer-ti-dm: Don't call clk_get_rate() in stop function + - x86/nmi: Fix out-of-order NMI nesting checks & false positive warning + - pstore/platform: Add check for kstrdup + - perf: Optimize perf_cgroup_switch() + - selftests/x86/lam: Zero out buffer for readlink() + - PCI/MSI: Provide stubs for IMS functions + - string: Adjust strtomem() logic to allow for smaller sources + - genirq/matrix: Exclude managed interrupts in irq_matrix_allocated() + - irqchip/sifive-plic: Fix syscore registration for multi-socket systems + - wifi: ath12k: fix undefined behavior with __fls in dp + - wifi: cfg80211: add flush functions for wiphy work + - wifi: mac80211: move radar detect work to wiphy work + - wifi: mac80211: move scan work to wiphy work + - wifi: mac80211: move offchannel works to wiphy work + - wifi: mac80211: move sched-scan stop work to wiphy work + - wifi: mac80211: fix RCU usage warning in mesh fast-xmit + - wifi: cfg80211: fix off-by-one in element defrag + - wifi: mac80211: fix # of MSDU in A-MSDU calculation + - wifi: iwlwifi: honor the enable_ini value + - wifi: iwlwifi: don't use an uninitialized variable + - i40e: fix potential memory leaks in i40e_remove() + - iavf: Fix promiscuous mode configuration flow messages + - selftests/bpf: Correct map_fd to data_fd in tailcalls + - bpf, x86: save/restore regs with BPF_DW size + - bpf, x86: allow function arguments up to 12 for TRACING + - bpf, x64: Fix tailcall infinite loop + - wifi: cfg80211: fix kernel-doc for wiphy_delayed_work_flush() + - udp: introduce udp->udp_flags + - udp: move udp->no_check6_tx to udp->udp_flags + - udp: move udp->no_check6_rx to udp->udp_flags + - udp: move udp->gro_enabled to udp->udp_flags + - udp: add missing WRITE_ONCE() around up->encap_rcv + - udp: move udp->accept_udp_{l4|fraglist} to udp->udp_flags + - udp: lockless UDP_ENCAP_L2TPINUDP / UDP_GRO + - udp: annotate data-races around udp->encap_type + - udplite: remove UDPLITE_BIT + - udplite: fix various data-races + - selftests/bpf: Skip module_fentry_shadow test when bpf_testmod is not + available + - tcp: call tcp_try_undo_recovery when an RTOd TFO SYNACK is ACKed + - bpf: Fix kfunc callback register type handling + - gve: Use size_add() in call to struct_size() + - mlxsw: Use size_mul() in call to struct_size() + - tls: Use size_add() in call to struct_size() + - tipc: Use size_add() in calls to struct_size() + - net: spider_net: Use size_add() in call to struct_size() + - net: ethernet: mtk_wed: fix EXT_INT_STATUS_RX_FBUF definitions for MT7986 + SoC + - wifi: rtw88: debug: Fix the NULL vs IS_ERR() bug for debugfs_create_file() + - wifi: ath12k: fix DMA unmap warning on NULL DMA address + - wifi: ath11k: fix boot failure with one MSI vector + - wifi: mac80211: fix check for unusable RX result + - PM: sleep: Fix symbol export for _SIMPLE_ variants of _PM_OPS() + - cpufreq: tegra194: fix warning due to missing opp_put + - wifi: mt76: mt7603: rework/fix rx pse hang check + - wifi: mt76: mt7603: improve watchdog reset reliablity + - wifi: mt76: mt7603: improve stuck beacon handling + - wifi: mt76: connac: move connac3 definitions in mt76_connac3_mac.h + - wifi: mt76: remove unused error path in mt76_connac_tx_complete_skb + - wifi: mt76: mt7996: set correct wcid in txp + - wifi: mt76: mt7996: fix beamform mcu cmd configuration + - wifi: mt76: mt7996: fix beamformee ss subfield in EHT PHY cap + - wifi: mt76: mt7996: fix wmm queue mapping + - wifi: mt76: mt7996: fix rx rate report for CBW320-2 + - wifi: mt76: mt7996: fix TWT command format + - wifi: mt76: update beacon size limitation + - wifi: mt76: fix potential memory leak of beacon commands + - wifi: mt76: get rid of false alamrs of tx emission issues + - wifi: mt76: fix per-band IEEE80211_CONF_MONITOR flag comparison + - wifi: mt76: mt7915: fix beamforming availability check + - wifi: ath: dfs_pattern_detector: Fix a memory initialization issue + - tcp_metrics: add missing barriers on delete + - tcp_metrics: properly set tp->snd_ssthresh in tcp_init_metrics() + - tcp_metrics: do not create an entry from tcp_init_metrics() + - wifi: rtlwifi: fix EDCA limit set by BT coexistence + - ACPI: property: Allow _DSD buffer data only for byte accessors + - ACPI: video: Add acpi_backlight=vendor quirk for Toshiba Portégé R100 + - can: etas_es58x: rework the version check logic to silence -Wformat- + truncation + - can: etas_es58x: add missing a blank line after declaration + - wifi: ath11k: fix Tx power value during active CAC + - can: dev: can_restart(): don't crash kernel if carrier is OK + - can: dev: can_restart(): fix race condition between controller restart and + netif_carrier_on() + - can: dev: can_put_echo_skb(): don't crash kernel if can_priv::echo_skb is + accessed out of bounds + - PM / devfreq: rockchip-dfi: Make pmu regmap mandatory + - wifi: wfx: fix case where rates are out of order + - netfilter: nf_tables: Drop pointless memset when dumping rules + - wifi: rtw88: Remove duplicate NULL check before calling usb_kill/free_urb() + - thermal: core: prevent potential string overflow + - r8169: fix rare issue with broken rx after link-down on RTL8125 + - thermal/drivers/mediatek: Fix probe for THERMAL_V2 + - bpf: Fix missed rcu read lock in bpf_task_under_cgroup() + - selftests: netfilter: test for sctp collision processing in nf_conntrack + - net: skb_find_text: Ignore patterns extending past 'to' + - thermal: core: Don't update trip points inside the hysteresis range + - chtls: fix tp->rcv_tstamp initialization + - tcp: fix cookie_init_timestamp() overflows + - wifi: iwlwifi: mvm: update station's MFP flag after association + - wifi: iwlwifi: mvm: fix removing pasn station for responder + - wifi: iwlwifi: mvm: use correct sta ID for IGTK/BIGTK + - wifi: mac80211: don't recreate driver link debugfs in reconfig + - wifi: mac80211: Fix setting vif links + - wifi: iwlwifi: yoyo: swap cdb and jacket bits values + - wifi: iwlwifi: mvm: Correctly set link configuration + - wifi: iwlwifi: mvm: Fix key flags for IGTK on AP interface + - wifi: iwlwifi: mvm: Don't always bind/link the P2P Device interface + - wifi: iwlwifi: mvm: change iwl_mvm_flush_sta() API + - wifi: iwlwifi: mvm: fix iwl_mvm_mac_flush_sta() + - wifi: iwlwifi: mvm: remove TDLS stations from FW + - wifi: iwlwifi: increase number of RX buffers for EHT devices + - wifi: iwlwifi: mvm: fix netif csum flags + - wifi: iwlwifi: pcie: synchronize IRQs before NAPI + - wifi: iwlwifi: mvm: update IGTK in mvmvif upon D3 resume + - wifi: iwlwifi: empty overflow queue during flush + - Bluetooth: ISO: Use defer setup to separate PA sync and BIG sync + - Bluetooth: ISO: Pass BIG encryption info through QoS + - Bluetooth: Make handle of hci_conn be unique + - Bluetooth: hci_sync: Fix Opcode prints in bt_dev_dbg/err + - bpf: Fix unnecessary -EBUSY from htab_lock_bucket + - ACPI: sysfs: Fix create_pnp_modalias() and create_of_modalias() + - mptcp: properly account fastopen data + - ipv6: avoid atomic fragment on GSO packets + - virtio_net: use u64_stats_t infra to avoid data-races + - net: add DEV_STATS_READ() helper + - ipvlan: properly track tx_errors + - regmap: debugfs: Fix a erroneous check after snprintf() + - spi: tegra: Fix missing IRQ check in tegra_slink_probe() + - clk: qcom: ipq5332: Drop set rate parent from gpll0 dependent clocks + - clk: qcom: gcc-msm8996: Remove RPM bus clocks + - clk: qcom: clk-rcg2: Fix clock rate overflow for high parent frequencies + - clk: qcom: mmcc-msm8998: Don't check halt bit on some branch clks + - clk: qcom: mmcc-msm8998: Fix the SMMU GDSC + - clk: qcom: gcc-sm8150: Fix gcc_sdcc2_apps_clk_src + - regulator: mt6358: Fail probe on unknown chip ID + - clk: imx: Select MXC_CLK for CLK_IMX8QXP + - clk: imx: imx8mq: correct error handling path + - clk: imx: imx8qxp: Fix elcdif_pll clock + - clk: renesas: rcar-gen3: Extend SDnH divider table + - clk: renesas: rzg2l: Wait for status bit of SD mux before continuing + - clk: renesas: rzg2l: Lock around writes to mux register + - clk: renesas: rzg2l: Trust value returned by hardware + - clk: renesas: rzg2l: Use FIELD_GET() for PLL register fields + - clk: renesas: rzg2l: Fix computation formula + - clk: linux/clk-provider.h: fix kernel-doc warnings and typos + - spi: nxp-fspi: use the correct ioremap function + - clk: ralink: mtmips: quiet unused variable warning + - clk: keystone: pll: fix a couple NULL vs IS_ERR() checks + - clk: ti: fix double free in of_ti_divider_clk_setup() + - clk: npcm7xx: Fix incorrect kfree + - clk: mediatek: clk-mt6765: Add check for mtk_alloc_clk_data + - clk: mediatek: clk-mt6779: Add check for mtk_alloc_clk_data + - clk: mediatek: clk-mt6797: Add check for mtk_alloc_clk_data + - clk: mediatek: clk-mt7629-eth: Add check for mtk_alloc_clk_data + - clk: mediatek: clk-mt7629: Add check for mtk_alloc_clk_data + - clk: mediatek: clk-mt2701: Add check for mtk_alloc_clk_data + - clk: qcom: config IPQ_APSS_6018 should depend on QCOM_SMEM + - clk: qcom: clk-alpha-pll: introduce stromer plus ops + - clk: qcom: apss-ipq-pll: Use stromer plus ops for stromer plus pll + - clk: qcom: apss-ipq-pll: Fix 'l' value for ipq5332_pll_config + - clk: qcom: ipq9574: drop the CLK_SET_RATE_PARENT flag from GPLL clocks + - clk: qcom: ipq5332: drop the CLK_SET_RATE_PARENT flag from GPLL clocks + - clk: mediatek: fix double free in mtk_clk_register_pllfh() + - platform/x86: wmi: Fix probe failure when failing to register WMI devices + - platform/x86: wmi: Fix opening of char device + - regulator: qcom-rpmh: Fix smps4 regulator for pm8550ve + - hwmon: (axi-fan-control) Fix possible NULL pointer dereference + - hwmon: (coretemp) Fix potentially truncated sysfs attribute name + - Revert "hwmon: (sch56xx-common) Add DMI override table" + - Revert "hwmon: (sch56xx-common) Add automatic module loading on supported + devices" + - hwmon: (sch5627) Use bit macros when accessing the control register + - hwmon: (sch5627) Disallow write access if virtual registers are locked + - hte: tegra: Fix missing error code in tegra_hte_test_probe() + - platform/chrome: cros_ec_lpc: Separate host command and irq disable + - spi: omap2-mcspi: remove redundant dev_err_probe() + - spi: omap2-mcspi: switch to use modern name + - spi: omap2-mcspi: Fix hardcoded reference clock + - drm: bridge: samsung-dsim: Initialize ULPS EXIT for i.MX8M DSIM + - drm: bridge: for GENERIC_PHY_MIPI_DPHY also select GENERIC_PHY + - drm: bridge: samsung-dsim: Fix waiting for empty cmd transfer FIFO on older + Exynos + - drm/rockchip: vop: Fix reset of state in duplicate state crtc funcs + - drm/rockchip: vop: Fix call to crtc reset helper + - drm/rockchip: vop2: Don't crash for invalid duplicate_state + - drm/rockchip: vop2: Add missing call to crtc reset helper + - drm/radeon: possible buffer overflow + - drm: bridge: it66121: Fix invalid connector dereference + - drm/bridge: lt8912b: Fix bridge_detach + - drm/bridge: lt8912b: Fix crash on bridge detach + - drm/bridge: lt8912b: Manually disable HPD only if it was enabled + - drm/bridge: lt8912b: Add missing drm_bridge_attach call + - drm/mediatek: Fix coverity issue with unintentional integer overflow + - x86/tdx: Zero out the missing RSI in TDX_HYPERCALL macro + - drm/bridge: tc358768: Fix use of uninitialized variable + - drm/bridge: tc358768: Fix bit updates + - drm/bridge: tc358768: Use struct videomode + - drm/bridge: tc358768: Print logical values, not raw register values + - drm/bridge: tc358768: Use dev for dbg prints, not priv->dev + - drm/bridge: tc358768: Rename dsibclk to hsbyteclk + - drm/bridge: tc358768: Clean up clock period code + - drm/bridge: tc358768: Fix tc358768_ns_to_cnt() + - drm/aspeed: Convert to platform remove callback returning void + - drm/stm: Convert to platform remove callback returning void + - drm/tve200: Convert to platform remove callback returning void + - drm: Call drm_atomic_helper_shutdown() at shutdown/remove time for misc + drivers + - drm/amdgpu: Increase IH soft ring size for GFX v9.4.3 dGPU + - drm/amdkfd: fix some race conditions in vram buffer alloc/free of svm code + - drm/amdkfd: retry after EBUSY is returned from hmm_ranges_get_pages + - drm/amdkfd: Remove svm range validated_once flag + - drm/amdkfd: Handle errors from svm validate and map + - drm/amd/display: Fix null pointer dereference in error message + - drm/amd/display: Check all enabled planes in dm_check_crtc_cursor + - drm/amd/display: Refactor dm_get_plane_scale helper + - drm/amd/display: Bail from dm_check_crtc_cursor if no relevant change + - io_uring/kbuf: Fix check of BID wrapping in provided buffers + - io_uring/kbuf: Allow the full buffer id space for provided buffers + - drm/mediatek: Add mmsys_dev_num to mt8188 vdosys0 driver data + - drm/mediatek: Fix iommu fault by swapping FBs after updating plane state + - drm/mediatek: Fix iommu fault during crtc enabling + - accel/habanalabs/gaudi2: Fix incorrect string length computation in + gaudi2_psoc_razwi_get_engines() + - drm/rockchip: cdn-dp: Fix some error handling paths in cdn_dp_probe() + - gpu: host1x: Correct allocated size for contexts + - drm/bridge: lt9611uxc: fix the race in the error path + - arm64/arm: xen: enlighten: Fix KPTI checks + - drm/rockchip: Fix type promotion bug in rockchip_gem_iommu_map() + - xenbus: fix error exit in xenbus_init() + - xen-pciback: Consider INTx disabled when MSI/MSI-X is enabled + - drm/msm/dsi: use msm_gem_kernel_put to free TX buffer + - drm/msm/dsi: free TX buffer in unbind + - clocksource/drivers/arm_arch_timer: limit XGene-1 workaround + - drm: mediatek: mtk_dsi: Fix NO_EOT_PACKET settings/handling + - drivers/perf: hisi: use cpuhp_state_remove_instance_nocalls() for + hisi_hns3_pmu uninit process + - drm/amd/pm: Fix a memory leak on an error path + - perf/arm-cmn: Fix DTC domain detection + - drivers/perf: hisi_pcie: Check the type first in pmu::event_init() + - perf: hisi: Fix use-after-free when register pmu fails + - ARM: dts: renesas: blanche: Fix typo in GP_11_2 pin name + - arm64: dts: qcom: sdm845: Fix PSCI power domain names + - arm64: dts: qcom: sdm845: cheza doesn't support LMh node + - arm64: dts: qcom: sc7280: link usb3_phy_wrapper_gcc_usb30_pipe_clk + - arm64: dts: qcom: msm8916: Fix iommu local address range + - arm64: dts: qcom: msm8992-libra: drop duplicated reserved memory + - arm64: dts: qcom: sm6125: Pad APPS IOMMU address to 8 characters + - arm64: dts: qcom: sc7280: Add missing LMH interrupts + - arm64: dts: qcom: qrb2210-rb1: Swap UART index + - arm64: dts: qcom: sc7280: drop incorrect EUD port on SoC side + - arm64: dts: qcom: sm8150: add ref clock to PCIe PHYs + - arm64: dts: qcom: sm8350: fix pinctrl for UART18 + - arm64: dts: qcom: sdm845-mtp: fix WiFi configuration + - ARM64: dts: marvell: cn9310: Use appropriate label for spi1 pins + - arm64: dts: qcom: msm8976: Fix ipc bit shifts + - arm64: dts: qcom: msm8939: Fix iommu local address range + - riscv: dts: allwinner: remove address-cells from intc node + - arm64: dts: qcom: apq8016-sbc: Add missing ADV7533 regulators + - ARM: dts: qcom: apq8026-samsung-matisse-wifi: Fix inverted hall sensor + - ARM: dts: qcom: mdm9615: populate vsdcc fixed regulator + - soc: qcom: llcc: Handle a second device without data corruption + - kunit: Fix missed memory release in kunit_free_suite_set() + - firmware: ti_sci: Mark driver as non removable + - arm64: dts: ti: k3-am625-beagleplay: Fix typo in ramoops reg + - arm64: dts: ti: k3-am62a7-sk: Drop i2c-1 to 100Khz + - firmware: arm_ffa: Assign the missing IDR allocation ID to the FFA device + - firmware: arm_ffa: Allow the FF-A drivers to use 32bit mode of messaging + - ARM: dts: am3517-evm: Fix LED3/4 pinmux + - clk: scmi: Free scmi_clk allocated when the clocks with invalid info are + skipped + - arm64: dts: imx8qm-ss-img: Fix jpegenc compatible entry + - arm64: dts: imx8mp-debix-model-a: Remove USB hub reset-gpios + - arm64: dts: imx8mm: Add sound-dai-cells to micfil node + - arm64: dts: imx8mn: Add sound-dai-cells to micfil node + - arm64: tegra: Fix P3767 card detect polarity + - arm64: tegra: Fix P3767 QSPI speed + - firmware: tegra: Add suspend hook and reset BPMP IPC early on resume + - memory: tegra: Set BPMP msg flags to reset IPC channels + - arm64: tegra: Use correct interrupts for Tegra234 TKE + - selftests/pidfd: Fix ksft print formats + - selftests/resctrl: Ensure the benchmark commands fits to its array + - soc: qcom: pmic_glink: fix connector type to be DisplayPort + - ARM: dts: BCM5301X: Explicitly disable unused switch CPU ports + - iommufd: Add iopt_area_alloc() + - module/decompress: use vmalloc() for gzip decompression workspace + - ASoC: cs35l41: Handle mdsync_down reg write errors + - ASoC: cs35l41: Initialize completion object before requesting IRQ + - ASoC: cs35l41: Verify PM runtime resume errors in IRQ handler + - ASoC: cs35l41: Undo runtime PM changes at driver exit time + - ALSA: hda: cs35l41: Fix unbalanced pm_runtime_get() + - ALSA: hda: cs35l41: Undo runtime PM changes at driver exit time + - KEYS: Include linux/errno.h in linux/verification.h + - crypto: hisilicon/hpre - Fix a erroneous check after snprintf() + - hwrng: bcm2835 - Fix hwrng throughput regression + - hwrng: geode - fix accessing registers + - RDMA/core: Use size_{add,sub,mul}() in calls to struct_size() + - crypto: qat - fix state machines cleanup paths + - crypto: qat - ignore subsequent state up commands + - crypto: qat - fix unregistration of crypto algorithms + - crypto: qat - fix unregistration of compression algorithms + - scsi: ibmvfc: Fix erroneous use of rtas_busy_delay with hcall return code + - ASoC: soc-pcm.c: Make sure DAI parameters cleared if the DAI becomes + inactive + - libnvdimm/of_pmem: Use devm_kstrdup instead of kstrdup and check its return + value + - nd_btt: Make BTT lanes preemptible + - crypto: caam/qi2 - fix Chacha20 + Poly1305 self test failure + - crypto: caam/jr - fix Chacha20 + Poly1305 self test failure + - crypto: qat - increase size of buffers + - ASoC: SOF: ipc4-topology: Use size_add() in call to struct_size() + - PCI: vmd: Correct PCI Header Type Register's multi-function check + - hid: cp2112: Fix duplicate workqueue initialization + - crypto: hisilicon/qm - fix PF queue parameter issue + - ARM: 9321/1: memset: cast the constant byte to unsigned char + - ARM: 9323/1: mm: Fix ARCH_LOW_ADDRESS_LIMIT when CONFIG_ZONE_DMA + - ext4: move 'ix' sanity check to corrent position + - kselftest: vm: fix mdwe's mmap_FIXED test case + - ASoC: fsl: mpc5200_dma.c: Fix warning of Function parameter or member not + described + - backlight: pwm_bl: Disable PWM on shutdown, suspend and remove + - ASoC: fsl-asoc-card: Add comment for mclk in the codec_priv + - dlm: fix no ack after final message + - IB/mlx5: Fix rdma counter binding for RAW QP + - RDMA/hns: Fix printing level of asynchronous events + - RDMA/hns: Fix uninitialized ucmd in hns_roce_create_qp_common() + - RDMA/hns: Fix signed-unsigned mixed comparisons + - RDMA/hns: Add check for SL + - RDMA/hns: The UD mode can only be configured with DCQCN + - ASoC: SOF: core: Ensure sof_ops_free() is still called when probe never ran. + - ASoC: fsl: Fix PM disable depth imbalance in fsl_easrc_probe + - scsi: ufs: core: Leave space for '\0' in utf8 desc string + - RDMA/hfi1: Workaround truncation compilation error + - HID: cp2112: Make irq_chip immutable + - hid: cp2112: Fix IRQ shutdown stopping polling for all IRQs on chip + - HID: uclogic: Fix user-memory-access bug in + uclogic_params_ugee_v2_init_event_hooks() + - HID: uclogic: Fix a work->entry not empty bug in __queue_work() + - sh: bios: Revive earlyprintk support + - HID: logitech-hidpp: Don't restart IO, instead defer hid_connect() only + - HID: logitech-hidpp: Revert "Don't restart communication if not necessary" + - HID: logitech-hidpp: Move get_wireless_feature_index() check to + hidpp_connect_event() + - ASoC: Intel: Skylake: Fix mem leak when parsing UUIDs fails + - PCI: endpoint: Fix double free in __pci_epc_create() + - padata: Fix refcnt handling in padata_free_shell() + - certs: Break circular dependency when selftest is modular + - crypto: qat - fix deadlock in backlog processing + - ASoC: ams-delta.c: use component after check + - erofs: fix erofs_insert_workgroup() lockref usage + - IB/mlx5: Fix init stage error handling to avoid double free of same QP and + UAF + - mfd: core: Un-constify mfd_cell.of_reg + - mfd: core: Ensure disabled devices are skipped without aborting + - mfd: dln2: Fix double put in dln2_probe + - dt-bindings: mfd: mt6397: Split out compatible for MediaTek MT6366 PMIC + - mfd: arizona-spi: Set pdata.hpdet_channel for ACPI enumerated devs + - leds: turris-omnia: Drop unnecessary mutex locking + - leds: turris-omnia: Do not use SMBUS calls + - leds: pwm: Don't disable the PWM when the LED should be off + - leds: trigger: ledtrig-cpu:: Fix 'output may be truncated' issue for 'cpu' + - scripts/gdb: fix usage of MOD_TEXT not defined when CONFIG_MODULES=n + - perf stat: Fix aggr mode initialization + - iio: frequency: adf4350: Use device managed functions and fix power down + issue. + - perf kwork: Fix incorrect and missing free atom in work_push_atom() + - perf kwork: Add the supported subcommands to the document + - perf kwork: Set ordered_events to true in 'struct perf_tool' + - f2fs: compress: fix deadloop in f2fs_write_cache_pages() + - f2fs: compress: fix to avoid use-after-free on dic + - f2fs: compress: fix to avoid redundant compress extension + - f2fs: fix to drop meta_inode's page cache in f2fs_put_super() + - tty: tty_jobctrl: fix pid memleak in disassociate_ctty() + - perf parse-events: Remove unused PE_PMU_EVENT_FAKE token + - perf parse-events: Remove unused PE_KERNEL_PMU_EVENT token + - perf parse-events: Remove ABORT_ON + - perf tools: Revert enable indices setting syntax for BPF map + - perf parse-events: Fix tracepoint name memory leak + - livepatch: Fix missing newline character in klp_resolve_symbols() + - pinctrl: renesas: rzg2l: Make reverse order of enable() for disable() + - perf record: Fix BTF type checks in the off-cpu profiling + - dmaengine: idxd: Register dsa_bus_type before registering idxd sub-drivers + - usb: dwc2: fix possible NULL pointer dereference caused by driver + concurrency + - usb: chipidea: Fix DMA overwrite for Tegra + - usb: chipidea: Simplify Tegra DMA alignment code + - dmaengine: ti: edma: handle irq_of_parse_and_map() errors + - tools/perf: Update call stack check in builtin-lock.c + - misc: st_core: Do not call kfree_skb() under spin_lock_irqsave() + - tools: iio: iio_generic_buffer ensure alignment + - USB: usbip: fix stub_dev hub disconnect + - dmaengine: pxa_dma: Remove an erroneous BUG_ON() in pxad_free_desc() + - f2fs: fix to initialize map.m_pblk in f2fs_precache_extents() + - interconnect: qcom: qdu1000: Set ACV enable_mask + - interconnect: qcom: sc7180: Retire DEFINE_QBCM + - interconnect: qcom: sc7180: Set ACV enable_mask + - interconnect: qcom: sc7280: Set ACV enable_mask + - interconnect: qcom: sc8180x: Set ACV enable_mask + - interconnect: qcom: sc8280xp: Set ACV enable_mask + - interconnect: qcom: sdm670: Retire DEFINE_QBCM + - interconnect: qcom: sdm670: Set ACV enable_mask + - interconnect: qcom: sdm845: Retire DEFINE_QBCM + - interconnect: qcom: sdm845: Set ACV enable_mask + - interconnect: qcom: sm6350: Retire DEFINE_QBCM + - interconnect: qcom: sm6350: Set ACV enable_mask + - interconnect: qcom: sm8150: Retire DEFINE_QBCM + - interconnect: qcom: sm8150: Set ACV enable_mask + - interconnect: qcom: sm8350: Retire DEFINE_QBCM + - interconnect: qcom: sm8350: Set ACV enable_mask + - powerpc: Only define __parse_fpscr() when required + - interconnect: fix error handling in qnoc_probe() + - perf build: Add missing comment about NO_LIBTRACEEVENT=1 + - perf parse-events: Fix for term values that are raw events + - perf pmu: Remove logic for PMU name being NULL + - perf mem-events: Avoid uninitialized read + - s390/ap: re-init AP queues on config on + - modpost: fix tee MODULE_DEVICE_TABLE built on big-endian host + - modpost: fix ishtp MODULE_DEVICE_TABLE built on big-endian host + - perf tools: Do not ignore the default vmlinux.h + - powerpc/40x: Remove stale PTE_ATOMIC_UPDATES macro + - powerpc/xive: Fix endian conversion size + - powerpc: Hide empty pt_regs at base of the stack + - perf trace: Use the right bpf_probe_read(_str) variant for reading user data + - powerpc/vas: Limit open window failure messages in log bufffer + - powerpc/imc-pmu: Use the correct spinlock initializer. + - powerpc/pseries: fix potential memory leak in init_cpu_associativity() + - perf vendor events: Update PMC used in PM_RUN_INST_CMPL event for power10 + platform + - xhci: Loosen RPM as default policy to cover for AMD xHC 1.1 + - usb: host: xhci-plat: fix possible kernel oops while resuming + - perf machine: Avoid out of bounds LBR memory read + - libperf rc_check: Make implicit enabling work for GCC + - perf hist: Add missing puts to hist__account_cycles + - perf vendor events intel: Fix broadwellde tma_info_system_dram_bw_use metric + - perf vendor events intel: Add broadwellde two metrics + - 9p/net: fix possible memory leak in p9_check_errors() + - rtla: Fix uninitialized variable found + - i3c: Fix potential refcount leak in i3c_master_register_new_i3c_devs + - rtc: brcmstb-waketimer: support level alarm_irq + - cxl/pci: Remove unnecessary device reference management in sanitize work + - cxl/pci: Cleanup 'sanitize' to always poll + - cxl/pci: Remove inconsistent usage of dev_err_probe() + - cxl/pci: Clarify devm host for memdev relative setup + - cxl/pci: Fix sanitize notifier setup + - cxl/memdev: Fix sanitize vs decoder setup locking + - cxl/mem: Fix shutdown order + - virt: sevguest: Fix passing a stack buffer as a scatterlist target + - rtc: pcf85363: Allow to wake up system without IRQ + - rtc: pcf85363: fix wrong mask/val parameters in regmap_update_bits call + - cxl/region: Prepare the decoder match range helper for reuse + - cxl/region: Calculate a target position in a region interleave + - cxl/region: Use cxl_calc_interleave_pos() for auto-discovery + - cxl/region: Fix cxl_region_rwsem lock held when returning to user space + - cxl/core/regs: Rename @dev to @host in struct cxl_register_map + - cxl/port: Fix @host confusion in cxl_dport_setup_regs() + - cxl/hdm: Remove broken error path + - pcmcia: cs: fix possible hung task and memory leak pccardd() + - pcmcia: ds: fix refcount leak in pcmcia_device_add() + - pcmcia: ds: fix possible name leak in error path in pcmcia_device_add() + - media: imx-jpeg: initiate a drain of the capture queue in dynamic resolution + change + - media: hantro: Check whether reset op is defined before use + - media: verisilicon: Do not enable G2 postproc downscale if source is + narrower than destination + - media: ov5640: fix vblank unchange issue when work at dvp mode + - media: i2c: max9286: Fix some redundant of_node_put() calls + - media: ov5640: Fix a memory leak when ov5640_probe fails + - media: bttv: fix use after free error due to btv->timeout timer + - media: amphion: handle firmware debug message + - media: mtk-jpegenc: Fix bug in JPEG encode quality selection + - media: s3c-camif: Avoid inappropriate kfree() + - media: vidtv: psi: Add check for kstrdup + - media: vidtv: mux: Add check and kfree for kstrdup + - media: cedrus: Fix clock/reset sequence + - media: cadence: csi2rx: Unregister v4l2 async notifier + - media: dvb-usb-v2: af9035: fix missing unlock + - media: verisilicon: Fixes clock list for rk3588 av1 decoder + - media: imx-jpeg: notify source chagne event when the first picture parsed + - media: platform: mtk-mdp3: fix uninitialized variable in mdp_path_config() + - media: cec: meson: always include meson sub-directory in Makefile + - cpupower: fix reference to nonexistent document + - regmap: prevent noinc writes from clobbering cache + - drm/amdgpu/gfx10,11: use memcpy_to/fromio for MQDs + - drm/amdgpu: don't put MQDs in VRAM on ARM | ARM64 + - pwm: sti: Reduce number of allocations and drop usage of chip_data + - pwm: brcmstb: Utilize appropriate clock APIs in suspend/resume + - Input: synaptics-rmi4 - fix use after free in rmi_unregister_function() + - watchdog: ixp4xx: Make sure restart always works + - llc: verify mac len before reading mac header + - hsr: Prevent use after free in prp_create_tagged_frame() + - tipc: Change nla_policy for bearer-related names to NLA_NUL_STRING + - rxrpc: Fix two connection reaping bugs + - bpf: Check map->usercnt after timer->timer is assigned + - inet: shrink struct flowi_common + - octeontx2-pf: Fix error codes + - octeontx2-pf: Fix holes in error code + - net: page_pool: add missing free_percpu when page_pool_init fail + - dccp: Call security_inet_conn_request() after setting IPv4 addresses. + - dccp/tcp: Call security_inet_conn_request() after setting IPv6 addresses. + - Fix termination state for idr_for_each_entry_ul() + - net: stmmac: xgmac: Enable support for multiple Flexible PPS outputs + - selftests: pmtu.sh: fix result checking + - octeontx2-pf: Free pending and dropped SQEs + - net/smc: fix dangling sock under state SMC_APPFINCLOSEWAIT + - net/smc: allow cdc msg send rather than drop it with NULL sndbuf_desc + - net/smc: put sk reference if close work was canceled + - nvme: fix error-handling for io_uring nvme-passthrough + - riscv: boot: Fix creation of loader.bin + - tg3: power down device only on SYSTEM_POWER_OFF + - nbd: fix uaf in nbd_open + - blk-core: use pr_warn_ratelimited() in bio_check_ro() + - vsock/virtio: remove socket from connected/bound list on shutdown + - r8169: respect userspace disabling IFF_MULTICAST + - net: enetc: shorten enetc_setup_xdp_prog() error message to fit + NETLINK_MAX_FMTMSG_LEN + - i2c: iproc: handle invalid slave state + - netfilter: xt_recent: fix (increase) ipv6 literal buffer length + - netfilter: nat: fix ipv6 nat redirect with mapped and scoped addresses + - net/sched: act_ct: Always fill offloading tuple iifidx + - RISC-V: Don't fail in riscv_of_parent_hartid() for disabled HARTs + - module/decompress: use kvmalloc() consistently + - drm/vc4: tests: Fix UAF in the mock helpers + - drm/syncobj: fix DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE + - ASoC: mediatek: mt8186_mt6366_rt1019_rt5682s: trivial: fix error messages + - ASoC: hdmi-codec: register hpd callback on component probe + - ASoC: dapm: fix clock get name + - spi: spi-zynq-qspi: add spi-mem to driver kconfig dependencies + - arm64/arm: arm_pmuv3: perf: Don't truncate 64-bit registers + - fbdev: imsttfb: fix double free in probe() + - fbdev: imsttfb: fix a resource leak in probe + - fbdev: fsl-diu-fb: mark wr_reg_wa() static + - tracing/kprobes: Fix the order of argument descriptions + - Revert "drm/ast: report connection status on Display Port." + - selftests: mptcp: fix wait_rm_addr/sf parameters + - io_uring/net: ensure socket is marked connected on connect retry + - x86/amd_nb: Use Family 19h Models 60h-7Fh Function 4 IDs + - Revert "PCI/ASPM: Disable only ASPM_STATE_L1 when driver, disables L1" + - btrfs: use u64 for buffer sizes in the tree search ioctls + - bpf, x86: initialize the variable "first_off" in save_args() + - perf parse-events: Fix driver config term + - btrfs: make found_logical_ret parameter mandatory for function + queue_scrub_stripe() + - Linux 6.5.12 + + * Mantic update: v6.5.11 upstream stable release (LP: #2051117) + - ASoC: Intel: sof_sdw: add support for SKU 0B14 + - ASoC: simple-card: fixup asoc_simple_probe() error handling + - coresight: tmc-etr: Disable warnings for allocation failures + - ASoC: fsl-asoc-card: use integer type for fll_id and pll_id + - ASoC: core: Do not call link_exit() on uninitialized rtd objects + - ASoC: tlv320adc3xxx: BUG: Correct micbias setting + - net: sched: cls_u32: Fix allocation size in u32_init() + - arm64: dts: imx93: add the Flex-CAN stop mode by GPR + - can: flexcan: remove the auto stop mode for IMX93 + - irqchip/riscv-intc: Mark all INTC nodes as initialized + - irqchip/stm32-exti: add missing DT IRQ flag translation + - dmaengine: ste_dma40: Fix PM disable depth imbalance in d40_probe + - ata: pata_parport: add custom version of wait_after_reset + - ata: pata_parport: fit3: implement IDE command set registers + - powerpc/85xx: Fix math emulation exception + - media: i2c: ov8858: Don't set fwnode in the driver + - Input: synaptics-rmi4 - handle reset delay when using SMBus trsnsport + - fbdev: atyfb: only use ioremap_uc() on i386 and ia64 + - fs/ntfs3: Add ckeck in ni_update_parent() + - fs/ntfs3: Write immediately updated ntfs state + - fs/ntfs3: Use kvmalloc instead of kmalloc(... __GFP_NOWARN) + - fs/ntfs3: Add more attributes checks in mi_enum_attr() + - fs/ntfs3: Fix alternative boot searching + - fs/ntfs3: Add more info into /proc/fs/ntfs3//volinfo + - fs/ntfs3: Do not allow to change label if volume is read-only + - fs/ntfs3: Fix possible NULL-ptr-deref in ni_readpage_cmpr() + - fs/ntfs3: Fix NULL pointer dereference on error in attr_allocate_frame() + - fs/ntfs3: Fix directory element type detection + - fs/ntfs3: Avoid possible memory leak + - spi: npcm-fiu: Fix UMA reads when dummy.nbytes == 0 + - ASoC: soc-dapm: Add helper for comparing widget name + - netfilter: nfnetlink_log: silence bogus compiler warning + - net/mlx5: Bridge, fix peer entry ageing in LAG mode + - x86/efistub: Don't try to print after ExitBootService() + - efi: fix memory leak in krealloc failure handling + - ASoC: rt5650: fix the wrong result of key button + - ASoC: codecs: tas2780: Fix log of failed reset via I2C. + - s390/kasan: handle DCSS mapping in memory holes + - fbdev: omapfb: fix some error codes + - fbdev: uvesafb: Call cn_del_callback() at the end of uvesafb_exit() + - scsi: mpt3sas: Fix in error path + - ASoC: da7219: Correct the process of setting up Gnd switch in AAD + - drm/amdgpu: Unset context priority is now invalid + - gpu/drm: Eliminate DRM_SCHED_PRIORITY_UNSET + - LoongArch: Use SYM_CODE_* to annotate exception handlers + - LoongArch: Export symbol invalid_pud_table for modules building + - LoongArch: Replace kmap_atomic() with kmap_local_page() in + copy_user_highpage() + - LoongArch: Disable WUC for pgprot_writecombine() like ioremap_wc() + - netfilter: nf_tables: audit log object reset once per table + - platform/mellanox: mlxbf-tmfifo: Fix a warning message + - drm/amdgpu: Reserve fences for VM update + - riscv: dts: thead: set dma-noncoherent to soc bus + - net: chelsio: cxgb4: add an error code check in t4_load_phy_fw + - r8152: Check for unplug in rtl_phy_patch_request() + - r8152: Check for unplug in r8153b_ups_en() / r8153c_ups_en() + - powerpc/mm: Fix boot crash with FLATMEM + - ceph_wait_on_conflict_unlink(): grab reference before dropping ->d_lock + - drm/amd/display: Don't use fsleep for PSR exit waits + - rust: make `UnsafeCell` the outer type in `Opaque` + - rust: types: make `Opaque` be `!Unpin` + - perf evlist: Avoid frequency mode for the dummy event + - mmap: fix vma_iterator in error path of vma_merge() + - mmap: fix error paths with dup_anon_vma() + - ALSA: usb-audio: add quirk flag to enable native DSD for McIntosh devices + - PCI: Prevent xHCI driver from claiming AMD VanGogh USB3 DRD device + - usb: storage: set 1.50 as the lower bcdDevice for older "Super Top" + compatibility + - usb: typec: tcpm: Add additional checks for contaminant + - usb: typec: tcpm: Fix NULL pointer dereference in tcpm_pd_svdm() + - usb: raw-gadget: properly handle interrupted requests + - Bluetooth: hci_bcm4377: Mark bcm4378/bcm4387 as BROKEN_LE_CODED + - tty: n_gsm: fix race condition in status line change on dead connections + - tty: 8250: Remove UC-257 and UC-431 + - tty: 8250: Add support for additional Brainboxes UC cards + - tty: 8250: Add support for Brainboxes UP cards + - tty: 8250: Add support for Intashield IS-100 + - tty: 8250: Fix port count of PX-257 + - tty: 8250: Fix up PX-803/PX-857 + - tty: 8250: Add support for additional Brainboxes PX cards + - tty: 8250: Add support for Intashield IX cards + - tty: 8250: Add Brainboxes Oxford Semiconductor-based quirks + - dt-bindings: serial: rs485: Add rs485-rts-active-high + - misc: pci_endpoint_test: Add deviceID for J721S2 PCIe EP device support + - serial: core: Fix runtime PM handling for pending tx + - ALSA: hda: intel-dsp-config: Fix JSL Chromebook quirk detection + - ASoC: SOF: sof-pci-dev: Fix community key quirk detection + - Linux 6.5.11 + + * Mantic update: v6.5.11 upstream stable release (LP: #2051117) // black + screen when wake up from s3 with AMD W7600 gfx (LP: #2051341) + - drm/ttm: Reorder sys manager cleanup step + + * CVE-2024-0646 + - net: tls, update curr on splice as well + + * CVE-2024-0582 + - io_uring: enable io_mem_alloc/free to be used in other parts + - io_uring/kbuf: defer release of mapped buffer rings + + * CVE-2024-0565 + - smb: client: fix OOB in receive_encrypted_standard() + + * CVE-2023-51781 + - appletalk: Fix Use-After-Free in atalk_ioctl + + * Reject connection when malformed L2CAP signal packet is received + (LP: #2047634) + - Bluetooth: L2CAP: Send reject on command corrupted request + + * Mantic update: v6.5.10 upstream stable release (LP: #2049412) + - vdpa/mlx5: Fix firmware error on creation of 1k VQs + - smb3: allow controlling length of time directory entries are cached with dir + leases + - smb3: allow controlling maximum number of cached directories + - smb3: do not start laundromat thread when dir leases disabled + - smb: client: do not start laundromat thread on nohandlecache + - smb: client: make laundromat a delayed worker + - smb: client: prevent new fids from being removed by laundromat + - virtio_balloon: Fix endless deflation and inflation on arm64 + - virtio-mmio: fix memory leak of vm_dev + - virtio-crypto: handle config changed by work queue + - virtio_pci: fix the common cfg map size + - vsock/virtio: initialize the_virtio_vsock before using VQs + - vhost: Allow null msg.size on VHOST_IOTLB_INVALIDATE + - arm64: dts: qcom: apq8096-db820c: fix missing clock populate + - arm64: dts: qcom: msm8996-xiaomi: fix missing clock populate + - arm64: dts: rockchip: use codec as clock master on px30-ringneck-haikou + - arm64: dts: rockchip: set codec system-clock-fixed on px30-ringneck-haikou + - arm64: dts: qcom: sa8775p: correct PMIC GPIO label in gpio-ranges + - arm64: dts: rockchip: Add i2s0-2ch-bus-bclk-off pins to RK3399 + - arm64: dts: rockchip: Fix i2s0 pin conflict on ROCK Pi 4 boards + - i40e: sync next_to_clean and next_to_process for programming status desc + - mm: fix vm_brk_flags() to not bail out while holding lock + - hugetlbfs: clear resv_map pointer if mmap fails + - mm/page_alloc: correct start page when guard page debug is enabled + - mm/migrate: fix do_pages_move for compat pointers + - selftests/mm: include mman header to access MREMAP_DONTUNMAP identifier + - mm/mempolicy: fix set_mempolicy_home_node() previous VMA pointer + - hugetlbfs: extend hugetlb_vma_lock to private VMAs + - maple_tree: add GFP_KERNEL to allocations in mas_expected_entries() + - nfsd: lock_rename() needs both directories to live on the same fs + - vdpa_sim_blk: Fix the potential leak of mgmt_dev + - vdpa/mlx5: Fix double release of debugfs entry + - ARM: OMAP1: ams-delta: Fix MODEM initialization failure + - ARM: dts: rockchip: Fix i2c0 register address for RK3128 + - ARM: dts: rockchip: Add missing arm timer interrupt for RK3128 + - ARM: dts: rockchip: Add missing quirk for RK3128's dma engine + - ARM: dts: rockchip: Fix timer clocks for RK3128 + - accel/ivpu: Don't enter d0i3 during FLR + - drm/i915/pmu: Check if pmu is closed before stopping event + - drm/amd: Disable ASPM for VI w/ all Intel systems + - drm/dp_mst: Fix NULL deref in get_mst_branch_device_by_guid_helper() + - btrfs: remove v0 extent handling + - btrfs: fix unwritten extent buffer after snapshotting a new subvolume + - ARM: OMAP: timer32K: fix all kernel-doc warnings + - firmware/imx-dsp: Fix use_after_free in imx_dsp_setup_channels() + - clk: ti: Fix missing omap4 mcbsp functional clock and aliases + - clk: ti: Fix missing omap5 mcbsp functional clock and aliases + - r8169: fix the KCSAN reported data-race in rtl_tx() while reading tp->cur_tx + - r8169: fix the KCSAN reported data-race in rtl_tx while reading + TxDescArray[entry].opts1 + - r8169: fix the KCSAN reported data race in rtl_rx while reading desc->opts1 + - iavf: initialize waitqueues before starting watchdog_task + - i40e: Fix I40E_FLAG_VF_VLAN_PRUNING value + - treewide: Spelling fix in comment + - igb: Fix potential memory leak in igb_add_ethtool_nfc_entry + - net: do not leave an empty skb in write queue + - neighbour: fix various data-races + - igc: Fix ambiguity in the ethtool advertising + - net: ethernet: adi: adin1110: Fix uninitialized variable + - net: ieee802154: adf7242: Fix some potential buffer overflow in + adf7242_stats_show() + - net: usb: smsc95xx: Fix uninit-value access in smsc95xx_read_reg + - r8152: Increase USB control msg timeout to 5000ms as per spec + - r8152: Run the unload routine if we have errors during probe + - r8152: Cancel hw_phy_work if we have an error in probe + - r8152: Release firmware if we have an error in probe + - tcp: fix wrong RTO timeout when received SACK reneging + - wifi: cfg80211: pass correct pointer to rdev_inform_bss() + - wifi: cfg80211: fix assoc response warning on failed links + - wifi: mac80211: don't drop all unprotected public action frames + - net/handshake: fix file ref count in handshake_nl_accept_doit() + - gtp: uapi: fix GTPA_MAX + - gtp: fix fragmentation needed check with gso + - drm/i915/perf: Determine context valid in OA reports + - i40e: Fix wrong check for I40E_TXR_FLAGS_WB_ON_ITR + - netfilter: flowtable: GC pushes back packets to classic path + - net/sched: act_ct: additional checks for outdated flows + - drm/logicvc: Kconfig: select REGMAP and REGMAP_MMIO + - drm/i915/mcr: Hold GT forcewake during steering operations + - iavf: in iavf_down, disable queues when removing the driver + - scsi: sd: Introduce manage_shutdown device flag + - blk-throttle: check for overflow in calculate_bytes_allowed + - kasan: print the original fault addr when access invalid shadow + - iio: afe: rescale: Accept only offset channels + - iio: exynos-adc: request second interupt only when touchscreen mode is used + - iio: adc: xilinx-xadc: Don't clobber preset voltage/temperature thresholds + - iio: adc: xilinx-xadc: Correct temperature offset/scale for UltraScale + - i2c: muxes: i2c-mux-pinctrl: Use of_get_i2c_adapter_by_node() + - i2c: muxes: i2c-mux-gpmux: Use of_get_i2c_adapter_by_node() + - i2c: muxes: i2c-demux-pinctrl: Use of_get_i2c_adapter_by_node() + - i2c: stm32f7: Fix PEC handling in case of SMBUS transfers + - i2c: aspeed: Fix i2c bus hang in slave read + - tracing/kprobes: Fix symbol counting logic by looking at modules as well + - tracing/kprobes: Fix the description of variable length arguments + - misc: fastrpc: Reset metadata buffer to avoid incorrect free + - misc: fastrpc: Free DMA handles for RPC calls with no arguments + - misc: fastrpc: Clean buffers on remote invocation failures + - misc: fastrpc: Unmap only if buffer is unmapped from DSP + - nvmem: imx: correct nregs for i.MX6ULL + - nvmem: imx: correct nregs for i.MX6SLL + - nvmem: imx: correct nregs for i.MX6UL + - x86/tsc: Defer marking TSC unstable to a worker + - x86/i8259: Skip probing when ACPI/MADT advertises PCAT compatibility + - x86/cpu: Add model number for Intel Arrow Lake mobile processor + - perf/core: Fix potential NULL deref + - sparc32: fix a braino in fault handling in csum_and_copy_..._user() + - clk: Sanitize possible_parent_show to Handle Return Value of + of_clk_get_parent_name + - clk: socfpga: gate: Account for the divider in determine_rate + - clk: stm32: Fix a signedness issue in clk_stm32_composite_determine_rate() + - platform/x86: Add s2idle quirk for more Lenovo laptops + - mm/damon/sysfs: check DAMOS regions update progress from before_terminate() + - accel/ivpu/37xx: Fix missing VPUIP interrupts + - Linux 6.5.10 + + * CVE-2023-6560 + - io_uring: don't allow discontig pages for IORING_SETUP_NO_MMAP + + * CVE-2023-51782 + - net/rose: Fix Use-After-Free in rose_ioctl + + * Mantic update: v6.5.9 upstream stable release (LP: #2049202) + - Bluetooth: hci_event: Ignore NULL link key + - Bluetooth: Reject connection with the device which has same BD_ADDR + - Bluetooth: Fix a refcnt underflow problem for hci_conn + - Bluetooth: vhci: Fix race when opening vhci device + - Bluetooth: hci_event: Fix coding style + - Bluetooth: avoid memcmp() out of bounds warning + - Bluetooth: hci_conn: Fix modifying handle while aborting + - ice: fix over-shifted variable + - ice: Fix safe mode when DDP is missing + - ice: reset first in crash dump kernels + - net/smc: return the right falback reason when prefix checks fail + - btrfs: fix stripe length calculation for non-zoned data chunk allocation + - nfc: nci: fix possible NULL pointer dereference in send_acknowledge() + - regmap: fix NULL deref on lookup + - KVM: x86: Mask LVTPC when handling a PMI + - x86/fpu: Allow caller to constrain xfeatures when copying to uabi buffer + - KVM: x86/pmu: Truncate counter value to allowed width on write + - KVM: x86: Constrain guest-supported xfeatures only at KVM_GET_XSAVE{2} + - x86: KVM: SVM: add support for Invalid IPI Vector interception + - x86: KVM: SVM: refresh AVIC inhibition in svm_leave_nested() + - tcp: check mptcp-level constraints for backlog coalescing + - mptcp: more conservative check for zero probes + - selftests: mptcp: join: no RST when rm subflow/addr + - mm: slab: Do not create kmalloc caches smaller than arch_slab_minalign() + - fs/ntfs3: Fix OOB read in ntfs_init_from_boot + - fs/ntfs3: Fix possible null-pointer dereference in hdr_find_e() + - fs/ntfs3: fix panic about slab-out-of-bounds caused by ntfs_list_ea() + - fs/ntfs3: Fix shift-out-of-bounds in ntfs_fill_super + - fs/ntfs3: fix deadlock in mark_as_free_ex + - Revert "net: wwan: iosm: enable runtime pm support for 7560" + - netfilter: nft_payload: fix wrong mac header matching + - drm/i915: Retry gtt fault when out of fence registers + - drm/mediatek: Correctly free sg_table in gem prime vmap + - drm/nouveau/disp: fix DP capable DSM connectors + - drm/edid: add 8 bpc quirk to the BenQ GW2765 + - ALSA: hda/realtek - Fixed ASUS platform headset Mic issue + - ALSA: hda/realtek: Add quirk for ASUS ROG GU603ZV + - ALSA: hda/relatek: Enable Mute LED on HP Laptop 15s-fq5xxx + - ASoC: codecs: wcd938x-sdw: fix use after free on driver unbind + - ASoC: codecs: wcd938x-sdw: fix runtime PM imbalance on probe errors + - ASoC: codecs: wcd938x: drop bogus bind error handling + - ASoC: codecs: wcd938x: fix unbind tear down order + - ASoC: codecs: wcd938x: fix resource leaks on bind errors + - ASoC: codecs: wcd938x: fix regulator leaks on probe errors + - ASoC: codecs: wcd938x: fix runtime PM imbalance on remove + - qed: fix LL2 RX buffer allocation + - xfrm: fix a data-race in xfrm_lookup_with_ifid() + - xfrm6: fix inet6_dev refcount underflow problem + - xfrm: fix a data-race in xfrm_gen_index() + - xfrm: interface: use DEV_STATS_INC() + - net: xfrm: skip policies marked as dead while reinserting policies + - fprobe: Fix to ensure the number of active retprobes is not zero + - wifi: cfg80211: use system_unbound_wq for wiphy work + - net: ipv4: fix return value check in esp_remove_trailer + - net: ipv6: fix return value check in esp_remove_trailer + - net: rfkill: gpio: prevent value glitch during probe + - tcp: fix excessive TLP and RACK timeouts from HZ rounding + - tcp: tsq: relax tcp_small_queue_check() when rtx queue contains a single skb + - tcp: Fix listen() warning with v4-mapped-v6 address. + - docs: fix info about representor identification + - tun: prevent negative ifindex + - gve: Do not fully free QPL pages on prefill errors + - ipv4: fib: annotate races around nh->nh_saddr_genid and nh->nh_saddr + - net: usb: smsc95xx: Fix an error code in smsc95xx_reset() + - octeon_ep: update BQL sent bytes before ringing doorbell + - i40e: prevent crash on probe if hw registers have invalid values + - net: dsa: bcm_sf2: Fix possible memory leak in bcm_sf2_mdio_register() + - bonding: Return pointer to data after pull on skb + - net/sched: sch_hfsc: upgrade 'rt' to 'sc' when it becomes a inner curve + - neighbor: tracing: Move pin6 inside CONFIG_IPV6=y section + - selftests: openvswitch: Catch cases where the tests are killed + - selftests: openvswitch: Fix the ct_tuple for v4 + - selftests: netfilter: Run nft_audit.sh in its own netns + - netfilter: nft_set_rbtree: .deactivate fails if element has expired + - netlink: Correct offload_xstats size + - netfilter: nf_tables: do not refresh timeout when resetting element + - netfilter: nf_tables: do not remove elements if set backend implements + .abort + - netfilter: nf_tables: revert do not remove elements if set backend + implements .abort + - selftests: openvswitch: Add version check for pyroute2 + - net: phy: bcm7xxx: Add missing 16nm EPHY statistics + - net: pktgen: Fix interface flags printing + - net: more strict VIRTIO_NET_HDR_GSO_UDP_L4 validation + - net: mdio-mux: fix C45 access returning -EIO after API change + - net: avoid UAF on deleted altname + - net: fix ifname in netlink ntf during netns move + - net: check for altname conflicts when changing netdev's netns + - iio: light: vcnl4000: Don't power on/off chip in config + - pwr-mlxbf: extend Kconfig to include gpio-mlxbf3 dependency + - ARM: dts: ti: omap: Fix noisy serial with overrun-throttle-ms for mapphone + - arm64: dts: mediatek: Fix "mediatek,merge-mute" and "mediatek,merge-fifo-en" + types + - fs-writeback: do not requeue a clean inode having skipped pages + - btrfs: fix race when refilling delayed refs block reserve + - btrfs: prevent transaction block reserve underflow when starting transaction + - btrfs: return -EUCLEAN for delayed tree ref with a ref count not equals to 1 + - btrfs: initialize start_slot in btrfs_log_prealloc_extents + - i2c: mux: Avoid potential false error message in i2c_mux_add_adapter + - overlayfs: set ctime when setting mtime and atime + - accel/ivpu: Don't flood dmesg with VPU ready message + - gpio: timberdale: Fix potential deadlock on &tgpio->lock + - ata: libata-core: Fix compilation warning in ata_dev_config_ncq() + - ata: libata-eh: Fix compilation warning in ata_eh_link_report() + - tracing: relax trace_event_eval_update() execution with cond_resched() + - wifi: mwifiex: Sanity check tlv_len and tlv_bitmap_len + - wifi: cfg80211: validate AP phy operation before starting it + - wifi: iwlwifi: Ensure ack flag is properly cleared. + - rfkill: sync before userspace visibility/changes + - HID: logitech-hidpp: Add Bluetooth ID for the Logitech M720 Triathlon mouse + - HID: holtek: fix slab-out-of-bounds Write in holtek_kbd_input_event + - Bluetooth: btusb: add shutdown function for QCA6174 + - Bluetooth: Avoid redundant authentication + - Bluetooth: hci_core: Fix build warnings + - wifi: cfg80211: Fix 6GHz scan configuration + - wifi: mac80211: work around Cisco AP 9115 VHT MPDU length + - wifi: mac80211: allow transmitting EAPOL frames with tainted key + - wifi: cfg80211: avoid leaking stack data into trace + - regulator/core: Revert "fix kobject release warning and memory leak in + regulator_register()" + - SUNRPC: Fail quickly when server does not recognize TLS + - SUNRPC/TLS: Lock the lower_xprt during the tls handshake + - nfs: decrement nrequests counter before releasing the req + - sky2: Make sure there is at least one frag_addr available + - ipv4/fib: send notify when delete source address routes + - drm: panel-orientation-quirks: Add quirk for One Mix 2S + - btrfs: fix some -Wmaybe-uninitialized warnings in ioctl.c + - btrfs: error out when COWing block using a stale transaction + - btrfs: error when COWing block from a root that is being deleted + - btrfs: error out when reallocating block for defrag using a stale + transaction + - platform/x86: touchscreen_dmi: Add info for the BUSH Bush Windows tablet + - drm/amd/pm: add unique_id for gc 11.0.3 + - HID: multitouch: Add required quirk for Synaptics 0xcd7e device + - HID: nintendo: reinitialize USB Pro Controller after resuming from suspend + - HID: Add quirk to ignore the touchscreen battery on HP ENVY 15-eu0556ng + - platform/x86: touchscreen_dmi: Add info for the Positivo C4128B + - cpufreq: schedutil: Update next_freq when cpufreq_limits change + - Bluetooth: hci_sync: Fix not handling ISO_LINK in hci_abort_conn_sync + - Bluetooth: hci_sync: Introduce PTR_UINT/UINT_PTR macros + - Bluetooth: ISO: Fix invalid context error + - Bluetooth: hci_sync: delete CIS in BT_OPEN/CONNECT/BOUND when aborting + - Bluetooth: hci_sync: always check if connection is alive before deleting + - net/mlx5: E-switch, register event handler before arming the event + - net/mlx5: Handle fw tracer change ownership event based on MTRC + - net/mlx5e: RX, Fix page_pool allocation failure recovery for striding rq + - net/mlx5e: RX, Fix page_pool allocation failure recovery for legacy rq + - net/mlx5e: XDP, Fix XDP_REDIRECT mpwqe page fragment leaks on shutdown + - net/mlx5e: Take RTNL lock before triggering netdev notifiers + - net/mlx5e: Don't offload internal port if filter device is out device + - net/mlx5e: Fix VF representors reporting zero counters to "ip -s" command + - net/tls: split tls_rx_reader_lock + - tcp: allow again tcp_disconnect() when threads are waiting + - Bluetooth: hci_event: Fix using memcmp when comparing keys + - tcp_bpf: properly release resources on error paths + - mtd: rawnand: qcom: Unmap the right resource upon probe failure + - mtd: rawnand: pl353: Ensure program page operations are successful + - mtd: rawnand: marvell: Ensure program page operations are successful + - mtd: rawnand: arasan: Ensure program page operations are successful + - mtd: rawnand: Ensure the nand chip supports cached reads + - mtd: spinand: micron: correct bitmask for ecc status + - mtd: physmap-core: Restore map_rom fallback + - dt-bindings: mmc: sdhci-msm: correct minimum number of clocks + - mmc: sdhci-pci-gli: fix LPM negotiation so x86/S0ix SoCs can suspend + - mmc: mtk-sd: Use readl_poll_timeout_atomic in msdc_reset_hw + - mmc: core: Fix error propagation for some ioctl commands + - mmc: core: sdio: hold retuning if sdio in 1-bit mode + - pinctrl: qcom: lpass-lpi: fix concurrent register updates + - pNFS: Fix a hang in nfs4_evict_inode() + - pNFS/flexfiles: Check the layout validity in ff_layout_mirror_prepare_stats + - NFSv4.1: fixup use EXCHGID4_FLAG_USE_PNFS_DS for DS server + - ACPI: irq: Fix incorrect return value in acpi_register_gsi() + - ACPI: bus: Move acpi_arm_init() to the place of after acpi_ghes_init() + - perf dlfilter: Fix use of addr_location__exit() in dlfilter__object_code() + - fanotify: limit reporting of event with non-decodeable file handles + - NFS: Fix potential oops in nfs_inode_remove_request() + - nfs42: client needs to strip file mode's suid/sgid bit after ALLOCATE op + - nvme: sanitize metadata bounce buffer for reads + - nvme-pci: add BOGUS_NID for Intel 0a54 device + - nvme-auth: use chap->s2 to indicate bidirectional authentication + - nvmet-auth: complete a request only after freeing the dhchap pointers + - nvme-rdma: do not try to stop unallocated queues + - USB: serial: option: add Telit LE910C4-WWX 0x1035 composition + - USB: serial: option: add entry for Sierra EM9191 with new firmware + - USB: serial: option: add Fibocom to DELL custom modem FM101R-GL + - thunderbolt: Call tb_switch_put() once DisplayPort bandwidth request is + finished + - s390/pci: fix iommu bitmap allocation + - tracing/kprobes: Return EADDRNOTAVAIL when func matches several symbols + - selftests/ftrace: Add new test case which checks non unique symbol + - KEYS: asymmetric: Fix sign/verify on pkcs1pad without a hash + - apple-gmux: Hard Code max brightness for MMIO gmux + - s390/cio: fix a memleak in css_alloc_subchannel + - platform/surface: platform_profile: Propagate error if profile registration + fails + - platform/x86: intel-uncore-freq: Conditionally create attribute for read + frequency + - platform/x86: msi-ec: Fix the 3rd config + - platform/x86: asus-wmi: Change ASUS_WMI_BRN_DOWN code from 0x20 to 0x2e + - platform/x86: asus-wmi: Only map brightness codes when using asus-wmi + backlight control + - platform/x86: asus-wmi: Map 0x2a code, Ignore 0x2b and 0x2c events + - rust: error: fix the description for `ECHILD` + - gpiolib: acpi: Add missing memset(0) to acpi_get_gpiod_from_data() + - gpio: vf610: set value before the direction to avoid a glitch + - gpio: vf610: mask the gpio irq in system suspend and support wakeup + - ASoC: cs35l56: Fix illegal use of init_completion() + - ASoC: pxa: fix a memory leak in probe() + - ASoC: cs42l42: Fix missing include of gpio/consumer.h + - drm/bridge: ti-sn65dsi86: Associate DSI device lifetime with auxiliary + device + - drm/i915/cx0: Only clear/set the Pipe Reset bit of the PHY Lanes Owned + - drm/amdgpu: Fix possible null pointer dereference + - powerpc/mm: Allow ARCH_FORCE_MAX_ORDER up to 12 + - powerpc/qspinlock: Fix stale propagated yield_cpu + - docs: Move rustdoc output, cross-reference it + - rust: docs: fix logo replacement + - phy: mapphone-mdm6600: Fix runtime disable on probe + - phy: mapphone-mdm6600: Fix runtime PM for remove + - phy: mapphone-mdm6600: Fix pinctrl_pm handling for sleep pins + - phy: qcom-qmp-usb: initialize PCS_USB registers + - phy: qcom-qmp-usb: split PCS_USB init table for sc8280xp and sa8775p + - phy: qcom-qmp-combo: Square out 8550 POWER_STATE_CONFIG1 + - phy: qcom-qmp-combo: initialize PCS_USB registers + - efi/unaccepted: Fix soft lockups caused by parallel memory acceptance + - net: move altnames together with the netdevice + - Bluetooth: hci_sock: fix slab oob read in create_monitor_event + - net: rfkill: reduce data->mtx scope in rfkill_fop_open + - docs: rust: update Rust docs output path + - kbuild: remove old Rust docs output path + - Bluetooth: hci_sock: Correctly bounds check and pad HCI_MON_NEW_INDEX name + - mptcp: avoid sending RST when closing the initial subflow + - selftests: mptcp: join: correctly check for no RST + - Linux 6.5.9 + + * CVE-2023-51779 + - Bluetooth: af_bluetooth: Fix Use-After-Free in bt_sock_recvmsg + + -- Stefan Bader Fri, 02 Feb 2024 15:00:42 +0100 + linux (6.5.0-17.17) mantic; urgency=medium * mantic/linux: 6.5.0-17.17 -proposed tracker (LP: #2049026) diff -u linux-riscv-6.5.0/debian.master/config/annotations linux-riscv-6.5.0/debian.master/config/annotations --- linux-riscv-6.5.0/debian.master/config/annotations +++ linux-riscv-6.5.0/debian.master/config/annotations @@ -1120,7 +1120,7 @@ CONFIG_AM2315 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> CONFIG_AM335X_CONTROL_USB policy<{'armhf': 'm'}> CONFIG_AM335X_PHY_USB policy<{'armhf': 'm'}> -CONFIG_AMBA_PL08X policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_AMBA_PL08X policy<{'arm64': 'y', 'armhf': 'y', 'riscv64': 'n'}> CONFIG_AMD8111_ETH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> CONFIG_AMDTEE policy<{'amd64': 'm'}> CONFIG_AMD_HSMP policy<{'amd64': 'm'}> @@ -1336,10 +1336,10 @@ CONFIG_ARCH_MIGHT_HAVE_PC_SERIO policy<{'amd64': 'y', 'ppc64el': 'y'}> CONFIG_ARCH_MILBEAUT policy<{'armhf': 'y'}> CONFIG_ARCH_MILBEAUT_M10V policy<{'armhf': 'y'}> -CONFIG_ARCH_MMAP_RND_BITS policy<{'amd64': '28', 'arm64': '18', 'armhf': '8', 'ppc64el': '28', 'riscv64': '18'}> +CONFIG_ARCH_MMAP_RND_BITS policy<{'amd64': '32', 'arm64': '33', 'arm64-generic-64k': '29', 'armhf': '16', 'ppc64el': '29', 'riscv64': '24'}> CONFIG_ARCH_MMAP_RND_BITS_MAX policy<{'amd64': '32', 'arm64': '33', 'arm64-generic-64k': '29', 'armhf': '16', 'ppc64el': '29', 'riscv64': '24'}> CONFIG_ARCH_MMAP_RND_BITS_MIN policy<{'amd64': '28', 'arm64': '18', 'arm64-generic-64k': '14', 'armhf': '8', 'ppc64el': '14', 'riscv64': '18'}> -CONFIG_ARCH_MMAP_RND_COMPAT_BITS policy<{'amd64': '8', 'arm64': '11', 'ppc64el': '8'}> +CONFIG_ARCH_MMAP_RND_COMPAT_BITS policy<{'amd64': '16', 'arm64': '16', 'ppc64el': '13', 'riscv64': '-'}> CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX policy<{'amd64': '16', 'arm64': '16', 'ppc64el': '13', 'riscv64': '17'}> CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN policy<{'amd64': '8', 'arm64': '11', 'arm64-generic-64k': '7', 'ppc64el': '7', 'riscv64': '8'}> CONFIG_ARCH_MMP policy<{'armhf': 'n'}> @@ -1602,7 +1602,7 @@ CONFIG_ARMADA_THERMAL policy<{'arm64': 'y', 'armhf': 'y'}> CONFIG_ARMADA_XP_CLK policy<{'armhf': 'y'}> CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM policy<{'arm64': 'm', 'armhf': '-'}> -CONFIG_ARM_AMBA policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_ARM_AMBA policy<{'arm64': 'y', 'armhf': 'y', 'riscv64': 'y'}> CONFIG_ARM_APPENDED_DTB policy<{'armhf': 'y'}> CONFIG_ARM_APPLE_SOC_CPUFREQ policy<{'arm64': 'm'}> CONFIG_ARM_ARCH_TIMER policy<{'arm64': 'y', 'armhf': 'y'}> @@ -1676,14 +1676,14 @@ CONFIG_ARM_MEDIATEK_CCI_DEVFREQ policy<{'arm64': 'm', 'armhf': 'm'}> CONFIG_ARM_MEDIATEK_CPUFREQ policy<{'arm64': 'm', 'armhf': 'm'}> CONFIG_ARM_MEDIATEK_CPUFREQ_HW policy<{'arm64': 'm', 'armhf': 'm'}> -CONFIG_ARM_MHU policy<{'arm64': 'm', 'armhf': 'm'}> -CONFIG_ARM_MHU_V2 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_ARM_MHU policy<{'arm64': 'm', 'armhf': 'm', 'riscv64': 'n'}> +CONFIG_ARM_MHU_V2 policy<{'arm64': 'm', 'armhf': 'm', 'riscv64': 'n'}> CONFIG_ARM_MODULE_PLTS policy<{'armhf': 'y'}> CONFIG_ARM_MVEBU_V7_CPUIDLE policy<{'armhf': 'y'}> CONFIG_ARM_OMAP2PLUS_CPUFREQ policy<{'armhf': 'y'}> CONFIG_ARM_PATCH_IDIV policy<{'armhf': 'y'}> CONFIG_ARM_PATCH_PHYS_VIRT policy<{'armhf': 'y'}> -CONFIG_ARM_PL172_MPMC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_ARM_PL172_MPMC policy<{'arm64': 'm', 'armhf': 'm', 'riscv64': 'n'}> CONFIG_ARM_PMU policy<{'arm64': 'y', 'armhf': 'y'}> CONFIG_ARM_PMUV3 policy<{'arm64': 'y', 'armhf': 'y'}> CONFIG_ARM_PMU_ACPI policy<{'arm64': 'y'}> @@ -5310,7 +5310,7 @@ CONFIG_GPIO_PCIE_IDIO_24 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> CONFIG_GPIO_PCI_IDIO_16 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> CONFIG_GPIO_PISOSR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> -CONFIG_GPIO_PL061 policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_GPIO_PL061 policy<{'arm64': 'y', 'armhf': 'y', 'riscv64': 'n'}> CONFIG_GPIO_PMIC_EIC_SPRD policy<{'arm64': 'm'}> CONFIG_GPIO_RC5T583 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> CONFIG_GPIO_RCAR policy<{'arm64': 'm', 'armhf': 'm', 'riscv64': 'm'}> @@ -6004,7 +6004,7 @@ CONFIG_I2C_MV64XXX policy<{'arm64': 'm', 'armhf': 'm', 'riscv64': 'm'}> CONFIG_I2C_NFORCE2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> CONFIG_I2C_NFORCE2_S4985 policy<{'amd64': 'm'}> -CONFIG_I2C_NOMADIK policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_I2C_NOMADIK policy<{'arm64': 'm', 'armhf': 'm', 'riscv64': 'n'}> CONFIG_I2C_NPCM policy<{'arm64': 'm', 'armhf': 'm'}> CONFIG_I2C_NVIDIA_GPU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> CONFIG_I2C_OCORES policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> @@ -7900,7 +7900,7 @@ CONFIG_MMC35240 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> CONFIG_MMCONF_FAM10H policy<{'amd64': 'y'}> CONFIG_MMC_ALCOR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> -CONFIG_MMC_ARMMMCI policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_MMC_ARMMMCI policy<{'arm64': 'y', 'armhf': 'y', 'riscv64': 'n'}> CONFIG_MMC_BLOCK_MINORS policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'ppc64el': '8', 'riscv64': '8'}> CONFIG_MMC_CAVIUM_THUNDERX policy<{'arm64': 'm'}> CONFIG_MMC_CB710 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> @@ -9922,8 +9922,8 @@ CONFIG_PL310_ERRATA_727915 policy<{'armhf': 'y'}> CONFIG_PL310_ERRATA_753970 policy<{'armhf': 'y'}> CONFIG_PL310_ERRATA_769419 policy<{'armhf': 'y'}> -CONFIG_PL320_MBOX policy<{'arm64': 'y', 'armhf': 'y'}> -CONFIG_PL330_DMA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PL320_MBOX policy<{'arm64': 'y', 'armhf': 'y', 'riscv64': 'n'}> +CONFIG_PL330_DMA policy<{'arm64': 'm', 'armhf': 'm', 'riscv64': 'n'}> CONFIG_PL353_SMC policy<{'armhf': 'm'}> CONFIG_PLATFORM_MHU policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> CONFIG_PLATFORM_SI4713 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> @@ -10981,8 +10981,8 @@ CONFIG_RTC_DRV_PCF85363 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> CONFIG_RTC_DRV_PCF8563 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> CONFIG_RTC_DRV_PCF8583 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> -CONFIG_RTC_DRV_PL030 policy<{'arm64': 'm', 'armhf': 'm'}> -CONFIG_RTC_DRV_PL031 policy<{'arm64': 'm', 'armhf': 'y'}> +CONFIG_RTC_DRV_PL030 policy<{'arm64': 'm', 'armhf': 'm', 'riscv64': 'n'}> +CONFIG_RTC_DRV_PL031 policy<{'arm64': 'm', 'armhf': 'y', 'riscv64': 'n'}> CONFIG_RTC_DRV_PM8XXX policy<{'arm64': 'm', 'armhf': 'm'}> CONFIG_RTC_DRV_POLARFIRE_SOC policy<{'riscv64': 'm'}> CONFIG_RTC_DRV_R7301 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> @@ -11748,8 +11748,8 @@ CONFIG_SERIAL_ALTERA_UART policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> CONFIG_SERIAL_ALTERA_UART_BAUDRATE policy<{'amd64': '115200', 'arm64': '115200', 'armhf': '115200', 'ppc64el': '115200', 'riscv64': '115200'}> CONFIG_SERIAL_ALTERA_UART_MAXPORTS policy<{'amd64': '4', 'arm64': '4', 'armhf': '4', 'ppc64el': '4', 'riscv64': '4'}> -CONFIG_SERIAL_AMBA_PL010 policy<{'arm64': 'm', 'armhf': 'm'}> -CONFIG_SERIAL_AMBA_PL011 policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_SERIAL_AMBA_PL010 policy<{'arm64': 'm', 'armhf': 'm', 'riscv64': 'n'}> +CONFIG_SERIAL_AMBA_PL011 policy<{'arm64': 'y', 'armhf': 'y', 'riscv64': 'n'}> CONFIG_SERIAL_AMBA_PL011_CONSOLE policy<{'arm64': 'y', 'armhf': 'y'}> CONFIG_SERIAL_ARC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> CONFIG_SERIAL_ARC_NR_PORTS policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'ppc64el': '1', 'riscv64': '1'}> @@ -11821,7 +11821,7 @@ CONFIG_SERIAL_XILINX_PS_UART policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> CONFIG_SERIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> CONFIG_SERIO_ALTERA_PS2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> -CONFIG_SERIO_AMBAKMI policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SERIO_AMBAKMI policy<{'arm64': 'm', 'armhf': 'm', 'riscv64': 'n'}> CONFIG_SERIO_APBPS2 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> CONFIG_SERIO_ARC_PS2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> CONFIG_SERIO_CT82C710 policy<{'amd64': 'm'}> @@ -12978,7 +12978,7 @@ CONFIG_SPI_OMAP24XX policy<{'arm64': 'y', 'armhf': 'y'}> CONFIG_SPI_ORION policy<{'arm64': 'm', 'armhf': 'm'}> CONFIG_SPI_PCI1XXXX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> -CONFIG_SPI_PL022 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SPI_PL022 policy<{'arm64': 'm', 'armhf': 'm', 'riscv64': 'n'}> CONFIG_SPI_PXA2XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> CONFIG_SPI_PXA2XX_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> CONFIG_SPI_QCOM_GENI policy<{'arm64': 'm', 'armhf': 'm'}> diff -u linux-riscv-6.5.0/debian.master/reconstruct linux-riscv-6.5.0/debian.master/reconstruct --- linux-riscv-6.5.0/debian.master/reconstruct +++ linux-riscv-6.5.0/debian.master/reconstruct @@ -46,9 +46,12 @@ chmod +x 'debian/tests/rebuild' chmod +x 'debian/tests/ubuntu-regression-suite' chmod +x 'drivers/watchdog/f71808e_wdt.c' +chmod +x 'tools/testing/selftests/netfilter/conntrack_sctp_collision.sh' chmod +x 'tools/testing/selftests/netfilter/nft_audit.sh' +chmod +x 'tools/testing/selftests/netfilter/xt_string.sh' chmod +x 'update-dkms-versions' # Remove any files deleted from the orig. +rm -f 'Documentation/networking/device_drivers/ethernet/mellanox/mlx5/devlink.rst' rm -f 'arch/parisc/include/asm/mckinley.h' rm -f 'drivers/media/pci/intel/ipu3/cio2-bridge.c' rm -f 'drivers/media/pci/intel/ipu3/cio2-bridge.h' diff -u linux-riscv-6.5.0/debian.master/tracking-bug linux-riscv-6.5.0/debian.master/tracking-bug --- linux-riscv-6.5.0/debian.master/tracking-bug +++ linux-riscv-6.5.0/debian.master/tracking-bug @@ -1 +1 @@ -2049026 2024.01.08-3 +2052615 2024.02.05-2 diff -u linux-riscv-6.5.0/debian.master/upstream-stable linux-riscv-6.5.0/debian.master/upstream-stable --- linux-riscv-6.5.0/debian.master/upstream-stable +++ linux-riscv-6.5.0/debian.master/upstream-stable @@ -3 +3,3 @@ - linux-6.5.y = v6.5.8 + linux-6.1.y = v6.1.68 + linux-6.5.y = v6.5.13 + linux-6.6.y = v6.6.7 diff -u linux-riscv-6.5.0/debian.riscv/abi/abiname linux-riscv-6.5.0/debian.riscv/abi/abiname --- linux-riscv-6.5.0/debian.riscv/abi/abiname +++ linux-riscv-6.5.0/debian.riscv/abi/abiname @@ -1 +1 @@ -15 +21 diff -u linux-riscv-6.5.0/debian.riscv/abi/fwinfo linux-riscv-6.5.0/debian.riscv/abi/fwinfo --- linux-riscv-6.5.0/debian.riscv/abi/fwinfo +++ linux-riscv-6.5.0/debian.riscv/abi/fwinfo @@ -1066,6 +1066,7 @@ firmware: liquidio/lio_23xx_nic.bin firmware: liquidio/lio_410nv_nic.bin firmware: me2600_firmware.bin +firmware: me4000_firmware.bin firmware: mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin firmware: mediatek/WIFI_MT7922_patch_mcu_1_1_hdr.bin firmware: mediatek/WIFI_MT7961_patch_mcu_1_2_hdr.bin diff -u linux-riscv-6.5.0/debian.riscv/abi/riscv64/generic linux-riscv-6.5.0/debian.riscv/abi/riscv64/generic --- linux-riscv-6.5.0/debian.riscv/abi/riscv64/generic +++ linux-riscv-6.5.0/debian.riscv/abi/riscv64/generic @@ -1,120 +1,120 @@ ACPI EXPORT_SYMBOL_GPL 0xa6af1390 acpi_table_parse_cedt vmlinux -BRCMFMAC EXPORT_SYMBOL_GPL 0x5eb2d3d9 brcmf_fwvid_register_vendor drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac -BRCMFMAC EXPORT_SYMBOL_GPL 0x79257e55 brcmf_fwvid_unregister_vendor drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac -CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0x036033d9 crypto_cipher_setkey vmlinux -CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0x1a8734a3 crypto_cipher_encrypt_one vmlinux -CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0xc5064a89 crypto_cipher_decrypt_one vmlinux -CXL EXPORT_SYMBOL_GPL 0x01bc8fa6 devm_cxl_add_rch_dport drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x036c8860 is_cxl_nvdimm_bridge drivers/cxl/core/cxl_core +BRCMFMAC EXPORT_SYMBOL_GPL 0x0f0efaa3 brcmf_fwvid_register_vendor drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac +BRCMFMAC EXPORT_SYMBOL_GPL 0xe0230f7a brcmf_fwvid_unregister_vendor drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0x0cbb41e9 crypto_cipher_setkey vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0xd525a519 crypto_cipher_decrypt_one vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0xe9f4dbcf crypto_cipher_encrypt_one vmlinux +CXL EXPORT_SYMBOL_GPL 0x023fca94 cxl_trigger_poison_list drivers/cxl/core/cxl_core CXL EXPORT_SYMBOL_GPL 0x055c6ee3 cxl_mem_active_inc vmlinux -CXL EXPORT_SYMBOL_GPL 0x077eb1c8 cxl_debugfs_create_dir drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x0a800d06 devm_cxl_add_nvdimm drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x0afc54d2 cxl_inject_poison drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x0ca2ee73 cxl_mem_get_poison drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x0d2b9f29 cxl_mem_create_range_info drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x11333c70 cxl_root_decoder_alloc drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x1376dbe8 cxl_map_pmu_regs drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x1b633025 devm_cxl_enumerate_decoders drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x1b89de22 cxl_decoder_autoremove drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x1bef6e2e to_cxl_pmem_region drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x1c777480 to_cxl_switch_decoder drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x2404e9c6 cxl_add_to_region drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x2486ab07 find_cxl_root drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x28556c45 devm_cxl_add_nvdimm_bridge drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x2f65b04e devm_cxl_add_memdev drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x2ff572a6 is_cxl_memdev drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x306e8cc6 is_cxl_port drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x3081c174 cxl_dpa_debug drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x07712cd9 to_cxl_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x0b03d3bf to_cxl_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x0d9cd584 schedule_cxl_memdev_detach drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x1357c379 cxl_endpoint_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x15e2ae18 is_cxl_region drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x16f4a2ee cxl_clear_poison drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x19870b33 set_exclusive_cxl_commands drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x1dbcf36a devm_cxl_enumerate_decoders drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x1f90c7b3 is_cxl_pmem_region drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x20103434 is_root_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x2021861f to_cxl_dax_region drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x217e6aee cxl_mem_get_poison drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x227392df cxl_find_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x24848777 cxl_hdm_decode_init drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x263bc4e1 to_cxl_endpoint_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x32e9afeb cxl_memdev_setup_fw_upload drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x338a49dc cxl_rcd_component_reg_phys drivers/cxl/core/cxl_core CXL EXPORT_SYMBOL_GPL 0x33e2aa93 cxl_mem_active_dec vmlinux -CXL EXPORT_SYMBOL_GPL 0x3db1fccd cxl_clear_poison drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x40c002b0 cxl_bus_type drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x4bd28582 __cxl_driver_register drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x50077ae6 cxl_mem_find_port drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x571a5a1b cxl_decoder_add drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x5725b126 clear_exclusive_cxl_commands drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x58e54c27 cxl_hdm_decode_init drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x5b52d537 cxl_trigger_poison_list drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x5d62c724 cxl_find_regblock drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x5f7bdd7b cxl_setup_regs drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x615920c7 cxl_find_regblock_instance drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x6677d253 devm_cxl_dpa_reserve drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x67c24093 to_cxl_nvdimm_bridge drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x6abac957 to_cxl_nvdimm drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x6bfafb37 cxl_switch_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x344d0609 cxl_pci_find_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x3b849cd0 cxl_await_media_ready drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x3d980310 devm_cxl_dpa_reserve drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x3de8cfc7 devm_cxl_setup_hdm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x3e055dd6 devm_cxl_pmu_add drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x3f3b10e0 devm_cxl_port_enumerate_dports drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x42bad121 find_cxl_root drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x4721a931 devm_cxl_add_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x48db1257 devm_cxl_enumerate_ports drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x4b402b13 to_cxl_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x52553cfd cxl_switch_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x586075ae cxl_decoder_add_locked drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x5ac3fb5a cxl_map_pmu_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x5c7694ae cxl_poison_state_init drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x64d6d3a2 cxl_dvsec_rr_decode drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x64f35963 cxl_mem_find_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x65fc1144 cxl_map_component_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x67ae973a cxl_probe_device_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x6b793d06 cxl_decoder_autoremove drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x6c2ad743 cxl_add_to_region drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x6cbc7229 devm_cxl_register_pci_bus drivers/cxl/core/cxl_core CXL EXPORT_SYMBOL_GPL 0x701bbaad cxl_bus_rescan drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x747f51e3 to_cxl_port drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x758fc4cf cxl_decoder_add_locked drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x76bbc497 devm_cxl_pmu_add drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x7ac9193b cxl_dev_state_identify drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x7be6ffbb is_endpoint_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7107228b cxl_mem_sanitize drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x71551d16 devm_cxl_add_dport drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x740f32ef devm_cxl_add_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x76b0312b cxl_dpa_debug drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x76b9e957 cxl_count_regblock drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x79c2c884 cxl_internal_send_cmd drivers/cxl/core/cxl_core CXL EXPORT_SYMBOL_GPL 0x7fa19cc4 alloc_free_mem_region vmlinux -CXL EXPORT_SYMBOL_GPL 0x8121d3f4 cxl_endpoint_autoremove drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x817acee3 is_cxl_region drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x81fe7737 cxl_set_timestamp drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x81b6eacd devm_cxl_add_passthrough_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x8481858d cxl_map_device_regs drivers/cxl/core/cxl_core CXL EXPORT_SYMBOL_GPL 0x84b45156 insert_resource_expand_to_fit vmlinux -CXL EXPORT_SYMBOL_GPL 0x89f3e690 to_cxl_root_decoder drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x8ac19325 devm_cxl_add_port drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x8bd419a5 cxl_map_component_regs drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x8fd40d89 cxl_find_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x8a52d0ba devm_cxl_add_memdev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x8c74f697 is_switch_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x8d8f15b1 cxl_memdev_state_create drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x8eae68e5 cxl_set_timestamp drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x8ec81215 cxl_endpoint_autoremove drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x907db453 cxl_dev_state_identify drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x90bde0ef to_cxl_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x911e81ad cxl_driver_unregister drivers/cxl/core/cxl_core CXL EXPORT_SYMBOL_GPL 0x98628ac8 cxl_bus_drain drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x9e6f764c cxl_probe_device_regs drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0x9f241809 devm_cxl_enumerate_ports drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xa0879282 cxl_mem_sanitize drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xa5af1a3f to_cxl_dax_region drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xa6736a0e cxl_dvsec_rr_decode drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xaa3d730c cxl_map_device_regs drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xaab78117 cxl_await_media_ready drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xab333af3 cxl_rcd_component_reg_phys drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xb5e47e2b is_switch_decoder drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xb8703c36 to_cxl_endpoint_decoder drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xb908a030 cxl_enumerate_cmds drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xb9a5e6b6 devm_cxl_port_enumerate_dports drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xbaee6dc7 schedule_cxl_memdev_detach drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xbba01bb3 cxl_pci_find_port drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xc19809c3 devm_cxl_add_dport drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xc2439308 cxl_driver_unregister drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xc658c18a is_cxl_pmem_region drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xcc8f7201 cxl_mem_get_event_records drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xd5926b90 cxl_poison_state_init drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xd5b6f11f cxl_probe_component_regs drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xd773a928 cxl_memdev_setup_fw_upload drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xd99c4835 set_exclusive_cxl_commands drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xdd9a5704 cxl_cor_error_detected drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xe0eafffb is_cxl_nvdimm drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xe34c716a read_cdat_data drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xe7dc3e6a devm_cxl_register_pci_bus drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xea5369ed to_cxl_decoder drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xefdf66e6 devm_cxl_add_passthrough_decoder drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xf025ae66 cxl_count_regblock drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xf0442b0c cxl_hb_modulo drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xf0f9ae90 devm_cxl_setup_hdm drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xf21e4016 cxl_port_to_pci_bus drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xf37698e0 is_root_decoder drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xf7d326f8 cxl_error_detected drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xf85d9bcd cxl_endpoint_decoder_alloc drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xfb6bdd9f cxl_internal_send_cmd drivers/cxl/core/cxl_core -CXL EXPORT_SYMBOL_GPL 0xfc2ea05b cxl_memdev_state_create drivers/cxl/core/cxl_core -DMA_BUF EXPORT_SYMBOL_GPL 0x1a424e4c dma_buf_end_cpu_access vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0x2db9d303 dma_buf_get vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0x37c61477 dma_buf_unmap_attachment vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0x399647b4 dma_buf_vunmap vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0x3aca06e4 dma_buf_map_attachment_unlocked vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0x4edef33d dma_buf_pin vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0x5c23d631 dma_buf_put vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0x65fb8a19 dma_buf_unmap_attachment_unlocked vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0x6683eb98 dma_buf_vmap vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0x689f5ab5 dma_buf_mmap vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0x7535e231 dma_buf_detach vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0x879112f0 dma_buf_map_attachment vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0x98f8686c dma_buf_vmap_unlocked vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0xa107a9cc dma_buf_move_notify vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0xa99f904b dma_buf_unpin vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0xafdeea7d dma_buf_fd vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0xb1ab3d74 dma_buf_dynamic_attach vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0xc9845bc3 dma_buf_export vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0xc9e1e253 dma_buf_vunmap_unlocked vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0xe3ffcf33 dma_buf_attach vmlinux -DMA_BUF EXPORT_SYMBOL_GPL 0xea39f212 dma_buf_begin_cpu_access vmlinux +CXL EXPORT_SYMBOL_GPL 0x98a1615a to_cxl_switch_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x9e1a1556 cxl_error_detected drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x9f54785a cxl_probe_component_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xa0e18905 cxl_find_regblock drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xa3d79f34 cxl_enumerate_cmds drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xb11a72bd cxl_setup_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xb2b728b1 cxl_inject_poison drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xb77b3424 cxl_debugfs_create_dir drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xbd4514ac is_endpoint_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xbe2cd72e devm_cxl_add_rch_dport drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xc33a1931 cxl_hb_modulo drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xc3ef99eb cxl_cor_error_detected drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xc3fd3231 cxl_bus_type drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xcc163c07 cxl_mem_get_event_records drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xd1965c08 to_cxl_pmem_region drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xd220e7e5 read_cdat_data drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xdd3da092 is_cxl_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xdf7cd43a is_cxl_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xeb65dd7f __cxl_driver_register drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xed706b63 cxl_mem_create_range_info drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xee4b5eef clear_exclusive_cxl_commands drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xf186c27a cxl_decoder_add drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xf1f49a46 cxl_port_to_pci_bus drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xf5675afd devm_cxl_add_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xf6cb7ab0 to_cxl_root_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xf7b83bc5 cxl_find_regblock_instance drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xf87e6b4a is_cxl_memdev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xf9901cc9 cxl_root_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xfaa43053 is_cxl_nvdimm_bridge drivers/cxl/core/cxl_core +DMA_BUF EXPORT_SYMBOL_GPL 0x0678a453 dma_buf_get vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x0b6324ec dma_buf_export vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x1a08ac0e dma_buf_dynamic_attach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x23e56fcd dma_buf_unmap_attachment vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x26f1fd5a dma_buf_vmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x30c9ba27 dma_buf_vunmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x6c9c8ee9 dma_buf_map_attachment vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x77f20657 dma_buf_begin_cpu_access vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x82f432fc dma_buf_unpin vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x90ab95f2 dma_buf_move_notify vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x91ac80b2 dma_buf_fd vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x99a41dae dma_buf_vunmap_unlocked vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x9a73f320 dma_buf_mmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x9c59d799 dma_buf_put vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xa20a6e8d dma_buf_end_cpu_access vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xd0ab3e14 dma_buf_map_attachment_unlocked vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xd1b11122 dma_buf_pin vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xd70eef82 dma_buf_attach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xdfbca18a dma_buf_detach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xf513f86b dma_buf_vmap_unlocked vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xffe1cb59 dma_buf_unmap_attachment_unlocked vmlinux DRM_SSD130X EXPORT_SYMBOL_GPL 0x33cf1f58 ssd130x_variants drivers/gpu/drm/solomon/ssd130x EFIVAR EXPORT_SYMBOL_GPL 0x02cfcd2e efivar_trylock vmlinux EFIVAR EXPORT_SYMBOL_GPL 0x11940489 efivar_set_variable vmlinux @@ -145,41 +145,39 @@ EXPORT_SYMBOL crypto/ecc 0xde867c29 ecc_is_pubkey_valid_partial EXPORT_SYMBOL crypto/ecc 0xeac9b99a vli_from_le64 EXPORT_SYMBOL crypto/ecc 0xed4ae15e ecc_make_pub_key -EXPORT_SYMBOL crypto/nhpoly1305 0x297ed6f9 crypto_nhpoly1305_setkey -EXPORT_SYMBOL crypto/nhpoly1305 0x66030387 crypto_nhpoly1305_update -EXPORT_SYMBOL crypto/nhpoly1305 0x6bbadd62 crypto_nhpoly1305_init -EXPORT_SYMBOL crypto/nhpoly1305 0xbcc4e4b0 crypto_nhpoly1305_final -EXPORT_SYMBOL crypto/nhpoly1305 0xc7aefe76 crypto_nhpoly1305_update_helper -EXPORT_SYMBOL crypto/nhpoly1305 0xde3a1c3a crypto_nhpoly1305_final_helper +EXPORT_SYMBOL crypto/nhpoly1305 0x1a2a6ad2 crypto_nhpoly1305_final +EXPORT_SYMBOL crypto/nhpoly1305 0x3b435bdd crypto_nhpoly1305_update_helper +EXPORT_SYMBOL crypto/nhpoly1305 0x655d0ace crypto_nhpoly1305_final_helper +EXPORT_SYMBOL crypto/nhpoly1305 0xa326df7b crypto_nhpoly1305_update +EXPORT_SYMBOL crypto/nhpoly1305 0xc3a6c295 crypto_nhpoly1305_setkey +EXPORT_SYMBOL crypto/nhpoly1305 0xfa72a6e4 crypto_nhpoly1305_init EXPORT_SYMBOL crypto/sm4 0x2b098da5 crypto_sm4_ck EXPORT_SYMBOL crypto/sm4 0x7931a202 crypto_sm4_fk EXPORT_SYMBOL crypto/sm4 0xf4fd3bd2 crypto_sm4_sbox EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks EXPORT_SYMBOL drivers/acpi/nfit/nfit 0x06848c60 to_nfit_uuid -EXPORT_SYMBOL drivers/acpi/video 0x2d1e0921 acpi_video_get_edid EXPORT_SYMBOL drivers/acpi/video 0x45b61916 acpi_video_register_backlight -EXPORT_SYMBOL drivers/acpi/video 0x5d988c3a acpi_video_get_levels +EXPORT_SYMBOL drivers/acpi/video 0x48f2da5d acpi_video_get_levels +EXPORT_SYMBOL drivers/acpi/video 0x6c42e225 acpi_video_get_edid EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister EXPORT_SYMBOL drivers/acpi/video 0x7cc484a5 acpi_video_handles_brightness_key_presses EXPORT_SYMBOL drivers/acpi/video 0x7de7bf50 __acpi_video_get_backlight_type EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register -EXPORT_SYMBOL drivers/atm/suni 0xc5c5d9b6 suni_init -EXPORT_SYMBOL drivers/bcma/bcma 0x85c04b37 bcma_core_dma_translation -EXPORT_SYMBOL drivers/bcma/bcma 0xe44724b0 bcma_core_irq +EXPORT_SYMBOL drivers/atm/suni 0x8ea7e261 suni_init +EXPORT_SYMBOL drivers/bcma/bcma 0x2946d3b5 bcma_core_dma_translation +EXPORT_SYMBOL drivers/bcma/bcma 0x3c6ab383 bcma_core_irq EXPORT_SYMBOL drivers/block/drbd/drbd 0x127a5901 drbd_set_st_err_str EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str -EXPORT_SYMBOL drivers/bluetooth/btbcm 0xc1025ff8 btbcm_patchram -EXPORT_SYMBOL drivers/bluetooth/btrsi 0x952e7dc8 rsi_bt_ops -EXPORT_SYMBOL drivers/bus/mhi/host/mhi 0xd3682182 mhi_sync_power_up +EXPORT_SYMBOL drivers/bluetooth/btbcm 0x01c980a6 btbcm_patchram +EXPORT_SYMBOL drivers/bluetooth/btrsi 0xf20ff2e3 rsi_bt_ops +EXPORT_SYMBOL drivers/bus/mhi/host/mhi 0x82a4d588 mhi_sync_power_up EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x03bc993e ipmi_set_my_LUN EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0705dd14 ipmi_register_for_cmd -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x08326171 ipmi_add_smi EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x12dd1e77 ipmi_set_maintenance_mode EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1f65170f ipmi_alloc_smi_msg EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x230094ac ipmi_smi_watchdog_pretimeout -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4571ff2e ipmi_smi_watcher_unregister EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c2054d7 ipmi_request_settime EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x50f65edf ipmi_set_gets_events EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x67369b42 ipmi_addr_src_to_str @@ -188,10 +186,12 @@ EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x80aa4656 ipmi_free_recv_msg EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x89a5279a ipmi_get_version EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x96a6e5e8 ipmi_smi_msg_received -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9962a4ec ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x96bb637b ipmi_add_smi EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xaca90ebd ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xadc34233 ipmi_smi_watcher_unregister EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xae71627d ipmi_create_user -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xaf6f5847 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb116ac6a ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xbbad79d2 ipmi_smi_watcher_register EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd54a5050 ipmi_unregister_for_cmd EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4330a39 ipmi_unregister_smi EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr @@ -201,703 +201,703 @@ EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf5531bea ipmi_poll_interface EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfaaa4831 ipmi_set_my_address EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfe0f2369 ipmi_get_maintenance_mode -EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x4bc3760d st33zp24_pm_suspend -EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x4fb7d435 st33zp24_remove -EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x817377e9 st33zp24_pm_resume -EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0xcb81a7fc st33zp24_probe -EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0x6c1a1f9a xillybus_init_chrdev -EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0xb72ff496 xillybus_cleanup_chrdev -EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0xe05089a7 xillybus_find_inode +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x23f6bf21 st33zp24_pm_suspend +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x4dc07b3e st33zp24_pm_resume +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x5b54c2ed st33zp24_remove +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0xaa51d128 st33zp24_probe +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0x21240b7d xillybus_find_inode +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0xbd62db77 xillybus_init_chrdev +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0xc20e42b0 xillybus_cleanup_chrdev +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x0299e9db xillybus_endpoint_discovery EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x25978d50 xillybus_isr -EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x45f72ff1 xillybus_endpoint_discovery -EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x5823ede0 xillybus_endpoint_remove -EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x9f74cf23 xillybus_init_endpoint -EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x25ea517a atmel_i2c_send_receive -EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x4c9d14a6 atmel_i2c_enqueue -EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x67f3f7e6 atmel_i2c_probe +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x517d8968 xillybus_endpoint_remove +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0xb8985331 xillybus_init_endpoint +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x01d306de atmel_i2c_probe EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x80a11b1d atmel_i2c_init_read_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x821d3a63 atmel_i2c_enqueue +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xb0842fe5 atmel_i2c_send_receive EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xb6c854bb atmel_i2c_init_ecdh_cmd EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xc71ed50c atmel_i2c_init_genkey_cmd EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xc80f14e8 atmel_i2c_flush_queue EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xf283e995 atmel_i2c_init_random_cmd -EXPORT_SYMBOL drivers/dma/xilinx/xdma 0x766326a1 xdma_disable_user_irq -EXPORT_SYMBOL drivers/dma/xilinx/xdma 0x8ef8d0cf xdma_enable_user_irq -EXPORT_SYMBOL drivers/dma/xilinx/xdma 0x9549fee4 xdma_get_user_irq -EXPORT_SYMBOL drivers/firewire/firewire-core 0x024cbc3a fw_run_transaction -EXPORT_SYMBOL drivers/firewire/firewire-core 0x04e26d88 fw_iso_buffer_init +EXPORT_SYMBOL drivers/dma/xilinx/xdma 0xbac565a8 xdma_disable_user_irq +EXPORT_SYMBOL drivers/dma/xilinx/xdma 0xc8a15417 xdma_get_user_irq +EXPORT_SYMBOL drivers/dma/xilinx/xdma 0xecaa3dea xdma_enable_user_irq +EXPORT_SYMBOL drivers/firewire/firewire-core 0x008250e7 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04a18929 fw_card_add EXPORT_SYMBOL drivers/firewire/firewire-core 0x0bc6094c fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x192d4a5c fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1bf1c6d1 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1db20c68 fw_iso_buffer_init EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed -EXPORT_SYMBOL drivers/firewire/firewire-core 0x2bd2690d fw_core_handle_bus_reset -EXPORT_SYMBOL drivers/firewire/firewire-core 0x2ff41ae0 fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2d95b2e9 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x391b3a53 fw_iso_context_flush_completions EXPORT_SYMBOL drivers/firewire/firewire-core 0x3a771e39 fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3b0248bd fw_send_response EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue -EXPORT_SYMBOL drivers/firewire/firewire-core 0x4c675855 fw_iso_context_start -EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d1cf034 fw_core_remove_card -EXPORT_SYMBOL drivers/firewire/firewire-core 0x4e0f08be fw_iso_context_queue -EXPORT_SYMBOL drivers/firewire/firewire-core 0x4f7a9e7d fw_device_enable_phys_dma -EXPORT_SYMBOL drivers/firewire/firewire-core 0x5d85696a fw_core_handle_request -EXPORT_SYMBOL drivers/firewire/firewire-core 0x6c5104ea fw_iso_context_destroy -EXPORT_SYMBOL drivers/firewire/firewire-core 0x6d98472b fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65a523d5 fw_core_remove_address_handler EXPORT_SYMBOL drivers/firewire/firewire-core 0x6dc50487 fw_csr_string -EXPORT_SYMBOL drivers/firewire/firewire-core 0x798cb699 fw_iso_context_stop -EXPORT_SYMBOL drivers/firewire/firewire-core 0x81cfa8d4 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x72483e08 fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7b7a078a fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7c012180 fw_core_handle_request EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string -EXPORT_SYMBOL drivers/firewire/firewire-core 0x90c77ebb fw_core_add_address_handler -EXPORT_SYMBOL drivers/firewire/firewire-core 0x924c027a fw_fill_response -EXPORT_SYMBOL drivers/firewire/firewire-core 0x94ec475d fw_cancel_transaction -EXPORT_SYMBOL drivers/firewire/firewire-core 0xae9847d2 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8b375bcc fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x99190fa4 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9bc5fbda fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9fdeabba fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa2a27c7e fw_iso_context_start EXPORT_SYMBOL drivers/firewire/firewire-core 0xaedf84ce fw_high_memory_region -EXPORT_SYMBOL drivers/firewire/firewire-core 0xb07a9ecd fw_iso_context_queue_flush -EXPORT_SYMBOL drivers/firewire/firewire-core 0xb701dc03 fw_core_remove_address_handler -EXPORT_SYMBOL drivers/firewire/firewire-core 0xbb932e91 fw_iso_context_create -EXPORT_SYMBOL drivers/firewire/firewire-core 0xc7f2228d fw_schedule_bus_reset -EXPORT_SYMBOL drivers/firewire/firewire-core 0xd2bdfb0d fw_core_handle_response -EXPORT_SYMBOL drivers/firewire/firewire-core 0xdec5dfab fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb0adf55d fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb18fb7ea fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb33532b2 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc4f2eea8 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc970425a fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xdf48cfe9 fw_fill_response EXPORT_SYMBOL drivers/firewire/firewire-core 0xe3fde125 fw_csr_iterator_next EXPORT_SYMBOL drivers/firewire/firewire-core 0xe80e5087 fw_csr_iterator_init -EXPORT_SYMBOL drivers/firewire/firewire-core 0xf1fcea88 fw_send_response -EXPORT_SYMBOL drivers/firewire/firewire-core 0xf5c69f9e fw_iso_buffer_destroy -EXPORT_SYMBOL drivers/fpga/dfl 0x26170599 dfl_driver_unregister -EXPORT_SYMBOL drivers/fpga/dfl 0x46c34324 __dfl_driver_register -EXPORT_SYMBOL drivers/fpga/lattice-sysconfig 0x0e27243a sysconfig_probe +EXPORT_SYMBOL drivers/firewire/firewire-core 0xee053207 fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf85173e7 fw_core_remove_card +EXPORT_SYMBOL drivers/fpga/dfl 0x36465c34 dfl_driver_unregister +EXPORT_SYMBOL drivers/fpga/dfl 0x828550a3 __dfl_driver_register +EXPORT_SYMBOL drivers/fpga/lattice-sysconfig 0x70e49d5b sysconfig_probe EXPORT_SYMBOL drivers/gpu/drm/amd/amdxcp/amdxcp 0x0ea5d74b amdgpu_xcp_drv_release -EXPORT_SYMBOL drivers/gpu/drm/amd/amdxcp/amdxcp 0x70fb8b7a amdgpu_xcp_drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/amd/amdxcp/amdxcp 0xe55cd498 amdgpu_xcp_drm_dev_alloc EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x01c4bba9 drm_dp_lttpr_max_link_rate -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x01d24aff drm_dp_start_crc -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0296cb59 drm_dp_pcon_convert_rgb_to_ycbcr -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x08828ffd drm_dp_dual_mode_read -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x08a31b26 drm_hdmi_avi_infoframe_colorimetry -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0d031118 drm_dp_mst_topology_mgr_resume -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x10cd3edc drm_scdc_set_scrambling -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x13309258 drm_dp_mst_update_slots -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x13a5f5f6 drm_dp_mst_connector_late_register +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x01cf3544 drm_dp_mst_atomic_check +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x03298f34 drm_dp_read_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x035685ca drm_dp_pcon_frl_prepare +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x04e15c1a drm_atomic_get_mst_payload_state +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x07c63a20 drm_dp_pcon_convert_rgb_to_ycbcr +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x09c135d6 drm_dp_mst_topology_mgr_resume +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0ad351b6 drm_dp_read_sink_count_cap +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0c456ba6 drm_dp_mst_topology_mgr_suspend +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x11f5957f drm_dp_mst_atomic_setup_commit +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x129e84ed drm_scdc_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x15df1ed5 drm_dp_downstream_id +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1600b1df drm_dp_dual_mode_set_tmds_output EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1605d0ed drm_dp_lttpr_max_lane_count -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x160c469c drm_dp_mst_hpd_irq_send_new_request -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x169553ac drm_edp_backlight_enable -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x16df9d11 drm_scdc_set_high_tmds_clock_ratio EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1709ddcf drm_dp_lttpr_link_train_clock_recovery_delay -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x18a583e1 drm_dp_mst_atomic_check EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1a5bf3ca drm_dsc_dp_rc_buffer_size +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1af3a7f2 drm_dp_pcon_hdmi_frl_link_error_count EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1b0a1fdc drm_dp_lttpr_voltage_swing_level_3_supported -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1c25bbf1 drm_dp_get_vc_payload_bw -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1f038bdc drm_hdmi_avi_infoframe_bars +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x21834843 drm_dp_aux_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x22fa7675 drm_dp_aux_register EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x23961837 drm_dp_downstream_max_bpc -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x23f75914 drm_connector_attach_content_protection_property -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2425d192 drm_dp_pcon_hdmi_link_mode EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x24ada755 drm_dsc_set_rc_buf_thresh -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x25af51d6 drm_dp_pcon_reset_frl_config EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x26815dbc drm_dp_link_rate_to_bw_code -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x27193cde drm_dp_dual_mode_get_tmds_output -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x297d87b7 drm_dp_dpcd_probe -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2ee70ec4 drm_dp_dual_mode_max_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2be6b4db drm_dp_vsc_sdp_log EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2fa94ef2 drm_dp_downstream_444_to_420_conversion -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3061f039 drm_dp_read_lttpr_common_caps -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x31089551 drm_hdcp_update_content_protection -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3187bb5a drm_dp_vsc_sdp_log -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x31f75047 drm_dp_lttpr_link_train_channel_eq_delay -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x324caa74 drm_dp_read_mst_cap -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x32f36e78 drm_dp_remove_payload -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3356fd8d drm_dp_dual_mode_write -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x37410aa2 drm_dp_mst_connector_early_unregister -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x37a720b6 drm_dp_aux_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x31f3c613 drm_panel_dp_aux_backlight +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3233bad7 drm_dp_mst_hpd_irq_handle_event +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3517ab32 drm_lspcon_set_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x37589b7d drm_atomic_get_old_mst_topology_state EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x392a838b drm_dp_downstream_max_dotclock -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x39e1b475 drm_dp_aux_unregister -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3bd4cb57 drm_hdmi_avi_infoframe_content_type -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3c65489b drm_dp_mst_topology_mgr_suspend -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3d06b9c3 drm_dp_send_query_stream_enc_status -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3d9a3bda drm_dp_pcon_pps_default -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4234cf0c drm_dp_stop_crc -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x43aa99ad drm_dp_mst_topology_mgr_init -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x43fcb2bf drm_dp_cec_irq -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x44aa9a6b drm_dp_read_lttpr_phy_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3a454e16 drm_dp_pcon_pps_default +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3b16bc5c drm_dp_mst_topology_mgr_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x40a3bec6 drm_dp_read_downstream_info +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x41187a53 drm_dp_pcon_hdmi_link_mode EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4603c416 drm_dp_pcon_dsc_bpp_incr -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x47d277d2 drm_dp_mst_put_port_malloc -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x482a089b drm_dp_dual_mode_set_tmds_output -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4bbb2646 drm_dp_read_downstream_info -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4bcc7ad4 drm_dp_mst_get_edid -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4cb87927 drm_dp_mst_edid_read -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4d1d1eda drm_dp_read_sink_count -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4e40acf4 drm_atomic_get_new_mst_topology_state -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x52c604db drm_dp_pcon_is_frl_ready +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x47aa4150 drm_dp_mst_atomic_wait_for_dependencies +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x49539d6c drm_edp_backlight_disable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4afd25cb drm_dp_dual_mode_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4bd94392 drm_dp_pcon_frl_configure_2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4fa6c393 drm_edp_backlight_set_level +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x50d9a174 drm_dp_mst_edid_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x525b8929 drm_dp_atomic_find_time_slots EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5407ae9e drm_dp_get_dual_mode_type_name -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5667e68e drm_dp_mst_dump_topology +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x547f30fd drm_dp_mst_get_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x555f9e9f drm_connector_attach_content_protection_property +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x561d806b drm_dp_mst_topology_mgr_destroy EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x56a663e9 drm_dp_dsc_sink_line_buf_depth +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x57b66110 drm_dp_dual_mode_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x57ffd342 drm_hdmi_avi_infoframe_colorimetry EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x582f248e drm_dp_get_adjust_request_pre_emphasis EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x58d8fcaa drm_dsc_pps_payload_pack +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x598e5459 drm_dp_dual_mode_get_tmds_output EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x59f27ed7 drm_dp_pcon_enc_is_dsc_1_2 EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5a86f411 drm_dp_phy_name -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5c23f5aa drm_dp_read_channel_eq_delay -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5dbfc0e4 drm_dp_mst_atomic_setup_commit -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x61afd088 drm_dp_read_dpcd_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5cce7194 drm_dp_mst_topology_mgr_set_mst +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x61b14d3b drm_atomic_get_mst_topology_state EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x627ba04b drm_dsc_set_const_params -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x62d06463 drm_dp_atomic_find_time_slots -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x63a388f7 drm_dp_send_real_edid_checksum EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x63a477fb drm_dp_downstream_min_tmds_clock -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x63e55505 drm_dp_pcon_hdmi_link_active -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6423883a drm_dp_link_train_clock_recovery_delay EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x648d953b drm_dsc_dp_pps_header_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x667108fd drm_dp_link_train_channel_eq_delay EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x68d8dce7 drm_dp_downstream_is_tmds EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6a4df8c5 drm_dp_128b132b_eq_interlane_align_done EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6aacee47 drm_dp_128b132b_link_training_failed EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6b53e216 drm_dp_downstream_max_tmds_clock -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6f01d9fb drm_dp_dpcd_read_phy_link_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6bafec56 drm_dp_mst_add_affected_dsc_crtcs EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7053fa72 drm_dp_get_pcon_max_frl_bw EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x73011db0 drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x73a403b8 drm_scdc_set_scrambling EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x76ff6644 drm_dp_lttpr_pre_emphasis_level_3_supported -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x78f12463 drm_dp_downstream_id -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x78f26b7c drm_atomic_get_mst_topology_state +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x777e36ab drm_dp_mst_put_port_malloc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x77d91147 drm_dp_send_query_stream_enc_status EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x79008c7e drm_dsc_setup_rc_params -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x809f7b06 drm_dp_set_phy_test_pattern -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x81ef804c drm_dp_mst_dsc_aux_for_port +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x796e0375 drm_dp_start_crc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7af3006c drm_dp_send_power_updown_phy +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7c028ff5 drm_dp_remote_aux_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7de72fe2 drm_dp_dual_mode_max_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7f092e92 drm_dp_mst_root_conn_atomic_check +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x827e7e65 drm_dp_read_dpcd_caps EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x829b6048 drm_dp_dsc_sink_max_slice_count -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x833aea35 drm_hdmi_infoframe_set_hdr_metadata -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x83d91fce drm_dp_mst_root_conn_atomic_check -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x86f33d42 drm_panel_dp_aux_backlight -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x89feaf2d drm_dp_aux_register -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8b2731ad drm_dp_mst_atomic_wait_for_dependencies +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x83588ff6 drm_dp_mst_get_port_malloc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x84e8c794 drm_dp_cec_unset_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x85da9fdf drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x87935c73 drm_dp_mst_dsc_aux_for_port +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x880302d6 drm_dp_mst_atomic_enable_dsc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8a464c00 drm_hdmi_infoframe_set_hdr_metadata EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8ca2d9e4 drm_dp_calc_pbn_mode -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8cc54890 drm_dp_pcon_frl_enable EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8d701329 drm_dp_clock_recovery_ok -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8d9553a9 drm_dp_dual_mode_detect -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x91032504 drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x90f77cc5 drm_dp_cec_register_connector EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x92b9835e drm_dp_128b132b_cds_interlane_align_done -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x93281c0c drm_dp_downstream_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x93bd6dff drm_hdcp_update_content_protection EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x95883bb4 drm_dsc_initial_scale_value -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x9747c6c2 drm_dp_cec_unset_edid -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x98c23588 drm_scdc_read -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x9a01b759 drm_dp_atomic_release_time_slots -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x9d0507bf drm_dp_pcon_frl_configure_2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x9b5a09b4 drm_dp_read_lttpr_phy_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x9e5d6f11 drm_dp_dual_mode_detect +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x9e86f35e drm_dp_pcon_frl_configure_1 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa00d29b7 drm_dp_pcon_pps_override_buf +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa01754c4 drm_dp_add_payload_part1 EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa1fefe6a drm_dp_psr_setup_time -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa324f754 drm_edp_backlight_init -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa4b386a1 drm_dp_pcon_hdmi_frl_link_error_count -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa6a378f0 drm_dp_pcon_pps_override_param +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa22a140b drm_dp_stop_crc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa4ba41ba drm_dp_remove_payload EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa843606e drm_dp_dsc_sink_supported_input_bpcs -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa864e7fe drm_edp_backlight_set_level -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xaada78fe drm_dp_dpcd_read_link_status -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xae2e1ddf drm_edp_backlight_disable -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xae6e9337 drm_dp_cec_register_connector -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xaeaeda4a drm_dp_downstream_debug -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xaeb5e33a drm_dp_cec_unregister_connector +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xaa074917 drm_dp_mst_topology_state_funcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xac4f797d drm_dp_atomic_release_time_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xac55d0c6 drm_edp_backlight_enable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xad6611f2 drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xae657c68 drm_dp_set_subconnector_property EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xaf267620 drm_dp_lttpr_count -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb254f14c drm_scdc_write -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb26475ad drm_atomic_get_old_mst_topology_state -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb3581f36 drm_dp_read_sink_count_cap -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb7e43ffd drm_dp_mst_hpd_irq_handle_event -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb8c7d637 drm_dp_mst_topology_mgr_set_mst -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xba2b32bf drm_dp_link_train_channel_eq_delay -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xba977503 drm_dp_check_act_status -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xbacddd65 drm_atomic_get_mst_payload_state -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xbd0d816c drm_dp_mst_add_affected_dsc_crtcs -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xbe06ab31 drm_dp_pcon_frl_configure_1 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xafde63bc drm_dp_read_desc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb3af6385 drm_dp_cec_unregister_connector +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb536ba43 drm_dp_set_phy_test_pattern +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb6623803 drm_dp_mst_connector_early_unregister +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb836b0b0 drm_dp_read_sink_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb9754ce9 drm_dp_128b132b_read_aux_rd_interval +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xba7ecdf5 drm_dp_mst_dump_topology +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xbcf41622 drm_dp_aux_unregister +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xbecbe92c drm_dp_downstream_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xbf01c0f0 drm_dp_send_real_edid_checksum +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xbf74f48a drm_dp_pcon_pps_override_param EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc020c0c1 drm_dp_pcon_dsc_max_slice_width -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc252ac68 drm_dp_dpcd_read -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc3a92adb drm_dp_mst_topology_state_funcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc18d614c drm_dp_read_mst_cap +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc4568d47 drm_dp_lttpr_link_train_channel_eq_delay EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc5c99a79 drm_dp_get_adjust_request_voltage EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc79ecffb drm_dp_downstream_is_type EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc8b6a8ae drm_dp_128b132b_lane_channel_eq_done -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xcaf3a42d drm_lspcon_set_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xcb7c4224 drm_atomic_get_new_mst_topology_state EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xccf54d5e drm_dp_get_adjust_tx_ffe_preset +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xcd1848b7 drm_dp_dpcd_read_phy_link_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xcf1946fd drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xcf7b8edf drm_dp_dpcd_probe EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd0e95456 drm_dsc_get_bpp_int -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd3271ecf drm_dp_cec_set_edid -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd444ec0c drm_dp_pcon_frl_prepare -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd550561f drm_dp_add_payload_part1 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd1730289 drm_edp_backlight_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd34f7379 drm_dp_mst_detect_port +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd3b8b68b drm_lspcon_get_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd48cd1d4 drm_dp_downstream_debug EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd5a95eae drm_dp_128b132b_lane_symbol_locked -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd9454d3a drm_dp_mst_detect_port -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd948d39c drm_dp_pcon_pps_override_buf -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd9f05177 drm_dp_128b132b_read_aux_rd_interval -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xdac0dd68 drm_dp_mst_get_port_malloc -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xdaccce4c drm_dp_remote_aux_init -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xde447aa0 drm_dp_get_phy_test_pattern -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xde5cb0a8 drm_scdc_get_scrambling_status -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xdf0736b2 drm_dp_read_clock_recovery_delay -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe194d4e9 drm_dp_mst_atomic_enable_dsc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd694165b drm_scdc_set_high_tmds_clock_ratio +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd699e54c drm_dp_get_phy_test_pattern +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd8bf215b drm_dp_pcon_reset_frl_config +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd97bfd34 drm_dp_get_vc_payload_bw +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd9db2e2c drm_dp_read_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xdc49731f drm_hdmi_avi_infoframe_content_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xde7446b8 drm_dp_pcon_is_frl_ready +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xdee79578 drm_dp_read_lttpr_common_caps EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe2468a48 drm_dsc_flatness_det_thresh +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe2ec27e4 drm_scdc_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe34eb4a2 drm_dp_check_act_status EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe5360b84 drm_dp_pcon_dsc_max_slices -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe6b99f82 drm_dp_add_payload_part2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe547ab7b drm_dp_cec_irq +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe859dc43 drm_dp_mst_hpd_irq_send_new_request +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe9ffa457 drm_dp_mst_update_slots EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xedcf81ce drm_dp_channel_eq_ok -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xee3453ab drm_dp_send_power_updown_phy -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xee6ae4af drm_dp_set_subconnector_property -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf08f082f drm_dp_mst_topology_mgr_destroy -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf31c655d drm_lspcon_get_mode -EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf4f688c8 drm_dp_read_desc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xedecc006 drm_hdmi_avi_infoframe_bars +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf138686e drm_dp_pcon_frl_enable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf5d47282 drm_dp_cec_set_edid EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf68741fb drm_dp_subconnector_type EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf689ad25 drm_dp_downstream_420_passthrough +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf97a70f2 drm_scdc_get_scrambling_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfae16a3d drm_dp_mst_connector_late_register EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfb1a7a5a drm_dp_downstream_rgb_to_ycbcr_conversion +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfbf9506c drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfc940fac drm_dp_pcon_hdmi_link_active +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfd02a4f7 drm_dp_add_payload_part2 EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfe12bcb9 drm_dsc_compute_rc_parameters -EXPORT_SYMBOL drivers/gpu/drm/drm 0x007a449c drm_panel_disable -EXPORT_SYMBOL drivers/gpu/drm/drm 0x009b9572 drm_crtc_init_with_planes -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00d601ca drm_gem_vmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0x01702091 drm_add_edid_modes -EXPORT_SYMBOL drivers/gpu/drm/drm 0x018c0871 __drm_dev_dbg -EXPORT_SYMBOL drivers/gpu/drm/drm 0x018d43a3 drm_atomic_get_connector_state -EXPORT_SYMBOL drivers/gpu/drm/drm 0x01a84306 drm_gem_object_lookup -EXPORT_SYMBOL drivers/gpu/drm/drm 0x02d60e55 drm_sysfs_connector_status_event -EXPORT_SYMBOL drivers/gpu/drm/drm 0x0399c36f __drmm_mutex_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0012d469 drm_atomic_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00301604 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x008637ac drm_mode_get_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x009b84ae drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00c30e1f drm_property_replace_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01b97aeb drm_vblank_work_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02475cc3 drm_panel_remove EXPORT_SYMBOL drivers/gpu/drm/drm 0x03c63897 __drm_get_edid_firmware_path -EXPORT_SYMBOL drivers/gpu/drm/drm 0x04691239 drm_noop -EXPORT_SYMBOL drivers/gpu/drm/drm 0x04cd753a devm_drm_bridge_add -EXPORT_SYMBOL drivers/gpu/drm/drm 0x053de33c drm_client_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x0599fdaf drm_vblank_work_schedule -EXPORT_SYMBOL drivers/gpu/drm/drm 0x059d5102 drm_debugfs_add_files -EXPORT_SYMBOL drivers/gpu/drm/drm 0x05d703f7 drm_mode_create_tile_group -EXPORT_SYMBOL drivers/gpu/drm/drm 0x06fafa74 drm_syncobj_add_point -EXPORT_SYMBOL drivers/gpu/drm/drm 0x07218f35 drm_put_dev -EXPORT_SYMBOL drivers/gpu/drm/drm 0x073d0b73 drm_gem_map_detach -EXPORT_SYMBOL drivers/gpu/drm/drm 0x07ed0a26 drm_mode_config_cleanup -EXPORT_SYMBOL drivers/gpu/drm/drm 0x099dd9df drm_atomic_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04783db9 drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04a5d6aa drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x053f9952 drm_property_create_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x055d8ef2 drm_connector_set_link_status_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0605a248 drm_connector_update_privacy_screen +EXPORT_SYMBOL drivers/gpu/drm/drm 0x061ef1dc drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x065b3acd drm_modeset_acquire_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06a80388 drm_syncobj_add_point +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06eb5c08 drm_object_property_get_default_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0706df82 __drmm_crtc_alloc_with_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x081f0349 drm_crtc_init_with_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x090294d8 of_drm_find_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0924bfbf drm_atomic_check_only +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09ee3a30 drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a46f572 drm_connector_attach_hdr_output_metadata_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a5d68a0 drm_mode_create_suggested_offset_properties EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a72f765 drm_clflush_virt_range -EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b3ad3f1 drm_prime_sg_to_page_array -EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c01d52b drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a73a158 drm_modeset_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a8efd1f drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0aa204ff drm_plane_get_damage_clips +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0bf75d2a drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ccdc974 __drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d86e6ce drm_atomic_get_bridge_state EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d9b4753 drm_mode_equal -EXPORT_SYMBOL drivers/gpu/drm/drm 0x0eb58cd2 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e490019 drm_framebuffer_unregister_private EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f7acb66 drm_mm_print -EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f8e54f4 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f85a03d drm_gem_prime_export EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name -EXPORT_SYMBOL drivers/gpu/drm/drm 0x1030fd1f drm_atomic_get_new_crtc_for_encoder -EXPORT_SYMBOL drivers/gpu/drm/drm 0x1044e528 drm_mode_prune_invalid -EXPORT_SYMBOL drivers/gpu/drm/drm 0x10581e19 drm_any_plane_has_format -EXPORT_SYMBOL drivers/gpu/drm/drm 0x1059e3c2 drm_framebuffer_plane_width -EXPORT_SYMBOL drivers/gpu/drm/drm 0x1073b816 drm_wait_one_vblank EXPORT_SYMBOL drivers/gpu/drm/drm 0x107742a9 drm_get_subpixel_order_name -EXPORT_SYMBOL drivers/gpu/drm/drm 0x11bf435a drm_sysfs_hotplug_event -EXPORT_SYMBOL drivers/gpu/drm/drm 0x125ac80e drm_dev_unregister -EXPORT_SYMBOL drivers/gpu/drm/drm 0x1350e50b drm_dev_get -EXPORT_SYMBOL drivers/gpu/drm/drm 0x14da9211 drm_atomic_get_new_bridge_state -EXPORT_SYMBOL drivers/gpu/drm/drm 0x152d1598 drm_modeset_backoff +EXPORT_SYMBOL drivers/gpu/drm/drm 0x110d4d54 drm_edid_read_switcheroo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11231a55 drm_dev_unplug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14430654 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14b562a9 drm_bridge_chain_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14d09269 drm_connector_set_vrr_capable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x151313fd drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1519acdc drm_gem_lru_move_tail +EXPORT_SYMBOL drivers/gpu/drm/drm 0x15585f2e drm_atomic_get_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x158320f5 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x15bfb34d drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x15d813e3 drm_bridge_chain_mode_valid EXPORT_SYMBOL drivers/gpu/drm/drm 0x16b809c8 drm_print_memory_stats -EXPORT_SYMBOL drivers/gpu/drm/drm 0x170eefc7 drm_object_property_get_default_value -EXPORT_SYMBOL drivers/gpu/drm/drm 0x17aa75ef drm_connector_attach_tv_margin_properties -EXPORT_SYMBOL drivers/gpu/drm/drm 0x187fb74c drm_atomic_bridge_chain_post_disable -EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a3756cf drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17561069 drm_mode_create_tv_margin_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x188cdc05 drm_gem_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x189c049c drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x18fd04fd drm_crtc_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19836ba4 drm_gem_unmap_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x199cf36c drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19ebb8f4 drm_plane_create_rotation_property EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a411479 drm_syncobj_free -EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a62550d drm_atomic_get_old_crtc_for_encoder -EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a832de9 drm_vblank_work_cancel_sync -EXPORT_SYMBOL drivers/gpu/drm/drm 0x1aad8e79 drm_property_blob_put EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b966b0b drm_get_format_info -EXPORT_SYMBOL drivers/gpu/drm/drm 0x1cc82dac drm_atomic_state_clear -EXPORT_SYMBOL drivers/gpu/drm/drm 0x1dd8961d drm_gem_lru_scan -EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e64036c drm_connector_register -EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f623a91 drm_crtc_from_index -EXPORT_SYMBOL drivers/gpu/drm/drm 0x2059c717 drm_dev_enter +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b9707c5 drm_property_create_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c268faf drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ca6970d drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d0a8a7d __drm_dev_dbg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d2527b3 drm_client_framebuffer_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d8fbc5c drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1dba4c5c drm_atomic_state_clear +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f0aa1df drm_gem_objects_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f40f650 drm_atomic_bridge_chain_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f5a9349 drm_connector_attach_privacy_screen_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1fa871f5 drm_crtc_vblank_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1fcc20d8 drm_connector_attach_max_bpc_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ff7dda8 drm_gem_unlock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ffc80a4 drm_gem_map_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2013ac25 drm_crtc_set_max_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x204436e9 drm_atomic_get_old_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x204faec0 drm_atomic_print_new_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20c26c2f drm_vblank_work_cancel_sync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x216da0e4 drm_framebuffer_plane_width EXPORT_SYMBOL drivers/gpu/drm/drm 0x2183c08c drm_mm_scan_add_block -EXPORT_SYMBOL drivers/gpu/drm/drm 0x22839a38 __drm_universal_plane_alloc -EXPORT_SYMBOL drivers/gpu/drm/drm 0x23818213 drm_aperture_remove_conflicting_framebuffers -EXPORT_SYMBOL drivers/gpu/drm/drm 0x23940596 drm_handle_vblank -EXPORT_SYMBOL drivers/gpu/drm/drm 0x239bbf79 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x218a064e drm_syncobj_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x221a6d9f drm_atomic_set_fb_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2240ea6d drm_connector_attach_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x229f6fbd drm_atomic_state_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22edc421 drm_of_component_probe +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2351bdc9 drm_atomic_get_old_crtc_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2351dffd drm_atomic_set_crtc_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x246da499 drm_mode_validate_ycbcr420 EXPORT_SYMBOL drivers/gpu/drm/drm 0x24993e50 drm_edid_are_equal EXPORT_SYMBOL drivers/gpu/drm/drm 0x24d124ac drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25b2bc8c drm_connector_attach_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25b2f5fb drm_aperture_remove_conflicting_framebuffers EXPORT_SYMBOL drivers/gpu/drm/drm 0x25daad93 __drm_mm_interval_first -EXPORT_SYMBOL drivers/gpu/drm/drm 0x26752697 drm_vblank_work_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x26c63c02 drm_prime_pages_to_sg -EXPORT_SYMBOL drivers/gpu/drm/drm 0x274ef5aa drm_property_blob_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x270e0a8f drm_send_event_locked EXPORT_SYMBOL drivers/gpu/drm/drm 0x2754dad8 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x275ed7ca drm_connector_init_with_ddc EXPORT_SYMBOL drivers/gpu/drm/drm 0x28779e52 drm_printf -EXPORT_SYMBOL drivers/gpu/drm/drm 0x28c7cf3a drm_sysfs_connector_hotplug_event -EXPORT_SYMBOL drivers/gpu/drm/drm 0x29323c91 drm_panel_get_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28e8dc92 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x290315db drm_atomic_get_new_crtc_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2987b1b3 drm_connector_has_possible_encoder EXPORT_SYMBOL drivers/gpu/drm/drm 0x29f078d1 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a841512 drm_syncobj_replace_fence EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a962499 drm_mm_scan_init_with_range -EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b0f4095 drm_crtc_create_scaling_filter_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b868c60 drm_connector_list_iter_end -EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c671499 drm_mode_create_content_type_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x2cc0925b drm_poll -EXPORT_SYMBOL drivers/gpu/drm/drm 0x2db59edf drm_bridge_chain_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b2dc363 drm_connector_attach_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c2e7adb drm_crtc_arm_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c79703b drm_show_memory_stats +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d5796e8 drm_connector_attach_privacy_screen_provider +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d604faa drm_mode_create_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d9b4632 drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2db4da54 drm_vblank_work_schedule +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ddb9cbb drm_crtc_enable_color_mgmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e90b306 drm_gem_mmap EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ed3c600 drm_mode_debug_printmodeline -EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f5f9728 drm_gem_private_object_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x30133749 drm_connector_set_panel_orientation_with_quirk -EXPORT_SYMBOL drivers/gpu/drm/drm 0x30247706 drm_syncobj_create -EXPORT_SYMBOL drivers/gpu/drm/drm 0x302ef5da drm_connector_list_iter_begin -EXPORT_SYMBOL drivers/gpu/drm/drm 0x3030f273 drm_bridge_chain_mode_set -EXPORT_SYMBOL drivers/gpu/drm/drm 0x309dd5cd drm_property_replace_global_blob -EXPORT_SYMBOL drivers/gpu/drm/drm 0x30bd8107 drm_connector_create_privacy_screen_properties -EXPORT_SYMBOL drivers/gpu/drm/drm 0x310ae1b6 drm_connector_init_with_ddc -EXPORT_SYMBOL drivers/gpu/drm/drm 0x3158100f drm_aperture_remove_conflicting_pci_framebuffers -EXPORT_SYMBOL drivers/gpu/drm/drm 0x31992407 drm_gem_vmap_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f597c85 drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x306667c7 drm_debugfs_add_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30c0593d drm_atomic_get_new_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30de0b35 drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31366f95 drm_analog_tv_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3185bafe drm_crtc_next_vblank_start EXPORT_SYMBOL drivers/gpu/drm/drm 0x31b8a5e3 __drm_set_edid_firmware_path -EXPORT_SYMBOL drivers/gpu/drm/drm 0x31fa030f drm_client_buffer_vmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0x32725a51 drm_hdmi_avi_infoframe_quant_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3217f253 drm_atomic_private_obj_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0x328feb2e drm_property_lookup_blob EXPORT_SYMBOL drivers/gpu/drm/drm 0x32a0cc37 drm_print_bits -EXPORT_SYMBOL drivers/gpu/drm/drm 0x32a6ffdd drm_gem_prime_export -EXPORT_SYMBOL drivers/gpu/drm/drm 0x32ea2788 drm_gem_get_pages -EXPORT_SYMBOL drivers/gpu/drm/drm 0x33575042 drm_crtc_vblank_count_and_time -EXPORT_SYMBOL drivers/gpu/drm/drm 0x3398e8d1 drm_atomic_get_old_private_obj_state -EXPORT_SYMBOL drivers/gpu/drm/drm 0x33d3f3fa drm_crtc_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32b29216 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x330b13a7 drm_plane_from_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33ca2c07 __drmm_add_action +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3439cc86 drm_connector_cleanup EXPORT_SYMBOL drivers/gpu/drm/drm 0x34b1358a drm_vma_node_revoke -EXPORT_SYMBOL drivers/gpu/drm/drm 0x35a39b10 drm_atomic_nonblocking_commit -EXPORT_SYMBOL drivers/gpu/drm/drm 0x35bbf0a9 drm_crtc_vblank_waitqueue -EXPORT_SYMBOL drivers/gpu/drm/drm 0x3746684b drm_mode_duplicate -EXPORT_SYMBOL drivers/gpu/drm/drm 0x37fe7524 drm_property_create_object -EXPORT_SYMBOL drivers/gpu/drm/drm 0x38512a0e drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34db8084 drm_release_noglobal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3856134e drm_atomic_state_default_clear EXPORT_SYMBOL drivers/gpu/drm/drm 0x38690d99 drm_detect_hdmi_monitor -EXPORT_SYMBOL drivers/gpu/drm/drm 0x38af816e drm_release_noglobal -EXPORT_SYMBOL drivers/gpu/drm/drm 0x38e0f770 drm_writeback_get_out_fence -EXPORT_SYMBOL drivers/gpu/drm/drm 0x39411d09 drm_connector_attach_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x387aeaec drm_plane_enable_fb_damage_clips +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38ac34ef drm_modeset_lock_all_ctx +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38d6e6b9 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3910aa7d drm_panel_of_backlight +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3961d240 drm_atomic_get_plane_state EXPORT_SYMBOL drivers/gpu/drm/drm 0x397c3d27 drm_edid_free -EXPORT_SYMBOL drivers/gpu/drm/drm 0x39cdf30c drm_crtc_accurate_vblank_count -EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a4e791b drm_get_edid -EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a7200ad drm_connector_list_update -EXPORT_SYMBOL drivers/gpu/drm/drm 0x3aa8039a drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39d1a4f5 drm_client_buffer_vunmap EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ab87110 drm_mode_equal_no_clocks -EXPORT_SYMBOL drivers/gpu/drm/drm 0x3af714f8 drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3afce9b3 devm_drm_bridge_add EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b0e5e9c __drm_puts_coredump -EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b6e189e drm_gem_dmabuf_vmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b8e4454 drm_crtc_vblank_helper_get_vblank_timestamp_internal -EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c076fdc drm_atomic_private_obj_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c0c12cf drm_panel_of_backlight -EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c4dfe8f drm_modeset_acquire_fini -EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c88f940 drm_mode_create_tv_margin_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3be599d4 drm_panel_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c1c535f drm_color_lut_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c5f54a4 drm_gem_dmabuf_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c6f48b2 drm_syncobj_get_fd EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cdc37e9 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d30ec01 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d46cbab drm_plane_create_blend_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e233cd3 drm_connector_attach_dp_subconnector_property EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eae9871 drm_driver_legacy_fb_format EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f405489 __drm_printfn_err -EXPORT_SYMBOL drivers/gpu/drm/drm 0x4139e869 drm_writeback_signal_completion -EXPORT_SYMBOL drivers/gpu/drm/drm 0x419b001f drm_plane_enable_fb_damage_clips -EXPORT_SYMBOL drivers/gpu/drm/drm 0x42c625ec drm_modeset_unlock_all -EXPORT_SYMBOL drivers/gpu/drm/drm 0x42fd5bd5 drm_bridge_add -EXPORT_SYMBOL drivers/gpu/drm/drm 0x433dba9c drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x405491ef drm_edid_override_connector_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x407f5286 drm_invalid_op +EXPORT_SYMBOL drivers/gpu/drm/drm 0x409481c1 __drmm_mutex_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40b388f5 drm_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x434a9ac4 drm_atomic_state_default_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x435ba0ce drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43642393 drm_gem_map_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43af9034 drmm_kfree EXPORT_SYMBOL drivers/gpu/drm/drm 0x4403a9c3 drm_mode_get_hv_timing EXPORT_SYMBOL drivers/gpu/drm/drm 0x4489a5e9 drm_edid_raw +EXPORT_SYMBOL drivers/gpu/drm/drm 0x452bf7a8 drm_sysfs_connector_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45403d7d drm_crtc_handle_vblank EXPORT_SYMBOL drivers/gpu/drm/drm 0x4575a0ca drm_mode_set_crtcinfo -EXPORT_SYMBOL drivers/gpu/drm/drm 0x467e3720 drm_client_modeset_dpms -EXPORT_SYMBOL drivers/gpu/drm/drm 0x46822076 drm_connector_update_edid_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x46fb9da0 drm_connector_attach_encoder -EXPORT_SYMBOL drivers/gpu/drm/drm 0x472ea11c drm_client_rotation -EXPORT_SYMBOL drivers/gpu/drm/drm 0x47560cb4 drm_gem_private_object_fini -EXPORT_SYMBOL drivers/gpu/drm/drm 0x478d09a5 drm_gem_evict +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46b51b3f drm_atomic_get_old_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46fc8cdd drm_modeset_lock_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47ad3120 drm_connector_init EXPORT_SYMBOL drivers/gpu/drm/drm 0x480d6af0 drm_vma_offset_remove -EXPORT_SYMBOL drivers/gpu/drm/drm 0x482e472e drm_dev_unplug -EXPORT_SYMBOL drivers/gpu/drm/drm 0x49ccf9c6 drm_dev_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4812c8dc drm_dev_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x484e4bb3 drm_gem_prime_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a224325 drm_debugfs_add_file +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a2d3951 drm_handle_vblank EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a35d30d drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b7712d5 drm_modeset_unlock EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b7ebf95 drm_mm_remove_node -EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d035122 drm_debugfs_add_file -EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ddd94fb drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b93c84d drmm_kmalloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ccdb753 drm_object_property_get_value EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e2a621e drm_prime_sg_to_dma_addr_array -EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e9d37c1 drm_clflush_pages -EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f59e893 drm_edid_read_custom -EXPORT_SYMBOL drivers/gpu/drm/drm 0x502d870f drm_connector_attach_dp_subconnector_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e41ceba __drm_universal_plane_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e9c3dae drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f092dde of_drm_find_panel EXPORT_SYMBOL drivers/gpu/drm/drm 0x50674de7 drm_timeout_abs_to_jiffies -EXPORT_SYMBOL drivers/gpu/drm/drm 0x50d93a35 __drmm_encoder_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x508b73b5 drm_connector_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50d4185c drm_gem_vmap_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x512f9d2d drm_vblank_work_init EXPORT_SYMBOL drivers/gpu/drm/drm 0x513072fe __drm_puts_seq_file +EXPORT_SYMBOL drivers/gpu/drm/drm 0x513549d6 drm_universal_plane_init EXPORT_SYMBOL drivers/gpu/drm/drm 0x521ad6d0 drm_puts -EXPORT_SYMBOL drivers/gpu/drm/drm 0x53719e56 drm_release -EXPORT_SYMBOL drivers/gpu/drm/drm 0x54c5091c drm_atomic_private_obj_fini -EXPORT_SYMBOL drivers/gpu/drm/drm 0x54d41bc1 drm_gem_dmabuf_release -EXPORT_SYMBOL drivers/gpu/drm/drm 0x5504fb30 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x525b68db drm_connector_atomic_hdr_metadata_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x52f80947 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55e11d4d drm_poll EXPORT_SYMBOL drivers/gpu/drm/drm 0x55eb38da drm_format_info -EXPORT_SYMBOL drivers/gpu/drm/drm 0x574b60ac drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5666511e drm_gem_prime_import_dev EXPORT_SYMBOL drivers/gpu/drm/drm 0x57698a50 drm_mm_takedown -EXPORT_SYMBOL drivers/gpu/drm/drm 0x57b3fb1b drm_client_framebuffer_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x577910a9 drm_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x579d832a drm_connector_attach_tv_margin_properties EXPORT_SYMBOL drivers/gpu/drm/drm 0x57b6efe3 drm_ioctl_flags -EXPORT_SYMBOL drivers/gpu/drm/drm 0x589793ce drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57fd0ae0 drm_crtc_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58553001 drm_connector_attach_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5872e1b9 drm_mode_create_tv_properties EXPORT_SYMBOL drivers/gpu/drm/drm 0x59056243 drm_mm_replace_node -EXPORT_SYMBOL drivers/gpu/drm/drm 0x5925400c of_drm_find_panel -EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ad3ade5 drm_mode_create_dp_colorspace_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b744a28 drm_crtc_vblank_get -EXPORT_SYMBOL drivers/gpu/drm/drm 0x5bcd21f2 drm_connector_set_tile_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c173a47 drm_mode_create_tv_properties_legacy -EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c21c20d drm_crtc_check_viewport -EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d151c3e drm_color_lut_check -EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d39d947 __drmm_add_action -EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e13ad52 drm_of_find_possible_crtcs -EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e777328 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59652e6e drmm_crtc_init_with_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59c7e18a drm_atomic_set_mode_for_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5aec8939 drm_modeset_drop_locks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c17ebc0 drm_mode_object_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5cd8d2bb drm_gem_private_object_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d25b654 drm_plane_create_scaling_filter_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5db27c3d drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5db5cca2 drm_atomic_state_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e071394 drm_plane_create_color_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f256e58 drm_syncobj_create EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f7985a5 drm_mm_scan_remove_block -EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f9877aa drm_object_attach_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x5fa28782 drm_gem_vunmap_unlocked -EXPORT_SYMBOL drivers/gpu/drm/drm 0x6413f071 drm_modeset_lock_single_interruptible +EXPORT_SYMBOL drivers/gpu/drm/drm 0x607c24ea drm_crtc_vblank_waitqueue +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60c9d4a6 drmm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x613c77d0 drm_aperture_remove_conflicting_pci_framebuffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x61593416 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x618c0c76 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x61b4f39a drm_gem_dmabuf_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x61f75bab drm_edid_read_custom +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62533236 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62ffedb9 drm_gem_get_pages EXPORT_SYMBOL drivers/gpu/drm/drm 0x65702bd6 drm_default_rgb_quant_range -EXPORT_SYMBOL drivers/gpu/drm/drm 0x6576111e drm_atomic_normalize_zpos -EXPORT_SYMBOL drivers/gpu/drm/drm 0x6577e1de drm_connector_set_vrr_capable_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x65de142f drm_mode_create -EXPORT_SYMBOL drivers/gpu/drm/drm 0x67235d4d drm_dev_alloc -EXPORT_SYMBOL drivers/gpu/drm/drm 0x67613de8 drmm_encoder_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x6786e65d drm_property_add_enum -EXPORT_SYMBOL drivers/gpu/drm/drm 0x680665fa drm_crtc_vblank_on -EXPORT_SYMBOL drivers/gpu/drm/drm 0x68ee60b8 drm_gem_dmabuf_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68c18f9d drm_av_sync_delay EXPORT_SYMBOL drivers/gpu/drm/drm 0x6910e4cd drm_format_info_min_pitch -EXPORT_SYMBOL drivers/gpu/drm/drm 0x69143221 drm_event_cancel_free EXPORT_SYMBOL drivers/gpu/drm/drm 0x69353664 __drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x698b8daf drm_plane_create_zpos_immutable_property EXPORT_SYMBOL drivers/gpu/drm/drm 0x69e1bf40 drm_clflush_sg -EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a7b6eca drm_mode_crtc_set_gamma_size -EXPORT_SYMBOL drivers/gpu/drm/drm 0x6aa997c4 drm_of_component_probe +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a207475 drm_master_internal_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a50c828 drm_connector_list_iter_next EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ac01ea8 drm_edid_to_sad -EXPORT_SYMBOL drivers/gpu/drm/drm 0x6acaaa6f drm_writeback_prepare_job -EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b030992 __drmm_crtc_alloc_with_planes -EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6c8bd2 of_drm_get_panel_orientation -EXPORT_SYMBOL drivers/gpu/drm/drm 0x6bc810e3 drm_connector_set_path_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x6bed6980 drm_property_replace_blob -EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c3ac5eb drm_atomic_bridge_chain_pre_enable -EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c91c930 drm_atomic_bridge_chain_check -EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d353ff0 drm_atomic_get_new_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b1fa6b8 drm_send_event_timestamp_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b45ee69 drm_dev_enter +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c9f1882 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d0409ac drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d15978a drm_crtc_vblank_helper_get_vblank_timestamp_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d5aabf8 drmm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e3233be devm_aperture_acquire_from_firmware EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f0ffdb6 drm_vma_node_allow_once -EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc26cb1 drm_modeset_unlock -EXPORT_SYMBOL drivers/gpu/drm/drm 0x7020a620 drm_property_create_enum -EXPORT_SYMBOL drivers/gpu/drm/drm 0x704d0cc8 drm_probe_ddc -EXPORT_SYMBOL drivers/gpu/drm/drm 0x70995177 drm_mode_set_config_internal -EXPORT_SYMBOL drivers/gpu/drm/drm 0x71254658 drm_edid_get_panel_id -EXPORT_SYMBOL drivers/gpu/drm/drm 0x713b1b6d drm_mode_create_aspect_ratio_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f7f83cf drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fdd05ec drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x711ba902 drm_crtc_vblank_off EXPORT_SYMBOL drivers/gpu/drm/drm 0x71a5973a drm_vma_offset_manager_destroy -EXPORT_SYMBOL drivers/gpu/drm/drm 0x71d28906 drm_crtc_enable_color_mgmt -EXPORT_SYMBOL drivers/gpu/drm/drm 0x73e13df9 drm_gem_object_release -EXPORT_SYMBOL drivers/gpu/drm/drm 0x741e76ed drm_gem_unmap_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71aa6ccc drm_gem_lock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71d35c72 drm_gem_lru_move_tail_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x73ac31f1 drm_gem_evict +EXPORT_SYMBOL drivers/gpu/drm/drm 0x73f9218e drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74228838 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74b6eac4 drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74c3d475 drm_panel_disable EXPORT_SYMBOL drivers/gpu/drm/drm 0x74fc6fbd drm_format_info_block_width -EXPORT_SYMBOL drivers/gpu/drm/drm 0x75772733 drm_object_property_set_value -EXPORT_SYMBOL drivers/gpu/drm/drm 0x757cddf6 drm_writeback_cleanup_job -EXPORT_SYMBOL drivers/gpu/drm/drm 0x763e387a drm_connector_has_possible_encoder -EXPORT_SYMBOL drivers/gpu/drm/drm 0x7699330b drm_mode_create_dvi_i_properties -EXPORT_SYMBOL drivers/gpu/drm/drm 0x774f8219 drm_client_modeset_check -EXPORT_SYMBOL drivers/gpu/drm/drm 0x7783f31e drm_edid_read_switcheroo -EXPORT_SYMBOL drivers/gpu/drm/drm 0x7848767c drm_mode_object_find -EXPORT_SYMBOL drivers/gpu/drm/drm 0x792e9b27 drm_send_event_timestamp_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76da79cc drm_gem_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76e910e8 drm_connector_create_privacy_screen_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x774ea22b drm_panel_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x778e0564 drm_plane_create_zpos_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78857bff drm_connector_list_iter_begin EXPORT_SYMBOL drivers/gpu/drm/drm 0x79c00fa2 drm_edid_alloc -EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a092439 drm_atomic_bridge_chain_disable -EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a58474a drm_show_fdinfo -EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a6e9262 drm_connector_set_link_status_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x7adb5468 drm_bridge_remove -EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b4413f3 drm_crtc_cleanup EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c0d9cad drm_display_info_set_bus_formats -EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c22ae69 drm_writeback_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c3732c9 drm_connector_set_tile_property EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c545285 drm_edid_get_monitor_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7cbd1251 drm_connector_list_update EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e3277f8 ___drm_dbg -EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e463482 drm_atomic_add_affected_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e388462 drm_gem_free_mmap_offset EXPORT_SYMBOL drivers/gpu/drm/drm 0x7edf470b drm_edid_duplicate -EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d7b7b drm_gtf_mode -EXPORT_SYMBOL drivers/gpu/drm/drm 0x80295753 drm_edid_read_ddc -EXPORT_SYMBOL drivers/gpu/drm/drm 0x802deba0 drm_connector_unregister -EXPORT_SYMBOL drivers/gpu/drm/drm 0x8079b770 drm_gem_dmabuf_vunmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0x80c1e8f0 drm_panel_prepare -EXPORT_SYMBOL drivers/gpu/drm/drm 0x8489dab5 drm_crtc_next_vblank_start -EXPORT_SYMBOL drivers/gpu/drm/drm 0x8509a9ec drm_edid_override_connector_update -EXPORT_SYMBOL drivers/gpu/drm/drm 0x85613316 drm_gem_handle_create -EXPORT_SYMBOL drivers/gpu/drm/drm 0x8562a761 drm_atomic_set_mode_for_crtc -EXPORT_SYMBOL drivers/gpu/drm/drm 0x85bacf1b drm_gem_vunmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0x869be6df drm_of_crtc_port_mask -EXPORT_SYMBOL drivers/gpu/drm/drm 0x8750060a drm_framebuffer_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x8811deef drm_crtc_send_vblank_event -EXPORT_SYMBOL drivers/gpu/drm/drm 0x8894e8d9 drm_mode_put_tile_group -EXPORT_SYMBOL drivers/gpu/drm/drm 0x88c287ee drm_show_memory_stats -EXPORT_SYMBOL drivers/gpu/drm/drm 0x8986564f drm_atomic_print_new_state -EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b23194a drm_encoder_cleanup -EXPORT_SYMBOL drivers/gpu/drm/drm 0x8badf0ba drm_hdmi_avi_infoframe_from_display_mode -EXPORT_SYMBOL drivers/gpu/drm/drm 0x8bb95f9b drm_modeset_lock -EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c3bf3a3 drm_atomic_get_bridge_state -EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c433f14 drm_open -EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d190a43 drm_client_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x803ab5ab __drmm_universal_plane_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8087f2e9 drm_panel_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x810d181f drm_display_mode_from_cea_vic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8171ef11 drm_writeback_cleanup_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x823e6ea6 drm_event_reserve_init_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8292b07d __drmm_add_action_or_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x829f54af drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82eea857 drm_atomic_set_mode_prop_for_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x831e9e16 drm_mode_create_dp_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x845a4e5c drm_mode_validate_driver +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85fd013c drm_crtc_vblank_on +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8624b71c drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x865bbfc4 drm_atomic_get_crtc_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86a453d2 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x87717de7 drm_bridge_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89773eb5 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x899e1787 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89b15ee3 drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a5ae2e2 drm_print_regset32 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ae59526 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b6d472a drm_sysfs_connector_status_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b9dac6b drm_panel_unprepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8bb3900f drm_edid_connector_add_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d6b5223 drm_connector_set_panel_orientation EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d72789e drm_edid_is_valid -EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de4bf1c drm_crtc_vblank_count -EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e64be48 drm_event_reserve_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f2e437c drm_connector_list_iter_next -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9010e3b3 drm_client_register -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9028813b drm_client_modeset_commit_locked -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9071a565 devm_aperture_acquire_from_firmware -EXPORT_SYMBOL drivers/gpu/drm/drm 0x907a1fae drm_mode_create_tv_properties -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9085164d drm_client_modeset_probe -EXPORT_SYMBOL drivers/gpu/drm/drm 0x90a54e61 of_drm_find_bridge -EXPORT_SYMBOL drivers/gpu/drm/drm 0x912f95b9 drm_connector_update_privacy_screen -EXPORT_SYMBOL drivers/gpu/drm/drm 0x917e8044 drm_connector_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x922957df drmm_kfree -EXPORT_SYMBOL drivers/gpu/drm/drm 0x93510f54 drm_plane_create_alpha_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x937ebb35 drm_mode_object_put -EXPORT_SYMBOL drivers/gpu/drm/drm 0x943bb4fd drm_mode_create_scaling_mode_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x949ad69d drm_modeset_lock_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x94ac0553 drm_master_get -EXPORT_SYMBOL drivers/gpu/drm/drm 0x95acb07b drm_property_create_bitmask -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9768c622 drm_edid_connector_add_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e468ffd drm_gem_lru_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ffbe859 drm_writeback_signal_completion +EXPORT_SYMBOL drivers/gpu/drm/drm 0x907d558a drm_mode_create_tv_properties_legacy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9091c52c drm_crtc_commit_wait +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91780c4c drm_bridge_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95156523 drm_writeback_prepare_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x951c779f drm_crtc_vblank_helper_get_vblank_timestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95acbadc drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95e649e9 drm_atomic_get_connector_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x963aa547 drm_edid_connector_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745dc34 drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x977fef1d drm_client_modeset_commit_locked EXPORT_SYMBOL drivers/gpu/drm/drm 0x978e18b7 drm_gem_lru_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x980273e2 drm_mode_crtc_set_gamma_size EXPORT_SYMBOL drivers/gpu/drm/drm 0x982d09b3 drm_format_info_block_height -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9911f7e7 drm_atomic_get_plane_state -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9973d9be drm_object_property_get_value -EXPORT_SYMBOL drivers/gpu/drm/drm 0x99add668 drm_atomic_state_default_clear -EXPORT_SYMBOL drivers/gpu/drm/drm 0x99cb4c51 drm_analog_tv_mode -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a3a16f4 drm_atomic_set_mode_prop_for_crtc -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a6c07ff __drmm_add_action_or_reset -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ab40cc4 drm_connector_attach_privacy_screen_properties -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ae350ed drm_plane_create_blend_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98f36637 drm_property_create_signed_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x99ca1fa3 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ab26694 drm_property_replace_global_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ad48b77 drm_open EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b285573 drm_match_cea_mode -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b521b94 drm_property_create_bool +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b3c00d5 drm_panel_prepare EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b95c885 drm_mode_match -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b98e63b drm_client_framebuffer_flush EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b9de1c1 drm_edid_header_is_valid -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9bc08f9a drm_plane_get_damage_clips -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ca2e032 drm_plane_create_rotation_property EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ce050be drm_mode_copy -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d43cdb2 drm_is_current_master -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d5e22bc drm_crtc_vblank_restore -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e03ffd8 drm_file_get_master -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e634242 drm_atomic_state_init EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e724831 drm_vma_node_allow -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ef05074 drm_invalid_op -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f001f07 drm_plane_create_scaling_filter_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f2639ad drm_connector_set_panel_orientation -EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f579a18 drm_bridge_attach -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa13edd5a drm_get_edid_switcheroo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9fdc927f drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa03702ae drm_gem_map_detach +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa07dbef4 drm_crtc_from_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa13574fe drm_atomic_get_new_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa22a45cd drm_atomic_nonblocking_commit EXPORT_SYMBOL drivers/gpu/drm/drm 0xa248afde drm_detect_monitor_audio -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa25f7818 drm_edid_read -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa2c1e840 drm_mode_find_dmt -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa32b1b16 drm_send_event -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3356629 drm_send_event_locked -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3485b52 drm_state_dump -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa37df519 drm_connector_attach_edid_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa381acf8 drm_crtc_vblank_helper_get_vblank_timestamp EXPORT_SYMBOL drivers/gpu/drm/drm 0xa38c4c94 drm_memcpy_from_wc -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa38fe008 drm_syncobj_find_fence -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4989f41 drm_vblank_work_flush -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4d2434e drm_debugfs_remove_files -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa641d0ef drm_plane_from_index -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6c2eaff drm_modeset_lock_all -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa713c2c5 drm_connector_attach_scaling_mode_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7c2af50 drm_client_framebuffer_delete -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7e90977 drm_gem_dmabuf_mmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8062ed2 drm_read -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8352ca2 drm_modeset_acquire_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa397b1e8 drm_get_edid_switcheroo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3a8f90b drm_crtc_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4526436 drm_atomic_normalize_zpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4cbf81d drm_writeback_queue_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa56f63da drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa57607a6 drm_is_current_master +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa57ed565 drm_writeback_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa64e99c4 drm_dev_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa66a2ad8 drm_atomic_add_encoder_bridges +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6ec24c8 drm_atomic_bridge_chain_post_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8293ed2 drm_modeset_lock_all EXPORT_SYMBOL drivers/gpu/drm/drm 0xa849c73b drm_vma_offset_lookup_locked -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9579f15 drm_atomic_state_default_release -EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9b22f3a drm_client_dev_hotplug -EXPORT_SYMBOL drivers/gpu/drm/drm 0xac82af46 drm_framebuffer_remove -EXPORT_SYMBOL drivers/gpu/drm/drm 0xad3fbcaf drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8997d0c drm_modeset_backoff +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8ca062b drm_writeback_connector_init_with_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8da8d2b drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab2fcd9d drm_crtc_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab6d6af2 drm_prime_sg_to_page_array EXPORT_SYMBOL drivers/gpu/drm/drm 0xad4e902b drm_color_ctm_s31_32_to_qm_n EXPORT_SYMBOL drivers/gpu/drm/drm 0xae277372 __drm_crtc_commit_free -EXPORT_SYMBOL drivers/gpu/drm/drm 0xae772e2a drm_crtc_vblank_off -EXPORT_SYMBOL drivers/gpu/drm/drm 0xaefb9a58 drm_syncobj_replace_fence -EXPORT_SYMBOL drivers/gpu/drm/drm 0xafcf7080 drm_gem_free_mmap_offset -EXPORT_SYMBOL drivers/gpu/drm/drm 0xafe480f4 drm_mode_create_hdmi_colorspace_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0a7557e drm_property_create_blob -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0f735c0 drm_gem_vm_close -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0fc465d drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae4ce7d7 drm_event_cancel_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaef21387 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0186ce0 drm_prime_pages_to_sg EXPORT_SYMBOL drivers/gpu/drm/drm 0xb11ac7a7 __drm_err -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb15f307d drm_atomic_add_encoder_bridges -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1b23e77 drm_modeset_drop_locks +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1b11b2a drm_atomic_get_old_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1dcf985 drm_crtc_vblank_count_and_time EXPORT_SYMBOL drivers/gpu/drm/drm 0xb212dc3e drm_edid_dup -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb279bb15 drm_encoder_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2947dee drm_plane_force_disable -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2e9aac6 drm_atomic_get_new_private_obj_state -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2f65312 drm_connector_attach_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2c8b6f8 drm_mode_object_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2cb3791 drm_gem_lru_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb33c1b4e __drmm_encoder_alloc EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3750192 drm_edid_valid -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb380b1de drm_gem_create_mmap_offset EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4032484 drm_mm_insert_node_in_range -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5bb9aae drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4457e9b drm_state_dump +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb45fc0ac drm_plane_get_damage_clips_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb50638df drm_atomic_get_new_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb545c6e6 drm_connector_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5b24468 drm_crtc_check_viewport +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5e235dc drm_panel_get_modes EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5ea4d01 drm_vma_offset_manager_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb60642cd drm_atomic_state_alloc EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6127243 drm_need_swiotlb -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb639706e drm_property_create_range -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6dd8523 drm_vblank_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb77066f6 drm_dev_register -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8296b12 drm_framebuffer_plane_height -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb82c2c5f drm_mode_get_tile_group -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9562e89 drm_event_reserve_init_locked -EXPORT_SYMBOL drivers/gpu/drm/drm 0xb990b1a2 drm_gem_lru_move_tail +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb68b4e5a drm_client_modeset_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb905e503 drm_crtc_accurate_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb957584c drm_event_reserve_init EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9cad492 __drm_atomic_state_free -EXPORT_SYMBOL drivers/gpu/drm/drm 0xba0a931b drm_connector_attach_hdr_output_metadata_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0xba493321 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba6fa45b drm_client_modeset_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb8e7cea drm_gem_object_init EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbbf2d0c drm_vma_node_is_allowed -EXPORT_SYMBOL drivers/gpu/drm/drm 0xbca4b420 drm_mode_validate_driver -EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe1097f3 __drm_atomic_helper_set_config -EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe7c1ec2 drm_gem_lock_reservations -EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf24188d drm_panel_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0xbfc57196 drm_writeback_connector_init_with_encoder -EXPORT_SYMBOL drivers/gpu/drm/drm 0xc02cd90c drm_mode_plane_set_obj_prop -EXPORT_SYMBOL drivers/gpu/drm/drm 0xc123673d drm_mode_create_from_cmdline_mode -EXPORT_SYMBOL drivers/gpu/drm/drm 0xc17b50e6 drm_mode_validate_ycbcr420 -EXPORT_SYMBOL drivers/gpu/drm/drm 0xc19f4a5f __drmm_universal_plane_alloc -EXPORT_SYMBOL drivers/gpu/drm/drm 0xc22f1dc8 drmm_mode_config_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0xc293004d drm_panel_enable -EXPORT_SYMBOL drivers/gpu/drm/drm 0xc2ab3b1a drm_plane_create_zpos_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0xc54b52dc drm_display_mode_from_cea_vic -EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6095a5f drm_bridge_chain_mode_valid -EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7364880 drm_universal_plane_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0xc78e7f0b drm_client_modeset_commit -EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7e6ff5d drm_connector_attach_max_bpc_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8b04895 drm_atomic_get_crtc_state -EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8e0e795 __devm_drm_dev_alloc -EXPORT_SYMBOL drivers/gpu/drm/drm 0xc964c38e drm_debugfs_create_files -EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb5ea721 drm_atomic_add_affected_connectors -EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc5deab9 drm_gem_objects_lookup -EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc664a6e drm_gem_prime_import_dev -EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdb20649 drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbd4a928 drm_connector_list_iter_end +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc8bed49 drm_mode_create_hdmi_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbcf043c6 drm_client_modeset_probe +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbcf1116d drm_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd0f25d5 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbdc5b269 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbec6a228 drm_client_framebuffer_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0af2423 drm_gem_dmabuf_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc197de36 drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc19b98e4 drm_edid_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc55dba29 drm_of_find_possible_crtcs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6d0e5e6 drm_edid_get_panel_id +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6f35d01 drm_atomic_bridge_chain_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc762eaa2 drm_client_buffer_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc77cf32e drm_send_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8b30c86 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca6070af drm_crtc_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcaac996f drm_atomic_add_affected_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb496d1d drm_dev_has_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc011829 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc5f42dd drm_mode_create_aspect_ratio_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc7bebe9 drm_client_modeset_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd428f5c drm_property_create_bool EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdb99cc9 drm_mode_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdd7ad13 drmm_connector_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0xce14e316 drm_property_lookup_blob -EXPORT_SYMBOL drivers/gpu/drm/drm 0xceb6032f drm_gem_lru_move_tail_locked -EXPORT_SYMBOL drivers/gpu/drm/drm 0xd10fdc39 drm_atomic_set_crtc_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce503b56 drm_property_blob_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce8784c4 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf6cf414 drm_hdmi_avi_infoframe_quant_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf8d1907 drm_client_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcfe41555 drm_connector_attach_vrr_capable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd055f21f drm_file_get_master +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0681cfd drm_atomic_bridge_chain_check EXPORT_SYMBOL drivers/gpu/drm/drm 0xd13f9985 drm_edid_block_valid -EXPORT_SYMBOL drivers/gpu/drm/drm 0xd16710c6 drm_client_buffer_vunmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1a1e3ad drm_master_internal_acquire -EXPORT_SYMBOL drivers/gpu/drm/drm 0xd424fc24 drm_edid_connector_update -EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5f0b61b drm_writeback_queue_job -EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6292d86 __drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1a8e736 drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1cf7692 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1e318ce drm_connector_oob_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd222f550 drm_show_fdinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd23ff348 drm_mode_plane_set_obj_prop +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3154d01 __devm_drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4a99a6b drm_gem_dma_resv_wait +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4e6f600 drm_gem_vunmap_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd52de8fa drm_dev_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5469b68 drm_modeset_acquire_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5c534b2 drm_any_plane_has_format EXPORT_SYMBOL drivers/gpu/drm/drm 0xd680a377 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd71f5946 drm_ioctl_kernel EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7a9cf42 drm_mode_validate_size -EXPORT_SYMBOL drivers/gpu/drm/drm 0xd997cc55 drm_gem_lru_remove -EXPORT_SYMBOL drivers/gpu/drm/drm 0xda9e4e37 drm_atomic_bridge_chain_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7ac349c drm_client_rotation +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7b12829 drm_atomic_private_obj_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8ee55c0 drm_client_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd9015059 drm_bridge_chain_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd98b769c drm_writeback_get_out_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd9c700d9 drm_property_blob_put EXPORT_SYMBOL drivers/gpu/drm/drm 0xdad9c8b1 drm_prime_get_contiguous_size EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb320a08 drm_mode_is_420 -EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb9b9138 drm_crtc_commit_wait -EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc04877c drm_gem_vm_open -EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc3f92b3 drm_crtc_arm_vblank_event -EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc6034f5 drm_crtc_handle_vblank -EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc9b8f10 drm_atomic_set_fb_for_plane -EXPORT_SYMBOL drivers/gpu/drm/drm 0xdcceaf3b drm_panel_remove EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd3c6afa drm_mode_is_420_also -EXPORT_SYMBOL drivers/gpu/drm/drm 0xddbe785f drm_connector_cleanup -EXPORT_SYMBOL drivers/gpu/drm/drm 0xde734045 drm_plane_cleanup -EXPORT_SYMBOL drivers/gpu/drm/drm 0xdeda0540 drm_atomic_check_only +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde391782 drm_syncobj_find_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde3fd2bb drm_get_edid EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf3f760d drm_mm_scan_color_evict EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf666902 drm_rotation_simplify -EXPORT_SYMBOL drivers/gpu/drm/drm 0xe00783e0 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdfa026d4 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0fbe865 drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe10f15cd drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1a5214e drm_client_release EXPORT_SYMBOL drivers/gpu/drm/drm 0xe317082a __drm_printfn_info -EXPORT_SYMBOL drivers/gpu/drm/drm 0xe31ebc65 drm_gem_unlock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe379d2d4 drm_gtf_mode_complex EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3ac15d5 drm_mode_is_420_only -EXPORT_SYMBOL drivers/gpu/drm/drm 0xe43b259c drm_framebuffer_lookup -EXPORT_SYMBOL drivers/gpu/drm/drm 0xe44592bf drm_crtc_vblank_reset -EXPORT_SYMBOL drivers/gpu/drm/drm 0xe4ae550a drm_modeset_lock_all_ctx +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe43a0e2a drm_connector_set_orientation_from_panel +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe48367ca drm_crtc_vblank_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5d7afb5 drm_gem_dmabuf_vmap EXPORT_SYMBOL drivers/gpu/drm/drm 0xe633a4cd drm_format_info_bpp -EXPORT_SYMBOL drivers/gpu/drm/drm 0xe769b1f1 drm_atomic_get_old_bridge_state -EXPORT_SYMBOL drivers/gpu/drm/drm 0xe79a1b95 drm_connector_oob_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6576a0d drm_mode_put_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7102e94 drm_encoder_cleanup EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8a034df drm_dev_exit -EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9ce6c88 drm_syncobj_get_fd -EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9e9bee1 drm_property_create_signed_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9232aa8 drm_edid_read_ddc EXPORT_SYMBOL drivers/gpu/drm/drm 0xea00fe81 __drm_printfn_coredump -EXPORT_SYMBOL drivers/gpu/drm/drm 0xeade8348 drm_gem_prime_handle_to_fd -EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb44a7df drm_master_put -EXPORT_SYMBOL drivers/gpu/drm/drm 0xebb76ad3 drm_gem_map_attach -EXPORT_SYMBOL drivers/gpu/drm/drm 0xebe16edc drm_ioctl -EXPORT_SYMBOL drivers/gpu/drm/drm 0xec447de7 drm_atomic_get_old_connector_for_encoder -EXPORT_SYMBOL drivers/gpu/drm/drm 0xec8a5076 drm_connector_attach_vrr_capable_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0xee1710cb drm_gem_map_dma_buf -EXPORT_SYMBOL drivers/gpu/drm/drm 0xee2294d2 drm_gem_dma_resv_wait -EXPORT_SYMBOL drivers/gpu/drm/drm 0xee2b3129 drm_panel_add -EXPORT_SYMBOL drivers/gpu/drm/drm 0xeeb5ee11 drm_gem_object_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0xef58cb61 drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea0156e9 drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb4f9ca5 drm_mode_create_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xebfc8183 __drm_atomic_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed07420a drm_of_crtc_port_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed647375 drm_connector_set_path_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeda7fe5c drm_atomic_set_crtc_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee1e0ad0 drm_framebuffer_lookup EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0517d7a drm_mm_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0xf06c89a6 drm_syncobj_find EXPORT_SYMBOL drivers/gpu/drm/drm 0xf095dc96 drm_get_tv_mode_from_name EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort -EXPORT_SYMBOL drivers/gpu/drm/drm 0xf14bd870 drm_mode_object_get -EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1a22d21 drm_atomic_get_private_obj_state EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1b5340a drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1fdd747 drm_mode_destroy EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2512263 drm_vma_offset_add -EXPORT_SYMBOL drivers/gpu/drm/drm 0xf28c54dd drm_ioctl_kernel -EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2949d33 drmm_crtc_init_with_planes -EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2f2ad28 drm_connector_set_orientation_from_panel -EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3ff9372 drm_connector_atomic_hdr_metadata_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf26978de drm_connector_set_panel_orientation_with_quirk +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2b54d32 drm_syncobj_get_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf350abdf drmm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf36825f0 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf36b5cf3 drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3b5a42c drm_hdmi_vendor_infoframe_from_display_mode EXPORT_SYMBOL drivers/gpu/drm/drm 0xf406e46a drm_get_connector_type_name -EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4643843 drm_gem_prime_mmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0xf549ad5b drm_mode_create_suggested_offset_properties -EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5782045 drm_plane_get_damage_clips_count -EXPORT_SYMBOL drivers/gpu/drm/drm 0xf58b98d7 drm_crtc_vblank_put -EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5abeebf drm_crtc_set_max_vblank_count -EXPORT_SYMBOL drivers/gpu/drm/drm 0xf64919e3 drm_dev_has_vblank -EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6a7c20e drm_dev_put -EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6a9acd9 drm_print_regset32 -EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7c99530 drm_master_internal_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4137a66 drm_crtc_create_scaling_filter_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf48da10b drm_atomic_add_affected_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6936513 drm_atomic_bridge_chain_pre_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf760b29e drm_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf80f6431 drm_gem_create_mmap_offset EXPORT_SYMBOL drivers/gpu/drm/drm 0xf824c7db __drm_printfn_debug -EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9eeb7c9 drmm_kmalloc -EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb527401 drm_gem_mmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb8c5da6 drm_hdmi_vendor_infoframe_from_display_mode -EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb900358 drm_mode_parse_command_line_for_connector -EXPORT_SYMBOL drivers/gpu/drm/drm 0xfbce40c4 drm_atomic_set_crtc_for_connector -EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc290775 drm_plane_create_color_properties -EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc2dd976 drm_plane_create_zpos_immutable_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd94bf41 drm_syncobj_get_handle -EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdccdd25 drm_connector_attach_privacy_screen_provider -EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe39e66e drm_panel_unprepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf824d82e of_drm_get_panel_orientation +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf8f11642 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf91c355e drm_plane_create_alpha_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfaf13543 drm_modeset_lock_single_interruptible +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb766c76 drm_client_framebuffer_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb91ebf1 drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc56b640 drm_master_internal_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfcb425b0 drm_client_dev_hotplug +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd4f4d91 drm_framebuffer_plane_height EXPORT_SYMBOL drivers/gpu/drm/drm 0xfeb953b1 __drm_printfn_seq_file EXPORT_SYMBOL drivers/gpu/drm/drm_buddy 0x22d53779 drm_buddy_free_list EXPORT_SYMBOL drivers/gpu/drm/drm_buddy 0x2d9e9583 drm_buddy_print @@ -908,396 +908,396 @@ EXPORT_SYMBOL drivers/gpu/drm/drm_buddy 0xc30d71cc drm_buddy_block_print EXPORT_SYMBOL drivers/gpu/drm/drm_buddy 0xfa150882 drm_buddy_fini EXPORT_SYMBOL drivers/gpu/drm/drm_buddy 0xff748b76 drm_buddy_alloc_blocks -EXPORT_SYMBOL drivers/gpu/drm/drm_dma_helper 0x66716c82 drm_fbdev_dma_setup -EXPORT_SYMBOL drivers/gpu/drm/drm_dma_helper 0x91e7dfcf drm_gem_dma_prime_import_sg_table_vmap -EXPORT_SYMBOL drivers/gpu/drm/drm_dma_helper 0xafe0f575 drm_gem_dma_print_info -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x02494d1c drm_fb_helper_ioctl -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x068cde41 drm_atomic_helper_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_dma_helper 0x1c954fa9 drm_gem_dma_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_dma_helper 0x86a5ed67 drm_fbdev_dma_setup +EXPORT_SYMBOL drivers/gpu/drm/drm_dma_helper 0xafff1d96 drm_gem_dma_prime_import_sg_table_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x012bce34 devm_drm_panel_bridge_add_typed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x06b7c4e1 drm_atomic_helper_set_config EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x06d788ef drm_flip_work_commit -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x080b8499 drm_gem_fb_begin_cpu_access -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x082df728 drm_atomic_helper_async_check -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0859a1d8 __drm_atomic_helper_connector_duplicate_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x08e18d21 drm_i2c_encoder_dpms -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0c134dba drm_fb_helper_fini -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0c662d6f __drm_gem_destroy_shadow_plane_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f4642e3 drm_gem_simple_kms_duplicate_shadow_plane_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x13252a30 __drm_gem_reset_shadow_plane -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x15811301 drm_i2c_encoder_init -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x15e7ed82 drm_fb_helper_blank -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x168b8c08 drm_atomic_helper_wait_for_fences -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x18df92b3 drm_gem_reset_shadow_plane -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x19155a10 drm_gem_simple_kms_destroy_shadow_plane_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1b0a2c69 drm_self_refresh_helper_update_avg_times -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x201a153f drm_fb_xrgb8888_to_rgb332 -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x20dd4428 drm_plane_helper_update_primary -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x213bddc4 drm_fb_build_fourcc_list -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x216dbb91 drmm_of_get_bridge -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x229ad792 drm_fb_helper_damage_range -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2350a3c8 drm_gem_destroy_shadow_plane_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x23d3d5b0 drm_kms_helper_poll_enable -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x24b4e084 __drm_atomic_helper_crtc_destroy_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x26d42a31 drm_atomic_helper_check_planes -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x26df788e drm_i2c_encoder_detect -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x26e8ff2c drm_gem_fb_vunmap -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x275349ca drm_crtc_helper_atomic_check -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x293e983f drm_atomic_helper_setup_commit -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2b47ef7f drm_atomic_helper_page_flip_target -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d4593ea drm_atomic_helper_commit_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x075aadd0 drm_atomic_helper_damage_iter_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x07bb9e4e drm_atomic_helper_disable_planes_on_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x08be92e5 drm_fb_xrgb8888_to_argb2101010 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x092e1cdb drm_gem_fb_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0c1751ac drm_atomic_helper_damage_merged +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0c96ec64 __drm_atomic_helper_crtc_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0d80bd51 drm_gem_fb_end_cpu_access +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x104cb7fc drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x104d4635 drm_atomic_helper_check_wb_encoder_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x11461e5e drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1289bb4e drm_fb_xrgb8888_to_mono +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x12e33433 drm_crtc_helper_atomic_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x14ea056d drm_atomic_helper_cleanup_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x15d1badc drm_fb_xrgb8888_to_xrgb2101010 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x160bff3c drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1b8e1ae9 devm_drm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1c530008 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1da83ae1 drm_gem_simple_kms_end_shadow_fb_access +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1e1bc619 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1f0c383b drm_atomic_helper_commit_tail_rpm +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1ff21fba drm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x201930f1 drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x20f309d8 drm_mode_config_helper_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x20fcad5c __drm_atomic_helper_connector_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x230d02a9 drm_gem_simple_kms_begin_shadow_fb_access +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2441acae drm_atomic_helper_wait_for_fences +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x24c4d4dc drm_connector_helper_get_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2666f098 drm_atomic_helper_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x26997ed9 drmm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x28f0e208 drm_helper_probe_detect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x28f550ad drm_fb_xrgb8888_to_rgba5551 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2ba03372 drm_bridge_is_panel +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2c812036 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d0a3d96 drm_gem_begin_shadow_fb_access EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d50570f drm_rect_calc_hscale -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2e9a1803 drm_atomic_helper_async_commit -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2f08dd75 drm_helper_probe_single_connector_modes -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x32ae4f74 drm_atomic_helper_check_crtc_primary_plane -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x350e164a drm_atomic_helper_check_plane_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x38ab10a5 __drmm_simple_encoder_alloc -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x39fa3abc drm_gem_simple_kms_end_shadow_fb_access -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3a3c063b drm_atomic_helper_resume -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3b070787 drm_simple_encoder_init -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3b51e348 drm_kms_helper_hotplug_event -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3ce35112 drm_atomic_helper_check -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3d06cba1 drm_i2c_encoder_save -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3dfb01a5 drm_connector_helper_get_modes -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3fed8e25 drm_fb_xrgb8888_to_xrgb2101010 -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x41f4dc40 drm_atomic_helper_shutdown -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x42551c98 __drm_atomic_helper_bridge_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x43de98bd drm_self_refresh_helper_alter_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x451594c8 drm_atomic_helper_dirtyfb -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4573d1a9 drm_helper_mode_fill_fb_struct -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x490b4e4a drm_panel_bridge_add -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4bb8fd22 drm_fb_helper_debug_enter -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4cd36c4f drm_atomic_helper_disable_all -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4d37c10c drm_fb_helper_deferred_io -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4f13c824 drm_kms_helper_poll_fini -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x50e218de __drm_atomic_helper_connector_state_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x531d4c23 drm_fb_helper_set_suspend_unlocked -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x53540862 drm_atomic_helper_disable_plane -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x54410fef drm_atomic_helper_prepare_planes -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x563e7b9f drm_fbdev_generic_setup -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5990ee18 drm_i2c_encoder_mode_set -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x59ac49c1 devm_drm_of_get_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x30f475d1 drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x31497a1e __drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x339d9616 drm_connector_helper_get_modes_from_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3625ed6f drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3704e5c9 drm_gem_fb_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x386d7cb3 __drm_atomic_helper_private_obj_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x39cfc2bb drm_atomic_helper_commit_cleanup_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3d7642ea drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3ede5702 drm_atomic_helper_disable_all +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x42a6a06e drm_atomic_helper_async_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x44dbb310 drm_simple_display_pipe_attach_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x45de3133 drm_gem_simple_kms_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x45f24b9a drm_atomic_helper_page_flip_target +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x467cd9a6 drm_fb_helper_lastclose +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x46bcfff4 __drm_atomic_helper_bridge_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4c1feaaf __drm_atomic_helper_crtc_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4ccc98ef drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4d2f7d20 drm_gem_simple_kms_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4d649e26 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4df4aba1 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4f3d1b04 drm_atomic_helper_shutdown +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4f68a254 drm_fb_helper_release_info +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4f7f9cbb drm_atomic_helper_update_legacy_modeset_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x500e6bc8 __drm_atomic_helper_connector_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x50762d19 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x525baa5e drm_atomic_helper_plane_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x52e2d1c7 drm_atomic_helper_connector_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x52eae078 drm_atomic_helper_connector_tv_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x536184af drm_atomic_helper_setup_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x53bd38a2 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x549df39c __drm_atomic_helper_plane_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x54d142b8 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x551f839b drm_gem_simple_kms_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x569c44ae drm_connector_helper_tv_get_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5946b6df drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x59cae8d4 drm_atomic_helper_suspend EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5a4734d1 drm_kms_helper_is_poll_worker -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5b87364c drm_atomic_helper_plane_duplicate_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5bbd5234 drm_gem_fb_destroy -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5bccf10f drm_fb_xrgb8888_to_argb8888 -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5c347233 drm_crtc_helper_set_mode -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5eeed560 __drm_atomic_helper_crtc_state_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5f36edba drm_atomic_helper_disable_planes_on_crtc -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5f951c83 drm_atomic_helper_bridge_destroy_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x60eac0f9 __drm_atomic_helper_crtc_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6206134c drm_atomic_helper_check_modeset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x68dd1c90 drm_fb_helper_output_poll_changed -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6925fba6 drm_fb_helper_init -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6b3d97d9 drm_helper_connector_dpms -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6b58776d drm_atomic_helper_bridge_propagate_bus_fmt +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5b8bc7c4 drm_panel_bridge_connector +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5e696986 drm_atomic_helper_wait_for_vblanks +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5efffe39 __drm_gem_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x60c5e5ab drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x625f38a4 drm_fb_helper_set_suspend_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x62bbdc5d drm_atomic_helper_plane_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x63844359 drm_atomic_helper_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x63c81f64 drm_fb_helper_deferred_io +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x657201a5 drm_plane_helper_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x65a5491a drm_gem_end_shadow_fb_access +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x65f71d95 drm_fb_helper_unprepare +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x67915402 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x67e3a1db drm_atomic_helper_check_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x69ed106b __drm_atomic_helper_crtc_reset EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6b5c2b06 drm_atomic_helper_damage_iter_next -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6bf4ed97 drm_helper_force_disable_all -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6daf9a90 drm_crtc_helper_set_config -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6df2e585 drm_connector_helper_hpd_irq_event EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6e30ba8e drm_rect_rotate_inv -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6f3e92e0 drm_gem_simple_kms_reset_shadow_plane -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7203c95f drm_atomic_helper_commit_duplicated_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x72151143 drm_fb_helper_alloc_info -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x73d05f9f drm_atomic_helper_plane_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x74e3932b drm_mode_config_helper_suspend -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x75c3f718 drm_fb_helper_setcmap -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7605e044 drm_atomic_helper_connector_destroy_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x762c171a drm_fb_helper_debug_leave -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x762c7a30 drm_simple_display_pipe_attach_bridge -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x77d3fee2 drm_fb_helper_release_info -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7c701ced drm_plane_helper_destroy -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7c774ee3 drm_gem_fb_create_handle -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x83462495 drm_atomic_helper_damage_merged -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8469a41c drm_panel_bridge_remove -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x86f812b5 drm_i2c_encoder_mode_fixup -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x86fa000c drm_kms_helper_connector_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x704d9c47 drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x71bc120c drm_atomic_helper_connector_tv_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7371a191 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7392984a __drm_gem_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x75d3ed57 drm_fb_helper_fill_info +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x763eb937 drm_atomic_helper_wait_for_dependencies +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x76b35017 __drmm_simple_encoder_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x77574ee9 drm_fb_xrgb8888_to_rgb565 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7924e324 drm_atomic_helper_commit_modeset_enables +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x79bbaebe drm_fb_helper_alloc_info +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7b44dacf drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7f3b4e96 drm_fb_xrgb8888_to_xrgb1555 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8058ed08 drm_connector_helper_get_modes_fixed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x806d6428 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x81063949 drm_atomic_helper_prepare_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x810cacf3 drm_atomic_helper_connector_tv_margins_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8419ec86 __drm_atomic_helper_connector_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x843029c5 drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x85337009 drm_atomic_helper_update_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x85e8689f __drm_gem_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x867acf6b __drm_atomic_helper_plane_duplicate_state EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x871ab41a drm_rect_intersect -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x88aa08a0 drm_fb_xrgb8888_to_mono -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x88b49419 drm_atomic_helper_connector_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8b1e80c9 drm_atomic_helper_connector_tv_margins_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8b72448f drm_atomic_helper_wait_for_vblanks -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8b87ae02 drm_helper_resume_force_mode -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8cabfa67 __drm_atomic_helper_private_obj_duplicate_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8e2878bc drm_fb_helper_unprepare -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8ef88f46 drm_self_refresh_helper_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x881e2777 drm_plane_helper_disable_primary +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x88235cb2 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x882d860f drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x88506ed5 drm_gem_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x886a2fe3 drm_atomic_helper_fake_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8a91d98f drm_fb_memcpy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8cb790af drm_self_refresh_helper_update_avg_times +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8dc5fe76 drm_atomic_helper_commit_modeset_disables +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8e5244b6 drm_fb_xrgb8888_to_gray8 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8ee6b46a drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8f05e051 drm_panel_bridge_add_typed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8fa6c447 drm_fb_helper_damage_area +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9003c128 drm_fb_swab +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9172fe70 drm_helper_mode_fill_fb_struct EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x91fec1cc drm_rect_calc_vscale -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x92423302 drm_atomic_helper_bridge_duplicate_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x939d4d43 devm_drm_panel_bridge_add -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x93d869f3 drm_atomic_helper_commit_tail_rpm -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9408de82 drm_fb_helper_check_var -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x94cf54bb drm_atomic_helper_bridge_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x94edd3dc drm_simple_display_pipe_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x921689ec drm_atomic_helper_check_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x92644948 drm_fb_xrgb8888_to_argb8888 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x94be5c24 drm_atomic_helper_connector_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x94f15bf3 devm_drm_of_get_bridge EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x951a8ee5 drm_flip_work_init -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x95b3811d drm_panel_bridge_connector -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9615a53b drm_atomic_helper_crtc_destroy_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9749e077 drm_atomic_helper_commit_cleanup_done -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x983a6f10 drm_kms_helper_poll_init -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x99bb8104 drm_mode_config_helper_resume -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x99be598f drm_helper_hpd_irq_event -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x99cf6e32 drm_atomic_helper_crtc_duplicate_state EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x99fd20aa drm_rect_clip_scaled -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9c01e63f drm_fb_helper_initial_config -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d01e2df drm_fb_xrgb8888_to_rgb888 -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d1b1e75 drm_panel_bridge_set_orientation -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d6ae060 __drm_atomic_helper_plane_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9e99b7de drm_atomic_helper_update_plane -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9f11e2e7 drm_atomic_helper_page_flip -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9fa9930e drm_panel_bridge_add_typed -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa0f18b55 drm_kms_helper_poll_disable -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa19a7cab drm_crtc_init -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa28743cf __drm_gem_duplicate_shadow_plane_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa2a35a9f drm_atomic_helper_connector_duplicate_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa37839cf drm_atomic_helper_update_legacy_modeset_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa3d8cf3f drm_atomic_helper_commit_hw_done -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa53ba43e drm_fb_xrgb8888_to_gray8 -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa775b515 drm_i2c_encoder_commit -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa7bd83dc drm_gem_fb_vmap -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa83bba04 drm_gem_simple_kms_begin_shadow_fb_access -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaa251b77 drm_fb_xrgb8888_to_rgb565 -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xab5e0e0f drm_connector_helper_get_modes_from_ddc -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaba543bf drm_fb_helper_lastclose -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xabb60080 drm_atomic_helper_check_wb_encoder_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xabcad89d drm_fb_xrgb8888_to_rgba5551 -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xae8a2973 drmm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9aa190cc drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9ad57946 drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9c18eccc drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9c7c91fb drm_fb_xrgb8888_to_rgb888 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d6beb58 drm_atomic_helper_commit_hw_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9ff6d6f3 drm_helper_force_disable_all +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa0c7e558 drm_kms_helper_connector_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa194c32f drm_crtc_helper_mode_valid_fixed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa361afaf drm_atomic_helper_dirtyfb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa4be6e63 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa4c6008b drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa4c6dc44 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa4f7ae18 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa5075444 drm_fb_xrgb8888_to_rgb332 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa7228448 drm_atomic_helper_commit_planes_on_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa7e4c3d2 drm_simple_display_pipe_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xac448026 drm_fb_helper_unregister_info +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xae634275 drm_atomic_helper_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaf2f8156 drm_plane_helper_atomic_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaf3cc871 drm_fbdev_generic_setup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xafda4b2c drm_gem_duplicate_shadow_plane_state EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb053adda drm_rect_rotate -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb08053d1 drm_gem_duplicate_shadow_plane_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb0dbf7c8 __drm_atomic_helper_connector_destroy_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb13b87ae drm_gem_end_shadow_fb_access -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb193c299 drm_atomic_helper_commit_modeset_enables -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb3cf394c drm_atomic_helper_connector_tv_check -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb5b49a65 __drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb1794c7c __drm_atomic_helper_connector_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb2294fbb drm_atomic_helper_swap_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb464d4dd drm_fb_blit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb5d9d609 drm_atomic_helper_bridge_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb600a552 drm_panel_bridge_remove +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb6439e98 drm_i2c_encoder_detect EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb6a6b711 drm_fb_clip_offset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb6fe0196 drm_connector_helper_get_modes_fixed -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb74305c6 drm_atomic_helper_connector_tv_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb76dbe39 drm_atomic_helper_cleanup_planes -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb992aa6c drm_atomic_helper_commit_modeset_disables -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbd388e6c drm_i2c_encoder_destroy -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc09e9693 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbb92d673 drm_atomic_helper_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbc591cbe drm_fb_xrgb8888_to_argb1555 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbcd8c6e3 __drm_atomic_helper_plane_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc093ae82 drm_fb_helper_damage_range +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc1975936 drm_atomic_helper_plane_destroy_state EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc2b0e301 drm_flip_work_queue -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc38054b5 drm_i2c_encoder_restore -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc3d05079 drm_atomic_helper_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc3b6134b drm_atomic_helper_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc45b08c8 drm_atomic_helper_commit_duplicated_state EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc4e03fc8 drm_flip_work_cleanup -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc6688555 drm_helper_probe_detect -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc7076f20 drm_fb_xrgb8888_to_argb1555 -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc7086ed8 __drm_atomic_helper_plane_duplicate_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc7ef88da drm_fb_blit -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc9271f2a drm_fb_helper_restore_fbdev_mode_unlocked -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xca50fca8 drm_atomic_helper_commit_planes_on_crtc -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xca90c21c drm_fb_helper_damage_area -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcac4e637 drm_fb_helper_set_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc703836c drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc837d0a5 drm_gem_fb_begin_cpu_access +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xca3fc331 drm_fb_helper_restore_fbdev_mode_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xca5a39ab drm_simple_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xca8651cf drm_atomic_helper_check_crtc_primary_plane EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcb2340b8 drm_rect_debug_print -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcbf3c9ad drm_atomic_helper_fake_vblank -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcccd210d drm_bridge_is_panel +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcb5346d4 drm_atomic_helper_commit_tail +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcbdeb5d6 drm_self_refresh_helper_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcc704ac0 drm_atomic_helper_connector_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcd5256c5 drm_atomic_helper_crtc_reset EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcf11a549 drm_flip_work_allocate_task -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcfb13855 drm_fb_helper_unregister_info -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd0eb3d18 drm_i2c_encoder_prepare -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd3213a53 drm_fb_swab -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd37bc256 devm_drm_panel_bridge_add_typed -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd451dcf5 drm_atomic_helper_wait_for_flip_done -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd5a332ab drm_fb_helper_pan_display -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd7873063 drm_atomic_helper_commit_tail -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd7eed29b drm_gem_fb_end_cpu_access -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd8ccd08f drm_fb_helper_fill_info -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd97f6576 drm_plane_helper_atomic_check -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd9f8c2e4 drm_atomic_helper_suspend -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdd701b0e drm_helper_move_panel_connectors_to_head -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xde19f58c drm_atomic_helper_set_config -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdf9855f7 drm_fb_memcpy -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe06fc0ce drm_fb_xrgb8888_to_argb2101010 -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe159536d drm_gem_begin_shadow_fb_access -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe4254977 drm_kms_helper_poll_reschedule -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe473f230 __drm_atomic_helper_connector_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe56a16ee drm_atomic_helper_plane_destroy_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe575f1fa __drm_atomic_helper_plane_state_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe587918b drm_atomic_helper_swap_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe59168c9 drm_atomic_helper_calc_timestamping_constants -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe7b132bf drm_fb_helper_hotplug_event -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe805cfeb __drm_atomic_helper_plane_destroy_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe8895579 drm_self_refresh_helper_init -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe8e1ca36 drm_atomic_helper_check_plane_damage -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xea8c5ae7 drm_atomic_helper_damage_iter_init -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xeebb1cef drm_fb_helper_prepare -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xef709b8a drm_fb_helper_set_par -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xef9d643d drm_crtc_helper_mode_valid_fixed -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf3b220b2 __drm_atomic_helper_bridge_duplicate_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf3e65860 drm_plane_helper_disable_primary -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf4513dd2 drm_atomic_helper_crtc_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf8d2e783 drm_atomic_helper_wait_for_dependencies -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf989d7b6 drm_fb_xrgb8888_to_xrgb1555 -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfaed722b drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd1548196 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd4fcc64f drm_connector_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd52d1c25 __drm_atomic_helper_plane_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd5fd93b2 drm_atomic_helper_commit_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd62c3626 drm_gem_fb_create_handle +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd822ad24 drm_atomic_helper_wait_for_flip_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xda43bdbe drm_atomic_helper_bridge_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdd245cd0 drm_panel_bridge_set_orientation +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdf5a28ce drm_atomic_helper_bridge_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe14bedd9 drm_gem_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe1e3c554 drm_atomic_helper_check_plane_damage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe438cfd6 drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe4d1a26d drm_self_refresh_helper_alter_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe617424b drm_atomic_helper_page_flip +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe6e898ce drm_fb_helper_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xea5ba5ac drm_gem_fb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xeaccb771 drm_plane_helper_update_primary +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xec30a9a3 drmm_of_get_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xec56aedb drm_atomic_helper_bridge_propagate_bus_fmt +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf0af8d92 drm_self_refresh_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf2a87f5c drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf2ac3bb1 drm_fb_helper_set_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf518489d drm_atomic_helper_crtc_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf65afcd4 drm_atomic_helper_async_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf9121244 drm_fb_helper_output_poll_changed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf9a9d4b9 __drm_atomic_helper_bridge_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf9aa2ea1 drm_mode_config_helper_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfa1819f1 drm_fb_helper_prepare EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfb76337a drm_flip_work_queue_task -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfd0d240f drm_helper_crtc_in_use -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfd357e6c drm_connector_helper_tv_get_modes -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x016209f7 mipi_dbi_dev_init -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x05cb4f24 mipi_dbi_pipe_disable -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x14de41bc mipi_dbi_buf_copy -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x275eead0 mipi_dbi_enable_flush -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x29f92359 mipi_dbi_pipe_end_fb_access -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x2a599329 mipi_dbi_display_is_on -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x2ffa2e92 mipi_dbi_spi_cmd_max_speed -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x3e9acdca mipi_dbi_pipe_duplicate_plane_state -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x438e4705 mipi_dbi_command_stackbuf -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x4a2a8483 mipi_dbi_poweron_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x674384cf mipi_dbi_pipe_begin_fb_access -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x6fd7487c mipi_dbi_spi_init -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x784f21d9 mipi_dbi_pipe_update -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x859ef3ed mipi_dbi_spi_transfer -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x87e8bbec mipi_dbi_command_buf -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x8863b233 mipi_dbi_pipe_reset_plane -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x8c328bd7 mipi_dbi_dev_init_with_formats -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x94e97ed5 mipi_dbi_hw_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xbf3e2e33 mipi_dbi_poweron_conditional_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xc11b153c mipi_dbi_command_read -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xc6c622d3 mipi_dbi_pipe_destroy_plane_state -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xe54b0e7b mipi_dbi_pipe_mode_valid -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xf9b5171c mipi_dbi_debugfs_init -EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x076ee41c drm_gem_shmem_vmap -EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x464dfb58 drm_gem_shmem_get_pages -EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x47f9de50 drm_gem_shmem_vunmap -EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x4b6d3e28 drm_gem_shmem_purge_locked -EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x8efd9715 drm_gem_shmem_madvise -EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x94247b33 drm_gem_shmem_put_pages -EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xae3e7ce7 drm_gem_shmem_unpin -EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xb807d328 drm_gem_shmem_purge -EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xc5045b30 drm_gem_shmem_print_info -EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xf56c0add drm_gem_shmem_pin +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfeea3c7a drm_atomic_helper_check_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xff0660ca drm_kms_helper_poll_reschedule +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xffe45c4d drm_fb_build_fourcc_list +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x0285f6cf mipi_dbi_command_buf +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x1661f02b mipi_dbi_poweron_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x197b8b3a mipi_dbi_pipe_end_fb_access +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x239aadb0 mipi_dbi_poweron_conditional_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x3bafd3b9 mipi_dbi_dev_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x417b291f mipi_dbi_pipe_begin_fb_access +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x50008014 mipi_dbi_dev_init_with_formats +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x50ec8857 mipi_dbi_pipe_mode_valid +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x64d48854 mipi_dbi_command_read +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x6db48b1b mipi_dbi_pipe_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x81a3898d mipi_dbi_spi_cmd_max_speed +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x9267440b mipi_dbi_pipe_destroy_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x98a736a4 mipi_dbi_pipe_reset_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x9bf9099d mipi_dbi_spi_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xa828ba26 mipi_dbi_pipe_duplicate_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xa924725d mipi_dbi_spi_transfer +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xae9aeed7 mipi_dbi_enable_flush +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xb07e0207 mipi_dbi_pipe_update +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xc157a659 mipi_dbi_buf_copy +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xd38e6ac6 mipi_dbi_command_stackbuf +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xd51e4593 mipi_dbi_display_is_on +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xdf7d5454 mipi_dbi_debugfs_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xee3a575c mipi_dbi_hw_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x4e41d273 drm_gem_shmem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x4fb40bc2 drm_gem_shmem_unpin +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x90dae8fc drm_gem_shmem_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x92c06068 drm_gem_shmem_pin +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xb0dedba4 drm_gem_shmem_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xb111e5a6 drm_gem_shmem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xc32a68aa drm_gem_shmem_purge_locked +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xf1b69261 drm_gem_shmem_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xfb39ff57 drm_gem_shmem_madvise +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xfd161791 drm_gem_shmem_purge EXPORT_SYMBOL drivers/gpu/drm/drm_suballoc_helper 0x1bf695be drm_suballoc_manager_fini EXPORT_SYMBOL drivers/gpu/drm/drm_suballoc_helper 0x7d29c83c drm_suballoc_dump_debug_info EXPORT_SYMBOL drivers/gpu/drm/drm_suballoc_helper 0xd349087a drm_suballoc_manager_init EXPORT_SYMBOL drivers/gpu/drm/drm_suballoc_helper 0xdd150638 drm_suballoc_new EXPORT_SYMBOL drivers/gpu/drm/drm_suballoc_helper 0xf9ebc7e0 drm_suballoc_free -EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x0b8617dc drm_gem_ttm_mmap -EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x57c3c371 drm_gem_ttm_print_info -EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x6348d040 drm_gem_ttm_vunmap -EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x998a27f9 drm_gem_ttm_dumb_map_offset -EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0xb63317e1 drm_gem_ttm_vmap -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x04854d4e drm_gem_vram_pin -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x15177d55 drm_gem_vram_put -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x350b6f7b drmm_vram_helper_init -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x5bea4b77 drm_gem_vram_plane_helper_cleanup_fb -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x5e2b3891 drm_gem_vram_fill_create_dumb -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x61af744a drm_vram_mm_debugfs_init -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x6884aa80 drm_gem_vram_offset -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x83c8d576 drm_gem_vram_simple_display_pipe_prepare_fb -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x877080c8 drm_gem_vram_plane_helper_prepare_fb -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x87f867bd drm_gem_vram_driver_dumb_create -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xa96df962 drm_gem_vram_vunmap -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xdfc0497c drm_gem_vram_create -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xe3c9ae2d drm_gem_vram_simple_display_pipe_cleanup_fb -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xeb70ec3b drm_vram_helper_mode_valid -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xf84dfed6 drm_gem_vram_unpin -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xfe7a83e6 drm_gem_vram_vmap -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x154b0011 drm_sched_entity_push_job -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x15a1dab5 drm_sched_job_add_syncobj_dependency -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x19a4f0a7 drm_sched_stop -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x239fd169 drm_sched_fini -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x39948d0e drm_sched_entity_set_priority -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x4105ab93 drm_sched_job_init -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x4a7cba3f drm_sched_entity_destroy -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x82ad4525 to_drm_sched_fence -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x838f2b8d drm_sched_pick_best -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x9080852b drm_sched_job_add_implicit_dependencies -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x983f4d24 drm_sched_start -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x9f008ae0 drm_sched_suspend_timeout -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xaddf0917 drm_sched_job_add_dependency -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xb81078d1 drm_sched_resubmit_jobs -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xbd118330 drm_sched_increase_karma -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xbeb02df3 drm_sched_job_cleanup -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xbef4f4b6 drm_sched_resume_timeout -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xbf99162a drm_sched_fault -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xc7625a6b drm_sched_entity_fini -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xd31a22c2 drm_sched_entity_error -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xde6e7e5c drm_sched_job_add_resv_dependencies -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xe14e906e drm_sched_entity_init -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xe45ed7e0 drm_sched_entity_modify_sched -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xee49ae83 drm_sched_job_arm -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xf396246b drm_sched_entity_flush -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xfb4ee79b drm_sched_init -EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0x2f9375e5 sun4i_lvds_init -EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0x3954162c sun4i_rgb_init +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x2aea8c5d drm_gem_ttm_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x9529d02d drm_gem_ttm_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0xeadea4cb drm_gem_ttm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0xf207909a drm_gem_ttm_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0xfa85fdac drm_gem_ttm_dumb_map_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x032af89a drm_gem_vram_fill_create_dumb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x12ad517e drm_gem_vram_simple_display_pipe_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x29d6f4ff drmm_vram_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x2b21b47f drm_vram_helper_mode_valid +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x348cd083 drm_gem_vram_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x46d5d065 drm_gem_vram_put +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x516a456c drm_vram_mm_debugfs_init +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x6072e9b4 drm_gem_vram_pin +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x64606053 drm_gem_vram_unpin +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x6a9509ad drm_gem_vram_plane_helper_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7e49bf15 drm_gem_vram_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x880b2efd drm_gem_vram_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xb2bbe31a drm_gem_vram_create +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xb90350f7 drm_gem_vram_simple_display_pipe_cleanup_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xb9238086 drm_gem_vram_driver_dumb_create +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xedb55782 drm_gem_vram_plane_helper_cleanup_fb +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00f7ab31 drm_sched_pick_best +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x0628b6b0 drm_sched_fault +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x1b39e097 drm_sched_job_arm +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x283eee65 drm_sched_entity_set_priority +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x2ffabddb drm_sched_fini +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x356f3c7a drm_sched_start +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x3f2694f3 drm_sched_stop +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x44fdebfd drm_sched_entity_push_job +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x5e784543 drm_sched_job_add_resv_dependencies +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x6d6f1f74 drm_sched_entity_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x6f500cdf drm_sched_job_cleanup +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x70e845df drm_sched_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x76a9ff22 drm_sched_job_add_implicit_dependencies +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7eb3beb9 drm_sched_increase_karma +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x96935802 drm_sched_entity_destroy +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x9b3a4a18 drm_sched_entity_error +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x9fb5888c drm_sched_resubmit_jobs +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xa08a366f drm_sched_entity_fini +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xbc30475d to_drm_sched_fence +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xbc9f8213 drm_sched_job_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xc27b75c3 drm_sched_entity_flush +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xc39bc672 drm_sched_resume_timeout +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xd241d796 drm_sched_job_add_syncobj_dependency +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xdfde327d drm_sched_suspend_timeout +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xe84d56cc drm_sched_job_add_dependency +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xf7fca9c1 drm_sched_entity_modify_sched +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0x0d9b25cb sun4i_rgb_init +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0x25016fe8 sun4i_dclk_create +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0x285f27a9 sun4i_tcon_enable_vblank EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0x6c10c7a7 sun4i_tcon_of_table -EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0x98ce06e1 sun4i_dclk_create -EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0xa6495cbe sun4i_tcon_enable_vblank -EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0xb2e55458 sun4i_dclk_free -EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0xdba1e9f4 sun4i_tcon_mode_set +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0x71ca8962 sun4i_lvds_init +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0xcbd4bbfa sun4i_tcon_mode_set +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0xd76427a2 sun4i_dclk_free EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun8i_tcon_top 0x350e5dcd sun8i_tcon_top_of_table -EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun8i_tcon_top 0xc615fe7a sun8i_tcon_top_set_hdmi_src -EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun8i_tcon_top 0xff22e789 sun8i_tcon_top_de_config -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x09ea7b35 ttm_device_clear_dma_mappings -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0ae7840b ttm_device_init -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0eb5e34c ttm_device_fini -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x13b35676 ttm_pool_fini -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1623945e ttm_bo_move_sync_cleanup -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x16d3fcbd ttm_resource_fini -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x16ddda5b ttm_eu_backoff_reservation -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1a5a40a5 ttm_glob +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun8i_tcon_top 0x6af2c0be sun8i_tcon_top_set_hdmi_src +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun8i_tcon_top 0x7a605b1a sun8i_tcon_top_de_config +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0299ca7f ttm_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x037a276b ttm_resource_manager_evict_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0d076124 ttm_bo_vm_dummy_page +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0d8e1fba ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0dde1e4e ttm_resource_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x15fc9aad ttm_range_man_fini_nocheck +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x199b60d5 ttm_bo_vmap EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1a71d30c ttm_move_memcpy -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ef81c89 ttm_resource_manager_init -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x21d29543 ttm_bo_set_bulk_move -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x22f00f49 ttm_bo_vm_fault -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2425c8af ttm_pool_alloc -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2902a484 ttm_bo_vm_access -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x29998570 ttm_sg_tt_init -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3cb0ed60 ttm_bo_mmap_obj -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x41c5dc85 ttm_resource_manager_debug -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x43fbc6be ttm_pool_init -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x45be0a8b ttm_bo_validate -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x513ee221 ttm_tt_populate -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x522d5ccb ttm_resource_manager_create_debugfs -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x688266f6 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c279d8d ttm_bo_pin +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2490ab76 ttm_lru_bulk_move_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x27b0f8f9 ttm_bo_vm_fault_reserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2abf2b95 ttm_resource_manager_usage +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2cefba17 ttm_bo_vunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4112e2f6 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5602a873 ttm_device_swapout +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x579f3dab ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x592d5d63 ttm_bo_init_reserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x619ced38 ttm_bo_vm_access +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6480b2bd ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x64da1fd6 ttm_resource_manager_init EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x69cc2943 ttm_tt_pages_limit -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6a3d099b ttm_bo_vm_dummy_page -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6b7b3ca1 ttm_bo_unmap_virtual -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6bd297b5 ttm_lru_bulk_move_tail -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6dda61aa ttm_pool_debugfs -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6ecd4386 ttm_bo_init_reserved -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7f1942b1 ttm_bo_eviction_valuable -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86cc20a5 ttm_pool_free -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa9d3782f ttm_bo_pin -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xae784863 ttm_resource_init -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb53706cf ttm_tt_fini -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb538140b ttm_eu_reserve_buffers -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb6a493b6 ttm_range_man_fini_nocheck -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb843deca ttm_bo_move_accel_cleanup -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xba76b15e ttm_bo_put -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc0666110 ttm_eu_fence_buffer_objects -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc29c60d4 ttm_bo_kmap -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4a67e68 ttm_resource_free -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcb613078 ttm_range_man_init_nocheck -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcd554779 ttm_bo_vm_reserve -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd042fbb1 ttm_bo_wait_ctx -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd5e27b03 ttm_kmap_iter_tt_init -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7a3ea48 ttm_io_prot -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd824106f ttm_bo_move_memcpy -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd1003f9 ttm_bo_init_validate -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd57306b ttm_resource_manager_usage -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd6847b8 ttm_bo_unpin -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdde1e58b ttm_bo_vm_open -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xde08013e ttm_bo_vunmap -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe07a6e55 ttm_device_swapout +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6e2236b6 ttm_pool_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6f3b03d9 ttm_resource_manager_create_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d10a922 ttm_bo_set_bulk_move +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7e8c8aae ttm_bo_move_to_lru_tail +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x88f74266 ttm_kmap_iter_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8fbd2a4f ttm_bo_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x94a32866 ttm_glob +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9bb51253 ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9cc713f0 ttm_bo_vm_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa6a3b1af ttm_bo_vm_fault +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa751f3b9 ttm_sg_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa824bc9a ttm_bo_wait_ctx +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa9392ecc ttm_range_man_init_nocheck +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaa8e28fd ttm_bo_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb0bb6ca5 ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb345341b ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb38d3784 ttm_resource_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb4cc1ca0 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb9856fab ttm_pool_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbd900eb6 ttm_device_clear_dma_mappings +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbe5fc0b0 ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc19ee026 ttm_bo_vm_close +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc455a583 ttm_bo_move_sync_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd281bfe0 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd6f91fa0 ttm_bo_vm_open +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdbc361e1 ttm_bo_eviction_valuable +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdc2e56b9 ttm_pool_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xde6c143f ttm_pool_init EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe0930001 ttm_kmap_iter_iomap_init -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe5c0d1a8 ttm_resource_manager_evict_all -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe649489a ttm_tt_init -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xef2812ba ttm_lru_bulk_move_init -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xefa6fbfc ttm_bo_vm_close -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xefc696f6 ttm_bo_vm_fault_reserved -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xeffd8284 ttm_bo_kunmap -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf6a73f8e ttm_bo_move_to_lru_tail -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfeebfcd9 ttm_bo_vmap -EXPORT_SYMBOL drivers/hid/hid 0xdba91849 hid_bus_type -EXPORT_SYMBOL drivers/hwmon/adt7x10 0xc9911565 adt7x10_dev_pm_ops +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe0b4658b ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe1000dfa ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe25b0015 ttm_bo_unpin +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe5017277 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe6c0af0d ttm_lru_bulk_move_tail +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe94b0e3d ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf1fa47c9 ttm_resource_manager_debug +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf3465e27 ttm_bo_init_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf9815d24 ttm_resource_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa84accd ttm_device_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xff5f1875 ttm_pool_free +EXPORT_SYMBOL drivers/hid/hid 0xedb62da6 hid_bus_type +EXPORT_SYMBOL drivers/hwmon/adt7x10 0x4865230e adt7x10_dev_pm_ops EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x2f9e7f8e vid_which_vrm EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x446615bd vid_from_reg -EXPORT_SYMBOL drivers/hwmon/ltc2947-core 0xc533b87b ltc2947_pm_ops +EXPORT_SYMBOL drivers/hwmon/ltc2947-core 0x30cce254 ltc2947_pm_ops EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x01568393 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x35e2de56 sch56xx_watchdog_register EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x96ec3b26 sch56xx_read_virtual_reg12 EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xaa17a737 sch56xx_write_virtual_reg EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xb37b9b81 sch56xx_read_virtual_reg16 -EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xfaabc6ed sch56xx_watchdog_register -EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x3783a413 i2c_bit_algo -EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x87b555f5 i2c_bit_add_bus -EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x9f0c0a83 i2c_bit_add_numbered_bus -EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xf6e8a795 i2c_pca_add_bus -EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xfc5dce03 i2c_pca_add_numbered_bus -EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x0be465c3 amd756_smbus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x2d2729f1 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x74735c57 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xca9a5f95 i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x27e9bc64 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x3e8ae0e2 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x33b4080b amd756_smbus EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x10a4c688 qcom_adc5_hw_scale EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x1fcd0103 qcom_adc_tm5_gen2_temp_res_scale EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x39885d6b qcom_adc_tm5_temp_volt_scale @@ -1307,1012 +1307,1012 @@ EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x53546ecd qcom_adc5_avg_samples_from_dt EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x70e6eca1 qcom_vadc_decimation_from_dt EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0xc61e7a34 qcom_adc5_prescaling_from_dt -EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0x0958cb6a iio_triggered_buffer_cleanup -EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0xb02097fa iio_triggered_buffer_setup_ext -EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x5c52f253 iio_kfifo_free -EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x77d3327f iio_kfifo_allocate -EXPORT_SYMBOL drivers/iio/imu/fxos8700_core 0x900ac731 fxos8700_regmap_config -EXPORT_SYMBOL drivers/iio/industrialio 0x13495e79 iio_device_unregister -EXPORT_SYMBOL drivers/iio/industrialio 0x226675b7 iio_read_mount_matrix -EXPORT_SYMBOL drivers/iio/industrialio 0x2a716a6e iio_trigger_using_own +EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0x1e95431e iio_triggered_buffer_setup_ext +EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0xdae297a9 iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x0797f79e iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x9762a35e iio_kfifo_free +EXPORT_SYMBOL drivers/iio/imu/fxos8700_core 0xa5784f88 fxos8700_regmap_config +EXPORT_SYMBOL drivers/iio/industrialio 0x11b50c6c iio_device_get_clock +EXPORT_SYMBOL drivers/iio/industrialio 0x19df2755 iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x256a5c7d iio_device_set_clock +EXPORT_SYMBOL drivers/iio/industrialio 0x25d0ee66 __iio_trigger_alloc EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll -EXPORT_SYMBOL drivers/iio/industrialio 0x34c89754 iio_push_event -EXPORT_SYMBOL drivers/iio/industrialio 0x5051d5d9 iio_device_alloc -EXPORT_SYMBOL drivers/iio/industrialio 0x63c34cca iio_trigger_free -EXPORT_SYMBOL drivers/iio/industrialio 0x77b8bddb iio_bus_type -EXPORT_SYMBOL drivers/iio/industrialio 0x7e68de5b iio_device_free -EXPORT_SYMBOL drivers/iio/industrialio 0x9309f203 iio_trigger_poll -EXPORT_SYMBOL drivers/iio/industrialio 0x95da76f8 iio_device_get_clock -EXPORT_SYMBOL drivers/iio/industrialio 0xa0fbc253 iio_trigger_notify_done -EXPORT_SYMBOL drivers/iio/industrialio 0xa8439927 iio_trigger_register -EXPORT_SYMBOL drivers/iio/industrialio 0xb2b2bd4c iio_trigger_unregister -EXPORT_SYMBOL drivers/iio/industrialio 0xb6407fab iio_get_time_ns -EXPORT_SYMBOL drivers/iio/industrialio 0xbce7255c iio_read_const_attr -EXPORT_SYMBOL drivers/iio/industrialio 0xd2dfe6ff iio_device_set_clock -EXPORT_SYMBOL drivers/iio/industrialio 0xda1510e4 iio_trigger_poll_nested +EXPORT_SYMBOL drivers/iio/industrialio 0x2f28802f iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0x328c3705 iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0x4b28ad4d iio_trigger_set_immutable +EXPORT_SYMBOL drivers/iio/industrialio 0x4d572f38 iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0x55481508 iio_trigger_validate_own_device +EXPORT_SYMBOL drivers/iio/industrialio 0x562f4341 iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x604a4ba6 iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0x6810c158 iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0x7a54522c iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x850dedc0 iio_read_mount_matrix +EXPORT_SYMBOL drivers/iio/industrialio 0x939b261e iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0x9466dffe iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0x947fef19 iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x948a6352 iio_get_time_ns +EXPORT_SYMBOL drivers/iio/industrialio 0xa9242cdd iio_trigger_using_own +EXPORT_SYMBOL drivers/iio/industrialio 0xd52ba74f __iio_device_register EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time -EXPORT_SYMBOL drivers/iio/industrialio 0xe2687886 iio_trigger_validate_own_device -EXPORT_SYMBOL drivers/iio/industrialio 0xea08c7cf iio_buffer_init -EXPORT_SYMBOL drivers/iio/industrialio 0xf5920f09 __iio_device_register -EXPORT_SYMBOL drivers/iio/industrialio 0xf9fc3a10 __iio_trigger_alloc -EXPORT_SYMBOL drivers/iio/industrialio 0xff315510 iio_trigger_set_immutable -EXPORT_SYMBOL drivers/iio/industrialio-configfs 0x8965ef24 iio_configfs_subsys -EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x46318f94 iio_register_sw_device_type -EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0xb8020c36 iio_sw_device_destroy -EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0xe5e4f013 iio_sw_device_create -EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0xed02bbff iio_unregister_sw_device_type -EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x62712229 iio_register_sw_trigger_type -EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0xb8efd253 iio_sw_trigger_create -EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0xce5cf1c9 iio_sw_trigger_destroy -EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0xe693d0d8 iio_unregister_sw_trigger_type -EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0x1b66eabe iio_triggered_event_setup -EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0xd5276f7f iio_triggered_event_cleanup -EXPORT_SYMBOL drivers/iio/pressure/bmp280 0xd9169a96 bmp280_dev_pm_ops -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0942148d ib_create_cm_id -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1b982129 ib_send_cm_req -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2ee5c221 ib_send_cm_mra -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x32d6ed7e ib_send_cm_rej -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x45fb2ee3 ib_send_cm_rtu -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x469029b9 ib_cm_insert_listen -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5a55e3ed ib_cm_notify +EXPORT_SYMBOL drivers/iio/industrialio 0xf1135c7f iio_trigger_poll_nested +EXPORT_SYMBOL drivers/iio/industrialio 0xf81122b3 iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio-configfs 0x6fb15fa3 iio_configfs_subsys +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x0c06fd0c iio_sw_device_destroy +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x656ed3de iio_sw_device_create +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x9394f4eb iio_register_sw_device_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0xb6a0b5a1 iio_unregister_sw_device_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x09f6a450 iio_unregister_sw_trigger_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x3011c57e iio_sw_trigger_destroy +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x655e1b24 iio_register_sw_trigger_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x7eefee0e iio_sw_trigger_create +EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0x1c64832a iio_triggered_event_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0x5298c800 iio_triggered_event_setup +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x5f651f1f bmp280_dev_pm_ops +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x15920e93 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3117c7a2 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3557e335 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4227eb15 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5bd4da3a ib_cm_insert_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x63f026b5 ib_send_cm_rep EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x69824a14 ibcm_reject_msg -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x74cba28e ib_cm_listen -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7b9b73c7 ib_destroy_cm_id -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x91541a52 ib_send_cm_drep -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9175547f ib_send_cm_sidr_req -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc3b2120b ib_cm_init_qp_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd983de03 ib_send_cm_rep -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf0756821 ib_send_cm_sidr_rep -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf2c4f438 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6cba5918 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x73545709 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x87b47700 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xaa06ef9d ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xad292226 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb6d1035c ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc96ccf98 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdb85a5c9 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf23b7890 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0017d4cd ib_drain_sq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00c70742 rdma_query_gid EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00cd25ea ib_get_rdma_header_version -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x029d1778 ib_mr_pool_get -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x02bfa18a ib_create_wq -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x04f7e1ab rdma_hold_gid_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x05a6400a ib_post_send_mad -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x05d9c763 rdma_umap_priv_init -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x063fee18 ib_free_recv_mad -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06aa43dd rdma_put_gid_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06bb9e82 ib_get_cached_subnet_prefix -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x070ac052 ib_free_cq -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x093d3a6f ib_find_gid -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09d80b48 ib_detach_mcast -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0d3323bd ib_dealloc_xrcd_user -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0f77e874 ib_find_pkey -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0fd8ec3b ib_mad_kernel_rmpp_agent -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x10d989dc rdma_query_gid_table -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x12016585 ib_destroy_srq_user -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1297272b rdma_create_ah -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14a9a9b9 ib_destroy_qp_user -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17102396 ib_find_cached_pkey -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17a799eb ibdev_warn -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x18cc394a rdma_query_gid -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x18d63b4d ib_modify_srq -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x18ff7267 ibdev_crit -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x199698f5 ib_advise_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00d72c88 ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01259db2 ib_set_vf_guid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01520aa3 ib_destroy_srq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x026f43f3 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x03103bea ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x054b233c rdma_nl_put_driver_u64_hex +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x05b323b5 ib_dma_virt_map_sg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x07edb619 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x07fad8ad ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0ad76464 rdma_nl_unicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0bf10d13 rdma_restrack_parent_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0f783ce6 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1033baa3 ib_map_mr_sg_pi +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1043d223 ib_qp_usecnt_dec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14400f73 rdma_alloc_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17fdb28d rdma_restrack_get EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x19e7490f __rdma_block_iter_next -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1a1445c8 ib_unregister_event_handler -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1a9cc99e rdma_init_netdev -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1ad78fbe ib_init_ah_attr_from_path -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1c27b4b3 rdma_destroy_ah_user -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1d327fa1 ib_rdmacg_try_charge -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1da18832 rdma_resolve_ip -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e0f9068 rdma_link_register -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e819bf2 ibnl_put_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2139326c ib_attach_mcast -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2168bffe ib_check_mr_status -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22213aba ib_drain_rq -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2290079f ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b8d7d56 ib_set_vf_link_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1c66db31 rdma_move_grh_sgid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1d272898 __ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x20bb7cb8 ib_create_qp_security +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2291ea48 ib_process_cq_direct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22a4cdaf rdma_modify_ah EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22f3cf93 ib_pack -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x24d809a3 ib_sa_join_multicast -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2655053c ib_register_mad_agent -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x27753fd2 rdma_nl_put_driver_u64 -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x280eb808 ib_dispatch_event -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2a256dc4 rdma_nl_unicast -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2b4cb3c8 ib_device_set_netdev -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c24df53 rdma_find_gid_by_port -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2e37064d ibdev_info -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f1ded8c rdma_get_gid_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2fcc6f3c rdma_port_get_link_layer -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3018b315 ib_create_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x23e2f9d4 ib_get_cached_subnet_prefix +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x23e3b67a roce_gid_type_mask_support +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x24f5e539 ib_sg_to_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x254c05ac ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x256f2a22 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x25dc004b ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x277399d4 rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x27ba7ba5 ib_destroy_cq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2950a912 ibdev_info +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x298cad04 rdma_read_gid_hw_context +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c975896 rdma_replace_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2d7b7f66 ib_alloc_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2e2d0b7a ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2e627f41 rdma_link_unregister +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2fc425bf ib_map_mr_sg EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x305e5701 rdma_addr_size_kss -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x32045502 ib_register_device -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x32350b25 ib_dma_virt_map_sg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3087b74f rdma_restrack_get_byid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x308b8179 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x30b4fc5b ib_qp_usecnt_inc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3224e855 ib_modify_qp_with_udata EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x332cf49b ib_sa_register_client -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33831ef5 ib_sa_path_rec_get -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x338d84ee ib_create_send_mad -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33a6ea3d ib_mr_pool_destroy -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x35abce71 ib_find_exact_cached_pkey -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x39924e34 ib_cq_pool_get -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b20e152 ib_get_vf_guid -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3ba174a9 rdma_create_user_ah -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3e5ed7ea ib_device_get_by_netdev -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3ea2626b rdma_link_unregister -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3eb8c512 ibdev_err -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f486384 ibdev_emerg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x34ad1ee5 rdma_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x34e6bb6d ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x36ada81f ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x36d61476 rdma_nl_unicast_wait +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x37e5def6 ib_port_sysfs_get_ibdev_kobj +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x37ebad2e ib_mr_pool_destroy +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x381aca2f rdma_user_mmap_entry_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x391b44b7 ibdev_crit +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x39515586 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a8e550f ib_get_cached_port_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3aabc615 ib_dereg_mr_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3db8a8d2 ib_check_mr_status +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3ddf0329 ibdev_alert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f554480 ib_modify_qp EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3fc2387c ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x41ad5b08 rdma_create_ah EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x434c5d10 zgid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x44053ca1 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x454f3164 ib_find_pkey EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45fb8985 rdma_nl_chk_listeners -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4605b851 ib_set_client_data -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x46b28d5f ib_free_send_mad -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x47d46741 ib_port_immutable_read +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x48ae5593 ib_advise_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x49341a88 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4a2016f2 rdma_user_mmap_io +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4d889e00 ib_device_get_by_name EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4e155af0 ib_response_mad EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4e90435c ib_sa_free_multicast -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4efd94f1 ib_mr_pool_init -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4f2ff718 ib_get_net_dev_by_params -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4fc610cc rdma_nl_put_driver_string -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x51409aee rdma_copy_ah_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53447aa0 ibdev_printk -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x538ef799 roce_gid_type_mask_support -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x541db9cc ib_create_qp_kernel -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x54461c38 ib_dealloc_device -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x548900d7 rdma_rw_ctx_destroy +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x503a7b02 rdma_restrack_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5223c5eb ib_get_vf_config +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x52eed8ea rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x545cfb03 ib_device_set_netdev EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55bb02f3 ib_cache_gid_type_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55bddd7b ib_mr_pool_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55cddadc rdma_user_mmap_entry_insert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x56b5db63 rdma_copy_ah_attr EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x571470da __rdma_block_iter_start -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x588dfb98 ib_set_device_ops +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x57e9101e rdma_put_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x58430b7f ib_dealloc_xrcd_user EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x58df5b94 ib_get_gids_from_rdma_hdr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5c4df7f8 ib_device_get_by_name -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5c966505 rdma_roce_rescan_device -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5d7b5506 ib_port_sysfs_get_ibdev_kobj -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5e80cda1 ib_device_put -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5eca4d94 ib_query_qp -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x605a06cd ib_destroy_wq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x59f8c0f3 ibdev_emerg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5aecd3c2 ib_destroy_wq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5b811620 rdma_hold_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5bfff695 ib_port_immutable_read +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5d79b5b0 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5dbdbdd3 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5f439f17 ib_reg_user_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5faa397d rdma_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x613502e1 rdma_rw_ctx_wrs EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x613b1e2e ib_is_mad_class_rmpp -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6154acb9 ib_dealloc_pd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x61548db0 ibdev_printk EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x61d24c52 ib_rate_to_mbps -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6265a8ee ib_unregister_client -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x650030b9 rdma_restrack_new -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x652e835a ib_destroy_cq_user -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x65ab87f3 rdma_copy_src_l2_addr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x66b9819f ib_get_vf_stats -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x694d5d6c ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x61e6fec0 ib_mad_kernel_rmpp_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x629c1216 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x64891741 rdma_nl_stat_hwcounter_entry +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x67ac9eb7 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x67f6454f rdma_destroy_ah_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x69829823 rdma_user_mmap_entry_insert_range EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x69be05d7 ib_sa_unregister_client -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b664624 ib_sg_to_pages EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b958320 ib_ud_ip4_csum -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6d25b202 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e324c22 ibnl_put_msg EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6f3614b6 rdma_is_zero_gid -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x70328405 ibdev_alert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6f8fb056 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7003c905 rdma_rw_ctx_destroy_signature EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x70807834 rdma_addr_size -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x70e4cc0d rdma_nl_put_driver_u32_hex -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x712d4165 ib_map_mr_sg EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x72290351 rdma_free_hw_stats_struct -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x72626976 __ib_alloc_cq_any -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x72a08a38 rdma_rw_ctx_signature_init -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x72fc726b ib_register_client EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73baf9a2 ib_modify_qp_is_ok -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x745aa32f rdma_rw_ctx_post -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7478474e ib_set_vf_guid -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7497f0b6 ib_create_qp_security +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x74c1cb97 rdma_restrack_new EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75a729a0 rdma_nl_unregister -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75a99d9f rdma_restrack_del +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x766252b2 ib_create_srq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7714d2f7 ib_free_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x786b34e3 rdma_link_register EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x787ccc4c ib_get_mad_data_offset -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7aa7af10 rdma_modify_ah -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7b874501 ib_alloc_mr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7c4c5528 rdma_restrack_parent_name -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e180856 rdma_nl_multicast -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fe4f645 ib_get_cached_lmc -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8138e5c5 ib_get_rmpp_segment -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x837922aa ib_reg_user_mr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x83e5a410 ib_get_vf_config -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x84715b6c ib_process_cq_direct -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8664c435 rdma_restrack_get -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8b050f13 rdma_read_gid_attr_ndev_rcu -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8d706f4f ib_modify_qp -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8ef36cfb ib_init_ah_attr_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x79264f52 rdma_restrack_del +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x79bc97a2 ib_create_wq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7a7d2de7 rdma_dev_access_netns +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7ba0432d ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7bd2e054 rdma_restrack_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7f7c9e77 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x81ad611e rdma_create_user_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x82d9979d ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x859daf64 rdma_nl_put_driver_string +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x891ad152 rdma_copy_src_l2_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8a7b6cea ib_device_get_by_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8af1cd19 ib_mr_pool_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8afc9875 ib_rdmacg_uncharge +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8bc685b2 rdma_rw_ctx_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8d0234b1 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e27225b ib_destroy_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e8889fc ib_cq_pool_get EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x90e807c7 ib_cache_gid_parse_type_str -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x93892b46 ib_unregister_device -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x938cbcff __ib_create_cq -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x94432067 ib_sa_guid_info_rec_query -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x984b3653 ib_get_device_fw_str -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x997fc37a ib_modify_port -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9a447bca ib_get_eth_speed -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9cad21ab ib_drain_qp -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d3a8286 ib_port_register_client_groups -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9f79adeb ib_cq_pool_put -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9fa5b309 rdma_query_ah -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9fc514ff rdma_rw_mr_factor -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa19c92dd rdma_restrack_count -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa3707376 rdma_rw_ctx_init -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa387666f ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9237ed21 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x94311453 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x94ed8f57 ib_port_register_client_groups +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x965007ca ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9809dd46 rdma_restrack_set_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x98985e4d _ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x994e1f0b ib_drain_rq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9add711f ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c0b8d39 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9cc21e8c ib_init_ah_attr_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa2d1cb8d ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa3c11a95 ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa3de70b0 ib_rdmacg_try_charge +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa41ad4d3 __ib_alloc_cq EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa432baf6 ib_unpack -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa5820e8f __ib_alloc_cq -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa646dc29 ib_map_mr_sg_pi -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa81c3fc7 rdma_destroy_ah_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa8cba82a ib_unregister_device_and_put -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xab70c467 rdma_user_mmap_entry_get_pgoff +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa61d847f rdma_set_cq_moderation +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa800b154 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa9439bf8 rdma_rw_mr_factor +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaa61e443 ib_set_device_ops EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xabb8c1a6 rdma_alloc_hw_stats_struct -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae3d02a7 rdma_user_mmap_entry_remove +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xabccf40c ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xabe78713 rdma_rw_ctx_signature_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac6ca8df ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xace02f92 ib_resize_cq EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae956dce ib_rate_to_mult -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaedfb26c rdma_user_mmap_entry_insert_range -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf75b1d8 rdma_user_mmap_io -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb35fc34f ib_modify_qp_with_udata -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb3b823f2 rdma_replace_ah_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb49ab42a rdma_read_gid_hw_context +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb0d1421e __ib_alloc_cq_any EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb4c40040 ib_sa_pack_path -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb6d6d155 rdma_nl_put_driver_u32 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb65b7585 rdma_init_netdev EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb7852a05 ib_ud_header_init -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb89cc2ce rdma_move_ah_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb92e98f0 ib_create_srq_user -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xba970bbd rdma_addr_cancel -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbcbc1ab4 ib_port_unregister_client_groups -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe9c7841 rdma_restrack_put -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbecacaaf rdma_user_mmap_entry_insert -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc0476fb9 rdma_nl_put_driver_u64_hex -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc26ec2c8 ib_modify_mad -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc2c40521 rdma_alloc_netdev -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc2fea257 rdma_set_cq_moderation -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc38c4b7b __ib_alloc_pd -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4f9ced1 ib_unregister_mad_agent -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc60664eb rdma_restrack_get_byid -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc6e7f699 ib_init_ah_from_mcmember -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc7f7cae2 ib_close_qp -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc99b5199 ib_alloc_xrcd_user -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcb0b0847 rdma_nl_stat_hwcounter_entry -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcb3af0be _ib_alloc_device -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcc048c28 rdma_find_gid -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xccc1d3bc ib_query_port -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd794957 rdma_rw_ctx_wrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb8673828 rdma_get_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb94f3903 ib_drain_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbac6f450 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbae661d8 rdma_read_gid_l2_fields +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbcb2382d rdma_query_gid_table +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbdfb2e63 ib_device_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe54c473 ib_cq_pool_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe7649c6 rdma_roce_rescan_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc1679ea0 ib_create_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc1aad15f ibdev_err +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc25e9f20 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4a3dfcd ibdev_warn +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc5ecc68f ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc6195b45 __ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc7145856 ibdev_notice +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc7d0110d rdma_rw_ctx_post +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc9a056db ib_get_vf_stats +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcc187951 ib_get_net_dev_by_params +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcca66fd6 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcdc3a07c rdma_nl_put_driver_u32 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xce2ae6f8 rdma_rw_ctx_destroy EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd0478dc4 ib_unregister_driver -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd147a76e rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd18d3aea ib_unregister_device_and_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd1dbb8bd rdma_nl_register EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd21bb37a ib_sa_unpack_path -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd464ae13 ib_get_cached_port_state -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd4d5a66e ib_create_ah_from_wc -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd65ed640 rdma_read_gid_l2_fields +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd5224482 ib_dealloc_pd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd588cf69 rdma_user_mmap_entry_remove +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd5b2a471 rdma_nl_multicast EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd6636ca6 rdma_addr_size_in6 -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd7a709a8 rdma_restrack_add -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd8979e4a ibnl_put_msg -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd9667fc8 ib_dereg_mr_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd70f02b3 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd8b36beb rdma_restrack_add +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd9c88ee1 ib_get_device_fw_str EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda0d50ec ib_sa_cancel_query -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdbff9df2 rdma_dev_access_netns -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdcbb85bb ib_alloc_mr_integrity -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdfa63f37 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdcb885c8 rdma_move_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd1ba14f ib_unregister_device_queued +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xddcdb804 ib_init_ah_attr_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xddd14491 ib_mr_pool_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe482f1db rdma_find_gid_by_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe4b1b567 rdma_umap_priv_init EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe5840ec6 ib_wc_status_msg EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7b52e5f mult_to_ib_rate -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7df65b0 ib_modify_device -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe8842940 rdma_nl_register -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe988b5f7 ib_set_vf_link_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7cb0994 rdma_read_gid_attr_ndev_rcu EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe9e799fc ib_ud_header_pack -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea6b91f7 rdma_rw_ctx_destroy_signature -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeacbedcb ib_rdmacg_uncharge -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xef9c89c9 rdma_restrack_set_name -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf12641a3 ib_query_pkey -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf13c84e1 rdma_user_mmap_entry_put -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf2cba513 ib_qp_usecnt_dec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeaad1e0b ib_get_vf_guid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeb4c29de ib_create_qp_kernel +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xebcce959 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xec7af49a rdma_destroy_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xef93f68a rdma_user_mmap_entry_get_pgoff +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf0898af1 ib_get_eth_speed +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf4c7f8cc rdma_nl_put_driver_u32_hex EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5dedb30 rdma_node_get_transport -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5ed7309 rdma_nl_unicast_wait EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6ed3334 ib_event_msg -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf7d7d607 ib_qp_usecnt_inc -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf84cf485 ib_open_qp -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf966cdb0 rdma_move_grh_sgid_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa5d462c ib_mr_pool_put -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfaced6cb ib_unregister_device_queued -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfbf8f72d ib_drain_sq -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc7c4e85 rdma_user_mmap_entry_get -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc92b98c ibdev_notice -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x01866262 uverbs_destroy_def_handler -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x1ccfa9c0 _uverbs_get_const_signed -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x1d7e3ac2 ib_umem_odp_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf758a289 ib_alloc_xrcd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfb0c3f51 ib_port_unregister_client_groups +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfb2563ff ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfb64c338 rdma_user_mmap_entry_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfd0de218 ib_alloc_mr_integrity +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xffa0062c rdma_nl_put_driver_u64 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x04ef19eb ib_umem_odp_alloc_child +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x1fcb43b6 ib_umem_dmabuf_unmap_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x347d0a40 ib_umem_odp_unmap_dma_pages EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x36c34dc6 ib_copy_path_rec_to_user -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x38987d59 ib_umem_dmabuf_unmap_pages -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x460c54b8 ib_umem_dmabuf_get -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x54e23981 uverbs_get_flags64 -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x564bc7b2 uverbs_copy_to -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x607d0722 uverbs_uobject_fd_release -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x6cac9aaf ib_copy_ah_attr_to_user -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7063ac1e uverbs_copy_to_struct_or_zero -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x726b25c3 flow_resources_add +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x3a4cc80e ib_umem_dmabuf_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x3a65f425 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x3dcbd810 uverbs_copy_to +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x46c322e5 _uverbs_alloc +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x4b3f050c ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x55083c6d _uverbs_get_const_unsigned +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x59a0d057 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x5ad85cc4 uverbs_finalize_uobj_create +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x5f9f15d3 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x65db7011 ib_uverbs_get_ucontext_file +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x6a76c425 flow_resources_alloc +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x735d0305 flow_resources_add +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7530642d ib_umem_odp_alloc_implicit EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x754b0000 ib_copy_path_rec_from_user -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7a191599 ib_umem_odp_alloc_implicit -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7cb7a94f ib_umem_find_best_pgsz -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x8aab1a86 ib_uverbs_flow_resources_free -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x8c7f32d7 ib_uverbs_get_ucontext_file -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x985743ed ib_umem_get -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x9efe1c4e ib_umem_dmabuf_get_pinned -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x9ff3f614 _uverbs_get_const_unsigned -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xb6d29656 uverbs_finalize_uobj_create -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xc701f9e1 flow_resources_alloc -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xc77ecd7a uverbs_fd_class -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xc7802d61 uverbs_idr_class -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xcf9cc4c9 uverbs_get_flags32 -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xd44dd6c4 ib_umem_odp_map_dma_and_lock -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xd4ceefc3 _uverbs_alloc -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xdbe42bd2 ib_umem_copy_from -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xdcb8c12d ib_umem_dmabuf_map_pages -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe6a970f0 ib_umem_odp_alloc_child -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe7a54d18 ib_copy_qp_attr_to_user -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xeb69d24e uverbs_uobject_put -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xefe7dcdb ib_umem_odp_get -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xf014363e ib_umem_odp_unmap_dma_pages -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xfa6b4ee1 ib_umem_release -EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x143d03f5 iw_create_cm_id -EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x1ee3b880 iw_cm_listen -EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x44238edc iw_cm_connect -EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x59993896 iw_cm_init_qp_attr -EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xcd29bf71 iw_cm_disconnect -EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xdc4b040f iw_cm_reject -EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe81e7781 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x91df157b uverbs_get_flags64 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x9634e6d0 ib_umem_odp_map_dma_and_lock +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x9680dd77 uverbs_get_flags32 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xa2b77510 ib_uverbs_flow_resources_free +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xa697e58e uverbs_uobject_put +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xb0657dc8 uverbs_uobject_fd_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xb88b90c5 ib_umem_dmabuf_map_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xbb91a659 _uverbs_get_const_signed +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xbd5b78d0 ib_umem_odp_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xc07298fc ib_umem_copy_from +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xc2047b45 uverbs_copy_to_struct_or_zero +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xc4204a89 uverbs_idr_class +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xd1aa0c6a ib_umem_find_best_pgsz +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xd1fb29f8 uverbs_fd_class +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe0265eb9 ib_umem_dmabuf_get_pinned +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe311c59b uverbs_destroy_def_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xf4450626 ib_umem_odp_get +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x39192eff iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x46fdee53 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x57a894c8 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x6861798d iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x770c0a98 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8a95918a iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb9f47295 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xbfa6b38c iw_cm_reject EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf3df871f iwcm_reject_msg -EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf689bc2f iw_destroy_cm_id -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1065b534 rdma_listen -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x12459e33 rdma_resolve_route -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x134deef5 rdma_set_ib_path -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x19025ff4 rdma_accept -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1ba4ae76 rdma_set_afonly -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2989c66a rdma_notify -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2d902bd2 __rdma_create_kernel_id -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x37188a66 rdma_leave_multicast -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3bf18fc8 rdma_unlock_handler -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3cfd6103 rdma_connect_ece -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x55ca0306 rdma_init_qp_attr -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5a7864cc rdma_connect -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5cfbad6d rdma_set_reuseaddr -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6ceb273d rdma_destroy_qp -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x744fae78 rdma_create_qp -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7c9a03c0 rdma_create_user_id -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x81a6c43b rdma_consumer_reject_data -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x82b5e830 rdma_disconnect -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x84509473 rdma_connect_locked -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x89d2a4e6 rdma_read_gids +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x02b2e461 rdma_iw_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0303a068 rdma_set_ack_timeout +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x077c1f27 rdma_connect_ece +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x08edc319 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x091078c4 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0a032037 rdma_create_user_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0d988f7b rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x15d7f4d2 rdma_accept_ece +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x21bf98fb rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x23e49c75 rdma_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2fa78a7a rdma_res_to_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x397864fa rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x40c3907d rdma_connect_locked +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4df4e660 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x50c4747c rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5132bc35 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5d25856d rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5f7c8eb9 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x60b670a9 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6277cd5d rdma_lock_handler +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x62e95f5c rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6b131a56 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6ba89138 rdma_set_min_rnr_timer +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6f06ad4a rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7c9e44b6 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7cb3f2aa rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7f0c1171 rdma_read_gids +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8190c071 rdma_notify EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x907df803 rdma_event_msg -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x916214a1 rdma_res_to_id -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x94b0b501 rdma_set_ack_timeout -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x99c4527d rdma_set_service_type -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa0c73abe rdma_accept_ece -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa45708ea rdma_iw_cm_id -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa7d26c9f rdma_join_multicast -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xafef9d6f rdma_resolve_addr -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb965ba97 rdma_destroy_id -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbb3fae55 rdma_lock_handler -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc157758c rdma_reject_msg -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdaadafd6 rdma_bind_addr -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xddf6f5dc rdma_get_service_id -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe277c1ad rdma_reject -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xeeedaebe rdma_set_min_rnr_timer -EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x65cb3568 rtrs_clt_get_permit -EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x7a53df81 rtrs_clt_put_permit -EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x9e2dfea6 rtrs_clt_request -EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0xb3257dd0 rtrs_clt_open -EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0xbbf81d0c rtrs_clt_rdma_cq_direct -EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0xe6d96662 rtrs_clt_query -EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0xf2c17f84 rtrs_clt_close +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc0626ec5 rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcaca585a __rdma_create_kernel_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xce4ed790 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd007403f rdma_unlock_handler +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xebf0256e rdma_set_ib_path +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf1258882 rdma_consumer_reject_data +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x02bb5ecf rtrs_clt_put_permit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x27584b9a rtrs_clt_open +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x2d67d753 rtrs_clt_get_permit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x370c22e0 rtrs_clt_close +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x634a6a70 rtrs_clt_rdma_cq_direct +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0xa94fa94b rtrs_clt_query +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0xf613dafc rtrs_clt_request +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x1734e10e rtrs_rdma_dev_pd_deinit EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x242a8646 rtrs_addr_to_str -EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x34aabc9c rtrs_ib_dev_put -EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x3f69e8c3 rtrs_rdma_dev_pd_init -EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x7b1b4340 rtrs_rdma_dev_pd_deinit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x6c0f47b3 rtrs_rdma_dev_pd_init +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x6d0673e3 rtrs_ib_dev_put EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x887302f3 rtrs_addr_to_sockaddr +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0xd2f67071 rtrs_ib_dev_find_or_add EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0xe15357ef sockaddr_to_str -EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0xf908b228 rtrs_ib_dev_find_or_add -EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x1cf78af5 rtrs_srv_resp_rdma -EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x34933002 rtrs_srv_open -EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x45548e12 rtrs_srv_get_path_name -EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x959c2788 rtrs_srv_close -EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0xaa0e8cc0 rtrs_srv_get_queue_depth -EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0xac9b1a14 rtrs_srv_set_sess_priv -EXPORT_SYMBOL drivers/input/gameport/gameport 0x0d30e85c gameport_open -EXPORT_SYMBOL drivers/input/gameport/gameport 0x7457f4d6 gameport_close -EXPORT_SYMBOL drivers/input/gameport/gameport 0x894f41bb __gameport_register_port -EXPORT_SYMBOL drivers/input/gameport/gameport 0x8d1f6ac2 gameport_stop_polling -EXPORT_SYMBOL drivers/input/gameport/gameport 0xd0cac56a gameport_set_phys -EXPORT_SYMBOL drivers/input/gameport/gameport 0xe14fe706 __gameport_register_driver -EXPORT_SYMBOL drivers/input/gameport/gameport 0xeb54aaa6 gameport_start_polling -EXPORT_SYMBOL drivers/input/gameport/gameport 0xec56e320 gameport_unregister_driver -EXPORT_SYMBOL drivers/input/gameport/gameport 0xfb3cc6aa gameport_unregister_port -EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x2f3bf418 iforce_send_packet -EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0xbfddeec1 iforce_process_packet -EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0xd0fa7808 iforce_init_device -EXPORT_SYMBOL drivers/input/matrix-keymap 0x6f4d9551 matrix_keypad_build_keymap -EXPORT_SYMBOL drivers/input/misc/ad714x 0xd69d1e77 ad714x_probe -EXPORT_SYMBOL drivers/input/misc/ad714x 0xefea32eb ad714x_pm +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x2a5ac19e rtrs_srv_get_queue_depth +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x40f7fcb5 rtrs_srv_get_path_name +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x42bea87c rtrs_srv_set_sess_priv +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0xbc251d61 rtrs_srv_open +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0xd3222521 rtrs_srv_resp_rdma +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0xd79227bb rtrs_srv_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2c153790 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x5b5be9d4 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x6a11cdd2 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7ee46a63 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc1a8d9f8 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd821b818 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe294d197 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe5ca25bc gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf9880ecf gameport_stop_polling +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x157c968c iforce_process_packet +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x25604489 iforce_send_packet +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0xb3269009 iforce_init_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0x9df2dcfb matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x663f8147 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0x81e7fbda ad714x_pm +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x70473bd3 cma3000_init EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend -EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xe69ad065 cma3000_init -EXPORT_SYMBOL drivers/input/rmi4/rmi_core 0xd9d3a14d rmi_unregister_transport_device -EXPORT_SYMBOL drivers/input/sparse-keymap 0x4f6f4500 sparse_keymap_setup -EXPORT_SYMBOL drivers/input/sparse-keymap 0x6b0a5b3b sparse_keymap_entry_from_scancode -EXPORT_SYMBOL drivers/input/sparse-keymap 0x7742e890 sparse_keymap_report_entry -EXPORT_SYMBOL drivers/input/sparse-keymap 0x7e9be1a3 sparse_keymap_report_event -EXPORT_SYMBOL drivers/input/sparse-keymap 0xede70ffb sparse_keymap_entry_from_keycode -EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x38daed91 ad7879_probe -EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xf844c3c9 ad7879_pm_ops -EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x009b8737 capi_ctr_handle_message -EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x0fdf636d capi_ctr_ready -EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71a8764d detach_capi_ctr -EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb57c330b attach_capi_ctr -EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xcda6f129 capi_ctr_down +EXPORT_SYMBOL drivers/input/rmi4/rmi_core 0xc1df35d1 rmi_unregister_transport_device +EXPORT_SYMBOL drivers/input/sparse-keymap 0x1b068578 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x29eb9f43 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x49018b73 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x72ad440e sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7bee1f3f sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x90f34ac3 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xbf6a372c ad7879_pm_ops +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x175f37ac capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2dbd915c capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5783599b capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xabc37ce1 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xae9e833a attach_capi_ctr EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x27c58fd5 isdnhdlc_decode EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x4644eea5 isdnhdlc_out_init EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x5b835a58 isdnhdlc_rcv_init EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0xef4ee223 isdnhdlc_encode -EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x16e66f12 mISDNipac_irq -EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x9e25dfcf mISDNisac_init -EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x9f3decf9 mISDNipac_init -EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xfa4777cd mISDNisac_irq -EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x11909eff mISDNisar_init -EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x21cb7155 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x055322da mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x952832b2 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x9b9ebf45 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xd0baed9f mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x808b34ce mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xeed9cd70 mISDNisar_irq EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x03a68066 mISDN_FsmRestartTimer -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x046d47ec recv_Dchannel_skb -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x138fb024 recv_Bchannel_skb -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x147195c6 get_next_bframe -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x178326f2 recv_Echannel -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1a69e683 mISDN_unregister_Bprotocol -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1bd0e4bb get_next_dframe -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1fb9b64f mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x08305587 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x15713c12 recv_Dchannel EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x26236de8 mISDN_clock_update -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x26d58e56 bchannel_get_rxbuf -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2d799ffd queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2eec45bd mISDN_unregister_Bprotocol EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x30d25b0d mISDN_FsmDelTimer EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x313b1fde mISDN_FsmAddTimer -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x38c64482 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x31563108 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x363a9e4e recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3c295c8f queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3d6ea08c mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3e4d2825 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3f756244 mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x456dd070 create_l1 EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x551fa13e get_next_dframe EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6047df40 mISDN_FsmInitTimer -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6b7da7c9 recv_Bchannel -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x93164f77 recv_Dchannel -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9b3ab1cd mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x641f6950 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6994a26a mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x69ddbab0 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x788325d0 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7cb0c7f8 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x84d714a5 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x857c97b1 recv_Bchannel_skb EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9c928457 mISDN_FsmNew -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xab72627d mISDN_unregister_device -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb2f30324 mISDNDevName4ch -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb6bb6c7b mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb5992a60 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc126be35 bchannel_get_rxbuf EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc7287667 create_l1 -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xced1c4c5 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc39d58c3 mISDN_clear_bchannel EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd3e8ca53 mISDN_freebchannel EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe6c84214 recv_Bchannel EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xea163ce7 mISDN_freedchannel -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xea253d41 mISDN_ctrl_bchannel -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf0a25379 mISDN_initbchannel -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf410c41d mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf31e61c8 dchannel_senddata EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x93df9e4b dsp_audio_law_to_s32 EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb07a21b8 dsp_audio_s16_to_law EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register -EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0x4449487e ti_lmu_common_get_brt_res EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0x54a12ec4 ti_lmu_common_set_ramp -EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0xc26702fa ti_lmu_common_get_ramp_params +EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0x746e6ef8 ti_lmu_common_get_brt_res EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0xced72aae ti_lmu_common_set_brightness +EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0xfc4cf9a4 ti_lmu_common_get_ramp_params EXPORT_SYMBOL drivers/md/dm-bio-prison 0x476d2454 dm_cell_key_has_valid_range -EXPORT_SYMBOL drivers/md/dm-log 0x1fe499f2 dm_dirty_log_create -EXPORT_SYMBOL drivers/md/dm-log 0x3779340e dm_dirty_log_destroy -EXPORT_SYMBOL drivers/md/dm-log 0x702c4ff3 dm_dirty_log_type_unregister -EXPORT_SYMBOL drivers/md/dm-log 0xc0635802 dm_dirty_log_type_register -EXPORT_SYMBOL drivers/md/dm-snapshot 0x30ce38d4 dm_exception_store_create -EXPORT_SYMBOL drivers/md/dm-snapshot 0x334b7e10 dm_snap_cow -EXPORT_SYMBOL drivers/md/dm-snapshot 0x4d77b58f dm_exception_store_type_unregister -EXPORT_SYMBOL drivers/md/dm-snapshot 0x4d95a52d dm_snap_origin -EXPORT_SYMBOL drivers/md/dm-snapshot 0x5d7d11e6 dm_exception_store_type_register -EXPORT_SYMBOL drivers/md/dm-snapshot 0x82b54b6d dm_exception_store_destroy -EXPORT_SYMBOL drivers/md/raid456 0x0322c454 raid5_set_cache_size -EXPORT_SYMBOL drivers/md/raid456 0x1dd4c5da r5c_journal_mode_set -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x0b235650 flexcop_device_initialize -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x249671cc flexcop_dump_reg -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x2a20f0e0 flexcop_pass_dmx_packets -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x2f0cab43 flexcop_sram_ctrl -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x4562728b flexcop_device_exit -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x4591cd95 flexcop_device_kfree -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x787e6292 flexcop_sram_set_dest -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7ae86372 flexcop_device_kmalloc -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7f338b6b flexcop_wan_set_speed -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x90a655bf flexcop_pass_dmx_data -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xa5a7cbd5 flexcop_i2c_request -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xbf426bf1 flexcop_eeprom_check_mac_addr -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xefbf9aa4 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/md/dm-log 0x08ddde73 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x340dd13a dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0x97261f4d dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0xe599c815 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x251c0093 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x27e76b14 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x5d2c2026 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x7d211af9 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xa2490432 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0xba253650 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/raid456 0x90eecb29 raid5_set_cache_size +EXPORT_SYMBOL drivers/md/raid456 0xd3f80427 r5c_journal_mode_set +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x13930b01 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x18a6a4a6 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x33986fa2 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x41087b96 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x6608bfdc flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x6917c64f flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x86809def flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x9d25e575 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xad590d8c flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xb11d8b25 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xc8575ac5 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xcc2ae26a flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xe88833bd flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/cx2341x 0x071e0e8c cx2341x_handler_setup EXPORT_SYMBOL drivers/media/common/cx2341x 0x15ac1bd0 cx2341x_ctrl_query EXPORT_SYMBOL drivers/media/common/cx2341x 0x28240e61 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0x38ac3a54 cx2341x_handler_set_50hz EXPORT_SYMBOL drivers/media/common/cx2341x 0x55aa7c5f cx2341x_mpeg_ctrls EXPORT_SYMBOL drivers/media/common/cx2341x 0x5b5cc43e cx2341x_ext_ctrls -EXPORT_SYMBOL drivers/media/common/cx2341x 0x65d79c40 cx2341x_handler_init -EXPORT_SYMBOL drivers/media/common/cx2341x 0x67cbc577 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0x6f74682f cx2341x_handler_init EXPORT_SYMBOL drivers/media/common/cx2341x 0x7b4dd2cb cx2341x_fill_defaults -EXPORT_SYMBOL drivers/media/common/cx2341x 0xc5d295d1 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7f03bead cx2341x_handler_set_busy EXPORT_SYMBOL drivers/media/common/cx2341x 0xdbc5583a cx2341x_update -EXPORT_SYMBOL drivers/media/common/cx2341x 0xe12f08cc cx2341x_handler_set_busy EXPORT_SYMBOL drivers/media/common/cx2341x 0xe1fe1432 cx2341x_log_status -EXPORT_SYMBOL drivers/media/common/cypress_firmware 0x4c1a3547 cypress_load_firmware -EXPORT_SYMBOL drivers/media/common/ttpci-eeprom 0x2a4031a8 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0x17c9d050 cypress_load_firmware EXPORT_SYMBOL drivers/media/common/ttpci-eeprom 0x693e74ba ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/common/ttpci-eeprom 0xae2418df ttpci_eeprom_parse_mac EXPORT_SYMBOL drivers/media/common/tveeprom 0x0dbf0296 tveeprom_hauppauge_analog -EXPORT_SYMBOL drivers/media/common/tveeprom 0xde7a8f59 tveeprom_read +EXPORT_SYMBOL drivers/media/common/tveeprom 0xe465338a tveeprom_read +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x059b0a81 vb2_verify_memory_type EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x065246b8 frame_vector_create EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x1b700d37 put_vaddr_frames EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x1d5f9555 frame_vector_destroy -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x2755bf5a vb2_verify_memory_type -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x32b76f89 vb2_buffer_in_use +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x71b8babb vb2_buffer_in_use EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0xc5e5573a frame_vector_to_pages EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0xdffb744b frame_vector_to_pfns EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0xe20dfe0f get_vaddr_frames -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x0fb2797e vb2_dvb_register_bus -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x27e8dc5e vb2_dvb_find_frontend -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x46854235 vb2_dvb_dealloc_frontends -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x47602f07 vb2_dvb_get_frontend -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x964085e3 vb2_dvb_unregister_bus -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0xb85fea59 vb2_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x048a1b92 vb2_dvb_register_bus +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x0d3a4d8e vb2_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0xc5444804 vb2_dvb_find_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0xd6553e3b vb2_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0xf328cb7d vb2_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0xff49a3ba vb2_dvb_get_frontend EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-memops 0xc7c2b85f vb2_create_framevec EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-memops 0xccd197c7 vb2_destroy_framevec -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-v4l2 0xf49a419c vb2_querybuf +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-v4l2 0x9b9a0668 vb2_querybuf EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x01411e41 dvb_ringbuffer_flush EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x08733236 intlog10 -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0dff0796 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x08884c40 dvb_dmxdev_release EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x11c8df1a dvb_dmx_swfilter_raw EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1ab38e4b dvb_ringbuffer_write_user -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1b6ff20a dvb_frontend_suspend -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x201971bf dvb_ca_en50221_camready_irq -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x21353d90 dvb_register_frontend -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x218bf1a5 dvb_generic_open -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3a9f54e6 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x24b26006 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2980ed72 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3268e982 dvb_frontend_detach EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3b93d71a dvb_frontend_sleep_until EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3d5fc8f7 dvb_ringbuffer_flush_spinlock_wakeup -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x463f3ff4 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x43661dd9 dvb_unregister_frontend EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x46562d5e dvb_ringbuffer_read_user -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4c0a7719 dvb_remove_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4776311c dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4b1eb241 dvb_generic_release EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4efe0eb3 dvb_dmx_swfilter EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5f2b1d95 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x640e34ea dvb_ca_en50221_init EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x676481c0 dvb_ringbuffer_avail EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6a88e2d7 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6e11cdbf dvb_ca_en50221_camchange_irq EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x712ec24c dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x754c6cd2 dvb_generic_open EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x75b97397 dvb_dmx_init -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7d77bb6a dvb_unregister_adapter -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9194afd6 dvb_net_release -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x91ae7411 dvb_unregister_device -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x91c076e2 dvb_generic_ioctl -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x97b4064e dvb_ca_en50221_camchange_irq -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9b0fe6b4 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x799956a5 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7b421a63 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x85139d45 dvb_device_get +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9b3fbdef dvb_frontend_resume EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9df9fff2 dvb_dmx_swfilter_204 -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa2714943 dvb_dmxdev_release -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa35dde4e dvb_ca_en50221_init -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa38f23b0 dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa3518659 dvb_net_release EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa3eb29e3 dvb_ringbuffer_read -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xab6fd653 dvb_frontend_reinitialise -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb142820f dvb_dmxdev_init -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb23be0f9 dvb_net_init -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xbb4f2b15 dvb_generic_release -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xbc5918f8 dvb_device_get +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa6ad57e9 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb40abd9b dvb_unregister_adapter EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc22147a7 dvb_ringbuffer_empty -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd19702bb dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xca0d9cff dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcbe75a53 dvb_remove_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xce3497d3 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd1b445d1 dvb_register_frontend EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd20c9282 dvb_dmx_release EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdad96822 dvb_ringbuffer_free EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdf4546f5 dvb_ringbuffer_write -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xec1e3d84 dvb_register_adapter -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x34a30dd7 au8522_sleep -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x4002f558 au8522_readreg -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x535c1fb3 au8522_i2c_gate_ctrl -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x56b3da23 au8522_init -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x7b2972e2 au8522_get_state -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x81403498 au8522_analog_i2c_gate_ctrl -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x9719417a au8522_release_state -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xa26bf22d au8522_led_ctrl -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xb596854a au8522_writereg -EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x23230c3a cx24113_agc_callback -EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x58d806c2 cx24123_get_tuner_i2c_adapter -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x44da050f dib0070_get_rf_output -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x61b425b0 dib0070_wbd_offset -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xa4fa09f7 dib0070_set_rf_output -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xd694c96f dib0070_ctrl_agc_filter -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x3c1cc2fb dib0090_get_wbd_target -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x46fb4a06 dib0090_get_wbd_offset -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x5a8393a7 dib0090_pwm_gain_reset -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x63bdab38 dib0090_dcc_freq -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x63de07dd dib0090_set_tune_state -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x6c4e7a47 dib0090_get_tune_state -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x8ae28962 dib0090_set_dc_servo -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xae2278bc dib0090_update_rframp_7090 -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xcb01ccc7 dib0090_update_tuning_table_7090 -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xce916c50 dib0090_set_switch -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xd7680fa0 dib0090_get_current_gain -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xe3257f52 dib0090_set_vga -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xe8657488 dib0090_gain_control -EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x13b6dd16 dib3000mc_get_tuner_i2c_master -EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x4d2a3db7 dib3000mc_pid_parse -EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x78c729bc dib3000mc_pid_control -EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x7b6c53b8 dib3000mc_set_config -EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xa89ea030 dib3000mc_i2c_enumeration -EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x06b10c26 dib7000m_get_i2c_master -EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x089bc26c dib7000m_pid_filter -EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xe09b1543 dib7000m_pid_filter_ctrl -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x0528f138 dib9000_get_component_bus_interface -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x2d2c416a dib9000_set_i2c_adapter -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x5bd9cfef dib9000_set_gpio -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x672d82e5 dib9000_get_tuner_interface -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x6afdbd1b dib9000_get_slave_frontend -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x6da4d268 dib9000_get_i2c_master -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x6fb9ebdb dib9000_fw_set_component_bus_speed -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x88fac93d dib9000_fw_pid_filter_ctrl -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x8cb23a1e dib9000_set_slave_frontend -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xb0e8367b dib9000_fw_pid_filter -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xd3690122 dib9000_i2c_enumeration -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xdc440de1 dib9000_firmware_post_pll_init -EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x10f69298 dibx000_i2c_set_speed -EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x597ca7a5 dibx000_get_i2c_adapter -EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x86b5478d dibx000_exit_i2c_master -EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xb49bdc85 dibx000_init_i2c_master -EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xd209f40d dibx000_reset_i2c_master -EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x7d2d207f dvb_dummy_fe_qpsk_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x7f662337 dvb_dummy_fe_qam_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0xd6e30417 dvb_dummy_fe_ofdm_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gl5 0xf85230cf lgs8gl5_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/lnbh29 0xd8bbdb30 lnbh29_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/m88ds3103 0x7f0b1adf m88ds3103_get_agc_pwm -EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x4f37eb59 s5h1420_get_tuner_i2c_adapter -EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0x2b7e68e2 zd1301_demod_get_i2c_adapter -EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0x9b987402 zd1301_demod_get_dvb_frontend -EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x000f72d2 flexcop_dma_control_size_irq -EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x1606ff18 flexcop_dma_free -EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x22db1723 flexcop_dma_control_timer_irq -EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x332c8808 flexcop_dma_allocate -EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x6b11004f flexcop_dma_config_timer -EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x874c493a flexcop_dma_xfer_control -EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xbfc9f007 flexcop_dma_config -EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x00b474e9 bt878_device_control -EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x16e11ee4 bt878_stop -EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x8a763591 bt878_start -EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x9c240afe bt878 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe2c009c4 dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe439ecd5 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf4a874ce dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x05b60123 au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x12f4840c au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x2689accc au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x3d0c2d57 au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x4bd7a9a0 au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xa8564d13 au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xad1230c5 au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xd57ff464 au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xfd2848f8 au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x8069b293 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xe629c2f8 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x0424cb55 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x2750e4a8 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x41a66bc3 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xae116405 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00098568 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x168ebe97 dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x2cad8756 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x454c868c dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x46d66ab3 dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x49a778aa dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x511db846 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x6258a4a5 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x6de68332 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x87525f47 dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x8c766cb1 dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xc76a5000 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xeeefab79 dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x020d524c dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x064b41d8 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x1d253bec dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x2f890441 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x9e41de3d dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x286a4f19 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xd17044ac dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xdda49e19 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x1473aa5e dib9000_fw_set_component_bus_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x15a75d34 dib9000_firmware_post_pll_init +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x1edba71b dib9000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x2b840557 dib9000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x4d463930 dib9000_get_component_bus_interface +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x944fd9a8 dib9000_set_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x94c65042 dib9000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xa13eb689 dib9000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xa23f8951 dib9000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xbc3a93fb dib9000_get_tuner_interface +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xcc19606e dib9000_fw_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xed1e3606 dib9000_fw_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x9affd700 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x9e6ed64a dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xe7c79afa dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xec97cfd3 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xf987a1bc dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x1aefe32b dvb_dummy_fe_qam_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x6949f5f0 dvb_dummy_fe_qpsk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0xc287d198 dvb_dummy_fe_ofdm_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gl5 0x61fd2baf lgs8gl5_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbh29 0x76971fd7 lnbh29_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88ds3103 0xf9412ef6 m88ds3103_get_agc_pwm +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0xf1c62f63 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0x1047f9a0 zd1301_demod_get_dvb_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0x7d3d27fb zd1301_demod_get_i2c_adapter +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x2e524a7b flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x3342721b flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x39651bc1 flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x657cc6c9 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x9d4dc864 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xb821cabc flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xc82383af flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x3a596f49 bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x77848aed bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xb41c89aa bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xcafbb483 bt878_device_control EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x0f012a7c bttv_sub_register EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable -EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x1fa2edf1 bttv_get_pcidev -EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x35239f77 bttv_sub_register -EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x779d8727 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x29cd04b4 bttv_sub_unregister EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xa903dce8 bttv_get_pcidev EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x04304aad write_dst -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x0801670f read_dst -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x1c45149e dst_comm_init -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x26a1accf dst_pio_disable -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x2a6107ae rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x13cf9d35 dst_error_recovery EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x43a983fd dst_check_sum -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x4963af4b dst_wait_dst_ready -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xd2533389 dst_error_bailout -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xdabe65c2 dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x472e1ed5 dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x7922aebb write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x8715d4a3 dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xd67638ed rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xdc16f2ee dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe934b693 read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xfeb2cece dst_comm_init +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2993a44d cx18_start_v4l2_encode_stream EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio -EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x5dfbbfc7 cx18_ext_init -EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x7e673c55 cx18_claim_stream -EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xaf7f5689 cx18_release_stream -EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xe21723f9 cx18_stop_v4l2_encode_stream -EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xf341bf73 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x50aa332e cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x5db99a75 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xdc3ef9c0 cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xe3f007a5 cx18_release_stream EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xad27df58 altera_ci_init EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xdb3faf38 altera_ci_release EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xe66b9812 altera_ci_irq -EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x22b92132 cx25821_set_gpiopin_direction -EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x25aea7f6 cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x0e83a689 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x10735883 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x3ed76408 cx25821_dev_get EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x44b517f5 cx25821_print_irqbits -EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x5161bc3f cx25821_risc_databuffer_audio -EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x80339fd0 cx25821_riscmem_alloc -EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xb7b8c05a cx25821_sram_channel_setup_audio -EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xe36120c0 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x62aa36fe cx25821_riscmem_alloc +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x750dcdef cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xb42510a7 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xd0040edf cx25821_set_gpiopin_direction EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xe9050411 cx25821_sram_channels -EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xeb49be65 cx25821_dev_unregister -EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x94c39966 vp3054_i2c_probe -EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0xd6b31211 vp3054_i2c_remove -EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x2d270f62 cx88_enum_input -EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x7157a8e0 cx88_set_freq -EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xc446c408 cx88_querycap -EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xcc032a3c cx88_video_mux -EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x48c4920b cx8802_buf_prepare -EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x5a102046 cx8802_buf_queue -EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x656cc5c8 cx8802_unregister_driver -EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x6da6f9fa cx8802_start_dma -EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xd436bcf2 cx8802_get_driver -EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xe07ad6c2 cx8802_cancel_buffers -EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xf88852fc cx8802_register_driver -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0a00f22e cx88_set_stereo -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x14cb9c30 cx88_set_tvnorm -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x3167f74a cx88_dsp_detect_stereo_sap -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x341c73fa cx88_risc_databuffer -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x369cfa02 cx88_core_get -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4b5acddb cx88_reset -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x52ea58f5 cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x0a918e3e vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0xd658c085 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x3ab428c2 cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x71fd563d cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x782f46b3 cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xcdc668ff cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x2737a74b cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x44b31f70 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x4f066569 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x70d1dc60 cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xc48501be cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xd4c73d0c cx8802_start_dma +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xed2d1e1f cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x120edf9e cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2611b416 cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2f0c01de cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x33f3d723 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x36ebf346 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x53010a13 cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x5a9a509c cx88_core_irq EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x5edb7ae5 cx88_print_irqbits EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x65e5e754 cx88_wakeup -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x72d962e1 cx88_newstation -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x8857bc83 cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6d2905c8 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6d59f555 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x8cf061f9 cx88_reset EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x8d88137a cx88_sram_channels EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x904b8696 cx88_audio_thread -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x94c89a56 cx88_ir_start -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x97fcd32d cx88_set_tvaudio -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x99eca0fc cx88_shutdown -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xb1252681 cx88_set_scale -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xbd93bf01 cx88_sram_channel_dump -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc824a158 cx88_core_put -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xdee864df cx88_get_stereo -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xe95e8061 cx88_ir_stop -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xe9f36c33 cx88_sram_channel_setup -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xf8485d61 cx88_risc_buffer -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x0d2faa7d ivtv_api -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x11ad6fc9 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x9b22efe6 cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xab818179 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xb4329c75 cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xbb62c421 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc1ad6c70 cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc78a48e8 cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xce85e0fa cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xd1564c48 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xeb452a57 cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xeba08982 cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x026b275d ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x04267110 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x0bb90105 ivtv_claim_stream EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x1aa07b9d ivtv_udma_setup -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x1d165651 ivtv_udma_prepare -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x22a38987 ivtv_stop_v4l2_encode_stream -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x2b402e9a ivtv_udma_alloc -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x2c28d0cd ivtv_init_on_first_open -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x4a2b20a1 ivtv_claim_stream -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6563053a ivtv_vapi -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x97139695 ivtv_set_irq_mask -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xa1430ca8 ivtv_udma_unmap -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xb120db53 ivtv_vapi_result -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xb184a577 ivtv_firmware_check -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xbd414e80 ivtv_ext_init -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xd4da53ea ivtv_start_v4l2_encode_stream -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xd5b38d4f ivtv_clear_irq_mask -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xe7e5a204 ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x17dba4a1 ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x19cf23a5 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x224f26c6 ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x3c3f41f2 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x47b48848 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x4c73f901 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x5a49207f ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x5ce32c7b ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x967c5e70 ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x9dc1ae3b ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xcfaaf30b ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xf6863dc4 ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xf68fa272 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xfde1b6d4 ivtv_udma_alloc EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x2de61dd6 saa7134_pgtable_alloc -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x2e3372e1 saa7134_ts_unregister -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x3f6815e4 saa_dsp_writel -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x521c9d1f saa7134_set_gpio -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x572014a8 saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x238303db saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x27499088 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x4283c22c saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x6f48d292 saa7134_set_dmabits EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x730c4be3 saa7134_boards -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x87e70017 saa7134_pgtable_build -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x8e8df88e saa7134_tvaudio_setmute -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x90931e32 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x81875756 saa7134_dmasound_init EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x9575192e saa7134_devlist_lock -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x967217ad saa7134_set_dmabits -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xae603e2c saa7134_dmasound_exit -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xe957bb50 saa7134_pgtable_free -EXPORT_SYMBOL drivers/media/radio/tea575x 0x5dbf6e58 snd_tea575x_hw_init -EXPORT_SYMBOL drivers/media/radio/tea575x 0x7749fc1f snd_tea575x_s_hw_freq_seek -EXPORT_SYMBOL drivers/media/radio/tea575x 0x79b8f04d snd_tea575x_exit -EXPORT_SYMBOL drivers/media/radio/tea575x 0x9a49f577 snd_tea575x_enum_freq_bands -EXPORT_SYMBOL drivers/media/radio/tea575x 0x9be05ab3 snd_tea575x_g_tuner -EXPORT_SYMBOL drivers/media/radio/tea575x 0xaecf8c7a snd_tea575x_init -EXPORT_SYMBOL drivers/media/radio/tea575x 0xb4362621 snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x9c608f28 saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xa4c3e79a saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xa6de2fe8 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xbac04771 saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xcbf55cf2 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xe54dd8ba saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/radio/tea575x 0x11cbd380 snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x15290bc0 snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/radio/tea575x 0xb09f0107 snd_tea575x_s_hw_freq_seek +EXPORT_SYMBOL drivers/media/radio/tea575x 0xc167959f snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0xc5997f93 snd_tea575x_enum_freq_bands +EXPORT_SYMBOL drivers/media/radio/tea575x 0xcb7b987a snd_tea575x_g_tuner +EXPORT_SYMBOL drivers/media/radio/tea575x 0xe218a744 snd_tea575x_hw_init EXPORT_SYMBOL drivers/media/rc/rc-core 0x01098f88 ir_raw_encode_scancode EXPORT_SYMBOL drivers/media/rc/rc-core 0x2fe55cf5 ir_raw_gen_pd -EXPORT_SYMBOL drivers/media/rc/rc-core 0x62a08800 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0x717803d8 ir_raw_handler_register EXPORT_SYMBOL drivers/media/rc/rc-core 0x7a02ee87 ir_raw_gen_pl -EXPORT_SYMBOL drivers/media/rc/rc-core 0x7c136a3a ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0x9b56aca5 ir_raw_handler_unregister EXPORT_SYMBOL drivers/media/rc/rc-core 0xb5516017 ir_raw_encode_carrier EXPORT_SYMBOL drivers/media/rc/rc-core 0xce3696f3 ir_raw_gen_manchester -EXPORT_SYMBOL drivers/media/tuners/fc0013 0x396e4cea fc0013_rc_cal_reset -EXPORT_SYMBOL drivers/media/tuners/fc0013 0x464400e1 fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x640df410 fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x9b6c60df fc0013_rc_cal_reset EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x4c48939e tuners EXPORT_SYMBOL drivers/media/tuners/tuner-types 0xc2821775 tuner_count -EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0xbf845042 cx231xx_register_extension -EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0xeb334fc0 cx231xx_unregister_extension -EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x0a15fbca dvb_usbv2_reset_resume -EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x20d75165 dvb_usbv2_generic_write -EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x30a59267 dvb_usbv2_suspend -EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x4fff0c1a dvb_usbv2_disconnect -EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x8b984df2 dvb_usbv2_generic_rw_locked -EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x9d199076 dvb_usbv2_probe -EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xbad3c226 dvb_usbv2_generic_rw -EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xf6103401 dvb_usbv2_generic_write_locked -EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xf876e3b8 dvb_usbv2_resume -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x38992dc7 usb_cypress_load_firmware -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x4775cb07 dvb_usb_device_init -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x57c45a2a dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x3c3c5fb2 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0xbbab1d83 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x04f027d3 dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x0dc87a09 dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x25736ace dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x59bba2c5 dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x895986db dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xa7c18d37 dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc1a2f996 dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc635387d dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xfb63984e dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x3e51a920 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x86b86814 dvb_usb_nec_rc_key_to_event EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x8b6f5395 dvb_usb_get_hexline -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x90644c3a dvb_usb_device_exit -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x96272691 dvb_usb_generic_write -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xe78172a1 dvb_usb_generic_rw -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x0cc4e2fa af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x9541e90f dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xa6cc3327 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xbfd61898 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xe783ffbd dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x20e261da af9005_rc_decode EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x341530cb rc_map_af9005_table EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x067789bf dibusb_streaming_ctrl -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x0f916d7b dibusb2_0_streaming_ctrl -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x610a6519 dibusb_pid_filter -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x819a2da1 dibusb_pid_filter_ctrl -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x91e3d860 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x002de848 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x19545c36 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x37a40fcc dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x637b4687 dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x93440666 dibusb_read_eeprom_byte EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x93822ecb rc_map_dibusb_table -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xa2727e06 dibusb_read_eeprom_byte -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xcd6cfe8b dibusb2_0_power_ctrl -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xdb8616f4 dibusb_rc_query -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xff1864ca dibusb_power_ctrl -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x2941cc65 dibusb_dib3000mc_tuner_attach -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x8daf7714 dibusb_dib3000mc_frontend_attach -EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x768b6fac em28xx_register_extension -EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xeb8a94f7 em28xx_unregister_extension -EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x4be42806 go7007_parse_video_stream -EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x596f642e go7007_snd_init -EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x8c5c8558 go7007_boot_encoder -EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x8de120ad go7007_alloc -EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x95d591cd go7007_register_encoder -EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0xc4f88f65 go7007_read_interrupt -EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0xd005f632 go7007_snd_remove -EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0xf10a9c4d go7007_read_addr -EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0xf82baeec go7007_update_board -EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x3adde543 gspca_frame_add -EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x4247cde4 gspca_dev_probe -EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x6d9634d4 gspca_coarse_grained_expo_autogain -EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x71ed8fec gspca_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xc7dfc43c dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd2f04ebd dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xf5fde6bd dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xf637bdf4 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x63fb8ecf dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x90afb542 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x04975788 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x1dd042c4 em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x183165f5 go7007_register_encoder +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x3d61638c go7007_update_board +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x3e314019 go7007_read_interrupt +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x5fc72ad5 go7007_snd_remove +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x98faccad go7007_alloc +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x9fe21877 go7007_boot_encoder +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0xb540447c go7007_parse_video_stream +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0xf026a7bb go7007_read_addr +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0xf913f69b go7007_snd_init +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x1ac0711a gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x4682cb5b gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x5f1555b2 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x69cbc83f gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x6ef7e315 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7cde9a0f gspca_disconnect EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug -EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xa43b452d gspca_resume -EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xbd1b1c37 gspca_expo_autogain -EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xbff69f08 gspca_disconnect -EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xcdc985fa gspca_dev_probe2 -EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x43cb6786 ttusbdecfe_dvbt_attach -EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x680c664c ttusbdecfe_dvbs_attach -EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x0982d2e4 v4l2_async_register_subdev -EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x4a6e040a v4l2_async_unregister_subdev -EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x4f311f97 v4l2_async_nf_init -EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x5c34ef2c v4l2_async_nf_unregister -EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x9f544da7 v4l2_async_nf_register -EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0xb26119d3 v4l2_async_subdev_nf_register -EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x2f60ef83 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xc908a01b gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xf77544f4 gspca_suspend +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0xcf406773 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0xe48766b9 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x0a4a1aa1 v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x93b7a65f v4l2_async_subdev_nf_register +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x98cf6bf8 v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x9d6aff99 v4l2_async_nf_init +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0xc4be58f4 v4l2_async_nf_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0xcd4f8c59 v4l2_async_nf_register EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x47b564eb v4l2_m2m_mmap EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x5352d022 v4l2_m2m_resume -EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xd8eee80d v4l2_m2m_job_finish -EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xedfcf994 v4l2_m2m_get_vq -EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xeed95737 v4l2_m2m_buf_done_and_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x6bf553a7 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x754f4cac v4l2_m2m_buf_done_and_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x9f80b8b0 v4l2_m2m_job_finish EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xf626dd03 v4l2_m2m_suspend -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0248d667 v4l2_ctrl_type_op_log -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x048567e1 v4l2_ctrl_poll EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x064a175b v4l2_ctrl_auto_cluster -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x08047bab v4l2_ctrl_subdev_log_status EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x082737e8 v4l2_ctrl_merge EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x12c8f94a v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x13197214 v4l2_ctrl_type_op_equal +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1367bee5 video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x13704d88 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x158fbfaa v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x15ed4c38 v4l2_ctrl_type_op_validate EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x22a06c8b v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x178f0dba v4l2_ctrl_new_std EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2cf0368a __v4l2_ctrl_s_ctrl_compound -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2cfb6bf0 video_device_release -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x30525b78 video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x27e5fb7b v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2d8aafdf v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2fd28a9b v4l2_ctrl_cluster EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x315de2cf v4l2_ctrl_get_menu -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x31779768 v4l2_ctrl_add_handler EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x32d43420 v4l2_ctrl_get_name -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3325f917 v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3539d583 v4l2_ctrl_handler_log_status EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x35ff98bf v4l2_format_info -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x37e78457 v4l2_ctrl_new_int_menu -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3871d5e8 v4l2_ctrl_request_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x368e14a4 v4l2_ctrl_type_op_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3857a92e v4l2_g_ext_ctrls EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3b86cd9a v4l2_ctrl_fill -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3b9bf5e7 v4l2_ctrl_new_std_compound EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3cfeedd9 v4l2_ctrl_log_status -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x433bb1cb v4l2_ctrl_g_ctrl_int64 -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x48749a60 video_ioctl2 -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x491ca6fa __v4l2_ctrl_modify_range -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4a6f4b8b v4l2_ctrl_new_std_menu_items -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x56cf2835 __video_register_device -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x57a49531 v4l2_ctrl_request_complete -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x59f3b062 v4l2_ctrl_new_custom -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5e7228d5 __v4l2_ctrl_s_ctrl_string -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x69c7b15c v4l2_g_ext_ctrls -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6c0c860b __v4l2_ctrl_s_ctrl -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6dd02b38 v4l2_ctrl_handler_free -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6f890ea9 video_devdata -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7206752f v4l2_s_ext_ctrls -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x741fee75 v4l2_ctrl_sub_ev_ops -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x75920cf9 v4l2_ctrl_new_std_menu -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7807ec5b v4l2_ctrl_type_op_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3c4f84b4 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3d709bd5 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x469dcfb3 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4d82fe8e video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x53d0c83b v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x54ca2916 v4l2_ctrl_type_op_log +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x56011500 v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5b1ee50e v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6150d8d1 __v4l2_ctrl_modify_dimensions +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x74aa54bb v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x76f01ac5 __v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a0d838b v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a5811bd v4l2_ctrl_poll EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8156b2e9 video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8894da72 video_ioctl2 EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x89e3897d v4l2_ctrl_query_fill -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8b9b3576 v4l2_ctrl_handler_setup -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8bcffde5 v4l2_ctrl_type_op_equal -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8ea29912 v4l2_subdev_call_wrappers -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x93ebae38 v4l2_query_ext_ctrl -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x95ee3c67 v4l2_ctrl_subdev_subscribe_event -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9a76ea99 v4l2_ctrl_cluster -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9f005984 v4l2_ctrl_new_std -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9f1a9332 __v4l2_ctrl_grab -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa05f2662 v4l2_querymenu -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa265a8d3 __v4l2_ctrl_s_ctrl_int64 -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa801b498 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8c4fd272 v4l2_ctrl_request_complete +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x93531604 video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x95ce48c2 v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x97c1e6e9 v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9838b255 v4l2_subdev_call_wrappers +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x993ff10c __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9ca071a4 v4l2_ctrl_new_fwnode_properties +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9d6acb21 v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa4ad1b87 v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xad8497a0 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb0468135 v4l2_query_ext_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb12d4d59 v4l2_ctrl_subdev_log_status EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb95583fc v4l2_ctrl_handler_log_status -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbb02101b v4l2_ctrl_subscribe_event -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc11a693 v4l2_ctrl_type_op_validate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb81929c6 v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb82d82bc v4l2_ctrl_new_std_menu EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbe17f166 __v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xca6610b4 v4l2_ctrl_notify EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd15484d1 v4l2_ctrl_g_ctrl EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd16d9c01 v4l2_ctrl_get_int_menu -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd3dd3e4d v4l2_queryctrl -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd5d0f9c6 v4l2_ctrl_activate -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd712116c v4l2_ctrl_new_fwnode_properties -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdfe4c3e9 video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdae36c4e v4l2_ctrl_request_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdcad5cf7 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe13b475a __v4l2_ctrl_grab EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe36d52d2 v4l2_subdev_init -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe64d79be v4l2_ctrl_find -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xedd697b1 v4l2_ctrl_radio_filter -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xeea1645e v4l2_ctrl_g_ctrl -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xef3eeb14 __v4l2_ctrl_modify_dimensions +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2c5de80 video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe8b2fda7 v4l2_ctrl_new_std_compound +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe9bbade0 __v4l2_ctrl_s_ctrl_string +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe9cfd2ca v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xed972fec video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf0c19770 __v4l2_ctrl_s_ctrl_compound EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf50fecbc v4l2_ctrl_replace -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfb809729 v4l2_g_ctrl -EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x0c384a37 rpcif_hw_init -EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x13073eb0 rpcif_manual_xfer -EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x4f3d59a0 rpcif_prepare -EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x8ca2c23c rpcif_sw_init -EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0xdb9e4c41 rpcif_dirmap_read -EXPORT_SYMBOL drivers/memstick/core/memstick 0x09978c59 memstick_set_rw_addr +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf8bbe649 v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfc75f899 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfd1d4db1 __v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfd2cb377 v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x1dd47f85 rpcif_prepare +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x621ae1cf rpcif_manual_xfer +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x7bf8a720 rpcif_sw_init +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x90be1fb2 rpcif_dirmap_read +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x9c8d10eb rpcif_hw_init EXPORT_SYMBOL drivers/memstick/core/memstick 0x199305e6 memstick_init_req EXPORT_SYMBOL drivers/memstick/core/memstick 0x287277cb memstick_init_req_sg -EXPORT_SYMBOL drivers/memstick/core/memstick 0x29f081dc memstick_alloc_host -EXPORT_SYMBOL drivers/memstick/core/memstick 0x4fa19d1f memstick_detect_change -EXPORT_SYMBOL drivers/memstick/core/memstick 0x4fc78c8b memstick_resume_host -EXPORT_SYMBOL drivers/memstick/core/memstick 0x789ea49e memstick_unregister_driver -EXPORT_SYMBOL drivers/memstick/core/memstick 0x84169f43 memstick_free_host -EXPORT_SYMBOL drivers/memstick/core/memstick 0x8e7c5a01 memstick_register_driver -EXPORT_SYMBOL drivers/memstick/core/memstick 0x908ba0cd memstick_new_req -EXPORT_SYMBOL drivers/memstick/core/memstick 0xb6067490 memstick_next_req -EXPORT_SYMBOL drivers/memstick/core/memstick 0xc9e37024 memstick_remove_host -EXPORT_SYMBOL drivers/memstick/core/memstick 0xcb2c2875 memstick_add_host -EXPORT_SYMBOL drivers/memstick/core/memstick 0xfe408175 memstick_suspend_host -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x07de118b mpt_device_driver_register -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0858b2fe mpt_register -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1dd12812 mpt_put_msg_frame_hi_pri -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2c25f077 mpt_suspend -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x445015ff mpt_verify_adapter -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x473e3491 mpt_findImVolumes +EXPORT_SYMBOL drivers/memstick/core/memstick 0x291f62cd memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x3bab07a4 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x625d8502 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7051d3af memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7b2fc9b5 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8742d2f5 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x9e4520ac memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa2abeb33 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa5047739 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa8f909ef memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc3792970 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xcfc59412 memstick_add_host +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0049c583 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x005e8498 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0737ef06 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x088a1217 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x09b88cbf mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x143eb92f mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1b3fe020 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1ee562b6 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2918aa04 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3587c0ef mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x37d06751 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3e46dfa9 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3fb38bb9 mpt_verify_adapter EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x579e5ee4 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x53d1dd30 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5bc47b58 mpt_print_ioc_summary EXPORT_SYMBOL drivers/message/fusion/mptbase 0x610b257e mpt_reset_deregister -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x65057096 mpt_get_msg_frame -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x692be0d9 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6401fda3 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x679c5758 mpt_put_msg_frame_hi_pri EXPORT_SYMBOL drivers/message/fusion/mptbase 0x74a0134a mpt_device_driver_deregister -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7d92fb9e mpt_put_msg_frame -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x841fbb15 mpt_alloc_fw_memory -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x84b96aa9 mpt_clear_taskmgmt_in_progress_flag -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x85c9d434 mpt_raid_phys_disk_get_num_paths -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8e19f859 mpt_print_ioc_summary -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9641d697 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x95c175e7 mpt_register EXPORT_SYMBOL drivers/message/fusion/mptbase 0x981efe92 mpt_deregister -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x98209b9f mpt_GetIocState -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9e1b316e mpt_set_taskmgmt_in_progress_flag -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9fb8bcc5 mpt_send_handshake_request -EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa0600821 mpt_reset_register -EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa191ffef mpt_Soft_Hard_ResetHandler -EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa2793c23 mpt_detach -EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa68d2686 mpt_halt_firmware -EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa7d2a98a mpt_free_msg_frame -EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd593d90a mpt_raid_phys_disk_pg1 -EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd94a4f36 mpt_HardResetHandler -EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdc3cd7ac mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x986e9c54 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9f5fdb6f mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xae8d1175 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xafedf4b2 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdc097cd0 mpt_GetIocState EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list -EXPORT_SYMBOL drivers/message/fusion/mptbase 0xde5d59f7 mpt_attach -EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdea6e0b3 mptbase_sas_persist_operation -EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe183dd92 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdf672a9d mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe10d9391 mpt_get_msg_frame EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe6c1e126 mpt_event_deregister -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x07c35c54 mptscsih_raid_id_to_num -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x11004d6d mptscsih_event_process -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1fa7ddca mptscsih_ioc_reset -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1fb573c0 mptscsih_resume -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x23a74458 mptscsih_bios_param -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2981963f mptscsih_change_queue_depth -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2b18636c mptscsih_qcmd -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2f6fbb48 mptscsih_slave_destroy -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3a131b49 mptscsih_io_done -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3de76e41 mptscsih_scandv_complete -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x43873a48 mptscsih_shutdown -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x50adc304 mptscsih_taskmgmt_complete -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x56ac38c9 mptscsih_dev_reset -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5afdb477 mptscsih_bus_reset -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6f7fd34c mptscsih_host_attr_groups -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7370cdae mptscsih_suspend -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7d01adfd mptscsih_host_reset -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x89b6ca89 mptscsih_show_info -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa5de3e63 mptscsih_is_phys_disk -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xafd57026 mptscsih_slave_configure -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb847cf9a mptscsih_get_scsi_lookup -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc15df370 mptscsih_flush_running_cmds -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd7bbd8b3 mptscsih_info -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdc00e341 mptscsih_abort -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe246df28 mptscsih_IssueTaskMgmt -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xed69ce5d mptscsih_taskmgmt_response_code -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfd772e8c mptscsih_remove -EXPORT_SYMBOL drivers/mfd/axp20x 0x6a97f9f3 axp20x_device_probe -EXPORT_SYMBOL drivers/mfd/axp20x 0x7ef4cf0a axp20x_device_remove -EXPORT_SYMBOL drivers/mfd/axp20x 0xea5143ec axp20x_match_device -EXPORT_SYMBOL drivers/mfd/dln2 0x680b2ba9 dln2_unregister_event_cb -EXPORT_SYMBOL drivers/mfd/dln2 0x765f8447 dln2_register_event_cb -EXPORT_SYMBOL drivers/mfd/dln2 0xc5b83db4 dln2_transfer -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x050b16d9 mc13xxx_get_flags -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x196f3d84 mc13xxx_lock -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x408ed739 mc13xxx_irq_unmask -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x610065f3 mc13xxx_reg_write -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x67474412 mc13xxx_irq_status -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x6ebf70ee mc13xxx_reg_read -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x88338523 mc13xxx_irq_mask -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8f73f055 mc13xxx_unlock -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x948413ae mc13xxx_irq_request -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc0107bf7 mc13xxx_irq_free -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xeaa303ba mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe8f2e375 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe912df9b mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xeb9d9973 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfa6e617f mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0306696b mptscsih_host_attr_groups +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x05d53a9a mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0dcf0e0b mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x253fd232 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2bd8da43 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2e214233 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x31500e81 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x398f82f4 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3a3ea664 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3aaca54f mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3bbf3e11 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5d51bd75 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6020fa79 mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x75585f48 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7eafcc5d mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8bc7d5af mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x90993b70 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x91cba619 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x937a2020 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x94e605ef mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb1fae267 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc5636364 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd4b28bfd mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd6ac39bf mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf711585a mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfb5ddd52 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfd942373 mptscsih_abort +EXPORT_SYMBOL drivers/mfd/axp20x 0x3abbf966 axp20x_device_probe +EXPORT_SYMBOL drivers/mfd/axp20x 0x60bdc749 axp20x_device_remove +EXPORT_SYMBOL drivers/mfd/axp20x 0xb59ba403 axp20x_match_device +EXPORT_SYMBOL drivers/mfd/dln2 0x43fa4a75 dln2_transfer +EXPORT_SYMBOL drivers/mfd/dln2 0x4b110cbb dln2_unregister_event_cb +EXPORT_SYMBOL drivers/mfd/dln2 0x812c86fe dln2_register_event_cb +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0d85f8fb mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x1bfe8852 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x3f712f0f mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x916b1136 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9eea24c5 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa65f4b48 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa919fa54 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc1eb6bac mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xccc0d2a3 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xda90ea52 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xf6f62333 mc13xxx_irq_request EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 @@ -2321,205 +2321,205 @@ EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value -EXPORT_SYMBOL drivers/mfd/wm8994 0x58b368f4 wm8994_irq_exit -EXPORT_SYMBOL drivers/mfd/wm8994 0x5954a5e2 wm1811_regmap_config -EXPORT_SYMBOL drivers/mfd/wm8994 0xb28bab11 wm8994_base_regmap_config -EXPORT_SYMBOL drivers/mfd/wm8994 0xc636a7cf wm8958_regmap_config -EXPORT_SYMBOL drivers/mfd/wm8994 0xcdcf4555 wm8994_irq_init -EXPORT_SYMBOL drivers/mfd/wm8994 0xf40c1c56 wm8994_regmap_config -EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x5038b68f ad_dpot_remove -EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x76b992cd ad_dpot_probe +EXPORT_SYMBOL drivers/mfd/wm8994 0x29175e85 wm1811_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x844fe731 wm8994_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x951ddb85 wm8994_base_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0xb6755ca8 wm8958_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0xc321c950 wm8994_irq_exit +EXPORT_SYMBOL drivers/mfd/wm8994 0xfac0dafd wm8994_irq_init +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x22c7d1fb ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xa57feff3 ad_dpot_probe EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x5bafa76e altera_init -EXPORT_SYMBOL drivers/misc/c2port/core 0xc9e89cb4 c2port_device_unregister -EXPORT_SYMBOL drivers/misc/c2port/core 0xd882b9b2 c2port_device_register -EXPORT_SYMBOL drivers/misc/tifm_core 0x05ae8201 tifm_free_device -EXPORT_SYMBOL drivers/misc/tifm_core 0x0e35c7bf tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/c2port/core 0x2f7cf5fc c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0xeca9c691 c2port_device_unregister EXPORT_SYMBOL drivers/misc/tifm_core 0x0ffb277f tifm_queue_work -EXPORT_SYMBOL drivers/misc/tifm_core 0x1f0ba20d tifm_map_sg -EXPORT_SYMBOL drivers/misc/tifm_core 0x24d10cf0 tifm_remove_adapter -EXPORT_SYMBOL drivers/misc/tifm_core 0x29278c95 tifm_unmap_sg -EXPORT_SYMBOL drivers/misc/tifm_core 0x7cdccc92 tifm_free_adapter -EXPORT_SYMBOL drivers/misc/tifm_core 0x829fb2ff tifm_eject -EXPORT_SYMBOL drivers/misc/tifm_core 0x8960738b tifm_alloc_adapter -EXPORT_SYMBOL drivers/misc/tifm_core 0xab87955d tifm_alloc_device -EXPORT_SYMBOL drivers/misc/tifm_core 0xb455e485 tifm_register_driver -EXPORT_SYMBOL drivers/misc/tifm_core 0xf4ec3a92 tifm_add_adapter -EXPORT_SYMBOL drivers/misc/tifm_core 0xfc6e486c tifm_has_ms_pif -EXPORT_SYMBOL drivers/mmc/host/cqhci 0x6adcba05 cqhci_pltfm_init -EXPORT_SYMBOL drivers/mmc/host/cqhci 0x79cc3f04 cqhci_irq -EXPORT_SYMBOL drivers/mmc/host/cqhci 0xa0b30c89 cqhci_deactivate -EXPORT_SYMBOL drivers/mmc/host/cqhci 0xa8dc9ba8 cqhci_init -EXPORT_SYMBOL drivers/mmc/host/cqhci 0xe5b083ec cqhci_resume -EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x10e40eba dw_mci_runtime_resume -EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x3d7a367f dw_mci_probe -EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x8c3bd7bb dw_mci_remove -EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0xed3e500c dw_mci_runtime_suspend -EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x10b30618 cfi_send_gen_cmd -EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x2dd5892d cfi_build_cmd_addr -EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x423690d0 cfi_merge_status -EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x61b6709c cfi_build_cmd -EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x9e96563d cfi_varsize_frob -EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xb886c140 cfi_read_pri -EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xfc22257c cfi_fixup +EXPORT_SYMBOL drivers/misc/tifm_core 0x13131e49 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x25ef7ffa tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x2a2b2fb2 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x2c8665f1 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x2d50af1e tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x56949a97 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x57cf2de7 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x95c6ca2c tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xc9207a4e tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xed1b7044 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xfaf61916 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xfeaf3ede tifm_eject +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x1d5458d2 cqhci_deactivate +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x21e80112 cqhci_resume +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x57393ad8 cqhci_pltfm_init +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x6236b7ae cqhci_init +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x7e6c594c cqhci_irq +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x117c1b6e dw_mci_remove +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x196c92f0 dw_mci_runtime_resume +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x3c92bb9a dw_mci_runtime_suspend +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x8a66fac9 dw_mci_probe +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x12b13ca5 cfi_send_gen_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x245c6188 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x36fb3ff9 cfi_merge_status +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x90382395 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xc2cc0d96 cfi_build_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xed58fa7e cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xfb893080 cfi_build_cmd_addr EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xff9fa623 cfi_udelay -EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x0440d308 register_mtd_chip_driver -EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x4c7c2af8 unregister_mtd_chip_driver -EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xe5c9d13a map_destroy -EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xf0c94c00 do_map_probe -EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xa6b1ec06 mtd_do_chip_probe -EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xf4d507d3 lpddr_cmdset -EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x651d0504 simple_map_init -EXPORT_SYMBOL drivers/mtd/mtd 0xa3502491 mtd_concat_destroy -EXPORT_SYMBOL drivers/mtd/mtd 0xb172fd1e mtd_concat_create -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x00b9bb1f nand_ecc_put_on_host_hw_engine -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x1824dac2 nand_ecc_get_on_host_hw_engine -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x20938fa4 nand_ecc_get_on_die_hw_engine -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x41490a3f nand_ecc_register_on_host_hw_engine -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x436b2c8c nand_ecc_sw_hamming_init_ctx -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x5d2e378a nand_ecc_cleanup_ctx -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x66652a1d nand_ecc_sw_bch_get_engine -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x69af5afa nand_ecc_unregister_on_host_hw_engine -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x6f09dc01 nand_ecc_sw_bch_correct -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x71b070f7 nand_ecc_sw_bch_cleanup_ctx -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x75a81c96 nand_ecc_sw_hamming_calculate -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x83e2de7a nand_ecc_prepare_io_req -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x99f9a6f1 nand_ecc_is_strong_enough -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x9ffdd4b5 nand_ecc_get_sw_engine -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xa433c937 nand_ecc_finish_io_req -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xa81e73a9 nand_ecc_sw_hamming_correct -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xac3f8903 nand_ecc_init_ctx -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xb79e3270 of_get_nand_ecc_user_config -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xc8ca5fe5 nand_ecc_sw_hamming_get_engine -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xcc3deac7 nand_ecc_sw_hamming_cleanup_ctx -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xe131b064 nand_ecc_sw_bch_init_ctx -EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xe13f3cae nand_ecc_sw_bch_calculate +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x14a6eb99 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x72bf826c register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x9d6b6bde unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xfbfd37c0 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xb3f16d39 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xdad771f3 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xc0858309 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x102cb09a mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtd 0xd457a9c4 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x04891a79 nand_ecc_put_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x1712336b nand_ecc_sw_hamming_init_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x1799edb0 nand_ecc_sw_bch_correct +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x22f34fdf nand_ecc_cleanup_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x296d3cda nand_ecc_get_sw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x2d965ed7 nand_ecc_sw_hamming_calculate +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x3188f33b nand_ecc_register_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x44e8a4fa nand_ecc_sw_hamming_correct +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x45f6caa5 of_get_nand_ecc_user_config +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x48c3f759 nand_ecc_sw_hamming_cleanup_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x4e651c11 nand_ecc_get_on_die_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x9095d17a nand_ecc_is_strong_enough +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x9fafa104 nand_ecc_sw_bch_cleanup_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xa3416b52 nand_ecc_get_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xa57dd342 nand_ecc_finish_io_req +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xa79d1374 nand_ecc_prepare_io_req +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xd25a07a9 nand_ecc_sw_bch_get_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xd7152f10 nand_ecc_sw_bch_init_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xdab66350 nand_ecc_init_ctx EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xe6db989b ecc_sw_hamming_correct +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xec3cc98f nand_ecc_unregister_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xf8ad2a49 nand_ecc_sw_bch_calculate +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xfe9d0e32 nand_ecc_sw_hamming_get_engine EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xff4351b0 ecc_sw_hamming_calculate -EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0x0af73539 onenand_addr -EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0xe900bbb9 flexonenand_region +EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0x40281a11 flexonenand_region +EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0xc19b99e7 onenand_addr EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x30db096f denali_calc_ecc_bytes -EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x70c7420b denali_init -EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0xaaa5105a denali_remove -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x02db158c rawnand_sw_hamming_correct -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x030d6cbd rawnand_sw_bch_cleanup -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x040dfc4b nand_scan_with_ids -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x1c28d2e8 rawnand_dt_parse_gpio_cs -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x20888696 rawnand_sw_hamming_calculate -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x3464ca69 rawnand_sw_bch_correct -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x3d1be240 rawnand_sw_hamming_init -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x43ca45c7 nand_write_page_raw -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x4f6f80b8 nand_monolithic_write_page_raw -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x674f6353 nand_read_oob_std -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x771dc74f nand_monolithic_read_page_raw -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x7c4f377a rawnand_sw_bch_init -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x7ff163af rawnand_sw_hamming_cleanup -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x8a38661c nand_get_set_features_notsupp -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x8b9987e4 nand_write_oob_std +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x44cdd97f denali_remove +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x796d9ff3 denali_init +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x0fa55dc3 nand_get_set_features_notsupp +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x14ca0dd9 rawnand_dt_parse_gpio_cs +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x314a676d rawnand_sw_hamming_init +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x4188b8c9 nand_read_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x4a0dfce4 nand_monolithic_write_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x550cfc9b nand_monolithic_read_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x56b683dd nand_write_oob_std +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x5976652d nand_create_bbt +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x5a2c7b4a nand_scan_with_ids +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x79c3f1e4 rawnand_sw_hamming_correct EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x8ecbb3b8 nand_check_erased_ecc_chunk -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x94102820 nand_create_bbt -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xcef14a1f nand_read_page_raw -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x0791c83b arc_proto_default -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x10f3969c arcnet_send_packet -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1e66738e arcnet_unregister_proto -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x22e89ff0 arcnet_open +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xb2104ba3 rawnand_sw_hamming_cleanup +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xb3687db2 nand_read_oob_std +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xb68769ba rawnand_sw_bch_init +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xdc79c198 rawnand_sw_bch_cleanup +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xe720cf18 rawnand_sw_bch_correct +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xf1939a9a nand_write_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xfa30014f rawnand_sw_hamming_calculate +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1422b924 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x28acc7c3 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2c7ad78d arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x54a62382 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5763512f arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6351e966 free_arcdev EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x66e59ae2 arc_proto_map -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8adfc723 arcnet_timeout -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb2ec45e0 arc_raw_proto -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc094bf76 alloc_arcdev -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe35ebde1 arcnet_close -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe64ef041 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x953b614c arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe0148c3a arcnet_close EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf7882d43 free_arcdev -EXPORT_SYMBOL drivers/net/arcnet/com20020 0x60e9616a com20020_check -EXPORT_SYMBOL drivers/net/arcnet/com20020 0xd170c6d8 com20020_found -EXPORT_SYMBOL drivers/net/arcnet/com20020 0xe1d82a95 com20020_netdev_ops -EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0x9c429ee9 ctucan_probe_common -EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0xbfaa9d12 ctucan_resume -EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0xcb3f5bf8 ctucan_suspend -EXPORT_SYMBOL drivers/net/can/dev/can-dev 0x41d0f0e7 can_eth_ioctl_hwts -EXPORT_SYMBOL drivers/net/can/dev/can-dev 0xf2eea0c3 can_ethtool_op_get_ts_info_hwts -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x046437be b53_switch_register -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x08f499fc b53_port_event -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x0a60f2c1 b53_fdb_add -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x16af3556 b53_set_mac_eee -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x22f28593 b53_mirror_add -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x2e31bc2d b53_configure_vlan -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x34f662d4 b53_vlan_filtering -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x36f6b189 b53_get_ethtool_stats -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x4ddd7f04 b53_br_fast_age -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x58e41554 b53_eee_enable_set -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x606d9593 b53_imp_vlan_setup -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x6c90340e b53_vlan_add -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x6cb52d9b b53_br_leave -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7471ad6a b53_vlan_del -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x788bab59 b53_switch_detect -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x818d6a86 b53_mdb_del -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x8ce54f96 b53_fdb_dump -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x8f68d335 b53_get_sset_count -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x919ced3c b53_get_tag_protocol -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x945e333b b53_brcm_hdr_setup -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x94dec679 b53_br_set_stp_state -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x95da30d9 b53_phylink_mac_link_down -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xa3a51cc0 b53_setup_devlink_resources -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xaabae268 b53_phylink_mac_config -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xb088063a b53_get_mac_eee -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xbb5c7f7b b53_get_strings -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xbc2a1328 b53_mirror_del -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xc41fae91 b53_disable_port -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xc6bee298 b53_mdb_add -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xc940ed98 b53_enable_port -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xcc8dea3d b53_br_join -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xd06cf30e b53_switch_alloc -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xeb946534 b53_br_flags_pre -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xec81d156 b53_get_ethtool_phy_stats -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xef48c636 b53_phylink_mac_link_up -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xfa912b7e b53_eee_init -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xfd82e14e b53_br_flags -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xfe615ca4 b53_fdb_del -EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x527c1bd3 b53_serdes_phylink_mac_select_pcs -EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x821cd120 b53_serdes_link_set -EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x99bef690 b53_serdes_init -EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0xb8431c1f b53_serdes_phylink_get_caps -EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x133741ed lan9303_shutdown -EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x9debf480 lan9303_probe -EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0xa0d01671 lan9303_remove +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xef4a06b1 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xef529670 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfdd3faf2 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x3060816c com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x356b9020 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x5003cd43 com20020_check +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0x102cbeda ctucan_resume +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0x379c475c ctucan_suspend +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0xf8a65745 ctucan_probe_common +EXPORT_SYMBOL drivers/net/can/dev/can-dev 0xa93efd2a can_eth_ioctl_hwts +EXPORT_SYMBOL drivers/net/can/dev/can-dev 0xfda593e9 can_ethtool_op_get_ts_info_hwts +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x035fc950 b53_configure_vlan +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x081cf403 b53_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x0ab83abb b53_get_ethtool_stats +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x0b0c9663 b53_vlan_filtering +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x0c33a379 b53_get_mac_eee +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x11a35844 b53_get_tag_protocol +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x1b41298f b53_phylink_mac_config +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x205c207b b53_fdb_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x213af62e b53_vlan_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x2fc5f26f b53_mdb_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x3101a268 b53_imp_vlan_setup +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x427347ef b53_br_fast_age +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x4d196584 b53_switch_register +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x52b8c71c b53_br_join +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x5552f891 b53_disable_port +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x583dab5a b53_vlan_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x5b20fa69 b53_br_flags_pre +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x750aeab9 b53_get_ethtool_phy_stats +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x76825228 b53_get_strings +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7a07b070 b53_get_sset_count +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7d3410ef b53_brcm_hdr_setup +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7d6a7e21 b53_phylink_mac_link_up +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x82dda60d b53_enable_port +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x9b9675bb b53_br_set_stp_state +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x9c050732 b53_fdb_dump +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xbb970987 b53_phylink_mac_link_down +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xbbc20e15 b53_set_mac_eee +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xbd266bf5 b53_switch_detect +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xc4e42d2d b53_setup_devlink_resources +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xc77c3761 b53_eee_init +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xcb631741 b53_mirror_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xd0b45b54 b53_mirror_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xd23c4596 b53_fdb_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xd309f709 b53_eee_enable_set +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xd6bb7ae4 b53_port_event +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xd8273b0e b53_mdb_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xdf64ba08 b53_br_flags +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xfc21f573 b53_br_leave +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x0f979241 b53_serdes_init +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0xb3ca062e b53_serdes_phylink_get_caps +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0xd821a7bd b53_serdes_link_set +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0xdfb51474 b53_serdes_phylink_mac_select_pcs +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x2298560b lan9303_shutdown EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0xada83f40 lan9303_register_set -EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_switch 0x60a6798c ksz_switch_remove -EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_switch 0x8ec4b6de ksz_switch_register -EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_switch 0xa8aef927 ksz_switch_alloc -EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x7853169d vsc73xx_remove -EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x8a224113 vsc73xx_probe +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0xcd21bf1f lan9303_remove +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0xf1538053 lan9303_probe +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_switch 0x40fe815a ksz_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_switch 0x4d8f4712 ksz_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_switch 0xbeed2b66 ksz_switch_remove +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x36d096c2 vsc73xx_probe EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x99d242fe vsc73xx_is_addr_valid -EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x9bd76516 vsc73xx_shutdown -EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x10026f4b xrs700x_switch_shutdown -EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x1e8f4ee4 xrs700x_switch_alloc -EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x67e8f064 xrs700x_switch_register +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0xc96990a2 vsc73xx_shutdown +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0xf4938afa vsc73xx_remove +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x2ed30b93 xrs700x_switch_register EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x83b7b667 xrs7003f_info EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x8972bf7e xrs7004f_info -EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x8b24b24c xrs700x_switch_remove EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0xb25facfa xrs7003e_info EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0xb89aa5e3 xrs7004e_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0xd4c73f00 xrs700x_switch_remove +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0xdd282384 xrs700x_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0xf03fa5c5 xrs700x_switch_shutdown EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1ed40899 NS8390_init -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x38b9bf88 __alloc_ei_netdev -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x54dccba8 ei_open -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x57994186 ei_close -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x5b977bce ei_set_multicast_list -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x763faa93 ei_tx_timeout -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa67777e3 ei_netdev_ops -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xce7b3730 ei_start_xmit -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xea2156b8 ei_get_stats -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xfe4db372 ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x189ce22d ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x19dc2265 ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1a480691 NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x2781a928 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x28895313 ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x3f6df882 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x4a4bf821 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x5818fa61 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x595dca10 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x808ed9a5 ei_netdev_ops EXPORT_SYMBOL drivers/net/ethernet/aquantia/atlantic/atlantic 0x9b089d76 aq_xdp_locking_key -EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnxt/bnxt_en 0x5e4f8e9e bnxt_register_dev -EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnxt/bnxt_en 0x76e3bf3a bnxt_unregister_dev -EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnxt/bnxt_en 0xac151456 bnxt_register_async_events -EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnxt/bnxt_en 0xacaf1389 bnxt_send_msg -EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x5cd7e874 cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnxt/bnxt_en 0x43afdbce bnxt_register_dev +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnxt/bnxt_en 0x9cf4895f bnxt_unregister_dev +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnxt/bnxt_en 0xb14de2f6 bnxt_register_async_events +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnxt/bnxt_en 0xec917e4a bnxt_send_msg +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x4d2c5508 cnic_register_driver EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver -EXPORT_SYMBOL drivers/net/ethernet/cavium/common/cavium_ptp 0x8e3f24e7 cavium_ptp_put -EXPORT_SYMBOL drivers/net/ethernet/cavium/common/cavium_ptp 0xc27de487 cavium_ptp_get +EXPORT_SYMBOL drivers/net/ethernet/cavium/common/cavium_ptp 0x99e44825 cavium_ptp_put +EXPORT_SYMBOL drivers/net/ethernet/cavium/common/cavium_ptp 0xbbb6f472 cavium_ptp_get EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x0d8be5fd bgx_lmac_rx_tx_enable EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x34eeb48a bgx_set_dmac_cam_filter EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x42264715 bgx_get_lmac_count @@ -2537,365 +2537,365 @@ EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0xff987a02 bgx_set_xcast_mode EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_xcv 0x13912e4b xcv_init_hw EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_xcv 0x4f739dc0 xcv_setup_link -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x074acc36 dev2t3cdev -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0e23b34a cxgb3_free_atid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x25caa53c cxgb3_insert_tid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x34d4ad78 t3_l2t_send_slow -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3f6b19f7 cxgb3_remove_tid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x54d4d129 cxgb3_register_client -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6192a3d4 t3_l2t_get -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x67db1152 t3_l2e_free -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6be35c58 cxgb3_queue_tid_release -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x712ef5cc t3_l2t_send_event -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x8acc1af6 t3_register_cpl_handler -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb8a73d6e cxgb3_alloc_atid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xbf16b046 cxgb3_unregister_client -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc171f110 cxgb3_ofld_send -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc7b6cdd8 cxgb3_alloc_stid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xfb5f0580 cxgb3_free_stid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x02236c08 cxgb4_alloc_atid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x03cd323b cxgb4_immdata_send -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x05fdb5cd cxgb4_write_partial_sgl -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x06805992 cxgb4_write_sgl -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x06b51843 cxgb4_reclaim_completed_tx -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0c66b5de cxgb4_l2t_alloc_switching -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0c9aebd8 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0e3df92a t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x131d2963 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x35d93d24 dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x4cbf5ead t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6dc3588d cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x8dd4dc43 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x93d227f5 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x98463620 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9df3de71 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa736208d t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xbe6e4343 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd0846c7a t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xdc3a688c cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe5627319 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xebb4c1a7 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf30358e3 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x01d8e63b cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0258bcfd cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x04689619 cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0b7761ec cxgb4_get_srq_entry EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0f1a5528 cxgb4_unregister_uld -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x11828317 cxgb4_get_tcp_stats -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x136ce15c cxgb4_remove_server -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x151b2bd5 cxgb4_dbfifo_count -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1c3ac30b cxgb4_clip_get -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2278b48a cxgb4_smt_alloc_switching -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x23eb114a cxgb4_create_server6 -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x27fa06eb cxgb4_check_l2t_valid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2b78e6c5 cxgb4_pktgl_to_skb -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3115d574 cxgb4_update_root_dev_clip -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x32e54622 cxgb4_sync_txq_pidx -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x338a9f50 t4_cleanup_clip_tbl -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x34bb1cfa cxgb4_port_chan -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x34f0dd8c cxgb4_remove_tid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x430792b1 cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x12c76045 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1370d37c cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x14375f82 cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x181fe752 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1873ce46 cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x238c1069 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x277164fd cxgb4_inline_tx_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x28657862 cxgb4_immdata_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2c324da2 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3bab29d7 cxgb4_write_sgl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x41092087 cxgb4_reclaim_completed_tx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4a409e65 cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4bbf64b1 cxgb4_free_stid EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07 cxgb4_best_aligned_mtu -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50f5f89c cxgb4_remove_server_filter -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x51e86fcb cxgb4_read_tpte -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x56b4555b cxgb4_select_ntuple -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5cbe2806 cxgb4_flush_eq_cache -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x664726fc cxgb4_get_srq_entry -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6decfdb4 cxgb4_map_skb -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7729c466 cxgb4_free_stid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x782c6cec cxgb4_bar2_sge_qregs -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7d417b41 cxgb4_ring_tx_db -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7f6ceda0 cxgb4_read_sge_timestamp -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fa1f547 cxgb4_create_server -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x90d91fe6 cxgb4_alloc_stid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x914309e0 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x57d503bb cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x65e47c10 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x70590f05 cxgb4_update_root_dev_clip +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x742c4cc0 cxgb4_port_e2cchan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x848e83f4 cxgb4_crypto_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x84f47694 t4_cleanup_clip_tbl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x85221eb9 cxgb4_read_tpte +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x91ffcac4 cxgb4_clip_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x999352e7 cxgb4_remove_server EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9b23de9f cxgb4_smt_release -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa0a7bccc cxgb4_l2t_release -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb47c53d3 cxgb4_alloc_sftid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb7083831 cxgb4_free_atid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbd3d5710 cxgb4_crypto_send -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xce49f6da cxgb4_l2t_get -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd25b0ed8 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9e75da80 cxgb4_l2t_alloc_switching +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa4f6c595 cxgb4_map_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa7dde6ec cxgb4_check_l2t_valid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb043e114 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb343042f cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb4bc5f63 cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb6f7b534 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb75f1160 cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc73824f3 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc78d5460 cxgb4_smt_alloc_switching +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc7c1241a cxgb4_read_sge_timestamp EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd92209cd cxgb4_port_viid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe4f6050b cxgb4_ofld_send -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe5a7748a cxgb4_clip_release -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xea5e1fb0 cxgb4_inline_tx_skb -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf75424b6 cxgb4_port_e2cchan -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfb873c8f cxgb4_l2t_send -EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x0dbbe4df cxgb_find_route6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd967cf53 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe111dc59 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe1ebb362 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe28b7b04 cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xeeced433 cxgb4_ring_tx_db +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xeed07c5c cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf050b6a6 cxgb4_write_partial_sgl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf334a74a cxgb4_clip_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf8267fa8 cxgb4_bar2_sge_qregs EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1bdaafe1 cxgbi_tagmask_set +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x23cda539 cxgb_find_route EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x255ab30f cxgb_get_4tuple -EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x299d5895 cxgbi_ppm_ppods_reserve -EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x36158465 cxgbi_ppm_ppod_release -EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x455d1488 cxgbi_ppm_release -EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x587b7f6b cxgbi_ppm_make_ppod_hdr -EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x72c3dc17 cxgbi_ppm_init -EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xd6bff259 cxgb_find_route -EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x2c8b5914 enic_api_devcmd_proxy_by_index -EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x60920871 vnic_dev_get_res -EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xb20d1527 vnic_dev_get_pdev -EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xb682bd69 vnic_dev_register -EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xcd0f287b vnic_dev_get_res_count -EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xede04064 vnic_dev_unregister -EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x203f3896 be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x3093d60c cxgb_find_route6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x31cf0189 cxgbi_ppm_ppods_reserve +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x4c6fcac8 cxgbi_ppm_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x9e0e0eee cxgbi_ppm_make_ppod_hdr +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xb5c11d95 cxgbi_ppm_ppod_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xed92d4ef cxgbi_ppm_release +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x0553bbb8 vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x403b7552 vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x8dfc6e60 vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xa1c7e752 vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xa465bf1d vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xbf3435d4 enic_api_devcmd_proxy_by_index EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x4e2e10d2 be_roce_mcc_cmd -EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x9a37cd99 be_roce_unregister_driver -EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x5682d8d1 fun_dev_enable -EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0xbcf900c9 fun_release_irqs -EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0xc091d2f1 fun_reserve_irqs -EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0xf00bb777 fun_dev_disable -EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0x8ce062b3 iavf_register_client -EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0x8e41381a iavf_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x5245179e be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x9b0441f0 be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x0bc8f1d9 fun_release_irqs +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x768f974d fun_dev_disable +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0xbdc62084 fun_reserve_irqs +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0xc8cee1f3 fun_dev_enable +EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0xbd118c1d iavf_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0xbe9a2dbe iavf_register_client EXPORT_SYMBOL drivers/net/ethernet/intel/ice/ice 0x965ff908 ice_xdp_locking_key EXPORT_SYMBOL drivers/net/ethernet/intel/ixgbe/ixgbe 0xbaa35511 ixgbe_xdp_locking_key -EXPORT_SYMBOL drivers/net/ethernet/marvell/prestera/prestera 0x164209ec prestera_device_unregister -EXPORT_SYMBOL drivers/net/ethernet/marvell/prestera/prestera 0x25da3c16 prestera_device_register -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0026e07b mlx4_SET_PORT_fcs_check -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00dea726 mlx4_SET_PORT_qpn_calc -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x03dbcba3 mlx4_ALLOCATE_VPP_get -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x08399bfc mlx4_get_slave_pkey_gid_tbl_len -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x29d9cd1f mlx4_get_eqs_per_port -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ce59557 mlx4_get_slave_node_guid -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f4d5ed6 mlx4_is_eq_vector_valid -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x342a583b mlx4_get_slave_port_state -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x37830d66 mlx4_gen_port_state_change_eqe -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x39421ddb mlx4_assign_eq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3afb171e get_phv_bit -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x40940cbe mlx4_ALLOCATE_VPP_set -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x65fa49b6 set_and_calc_slave_port_state -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6644a634 set_phv_bit -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x66aad949 mlx4_SET_MCAST_FLTR -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f773b03 mlx4_get_roce_gid_from_slave -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6fbe38bc mlx4_SET_PORT_user_mtu -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x70f47318 mlx4_get_slave_from_roce_gid -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x741fbc5d mlx4_query_diag_counters -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7597f366 mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/marvell/prestera/prestera 0xbf1c9d18 prestera_device_register +EXPORT_SYMBOL drivers/net/ethernet/marvell/prestera/prestera 0xe746b7f2 prestera_device_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x024b5534 mlx4_ALLOCATE_VPP_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0b0094ee mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x118b19dc mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x11d11fa3 mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x26ca3b89 mlx4_SET_PORT_user_mtu +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x271d3b57 mlx4_max_tc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x36494b88 mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x489ed469 mlx4_tunnel_steer_add +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49c516ae mlx4_is_eq_shared +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4c58d173 mlx4_query_diag_counters +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f7b9315 set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x512edde7 mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x544a5103 mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x56d77c75 mlx4_is_eq_vector_valid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x59b6bec2 mlx4_get_cpu_rmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7614d5f2 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7f473d79 mlx4_is_slave_active EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fdde0b4 mlx4_handle_eth_header_mcast_prio -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x81a03721 mlx4_eq_get_irq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x86e72a60 mlx4_SET_PORT_SCHEDULER -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9abf34c7 mlx4_SET_PORT_PRIO2TC -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9d1e3352 mlx4_max_tc -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9f503a3f mlx4_gen_slaves_port_mgt_ev -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb256d414 mlx4_SET_VPORT_QOS_get -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb40364a0 mlx4_SET_PORT_user_mac -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4e11b12 mlx4_test_interrupt -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbac5448a mlx4_get_module_info -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbbcde386 mlx4_SET_PORT_BEACON -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc239a522 mlx4_get_cpu_rmap -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc8bfdb86 mlx4_put_slave_node_guid -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcbab0bc4 mlx4_SET_VPORT_QOS_set -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xccf73a8a mlx4_is_eq_shared -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcda129b9 mlx4_SET_PORT_VXLAN -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcdd392ef mlx4_get_parav_qkey -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd0e17e70 mlx4_tunnel_steer_add -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd34c497c mlx4_get_is_vlan_offload_disabled -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe08758c8 mlx4_release_eq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe5cf364f mlx4_test_async -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xed3ac5fc mlx4_is_slave_active -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee74c64b mlx4_SET_PORT_general -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf0498510 mlx4_sync_pkey_table -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd062dff mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x84e1a1d9 mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x85bfda21 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x898d0dec mlx4_get_is_vlan_offload_disabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8b4be7fa mlx4_SET_VPORT_QOS_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e95ccd9 set_phv_bit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x925a66c4 mlx4_ALLOCATE_VPP_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9eda1459 mlx4_SET_PORT_fcs_check +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa1e998c4 mlx4_SET_VPORT_QOS_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa9e9bcd9 mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xac9700f7 mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xae19b14b mlx4_test_interrupt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb207111b mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb6f21a0f mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb8b0034a mlx4_SET_PORT_BEACON +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb97a5f07 mlx4_get_eqs_per_port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc3105ebd mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd0cab193 mlx4_test_async +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd15c40c1 mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd15e0f24 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdc1541ff mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdd2f8d8e mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2d09afc mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe576294e mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe9bfe2a2 mlx4_SET_PORT_user_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xedff7028 mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee5d650f mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf554c09b get_phv_bit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00150456 mlx5_core_destroy_mkey EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x02ad649e __traceiter_mlx5_fs_add_ft -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x036753c4 mlx5_qp_debugfs_cleanup -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x041f2844 mlx5_core_dealloc_pd -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x049387f8 mlx5_eswitch_get_vport_metadata_for_set -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x049f46b7 mlx5_lag_get_slave_port -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x077dc9c5 mlx5_lag_is_master -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x089f6186 mlx5_core_modify_rq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0bbf10ea mlx5_core_detach_mcg -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0c210cc5 mlx5_core_get_terminate_scatter_list_mkey -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0ca51518 mlx5_modify_header_alloc -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x11c99af3 mlx5_vf_put_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x063e602b mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x06cd6d39 mlx5_eswitch_get_vport_metadata_for_match +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x07950077 mlx5_rl_remove_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x09cdcf55 mlx5_eq_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x118d23ef mlx5_eswitch_get_proto_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x12117cf9 mlx5_qp_debugfs_init EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x12135c1c __tracepoint_mlx5_fs_add_fg -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x130f9de4 mlx5_vector2eqn -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x147e987f mlx5_get_flow_namespace -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1492c4d8 mlx5_core_create_cq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1741b110 mlx5_modify_header_dealloc -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x175d2001 mlx5_lag_get_roce_netdev -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x17b59bd9 __traceiter_mlx5_fs_set_fte -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x18aaeb03 mlx5_core_create_rqt -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x18b6a47d mlx5_add_flow_rules -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1b43aa77 mlx5_core_attach_mcg -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1c16d8b4 mlx5_cmd_exec_polling -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1c3716b0 mlx5_eq_update_ci -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1df9b0f4 mlx5_core_alloc_pd -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1e460806 mlx5_vf_get_core_dev -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2028d457 mlx5_cmd_check -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x21154346 mlx5_comp_irq_get_affinity_mask -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x22eea7c6 mlx5_eq_create_generic +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1519b611 mlx5_vf_get_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1536d0fa mlx5_eq_update_ci +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x157b99b6 mlx5_blocking_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x17c3e9bb mlx5_modify_header_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a1afcb0 mlx5_comp_vectors_count +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1ba4d0db mlx5_rl_remove_rate_raw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1d219977 mlx5_fs_remove_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1e3d1928 mlx5_nic_vport_disable_roce +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x225527e0 mlx5_fpga_sbu_conn_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x22eb0df2 mlx5_sriov_blocking_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x23560086 mlx5_alloc_bfreg EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x261a8a16 mlx5_create_flow_table -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x263285af mlx5_notifier_register -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x27793545 mlx5_eswitch_get_encap_mode EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2ca9ea30 __traceiter_mlx5_fs_del_fg -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2ffabb23 mlx5_lag_is_sriov -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3031221d mlx5_fs_remove_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2dc6c15d mlx5_lag_is_roce +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2ec92cad mlx5_core_modify_sq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3031f50d mlx5_rsc_dump_cmd_create EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x31f8a77b mlx5_destroy_flow_table -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x33bed385 mlx5_eswitch_get_proto_dev -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x344b4274 mlx5_lag_get_num_ports +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x34021e54 mlx5_fpga_get_sbu_caps EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3475821f __SCK__tp_func_mlx5_fs_add_ft -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3485c9f8 mlx5_fc_query -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x35716617 mlx5_fpga_mem_read -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x36ac232e mlx5_core_dealloc_transport_domain -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x374cc3b3 mlx5_cmd_exec_cb -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x38ec02fd mlx5_eswitch_vport_rep -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39043bfe mlx5_sriov_blocking_notifier_unregister -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39b151d5 mlx5_fpga_sbu_conn_sendmsg -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3c4b6b35 mlx5_core_modify_cq_moderation -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3eb65cb4 mlx5_sriov_blocking_notifier_register -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3fbb364d mlx5_get_fdb_sub_ns -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3ffcf020 mlx5_core_create_psv -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3ffde4e7 mlx5_create_cq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4232d6da mlx5_get_uars_page -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x44addad2 mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x373ebf97 mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3a891656 mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3b39b2d7 mlx5_eq_disable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e0576df mlx5_core_create_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4343ce56 mlx5_rdma_rn_get_params +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4464a95e mlx5_rsc_dump_next +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4502e6d2 mlx5_cmd_do EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x45b52e00 __tracepoint_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x47f936d9 mlx5_eswitch_add_send_to_vport_rule EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x48c36b0d mlx5_create_flow_group +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x48d8e5c8 mlx5_lag_get_roce_netdev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x497dabfa mlx5_rl_add_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4c5e8bb1 mlx5_lag_get_num_ports EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d5f5c07 __SCK__tp_func_mlx5_fs_del_rule EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d62e046 __tracepoint_mlx5_fw -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4e4182f3 mlx5_cmd_create_vport_lag -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ff26135 mlx5_eswitch_uplink_get_proto_dev -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53af9fa1 mlx5_rl_remove_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4dcec8b3 mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ea27ce3 __traceiter_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x527baef4 mlx5_eswitch_reg_c1_loopback_enabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x529b9c51 mlx5_fc_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x52ce9def mlx5_eq_destroy_generic +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x54ce4f1c mlx5_eswitch_register_vport_reps EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x559ac38d __SCK__tp_func_mlx5_fs_add_fg -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x56b0d653 mlx5_nic_vport_disable_roce -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5983c787 mlx5_fpga_sbu_conn_create -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x59d0fcf7 mlx5_lag_is_active -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5abda860 mlx5_comp_vectors_count -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5b938c5f mlx5_packet_reformat_dealloc -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5caf2ea6 mlx5_rsc_dump_next -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5db3888a mlx5_mpfs_add_mac -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5e080b62 __traceiter_mlx5_fs_del_fte -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5f1abf6e mlx5_eswitch_get_core_dev -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5fc341f7 mlx5_eq_get_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x57c62e7f mlx5_fpga_sbu_conn_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5a0513a5 mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5b43cb4f mlx5_core_get_terminate_scatter_list_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5e5190e3 mlx5_fc_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x601b6e98 mlx5_core_destroy_rqt EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x61492bb7 mlx5_rl_are_equal -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x619873d6 mlx5_qp_debugfs_init -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x61e9e248 mlx5_rdma_rn_get_params -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x62d813e4 mlx5_eswitch_register_vport_reps -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x665ac241 mlx5_rl_is_in_range -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x68297f3b mlx5_eq_notifier_register -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6a6eeac8 mlx5_core_query_mkey -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6a872aa7 mlx5_cmd_do +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x64e20699 mlx5_core_destroy_tir +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x66f5d0db mlx5_get_uars_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x69da44a1 __traceiter_mlx5_fw EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6cd5a182 __tracepoint_mlx5_fs_del_fte -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6deb57ba mlx5_core_modify_sq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6e14113e mlx5_debugfs_get_dev_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ed53b37 mlx5_eswitch_get_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6f34bdfb mlx5_packet_reformat_dealloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x715a61dc mlx5_eswitch_vport_match_metadata_enabled EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7261330b __SCK__tp_func_mlx5_fs_set_fte -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x735841e4 mlx5_lag_mode_is_hash EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x73fc1d8e __tracepoint_mlx5_fs_add_ft -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7617e7b7 mlx5_fs_add_rx_underlay_qpn -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7633ca0e __traceiter_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x757eab5a mlx5_eswitch_uplink_get_proto_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x75ddc7d8 mlx5_core_uplink_netdev_event_replay EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x76790b6d __traceiter_mlx5_fs_add_rule -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a5b5dde mlx5_core_destroy_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x76e81207 mlx5_lag_get_next_peer_mdev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x77d50060 mlx5_cmd_exec_polling +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x79c4e01e mlx5_core_query_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a19572a mlx5_debug_qp_add EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b359a09 __SCK__tp_func_mlx5_fw -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7bbeec28 mlx5_core_destroy_tir -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7c6fd4a9 mlx5_core_create_rq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7d2d39bc mlx5_eq_notifier_unregister -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x83c2d173 mlx5_debug_qp_remove -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87eb3ad7 mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7ca1323f mlx5_core_create_tir +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7d59ff53 mlx5_lag_query_cong_counters +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7eeb3593 mlx5_core_destroy_psv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x803109ca mlx5_fc_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x810ad048 mlx5_core_query_vendor_id +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84d2b09a mlx5_core_modify_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x870782f3 mlx5_add_flow_rules EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x890263a4 mlx5_destroy_flow_group -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x895f9aa4 mlx5_free_bfreg -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x909b64f1 mlx5_lag_is_mpesw -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x91b07f37 mlx5_lag_query_cong_counters -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x93b07c03 mlx5_core_destroy_rqt -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x94ca5767 mlx5_core_destroy_rq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x95a63eb3 mlx5_core_query_vendor_id +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x90777cb3 mlx5_cmd_check +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x953d1812 mlx5_lag_mode_is_hash +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x95819a0f mlx5_packet_reformat_alloc EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9659abc8 mlx5_create_lag_demux_flow_table EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99 mlx5_fc_id -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x98ac86cc mlx5_mpfs_del_mac -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x996650a0 mlx5_eq_destroy_generic -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x99782e25 mlx5_core_destroy_psv -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c188faf mlx5_eq_disable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x97980615 mlx5_core_create_rqt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9a77e7aa mlx5_lag_is_master +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9ae52224 mlx5_rl_add_rate_raw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9b8b800b mlx5_eq_get_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c6968f3 mlx5_qp_debugfs_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9caef6e6 mlx5_core_destroy_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d419cd2 mlx5_fpga_mem_write EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d6135dc __SCK__tp_func_mlx5_fs_del_ft -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f7a8714 mlx5_query_ib_port_oper -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa00796c7 mlx5_eq_enable -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa1d9e9a2 mlx5_rsc_dump_cmd_create -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa2baaa88 mlx5_blocking_notifier_register -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa40e3230 mlx5_cmd_init_async_ctx -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa45f3822 mlx5_alloc_bfreg -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa530a313 mlx5_fpga_mem_write -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa29a535 mlx5_core_create_mkey -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa420dcc mlx5_core_query_rq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab01dc34 mlx5_cmd_cleanup_async_ctx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9e697fa3 mlx5_cmd_destroy_vport_lag +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa03c7a8b mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa11d64c6 mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa5ce4c32 mlx5_get_fdb_sub_ns +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab582598 mlx5_eq_create_generic +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab76855f mlx5_eswitch_unregister_vport_reps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab800a06 mlx5_vector2eqn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xabd9880f mlx5_lag_is_shared_fdb EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xacadbe13 mlx5_del_flow_rules -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xacce6f16 mlx5_core_uplink_netdev_event_replay EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xad6815cd mlx5_rsc_dump_cmd_destroy -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaeba7535 mlx5_eswitch_get_vport_metadata_for_match +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xadadf037 mlx5_msix_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae4f5e7c mlx5_core_modify_cq_moderation EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaf75ec08 mlx5_create_auto_grouped_flow_table -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb13ae9d1 mlx5_blocking_notifier_unregister -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb29e2906 mlx5_core_modify_tis -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb705cb42 mlx5_is_roce_on +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb0156616 mlx5_put_uars_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb059e17f mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb11a2312 mlx5_cmd_cleanup_async_ctx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb1770ed1 mlx5_blocking_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb363a5de mlx5_query_ib_port_oper +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb3c184f6 mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb66c43ba mlx5_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb815ef99 mlx5_fpga_mem_read +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb83b2df9 mlx5_lag_get_slave_port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb97daa61 mlx5_eswitch_get_encap_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb9e6cb99 mlx5_eq_enable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xba3235fe mlx5_notifier_register EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb07ebdf __tracepoint_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb2f6923 mlx5_core_modify_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbd9b9542 mlx5_mpfs_add_mac EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbdd39c15 __traceiter_mlx5_fs_del_rule -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc0006e8d mlx5_fc_destroy -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc02ee265 mlx5_notifier_unregister -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc0b196e0 mlx5_debugfs_get_dev_root -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc2300aab mlx5_fpga_sbu_conn_destroy -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc30303c8 mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbf7b6a3b mlx5_sriov_blocking_notifier_register EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc4655888 mlx5_flow_table_id -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc467a9bd mlx5_eswitch_unregister_vport_reps -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc53d8e66 mlx5_fpga_get_sbu_caps -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc733e251 mlx5_core_alloc_transport_domain -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc92fb97d mlx5_put_uars_page -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xca5be34e mlx5_cmd_destroy_vport_lag -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcdac593d mlx5_fc_create -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xce3e6284 mlx5_eswitch_add_send_to_vport_rule -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xce7a220f mlx5_rl_remove_rate_raw -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcf363bf0 mlx5_core_query_sq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd310931e mlx5_core_roce_gid_set -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd322b74e mlx5_rl_add_rate_raw -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd7bfcb09 mlx5_eswitch_reg_c1_loopback_enabled -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xda7c6cc4 mlx5_rl_add_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc4b68cac mlx5_core_create_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc4c2ef95 mlx5_core_dealloc_transport_domain +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc4f65683 mlx5_lag_is_mpesw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc5ab67b8 mlx5_debug_qp_remove +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc63841ec mlx5_core_destroy_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc654e53f mlx5_rl_is_in_range +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcaa9ae33 mlx5_cmd_out_err +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb5941e3 mlx5_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcc9a8524 mlx5_cmd_create_vport_lag +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcccd9a8e mlx5_comp_irq_get_affinity_mask +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xccff6721 mlx5_eswitch_vport_rep +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcdef4100 mlx5_lag_is_sriov +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcf2370b5 mlx5_get_flow_namespace +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd0d14946 mlx5_cmd_init_async_ctx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd3df7c29 mlx5_core_query_sq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6b61f27 mlx5_msix_free +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6b736d8 mlx5_fs_add_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd84e27b3 mlx5_free_bfreg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xda6cba17 mlx5_core_dealloc_pd EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdae8aa4d __tracepoint_mlx5_fs_del_ft -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdc02d01f mlx5_core_create_tir -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdf9b6bab mlx5_packet_reformat_alloc -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdfc22b87 mlx5_lag_is_roce -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe0d032a1 mlx5_debug_qp_add +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdd2b6448 mlx5_core_create_psv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdd8b1351 mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdfabddfd mlx5_core_alloc_transport_domain +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdfc137fc mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe10652ac mlx5_is_roce_on +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe3b599d7 mlx5_vf_put_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe4878b96 mlx5_fpga_sbu_conn_sendmsg EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe5de354d __traceiter_mlx5_fs_add_fg -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe8a7f84e mlx5_lag_get_next_peer_mdev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe69ba6a7 mlx5_modify_header_dealloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe7650ff8 __traceiter_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xea5bb550 mlx5_mpfs_del_mac EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeb9a8bcf __SCK__tp_func_mlx5_fs_del_fte -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xed3f5dbe mlx5_msix_alloc -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xedb9358f mlx5_debugfs_root -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf015ac73 mlx5_cmd_out_err +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xec4bcb40 mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeef30726 mlx5_core_roce_gid_set EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf06725b6 __tracepoint_mlx5_fs_add_rule -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf1ba1853 mlx5_lag_is_shared_fdb -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf308d8ae mlx5_core_create_tis -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf39a32dc mlx5_core_destroy_cq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf4fcafb9 mlx5_msix_free EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf52e1946 __tracepoint_mlx5_fs_set_fte EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf84fe852 __traceiter_mlx5_fs_del_ft EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf88d57b1 __SCK__tp_func_mlx5_fs_add_rule -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf8fcc8d9 mlx5_core_query_cq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfabdb3b9 mlx5_eswitch_vport_match_metadata_enabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf89afa0e mlx5_eswitch_get_vport_metadata_for_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf953b9d9 mlx5_eq_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf97cf25f mlx5_lag_is_active EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfc8e744e __SCK__tp_func_mlx5_fs_del_fg EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxfw/mlxfw 0xc4d702d9 mlxfw_firmware_flash +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02730653 mlxsw_core_traps_unregister EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02815b77 mlxsw_env_module_port_up EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02dfd3d0 mlxsw_afk_key_info_block_encoding_get -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x05550881 mlxsw_env_get_module_eeprom EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c mlxsw_afa_block_append_trap -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0948f3c7 mlxsw_afa_create EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf mlxsw_core_max_ports EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0d0129fc mlxsw_afa_block_append_qos_ecn EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c mlxsw_afk_destroy EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0f4a209d mlxsw_core_read_utc_sec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x12beecc6 mlxsw_core_driver_register EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x14d6ca2e mlxsw_env_set_module_power_mode EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x14e17bb4 mlxsw_linecards_event_ops_register EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382 mlxsw_afk_key_info_put EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x16673aec mlxsw_afk_values_add_u32 EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x16f4221d mlxsw_core_irq_event_handler_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x181e8447 mlxsw_core_skb_transmit EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852 mlxsw_core_flush_owq EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1cb8f858 mlxsw_reg_trans_query -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1fe8183d mlxsw_core_skb_transmit EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0 mlxsw_afa_block_cur_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2091660c mlxsw_core_skb_receive EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68 mlxsw_core_cpu_port_init EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x299e2562 mlxsw_afk_values_add_buf -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c03dbf6 mlxsw_core_traps_unregister EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3 mlxsw_core_read_frc_h EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2f303cd3 mlxsw_afa_block_append_qos_dsfield +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x36a89b4b mlxsw_afa_create EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x383bc49a mlxsw_afa_block_append_qos_dscp +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3b2a3955 mlxsw_core_trap_state_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3ed2e141 mlxsw_core_driver_unregister EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4036254f mlxsw_linecards_event_ops_unregister -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x42d92fb5 mlxsw_core_bus_device_register EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x43a9b87e mlxsw_afa_block_terminate EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47041e4e mlxsw_afk_key_info_blocks_count_get EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4765b9f0 mlxsw_core_res_valid -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47e952e1 mlxsw_core_ptp_transmitted +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x47c7b9de mlxsw_core_port_netdev_link EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x484489a4 mlxsw_cmd_exec EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4866767a mlxsw_env_get_module_eeprom_by_page EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x49ec8a06 mlxsw_afa_block_append_police EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4a558271 mlxsw_env_get_module_power_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4cb75b82 mlxsw_core_rx_listener_unregister EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x50359cc0 mlxsw_core_kvd_sizes_get EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x508923e3 mlxsw_core_port_init EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x51b5769d mlxsw_env_module_overheat_counter_get -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5c4ed269 mlxsw_core_port_devlink_port_get EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5c73d5a4 mlxsw_core_sdq_supports_cqe_v2 EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5cf3dd79 mlxsw_core_bus_device_unregister EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5d55fb68 mlxsw_afk_encode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5dcc2664 mlxsw_env_get_module_info EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5ff17b5c mlxsw_afa_block_destroy -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x60d24589 mlxsw_core_rx_listener_register EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x618a30ab mlxsw_afa_block_commit EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x63874d4c mlxsw_core_port_driver_priv -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x657cb50b mlxsw_core_port_netdev_link EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x65c7e645 mlxsw_afa_block_append_qos_switch_prio -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6891bd4f mlxsw_core_rx_listener_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x67b88d34 mlxsw_core_rx_listener_register EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6929f2b4 mlxsw_env_module_port_map EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x718d28f4 mlxsw_afa_block_append_vlan_modify -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7358a88a mlxsw_core_traps_register EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x75339042 mlxsw_core_lag_mapping_clear EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398 mlxsw_core_read_frc_l EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7b0bfeec mlxsw_core_port_fini @@ -2903,30 +2903,30 @@ EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x827a2f1f mlxsw_afa_block_jump EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x829e8851 mlxsw_afa_block_first_set EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x83fb69af mlxsw_core_lag_mapping_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x84bbf18e mlxsw_env_get_module_eeprom EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x858c30d0 mlxsw_afa_block_create EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x86817014 mlxsw_core_read_utc_nsec -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8784374c mlxsw_core_driver_register EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8854d198 mlxsw_reg_write -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8a139a54 mlxsw_core_trap_register -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8bc77380 mlxsw_env_reset_module EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x902c3533 mlxsw_core_schedule_dw -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x93780326 mlxsw_core_trap_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x97361941 mlxsw_core_trap_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x984ba449 mlxsw_core_bus_device_register EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x996c5d6d mlxsw_reg_trans_bulk_wait EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9cbf026d mlxsw_afa_destroy EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa509fafd mlxsw_afa_block_append_counter EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88 mlxsw_reg_query EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa8e2509a mlxsw_afa_block_append_sampler -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa960d5e8 mlxsw_core_skb_receive +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xaa6293e8 mlxsw_core_traps_register EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xac1074a5 mlxsw_core_skb_transmit_busy -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb5041062 mlxsw_env_get_module_info EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6517b2e mlxsw_afa_block_append_trap_and_forward EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb68e9fa8 mlxsw_env_module_port_unmap EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc222a8d mlxsw_afk_clear EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbda212df mlxsw_core_irq_event_handlers_call EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c mlxsw_core_driver_priv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc00e3853 mlxsw_core_ptp_transmitted EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc31fbb6a mlxsw_core_res_get EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc5eacafe mlxsw_afa_block_append_l4port EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xcbab836f mlxsw_core_fw_rev_minor_subminor_validate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xccec8a83 mlxsw_env_reset_module EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd111d3e8 mlxsw_core_irq_event_handler_register EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd1bab622 mlxsw_afk_create EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd21722b4 mlxsw_core_max_lag @@ -2939,168 +2939,168 @@ EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1 mlxsw_afa_block_continue EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc5c95df mlxsw_core_resources_query EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeb1dc2e mlxsw_afa_block_first_kvdl_index -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe0844c5c mlxsw_afa_block_append_mirror EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd mlxsw_afa_block_activity_get EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe1860dde mlxsw_afa_block_append_fid_set EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe4d9ac5a mlxsw_afa_block_append_drop EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe532482a mlxsw_afk_key_info_get -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe5bed9b1 mlxsw_core_driver_unregister EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xecab212a mlxsw_afa_cookie_lookup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xecbaa304 mlxsw_afa_block_append_mirror EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xed2801d4 mlxsw_env_module_port_down -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf057ca4c mlxsw_core_trap_state_set EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf446732c mlxsw_afk_key_info_subset EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf82bdc70 mlxsw_core_lag_mapping_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xfb84443f mlxsw_core_trap_register EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25 mlxsw_core_cpu_port_fini EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff0b141d mlxsw_afa_block_append_fwd -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x0da85424 mlxsw_i2c_driver_unregister -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0xee5d4ed5 mlxsw_i2c_driver_register -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x430e11b5 mlxsw_pci_driver_unregister -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0xbcea779e mlxsw_pci_driver_register -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x01fc3d37 ocelot_sb_tc_pool_bind_get -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0656a4ca ocelot_port_bridge_flags +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff62b9ef mlxsw_core_port_devlink_port_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x72000038 mlxsw_i2c_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0xd123c02c mlxsw_i2c_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x936f6e19 mlxsw_pci_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0xc3470967 mlxsw_pci_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x02a52532 ocelot_mact_learn EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x08791cd6 ocelot_wm_enc -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0bf291b2 ocelot_vcap_filter_replace -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0da55e9e ocelot_port_lag_leave -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1270ef06 ocelot_drain_cpu_queue -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x13a9c5dc ocelot_mact_forget -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1550c9ae ocelot_port_pre_bridge_flags -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x159893c1 ocelot_sb_tc_pool_bind_set -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x16252952 ocelot_mact_learn_streamdata -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x19c26708 ocelot_ptp_rx_timestamp -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1b69df0d ocelot_get_ethtool_stats -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x22daafde ocelot_get_sset_count -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x243adf19 ocelot_port_lag_join -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x291d455b ocelot_mrp_del_ring_role -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2a80106c ocelot_port_inject_frame -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2c3c0684 ocelot_sb_port_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0f1447ff ocelot_ptp_settime64 +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x103b1e4b ocelot_bridge_stp_state_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x198646e6 ocelot_vcap_policer_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1a18f978 ocelot_mrp_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1ab3c52f ocelot_sb_pool_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x251d2697 ocelot_fdb_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2601f0bf ocelot_port_txtstamp_request +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x262238f6 ocelot_port_bridge_join +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x27b4edbb ocelot_port_bridge_flags +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2881ffce ocelot_ptp_adjtime +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2e4a7edb ocelot_set_ageing_time EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2ee2eeab ocelot_vcap_block_find_filter_by_id -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x33994910 ocelot_port_set_maxlen -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3477d66d ocelot_set_ageing_time -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x39e4d47e ocelot_mact_lookup -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3ac3fb90 ocelot_sb_pool_set -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3adbc779 ocelot_port_bridge_leave -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3d284c62 ocelot_get_txtstamp -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3d8f63a5 ocelot_port_policer_del -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3e6d1cbc ocelot_vcap_policer_add -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x43486ecf ocelot_fdb_del -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x445c3a0e ocelot_ptp_settime64 -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4a6a9b56 ocelot_port_lag_change -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4bfad1bf ocelot_mrp_del -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4ed300fe ocelot_port_vlan_filtering -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4f8a65fe ocelot_xtr_poll_frame -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x528bf2f7 ocelot_vlan_del -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x52abf5bf ocelot_policer_validate -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x55163773 ocelot_port_mdb_add -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5684f203 ocelot_reset -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5721490c ocelot_get_strings -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5b9e561c ocelot_deinit -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x63d01a29 ocelot_port_txtstamp_request -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x640114c9 ocelot_port_mdb_del -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x67fe9cc7 ocelot_hwstamp_get -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6ac14473 ocelot_ptp_adjfine +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x31c5ef84 ocelot_port_bridge_leave +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3b8c3ca3 ocelot_ptp_verify +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3c1de230 ocelot_mrp_add_ring_role +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x42392d4b ocelot_port_policer_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x45064ab2 ocelot_devlink_sb_unregister +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x498f014d ocelot_vlan_prepare +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4b0f8616 ocelot_sb_occ_port_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4d831476 ocelot_pll5_init +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4fd47bff ocelot_vlan_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x52451c4d ocelot_xtr_poll_frame +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x566670dd ocelot_sb_port_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5d57a875 ocelot_sb_occ_max_clear +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x609ba30a ocelot_fdb_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x61acfc9f ocelot_deinit_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x63b089fd ocelot_mact_learn_streamdata +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6449b3bc ocelot_deinit_port +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x667d3c84 ocelot_ptp_rx_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x66bd63f5 ocelot_get_ts_info +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x68c12c51 ocelot_mact_forget +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6c320f56 ocelot_port_vlan_filtering EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6ce19e2a vsc7514_vcap_props -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6fd12dcc ocelot_port_bridge_join -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x724d3419 ocelot_port_policer_add -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x73a0e7b2 ocelot_fdb_add -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x75bc558e ocelot_vcap_filter_add -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x77ea8980 ocelot_port_get_stats64 -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x78c52bec ocelot_deinit_port -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7da330df ocelot_deinit_timestamp -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7dfe8d00 ocelot_vlan_prepare +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6d19d7dc ocelot_sb_tc_pool_bind_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x718b49a8 ocelot_sb_tc_pool_bind_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x72653c0a ocelot_port_inject_frame +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x72e2529d ocelot_port_lag_change +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x73cd883f ocelot_port_mdb_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7934b6c6 ocelot_drain_cpu_queue +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7ababa34 ocelot_get_sset_count +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7c14fce4 ocelot_mrp_del_ring_role +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7d92a2c3 ocelot_sb_pool_get EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7e5aec55 vsc7514_regfields -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x845a8a6e ocelot_get_max_mtu -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x85f6b1bb ocelot_ptp_enable -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x8766fb52 ocelot_sb_pool_get -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x87cd1111 ocelot_bridge_stp_state_set -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x8acdf48f ocelot_init_port -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x8e23b5d4 ocelot_get_ts_info -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x97ee7ec8 ocelot_ptp_gettime64 -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x97f21d5b ocelot_sb_occ_tc_port_bind_get -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9af55993 ocelot_can_inject -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xaf153809 ocelot_devlink_sb_unregister -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xaff1d86a ocelot_ptp_adjtime +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x84558944 ocelot_deinit +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x851135d9 ocelot_init_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x85c0d6bf ocelot_ptp_enable +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x881a5d53 ocelot_vcap_filter_replace +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x8a01af4b ocelot_port_get_stats64 +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x8daaf3a2 ocelot_sb_occ_snapshot +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x95c44813 ocelot_vcap_filter_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9724434f ocelot_ptp_gettime64 +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x98d13300 ocelot_init_port +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x99c1f54b ocelot_hwstamp_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9d7f3449 ocelot_mact_lookup +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa21edfa3 ocelot_ptp_adjfine +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa2e6f2aa ocelot_policer_validate +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa4805fb1 ocelot_vlan_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa78b35ad ocelot_get_ethtool_stats +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xaa340917 ocelot_can_inject +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xaa964a8b ocelot_port_policer_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xaab63bbd ocelot_fdb_dump EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb0fdd7fd ocelot_wm_dec -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb7bbcf6e ocelot_mact_learn -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb8e50d1c ocelot_devlink_sb_register -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb9f3ac5a ocelot_mrp_add -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbbba07ec ocelot_init -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbc56449f ocelot_hwstamp_set -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbd86cd88 ocelot_sb_occ_max_clear -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc9ac3e75 ocelot_sb_occ_snapshot -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd02e31ce ocelot_vcap_filter_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb7f86832 ocelot_devlink_sb_register +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xba1fc788 ocelot_port_set_maxlen +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbd3c33f6 ocelot_get_txtstamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc311a492 ocelot_sb_port_pool_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc3fa5471 ocelot_sb_occ_tc_port_bind_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd0e99ddc ocelot_port_pre_bridge_flags EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd0ebefd9 ocelot_ifh_port_set -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd2954ccb ocelot_ptp_verify -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd8e3a43e ocelot_vlan_add -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xddc81673 ocelot_pll5_init -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe164bc99 ocelot_fdb_dump +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd79ef094 ocelot_port_lag_leave +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xda565663 ocelot_init +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xdcda6eed ocelot_hwstamp_set EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe30fc619 ocelot_wm_stat -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe3ad423f ocelot_init_timestamp -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xf035a3cd ocelot_sb_occ_port_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe63b52be ocelot_get_max_mtu +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe83d18e5 ocelot_port_mdb_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xeb32d66c ocelot_vcap_filter_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xec4d95ca ocelot_reset +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xec51a54a ocelot_port_lag_join +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xf5e5e347 ocelot_vcap_policer_add EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xf80fc88d vsc7514_regmap -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xf8771d22 ocelot_sb_port_pool_set -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xf938ed6e ocelot_vcap_policer_del -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xfb8099cd ocelot_mrp_add_ring_role -EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x3e3380dd qed_get_fcoe_ops +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xfd4e6d17 ocelot_mrp_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xfeb574e5 ocelot_get_strings +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x0ac6f936 qed_get_rdma_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x2a93bdd3 qed_get_iscsi_ops EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x4f264472 qed_put_iscsi_ops -EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x54212653 qed_get_rdma_ops -EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x876a74aa qed_get_eth_ops EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x992e03d0 qed_put_fcoe_ops EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x9eeeef48 qed_put_eth_ops -EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0xed3a4f6b qed_get_iscsi_ops -EXPORT_SYMBOL drivers/net/ethernet/qlogic/qede/qede 0x386606b0 qede_rdma_unregister_driver -EXPORT_SYMBOL drivers/net/ethernet/qlogic/qede/qede 0xf7d0c07a qede_rdma_register_driver -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x10d7d06b wx_sw_init -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x1245069f wx_xmit_frame -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x1dadd81d wx_set_rx_mode -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x1db9c2fa wx_set_mac -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x2480a50c wx_setup_isb_resources -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x296a498d wx_control_hw -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x31843168 wx_free_irq -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x335260ed wx_flush_sw_mac_table -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x35bbe824 wx_setup_resources -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x38b4ed52 wx_configure_vectors -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x3c114c28 wx_host_interface_command -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x3f388554 wx_disable_pcie_master +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0xb108a501 qed_get_eth_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0xed7ca1e9 qed_get_fcoe_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qede/qede 0x3c4c2193 qede_rdma_register_driver +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qede/qede 0xc365a115 qede_rdma_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x0123185f wx_misc_isb +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x08e12672 wx_xmit_frame +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x09d5c8fe wx_configure +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x09e07c8b wx_setup_resources +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x0e76dd0b wx_get_pcie_msix_counts +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x173b4cdd wx_init_eeprom_params +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x1a9dbbf5 wx_irq_disable +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x24f7a583 wx_control_hw +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x2ce50e01 wx_vlan_rx_kill_vid +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x329aa7de wx_read_ee_hostif_buffer +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x38cb7bd3 wx_read_ee_hostif +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x3a951d43 wx_free_resources +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x3b6a6b15 wx_disable_rx_queue +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x45e102d7 wx_set_features EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x4b3398bd wx_msix_clean_rings -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x4b547f34 wx_free_isb_resources -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x4c15a833 wx_clean_all_tx_rings -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x4dc904d0 wx_init_eeprom_params -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x4f6d9519 wx_clear_interrupt_scheme -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x557d1fef wx_reset_misc -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x5f0d94df wx_disable_rx_queue -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x60778391 wx_reset_interrupt_capability -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x703d6b7c wx_vlan_rx_add_vid -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x70dcd3fc wx_napi_disable_all -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x75b111d9 wx_configure -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x76290fb1 wx_napi_enable_all -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x88f1abcc wx_mac_set_default_filter -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x8b177ca0 wx_irq_disable -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x91139f35 wx_get_stats64 -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x931c724a wx_clean_all_rx_rings -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xa44c851e wx_init_rx_addrs -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xa67900a4 wx_check_flash_load -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xa7833d8d wx_vlan_rx_kill_vid -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xae1aa797 wx_mng_present -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xb9387f29 wx_read_ee_hostif -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xbd6c1094 wx_misc_isb -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xc1c89b7c wx_disable_rx -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xc4d68ca6 wx_get_mac_addr -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xcfb28d17 wx_init_interrupt_scheme -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xd1c1d90c wx_get_pcie_msix_counts -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xd22fe4e5 wx_start_hw -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xd928e487 wx_change_mtu -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xe9ebd7ae wx_reset_hostif -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xeed26450 wx_get_drvinfo -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xf0d2ecbe wx_stop_adapter -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xf24f9f21 wx_read_ee_hostif_buffer -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xfbe594ed wx_set_features -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xfd8e63ab wx_free_resources -EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xff6b16cc wx_intr_enable -EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x04c6a94e hdlcdrv_receiver -EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x37cf488e hdlcdrv_arbitrate -EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x5725fc1b hdlcdrv_unregister -EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x5f3e236a hdlcdrv_register -EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7933ac1b hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x4c4252e1 wx_flush_sw_mac_table +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x68c45b0a wx_napi_disable_all +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x6e7b9442 wx_free_isb_resources +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x7106590d wx_set_mac +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x77003099 wx_init_interrupt_scheme +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x790f1f19 wx_setup_isb_resources +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x7f76a154 wx_disable_rx +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x85f87db0 wx_napi_enable_all +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0x9b97cf80 wx_init_rx_addrs +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xa08788ba wx_reset_hostif +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xa5fbc83d wx_clean_all_tx_rings +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xa7b0538c wx_get_stats64 +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xa9c144b3 wx_stop_adapter +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xab523aad wx_mng_present +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xb00c37a5 wx_disable_pcie_master +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xb42bb700 wx_change_mtu +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xb81c6f85 wx_clean_all_rx_rings +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xc1cd9cc2 wx_check_flash_load +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xc1dd1ee6 wx_intr_enable +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xc7c2a39f wx_host_interface_command +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xd125978f wx_start_hw +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xd1caf11c wx_set_rx_mode +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xdf59fa74 wx_vlan_rx_add_vid +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xe4c2cd18 wx_mac_set_default_filter +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xe8685072 wx_get_drvinfo +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xebd6df67 wx_get_mac_addr +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xee0aca6c wx_sw_init +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xf00af223 wx_configure_vectors +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xfb37ba24 wx_reset_misc +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xfe98024d wx_free_irq +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xff6b369d wx_reset_interrupt_capability +EXPORT_SYMBOL drivers/net/ethernet/wangxun/libwx/libwx 0xffed12a1 wx_clear_interrupt_scheme +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x928d2d23 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xca91a578 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xecd08782 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xf038e0cc hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xf80ed642 hdlcdrv_unregister EXPORT_SYMBOL drivers/net/mdio 0x3e17f466 mdio_set_flag EXPORT_SYMBOL drivers/net/mdio 0x60443957 mdio45_probe EXPORT_SYMBOL drivers/net/mdio 0x62eb612a mdio45_ethtool_ksettings_get_npage @@ -3108,1480 +3108,1480 @@ EXPORT_SYMBOL drivers/net/mdio 0xb79a54ee mdio45_nway_restart EXPORT_SYMBOL drivers/net/mdio 0xcdbdeca7 mdio45_ethtool_gset_npage EXPORT_SYMBOL drivers/net/mdio 0xdaceb7a6 mdio_mii_ioctl -EXPORT_SYMBOL drivers/net/mdio/mdio-bitbang 0x1ee55c3d mdiobb_write_c45 -EXPORT_SYMBOL drivers/net/mdio/mdio-bitbang 0x33da9319 free_mdio_bitbang -EXPORT_SYMBOL drivers/net/mdio/mdio-bitbang 0x4bbb317e mdiobb_write_c22 -EXPORT_SYMBOL drivers/net/mdio/mdio-bitbang 0x8b678aef mdiobb_read_c45 -EXPORT_SYMBOL drivers/net/mdio/mdio-bitbang 0xa28c5a3e alloc_mdio_bitbang -EXPORT_SYMBOL drivers/net/mdio/mdio-bitbang 0xb17b1b26 mdiobb_read_c22 -EXPORT_SYMBOL drivers/net/mdio/mdio-cavium 0x388f8513 cavium_mdiobus_write_c22 -EXPORT_SYMBOL drivers/net/mdio/mdio-cavium 0x63c56468 cavium_mdiobus_read_c45 -EXPORT_SYMBOL drivers/net/mdio/mdio-cavium 0x66365792 cavium_mdiobus_write_c45 -EXPORT_SYMBOL drivers/net/mdio/mdio-cavium 0xb4dc1aa1 cavium_mdiobus_read_c22 -EXPORT_SYMBOL drivers/net/mdio/mdio-mscc-miim 0x04723403 mscc_miim_setup -EXPORT_SYMBOL drivers/net/mii 0x1de266b1 mii_ethtool_sset -EXPORT_SYMBOL drivers/net/mii 0x1e99a937 mii_ethtool_get_link_ksettings -EXPORT_SYMBOL drivers/net/mii 0x4aef8fa5 mii_nway_restart -EXPORT_SYMBOL drivers/net/mii 0x64c4b700 mii_check_link -EXPORT_SYMBOL drivers/net/mii 0x82f11de4 mii_ethtool_set_link_ksettings -EXPORT_SYMBOL drivers/net/mii 0x8955a889 mii_link_ok -EXPORT_SYMBOL drivers/net/mii 0x9154f966 generic_mii_ioctl -EXPORT_SYMBOL drivers/net/mii 0xb9ac1ae7 mii_ethtool_gset -EXPORT_SYMBOL drivers/net/mii 0xc0e2290f mii_check_media -EXPORT_SYMBOL drivers/net/mii 0xf70f5dad mii_check_gmii_support -EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0x2eb11544 lynx_pcs_create_mdiodev +EXPORT_SYMBOL drivers/net/mdio/mdio-bitbang 0x0a071898 mdiobb_read_c45 +EXPORT_SYMBOL drivers/net/mdio/mdio-bitbang 0x1f1dcb71 alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/mdio/mdio-bitbang 0x2caeb7dd free_mdio_bitbang +EXPORT_SYMBOL drivers/net/mdio/mdio-bitbang 0x7cd9fefa mdiobb_read_c22 +EXPORT_SYMBOL drivers/net/mdio/mdio-bitbang 0x995aae0d mdiobb_write_c45 +EXPORT_SYMBOL drivers/net/mdio/mdio-bitbang 0xabb2e15b mdiobb_write_c22 +EXPORT_SYMBOL drivers/net/mdio/mdio-cavium 0x8c64dcc9 cavium_mdiobus_write_c22 +EXPORT_SYMBOL drivers/net/mdio/mdio-cavium 0xae78d352 cavium_mdiobus_write_c45 +EXPORT_SYMBOL drivers/net/mdio/mdio-cavium 0xde7b20e9 cavium_mdiobus_read_c45 +EXPORT_SYMBOL drivers/net/mdio/mdio-cavium 0xfbc42d38 cavium_mdiobus_read_c22 +EXPORT_SYMBOL drivers/net/mdio/mdio-mscc-miim 0x4121bff6 mscc_miim_setup +EXPORT_SYMBOL drivers/net/mii 0x10d70311 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x16296a20 mii_ethtool_set_link_ksettings +EXPORT_SYMBOL drivers/net/mii 0x879532d1 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xa0f87921 mii_ethtool_get_link_ksettings +EXPORT_SYMBOL drivers/net/mii 0xb65817a3 mii_check_media +EXPORT_SYMBOL drivers/net/mii 0xbd2ddc76 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xc8a19c01 mii_check_link +EXPORT_SYMBOL drivers/net/mii 0xf1faa0ce mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xf3356c09 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0xf72dfdc1 mii_nway_restart +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0x4ce6b750 lynx_pcs_create_mdiodev EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0x6d933508 lynx_pcs_destroy -EXPORT_SYMBOL drivers/net/pcs/pcs-mtk-lynxi 0x365b531b mtk_pcs_lynxi_create +EXPORT_SYMBOL drivers/net/pcs/pcs-mtk-lynxi 0xd41ffe83 mtk_pcs_lynxi_create EXPORT_SYMBOL drivers/net/pcs/pcs-mtk-lynxi 0xe9221a05 mtk_pcs_lynxi_destroy -EXPORT_SYMBOL drivers/net/phy/bcm-phy-lib 0x588504f4 bcm54xx_auxctl_write -EXPORT_SYMBOL drivers/net/ppp/pppox 0x4075d291 pppox_unbind_sock -EXPORT_SYMBOL drivers/net/ppp/pppox 0x6f19cab4 pppox_ioctl -EXPORT_SYMBOL drivers/net/ppp/pppox 0xb8b25429 register_pppox_proto +EXPORT_SYMBOL drivers/net/phy/bcm-phy-lib 0xf0c3f653 bcm54xx_auxctl_write EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto -EXPORT_SYMBOL drivers/net/sungem_phy 0x2901bb25 sungem_phy_probe -EXPORT_SYMBOL drivers/net/team/team 0x025d6107 team_options_register -EXPORT_SYMBOL drivers/net/team/team 0x0f78fca0 team_options_unregister -EXPORT_SYMBOL drivers/net/team/team 0x18965936 team_mode_unregister -EXPORT_SYMBOL drivers/net/team/team 0x1bd140ee team_mode_register -EXPORT_SYMBOL drivers/net/team/team 0x408d8551 team_modeop_port_enter -EXPORT_SYMBOL drivers/net/team/team 0x4810b0de team_option_inst_set_change -EXPORT_SYMBOL drivers/net/team/team 0x7b80c287 team_modeop_port_change_dev_addr -EXPORT_SYMBOL drivers/net/team/team 0x861b60bf team_options_change_check -EXPORT_SYMBOL drivers/net/usb/usbnet 0x0d0cd0e8 usbnet_manage_power -EXPORT_SYMBOL drivers/net/usb/usbnet 0x9b98261c usbnet_link_change -EXPORT_SYMBOL drivers/net/usb/usbnet 0xed2aec3f usbnet_device_suggests_idle -EXPORT_SYMBOL drivers/net/wan/hdlc 0x02e78997 alloc_hdlcdev -EXPORT_SYMBOL drivers/net/wan/hdlc 0x0bf1a9f2 unregister_hdlc_protocol -EXPORT_SYMBOL drivers/net/wan/hdlc 0x15f2faf5 detach_hdlc_protocol -EXPORT_SYMBOL drivers/net/wan/hdlc 0x2c59a1b3 hdlc_close -EXPORT_SYMBOL drivers/net/wan/hdlc 0x5ab8e25d register_hdlc_protocol -EXPORT_SYMBOL drivers/net/wan/hdlc 0x5b5fe405 hdlc_ioctl -EXPORT_SYMBOL drivers/net/wan/hdlc 0x89e435bd attach_hdlc_protocol -EXPORT_SYMBOL drivers/net/wan/hdlc 0xaf6ee0ea unregister_hdlc_device -EXPORT_SYMBOL drivers/net/wan/hdlc 0xcc02af66 hdlc_start_xmit -EXPORT_SYMBOL drivers/net/wan/hdlc 0xdaa14f6a hdlc_open +EXPORT_SYMBOL drivers/net/ppp/pppox 0xf9b19cd6 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0xfa5693ff pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xfb0b988f register_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x81ffb642 sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x0aa818e0 team_option_inst_set_change +EXPORT_SYMBOL drivers/net/team/team 0x31892cfd team_options_register +EXPORT_SYMBOL drivers/net/team/team 0x41d5507d team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0x8de23c43 team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0xb3506fd4 team_options_unregister +EXPORT_SYMBOL drivers/net/team/team 0xd41fe1ee team_mode_register +EXPORT_SYMBOL drivers/net/team/team 0xdf02e1ca team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0xf0164681 team_mode_unregister +EXPORT_SYMBOL drivers/net/usb/usbnet 0x0c534397 usbnet_link_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0x7ce7b9fb usbnet_manage_power +EXPORT_SYMBOL drivers/net/usb/usbnet 0xfbd0c11a usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/wan/hdlc 0x00460364 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1450b9fe unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x749a0b77 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7657754b attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x84dd5a35 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x9727ea0f hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa0e10b25 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa9274479 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb68c2b8e detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xfff36789 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0121c064 ath_rxbuf_alloc EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0b1ab353 ath_regd_get_band_ctl EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x108b188f ath_is_49ghz_allowed -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x2a7a6321 ath_key_delete -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x37f7fecb ath_hw_cycle_counters_update -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x38180f00 ath_reg_notifier_apply -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x3c1308eb ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x21eac853 ath_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x421e5c4d dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x423a4749 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x44868cbc ath_is_mybeacon EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4571aea8 ath_is_world_regd -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x5c115cae ath_is_mybeacon -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x5c7e65ca ath_hw_keysetmac -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x82decbba dfs_pattern_detector_init -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9eb8728a ath_hw_get_listen_time -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9fc6dcf4 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x535e7cbe ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x5f986751 ath_hw_get_listen_time EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa18f224e ath_regd_find_country_by_name EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb6588ba6 ath_bus_type_strings -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xd9cd313b ath_hw_keyreset -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe142aa5c ath_printk -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe426047a ath_hw_setbssidmask -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe4f471e0 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbe43f305 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xc4e0d0b9 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xc6306cbf ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xc9c7ab28 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xeb0cfe20 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xfde9ae8f ath_regd_init EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2 ath10k_debug_mask -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x079a88ce ath10k_err -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x0818c906 ath10k_ce_rx_update_write_idx -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x095d2986 ath10k_core_free_board_files -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x1904c61c ath10k_ce_free_rri -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x1a77e255 ath10k_ce_disable_interrupts -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x1b0f041d ath10k_core_napi_enable -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x232ea346 ath10k_bmi_read_memory -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x254375f8 ath10k_core_start -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x32e46eed ath10k_ce_send -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x33f1f587 ath10k_ce_enable_interrupts -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x3648406f ath10k_print_driver_info -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x3cebf061 ath10k_ce_completed_send_next -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x3d36b11b ath10k_core_check_dt -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x415439a5 ath10k_ce_per_engine_service_any -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x47fc64b7 ath10k_ce_rx_post_buf -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x49500302 ath10k_ce_cancel_send_next -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4bccbb2a ath10k_ce_alloc_pipe -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x5001b09c ath10k_ce_completed_send_next_nolock -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x53c1e8f8 ath10k_warn -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x54a62c99 ath10k_coredump_new -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x54e1129f ath10k_htt_rx_pktlog_completion_handler -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x5796ea3a ath10k_htc_notify_tx_completion -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x5803530e __ath10k_ce_rx_num_free_bufs -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x584a6434 ath10k_ce_deinit_pipe -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x5975eb91 ath10k_htc_process_trailer -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x5f8cf8d7 ath10k_ce_per_engine_service -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x62aa931f ath10k_info -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x63317b3c ath10k_core_stop -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x64c582cf ath10k_ce_dump_registers -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x68f83238 ath10k_ce_disable_interrupt -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x6f781d5c ath10k_coredump_get_mem_layout -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x753bf408 ath10k_htc_rx_completion_handler -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x817fb619 ath10k_ce_send_nolock -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x84193350 ath10k_htc_tx_completion_handler -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8c942a3f ath10k_ce_free_pipe -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8f804290 ath10k_core_napi_sync_disable -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x901a73b6 ath10k_ce_revoke_recv_next -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x9cff18d2 ath10k_core_register -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa1d77328 ath10k_core_fetch_board_file -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa4a585a8 ath10k_ce_completed_recv_next_nolock -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa806530c ath10k_htt_txrx_compl_task -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf38572a ath10k_bmi_start -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xc26f7747 ath10k_core_destroy -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xc76e826f ath10k_htt_rx_hl_indication -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xc9565298 ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x0242da07 __ath10k_ce_rx_num_free_bufs +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x033bea4f ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x040f7f5a ath10k_coredump_new +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x074ed74e ath10k_htc_rx_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x0a3476ac ath10k_htt_hif_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x0e037458 ath10k_ce_completed_send_next_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x12a6d4db ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x13d3d0fc ath10k_core_fetch_board_file +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x16c3bf96 ath10k_ce_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x1e02852a ath10k_ce_cancel_send_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x2462aed8 ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x247f5a51 ath10k_ce_completed_recv_next_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x290e6797 ath10k_bmi_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x30bfd4ec ath10k_ce_free_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x33d52170 ath10k_mac_tx_push_pending +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x3f5af4bd ath10k_ce_rx_post_buf +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x40bcfe7f ath10k_ce_send_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4d9a7423 ath10k_print_driver_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4df1ecc3 ath10k_htt_txrx_compl_task +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x5972069e ath10k_htt_rx_pktlog_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x5ea90610 ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x65b75751 ath10k_htc_process_trailer +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x675ca656 ath10k_ce_disable_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x67e85495 ath10k_core_check_dt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x78d9637e ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7951b05e ath10k_ce_alloc_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x87b742bb ath10k_core_start_recovery +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8dfd977f ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x9191bdae ath10k_htc_tx_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x9a71a8e7 ath10k_core_napi_sync_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x9ecc5ba7 ath10k_ce_per_engine_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa05c41ac ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa478746e ath10k_htt_t2h_msg_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa998dda2 ath10k_ce_deinit_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xac026341 ath10k_ce_init_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xb33c677c ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xb359ef1e ath10k_ce_free_rri +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xb966b383 ath10k_ce_num_free_src_entries +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xbafffa01 ath10k_ce_rx_update_write_idx +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xbbda3f04 ath10k_ce_revoke_recv_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xbef5fce6 ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xc006ee44 ath10k_htt_rx_hl_indication +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xc2a87e20 __ath10k_ce_send_revert +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xc5abbe81 ath10k_ce_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xc97f8906 ath10k_coredump_get_mem_layout EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xcc20d178 __tracepoint_ath10k_log_dbg -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xda49ae60 ath10k_ce_init_pipe -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xe1edcdc8 ath10k_ce_num_free_src_entries -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xe3bff089 ath10k_mac_tx_push_pending -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xf1429768 ath10k_core_start_recovery -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xf481dce0 ath10k_htt_hif_tx_complete -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xf4826193 ath10k_core_create -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xf6173264 ath10k_ce_completed_recv_next -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xf7e3692d ath10k_ce_alloc_rri -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xf7fd89fe ath10k_ce_enable_interrupt -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xfb5b5589 __ath10k_ce_send_revert -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xff6f8dff ath10k_htt_t2h_msg_handler -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x002fbccb ath11k_ce_cleanup_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xd24c334e ath10k_htc_notify_tx_completion +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xdaad9f61 ath10k_ce_alloc_rri +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xe1f186e5 ath10k_ce_enable_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xe4ee856c ath10k_core_free_board_files +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xe687602c ath10k_ce_dump_registers +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xe8881c69 ath10k_ce_completed_send_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xe9925d25 ath10k_core_napi_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xead65855 ath10k_bmi_read_memory +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xef8cb303 ath10k_ce_per_engine_service_any +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xfe78a1fc ath10k_ce_send +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xffbe0c7d ath10k_ce_completed_recv_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x090654cf ath11k_warn EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x0dae0eb8 __tracepoint_ath11k_log_dbg -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x1feba4c1 ath11k_ce_rx_post_buf -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x21862ba2 ath11k_pcic_map_service_to_pipe -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x28e9ec86 ath11k_pci_disable_ce_irqs_except_wake_irq -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x28f1dfc7 ath11k_core_resume -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x30c50a46 ath11k_pcic_register_pci_ops -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x38e73f5c ath11k_dp_service_srng -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x440038c9 ath11k_pcic_ext_irq_disable -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x47831058 ath11k_hal_srng_init -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x4afcdb62 ath11k_ce_per_engine_service -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x56341de5 ath11k_pcic_write32 -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x56f2670d ath11k_pcic_read -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x57c15b0d ath11k_pcic_get_user_msi_assignment -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x597d95bc ath11k_pcic_stop -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x695ddcc2 ath11k_core_init -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x6c18e08c ath11k_core_free -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x6c25082c ath11k_pcic_get_msi_address -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7049fbe1 ath11k_pcic_ce_irqs_enable -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x74d440b5 ath11k_core_alloc -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x808f6b85 ath11k_pcic_read32 -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x81d41112 ath11k_pcic_get_ce_msi_idx -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x8e76b79a ath11k_debugfs_soc_destroy -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x9afc8cea ath11k_pci_enable_ce_irqs_except_wake_irq +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x1e233d27 ath11k_pcic_ext_irq_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x1fa72922 ath11k_pcic_get_user_msi_assignment +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x2976de20 ath11k_core_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x2982cc63 ath11k_pcic_write32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x2b569f5f ath11k_ce_get_shadow_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x2f50d089 ath11k_pcic_get_msi_address +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x307c8156 ath11k_dp_service_srng +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x3137d514 ath11k_debugfs_soc_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x359f815c ath11k_ce_alloc_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x41cec6d2 ath11k_hal_srng_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x41f9b490 ath11k_core_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x4888517f ath11k_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x4e3a7941 ath11k_pcic_free_irq +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x53e5ccfd ath11k_ce_free_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x59f670c7 ath11k_pcic_init_msi_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x5cbc9613 ath11k_pci_enable_ce_irqs_except_wake_irq +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x616103ef ath11k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x61b66764 ath11k_hal_srng_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x66ff99a2 ath11k_ce_cleanup_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x6d8de045 ath11k_pcic_read +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x6de962dd ath11k_core_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x6e1b0f71 ath11k_pcic_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x76006ec6 ath11k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x794f379a ath11k_pcic_ext_irq_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x918f233a ath11k_pcic_register_pci_ops +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x990d4cb3 ath11k_core_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x992bb68d ath11k_pcic_ce_irq_disable_sync +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x9a59f2f7 ath11k_pcic_start EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x9c51bcc4 ath11k_debug_mask -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x9e8680fa ath11k_pcic_ext_irq_enable -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x9ecfb3bb ath11k_warn -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xa0a501ff ath11k_pcic_free_irq -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xa5c44737 ath11k_ce_free_pipes -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xad0ba025 ath11k_ce_get_shadow_config -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xaf010f56 ath11k_core_pre_init -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xbb05887d ath11k_core_suspend -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xc86aba66 ath11k_hal_srng_deinit -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xc873471f ath11k_pcic_start -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xcbca25e1 ath11k_err -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xce0b2d7c ath11k_ce_alloc_pipes -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xd2b5b902 ath11k_ce_get_attr_flags -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xd50c0e4d ath11k_core_deinit -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xd5d7e856 ath11k_pcic_init_msi_config -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xed0b1443 ath11k_pcic_ce_irq_disable_sync -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xed5aeee0 ath11k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xaa9c31ed ath11k_pcic_ce_irqs_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xb39d7bca ath11k_pcic_get_ce_msi_idx +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xbc0534d6 ath11k_ce_per_engine_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xca695ab4 ath11k_core_pre_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xcdc8c49e ath11k_pcic_read32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xd48a3703 ath11k_pci_disable_ce_irqs_except_wake_irq +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xdca44aa5 ath11k_ce_rx_post_buf +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xde9458ca ath11k_pcic_config_irq +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xedffc862 ath11k_core_resume EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xf0197188 ath11k_cold_boot_cal -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xf57e9b74 ath11k_pcic_config_irq -EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xfce84462 ath11k_qmi_deinit_service -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0e6b3a19 ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xf32cc4a1 ath11k_ce_get_attr_flags +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xf5784bf4 ath11k_pcic_map_service_to_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xf9ccaa5e ath11k_qmi_deinit_service EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d ath6kl_warn -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x22259972 ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x17fa531e ath6kl_hif_intr_bh_handler EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3502feef ath6kl_info -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x41df01b3 ath6kl_core_init -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x48fd0d7a ath6kl_hif_intr_bh_handler -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x759f59c8 ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x42fb51b2 ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x85a40831 ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x8855850e ath6kl_core_create EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a ath6kl_hif_rw_comp_handler -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x956ecaf6 ath6kl_core_rx_complete -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x96321f48 ath6kl_core_destroy -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x96d0d3cd ath6kl_read_tgt_stats +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xa5aa0be3 ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb01a340d ath6kl_read_tgt_stats EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb881b1a9 ath6kl_printk EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb9a689dd ath6kl_err -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xbb4633fb ath6kl_core_create -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xc249ac7e ath6kl_stop_txrx -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xfe9a23fe ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xbe36d748 ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xd74aebce ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xdceb8b65 ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xea223ced ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xf6020c76 ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x044ff2cd ath9k_cmn_debug_modal_eeprom EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1a0aa030 ath9k_cmn_debug_stat_rx -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3b85ae9b ath9k_cmn_debug_base_eeprom -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x42ed4885 ath9k_cmn_rx_skb_postprocess -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x50fe0510 ath9k_cmn_rx_accept -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x522037db ath9k_cmn_update_txpow -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x6b88dbee ath9k_cmn_beacon_config_sta -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x763343ec ath9k_cmn_reload_chainmask -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x779b0053 ath9k_cmn_spectral_init_debug -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7be08448 ath9k_cmn_setup_ht_cap -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8140d3f2 ath9k_cmn_debug_recv -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa2c9a854 ath9k_cmn_process_rssi -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa8d38826 ath9k_cmn_beacon_config_ap -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xab382855 ath9k_cmn_get_hw_crypto_keytype -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xb0299469 ath9k_cmn_spectral_scan_config -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc4d8d7d1 ath9k_cmn_process_rate -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc617e608 ath9k_cmn_init_crypto -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xcaefeb21 ath_cmn_process_fft +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x2343d724 ath9k_cmn_beacon_config_ap +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x2669fa04 ath9k_cmn_reload_chainmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x2e27ad35 ath9k_cmn_process_rate +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x31b6d249 ath9k_cmn_spectral_scan_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x38e8ab63 ath9k_cmn_init_channels_rates +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x44b69943 ath9k_cmn_setup_ht_cap +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x6fd02bbb ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x78ed582e ath_cmn_process_fft +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x87655282 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x887be1e7 ath9k_cmn_spectral_deinit_debug +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8f959741 ath9k_cmn_process_rssi +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x9e8aabb7 ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa7eae6f0 ath9k_cmn_debug_phy_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xcc75661e ath9k_cmn_spectral_init_debug +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xcf488b9d ath9k_cmn_get_hw_crypto_keytype EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd66b3e86 ath9k_cmn_debug_modal_eeprom -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xdf0a1fcb ath9k_cmn_spectral_deinit_debug -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe2909a3a ath9k_cmn_init_channels_rates -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe76e9d8d ath9k_cmn_debug_phy_err -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xebc578b8 ath9k_cmn_spectral_scan_trigger -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xee5029dc ath9k_cmn_beacon_config_adhoc -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf5e4f493 ath9k_cmn_get_channel -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0348130b ath9k_hw_set_tsfadjust -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x06769d03 ath9k_hw_process_rxdesc_edma -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x074ee6c8 ar9003_paprd_init_table -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ac8ee2e ath9k_hw_startpcureceive -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c365c23 ath9k_hw_gettsf32 -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d7ffa1c ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd8389080 ath9k_cmn_spectral_scan_trigger +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd908ce54 ath9k_cmn_debug_recv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xef513a3e ath9k_cmn_debug_base_eeprom +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf81c0cfa ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xfd659abd ath9k_cmn_beacon_config_sta +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xfebde8c7 ath9k_cmn_rx_accept +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xfedf9816 ath9k_cmn_beacon_config_adhoc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x05d50387 ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ccbd3db ath9k_hw_btcoex_set_concur_txprio EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc ath9k_hw_get_tsf_offset -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1109dede ath9k_hw_ani_monitor -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x16331e8a ath9k_hw_getnf -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x16a1c17f ath9k_hw_disable_interrupts -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17077add ath9k_hw_gettxbuf -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x178d5f51 ath9k_hw_init -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x201e7f73 ath9k_hw_rxprocdesc -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x20a20660 ath9k_hw_set_rx_bufsize -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2230f645 ath9k_hw_getchan_noise -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2435c291 ath9k_hw_check_nav -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x253e00d8 ath9k_hw_setopmode -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x25ce14f0 ath9k_hw_setantenna -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26c9685a ath9k_hw_loadnf -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x286f156b ath9k_hw_puttxbuf -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x297b2ab8 ath9k_hw_phy_disable -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d3810f6 ath9k_hw_set_sta_beacon_timers -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x305b1d6f ath9k_hw_wow_apply_pattern -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x32fe7e7c ath9k_hw_gettsf64 -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x396fd4d5 ar9003_mci_get_interrupt -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3bea21dd ath9k_hw_set_txpowerlimit -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3ebb90c1 ath9k_hw_gpio_free -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x40ee4f03 ath9k_hw_disable -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x43d49cb1 ath9k_hw_abortpcurecv -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x44b65b42 ath9k_hw_set_interrupts -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x47d67f21 ath9k_hw_intrpend -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4880ce58 ath9k_hw_btcoex_init_mci -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x488f7e5d ath9k_hw_setuprxdesc -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48bab445 ath9k_hw_btcoex_enable -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b03c6ec ath9k_hw_btcoex_init_3wire -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f71288d ath9k_hw_btcoex_set_weight -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4fd88d31 ath9k_hw_setup_statusring -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x57417e23 ath9k_hw_set_txq_props -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x57dfe63d ath9k_hw_btcoex_deinit -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x59a8d580 ath9k_hw_releasetxqueue -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ada5912 ar9003_mci_get_next_gpm_offset -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5be2ed5d ath9k_hw_reset -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c10faa9 ath9k_hw_setpower -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5de3f3b5 ar9003_mci_cleanup -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e928d42 ath9k_hw_deinit -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5f493361 ath9k_hw_disable_mib_counters -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x62b0a452 ath9k_hw_getrxfilter -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x62dfb078 ar9003_get_pll_sqsum_dvc -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x657bfd20 ath9k_hw_beaconq_setup -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x68d41a0e ath9k_hw_putrxbuf -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ac507cf ar9003_mci_set_bt_version -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b9a970f ath9k_hw_gpio_request_in -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6cf11fe7 ath9k_hw_numtxpending -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x718b7c8b ath9k_hw_setuptxqueue -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x793c226e ath9k_hw_computetxtime -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c2e4896 ar9003_mci_send_wlan_channels -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8148d87b ar9003_paprd_populate_single_table -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8369b584 ath9k_hw_beaconinit -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d2ed2dd ath9k_hw_write_associd -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8db00e19 ar9003_mci_setup -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8e05eebb ath9k_hw_btcoex_init_2wire -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f588f22 ath9k_hw_enable_interrupts -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f687f66 ar9003_hw_disable_phy_restart -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x93ab9864 ath9k_hw_btcoex_bt_stomp -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x96994dd6 ath9k_hw_set_tx_filter -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97066b6e ath_gen_timer_free -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9a3f4c43 ath9k_hw_setrxfilter -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9ca2ccb0 ath9k_hw_init_btcoex_hw -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9e2c7f7e ar9003_paprd_is_done -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa0587204 ath9k_hw_gen_timer_start -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa0f2929a ath9k_hw_wow_wakeup -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa863b696 ar9003_mci_send_message -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa938b1c0 ath9k_hw_name -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa9fce609 ath9k_hw_init_global_settings -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaadae92f ar9003_paprd_setup_gain_table -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac33c77f ath9k_hw_btcoex_init_scheme -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb3e94477 ath9k_hw_stop_dma_queue -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8ca031f ath9k_hw_btcoex_set_concur_txprio -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf22ecae ar9003_paprd_create_curve -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1da54f7 ath9k_hw_settsf64 -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2e3e00b ath9k_hw_addrxbuf_edma -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc37ecbb5 ar9003_is_paprd_enabled -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3856e82 ath9k_hw_check_alive -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5fe9894 ar9003_hw_bb_watchdog_check -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc690aea8 ath9k_hw_txstart -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcc94e3bb ath9k_hw_gpio_request_out -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcca3374a ath9k_hw_stopdmarecv -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xccef7ae6 ath9k_hw_wait -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xced44458 ath9k_hw_btcoex_disable -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2e70bb9 ath9k_hw_wow_enable -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd8aea3c1 ath9k_hw_set_gpio -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd8e972e5 ath9k_hw_reset_tsf -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb10a583 ath9k_hw_resume_interrupts -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb2266e3 ath9k_hw_setmcastfilter -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xddeab3d7 ath9k_hw_reset_calvalid -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xded49ae0 ath_gen_timer_isr -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdf12d4d1 ath9k_hw_kill_interrupts -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe06d00c2 ar9003_hw_bb_watchdog_dbg_info -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe23c394e ath9k_hw_get_txq_props -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2eb8cb6 ar9003_paprd_enable -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe6bc2af2 ar9003_mci_state -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea85cdac ath9k_hw_gen_timer_stop -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xed0240a6 ath9k_hw_bstuck_nfcal -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeea05a5b ath_gen_timer_alloc -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf0a4dc29 ath9k_hw_abort_tx_dma -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf23a2493 ath9k_hw_resettxqueue -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf96fde26 ath9k_hw_updatetxtriglevel -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfe6fcdc3 ath9k_hw_gpio_get -EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x2b88273f stop_atmel_card -EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0xc82a78fe init_atmel_card -EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0xe81585ab atmel_open -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x06d5abee brcmu_pkt_buf_get_skb -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x0d61d207 brcmu_pktq_penq_head -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x18caebbf brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1116b40f ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13762a68 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13dad5eb ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x145c9f34 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x14c2967c ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17ce7c90 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x183e1036 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1d6b7477 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x20aa3baa ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x20ed3a75 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2221d022 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22de00de ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2348ce6d ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x245a0384 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x24a3e51c ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x28aa0b0a ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x28d2379a ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x28d77c0d ath9k_hw_gpio_request_out +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2946ff37 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2acad065 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3331c671 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c6c1a1d ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3ce8d3e4 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x40922f27 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x442467d2 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x46d11f10 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x473a2099 ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x480df524 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x49c807af ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a054aff ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a4b3403 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d6c1cce ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4fa18a44 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5309c22d ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x572d62d5 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x593831c4 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b9b36cf ath9k_hw_loadnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5f2495e6 ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x63653b77 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66d9f6b0 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ce27e3b ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7079e72d ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73b985c9 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x744fdd7b ath9k_hw_gpio_request_in +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75687406 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75d783cd ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x76132891 ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x794e78c5 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x803af0c1 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x85a09839 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x85e80eed ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a455844 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8ce15350 ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9315d63d ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9636060d ath9k_hw_resume_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9996896a ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x999c9b65 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9a21990d ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9a3fa88a ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9fb6b8cc ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa2dbedef ath9k_hw_btcoex_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa4365677 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa937c6d7 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaa8f5b8e ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae2a44e0 ath9k_hw_gpio_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae6c5876 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae77f9d4 ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xafaf215d ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb06eb627 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb3cc9015 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb66863ec ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb71274d4 ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb8d711e ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbc21045b ar9003_hw_bb_watchdog_check +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3d81346 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc46115cb ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5ffa87a ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc9f82a97 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcb3ea1cc ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd00a42ee ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2b0acf1 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd3b6954c ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd666433a ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda4cf079 ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdac3b63b ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd66a8b8 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xde4ffed6 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xded5daa4 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdfcd86bb ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1f645fd ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe4ef71e8 ath9k_hw_set_tx_filter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe50c611a ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe54a4519 ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea2db59b ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea998545 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeaeda570 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb5780ea ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xec8c3308 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf2ce3ad1 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf579a81d ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5de9fcb ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfccaa35e ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfd032593 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfdb7152b ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfded9e8f ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x78154ada stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0xbc5a3684 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0xc2a1ba68 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x010d6fa7 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x026d122c brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x16129235 brcmu_pkt_buf_get_skb EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e brcmu_boardrev_str -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x25c153bc brcmu_pktq_pdeq_match -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x539c8406 brcmu_pktq_mlen -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x67b10c5c brcmu_pktq_pflush -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x74395f3b brcmu_pktq_pdeq -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x870853c2 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1ec75271 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x3e6298bc brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x518adfab brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x6cbe315f brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x87bf3819 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x909acd1c brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x9a2984db brcmu_pktq_flush EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf brcmu_dotrev_str -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa1bfb71f brcmu_pktq_init -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xcb9def01 brcmu_pkt_buf_free_skb -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd3a90348 brcmu_pktq_pdeq_tail EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91 brcmu_d11_attach -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd9d69cf9 brcmu_pktq_mdeq -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xffd167cc brcmu_pktq_flush -EXPORT_SYMBOL drivers/net/wireless/cisco/airo 0x28dd90a6 init_airo_card -EXPORT_SYMBOL drivers/net/wireless/cisco/airo 0xd029380b reset_airo_card -EXPORT_SYMBOL drivers/net/wireless/cisco/airo 0xfccf869e stop_airo_card -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00716056 libipw_freq_to_channel -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x03ed5c4e alloc_libipw -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x175e8f0b libipw_is_valid_channel -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x288d4491 libipw_get_channel -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x54433311 libipw_networks_age -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x57d2728a libipw_wx_get_scan -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x639e460c libipw_channel_to_freq -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x6a044e58 libipw_wx_get_encodeext -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x6c918e2e free_libipw -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x76114bee libipw_get_channel_flags -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x77fec9ee libipw_rx -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x8ab3e073 libipw_xmit -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x8c7a0dc3 libipw_rx_mgt -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x8f105b30 libipw_get_geo -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x931d10e4 libipw_wx_get_encode -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xaaa245e3 libipw_txb_free -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xae28d6b5 libipw_channel_to_index -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xb01f29af libipw_wx_set_encode -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xb09ccbbe libipw_set_geo -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xf641c0cc libipw_wx_set_encodeext -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x001990b5 il_get_passive_dwell_time -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x03c52116 il_wr_prph -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x05deb216 il_send_cmd_sync -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x096d1a37 il_connection_init_rx_config -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0c47f714 il_set_rxon_ht -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0ca76394 il_init_scan_params -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0cf95ed9 il_get_active_dwell_time -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x119cb948 _il_apm_stop -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x13907a42 il_mac_reset_tsf -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x142ec48a il_get_lowest_plcp -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x158789c2 il_tx_queue_unmap -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x17cce842 il_send_add_sta -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1e349ced il_get_single_channel_number -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x22a60292 il_read_targ_mem -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x23169d02 il_setup_scan_deferred_work -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x23cabab1 il_hdl_error -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x27159ba8 il_usecs_to_beacons -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x27b082dd il_pm_ops -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x29808ae4 il_set_bit -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2b495074 il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xdf7204d8 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xe2fc574c brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xf0aaa1d5 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/cisco/airo 0x7def72c9 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/cisco/airo 0x930dafc3 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/cisco/airo 0xe9e3f45c init_airo_card +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x05a0ba4f libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x0be51a9d libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x0db9f0b6 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x1e4cb804 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x234fab5f libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x275fcc33 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x3801d453 free_libipw +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x43d112e8 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x443d69dd alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x4cd504ae libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x71d6fc89 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x75fc993f libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x83454f79 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x8e4631c8 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xb043d912 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xb323060c libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xc1957824 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xc61f450e libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xd533e0a0 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xfb85ad8b libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x01c1bbd3 il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0231b4f1 il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0381a206 il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x04bd6d47 il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0685192b il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0696f88c il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x08a725d9 il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x09bb653a il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0bd4e5e4 il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x11a7c465 il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x189b0344 il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1c63d370 il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1cc3b40b il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x20e05565 il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x258e46ba il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x268ea015 il_set_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x29972826 il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2a8af0f0 il_check_rxon_cmd EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2bf7eea6 il_queue_space -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2fe3e15b il_mac_change_interface -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x305f07e2 il_full_rxon_required -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x34832e2e il_free_channel_map -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x359b9539 il_send_bt_config -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x369ef31b il_eeprom_init -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3a25baf3 il_is_ht40_tx_allowed -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3b58afbe il_hdl_spectrum_measurement -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3b851208 il_mac_bss_info_changed -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x403555b5 il_leds_init -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x40794061 il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2e0c74e3 il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x302a44ce il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x30ac4484 il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x30e031db il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x372ff50c il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x38d769b8 il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3a69d044 il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3a8aa651 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x404f7df4 il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4117db31 il_usecs_to_beacons EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a il_debug_level -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x45675d1c il_send_stats_request -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x480c0082 il_cmd_queue_unmap -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4863f424 il_mac_sta_remove -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x48f5e4cc il_rx_queue_update_write_ptr -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4af246a6 il_power_initialize -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x58c96676 il_init_geos -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5946f366 il_send_lq_cmd -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5ea17635 il_scan_cancel_timeout -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5f11eb52 il_mac_remove_interface -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5f1dae49 il_set_rate -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x611acbf9 il_free_geos -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x62312306 il_mac_add_interface -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x62bd257b il_mac_flush -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x64817690 il_send_cmd_pdu -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x695de79e il_mac_conf_tx -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6a4ee8c7 il_rd_prph -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6caaae4f il_send_cmd_pdu_async -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6ff7cf6b il_power_update_mode -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x73586d99 il_get_free_ucode_key_idx -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7759a258 il_eeprom_query16 -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7b2caa12 il_hdl_pm_debug_stats -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7b78490e il_fill_probe_req -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8640ab84 il_set_tx_power -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x86f667a4 il_mac_hw_scan -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8839d656 il_rx_queue_space -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8bfc399e il_mac_config -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x904b9b3c il_hdl_csa -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9719b10f il_tx_cmd_protection -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9a21d892 il_get_channel_info -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9c29fb56 il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x433ed008 il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x47299917 il_apm_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4c8772f2 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4d3c8386 il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4ec41c02 il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4f969354 il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x57070516 il_update_stats +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x64aaaa80 il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x653c6172 il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x697a318e il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6ba3e86e il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6cdd6579 il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6dc4d0a5 il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6f5ba8f9 il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6f9304cb il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x71166879 il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x73149398 il_init_geos +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x782fc691 il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x794369ee il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7ac175a9 il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7b409fab il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8070a88f il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x82b51605 il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x82d69726 il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x864ce3e3 il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x89f71a99 il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8a964c11 il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8ae626f9 il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8f2c899e il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x99fbe4a6 il_wr_prph EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af il_bg_watchdog -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa0a5feb8 il_apm_init -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa28d0aa3 il_tx_queue_reset -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa2cc30b8 il_rx_queue_alloc -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa3d7f716 _il_poll_bit -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa54bb35d il_force_reset -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa7b11b6d il_update_stats -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xac2904a7 il_init_channel_map -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xad469584 il_tx_queue_init -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb1ad9ea7 il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa43bbf2d il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa5220f58 il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa828bd8c il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xac555df3 il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xafe20ba7 il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb0291b0a il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb2e488cf il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb33d4055 il_clear_ucode_stations EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb65510a3 il_get_cmd_string EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb7bd33ff il_isr -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb8efc2ec il_chswitch_done -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb96901bb il_write_targ_mem -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xba9f6449 il_send_rxon_timing -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbdf3ef50 il_setup_watchdog -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbf05202f il_restore_stations -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc2fb000d il_cmd_queue_free -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc3df0a5f il_setup_rx_scan_handlers -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc5293276 il_dbgfs_unregister -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc9afcd87 il_eeprom_query_addr -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd1dc2849 il_add_station_common -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd59d839e il_dbgfs_register -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd61098f9 il_scan_cancel -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd84b9264 il_free_txq_mem -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd9c3acba il_apm_stop -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xda7cf403 il_set_rxon_hwcrypto -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdb6c2313 il_tx_queue_free -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xde1b3644 il_eeprom_free -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe0fb8a91 il_tx_cmd_complete -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe61d2796 il_poll_bit -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe7de3084 il_hdl_pm_sleep -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe90ee1c5 il_add_beacon_time -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xeae4e59a il_set_rxon_channel -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xeef19d2f il_set_decrypted_flag -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf1d055ab il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc1f98bb6 il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc51a838a il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc7e81395 il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc849aeb0 il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc84ab970 il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc8c36c99 il_free_geos +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcb3a0c3b il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcb3c66b7 il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xccbe5c13 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcd8f063f il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd23914f2 il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd44db3be il_mac_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd5f637cc il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd7f88bb4 il_leds_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd9ba97ed il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xda6bc0cf il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe10aa96d il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe44fb510 il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe7e40fac _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xebec8af9 il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xecdf4967 _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf4877b25 il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf5e8bd8b il_send_bt_config EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b il_bcast_addr -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf9d8f83a il_check_rxon_cmd -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfb1b9a9c il_cancel_scan_deferred_work -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfc4de91a il_leds_exit -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xff528efa il_alloc_txq_mem -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfff78777 il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf7f4a0de il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf86a9f7e il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf9f10a7b il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfa6c5fea il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfbaff185 il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfbb1ff01 il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfce55718 il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfce7c39c il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfd6f3021 il_force_reset EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0fa4d950 __tracepoint_iwlwifi_dev_ucode_wrap_event -EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1970317e __traceiter_iwlwifi_dev_ucode_wrap_event -EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x25f0fe06 iwl_trans_pcie_remove +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1cdb67d8 iwl_trans_pcie_remove +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3c31bfca __traceiter_iwlwifi_dev_ucode_cont_event EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x466ae44d __SCK__tp_func_iwlwifi_dev_ucode_wrap_event -EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x826fdd78 __traceiter_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x54d03e8b __traceiter_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6aeee4f4 __traceiter_iwlwifi_dev_ucode_event EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x970bf4ef __SCK__tp_func_iwlwifi_dev_ucode_event EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9828a56a __tracepoint_iwlwifi_dev_ucode_cont_event EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb396913a __tracepoint_iwlwifi_dev_ucode_event -EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0xc9e61685 __traceiter_iwlwifi_dev_ucode_cont_event EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd1e69877 __SCK__tp_func_iwlwifi_dev_ucode_cont_event -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x20e4deb5 hostap_get_porttype -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x243adc75 hostap_remove_interface -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x29209f2c hostap_80211_rx -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x331039a7 hostap_set_encryption -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x378092f7 hostap_handle_sta_tx_exc -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x3ea21ef3 hostap_master_start_xmit -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x3f3f290d hostap_set_antsel -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x421eec0d hostap_set_hostapd_sta -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x4bd26394 hostap_set_string -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x56ef6abf hostap_init_ap_proc -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x6c3315ec hostap_info_process -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x6f63661c hostap_set_auth_algs -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x6fdf8244 hostap_init_data -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x70427881 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x01dea871 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x0572d802 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x1ac5db7e hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x1fe2d1a7 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x2236c0d1 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x36bdf170 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x3d7261fe hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x565e4ab4 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x5cf6d488 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x68d60b7b hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x68e19f5b hostap_set_word EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x75934c58 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7cde6d59 hostap_info_init EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fb75891 hostap_dump_rx_header -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x850bf3bb hostap_set_roaming -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x8663e98d prism2_update_comms_qual -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x8786ae13 hostap_set_hostapd -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x88c79b62 hostap_80211_ops -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x8ebcccd3 hostap_check_sta_fw_version -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x9eea3045 hostap_info_init -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x9eee922a hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x810a49c7 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x9a5ab3ef hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x9a5eacba hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x9de8c123 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xac572066 hostap_check_sta_fw_version EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xcf9b960a hostap_remove_proc -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xd1a826f3 hostap_free_data -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xe1bc13c8 hostap_add_interface -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xf0d83baf hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xc2229fcc hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xce58cd42 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xd9837261 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xe19032b3 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xe3ccc2d4 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xf4e5b043 hostap_set_auth_algs EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xf91c03e2 hostap_dump_tx_header -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x06ffad0b alloc_orinocodev -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x0c704c13 orinoco_stop -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x42be1281 orinoco_open -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x479e2bf5 orinoco_up -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x636e15c9 __orinoco_ev_rx -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x74ebbe07 orinoco_set_multicast_list -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x94d74af9 free_orinocodev -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x9b64ee8d orinoco_change_mtu -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x9fb6fd80 orinoco_tx_timeout -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xa1081ecd __orinoco_ev_info -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xc7b95033 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xfb806941 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xff405c11 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x030f2f62 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x063c9c60 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x1a1938ea free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x278d9968 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x479ed15f orinoco_init +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x50fa061a orinoco_open +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x955af106 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x992156f3 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xb99d7b67 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xbbc78fd5 __orinoco_ev_rx EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xd14136c1 hermes_struct_init -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xdef24b88 orinoco_init -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xe1bfe26f orinoco_if_add -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xe2a6552d orinoco_if_del -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xff8c0969 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xd9b015e6 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xe053ab60 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xee9142cd orinoco_down +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xfbeb5935 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xfdf8408a orinoco_up EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca orinoco_interrupt EXPORT_SYMBOL drivers/net/wireless/mediatek/mt76/mt76 0x327a9822 mt76_rx_signal -EXPORT_SYMBOL drivers/net/wireless/mediatek/mt76/mt76 0x93c34a56 mt76_wcid_key_setup -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0x7923a832 rtl_btc_get_ops_pointer -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x06ebcfcc rtl92c_download_fw -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1aa880bf rtl92c_phy_set_io -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x230eb915 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/mediatek/mt76/mt76 0xa8b8b35a mt76_wcid_key_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0xcbc5d174 rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x011e7227 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x029f37f9 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0491199d rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x071c5eb2 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x095ff872 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1656cad8 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1ca94598 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x214163e5 _rtl92c_phy_bb8192c_config_parafile EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2327d91c _rtl92c_phy_calculate_bit_shift -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2ec95677 rtl92c_phy_sw_chnl -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x30e827d5 rtl92c_dm_init -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x319e0f44 rtl92c_dm_init_edca_turbo -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x33430d4b rtl92c_phy_set_rfpath_switch -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x35f54567 rtl92c_dm_init_rate_adaptive_mask -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3c0e60b8 rtl92ce_phy_set_rf_on -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3d6abd2d rtl92c_phy_sw_chnl_callback -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x46cc93c7 rtl92c_fill_h2c_cmd -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x49f355c3 rtl92c_phy_set_io_cmd -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5155ae9c rtl92c_phy_rf_config -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x554f24b4 _rtl92c_phy_rf_serial_write -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5601945e rtl92c_dm_bt_coexist -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x641e5b0a _rtl92c_phy_init_bb_rf_register_definition -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6d7d5067 rtl92c_set_fw_pwrmode_cmd -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x775b04e8 _rtl92c_phy_bb8192c_config_parafile -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7b084638 _rtl92c_phy_dbm_to_txpwr_idx -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7cad6c8b rtl92c_set_fw_joinbss_report_cmd -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x820d5d5d _rtl92c_phy_fw_rf_serial_write -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8a9ffeb3 rtl92c_phy_set_txpower_level -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8de3e499 rtl92c_dm_check_txpower_tracking -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x922925cd rtl92c_dm_watchdog -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x92586d11 rtl92c_dm_rf_saving -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x94edebef _rtl92c_store_pwrindex_diffrate_offset -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9840d0ca rtl92c_firmware_selfreset -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x997818dc rtl92c_phy_lc_calibrate -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9bd0a54a rtl92c_bt_rssi_state_change -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa4d56288 rtl92c_phy_ap_calibrate -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa9c0aa3e rtl8192_phy_check_is_legal_rfpath -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xad412db6 rtl92c_set_fw_rsvdpagepkt -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb005819d rtl92c_phy_iq_calibrate -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb6a24dbf _rtl92c_phy_set_rf_sleep -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbca673f0 rtl92c_phy_set_bw_mode -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc9bb05f7 rtl92c_phy_update_txpower_dbm -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd4145bdd rtl92c_dm_write_dig -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd549dd8b rtl92c_phy_set_bb_reg -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd7586568 _rtl92c_phy_rf_serial_read -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xec6b7db7 _rtl92c_phy_fw_rf_serial_read -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf33543ec rtl92c_phy_query_bb_reg -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x01722121 rtl_pci_disconnect -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x7fadc186 rtl_pci_suspend -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x98b03bc4 rtl_pci_probe -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xb1d2e6bb rtl_pci_resume -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x70192c3b rtl_usb_disconnect -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xae85c627 rtl_usb_suspend -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xe381f7e5 rtl_usb_probe -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xec681c67 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x23c7e5d4 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x29cf5fd5 _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2f5c19f5 _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x32c9f9f3 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x35d8c3f1 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x443b50e5 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x50e6839f rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x572d89fa rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5e6a7680 rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5e90c62d _rtl92c_phy_dbm_to_txpwr_idx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6cdcb4be rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6deb80e9 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x75a918c1 _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x821e01ad rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x851371ec rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8b8f6bc7 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8c403e47 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8c70216e _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8f8404bc rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xaa888d0c rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xab42248a _rtl92c_store_pwrindex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb7470415 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb804a3c2 rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb992bb98 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbc84a934 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbfa91691 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc0037966 rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe7d75d37 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf5166519 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf9a0c91a _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfd224ad9 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xff71923a rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xffb9ab34 _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x08c00191 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x0b697a2a rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x6e0a436c rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xcd39d3f4 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x26a8b249 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x61330195 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x76b5724f rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xdb11867a rtl_usb_resume EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24 channel5g_80m -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x11e6db4d rtl_cmd_send_packet -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1528f060 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0bcc81d7 rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1322ec20 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x14e2ab81 rtl_efuse_shadow_map_update EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315 rtl_addr_delay -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x225c7f0b rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2483a941 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x249f308a rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2bbd1db9 rtl_hal_pwrseqcmdparsing +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2d9c9390 efuse_power_switch EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7 rtl_query_rxpwrpercentage -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30c77b0c efuse_shadow_read -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4638d41d rtl_cam_add_one_entry -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x47e83298 rtl_hal_pwrseqcmdparsing +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x319a7a07 rtl_mrate_idx_to_arfr_id +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4cd480b6 rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4e5e1dbd rtl_dm_diginit EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58 channel5g -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x55fefc20 rtl_efuse_shadow_map_update -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5903a96c rtlwifi_rate_mapping -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x67ac2d89 rtl_ps_disable_nic -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x73a07584 rtl_get_tcb_desc -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x73b6c5f7 rtl_ps_enable_nic -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x76960722 rtl_cam_delete_one_entry -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7ff6e3c9 rtl_process_phyinfo -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x826139a2 rtl_init_sw_leds -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x86554122 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x666a5023 rtl_collect_scan_list +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6955c04b rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6ef0aff0 rtl_rx_ampdu_apply +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6f8e4ede rtl_init_sw_leds +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x76728f32 efuse_shadow_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x84bbd861 rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8a2d62f8 efuse_one_byte_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8df7b1af rtl_cmd_send_packet EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8ea60059 rtl_fw_cb -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x98308285 rtl_init_rfkill -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9d6fcf7c rtl_mrate_idx_to_arfr_id -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa8de4c4c rtl_cam_mark_invalid -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa982aea7 rtl_rx_ampdu_apply -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcf29e7dd rtl_bb_delay -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdc390917 rtl_dm_diginit -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdcefeb83 rtl_send_smps_action -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdd8df661 rtl_cam_reset_all_entry -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe9330f32 rtl_rfreg_delay -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe992eca7 rtl_cam_get_free_entry -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xeb1989ae efuse_one_byte_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x94f1291c rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x95f92250 rtl_bb_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97645394 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9801f523 rtl_rfreg_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9805bef6 rtl_c2hcmd_enqueue +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9a256750 rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xac44784b rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb95f1441 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcea56cf4 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd863e3b5 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe2705150 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe44fb0b6 rtl_cam_mark_invalid EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xebedfe5f rtl_wowlan_fw_cb EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2 rtl_evm_db_to_percentage -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xeeb889e5 rtl_collect_scan_list -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf085a626 rtl_c2hcmd_enqueue -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf4b9fe21 efuse_power_switch -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfa18c2bf rtl_cam_del_entry -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfe7b9e28 rtl_signal_scale_mapping -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8723d 0xc2102e57 rtw8723d_hw_spec -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8821c 0x5fd059da rtw8821c_hw_spec -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8822b 0x29f054e5 rtw8822b_hw_spec -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8822c 0xc6323fdb rtw8822c_hw_spec -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1aced783 rtw_tx_report_enqueue -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1d178e4d rtw_read8_physical_efuse +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfef2215d rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8723d 0xf189a238 rtw8723d_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8821c 0x6c49d5b5 rtw8821c_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8822b 0x1a69d88a rtw8822b_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8822c 0xf5abb3b4 rtw8822c_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x02ebf414 rtw_tx_fill_tx_desc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x09d3e9da rtw_rx_stats +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1568deaa rtw_coex_write_indirect_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1b4c3fa2 rtw_parse_tbl_txpwr_lmt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1b6b4848 rtw_phy_write_rf_reg_sipi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1cda6a0a rtw_dump_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1d4aa12c rtw_phy_pwrtrack_need_lck EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1dc2d072 rtw_tx_ac_to_hwq -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1f25ad03 rtw_phy_get_tx_power_index -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x250af163 rtw_phy_parsing_cfo -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x29677875 rtw_phy_cfg_mac +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x232ffc1e rtw_register_hw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x2365a6e4 rtw_fw_c2h_cmd_rx_irqsafe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x2da784f9 rtw_power_mode_change +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x2ee4aef6 rtw_phy_set_tx_power_level +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x2f028713 rtw_phy_pwrtrack_avg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3192d8b2 rtw_phy_cfg_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3195218c rtw_rx_fill_rx_status EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x33b3f3c0 rtw_debug_mask -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x36618ac5 rtw_fw_inform_rfk_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x33da70e6 rtw_phy_cfg_agc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3598a8c5 rtw_fw_do_iqk EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x36c5bfca rtw_disable_lps_deep_mode -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x39b53876 rtw_parse_tbl_bb_pg -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3fdb76c2 rtw_phy_set_tx_power_level -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x41a45300 rtw_fw_c2h_cmd_isr -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x42893391 rtw_phy_cfg_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3e6c856a rtw_parse_tbl_bb_pg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x41bed165 rtw_read8_physical_efuse EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x440b7589 rtw_phy_rf_power_2_rssi -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x466fdaa4 rtw_tx_write_data_rsvd_page_get -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x4d780bf7 rtw_parse_tbl_txpwr_lmt -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x4dfe3a68 rtw_phy_cfg_agc -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x4e743740 rtw_tx_fill_tx_desc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x44a543f1 rtw_tx_write_data_h2c_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x45c0ecfa rtw_unregister_hw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x46c08121 rtw_phy_cfg_mac EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x519c8ba9 rtw_rate_size +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x52349481 rtw_parse_tbl_phy_cond EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x58210e60 rtw_rate_section -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x5a93a1e0 rtw_phy_pwrtrack_get_delta -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x5ae374dd rtw_rx_fill_rx_status -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x5dfa7928 rtw_bf_phy_init -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x611694c5 rtw_core_deinit -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x63fa53e8 rtw_bf_remove_bfee_su -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x6809e78c rtw_tx_queue_mapping -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x68b8fb4d rtw_bf_enable_bfee_mu -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x69ee8512 rtw_bf_enable_bfee_su -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x6c1baca7 rtw_coex_write_indirect_reg -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x717fe3e7 rtw_fw_c2h_cmd_rx_irqsafe -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x74a3aced rtw_bf_cfg_csi_rate -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x761e6787 rtw_rx_stats -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x76b8f515 rtw_phy_pwrtrack_thermal_changed -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x78599a49 rtw_core_init -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x81070512 rtw_fw_do_iqk -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x8a80bd37 rtw_coex_write_scbd -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x8d673c26 rtw_phy_cfg_bb -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x8e0157a0 rtw_phy_write_rf_reg_sipi -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x90e63434 rtw_phy_set_edcca_th -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x93b1ad54 rtw_phy_read_rf -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x989f7e4e rtw_tx_write_data_h2c_get -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x9a3bfc8a rtw_dump_reg -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x9e4bfbcb rtw_unregister_hw -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x9e790d07 rtw_phy_write_rf_reg_mix -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x9ea87e97 rtw_power_mode_change -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x9f2d230a rtw_dump_fw -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xa3ab86d5 rtw_phy_load_tables -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xa8fa4ca3 rtw_phy_pwrtrack_need_lck -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xa9713c44 rtw_parse_tbl_phy_cond -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xb076a53d rtw_bf_remove_bfee_mu -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xb1651c89 rtw_restore_reg -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xb8227b0b rtw_register_hw -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xb9c49093 check_hw_ready -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xba4c6409 rtw_coex_read_indirect_reg -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xbe6f66ec __rtw_dbg -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xc01959ac rtw_bf_set_gid_table -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xc44aa536 rtw_chip_info_setup -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xc4832173 rtw_phy_read_rf_sipi -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xc5613d79 rtw_phy_config_swing_table -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xce18b8ae rtw_phy_pwrtrack_get_pwridx -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xd01d9076 rtw_phy_pwrtrack_need_iqk -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xd72d25de rtw_set_rx_freq_band -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xe1e302be rtw_set_channel_mac -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xe7e80b6e rtw_phy_pwrtrack_avg -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xe95b7afc rtw_phy_init -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf7ac0900 rtw_ops -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf92650a2 rtw_regd_get -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x754cf0ca rtw_pci_shutdown -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x87e15fe1 rtw_pci_remove -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0xadc25d44 rtw_pci_probe -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0xc4c81755 rtw_pm_ops -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_sdio 0x7a63b1b3 rtw_sdio_remove -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_sdio 0x879a722e rtw_sdio_probe -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_sdio 0xbfe70cbe rtw_sdio_shutdown -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_sdio 0xe02f963f rtw_sdio_pm_ops -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_usb 0x6fa1f0b3 rtw_usb_probe -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_usb 0x94f78538 rtw_usb_disconnect -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8851b 0x1d113243 rtw8851b_chip_info -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8852a 0xd7458c7d rtw8852a_chip_info -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8852b 0xa0db5e8d rtw8852b_chip_info -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8852c 0x3b7e12e2 rtw8852c_chip_info -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x01883191 rtw89_phy_set_txpwr_offset -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x080913a8 rtw89_chip_info_setup -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x08a93dfa rtw89_phy_get_txsc -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x0b5da3ba rtw89_btc_ntfy_wl_rfk -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x0b913baf rtw89_phy_read_rf -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x0dd0db05 rtw89_btc_set_policy_v1 -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x0fb6e06b rtw89_phy_read_rf_v1 -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x166a6727 rtw89_core_napi_start -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x1a2ed3d3 rtw89_phy_write32_idx -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x1dcebbe1 rtw89_mac_enable_bb_rf -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x1e2d3fb3 rtw89_mac_cfg_ctrl_path_v1 -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x32441122 rtw89_phy_read_txpwr_limit -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x3f59dfcf rtw89_core_fill_txdesc_v1 -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x462006ae rtw89_mac_resume_sch_tx -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x46858b86 rtw89_ser_notify -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x4ddf8d16 rtw89_core_register -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x5415d568 rtw89_core_unregister -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x57afa74e rtw89_core_init -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x59e0fde7 rtw89_core_deinit -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x5ae957ca rtw89_core_fill_txdesc_fwcmd_v1 -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x5fcf7356 rtw89_core_napi_stop -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x63a20974 rtw89_alloc_ieee80211_hw -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x65f960f4 rtw89_mac_disable_bb_rf -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x677f4283 rtw89_phy_set_txpwr_byrate -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x68faf5f6 rtw89_core_rx -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x6ecccf7d rtw89_mac_coex_init -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x78298dc2 rtw89_phy_write_reg3_tbl -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7874bd11 rtw89_mac_cfg_ppdu_status -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7a2eee7a rtw89_mac_resume_sch_tx_v1 -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7c7bcd42 rtw89_phy_load_txpwr_byrate -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7d7d10b9 rtw89_mac_read_xtal_si -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7e41eb13 rtw89_fw_h2c_dctl_sec_cam_v1 -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x8c55a1b8 rtw89_mac_get_txpwr_cr -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x8e8c48ab rtw89_read_efuse_ver -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x996a0fde rtw89_mac_cfg_ctrl_path +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x5917d225 rtw_phy_load_tables +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x5e376992 rtw_set_rx_freq_band +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x5fd417b0 rtw_core_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x5fd86daf rtw_phy_set_edcca_th +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x627ba564 rtw_dump_fw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x650be2b8 rtw_tx_queue_mapping +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7083c70b rtw_bf_remove_bfee_su +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x76585ae7 rtw_fw_c2h_cmd_isr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7d15fefd rtw_phy_get_tx_power_index +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7e5f620c rtw_core_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fdada05 rtw_phy_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x84fcf33e rtw_restore_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x863e9c27 rtw_bf_cfg_csi_rate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x869965ad rtw_coex_read_indirect_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x88dcbddb rtw_bf_remove_bfee_mu +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x95c16589 rtw_phy_read_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xa0105f81 rtw_regd_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xa0d6fe72 check_hw_ready +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xa85817ac rtw_bf_enable_bfee_mu +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xa9be0158 rtw_coex_write_scbd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xaa4e88c3 rtw_phy_pwrtrack_get_delta +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xabd76d78 rtw_tx_report_enqueue +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xb74bf892 rtw_set_channel_mac +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xb853f8a4 rtw_phy_parsing_cfo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xc05fee48 rtw_chip_info_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xc9e709b8 rtw_phy_cfg_bb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xcafdbd04 rtw_phy_pwrtrack_need_iqk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xcbf347e7 rtw_bf_enable_bfee_su +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xd73dd14c rtw_phy_write_rf_reg_mix +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xd8ba6ec6 rtw_phy_pwrtrack_get_pwridx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xd8f193cc rtw_bf_set_gid_table +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xe777e396 rtw_bf_phy_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xe8c50f40 rtw_phy_read_rf_sipi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xedbfeb23 rtw_fw_inform_rfk_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xef47d3a2 rtw_tx_write_data_rsvd_page_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf0170fe3 __rtw_dbg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf192af5f rtw_phy_pwrtrack_thermal_changed +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf4f43560 rtw_phy_config_swing_table +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xffa75bd9 rtw_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x21764f38 rtw_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x30548182 rtw_pm_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x9f1c785a rtw_pci_shutdown +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0xf83350d7 rtw_pci_remove +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_sdio 0x6806ef02 rtw_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_sdio 0x696e4c53 rtw_sdio_shutdown +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_sdio 0xa56b704b rtw_sdio_pm_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_sdio 0xca54984e rtw_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_usb 0x29a2a387 rtw_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_usb 0x5a6d73ff rtw_usb_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8851b 0x7a56e483 rtw8851b_chip_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8852a 0xb0025abd rtw8852a_chip_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8852b 0xc79c884d rtw8852b_chip_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8852c 0x5c39c422 rtw8852c_chip_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x00b136c5 rtw89_mac_cfg_ppdu_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x01467613 rtw89_decode_chan_idx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x0add0ed1 rtw89_core_napi_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x11214bb0 rtw89_mac_write_xtal_si +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x1aac6da7 rtw89_core_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x2550247f rtw89_mac_resume_sch_tx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x27e12fd1 rtw89_mac_set_err_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x2a8e4bfe rtw89_rfk_parser +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x2e3a5fb8 rtw89_phy_write32_idx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x317e3671 rtw89_mac_cfg_ctrl_path_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x33843269 rtw89_free_ieee80211_hw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x38cc78dc rtw89_core_napi_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x3f56785d rtw89_phy_load_txpwr_byrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x457d1a59 rtw89_phy_set_txpwr_limit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x46673021 rtw89_mac_resume_sch_tx_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x4817847a rtw89_phy_read32_idx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x4902a04c rtw89_core_rx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x4e8f9a63 rtw89_fw_h2c_dctl_sec_cam_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x50b8597f rtw89_core_fill_txdesc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x547c2f4e rtw89_core_fill_txdesc_fwcmd_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x598a00e9 rtw89_phy_get_txsc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x5a00ceac rtw89_mac_stop_sch_tx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x5b32cbcf rtw89_fw_h2c_rf_ntfy_mcc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x5bda38af rtw89_mac_cfg_gnt_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x5ecafe39 rtw89_phy_read_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x656f19be rtw89_chip_info_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x6b42c37b rtw89_mac_cfg_ctrl_path +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x6c04da39 rtw89_ser_notify +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x6ca7228c rtw89_mac_cfg_gnt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x73c2f64c rtw89_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x78bb1cbe rtw89_phy_write_rf_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7cf027cf rtw89_phy_write_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7d98d1cc rtw89_phy_tssi_ctrl_set_bandedge_cfg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x8604a6d6 rtw89_alloc_ieee80211_hw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x9364f80b rtw89_btc_ntfy_wl_rfk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x94c8eeea rtw89_core_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x9738c298 rtw89_phy_read_txpwr_limit EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x9ac85705 rtw89_mac_size -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x9e515d9a rtw89_decode_chan_idx -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xa6383ae5 rtw89_rfk_parser -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xa65db0c9 rtw89_ops -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xa8a99072 rtw89_phy_set_txpwr_limit_ru -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xa9b12d41 rtw89_encode_chan_idx -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xab03a933 rtw89_free_ieee80211_hw -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xab587f6d rtw89_mac_stop_sch_tx_v1 -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xafd91600 rtw89_mac_write_xtal_si -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb0086929 __rtw89_debug -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb313a6f6 rtw89_fw_h2c_rf_ntfy_mcc -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb4425f7a rtw89_phy_write_rf -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb479f1ad rtw89_mac_coex_init_v1 -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb83d49d6 rtw89_mac_cfg_gnt_v1 -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xbf090c5b rtw89_phy_write_rf_v1 -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xc20935aa rtw89_core_fill_txdesc -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xc504f132 rtw89_core_napi_deinit -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xcd7d1ce7 rtw89_phy_config_rf_reg_v1 -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xd18c9073 rtw89_core_napi_init -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xd2b47a07 rtw89_core_query_rxdesc -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xddb38df3 rtw89_phy_set_txpwr_limit -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xe2fab9f3 rtw89_mac_cfg_gnt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x9acf4752 __rtw89_debug +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x9b4f687d rtw89_core_napi_stop +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x9bc8ebf0 rtw89_phy_set_txpwr_offset +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x9cb1fb6a rtw89_mac_read_xtal_si +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x9e6de630 rtw89_core_napi_start +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xa8240d17 rtw89_core_query_rxdesc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xac3cd975 rtw89_btc_set_policy_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xaf1a200e rtw89_phy_read_rf_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb3b126bc rtw89_mac_enable_bb_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb5e2e668 rtw89_phy_set_txpwr_byrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb833c6e6 rtw89_mac_get_txpwr_cr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xbfde39bc rtw89_phy_config_rf_reg_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xc0ce4246 rtw89_mac_disable_bb_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xc2e21bc2 rtw89_mac_stop_sch_tx_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xc39feb21 rtw89_btc_set_policy +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xc765ee6d rtw89_core_unregister +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xc8b0038c rtw89_phy_set_txpwr_limit_ru +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xd3e27373 rtw89_core_register +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xd59eec93 rtw89_phy_write_reg3_tbl +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xddb74b9d rtw89_mac_get_err_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xdf379c69 rtw89_mac_coex_init_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xe3c1cef8 rtw89_encode_chan_idx EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xe3f57b04 rtw89_debug_mask -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xed910f8c rtw89_mac_stop_sch_tx -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xee577c1d rtw89_btc_set_policy -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xf603a0ac rtw89_phy_read32_idx -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xf62070d6 rtw89_mac_set_err_status -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xfbc58766 rtw89_mac_get_err_status -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xffac58b7 rtw89_phy_tssi_ctrl_set_bandedge_cfg -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x038c3d1b rtw89_pci_remove -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x0661ca11 rtw89_pci_config_intr_mask -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x0762a95a rtw89_pci_disable_intr -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x09ab055b rtw89_pci_recognize_intrs -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x1002f3e1 rtw89_pci_enable_intr_v1 -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x5972f4bc rtw89_pci_recognize_intrs_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xebe0a1b5 rtw89_read_efuse_ver +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xf2e84e69 rtw89_core_fill_txdesc_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xf9f5bdf1 rtw89_mac_coex_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x04a03086 rtw89_pci_recognize_intrs +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x0a52e144 rtw89_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x236f4067 rtw89_pci_config_intr_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x26321045 rtw89_pci_disable_intr_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x2a920940 rtw89_pm_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x2fbc3589 rtw89_pci_config_intr_mask_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x3439ff1b rtw89_pci_remove +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x654f40a2 rtw89_pci_enable_intr_v1 EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x6efd9f2c rtw89_bd_ram_table_dual EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x71162055 rtw89_bd_ram_table_single -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7df3e706 rtw89_pci_config_intr_mask_v1 -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x95c13d78 rtw89_pci_fill_txaddr_info_v1 -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x962a21c9 rtw89_pci_fill_txaddr_info EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x9ce0961b rtw89_pci_ch_dma_addr_set -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xa23327db rtw89_pci_disable_intr_v1 -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xaa04b9f2 rtw89_pci_ltr_set_v1 -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xbf6b781b rtw89_pci_ltr_set -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xcd0105aa rtw89_pci_probe -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xdf33cf91 rtw89_pci_enable_intr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xafdd8c83 rtw89_pci_disable_intr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xb6454b48 rtw89_pci_fill_txaddr_info_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xbc699a8e rtw89_pci_ltr_set +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xc35f9fb4 rtw89_pci_enable_intr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xc9b66721 rtw89_pci_ltr_set_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xd2fc59f1 rtw89_pci_recognize_intrs_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xef3d11aa rtw89_pci_fill_txaddr_info EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xf630d9a9 rtw89_pci_ch_dma_addr_set_v1 -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xfd879875 rtw89_pm_ops -EXPORT_SYMBOL drivers/net/wireless/rsi/rsi_91x 0x70645dcc rsi_config_wowlan -EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x4b0e6ce7 wl12xx_is_dummy_packet -EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x7d932f1e wlcore_tx_complete -EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xb6d7d611 wl1271_free_tx_id -EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xd9e20d18 wlcore_calc_packet_alignment -EXPORT_SYMBOL drivers/nfc/fdp/fdp 0x93d8548e fdp_nci_probe -EXPORT_SYMBOL drivers/nfc/fdp/fdp 0xe95d0fef fdp_nci_remove -EXPORT_SYMBOL drivers/nfc/microread/microread 0x4d0176a4 microread_probe -EXPORT_SYMBOL drivers/nfc/microread/microread 0xe5119552 microread_remove -EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x55b02a47 nxp_nci_probe -EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0xe64864de nxp_nci_remove -EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0xfad55d0e nxp_nci_fw_recv_frame -EXPORT_SYMBOL drivers/nfc/pn533/pn533 0x3eb6f012 pn533_recv_frame -EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x658776bf pn544_hci_probe -EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x870665e4 pn544_hci_remove -EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x078f29ae s3fwrn5_phy_power_ctrl -EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x14e6bf67 s3fwrn5_recv_frame -EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x2a60453f s3fwrn5_remove +EXPORT_SYMBOL drivers/net/wireless/rsi/rsi_91x 0xfd7a0aeb rsi_config_wowlan +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x5abd1ba8 wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x71a82d7b wlcore_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xe408c163 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xf1445e21 wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/nfc/fdp/fdp 0x5294d06f fdp_nci_probe +EXPORT_SYMBOL drivers/nfc/fdp/fdp 0xc13d4789 fdp_nci_remove +EXPORT_SYMBOL drivers/nfc/microread/microread 0x5c7c0e30 microread_remove +EXPORT_SYMBOL drivers/nfc/microread/microread 0xce1a07db microread_probe +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x578d97c1 nxp_nci_remove +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0xea87b7c7 nxp_nci_fw_recv_frame +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0xef51be26 nxp_nci_probe +EXPORT_SYMBOL drivers/nfc/pn533/pn533 0x58fa579e pn533_recv_frame +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xe719fed3 pn544_hci_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xe9092f1b pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x4e62a324 s3fwrn5_phy_power_ctrl EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x774203fc s3fwrn5_phy_set_wake +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xb8018be4 s3fwrn5_probe +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xbe38b0e7 s3fwrn5_recv_frame +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xec794842 s3fwrn5_remove EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xedb12f10 s3fwrn5_phy_set_mode EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xf2ab60da s3fwrn5_phy_get_mode -EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xfea39f5b s3fwrn5_probe -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x1a827200 ndlc_send -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x2d600943 st_nci_vendor_cmds_init -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x7acd88cc ndlc_open -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x99799761 st_nci_se_deinit -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xa1dc22a4 ndlc_remove -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xb0dce1b0 ndlc_close -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xb1f2e714 st_nci_se_init -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xcf65fa4a ndlc_recv -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xfac914b1 st_nci_se_io -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xfea52c4b ndlc_probe -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x0fb9333d st21nfca_vendor_cmds_init -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x20e2d79c st21nfca_connectivity_event_received -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x21c971fa st21nfca_hci_se_io -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x385e370c st21nfca_se_deinit -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x4f2be17f st21nfca_hci_enable_se -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x6ff13b67 st21nfca_dep_deinit -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x9c8bf75a st21nfca_hci_disable_se -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xb201f27f st21nfca_dep_init -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xb3a5ed3f st21nfca_hci_probe -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xb7363146 st21nfca_im_send_dep_req -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xc5d188e3 st21nfca_tm_send_dep_res -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xcffa3f6c st21nfca_hci_discover_se -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xd5a26765 st21nfca_hci_loopback_event_received -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xd90944fb st21nfca_im_send_atr_req -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xdce73204 st21nfca_se_init -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xea85eaf1 st21nfca_hci_remove -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xf1b7ebef st21nfca_apdu_reader_event_received -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xfdc94f18 st21nfca_dep_event_received -EXPORT_SYMBOL drivers/ntb/ntb 0x0584f32d ntb_link_event -EXPORT_SYMBOL drivers/ntb/ntb 0x0cc950c8 ntb_set_ctx -EXPORT_SYMBOL drivers/ntb/ntb 0x10bcca0c ntbm_msi_request_threaded_irq -EXPORT_SYMBOL drivers/ntb/ntb 0x1eb30441 ntb_default_peer_port_count -EXPORT_SYMBOL drivers/ntb/ntb 0x3e633a92 ntb_unregister_client -EXPORT_SYMBOL drivers/ntb/ntb 0x419b9231 ntb_msi_clear_mws -EXPORT_SYMBOL drivers/ntb/ntb 0x429184ce ntb_unregister_device -EXPORT_SYMBOL drivers/ntb/ntb 0x45f86f5c ntb_db_event -EXPORT_SYMBOL drivers/ntb/ntb 0x5896c921 ntb_default_peer_port_idx -EXPORT_SYMBOL drivers/ntb/ntb 0x628f4249 ntb_msg_event -EXPORT_SYMBOL drivers/ntb/ntb 0x63cdf50e ntb_default_peer_port_number -EXPORT_SYMBOL drivers/ntb/ntb 0x91e21fff ntbm_msi_free_irq -EXPORT_SYMBOL drivers/ntb/ntb 0x9afb1fca __ntb_register_client -EXPORT_SYMBOL drivers/ntb/ntb 0xafe7bda2 ntb_register_device -EXPORT_SYMBOL drivers/ntb/ntb 0xb62f10e3 ntb_msi_peer_addr -EXPORT_SYMBOL drivers/ntb/ntb 0xba81aabb ntb_default_port_number -EXPORT_SYMBOL drivers/ntb/ntb 0xca4aa735 ntb_msi_init -EXPORT_SYMBOL drivers/ntb/ntb 0xd0d4e283 ntb_msi_setup_mws -EXPORT_SYMBOL drivers/ntb/ntb 0xe61be404 ntb_msi_peer_trigger -EXPORT_SYMBOL drivers/ntb/ntb 0xfbe24fd5 ntb_clear_ctx -EXPORT_SYMBOL drivers/nvdimm/nd_btt 0x059fd65e nvdimm_namespace_attach_btt -EXPORT_SYMBOL drivers/nvdimm/nd_btt 0x2b636796 nvdimm_namespace_detach_btt -EXPORT_SYMBOL drivers/parport/parport 0x08a955cd parport_write -EXPORT_SYMBOL drivers/parport/parport 0x0d25e997 parport_find_number -EXPORT_SYMBOL drivers/parport/parport 0x0e621b4f parport_remove_port -EXPORT_SYMBOL drivers/parport/parport 0x13c7948b parport_del_port -EXPORT_SYMBOL drivers/parport/parport 0x276518ad parport_get_port -EXPORT_SYMBOL drivers/parport/parport 0x48477123 parport_ieee1284_epp_read_data -EXPORT_SYMBOL drivers/parport/parport 0x4cdae2bb parport_put_port +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x07d47546 st_nci_se_init +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x1345cc07 ndlc_close +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x2fb8684e ndlc_probe +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x2fd80c49 ndlc_remove +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x33d9b442 ndlc_recv +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x6e1a85ba st_nci_se_io +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xa3930a82 st_nci_vendor_cmds_init +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xcbe6e269 ndlc_send +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xce2dafab ndlc_open +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xec7d71d0 st_nci_se_deinit +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x1a7e999a st21nfca_hci_enable_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x21045744 st21nfca_dep_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x23b2cc39 st21nfca_hci_probe +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x2a2f10a2 st21nfca_im_send_dep_req +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x34f0a667 st21nfca_hci_discover_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x4246db02 st21nfca_hci_loopback_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x4b8a29ae st21nfca_dep_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x67ba2514 st21nfca_hci_se_io +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7dcc8edf st21nfca_se_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x82bf0a14 st21nfca_connectivity_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x83a51b26 st21nfca_tm_send_dep_res +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x8a9794de st21nfca_im_send_atr_req +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x8b9cb309 st21nfca_vendor_cmds_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xa736b786 st21nfca_apdu_reader_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xaa3bd8d9 st21nfca_hci_disable_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xb16332dd st21nfca_dep_deinit +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xdcd957b4 st21nfca_se_deinit +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xed3cfef4 st21nfca_hci_remove +EXPORT_SYMBOL drivers/ntb/ntb 0x049f0c07 ntbm_msi_free_irq +EXPORT_SYMBOL drivers/ntb/ntb 0x19493611 ntb_register_device +EXPORT_SYMBOL drivers/ntb/ntb 0x430db958 ntb_set_ctx +EXPORT_SYMBOL drivers/ntb/ntb 0x5cdbc8e4 ntb_msi_peer_addr +EXPORT_SYMBOL drivers/ntb/ntb 0x629dd99f ntb_default_peer_port_count +EXPORT_SYMBOL drivers/ntb/ntb 0x6598b2be ntb_msg_event +EXPORT_SYMBOL drivers/ntb/ntb 0x749851dc ntbm_msi_request_threaded_irq +EXPORT_SYMBOL drivers/ntb/ntb 0x7cdca2e3 ntb_default_peer_port_number +EXPORT_SYMBOL drivers/ntb/ntb 0x84059f60 ntb_unregister_client +EXPORT_SYMBOL drivers/ntb/ntb 0x8a1cd419 ntb_msi_init +EXPORT_SYMBOL drivers/ntb/ntb 0x92851fe4 ntb_unregister_device +EXPORT_SYMBOL drivers/ntb/ntb 0x964b0cd0 ntb_msi_setup_mws +EXPORT_SYMBOL drivers/ntb/ntb 0xa11e9829 ntb_default_port_number +EXPORT_SYMBOL drivers/ntb/ntb 0xbb603c52 ntb_msi_clear_mws +EXPORT_SYMBOL drivers/ntb/ntb 0xbf1c54f5 ntb_clear_ctx +EXPORT_SYMBOL drivers/ntb/ntb 0xcae165e3 ntb_db_event +EXPORT_SYMBOL drivers/ntb/ntb 0xd03f2d31 ntb_msi_peer_trigger +EXPORT_SYMBOL drivers/ntb/ntb 0xedc289d8 ntb_link_event +EXPORT_SYMBOL drivers/ntb/ntb 0xf2c85a0a __ntb_register_client +EXPORT_SYMBOL drivers/ntb/ntb 0xf321b586 ntb_default_peer_port_idx +EXPORT_SYMBOL drivers/nvdimm/nd_btt 0x5c7844e1 nvdimm_namespace_detach_btt +EXPORT_SYMBOL drivers/nvdimm/nd_btt 0xf6998cb0 nvdimm_namespace_attach_btt +EXPORT_SYMBOL drivers/parport/parport 0x075a2c0c parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x173d3bf0 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x1cdcf064 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x1eaf2534 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x1fceaaea parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x361f3881 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x398c3757 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x3f013379 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x40fd79ad parport_ieee1284_read_byte EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt -EXPORT_SYMBOL drivers/parport/parport 0x4eb55cb4 parport_ieee1284_epp_write_data -EXPORT_SYMBOL drivers/parport/parport 0x5c226d68 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x4ec0d30e parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x57693c57 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x5804a7e1 parport_put_port EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler -EXPORT_SYMBOL drivers/parport/parport 0x6333008e parport_wait_event -EXPORT_SYMBOL drivers/parport/parport 0x65d17636 parport_ieee1284_epp_write_addr -EXPORT_SYMBOL drivers/parport/parport 0x70b7e2f7 parport_ieee1284_write_compat -EXPORT_SYMBOL drivers/parport/parport 0x7a7c386c parport_announce_port -EXPORT_SYMBOL drivers/parport/parport 0x7aaaa0ca parport_unregister_driver -EXPORT_SYMBOL drivers/parport/parport 0x7ff0d7d1 parport_read -EXPORT_SYMBOL drivers/parport/parport 0x8a7b87f5 parport_claim_or_block -EXPORT_SYMBOL drivers/parport/parport 0x8b60d49a parport_release -EXPORT_SYMBOL drivers/parport/parport 0x8e269dd2 parport_wait_peripheral -EXPORT_SYMBOL drivers/parport/parport 0xbd9f9cb7 parport_ieee1284_ecp_read_data -EXPORT_SYMBOL drivers/parport/parport 0xd4df4170 parport_ieee1284_read_byte -EXPORT_SYMBOL drivers/parport/parport 0xd9a8febd parport_unregister_device -EXPORT_SYMBOL drivers/parport/parport 0xdb2db8d9 parport_claim -EXPORT_SYMBOL drivers/parport/parport 0xdbeee643 parport_set_timeout -EXPORT_SYMBOL drivers/parport/parport 0xdcb1fe48 parport_ieee1284_ecp_write_addr -EXPORT_SYMBOL drivers/parport/parport 0xe323c009 __parport_register_driver -EXPORT_SYMBOL drivers/parport/parport 0xe3f22092 parport_ieee1284_epp_read_addr -EXPORT_SYMBOL drivers/parport/parport 0xee01732e parport_negotiate -EXPORT_SYMBOL drivers/parport/parport 0xf0c55100 parport_ieee1284_read_nibble -EXPORT_SYMBOL drivers/parport/parport 0xf7d5d4ca parport_ieee1284_ecp_write_data -EXPORT_SYMBOL drivers/parport/parport 0xf8638487 parport_register_port -EXPORT_SYMBOL drivers/parport/parport 0xfa53f021 parport_register_dev_model -EXPORT_SYMBOL drivers/parport/parport_pc 0x61497581 parport_pc_probe_port -EXPORT_SYMBOL drivers/parport/parport_pc 0x9d9a5cc9 parport_pc_unregister_port -EXPORT_SYMBOL drivers/regulator/rohm-regulator 0xf819e513 rohm_regulator_set_dvs_levels +EXPORT_SYMBOL drivers/parport/parport 0x679124d6 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x6f654147 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x726462ef parport_register_dev_model +EXPORT_SYMBOL drivers/parport/parport 0x76a672a0 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x78f774f1 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x79d830f0 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x7c192cb9 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x86798d63 __parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x8a28fac8 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x8f858e42 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x920ab04e parport_read +EXPORT_SYMBOL drivers/parport/parport 0x963e2648 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x99f1a389 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x9fe8f61c parport_del_port +EXPORT_SYMBOL drivers/parport/parport 0xb5f171ce parport_release +EXPORT_SYMBOL drivers/parport/parport 0xb62907f8 parport_write +EXPORT_SYMBOL drivers/parport/parport 0xbd93d1c9 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xe479e3f9 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xfb4866fa parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport_pc 0xe80b2b9b parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xef297b05 parport_pc_probe_port +EXPORT_SYMBOL drivers/regulator/rohm-regulator 0x5a7fb2b4 rohm_regulator_set_dvs_levels EXPORT_SYMBOL drivers/rpmsg/qcom_glink 0xd7119b40 qcom_glink_native_rx -EXPORT_SYMBOL drivers/rpmsg/rpmsg_char 0x0dc9f87c rpmsg_chrdev_eptdev_destroy -EXPORT_SYMBOL drivers/rpmsg/rpmsg_char 0x8b9d4057 rpmsg_chrdev_eptdev_create -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x0a6c00ed rpmsg_sendto -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x156d8d43 rpmsg_send_offchannel -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x1a8e44da rpmsg_poll -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x1b792fb8 rpmsg_send -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x1fea1415 rpmsg_register_device -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x21a00ae0 rpmsg_trysend_offchannel -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x2a246a58 rpmsg_release_channel -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x3410a443 rpmsg_register_device_override -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x3e130c19 __register_rpmsg_driver -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x51b8dcbb rpmsg_destroy_ept -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x63cf4050 unregister_rpmsg_driver -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x767b46e8 rpmsg_create_ept -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7722a74d rpmsg_unregister_device -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x962a0ef5 rpmsg_trysendto -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xacc27fd5 rpmsg_class -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xbda5a97f rpmsg_get_mtu -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xc37a2125 rpmsg_find_device -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xc93c1481 rpmsg_trysend -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xe3c29b01 rpmsg_create_channel -EXPORT_SYMBOL drivers/rpmsg/rpmsg_ns 0x540b6fad rpmsg_ns_register_device -EXPORT_SYMBOL drivers/scsi/esp_scsi 0x1553a074 scsi_esp_template +EXPORT_SYMBOL drivers/rpmsg/rpmsg_char 0xa054da03 rpmsg_chrdev_eptdev_destroy +EXPORT_SYMBOL drivers/rpmsg/rpmsg_char 0xaacbd0e6 rpmsg_chrdev_eptdev_create +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x10b1579b rpmsg_create_ept +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x168d93de rpmsg_release_channel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x1c46440b __register_rpmsg_driver +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x2608a18a rpmsg_unregister_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x2dfd7951 rpmsg_trysend +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x3f9e7e36 rpmsg_trysendto +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x659e7e9c rpmsg_send_offchannel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x79e7b170 rpmsg_find_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x843ec7c6 rpmsg_trysend_offchannel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x857ff6a4 rpmsg_get_mtu +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x8b996177 rpmsg_register_device_override +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x93492eec rpmsg_send +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xa57a3655 rpmsg_poll +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xb05a6d3e rpmsg_create_channel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xb6f2c4d9 rpmsg_register_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xba09d1b6 rpmsg_class +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xbab38d6f rpmsg_sendto +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xc2b70336 unregister_rpmsg_driver +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xc2d04406 rpmsg_destroy_ept +EXPORT_SYMBOL drivers/rpmsg/rpmsg_ns 0xe107ce61 rpmsg_ns_register_device +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x2ad43731 scsi_esp_template +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x3605c36b scsi_esp_register EXPORT_SYMBOL drivers/scsi/esp_scsi 0x4a29ab38 scsi_esp_intr -EXPORT_SYMBOL drivers/scsi/esp_scsi 0x8d1c60d0 scsi_esp_unregister -EXPORT_SYMBOL drivers/scsi/esp_scsi 0x91e625ff scsi_esp_cmd -EXPORT_SYMBOL drivers/scsi/esp_scsi 0xc9ec5b42 scsi_esp_register -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00a83a13 fcoe_ctlr_link_down -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x244f6a56 fcoe_ctlr_els_send -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2ad14486 fcoe_ctlr_set_fip_mode -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x4e858fd4 fcoe_fcf_get_selected -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9f6949fc fcoe_ctlr_init -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb6e282a9 fcoe_ctlr_link_up -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xba5d9dbc fcoe_ctlr_recv -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc2dffda4 fcoe_transport_attach -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc470a5fd fcoe_ctlr_destroy -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd334e843 fcoe_ctlr_recv_flogi -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd74cf183 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x96c9742f scsi_esp_unregister +EXPORT_SYMBOL drivers/scsi/esp_scsi 0xfc0a62ba scsi_esp_cmd +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x40b3ddbc fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x427a8448 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x4ee59257 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x89e6fd96 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9af4ae2b fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xbc8b80b8 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc44153f6 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc8e15070 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe820e6dd fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf651be8a fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xff4bbfa3 fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00069f39 fc_fcp_init EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0072234d fc_seq_set_resp -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x01e6ef96 fc_fabric_login -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x065e3e2a fc_eh_device_reset -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0db2506d fc_vport_setlink -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0e0f8945 fc_exch_mgr_free -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1008de0d fc_lport_reset -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x106eba51 fc_exch_mgr_list_clone -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x14ab2876 fc_exch_mgr_reset -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1a759393 fc_seq_assign -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1b76cfa0 fc_queuecommand -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2128c2f2 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x03dedf08 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x06b458d9 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ab045fc fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0cc8b5f0 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1d1bdd8a fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2180374e fc_lport_bsg_request EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2d8165b1 fc_lport_destroy -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x30d5c2d5 fc_exch_init -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3b96436f fc_linkup -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3c0188fc fc_rport_create -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3f50f7e2 fc_get_host_port_state -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x556c382a fc_rport_recv_req -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x58fcc2d8 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x23fa505a fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2e293406 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2e8889da fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x30708f40 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3fec6b66 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x401a64d5 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x42b4ebad fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x43e77f95 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4a59c857 fc_lport_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4b342d79 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4f242aca fc_rport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x55b6f59b fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x584a405f fc_vport_setlink EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x599a5067 fc_lport_logo_resp -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5c165067 fc_fc4_register_provider -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5c7b2698 fc_lport_bsg_request -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5ced4dd6 fc_disc_init -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5db28b82 fc_vport_id_lookup -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6379eed4 fc_fabric_logoff -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6a546e93 fc_exch_seq_send -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e024188 fc_rport_lookup -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7180119a fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5b41b826 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5bd9d7ad fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5be8b272 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5df07601 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5ff50aa2 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6757488e fc_exch_update_stats EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x725fa7f3 fc_lport_flogi_resp -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x78387b35 fc_elsct_init -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x795f6a7d fc_seq_send -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7b853b6c fc_lport_iterate -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7d77f5ca fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x779de0cb fc_rport_lookup EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7f3407a7 fc_seq_start_next EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x811811e0 fc_exch_done -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x85f57d5d fc_slave_alloc -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x88346927 fc_linkdown -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8ad5e3d6 fc_set_mfs -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8f1a8094 fc_lport_set_local_id -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x93c4f451 fc_fcp_destroy -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x943a30bc fc_disc_config -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9d4c1fec fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x82a7336b fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x83ab6ae3 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x852f1673 fc_seq_assign +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x85c47a95 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8a3ff424 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8b288714 fc_rport_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x995198c0 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9a7eb924 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9c2076b7 fc_lport_set_local_id EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9d50ed7e fc_rport_destroy EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9e29564d fc_frame_alloc_fill -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9fff7c74 fc_set_rport_loss_tmo -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa181d01d fc_lport_recv EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa1bcd198 fc_cpu_mask EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa2469f5f fc_frame_crc_check -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa34e7e23 fc_exch_recv -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa44eefa8 fc_get_host_stats -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa82b4239 fc_rport_login -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xabe8c310 fc_rport_terminate_io -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaec85e1a fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa3de0061 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa3fd797b fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xad5bfd51 fc_fabric_logoff EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb0ddd5a1 fc_rport_flush_queue -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbcc8d1df fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbce55b7a fc_exch_seq_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc366659d fc_seq_send EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc5d3c86f fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc70a698f fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xca30c709 fc_rport_login EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb34db88 fc_fill_reply_hdr -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb7c79f3 fc_exch_mgr_add -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcbc02fc7 fc_fc4_deregister_provider -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcc60aff9 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb9e5518 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe06796c0 fc_rport_recv_req EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe0c55b9f fc_lport_notifier_head -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe563ef1e fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe347543e fc_eh_host_reset EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe5c9e2e0 _fc_frame_alloc -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xea5ddee8 fc_rport_logoff -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf5d5b2ff fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf1093b4b fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf24711c8 fc_disc_config EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfa4667d1 fc_seq_release -EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x043fbc0a sas_suspend_ha -EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x29f3c407 sas_resume_ha_no_sync -EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x4a854bc6 sas_resume_ha +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfcb2be49 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xff312393 fc_vport_id_lookup EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x4a8e3d34 try_test_sas_gpio_gp_bit -EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x6aa22777 sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x632b6252 sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xa0cea27e sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xd13ec64a sas_resume_ha_no_sync +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xe5a5381b sas_resume_ha EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xa21fafb9 mraid_mm_adapter_app_handle EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xb2cf7c01 mraid_mm_unregister_adp -EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xd220a968 mraid_mm_register_adp -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x06bd504b qlt_stop_phase2 -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x5d4f2eba qlt_enable_vha -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x6159b921 qlt_abort_cmd -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x74790727 qlt_xmit_tm_rsp -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xa5912344 qlt_xmit_response -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xafd80907 qlt_rdy_to_xfer -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xbf209dda qlt_free_mcmd -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xbfa531b9 qlt_lport_deregister -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xce023049 qlt_unreg_sess -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xf1761a25 qlt_free_cmd -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xf845874a qlt_stop_phase1 -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xff299bb6 qlt_lport_register -EXPORT_SYMBOL drivers/scsi/raid_class 0x8d98be88 raid_class_attach -EXPORT_SYMBOL drivers/scsi/raid_class 0xe15cdd36 raid_class_release -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1aaaeec6 fc_find_rport_by_wwpn -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x20ebea6c fc_vport_terminate -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x280b7d85 fc_release_transport +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xe5c388be mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x1c0c009b qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x21dffcd4 qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x2709b95a qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x281d5af8 qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x28f48dfc qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x5c45baba qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x93ed384b qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xa1d9f7c1 qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xc00e5ef1 qlt_abort_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xc6163e66 qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xd7da1b9d qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xe1f8c58a qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/raid_class 0x173d72db raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xb07eb2df raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x09d601f8 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x11f0f821 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2135f596 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x35270184 fc_host_post_vendor_event EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x375f8bbd fc_get_event_number -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x405ce6e7 fc_host_post_fc_event -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4e396740 fc_host_fpin_rcv -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x53def8fa fc_attach_transport -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5ba43eca fc_vport_create -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x84d026bf fc_remote_port_add -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x92c9df79 fc_remove_host -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9f7d5f03 fc_remote_port_delete -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9fac12f4 fc_block_scsi_eh -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa28929e9 fc_host_post_event -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xad33a315 fc_host_post_vendor_event -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xca8fc627 scsi_is_fc_rport -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xcf6c23f0 fc_eh_timed_out -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd4541b29 fc_block_rport -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe896973d fc_remote_port_rolechg -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0135cb0a sas_phy_delete -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x04afab3a sas_remove_host -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1c367960 sas_phy_free -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2353f7e3 sas_rphy_unlink -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2dd9ec7a scsi_is_sas_phy -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3a83b673 sas_rphy_delete -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x569b6a62 sas_read_port_mode_page -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5f54c19d sas_rphy_remove -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x603e938a scsi_is_sas_port -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x63c02387 sas_get_address -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6c3b1b06 sas_phy_add -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x718df654 sas_attach_transport -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x73867739 sas_port_add_phy -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x86f1804a sas_port_add -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8fe15198 sas_port_alloc_num -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9a7d76b8 sas_phy_alloc -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9ce6d0d6 scsi_is_sas_rphy -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa203f7ce sas_port_delete -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa22fa31a sas_end_device_alloc -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa57dc791 sas_port_get_phy -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb6f5f88a sas_port_free -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb9344470 sas_port_alloc -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbeb3c43b sas_rphy_add -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd77ca8d4 sas_release_transport -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xde55511f sas_rphy_free -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xed47bd00 sas_port_delete_phy -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xed67c891 sas_expander_alloc -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfa6d825c sas_remove_children -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfb3e6f6e sas_port_mark_backlink -EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x022da3cb spi_dv_device -EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x0fc39daa spi_display_xfer_agreement -EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x1705374b spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5b57a5e7 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x610450c1 fc_block_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x71e60ffc scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7dd4364b fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x90d32b7e fc_host_fpin_rcv +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x91e0bffb fc_find_rport_by_wwpn +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa8608f47 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xaf46c5a6 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd9b5d98f fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdaa72494 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdd64d723 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xeec720a6 fc_host_post_fc_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfb6f7520 fc_eh_timed_out +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0b9ada3a scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0c08bc44 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x134e6fac sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x135a2034 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2fe613d9 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3227ac25 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3a3b878b sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4e09194d sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x55d7307f scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x59b3f902 sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5b649598 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x64e76ba1 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x669d051c sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8296b09d sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8910f0fa sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8961b32d sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8c8c7087 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x903ca7fd sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x96852e48 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x97d54b5b sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9dceaf17 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa7fab9cf sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb5c552cc sas_get_address +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc059dbd6 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd4569fb9 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd45bfa72 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdb2c662f sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xec0a59f1 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfb4098d8 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x0d14082c spi_display_xfer_agreement EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg -EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x70515b0f spi_release_transport -EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xb77a64e3 spi_schedule_dv_device -EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x196ed549 srp_rport_get +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x6cbfd038 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7a294db1 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x8f4bba1e spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xcd0609ca spi_release_transport EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x405b6e05 srp_parse_tmo -EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x64c24827 srp_rport_put -EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xa5c40c2c srp_reconnect_rport -EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xd527b66e srp_start_tl_fail_timers -EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xf840e019 srp_timed_out -EXPORT_SYMBOL drivers/soc/microchip/mpfs-sys-controller 0x4fd61d3a mpfs_sys_controller_get +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x65e23fff srp_rport_put +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xb4b60ace srp_rport_get +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xde53e8ce srp_reconnect_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xebb3b47d srp_timed_out +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xf9d30d2b srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/soc/microchip/mpfs-sys-controller 0x33506abc mpfs_sys_controller_get EXPORT_SYMBOL drivers/soc/microchip/mpfs-sys-controller 0xbc23fd0e mpfs_blocking_transaction EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0x1c76ea4d pdr_restart_pd EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0x432975e6 pdr_add_lookup EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0x47b2ed49 pdr_handle_alloc EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0xf618ca5b pdr_handle_release -EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x1fc0e9a5 qmi_txn_init -EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x20fb3e5e qmi_txn_cancel -EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x25115b37 qmi_add_lookup +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x0b11ebb8 qmi_handle_release +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x25b731ca qmi_send_indication EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x28ac2fd2 qmi_encode_message -EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x47b0ce29 qmi_txn_wait EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x4cd2fe40 qmi_response_type_v01_ei -EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x598ad153 qmi_send_response +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x548d3bd5 qmi_send_response EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x6051451d qmi_decode_message -EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x6106d7ed qmi_send_indication -EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xad2f66a5 qmi_handle_init -EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xb7b5712e qmi_add_server -EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xd8f4ec16 qmi_send_request -EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xfe3dd38b qmi_handle_release -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x020c8c88 sdw_bwrite_no_pm_unlocked -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x03a9f4e1 sdw_update -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x08bef8b1 sdw_clear_slave_status -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x0ac3a0ad sdw_read_no_pm -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x0b6baf06 sdw_stream_remove_slave -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x10822fe0 sdw_handle_slave_status +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x6749e1de qmi_add_lookup +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x760bf54c qmi_txn_wait +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x8e218f38 qmi_send_request +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x94605332 qmi_txn_init +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x9bb0b54b qmi_handle_init +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xd4780241 qmi_txn_cancel +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xdda72018 qmi_add_server +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x01272bc7 sdw_slave_add +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x1058f26f sdw_nread EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x16d1706b sdw_prepare_stream -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x197f2385 sdw_bus_master_add +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x19a737e5 sdw_stream_add_master EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x1deee061 sdw_find_row_index -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x23d0baec sdw_read -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x2401cb07 sdw_show_ping_status -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x266ddf9c sdw_write_no_pm -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x2e146fff sdw_stream_add_slave +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x1f0da506 sdw_read +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x28d2811d sdw_stream_add_slave +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x2e61a6dc sdw_write +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x350e77e7 sdw_bus_clk_stop EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x3b0a8582 sdw_startup_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x4000c91b sdw_nwrite +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x47c326db sdw_bread_no_pm_unlocked +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x48443366 sdw_compare_devid EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x4cde88bf sdw_disable_stream -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x5ad43f6b sdw_bus_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x581d1571 sdw_stream_remove_slave +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x59806b4b sdw_slave_read_prop EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x60e31fbb sdw_find_col_index -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x6a1c7759 sdw_slave_add +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x660ed86f sdw_nwrite_no_pm EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x6f95b16b sdw_shutdown_stream EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x71891d59 sdw_deprepare_stream -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x83234ac3 sdw_stream_add_master -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x8732284a sdw_nread -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x96db5558 sdw_nwrite_no_pm -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x97f20386 sdw_stream_remove_master +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x81c44b6d sdw_bus_exit_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x9958ceaf sdw_master_read_prop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x9962c4ee sdw_stream_remove_master +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x9c271793 sdw_clear_slave_status +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x9c5d7b5d sdw_bus_master_add EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x9e122d79 sdw_alloc_stream -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xa4591249 sdw_nread_no_pm -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xb5ee26d0 sdw_compare_devid -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xb68b823e sdw_bus_prep_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xa0ef4693 sdw_extract_slave_id +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xa44f12b4 sdw_show_ping_status +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xa799f166 sdw_bus_master_delete EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xba54b904 sdw_cols EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xbbec2c2e sdw_enable_stream -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xc027306b sdw_update_no_pm -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xd179c738 sdw_bread_no_pm_unlocked -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xd69ae39f sdw_bus_exit_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xbee13359 sdw_update +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xcd236b0a sdw_bus_prep_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xd5af0492 sdw_nread_no_pm EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xda5bce09 sdw_release_stream -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xda9af0e6 sdw_master_read_prop -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xddbb7d09 sdw_nwrite -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xe8156ca3 sdw_slave_read_prop -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xed137b6e sdw_bus_master_delete +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xdee0fb94 sdw_update_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xdf2f26a7 sdw_read_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xe5b12a6a sdw_write_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xe8182532 sdw_bwrite_no_pm_unlocked EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xf53ba0b8 sdw_rows -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xf573c4ec sdw_extract_slave_id -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xf6157a0c sdw_write -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x0439a7df cdns_xfer_msg -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x05d5d3fd cdns_bus_conf -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x05ffe2d5 cdns_read_ping_status -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x17ef3146 cdns_set_sdw_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xf54acf21 sdw_handle_slave_status +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x22fa69df sdw_cdns_probe +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x25230dc7 sdw_cdns_enable_interrupt +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x2b4df55c sdw_cdns_config_update +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x2edc304e sdw_cdns_config_stream EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x34712074 sdw_cdns_irq -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x3a4d7e06 sdw_cdns_probe -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x4125dd8f sdw_cdns_exit_reset -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x45636323 sdw_cdns_alloc_pdi -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x4e964aba sdw_cdns_init -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x5b3817f1 sdw_cdns_is_clock_stop -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x791b3c67 sdw_cdns_check_self_clearing_bits -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x875e6d61 sdw_cdns_pdi_init -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x96922a9c sdw_cdns_config_update_set_wait -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x9f608203 sdw_cdns_clock_restart -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xa5004b17 sdw_cdns_clock_stop -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xb9d602f8 sdw_cdns_enable_interrupt -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xbcc36aac sdw_cdns_config_update -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xca0ae077 sdw_cdns_config_stream -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xf7038bfd cdns_xfer_msg_defer -EXPORT_SYMBOL drivers/soundwire/soundwire-generic-allocation 0x66536ce5 sdw_compute_slave_ports -EXPORT_SYMBOL drivers/soundwire/soundwire-generic-allocation 0xfa118940 sdw_compute_params -EXPORT_SYMBOL drivers/ssb/ssb 0x158b9723 ssb_pcihost_register -EXPORT_SYMBOL drivers/ssb/ssb 0x160c1f9e ssb_device_is_enabled -EXPORT_SYMBOL drivers/ssb/ssb 0x1e2692c6 ssb_bus_powerup -EXPORT_SYMBOL drivers/ssb/ssb 0x25d6c476 ssb_bus_sdiobus_register -EXPORT_SYMBOL drivers/ssb/ssb 0x345864b8 ssb_driver_unregister -EXPORT_SYMBOL drivers/ssb/ssb 0x4f27bac7 ssb_clockspeed -EXPORT_SYMBOL drivers/ssb/ssb 0x4ff78a2e ssb_pmu_set_ldo_voltage -EXPORT_SYMBOL drivers/ssb/ssb 0x523d018e ssb_bus_may_powerdown -EXPORT_SYMBOL drivers/ssb/ssb 0x591644da ssb_pmu_set_ldo_paref -EXPORT_SYMBOL drivers/ssb/ssb 0x5b66f896 ssb_pcicore_dev_irqvecs_enable -EXPORT_SYMBOL drivers/ssb/ssb 0x657087bd ssb_commit_settings -EXPORT_SYMBOL drivers/ssb/ssb 0x6b4df064 ssb_bus_unregister -EXPORT_SYMBOL drivers/ssb/ssb 0x6d201134 ssb_set_devtypedata -EXPORT_SYMBOL drivers/ssb/ssb 0x72ec6dc4 ssb_device_disable -EXPORT_SYMBOL drivers/ssb/ssb 0xa52c5ff4 __ssb_driver_register -EXPORT_SYMBOL drivers/ssb/ssb 0xab5e3606 ssb_dma_translation -EXPORT_SYMBOL drivers/ssb/ssb 0xb7b51d50 ssb_bus_suspend -EXPORT_SYMBOL drivers/ssb/ssb 0xc3bb781d ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x4b6bbd34 sdw_cdns_pdi_init +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x4c389f77 sdw_cdns_init +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x5f862ce1 cdns_xfer_msg_defer +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x85528c4c cdns_xfer_msg +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x9dd3cac6 cdns_set_sdw_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x9e894459 sdw_cdns_clock_restart +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x9e957b15 sdw_cdns_config_update_set_wait +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xb288e950 sdw_cdns_exit_reset +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xb3f18a11 sdw_cdns_is_clock_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xba8c0790 cdns_read_ping_status +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xc22111d5 sdw_cdns_check_self_clearing_bits +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xefc1efb2 sdw_cdns_clock_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xf854d784 cdns_bus_conf +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xfd5d2a27 sdw_cdns_alloc_pdi +EXPORT_SYMBOL drivers/soundwire/soundwire-generic-allocation 0x7d75d11e sdw_compute_slave_ports +EXPORT_SYMBOL drivers/soundwire/soundwire-generic-allocation 0xaefcccd8 sdw_compute_params +EXPORT_SYMBOL drivers/ssb/ssb 0x003fb63f ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x07de5fc3 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x09741de9 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x097e9122 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x24dc00d6 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x2ec196a5 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x31164426 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x33ec8a5a ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x4abc9a0a ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x50bf2168 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x548feeb4 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x60b01d4a ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xa48ef4df ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xa4add61b ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xafc94295 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xb3fce1f0 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xb78fd41a ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0xbd375e14 ssb_pmu_set_ldo_paref EXPORT_SYMBOL drivers/ssb/ssb 0xcb17f1cb ssb_admatch_base -EXPORT_SYMBOL drivers/ssb/ssb 0xd6afab6b ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xd92fbb09 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xdb5bf7eb __ssb_driver_register EXPORT_SYMBOL drivers/ssb/ssb 0xdfc7c6ef ssb_admatch_size -EXPORT_SYMBOL drivers/ssb/ssb 0xe939c17f ssb_bus_resume -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x03e2a62a fbtft_read_spi -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x0b322035 fbtft_framebuffer_alloc -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x26b2a0c7 fbtft_init_display -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x2f7d9a57 fbtft_probe_common -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x366a08af fbtft_write_buf_dc -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x3dc851ab fbtft_write_reg16_bus8 -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x3dca60a9 fbtft_framebuffer_release -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x3eaeb1d0 fbtft_register_framebuffer -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x4715b121 fbtft_write_spi -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x53b00b33 fbtft_write_spi_emulate_9 -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x5d085d6a fbtft_write_vmem8_bus8 -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x63990708 fbtft_unregister_framebuffer -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x6e7a9590 fbtft_write_reg8_bus8 -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x74c9f12f fbtft_register_backlight -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x74e465a9 fbtft_write_vmem16_bus8 -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x75f0cd86 fbtft_write_vmem16_bus16 -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x81e93a46 fbtft_write_reg16_bus16 -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x863bf8da fbtft_dbg_hex -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x9043728f fbtft_write_gpio16_wr -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xa6c45dd3 fbtft_write_gpio8_wr -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xb72f4e98 fbtft_write_vmem16_bus9 -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xbe6afc54 fbtft_write_reg8_bus9 -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xdbb192d9 fbtft_write_gpio16_wr_latched -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xedc462c3 fbtft_unregister_backlight -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xef0756ff fbtft_remove_common -EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x8b4680fe gbaudio_module_update -EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0xac72bbdc gbaudio_unregister_module -EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0xf63d8539 gbaudio_register_module -EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x7f3874a7 adt7316_probe -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x04ab04da rtllib_wx_set_freq -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x066ca38d rtllib_sta_ps_send_null_frame -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x07215361 rtllib_start_send_beacons -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x177e93e1 dot11d_channel_map -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1e8c9d26 rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x01d2fa20 fbtft_write_spi_emulate_9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x0351a0eb fbtft_unregister_backlight +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x0612d69d fbtft_write_vmem8_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x06a45cd7 fbtft_write_spi +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x0ee2e3cf fbtft_write_reg8_bus9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x2981e341 fbtft_write_reg16_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x2da7d72d fbtft_framebuffer_alloc +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x37dfd186 fbtft_probe_common +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x49e2a53f fbtft_write_vmem16_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x56266fc9 fbtft_init_display +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x5b515203 fbtft_write_gpio16_wr +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x5f92623c fbtft_read_spi +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x621ba23c fbtft_framebuffer_release +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x66595bd2 fbtft_register_backlight +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x9cac7b27 fbtft_write_vmem16_bus16 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xa58f062a fbtft_write_reg8_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xd0a9e1d1 fbtft_register_framebuffer +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xd11b3a5e fbtft_remove_common +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xd22cbc15 fbtft_unregister_framebuffer +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xdad64d8d fbtft_dbg_hex +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xe242ebbe fbtft_write_buf_dc +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xea6e9905 fbtft_write_reg16_bus16 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xec64e09e fbtft_write_gpio8_wr +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xf33efafe fbtft_write_vmem16_bus9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xf35129ab fbtft_write_gpio16_wr_latched +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x3a1b6091 gbaudio_unregister_module +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x90a10646 gbaudio_module_update +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0xc9fb331b gbaudio_register_module +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x77ab8509 adt7316_probe +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0323a9a8 rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x03ac44de rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0590df52 dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1612802e rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x17cbcae8 rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1c123cf2 rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1ee0826b rtllib_wx_set_encode EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x22166084 rt_global_debug_component -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2489d563 rtllib_EnableIntelPromiscuousMode -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x29b56c10 free_rtllib -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x29d7fa0e rtllib_wx_set_rate -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x35ec5402 rtllib_stop_scan_syncro -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3845ca86 RemovePeerTS -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x41afea9e rtllib_wx_set_encode -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x443fb076 rtllib_stop_scan -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x44b329a4 rtllib_rx -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x573df92e rtllib_wx_get_name -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5f4db880 rtllib_wx_get_rate -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6816dfa8 rtllib_wx_set_scan -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x682194ef rtllib_stop_send_beacons -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6d5f1c36 rtllib_softmac_start_protocol -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x710efd73 rtllib_wx_get_power -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x72314654 rtllib_wx_get_freq -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x74648901 rtllib_wx_set_encode_ext -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7490e06d rtllib_ps_tx_ack -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x76539900 rtllib_xmit -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7b78c916 rtllib_wx_set_power -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7c7d097d rtllib_wx_get_encode -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8499254c rtllib_wx_get_mode -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x86f298d1 rtllib_wx_set_gen_ie -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x90fdbe03 rtllib_wx_set_essid -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9a8b8a66 rtllib_wx_get_essid -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9d8de0f2 rtllib_softmac_stop_protocol -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9e393142 HT_update_self_and_peer_setting -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa34c8303 rtllib_wx_set_auth -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa72947f0 dot11d_init -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xab973ac9 rtllib_wx_get_rts -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xaee1ac90 rtllib_wx_set_wap -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xafdf836b rtllib_start_scan_syncro -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb1f76280 rtllib_wx_set_mlme -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb5768a9f rtllib_reset_queue -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb8c6f7ee rtllib_act_scanning -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe106215 rtllib_DisableIntelPromiscuousMode -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc3d45099 rtllib_get_beacon -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdcac59b0 alloc_rtllib -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdff3230a rtllib_MgntDisconnect -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe1e46806 notify_wx_assoc_event -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe8e2b2d0 rtllib_wx_get_wap -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xed942489 rtllib_wx_set_rts -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf20367c2 rtllib_wx_set_mode -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf9658957 rtllib_wx_set_rawtx -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfcfd096e rtllib_legal_channel -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0716d974 ieee80211_wx_set_encode_ext -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0b62c77f ieee80211_stop_scan -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x100d25b1 ieee80211_wx_set_power -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x127bf107 dot11d_reset -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x16f9bdeb ieee80211_get_beacon -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x19511285 ieee80211_wx_get_freq -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1b0f7f80 ieee80211_rx_mgt -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1ef872c5 ieee80211_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2dc58ae3 rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2f5fe9c8 rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3324ecbc free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x35c87bdb rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x36a49592 rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x36aaed29 rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x39cc4a16 rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3ab5a34b rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x427964db RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4365ed01 rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x48f4b02c rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4e1503ae rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x50a51fbb rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5378559a rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x59fb97c3 rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5eceea1a rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x66388d66 rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x751585ca notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x799a7ac6 dot11d_channel_map +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7f45352b rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fde7f5a rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x84bc14e6 rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x874c1ee1 rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8d750a1a rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8fbbbe94 rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x90b5500a rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9460f8ad rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9797f755 rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa6c7c1d0 rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb398555b rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc53ab788 rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc56a5a35 rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xcb3f08ca rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xcd816043 alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd9db2df3 rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdcf6ecd5 rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xde3736f2 rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xea1add78 rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf4477e18 rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf4819f92 rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf7804593 HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfb7096a4 rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x052c7ce8 ieee80211_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x08218197 ieee80211_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0b440a9d ieee80211_txb_free +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0d04fbcd ieee80211_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x10104b50 ieee80211_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x10dae4da ieee80211_wx_get_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x11e782fc dot11d_get_max_tx_pwr_in_dbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x14f74d22 ieee80211_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1e797749 ieee80211_wpa_supplicant_ioctl EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x232e7944 ieee80211_wlan_frequencies -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x296ead53 ieee80211_txb_free -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2fd29652 ieee80211_softmac_start_protocol -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x328ff85c ieee80211_wx_set_rate -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3556e07b dot11d_update_country_ie -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x38e1eaeb is_legal_channel -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x462fd41a ieee80211_stop_queue_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x46660931 HTUpdateSelfAndPeerSetting -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x49f4d494 to_legal_channel -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4e38d4c9 ieee80211_wx_set_auth -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x51809de9 ieee80211_wx_set_freq -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5441d94d ieee80211_wx_get_power -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5ee1caf4 ieee80211_softmac_scan_syncro -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x63a0ad4f ieee80211_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2d7dbd8f ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x31080372 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x33522875 rtl8192u_dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x390c1b6e ieee80211_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x39c3a94d dot11d_update_country_ie +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5108f52a ieee80211_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x532dab06 ieee80211_softmac_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x53dba116 ieee80211_disassociate +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5859d1fa ieee80211_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5d3966a9 ieee80211_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6479b67c ieee80211_wx_set_rate EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6651f895 ieee80211_is_shortslot -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x71fc7506 ieee80211_wx_set_encode -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x777ae28e ieee80211_softmac_stop_protocol -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7a5e7730 ieee80211_wx_get_rate -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7dc3bed2 ieee80211_wake_queue_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8c6980a4 rtl8192u_dot11d_init -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x963af740 ieee80211_softmac_xmit -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9fafd6ef ieee80211_wx_get_name -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa4f11e7f ieee80211_wx_get_scan -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa662c406 ieee80211_wx_set_essid -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa903126f ieee80211_wx_set_wap -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaa360737 ieee80211_wpa_supplicant_ioctl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaac7d77e ieee80211_wx_get_rts -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xabf73392 ieee80211_wx_get_encode_ext -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb35b0a3c ieee80211_ps_tx_ack -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb414f4a4 dot11d_scan_complete -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb7d2055e ieee80211_wx_set_mode -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc5b387cd ieee80211_wx_get_encode -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc97ef0d9 ieee80211_wx_set_rts -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcaba35c8 ieee80211_wx_get_wap -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcd43a2b8 ieee80211_rx -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe22e38fa ieee80211_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x700b45ba ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x728ba20e ieee80211_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x772840b8 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7c58850c to_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7e620b88 ieee80211_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8efa0d28 ieee80211_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x96cc4cfc ieee80211_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9b81a875 ieee80211_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9f718dbf ieee80211_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaaec2b7a ieee80211_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xababd569 ieee80211_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xac6c8849 ieee80211_softmac_xmit +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xad057da6 ieee80211_rx +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaf48e7cc ieee80211_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb0b84b4c ieee80211_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb26c3754 ieee80211_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb62e7681 ieee80211_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb802ff51 ieee80211_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb82ad75f is_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb92ab1c8 dot11d_reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc586a970 ieee80211_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcb0d8ee9 ieee80211_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcc096bf9 ieee80211_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd0e03ab6 ieee80211_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde62373f ieee80211_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdede51e9 dot11d_scan_complete EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe3372510 ieee80211_is_54g -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe5db3a53 ieee80211_disassociate -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe91c5159 ieee80211_start_scan_syncro -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xec209113 ieee80211_wx_set_scan -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xed7c8cca ieee80211_stop_send_beacons -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xeef62bce notify_wx_assoc_event_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf10a7f18 ieee80211_wx_set_rawtx -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf1af6485 ieee80211_reset_queue -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf78c7703 SendDisassociation_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfd8b1f7e ieee80211_wx_set_gen_ie -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfe6e9879 dot11d_get_max_tx_pwr_in_dbm -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xff038a32 ieee80211_wx_get_mode -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x02d1710d iscsit_register_transport -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x03b3422b iscsit_tmr_post_handler -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0739f3b1 iscsit_check_dataout_hdr -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x08241911 iscsit_free_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x18e54887 iscsit_immediate_queue -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x232d503e iscsit_build_rsp_pdu -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x29d5794c iscsit_process_nop_out -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2ef2b2ec iscsit_build_reject -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3bae354d iscsit_process_scsi_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x41824595 iscsit_logout_post_handler -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x43735852 iscsi_change_param_sprintf -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x43fe7507 iscsit_unregister_transport -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x6d840afa iscsit_allocate_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fc4c200 iscsit_check_dataout_payload -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x80a8db95 __iscsit_check_dataout_hdr -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x82cbceb1 iscsit_increment_maxcmdsn -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x856d0175 iscsit_handle_snack -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8f8951b2 iscsit_queue_rsp -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x90acd4f2 iscsit_build_r2ts_for_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x91f93757 iscsit_add_cmd_to_immediate_queue -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x97474735 iscsit_process_text_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xaa2affe3 iscsit_add_reject -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xabdfe24a iscsit_handle_task_mgt_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xad7bf1bb iscsit_build_datain_pdu -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xae92aa52 iscsit_reject_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb342088e iscsit_build_task_mgt_rsp -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb7ad6506 iscsit_setup_nop_out -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbe27b45d iscsit_cause_connection_reinstatement -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbf757522 iscsit_find_cmd_from_itt -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbfc3d681 iscsit_build_nopin_rsp -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc6690b12 iscsit_thread_check_cpumask -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xcbca1fdf iscsit_get_datain_values -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xcd080c81 iscsit_build_logout_rsp -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd2267d90 iscsit_aborted_task -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd298653f iscsit_set_unsolicited_dataout -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xda6cede7 iscsit_handle_logout_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xdae31db2 iscsit_setup_text_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xdcd39578 iscsit_build_text_rsp -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xded53c34 iscsi_target_check_login_request -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe053ffa8 iscsit_response_queue -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe264d947 iscsit_stop_dataout_timer -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe3c4f913 iscsit_setup_scsi_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf018d546 iscsit_find_cmd_from_itt_or_dump -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf0f1aeb7 iscsit_release_cmd +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe3785352 ieee80211_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xecc05d30 ieee80211_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf0059192 ieee80211_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf4e297e0 ieee80211_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf54aac24 ieee80211_rx_mgt +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf9462a99 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfc994a54 ieee80211_reset_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x09b6ba24 __iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0ca52a1b iscsit_add_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x10734f94 iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x21490557 iscsit_aborted_task +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x280773b5 iscsi_target_check_login_request +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2badfb08 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2d03e44f iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2de4b582 iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x343cb25e iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3f51f2d7 iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x412e0a99 iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x50221d84 iscsit_queue_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5a557ba5 iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5cb3518c iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x63a6c203 iscsit_set_unsolicited_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x68104b86 iscsit_find_cmd_from_itt_or_dump +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x6b5d84bf iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x752716eb iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7d530a2e iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7ff3c2be iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x81d0491c iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x84983d02 iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8d5b2136 iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8d79eb3b iscsit_handle_snack +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x919f3e9d iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x93dd2421 iscsit_add_cmd_to_immediate_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9792aeef iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9daee6bd iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9e209e22 iscsi_change_param_sprintf +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9ecae9c7 iscsit_build_r2ts_for_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa54941df iscsit_get_datain_values +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xab7efa88 iscsit_free_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb25fbca9 iscsit_immediate_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb8af37fc iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbc524bf8 iscsit_build_datain_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc90e7b44 iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xcfb905b1 iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd558b4eb iscsit_find_cmd_from_itt +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd67353c9 iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd9b73933 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe3e6065e iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe65f1927 iscsit_reject_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe900e138 iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xeb81f71b iscsit_response_queue EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf34332f0 iscsi_find_param_from_key -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xfba00917 iscsit_sequence_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0x02abbcab transport_free_session -EXPORT_SYMBOL drivers/target/target_core_mod 0x037d9418 core_tpg_set_initiator_node_tag -EXPORT_SYMBOL drivers/target/target_core_mod 0x07e88fc8 core_tpg_register +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xfe9f1206 iscsit_thread_check_cpumask +EXPORT_SYMBOL drivers/target/target_core_mod 0x00a7b66c target_undepend_item +EXPORT_SYMBOL drivers/target/target_core_mod 0x027fa4fd target_nacl_find_deve +EXPORT_SYMBOL drivers/target/target_core_mod 0x03f88bb2 transport_kunmap_data_sg EXPORT_SYMBOL drivers/target/target_core_mod 0x0871ffd6 transport_set_vpd_ident -EXPORT_SYMBOL drivers/target/target_core_mod 0x0b0d66ed target_send_busy -EXPORT_SYMBOL drivers/target/target_core_mod 0x0b4e885e target_get_sess_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0x0f9b7ec0 core_tpg_check_initiator_node_acl -EXPORT_SYMBOL drivers/target/target_core_mod 0x137229a4 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x0a11d3c8 target_backend_unregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x0e62f0a6 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x10ccf4a9 sbc_dif_copy_prot EXPORT_SYMBOL drivers/target/target_core_mod 0x142072c0 transport_set_vpd_assoc -EXPORT_SYMBOL drivers/target/target_core_mod 0x16e1fe77 transport_backend_register -EXPORT_SYMBOL drivers/target/target_core_mod 0x1ca6bf44 transport_generic_request_failure -EXPORT_SYMBOL drivers/target/target_core_mod 0x1ca6c4f6 transport_deregister_session -EXPORT_SYMBOL drivers/target/target_core_mod 0x1e667ef5 target_set_cmd_data_length -EXPORT_SYMBOL drivers/target/target_core_mod 0x24e5f7c4 target_cmd_parse_cdb -EXPORT_SYMBOL drivers/target/target_core_mod 0x28bc0e7b transport_send_check_condition_and_sense -EXPORT_SYMBOL drivers/target/target_core_mod 0x2b21795d target_submit_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0x2f07dbbe target_put_sess_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0x31e7d3ff transport_wait_for_tasks -EXPORT_SYMBOL drivers/target/target_core_mod 0x3460aef0 passthrough_attrib_attrs -EXPORT_SYMBOL drivers/target/target_core_mod 0x34f28256 target_cmd_init_cdb -EXPORT_SYMBOL drivers/target/target_core_mod 0x35d33d2d target_nacl_find_deve -EXPORT_SYMBOL drivers/target/target_core_mod 0x374e1f35 target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x14b5fcff passthrough_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0x1af56948 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x1ee1df02 transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x26798ece target_stop_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x2db70e0b target_lun_is_rdonly +EXPORT_SYMBOL drivers/target/target_core_mod 0x3038e9f5 spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x31f7cda0 target_complete_cmd_with_sense EXPORT_SYMBOL drivers/target/target_core_mod 0x3a20a9d7 transport_set_vpd_ident_type -EXPORT_SYMBOL drivers/target/target_core_mod 0x3c858edf passthrough_pr_attrib_attrs -EXPORT_SYMBOL drivers/target/target_core_mod 0x3d4eaa86 target_configure_unmap_from_queue +EXPORT_SYMBOL drivers/target/target_core_mod 0x3ca0fa40 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x3dc7a7af transport_wait_for_tasks EXPORT_SYMBOL drivers/target/target_core_mod 0x3df02ae2 core_tmr_alloc_req -EXPORT_SYMBOL drivers/target/target_core_mod 0x3e687891 target_wait_for_sess_cmds -EXPORT_SYMBOL drivers/target/target_core_mod 0x44408151 target_backend_unregister -EXPORT_SYMBOL drivers/target/target_core_mod 0x46624f0c target_complete_cmd_with_sense -EXPORT_SYMBOL drivers/target/target_core_mod 0x46f8951f transport_alloc_session_tags -EXPORT_SYMBOL drivers/target/target_core_mod 0x49086266 core_tpg_get_initiator_node_acl -EXPORT_SYMBOL drivers/target/target_core_mod 0x4a3ab717 passthrough_parse_cdb -EXPORT_SYMBOL drivers/target/target_core_mod 0x4b4fecb7 sbc_get_device_type -EXPORT_SYMBOL drivers/target/target_core_mod 0x4cddaeda spc_emulate_evpd_83 -EXPORT_SYMBOL drivers/target/target_core_mod 0x555b0a9a target_stop_session -EXPORT_SYMBOL drivers/target/target_core_mod 0x596f8e69 transport_generic_handle_tmr -EXPORT_SYMBOL drivers/target/target_core_mod 0x5abc4939 spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x46706451 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x46fa52b9 spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x49edd04f passthrough_pr_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0x4be0a965 target_put_nacl +EXPORT_SYMBOL drivers/target/target_core_mod 0x4ccc39da target_unregister_template +EXPORT_SYMBOL drivers/target/target_core_mod 0x4f6693fe target_show_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x5673d775 target_cmd_parse_cdb EXPORT_SYMBOL drivers/target/target_core_mod 0x5bdb610a target_free_sgl -EXPORT_SYMBOL drivers/target/target_core_mod 0x64a72cfc target_show_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0x69f6ffd4 target_complete_cmd_with_length -EXPORT_SYMBOL drivers/target/target_core_mod 0x6d93bcb3 sbc_get_write_same_sectors -EXPORT_SYMBOL drivers/target/target_core_mod 0x72883a3c target_depend_item -EXPORT_SYMBOL drivers/target/target_core_mod 0x72beeae2 transport_generic_new_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0x73268fe3 sbc_dif_copy_prot -EXPORT_SYMBOL drivers/target/target_core_mod 0x733a5a5b target_unregister_template -EXPORT_SYMBOL drivers/target/target_core_mod 0x7529e255 target_tpg_has_node_acl -EXPORT_SYMBOL drivers/target/target_core_mod 0x767713ad target_show_dynamic_sessions -EXPORT_SYMBOL drivers/target/target_core_mod 0x794c5673 target_lun_is_rdonly -EXPORT_SYMBOL drivers/target/target_core_mod 0x7e1c8482 target_submit_tmr -EXPORT_SYMBOL drivers/target/target_core_mod 0x8308a452 sbc_attrib_attrs -EXPORT_SYMBOL drivers/target/target_core_mod 0x8ee7ce6a transport_deregister_session_configfs -EXPORT_SYMBOL drivers/target/target_core_mod 0x9522d3cb target_register_template -EXPORT_SYMBOL drivers/target/target_core_mod 0x9ae3fe69 sbc_parse_cdb -EXPORT_SYMBOL drivers/target/target_core_mod 0x9ead33f0 transport_alloc_session -EXPORT_SYMBOL drivers/target/target_core_mod 0x9edc019c target_remove_session -EXPORT_SYMBOL drivers/target/target_core_mod 0xa168b461 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x5c138ab6 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x5c22c8db transport_alloc_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x5d9d4882 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x5dad2137 target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x65458c00 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x66e07569 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0x7767fdc3 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fb6660b target_show_dynamic_sessions +EXPORT_SYMBOL drivers/target/target_core_mod 0x841f299e target_remove_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x85c6dfdc core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x86ded73d transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x8b6a9358 transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0x8f2005fb core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x90591638 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x93b3cb1a target_tpg_has_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x979d1e9a target_send_busy +EXPORT_SYMBOL drivers/target/target_core_mod 0x991b9a83 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x9b10047e core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x9ec20a30 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0xa0959f25 passthrough_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xa36a06e7 target_cmd_init_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xa70d647d target_complete_cmd_with_length EXPORT_SYMBOL drivers/target/target_core_mod 0xaefbcacd target_alloc_sgl -EXPORT_SYMBOL drivers/target/target_core_mod 0xb0adea1d transport_handle_cdb_direct -EXPORT_SYMBOL drivers/target/target_core_mod 0xb30a1d11 target_put_nacl -EXPORT_SYMBOL drivers/target/target_core_mod 0xb39e1f82 core_tpg_set_initiator_node_queue_depth -EXPORT_SYMBOL drivers/target/target_core_mod 0xb4932920 transport_generic_free_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0xb7dab97f sbc_dif_verify -EXPORT_SYMBOL drivers/target/target_core_mod 0xbac3f0ef __target_init_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0xce05dc52 transport_lookup_cmd_lun -EXPORT_SYMBOL drivers/target/target_core_mod 0xd0714250 __transport_register_session -EXPORT_SYMBOL drivers/target/target_core_mod 0xd70707ab target_undepend_item -EXPORT_SYMBOL drivers/target/target_core_mod 0xd7294bc9 spc_emulate_inquiry_std -EXPORT_SYMBOL drivers/target/target_core_mod 0xd7bffffa target_to_linux_sector -EXPORT_SYMBOL drivers/target/target_core_mod 0xd9518873 spc_emulate_report_luns -EXPORT_SYMBOL drivers/target/target_core_mod 0xe11fe333 target_complete_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0xe5c115fc core_tpg_deregister -EXPORT_SYMBOL drivers/target/target_core_mod 0xe940997d transport_copy_sense_to_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0xec1bdedc core_allocate_nexus_loss_ua -EXPORT_SYMBOL drivers/target/target_core_mod 0xf061e9f2 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xb2d2e7a2 sbc_dif_verify +EXPORT_SYMBOL drivers/target/target_core_mod 0xb4fbba50 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xb628f40d transport_copy_sense_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xb7b1b698 spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0xb86f135c target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xb8a60f44 target_depend_item +EXPORT_SYMBOL drivers/target/target_core_mod 0xbc45f7ed target_to_linux_sector +EXPORT_SYMBOL drivers/target/target_core_mod 0xc0271584 target_configure_unmap_from_queue +EXPORT_SYMBOL drivers/target/target_core_mod 0xcb9165ec transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xcc1a7ec3 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xd0bc81c1 spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0xd10a85e3 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0xd6c7d669 target_register_template +EXPORT_SYMBOL drivers/target/target_core_mod 0xda7e01d3 sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0xdbe7b02d transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xddcce326 sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xe454976a transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xe72ded33 target_setup_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xe9f5d1ea transport_backend_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xea8b9774 target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xedd44ac2 __target_init_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xef43485b core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0xf1e6900b core_allocate_nexus_loss_ua +EXPORT_SYMBOL drivers/target/target_core_mod 0xf1ee92d2 target_set_cmd_data_length EXPORT_SYMBOL drivers/target/target_core_mod 0xf3c2dfe0 transport_set_vpd_proto_id -EXPORT_SYMBOL drivers/target/target_core_mod 0xf43dde54 transport_init_session -EXPORT_SYMBOL drivers/target/target_core_mod 0xf5d8338e core_alua_check_nonop_delay -EXPORT_SYMBOL drivers/target/target_core_mod 0xf62af084 target_setup_session -EXPORT_SYMBOL drivers/target/target_core_mod 0xfe182164 transport_lookup_tmr_lun -EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x055b7616 ufshcd_system_resume -EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x131b4c11 ufshcd_runtime_resume -EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x17496ae4 ufshcd_runtime_suspend -EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x5905b541 ufshcd_alloc_host -EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x893bbf7d ufshcd_system_suspend -EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0xbb2f9c10 ufshcd_get_local_unipro_ver -EXPORT_SYMBOL drivers/ufs/host/tc-dwc-g210 0x8b4f9830 tc_dwc_g210_config_40_bit -EXPORT_SYMBOL drivers/ufs/host/tc-dwc-g210 0xe2f8616e tc_dwc_g210_config_20_bit -EXPORT_SYMBOL drivers/ufs/host/ufshcd-dwc 0x553762fa ufshcd_dwc_link_startup_notify -EXPORT_SYMBOL drivers/ufs/host/ufshcd-dwc 0xc32f5275 ufshcd_dwc_dme_set_attrs -EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0x573cc626 usb_cdc_wdm_register -EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0x871384ea usb_os_desc_prepare_interf_dir -EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x8ecd7d8d sl811h_driver -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1280deb4 usb_wwan_chars_in_buffer -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x23b89b33 usb_wwan_resume -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2595782a usb_wwan_suspend -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3726dbf7 usb_wwan_dtr_rts -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x39472071 usb_wwan_tiocmset -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x41925b52 usb_wwan_port_remove -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5fedd864 usb_wwan_close -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7ab18693 usb_wwan_write_room -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x890a7fdc usb_wwan_tiocmget -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8a6047ef usb_wwan_write -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa71951fe usb_wwan_open -EXPORT_SYMBOL drivers/usb/serial/usbserial 0x988c6c78 usb_serial_resume -EXPORT_SYMBOL drivers/usb/serial/usbserial 0xc23e6711 usb_serial_suspend -EXPORT_SYMBOL drivers/vdpa/vdpa 0xadb46c2f vdpa_set_status +EXPORT_SYMBOL drivers/target/target_core_mod 0xf67a36f1 core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xf812506f target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xfdf4dedb transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xfe3f188d sbc_attrib_attrs +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x05282613 ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x2479a8cf ufshcd_system_suspend +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x459c7907 ufshcd_system_resume +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x627a4a26 ufshcd_alloc_host +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x73b93b23 ufshcd_get_local_unipro_ver +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0xa0e61033 ufshcd_runtime_resume +EXPORT_SYMBOL drivers/ufs/host/tc-dwc-g210 0x49c86b5e tc_dwc_g210_config_40_bit +EXPORT_SYMBOL drivers/ufs/host/tc-dwc-g210 0x5635bb79 tc_dwc_g210_config_20_bit +EXPORT_SYMBOL drivers/ufs/host/ufshcd-dwc 0x335a8573 ufshcd_dwc_dme_set_attrs +EXPORT_SYMBOL drivers/ufs/host/ufshcd-dwc 0x5cf235c6 ufshcd_dwc_link_startup_notify +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0x06282ea1 usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0xb1dbc7e9 usb_os_desc_prepare_interf_dir +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xcc47c741 sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0d3103fb usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x12afe984 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x265dc841 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x284d4b76 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2a3a64ca usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4081ab44 usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x659bd308 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8a160dd1 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8d10d222 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xad08e470 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xebf05fd5 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xdc01e8e9 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xe4b61467 usb_serial_suspend +EXPORT_SYMBOL drivers/vdpa/vdpa 0xfd909715 vdpa_set_status +EXPORT_SYMBOL drivers/vfio/vfio 0x0a837d48 vfio_dma_rw EXPORT_SYMBOL drivers/vfio/vfio 0x19567d06 vfio_info_cap_shift -EXPORT_SYMBOL drivers/vfio/vfio 0x53371a48 vfio_unpin_pages -EXPORT_SYMBOL drivers/vfio/vfio 0x566aa0d4 vfio_dma_rw -EXPORT_SYMBOL drivers/vfio/vfio 0x6249e7bd vfio_pin_pages EXPORT_SYMBOL drivers/vfio/vfio 0x6c28be5a vfio_info_add_capability EXPORT_SYMBOL drivers/vfio/vfio 0xadc044b7 vfio_set_irqs_validate_and_prepare -EXPORT_SYMBOL drivers/vhost/vhost 0x39a10f67 vhost_chr_write_iter -EXPORT_SYMBOL drivers/vhost/vhost 0x4a13792b vhost_chr_poll +EXPORT_SYMBOL drivers/vfio/vfio 0xea026d1b vfio_unpin_pages +EXPORT_SYMBOL drivers/vfio/vfio 0xf58f2589 vfio_pin_pages +EXPORT_SYMBOL drivers/vhost/vhost 0x81cca807 vhost_chr_poll +EXPORT_SYMBOL drivers/vhost/vhost 0x8b451f11 vhost_chr_write_iter EXPORT_SYMBOL drivers/vhost/vringh 0x0572fe87 vringh_need_notify_iotlb EXPORT_SYMBOL drivers/vhost/vringh 0x07f73cdc vringh_abandon_user EXPORT_SYMBOL drivers/vhost/vringh 0x17aea413 vringh_complete_multi_user @@ -4613,143 +4613,143 @@ EXPORT_SYMBOL drivers/vhost/vringh 0xefc5efd8 vringh_notify_disable_iotlb EXPORT_SYMBOL drivers/vhost/vringh 0xf7a83fee vringh_getdesc_iotlb EXPORT_SYMBOL drivers/vhost/vringh 0xfa7a8896 vringh_need_notify_kern -EXPORT_SYMBOL drivers/video/backlight/backlight 0x1045b928 backlight_device_get_by_type -EXPORT_SYMBOL drivers/video/backlight/backlight 0x195a5870 backlight_device_register -EXPORT_SYMBOL drivers/video/backlight/backlight 0x3a5a8633 of_find_backlight_by_node -EXPORT_SYMBOL drivers/video/backlight/backlight 0x6eb67bf7 backlight_force_update -EXPORT_SYMBOL drivers/video/backlight/backlight 0x83191cad backlight_device_get_by_name -EXPORT_SYMBOL drivers/video/backlight/backlight 0x8d1af21a backlight_device_unregister -EXPORT_SYMBOL drivers/video/backlight/backlight 0x97cf662f devm_of_find_backlight +EXPORT_SYMBOL drivers/video/backlight/backlight 0x2ecd19e7 backlight_device_get_by_name +EXPORT_SYMBOL drivers/video/backlight/backlight 0x485fdc67 backlight_device_set_brightness +EXPORT_SYMBOL drivers/video/backlight/backlight 0x5892d550 backlight_device_unregister +EXPORT_SYMBOL drivers/video/backlight/backlight 0x63871aed backlight_device_get_by_type +EXPORT_SYMBOL drivers/video/backlight/backlight 0x8eee69a1 of_find_backlight_by_node EXPORT_SYMBOL drivers/video/backlight/backlight 0x9939eba0 backlight_unregister_notifier -EXPORT_SYMBOL drivers/video/backlight/backlight 0xdbb40919 backlight_device_set_brightness +EXPORT_SYMBOL drivers/video/backlight/backlight 0xbe9c47f1 devm_backlight_device_register +EXPORT_SYMBOL drivers/video/backlight/backlight 0xd2841b19 backlight_device_register EXPORT_SYMBOL drivers/video/backlight/backlight 0xdc512134 backlight_register_notifier -EXPORT_SYMBOL drivers/video/backlight/backlight 0xe34dc060 devm_backlight_device_register -EXPORT_SYMBOL drivers/video/backlight/backlight 0xe4225a71 devm_backlight_device_unregister -EXPORT_SYMBOL drivers/video/backlight/lcd 0x56db29f9 devm_lcd_device_unregister -EXPORT_SYMBOL drivers/video/backlight/lcd 0x5734a737 devm_lcd_device_register -EXPORT_SYMBOL drivers/video/backlight/lcd 0x7c06aa0b lcd_device_register -EXPORT_SYMBOL drivers/video/backlight/lcd 0x85a02b21 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/backlight 0xe4d3bc0e backlight_force_update +EXPORT_SYMBOL drivers/video/backlight/backlight 0xefbda1ea devm_of_find_backlight +EXPORT_SYMBOL drivers/video/backlight/backlight 0xefc86184 devm_backlight_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x272b0730 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x4d4063b5 devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x7824d14e lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xcf126ef4 devm_lcd_device_register EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x17f3f471 svga_set_default_seq_regs EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x1be6dc30 svga_set_textmode_vga_regs -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x31134b60 svga_tilecursor EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x4ab38ef2 svga_set_default_crt_regs -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x5b77cc4a svga_settile -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x69a45bf4 svga_tilecopy +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x4cc80a0b svga_tilecursor EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x83a41489 svga_set_timings EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x84c337c2 svga_wcrt_multi EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x84c97d2a svga_match_format -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xa1d550ff svga_tilefill -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xa773aceb svga_get_tilemax +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x8e97d25f svga_tilefill EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xb0ab2b2e svga_check_timings -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xc3998505 svga_tileblit EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xd22ca511 svga_set_default_atc_regs -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xd5d5a895 svga_get_caps EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xd6ec2c44 svga_compute_pll +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xd7820295 svga_tilecopy EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xdcc5a013 svga_wseq_multi +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xddfdf38e svga_get_tilemax EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xec7bab6b svga_get_caps +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xee0b8886 svga_settile +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xfe0cf813 svga_tileblit +EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x08ddd0b5 cyber2000fb_attach EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x0cc3ede5 cyber2000fb_detach EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs -EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x93c44c22 cyber2000fb_attach EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs EXPORT_SYMBOL drivers/video/fbdev/macmodes 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/fbdev/macmodes 0xa8790480 mac_find_mode EXPORT_SYMBOL drivers/video/fbdev/macmodes 0xe2304303 mac_map_monitor_sense -EXPORT_SYMBOL drivers/video/fbdev/macmodes 0xff8ffff8 mac_find_mode -EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x375a4691 matroxfb_g450_setclk -EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x3df7cd4c g450_mnp2f -EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x5801a592 matroxfb_g450_setpll_cond -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x2e1decc8 DAC1064_global_init -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x320f2745 matrox_mystique -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x34d42269 DAC1064_global_restore -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0xba2cb327 matrox_G100 -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_Ti3026 0x7bd81265 matrox_millennium -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_accel 0x6eea3758 matrox_cfbX_init -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x5bc5a8e4 matroxfb_enable_irq -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x807cd11e matroxfb_wait_for_sync -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x853dbe51 matroxfb_unregister_driver -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x9abafee1 matroxfb_register_driver -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0x2236aa2b matroxfb_g450_shutdown -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0xa2cc958e matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x48b4f0af matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0xa9f6654b g450_mnp2f +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0xc1b60992 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x1048b47f DAC1064_global_restore +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x3ab90342 matrox_mystique +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0xee354e34 matrox_G100 +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0xfb51d2d7 DAC1064_global_init +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_Ti3026 0x089a68c5 matrox_millennium +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_accel 0xaa7f806f matrox_cfbX_init +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x58c11aa3 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0xfc810881 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0xfddf95ce matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0xfe2a305f matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0xb2b98065 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0xeea60ccd matroxfb_g450_connect EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x3b4607eb matroxfb_DAC_out -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x41fe3ae6 matroxfb_DAC_in -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x70df7a35 matroxfb_vgaHWrestore -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x9f843ab5 matroxfb_read_pins -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0xc47d46b6 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x406bb10f matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x48d2bb5f matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x4b744566 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0xa3280346 matroxfb_DAC_in EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0xe4395e78 matroxfb_read_pins EXPORT_SYMBOL drivers/video/fbdev/sis/sisfb 0x3037658e sis_malloc EXPORT_SYMBOL drivers/video/fbdev/sis/sisfb 0xfe963115 sis_free EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga -EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x0a2ebbe3 virtio_dma_buf_export -EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x3159d5d4 virtio_dma_buf_attach -EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x6fbe99d1 virtio_dma_buf_get_uuid -EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x8b7c4437 is_virtio_dma_buf -EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x8608da83 w1_ds2780_eeprom_cmd -EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xce95a2c7 w1_ds2780_io -EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x88bd2d5d w1_ds2781_eeprom_cmd -EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0xb3f310f0 w1_ds2781_io -EXPORT_SYMBOL drivers/w1/wire 0x325445e9 w1_remove_master_device -EXPORT_SYMBOL drivers/w1/wire 0x40762029 w1_add_master_device -EXPORT_SYMBOL drivers/w1/wire 0x669fe711 w1_unregister_family -EXPORT_SYMBOL drivers/w1/wire 0xd5121b90 w1_register_family -EXPORT_SYMBOL fs/fscache/fscache 0x13b7ad89 __fscache_clear_page_bits +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x7b18decb virtio_dma_buf_get_uuid +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x864bdf2e virtio_dma_buf_export +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x8973d5a7 virtio_dma_buf_attach +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0xac4e8944 is_virtio_dma_buf +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x3e649be5 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xfce54bf8 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x1172fd93 w1_ds2781_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x68189d18 w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/wire 0x11c8a01f w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x2fcd016a w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x4206285e w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x9376bc1d w1_register_family +EXPORT_SYMBOL fs/fscache/fscache 0x0880c234 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x13910ed1 fscache_withdraw_cookie EXPORT_SYMBOL fs/fscache/fscache 0x13c64628 fscache_addremove_sem -EXPORT_SYMBOL fs/fscache/fscache 0x1500837f __fscache_begin_read_operation -EXPORT_SYMBOL fs/fscache/fscache 0x15112c2f __fscache_use_cookie -EXPORT_SYMBOL fs/fscache/fscache 0x19a5b07c __fscache_acquire_volume EXPORT_SYMBOL fs/fscache/fscache 0x1a0d09e7 fscache_n_write -EXPORT_SYMBOL fs/fscache/fscache 0x1c5fdac9 fscache_get_cookie -EXPORT_SYMBOL fs/fscache/fscache 0x215bc7fd fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x230408cf fscache_resume_after_invalidation +EXPORT_SYMBOL fs/fscache/fscache 0x2341b025 fscache_caching_failed EXPORT_SYMBOL fs/fscache/fscache 0x234a140d __traceiter_fscache_access_volume -EXPORT_SYMBOL fs/fscache/fscache 0x23ab7efa __fscache_write_to_cache -EXPORT_SYMBOL fs/fscache/fscache 0x270847d3 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x29add0a9 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x29c40f7a __fscache_resize_cookie EXPORT_SYMBOL fs/fscache/fscache 0x2b389369 __tracepoint_fscache_access_cache -EXPORT_SYMBOL fs/fscache/fscache 0x2ee8bf6d fscache_wait_for_operation -EXPORT_SYMBOL fs/fscache/fscache 0x2ffd91d6 __fscache_acquire_cookie EXPORT_SYMBOL fs/fscache/fscache 0x306805d3 __SCK__tp_func_fscache_access -EXPORT_SYMBOL fs/fscache/fscache 0x31830529 fscache_caching_failed EXPORT_SYMBOL fs/fscache/fscache 0x3577ac5b fscache_clearance_waiters -EXPORT_SYMBOL fs/fscache/fscache 0x35f05a45 fscache_withdraw_volume +EXPORT_SYMBOL fs/fscache/fscache 0x3c5fc562 fscache_end_volume_access +EXPORT_SYMBOL fs/fscache/fscache 0x3ea64181 __fscache_acquire_volume EXPORT_SYMBOL fs/fscache/fscache 0x4404d2aa fscache_n_no_create_space +EXPORT_SYMBOL fs/fscache/fscache 0x456ae49a fscache_cookie_lookup_negative EXPORT_SYMBOL fs/fscache/fscache 0x4996bd29 fscache_n_updates EXPORT_SYMBOL fs/fscache/fscache 0x4bd084ba __SCK__tp_func_fscache_access_cache -EXPORT_SYMBOL fs/fscache/fscache 0x4f78be4a fscache_withdraw_cookie -EXPORT_SYMBOL fs/fscache/fscache 0x524ea9fd __fscache_unuse_cookie -EXPORT_SYMBOL fs/fscache/fscache 0x58a189d9 fscache_end_volume_access +EXPORT_SYMBOL fs/fscache/fscache 0x55e33669 __fscache_unuse_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x5968302a __fscache_begin_read_operation +EXPORT_SYMBOL fs/fscache/fscache 0x65946eb3 fscache_relinquish_cache EXPORT_SYMBOL fs/fscache/fscache 0x6e416521 __SCK__tp_func_fscache_access_volume -EXPORT_SYMBOL fs/fscache/fscache 0x6f73ac43 fscache_dirty_folio EXPORT_SYMBOL fs/fscache/fscache 0x71fb0e58 __tracepoint_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x7364e390 fscache_get_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x756642b7 __fscache_acquire_cookie EXPORT_SYMBOL fs/fscache/fscache 0x77e19a42 __tracepoint_fscache_access -EXPORT_SYMBOL fs/fscache/fscache 0x8d59b9aa fscache_acquire_cache +EXPORT_SYMBOL fs/fscache/fscache 0x820209ad __fscache_begin_write_operation EXPORT_SYMBOL fs/fscache/fscache 0x90d447f3 fscache_n_culled -EXPORT_SYMBOL fs/fscache/fscache 0x97566766 fscache_resume_after_invalidation +EXPORT_SYMBOL fs/fscache/fscache 0x9c6dcb94 __fscache_relinquish_volume EXPORT_SYMBOL fs/fscache/fscache 0x9ffefcb2 fscache_n_read -EXPORT_SYMBOL fs/fscache/fscache 0xa82ea2a5 __fscache_begin_write_operation EXPORT_SYMBOL fs/fscache/fscache 0xae6040a5 __traceiter_fscache_access_cache -EXPORT_SYMBOL fs/fscache/fscache 0xb2746a52 fscache_relinquish_cache -EXPORT_SYMBOL fs/fscache/fscache 0xb6ba6666 fscache_cookie_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0xaf717db2 fscache_dirty_folio +EXPORT_SYMBOL fs/fscache/fscache 0xb414ffd1 __fscache_write_to_cache EXPORT_SYMBOL fs/fscache/fscache 0xbca46908 fscache_wq -EXPORT_SYMBOL fs/fscache/fscache 0xbce66095 fscache_end_cookie_access -EXPORT_SYMBOL fs/fscache/fscache 0xc6e60313 __fscache_invalidate -EXPORT_SYMBOL fs/fscache/fscache 0xc78f6332 __fscache_relinquish_volume +EXPORT_SYMBOL fs/fscache/fscache 0xc2287fc8 fscache_acquire_cache +EXPORT_SYMBOL fs/fscache/fscache 0xc73afd7f __fscache_use_cookie EXPORT_SYMBOL fs/fscache/fscache 0xcce11a60 fscache_n_no_write_space -EXPORT_SYMBOL fs/fscache/fscache 0xd3d4040d __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xcda6b29c __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0xd1b70333 __fscache_clear_page_bits EXPORT_SYMBOL fs/fscache/fscache 0xdcb87498 __traceiter_fscache_access -EXPORT_SYMBOL fs/fscache/fscache 0xe0ab23ae __fscache_resize_cookie -EXPORT_SYMBOL fs/fscache/fscache 0xfdd1a01e fscache_put_cookie -EXPORT_SYMBOL fs/fscache/fscache 0xff5b76e8 fscache_io_error -EXPORT_SYMBOL fs/netfs/netfs 0x107738eb netfs_readahead -EXPORT_SYMBOL fs/netfs/netfs 0x19c5e878 netfs_stats_show -EXPORT_SYMBOL fs/netfs/netfs 0x233fbbab netfs_read_folio -EXPORT_SYMBOL fs/netfs/netfs 0x89aa3511 netfs_subreq_terminated -EXPORT_SYMBOL fs/netfs/netfs 0xa4fe8055 netfs_write_begin +EXPORT_SYMBOL fs/fscache/fscache 0xdd4634ba fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xe0133e2d fscache_withdraw_volume +EXPORT_SYMBOL fs/fscache/fscache 0xe08d723a fscache_end_cookie_access +EXPORT_SYMBOL fs/fscache/fscache 0xe3ba70fe __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xf7ea4aee fscache_put_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xff0c2b5e fscache_wait_for_operation +EXPORT_SYMBOL fs/netfs/netfs 0x75a0ce22 netfs_read_folio +EXPORT_SYMBOL fs/netfs/netfs 0x7e6346e0 netfs_readahead +EXPORT_SYMBOL fs/netfs/netfs 0x836bd319 netfs_subreq_terminated +EXPORT_SYMBOL fs/netfs/netfs 0x9768d747 netfs_write_begin +EXPORT_SYMBOL fs/netfs/netfs 0xa6a8140e netfs_stats_show EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active -EXPORT_SYMBOL fs/quota/quota_tree 0x35ed7112 qtree_entry_unused -EXPORT_SYMBOL fs/quota/quota_tree 0x3698fbd8 qtree_write_dquot -EXPORT_SYMBOL fs/quota/quota_tree 0x5f17c981 qtree_delete_dquot -EXPORT_SYMBOL fs/quota/quota_tree 0x82877f9b qtree_get_next_id -EXPORT_SYMBOL fs/quota/quota_tree 0xb3a94022 qtree_release_dquot -EXPORT_SYMBOL fs/quota/quota_tree 0xc2440250 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x1319e16b qtree_get_next_id +EXPORT_SYMBOL fs/quota/quota_tree 0x2b785971 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x49864fa4 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x88ebf876 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x9b5c959b qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xc555e048 qtree_entry_unused EXPORT_SYMBOL lib/crc8 0x9c5d5b94 crc8 EXPORT_SYMBOL lib/crc8 0xaa8106bc crc8_populate_msb EXPORT_SYMBOL lib/crc8 0xc3cd034d crc8_populate_lsb @@ -4773,15 +4773,15 @@ EXPORT_SYMBOL lib/lru_cache 0x12de578e lc_committed EXPORT_SYMBOL lib/lru_cache 0x1d2ebc6a lc_get EXPORT_SYMBOL lib/lru_cache 0x2675693b lc_del -EXPORT_SYMBOL lib/lru_cache 0x462a8a7e lc_seq_dump_details -EXPORT_SYMBOL lib/lru_cache 0x56526a02 lc_seq_printf_stats EXPORT_SYMBOL lib/lru_cache 0x75e88edc lc_destroy EXPORT_SYMBOL lib/lru_cache 0x96d40a48 lc_try_get EXPORT_SYMBOL lib/lru_cache 0xa79000a0 lc_is_used EXPORT_SYMBOL lib/lru_cache 0xaeb959aa lc_create EXPORT_SYMBOL lib/lru_cache 0xbf18a077 lc_reset +EXPORT_SYMBOL lib/lru_cache 0xc078f45c lc_seq_dump_details EXPORT_SYMBOL lib/lru_cache 0xc4d8d7a4 lc_find EXPORT_SYMBOL lib/lru_cache 0xdbdee578 lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0xedf8e045 lc_seq_printf_stats EXPORT_SYMBOL lib/lru_cache 0xf0e20f9b lc_try_lock EXPORT_SYMBOL lib/lru_cache 0xfba16232 lc_get_cumulative EXPORT_SYMBOL lib/lz4/lz4_compress 0x4f4d78c5 LZ4_compress_default @@ -4820,871 +4820,871 @@ EXPORT_SYMBOL lib/raid6/raid6_pq 0xc8e3332b raid6_gflog EXPORT_SYMBOL lib/raid6/raid6_pq 0xcc4ee841 raid6_gfexi EXPORT_SYMBOL lib/raid6/raid6_pq 0xd91319d6 raid6_gfmul -EXPORT_SYMBOL net/6lowpan/6lowpan 0x057dd24b lowpan_register_netdevice -EXPORT_SYMBOL net/6lowpan/6lowpan 0xad0e27cf lowpan_register_netdev -EXPORT_SYMBOL net/6lowpan/6lowpan 0xe4fa5eea lowpan_nhc_add -EXPORT_SYMBOL net/6lowpan/6lowpan 0xe6d12a65 lowpan_unregister_netdev -EXPORT_SYMBOL net/6lowpan/6lowpan 0xf0e4f2b2 lowpan_unregister_netdevice -EXPORT_SYMBOL net/6lowpan/6lowpan 0xfcc0ab55 lowpan_nhc_del -EXPORT_SYMBOL net/802/p8022 0x619cfa32 unregister_8022_client -EXPORT_SYMBOL net/802/p8022 0xad3ef434 register_8022_client -EXPORT_SYMBOL net/802/psnap 0x5288b571 unregister_snap_client -EXPORT_SYMBOL net/802/psnap 0xe50f235e register_snap_client -EXPORT_SYMBOL net/9p/9pnet 0x0478a4f5 p9_client_symlink -EXPORT_SYMBOL net/9p/9pnet 0x0972df06 v9fs_get_trans_by_name -EXPORT_SYMBOL net/9p/9pnet 0x0a209959 p9_client_rename -EXPORT_SYMBOL net/9p/9pnet 0x1069f822 do_trace_9p_fid_get -EXPORT_SYMBOL net/9p/9pnet 0x140c3ed0 p9_client_create -EXPORT_SYMBOL net/9p/9pnet 0x1797ed9b p9_client_link -EXPORT_SYMBOL net/9p/9pnet 0x18713d99 p9_client_fsync -EXPORT_SYMBOL net/9p/9pnet 0x20ed958f p9_client_clunk -EXPORT_SYMBOL net/9p/9pnet 0x2fde262b p9_client_renameat -EXPORT_SYMBOL net/9p/9pnet 0x30fad683 p9_client_walk -EXPORT_SYMBOL net/9p/9pnet 0x326a03f9 p9_client_destroy -EXPORT_SYMBOL net/9p/9pnet 0x36f755ce p9_tag_lookup -EXPORT_SYMBOL net/9p/9pnet 0x39bfe3cb p9_client_lock_dotl -EXPORT_SYMBOL net/9p/9pnet 0x3d05a625 p9_client_readdir +EXPORT_SYMBOL net/6lowpan/6lowpan 0x3af3f898 lowpan_unregister_netdevice +EXPORT_SYMBOL net/6lowpan/6lowpan 0x4f7083bd lowpan_register_netdev +EXPORT_SYMBOL net/6lowpan/6lowpan 0x630d887b lowpan_unregister_netdev +EXPORT_SYMBOL net/6lowpan/6lowpan 0xb452d60a lowpan_register_netdevice +EXPORT_SYMBOL net/6lowpan/6lowpan 0xb77135ff lowpan_nhc_add +EXPORT_SYMBOL net/6lowpan/6lowpan 0xc1d97678 lowpan_nhc_del +EXPORT_SYMBOL net/802/p8022 0x2294d353 unregister_8022_client +EXPORT_SYMBOL net/802/p8022 0xecb67fc2 register_8022_client +EXPORT_SYMBOL net/802/psnap 0xc16a67d7 register_snap_client +EXPORT_SYMBOL net/802/psnap 0xf1c037f3 unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x03267c18 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x11849bc0 p9_show_client_options +EXPORT_SYMBOL net/9p/9pnet 0x18d1ec05 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x25f3e510 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x26d9c94f p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x2729b5d6 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x29f4115f p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x2aaa063b p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x2ce937a4 p9_client_cb EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno -EXPORT_SYMBOL net/9p/9pnet 0x44c2268c p9_client_cb -EXPORT_SYMBOL net/9p/9pnet 0x44d43845 p9_client_open -EXPORT_SYMBOL net/9p/9pnet 0x48b34da4 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x3f9679de p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x458b7757 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x45e4e636 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x48a0b2f1 v9fs_get_default_trans EXPORT_SYMBOL net/9p/9pnet 0x4ba99359 p9_fcall_fini -EXPORT_SYMBOL net/9p/9pnet 0x4f661b8e p9_client_mkdir_dotl -EXPORT_SYMBOL net/9p/9pnet 0x55bbbd15 p9_client_write -EXPORT_SYMBOL net/9p/9pnet 0x5cc4c90d p9_client_getattr_dotl -EXPORT_SYMBOL net/9p/9pnet 0x5e0e5441 __traceiter_9p_fid_ref -EXPORT_SYMBOL net/9p/9pnet 0x6654ccee p9_client_fcreate -EXPORT_SYMBOL net/9p/9pnet 0x731b5f92 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x4d455560 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x4fcd261f p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x5280372d p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x52b2e206 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x5cdc5b8f p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x64cea0e5 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x6b81aeb8 __traceiter_9p_fid_ref +EXPORT_SYMBOL net/9p/9pnet 0x6d17282f v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x6eb8cc54 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x74743cba p9_client_create_dotl EXPORT_SYMBOL net/9p/9pnet 0x761cad64 p9_parse_header -EXPORT_SYMBOL net/9p/9pnet 0x80b61905 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x773a5b89 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x7c118b4c p9_client_mknod_dotl EXPORT_SYMBOL net/9p/9pnet 0x84cf0c5c p9dirent_read -EXPORT_SYMBOL net/9p/9pnet 0x85cf30d3 p9_client_read -EXPORT_SYMBOL net/9p/9pnet 0x884af0e7 p9_is_proto_dotu -EXPORT_SYMBOL net/9p/9pnet 0x8a05b6b2 v9fs_unregister_trans -EXPORT_SYMBOL net/9p/9pnet 0x8e1b74fa p9_client_remove -EXPORT_SYMBOL net/9p/9pnet 0x9001795b p9_client_create_dotl -EXPORT_SYMBOL net/9p/9pnet 0x9b66a48e p9_req_put +EXPORT_SYMBOL net/9p/9pnet 0x8831462b p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x935f6de4 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x97c96dc4 p9_client_fsync EXPORT_SYMBOL net/9p/9pnet 0x9c7a776a p9stat_read -EXPORT_SYMBOL net/9p/9pnet 0x9ea8cbdd p9_is_proto_dotl -EXPORT_SYMBOL net/9p/9pnet 0xa0bc23ec p9_client_disconnect -EXPORT_SYMBOL net/9p/9pnet 0xa95cd1eb do_trace_9p_fid_put +EXPORT_SYMBOL net/9p/9pnet 0xa0c01f48 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xa7da6b83 do_trace_9p_fid_get +EXPORT_SYMBOL net/9p/9pnet 0xaf5da83d p9_client_read_once +EXPORT_SYMBOL net/9p/9pnet 0xb4db5270 p9_client_setattr EXPORT_SYMBOL net/9p/9pnet 0xb55ae777 __SCK__tp_func_9p_fid_ref -EXPORT_SYMBOL net/9p/9pnet 0xbd70cbd8 p9_client_begin_disconnect -EXPORT_SYMBOL net/9p/9pnet 0xbff9b079 v9fs_get_default_trans -EXPORT_SYMBOL net/9p/9pnet 0xc00b1d34 p9_client_wstat -EXPORT_SYMBOL net/9p/9pnet 0xc1828663 p9_client_statfs -EXPORT_SYMBOL net/9p/9pnet 0xc95ba518 p9_client_attach -EXPORT_SYMBOL net/9p/9pnet 0xcebebaf9 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xbd7f7843 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xbeb76cec p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xcd8a9ad5 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xcfa68532 v9fs_get_trans_by_name EXPORT_SYMBOL net/9p/9pnet 0xd384c683 p9stat_free -EXPORT_SYMBOL net/9p/9pnet 0xd7210e70 p9_client_readlink -EXPORT_SYMBOL net/9p/9pnet 0xd8ea4b54 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0xd4a68d8b p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xd505863f v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0xd88ef8d5 do_trace_9p_fid_put +EXPORT_SYMBOL net/9p/9pnet 0xdc6b84cd p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0xde39bf53 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0xe0f944a2 p9_req_put EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init -EXPORT_SYMBOL net/9p/9pnet 0xe8d4e286 p9_show_client_options -EXPORT_SYMBOL net/9p/9pnet 0xeb108bc0 p9_client_stat -EXPORT_SYMBOL net/9p/9pnet 0xeb4a6402 p9_client_read_once EXPORT_SYMBOL net/9p/9pnet 0xee437897 __tracepoint_9p_fid_ref -EXPORT_SYMBOL net/9p/9pnet 0xffddd570 p9_client_setattr -EXPORT_SYMBOL net/appletalk/appletalk 0x5fa4bd3a aarp_send_ddp -EXPORT_SYMBOL net/appletalk/appletalk 0x881f0e28 alloc_ltalkdev -EXPORT_SYMBOL net/appletalk/appletalk 0x8b72e41b atrtr_get_dev -EXPORT_SYMBOL net/appletalk/appletalk 0x99c4c05f atalk_find_dev_addr -EXPORT_SYMBOL net/atm/atm 0x008bb80d deregister_atm_ioctl -EXPORT_SYMBOL net/atm/atm 0x03826234 atm_init_aal5 +EXPORT_SYMBOL net/9p/9pnet 0xefde5b0e p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xfc2ce520 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xfe39cb62 p9_client_rename +EXPORT_SYMBOL net/appletalk/appletalk 0x051e5fd9 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x275d7179 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x2dd7e69b atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x466db59c aarp_send_ddp +EXPORT_SYMBOL net/atm/atm 0x1ae89d07 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x25a9b565 atm_dev_register EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash -EXPORT_SYMBOL net/atm/atm 0x3e4c8edd atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x33f00db0 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x3ec49e0d atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x43936c7f atm_dev_lookup EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root -EXPORT_SYMBOL net/atm/atm 0x4ad26efb vcc_insert_socket -EXPORT_SYMBOL net/atm/atm 0x5097fe72 atm_dev_release_vccs -EXPORT_SYMBOL net/atm/atm 0x7480bfae atm_charge -EXPORT_SYMBOL net/atm/atm 0x8acf9427 vcc_release_async -EXPORT_SYMBOL net/atm/atm 0x8c0ae3a3 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x6ed2b314 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x7527db90 atm_charge +EXPORT_SYMBOL net/atm/atm 0x7f4a81a1 vcc_insert_socket EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats -EXPORT_SYMBOL net/atm/atm 0xa6cdfe43 atm_alloc_charge EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats EXPORT_SYMBOL net/atm/atm 0xb4ffcdad vcc_sklist_lock -EXPORT_SYMBOL net/atm/atm 0xbe6cdcfb vcc_process_recv_queue -EXPORT_SYMBOL net/atm/atm 0xcd2704ef atm_dev_deregister -EXPORT_SYMBOL net/atm/atm 0xd7f0b58d register_atm_ioctl -EXPORT_SYMBOL net/atm/atm 0xf1505333 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xded75f67 vcc_process_recv_queue EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf93b16a1 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0xfc183cc9 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xfe9589d2 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xff2bbe60 atm_dev_release_vccs EXPORT_SYMBOL net/ax25/ax25 0x14cecd59 ax25_display_timer EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy -EXPORT_SYMBOL net/ax25/ax25 0x38752961 ax25_send_frame -EXPORT_SYMBOL net/ax25/ax25 0x3a1c7989 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x25526e1b ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x2e9005b9 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x35c49fc1 ax25_listen_register EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x47bf445e ax25_send_frame EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc -EXPORT_SYMBOL net/ax25/ax25 0x680ce5ce ax25_listen_register -EXPORT_SYMBOL net/ax25/ax25 0x7f550bd3 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x683f2023 ax25_ip_xmit +EXPORT_SYMBOL net/ax25/ax25 0x86263092 ax25_header_ops EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release -EXPORT_SYMBOL net/ax25/ax25 0x950df714 ax25_ip_xmit +EXPORT_SYMBOL net/ax25/ax25 0xbdf5d78c ax25_linkfail_register EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xcb1b03b1 ax25_listen_release EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address -EXPORT_SYMBOL net/ax25/ax25 0xe30097a0 ax25_listen_release -EXPORT_SYMBOL net/ax25/ax25 0xe6682208 ax25_find_cb -EXPORT_SYMBOL net/ax25/ax25 0xe8d258c3 ax25_header_ops EXPORT_SYMBOL net/ax25/ax25 0xee02e420 ax25_findbyuid -EXPORT_SYMBOL net/bluetooth/bluetooth 0x043b3e7c hci_conn_security -EXPORT_SYMBOL net/bluetooth/bluetooth 0x04ac9aa3 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x02228105 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0555389d hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x06922127 hci_devcd_abort EXPORT_SYMBOL net/bluetooth/bluetooth 0x0718b8b7 bt_info -EXPORT_SYMBOL net/bluetooth/bluetooth 0x0879282c hci_register_cb -EXPORT_SYMBOL net/bluetooth/bluetooth 0x0f6134da hci_devcd_append -EXPORT_SYMBOL net/bluetooth/bluetooth 0x12b921fb hci_set_hw_info -EXPORT_SYMBOL net/bluetooth/bluetooth 0x1a820f96 l2cap_conn_put -EXPORT_SYMBOL net/bluetooth/bluetooth 0x1dbea9e9 hci_cmd_sync_submit +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0e11cc7d hci_set_fw_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x11b7bcc9 hci_cmd_sync_queue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1569bc3e hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1dbf0d1b hci_mgmt_chan_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1ddeb40f bt_accept_dequeue EXPORT_SYMBOL net/bluetooth/bluetooth 0x214e4265 bt_warn -EXPORT_SYMBOL net/bluetooth/bluetooth 0x216a55ec __hci_cmd_sync_sk -EXPORT_SYMBOL net/bluetooth/bluetooth 0x2bade8d2 bt_procfs_init -EXPORT_SYMBOL net/bluetooth/bluetooth 0x2e0bc3e6 bt_sock_stream_recvmsg -EXPORT_SYMBOL net/bluetooth/bluetooth 0x3024d823 __hci_cmd_sync_status -EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b5221a3 bt_sock_unlink -EXPORT_SYMBOL net/bluetooth/bluetooth 0x4a0e43e4 hci_recv_frame -EXPORT_SYMBOL net/bluetooth/bluetooth 0x4ab34687 bt_sock_ioctl -EXPORT_SYMBOL net/bluetooth/bluetooth 0x4facf727 hci_conn_switch_role -EXPORT_SYMBOL net/bluetooth/bluetooth 0x504ea49c hci_release_dev -EXPORT_SYMBOL net/bluetooth/bluetooth 0x50cf47b8 hci_register_dev -EXPORT_SYMBOL net/bluetooth/bluetooth 0x545c5be6 hci_reset_dev -EXPORT_SYMBOL net/bluetooth/bluetooth 0x559653a9 hci_devcd_register -EXPORT_SYMBOL net/bluetooth/bluetooth 0x5a32e343 bt_procfs_cleanup -EXPORT_SYMBOL net/bluetooth/bluetooth 0x5b60bf2d hci_conn_check_secure -EXPORT_SYMBOL net/bluetooth/bluetooth 0x62209691 l2cap_is_socket -EXPORT_SYMBOL net/bluetooth/bluetooth 0x658f2637 bt_sock_wait_ready -EXPORT_SYMBOL net/bluetooth/bluetooth 0x67946413 hci_resume_dev -EXPORT_SYMBOL net/bluetooth/bluetooth 0x6ed6a547 bt_sock_wait_state -EXPORT_SYMBOL net/bluetooth/bluetooth 0x72258c33 bt_sock_poll -EXPORT_SYMBOL net/bluetooth/bluetooth 0x738bdf52 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x21fefb90 hci_recv_diag +EXPORT_SYMBOL net/bluetooth/bluetooth 0x307f610a l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x324a39c2 hci_devcd_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x37802c9f bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3afc1ce2 hci_set_hw_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3ebd9e31 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x490bfa21 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4e5b799d l2cap_chan_close +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f30075e __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f3de32d __hci_cmd_sync_status_sk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x53f4af2a hci_devcd_append +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5504e107 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5da564bb hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6079f94e hci_devcd_append_pattern +EXPORT_SYMBOL net/bluetooth/bluetooth 0x616b7e4e l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6200aae4 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x687abbc2 hci_cmd_sync_submit EXPORT_SYMBOL net/bluetooth/bluetooth 0x7aad008b bt_to_errno EXPORT_SYMBOL net/bluetooth/bluetooth 0x7b5ce5c3 baswap EXPORT_SYMBOL net/bluetooth/bluetooth 0x7b8c32f1 bt_err EXPORT_SYMBOL net/bluetooth/bluetooth 0x7bd9427a bt_status -EXPORT_SYMBOL net/bluetooth/bluetooth 0x82efd77e hci_set_fw_info -EXPORT_SYMBOL net/bluetooth/bluetooth 0x87186074 bt_sock_link -EXPORT_SYMBOL net/bluetooth/bluetooth 0x8d472d3a l2cap_chan_close +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8129aaab hci_devcd_complete +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8c43a089 hci_release_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8d279dde l2cap_unregister_user EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister -EXPORT_SYMBOL net/bluetooth/bluetooth 0x9203378d __hci_cmd_send -EXPORT_SYMBOL net/bluetooth/bluetooth 0x97a19627 hci_devcd_complete -EXPORT_SYMBOL net/bluetooth/bluetooth 0x98de5462 bt_accept_dequeue -EXPORT_SYMBOL net/bluetooth/bluetooth 0x9db79601 hci_recv_diag -EXPORT_SYMBOL net/bluetooth/bluetooth 0xa2e43771 __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9399f1e0 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x947f62e8 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x95663f20 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9b66999a hci_devcd_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9d7a9e23 hci_cmd_sync_cancel +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9eafad69 l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa0113585 bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa04a0941 bt_sock_wait_ready EXPORT_SYMBOL net/bluetooth/bluetooth 0xa36d67be hci_devcd_rx -EXPORT_SYMBOL net/bluetooth/bluetooth 0xa4869f49 hci_free_dev -EXPORT_SYMBOL net/bluetooth/bluetooth 0xa5258f57 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa5d568f6 bt_procfs_init EXPORT_SYMBOL net/bluetooth/bluetooth 0xa60137a1 hci_devcd_timeout -EXPORT_SYMBOL net/bluetooth/bluetooth 0xa90f8398 l2cap_unregister_user -EXPORT_SYMBOL net/bluetooth/bluetooth 0xb1faec25 hci_mgmt_chan_register -EXPORT_SYMBOL net/bluetooth/bluetooth 0xb21cfd42 hci_unregister_dev -EXPORT_SYMBOL net/bluetooth/bluetooth 0xb5e4125a hci_devcd_init -EXPORT_SYMBOL net/bluetooth/bluetooth 0xb9604c1e hci_mgmt_chan_unregister -EXPORT_SYMBOL net/bluetooth/bluetooth 0xc68eaa07 hci_devcd_abort -EXPORT_SYMBOL net/bluetooth/bluetooth 0xc90c0e32 hci_cmd_sync -EXPORT_SYMBOL net/bluetooth/bluetooth 0xcae1c975 __hci_cmd_sync_status_sk -EXPORT_SYMBOL net/bluetooth/bluetooth 0xd07dbfc7 l2cap_conn_get -EXPORT_SYMBOL net/bluetooth/bluetooth 0xd239e271 hci_cmd_sync_cancel -EXPORT_SYMBOL net/bluetooth/bluetooth 0xd4a1c0cb bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa893aa0f bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa8ac0068 __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa8b406dd bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa9ca2d30 hci_mgmt_chan_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb5ba4c26 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbc96766b bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbfeaefcc hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc4854a72 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc8374f90 __hci_cmd_send +EXPORT_SYMBOL net/bluetooth/bluetooth 0xca3c6cfe __hci_cmd_sync_sk +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcdf5e383 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd5725764 hci_alloc_dev_priv EXPORT_SYMBOL net/bluetooth/bluetooth 0xd7613212 bt_err_ratelimited +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdc7b7db8 hci_register_dev EXPORT_SYMBOL net/bluetooth/bluetooth 0xddacccf6 bt_warn_ratelimited -EXPORT_SYMBOL net/bluetooth/bluetooth 0xde37ae50 bt_sock_recvmsg -EXPORT_SYMBOL net/bluetooth/bluetooth 0xe4195580 hci_devcd_append_pattern -EXPORT_SYMBOL net/bluetooth/bluetooth 0xe8bb2622 __hci_cmd_sync_ev -EXPORT_SYMBOL net/bluetooth/bluetooth 0xe8ef7152 hci_alloc_dev_priv -EXPORT_SYMBOL net/bluetooth/bluetooth 0xf614d39d hci_get_route -EXPORT_SYMBOL net/bluetooth/bluetooth 0xf6526fd3 hci_suspend_dev -EXPORT_SYMBOL net/bluetooth/bluetooth 0xf68ba58b bt_sock_reclassify_lock -EXPORT_SYMBOL net/bluetooth/bluetooth 0xfc790612 l2cap_register_user -EXPORT_SYMBOL net/bluetooth/bluetooth 0xfc8deff5 hci_cmd_sync_queue -EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x27bff0a3 ebt_register_template -EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x45acc156 ebt_do_table -EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xabf0c765 ebt_unregister_table_pre_exit -EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xb575e298 ebt_unregister_template -EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xb771a1dc ebt_unregister_table -EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xca239f30 ebt_register_table +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdddcb2de bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xde4e9c19 __hci_cmd_sync_status +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdec3240c bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe204cb95 hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe36edaea bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe7f2c23d hci_reset_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf9e034a3 l2cap_register_user +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x19272fae ebt_unregister_template +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x342b3291 ebt_register_template +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x38cc15a8 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x599e3fca ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xa47ca285 ebt_unregister_table_pre_exit +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xb0c2175f ebt_unregister_table EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info EXPORT_SYMBOL net/caif/caif 0x38701a7c cfcnfg_del_phy_layer -EXPORT_SYMBOL net/caif/caif 0x39174ec8 caif_enroll_dev EXPORT_SYMBOL net/caif/caif 0x3fa84493 cfpkt_add_head EXPORT_SYMBOL net/caif/caif 0x40babbe0 cfpkt_extr_head EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative -EXPORT_SYMBOL net/caif/caif 0x53179be6 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x5ebd239f caif_enroll_dev +EXPORT_SYMBOL net/caif/caif 0x5fb3279e get_cfcnfg EXPORT_SYMBOL net/caif/caif 0x839ddb7b cfcnfg_set_phy_state -EXPORT_SYMBOL net/caif/caif 0x9d991c3f caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x9ceadcd1 caif_connect_client EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xab36b0ea cfcnfg_add_phy_layer EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client -EXPORT_SYMBOL net/caif/caif 0xed0c511b get_cfcnfg -EXPORT_SYMBOL net/caif/caif 0xf35470cc cfcnfg_add_phy_layer -EXPORT_SYMBOL net/can/can 0x17c87493 can_rx_register -EXPORT_SYMBOL net/can/can 0x2ef0fb6f can_proto_unregister -EXPORT_SYMBOL net/can/can 0xcbb60285 can_send -EXPORT_SYMBOL net/can/can 0xe72ce82e can_proto_register -EXPORT_SYMBOL net/can/can 0xf59722a1 can_rx_unregister -EXPORT_SYMBOL net/can/can 0xfde9af1f can_sock_destruct -EXPORT_SYMBOL net/ceph/libceph 0x00dcf5ab ceph_msg_new -EXPORT_SYMBOL net/ceph/libceph 0x065af9cf ceph_auth_handle_svc_reply_more +EXPORT_SYMBOL net/caif/caif 0xc0276c03 caif_disconnect_client +EXPORT_SYMBOL net/can/can 0x387487cb can_rx_unregister +EXPORT_SYMBOL net/can/can 0x4c9fa812 can_proto_unregister +EXPORT_SYMBOL net/can/can 0x9806ae99 can_proto_register +EXPORT_SYMBOL net/can/can 0xa1d67b1b can_rx_register +EXPORT_SYMBOL net/can/can 0xabf67dbb can_sock_destruct +EXPORT_SYMBOL net/can/can 0xc16e0c8a can_send +EXPORT_SYMBOL net/ceph/libceph 0x03c03699 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x03fb4002 ceph_print_client_options EXPORT_SYMBOL net/ceph/libceph 0x06c954f5 ceph_pg_pool_flags -EXPORT_SYMBOL net/ceph/libceph 0x07e4ad8c ceph_osdc_watch -EXPORT_SYMBOL net/ceph/libceph 0x08b80b93 ceph_osdc_list_watchers -EXPORT_SYMBOL net/ceph/libceph 0x0abb6ed0 ceph_auth_handle_bad_authorizer -EXPORT_SYMBOL net/ceph/libceph 0x0e303c53 ceph_create_client -EXPORT_SYMBOL net/ceph/libceph 0x0e8377e6 ceph_osdc_flush_notifies -EXPORT_SYMBOL net/ceph/libceph 0x126fbcef ceph_auth_is_authenticated -EXPORT_SYMBOL net/ceph/libceph 0x1516541a osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0x0aaefde7 ceph_osdc_watch +EXPORT_SYMBOL net/ceph/libceph 0x0bcce703 __ceph_auth_get_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x0f19068b ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x0f8a66ee ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x0fecf159 ceph_msg_put +EXPORT_SYMBOL net/ceph/libceph 0x1479bf76 ceph_monc_open_session EXPORT_SYMBOL net/ceph/libceph 0x165b1948 ceph_pagelist_free_reserve -EXPORT_SYMBOL net/ceph/libceph 0x17654984 ceph_parse_mon_ips -EXPORT_SYMBOL net/ceph/libceph 0x19898267 ceph_msg_get -EXPORT_SYMBOL net/ceph/libceph 0x1a4ec39a osd_req_op_extent_osd_data -EXPORT_SYMBOL net/ceph/libceph 0x1a82f5b7 ceph_osdc_new_request -EXPORT_SYMBOL net/ceph/libceph 0x1aab36bc ceph_con_close -EXPORT_SYMBOL net/ceph/libceph 0x1ae85f0d ceph_cls_break_lock -EXPORT_SYMBOL net/ceph/libceph 0x1c70d7b5 ceph_con_init -EXPORT_SYMBOL net/ceph/libceph 0x1df32dd7 ceph_auth_get_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x17a06af0 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x1e603959 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x1ec95b03 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x1f810a8b osd_req_op_extent_osd_data_bvec_pos EXPORT_SYMBOL net/ceph/libceph 0x2087719e ceph_oid_copy EXPORT_SYMBOL net/ceph/libceph 0x2101cbc9 ceph_oid_destroy -EXPORT_SYMBOL net/ceph/libceph 0x22c86f62 __ceph_auth_get_authorizer -EXPORT_SYMBOL net/ceph/libceph 0x236f1b6b ceph_osdc_update_epoch_barrier -EXPORT_SYMBOL net/ceph/libceph 0x25c3a100 osd_req_op_extent_osd_data_bvecs -EXPORT_SYMBOL net/ceph/libceph 0x265e25f2 ceph_monc_do_statfs -EXPORT_SYMBOL net/ceph/libceph 0x27dba219 ceph_monc_get_version_async -EXPORT_SYMBOL net/ceph/libceph 0x29c00396 ceph_cls_assert_locked EXPORT_SYMBOL net/ceph/libceph 0x2a983d26 ceph_pagelist_release -EXPORT_SYMBOL net/ceph/libceph 0x301c35ee ceph_monc_init -EXPORT_SYMBOL net/ceph/libceph 0x3073cfb0 ceph_con_keepalive -EXPORT_SYMBOL net/ceph/libceph 0x315a5e34 ceph_osdc_sync -EXPORT_SYMBOL net/ceph/libceph 0x359c189d ceph_copy_from_page_vector -EXPORT_SYMBOL net/ceph/libceph 0x3804b0a3 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x2b273359 ceph_client_gid +EXPORT_SYMBOL net/ceph/libceph 0x2cd0dc0b ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x32ec728a ceph_auth_is_authenticated EXPORT_SYMBOL net/ceph/libceph 0x38dc2316 ceph_object_locator_to_pg EXPORT_SYMBOL net/ceph/libceph 0x38f2d94e ceph_file_to_extents +EXPORT_SYMBOL net/ceph/libceph 0x3aa1c767 ceph_cls_break_lock EXPORT_SYMBOL net/ceph/libceph 0x3c8d7111 ceph_get_num_objects -EXPORT_SYMBOL net/ceph/libceph 0x40e0cab0 ceph_osdc_cancel_request -EXPORT_SYMBOL net/ceph/libceph 0x416bbddf __ceph_open_session -EXPORT_SYMBOL net/ceph/libceph 0x416d6155 ceph_osdc_unwatch +EXPORT_SYMBOL net/ceph/libceph 0x3c99f1b6 ceph_monc_get_version_async EXPORT_SYMBOL net/ceph/libceph 0x417a9131 ceph_oloc_destroy -EXPORT_SYMBOL net/ceph/libceph 0x42a69137 ceph_monc_blocklist_add -EXPORT_SYMBOL net/ceph/libceph 0x42d86b0b osd_req_op_extent_osd_data_pagelist -EXPORT_SYMBOL net/ceph/libceph 0x46668444 ceph_msg_put +EXPORT_SYMBOL net/ceph/libceph 0x42b25826 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0x43713469 ceph_monc_want_map +EXPORT_SYMBOL net/ceph/libceph 0x4603e2d3 ceph_zero_page_vector_range EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible -EXPORT_SYMBOL net/ceph/libceph 0x484d08b7 ceph_osdc_notify_ack -EXPORT_SYMBOL net/ceph/libceph 0x4abd8c49 osd_req_op_extent_dup_last -EXPORT_SYMBOL net/ceph/libceph 0x4afbcb6b osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x48dccf71 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x49ec3ba1 ceph_parse_param EXPORT_SYMBOL net/ceph/libceph 0x4affd6c2 ceph_parse_fsid -EXPORT_SYMBOL net/ceph/libceph 0x4c09c63b ceph_monc_want_map -EXPORT_SYMBOL net/ceph/libceph 0x4d2d0530 ceph_cls_lock_info -EXPORT_SYMBOL net/ceph/libceph 0x4d913b35 ceph_client_addr -EXPORT_SYMBOL net/ceph/libceph 0x4e7c0e98 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x4d0b050f ceph_monc_wait_osdmap EXPORT_SYMBOL net/ceph/libceph 0x50603ce3 ceph_decode_entity_addrvec -EXPORT_SYMBOL net/ceph/libceph 0x53987648 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x54dfc024 osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0x55685401 ceph_msg_new2 EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash -EXPORT_SYMBOL net/ceph/libceph 0x5944c56a ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x57dc4a22 ceph_wait_for_latest_osdmap EXPORT_SYMBOL net/ceph/libceph 0x5aeeee62 ceph_oid_aprintf -EXPORT_SYMBOL net/ceph/libceph 0x5b8b4e96 ceph_cls_set_cookie -EXPORT_SYMBOL net/ceph/libceph 0x5c10d464 ceph_put_page_vector -EXPORT_SYMBOL net/ceph/libceph 0x5c8db75b osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x5cd298d1 ceph_msg_data_add_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x5cd9226e ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x603d3e8c ceph_osdc_put_request +EXPORT_SYMBOL net/ceph/libceph 0x60a53eeb osd_req_op_xattr_init +EXPORT_SYMBOL net/ceph/libceph 0x6335e318 ceph_osdc_wait_request EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name -EXPORT_SYMBOL net/ceph/libceph 0x65e58c07 osd_req_op_extent_osd_iter -EXPORT_SYMBOL net/ceph/libceph 0x6a0b8289 ceph_osdc_get_request +EXPORT_SYMBOL net/ceph/libceph 0x646fb877 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x6a6c6662 ceph_osdc_update_epoch_barrier EXPORT_SYMBOL net/ceph/libceph 0x6a7a38a0 ceph_pr_addr -EXPORT_SYMBOL net/ceph/libceph 0x6d503598 ceph_copy_to_page_vector -EXPORT_SYMBOL net/ceph/libceph 0x712eabff ceph_monc_get_version -EXPORT_SYMBOL net/ceph/libceph 0x725aa882 ceph_osdc_notify -EXPORT_SYMBOL net/ceph/libceph 0x777da30d osd_req_op_extent_osd_data_bvec_pos -EXPORT_SYMBOL net/ceph/libceph 0x77921c98 osd_req_op_cls_init -EXPORT_SYMBOL net/ceph/libceph 0x78bb2f5e ceph_parse_param -EXPORT_SYMBOL net/ceph/libceph 0x7a5783e0 ceph_cls_lock -EXPORT_SYMBOL net/ceph/libceph 0x7dea7282 osd_req_op_cls_request_data_pagelist -EXPORT_SYMBOL net/ceph/libceph 0x7e4cc3f3 ceph_msg_data_add_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x6e7da0eb osd_req_op_cls_request_data_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x6faf1610 ceph_auth_handle_svc_reply_done +EXPORT_SYMBOL net/ceph/libceph 0x70c46cef ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0x761f36d6 ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x76239cb2 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x771e194f osd_req_op_extent_osd_data_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x78916f09 ceph_monc_got_map +EXPORT_SYMBOL net/ceph/libceph 0x798fe0ec ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x7b14bedf osd_req_op_cls_response_data_pages EXPORT_SYMBOL net/ceph/libceph 0x80772336 ceph_pg_to_acting_primary -EXPORT_SYMBOL net/ceph/libceph 0x8169f619 ceph_auth_invalidate_authorizer -EXPORT_SYMBOL net/ceph/libceph 0x85043761 ceph_copy_user_to_page_vector -EXPORT_SYMBOL net/ceph/libceph 0x8640c69c ceph_print_client_options +EXPORT_SYMBOL net/ceph/libceph 0x821608b9 ceph_osdc_unwatch +EXPORT_SYMBOL net/ceph/libceph 0x82bbfa29 ceph_parse_mon_ips +EXPORT_SYMBOL net/ceph/libceph 0x83add736 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x840363fd ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0x8434a2ad __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x851d7315 ceph_auth_handle_bad_authorizer EXPORT_SYMBOL net/ceph/libceph 0x86fca7e4 ceph_put_snap_context -EXPORT_SYMBOL net/ceph/libceph 0x873fc394 osd_req_op_cls_response_data_pages -EXPORT_SYMBOL net/ceph/libceph 0x87923729 ceph_msg_data_add_bio -EXPORT_SYMBOL net/ceph/libceph 0x8b0d5faf ceph_osdc_maybe_request_map -EXPORT_SYMBOL net/ceph/libceph 0x8e6f9e99 ceph_msg_data_add_pagelist -EXPORT_SYMBOL net/ceph/libceph 0x93dc1862 osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x8937cf4f ceph_osdc_maybe_request_map +EXPORT_SYMBOL net/ceph/libceph 0x8a083096 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x8ae6f5f6 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x8bf41347 ceph_osdc_alloc_messages +EXPORT_SYMBOL net/ceph/libceph 0x8c77b567 osd_req_op_alloc_hint_init +EXPORT_SYMBOL net/ceph/libceph 0x8dcd4bea osd_req_op_extent_dup_last +EXPORT_SYMBOL net/ceph/libceph 0x90f93f60 osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0x923634d8 osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x93d14f21 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x9486b299 ceph_cls_lock_info +EXPORT_SYMBOL net/ceph/libceph 0x94d8589a ceph_put_page_vector EXPORT_SYMBOL net/ceph/libceph 0x987d3968 ceph_alloc_options -EXPORT_SYMBOL net/ceph/libceph 0x98f079a8 osd_req_op_cls_request_data_bvecs -EXPORT_SYMBOL net/ceph/libceph 0x995bf059 ceph_osdc_abort_requests +EXPORT_SYMBOL net/ceph/libceph 0x9a82c29e osd_req_op_cls_init EXPORT_SYMBOL net/ceph/libceph 0x9bc6b539 ceph_find_or_create_string EXPORT_SYMBOL net/ceph/libceph 0x9ca95932 ceph_create_snap_context -EXPORT_SYMBOL net/ceph/libceph 0x9d48e70e ceph_auth_handle_svc_reply_done -EXPORT_SYMBOL net/ceph/libceph 0x9e25bfca ceph_msg_dump -EXPORT_SYMBOL net/ceph/libceph 0x9e7a650a ceph_osdc_wait_request EXPORT_SYMBOL net/ceph/libceph 0x9fbba67f ceph_buffer_new EXPORT_SYMBOL net/ceph/libceph 0x9fefa3cb ceph_calc_file_object_mapping -EXPORT_SYMBOL net/ceph/libceph 0xa2b8e76f ceph_con_open -EXPORT_SYMBOL net/ceph/libceph 0xa6580903 ceph_wait_for_latest_osdmap +EXPORT_SYMBOL net/ceph/libceph 0xa0e9ee5c ceph_monc_renew_subs +EXPORT_SYMBOL net/ceph/libceph 0xa1569160 ceph_osdc_clear_abort_err +EXPORT_SYMBOL net/ceph/libceph 0xa5631bbd ceph_cls_set_cookie EXPORT_SYMBOL net/ceph/libceph 0xa698f998 ceph_free_lockers -EXPORT_SYMBOL net/ceph/libceph 0xa7458dca ceph_monc_renew_subs -EXPORT_SYMBOL net/ceph/libceph 0xa7c350d1 ceph_cls_unlock -EXPORT_SYMBOL net/ceph/libceph 0xa8b9ab8d __ceph_alloc_sparse_ext_map -EXPORT_SYMBOL net/ceph/libceph 0xaa4d376a ceph_msg_new2 -EXPORT_SYMBOL net/ceph/libceph 0xab13d5fb ceph_monc_got_map -EXPORT_SYMBOL net/ceph/libceph 0xac38c398 osd_req_op_xattr_init EXPORT_SYMBOL net/ceph/libceph 0xad703657 ceph_auth_destroy_authorizer EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb20fdef2 __ceph_alloc_sparse_ext_map +EXPORT_SYMBOL net/ceph/libceph 0xb43dcb76 ceph_con_init EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name EXPORT_SYMBOL net/ceph/libceph 0xb72c162e ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xb82cd661 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xba1a6dc6 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xba2b1084 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0xbb219fa5 ceph_cls_unlock EXPORT_SYMBOL net/ceph/libceph 0xbd2f79ae ceph_oloc_copy +EXPORT_SYMBOL net/ceph/libceph 0xbe246a52 ceph_cls_assert_locked EXPORT_SYMBOL net/ceph/libceph 0xbe3879aa ceph_get_snap_context -EXPORT_SYMBOL net/ceph/libceph 0xbe70cda8 osd_req_op_extent_osd_data_bio -EXPORT_SYMBOL net/ceph/libceph 0xbfb066da ceph_osdc_clear_abort_err -EXPORT_SYMBOL net/ceph/libceph 0xc0107ac7 ceph_alloc_page_vector -EXPORT_SYMBOL net/ceph/libceph 0xc0a1f55a ceph_open_session -EXPORT_SYMBOL net/ceph/libceph 0xc269c6d9 ceph_client_gid +EXPORT_SYMBOL net/ceph/libceph 0xbfc60772 ceph_monc_get_version +EXPORT_SYMBOL net/ceph/libceph 0xc0336842 ceph_auth_add_authorizer_challenge +EXPORT_SYMBOL net/ceph/libceph 0xc2d17e3d ceph_cls_lock EXPORT_SYMBOL net/ceph/libceph 0xc366bfa1 ceph_pagelist_truncate -EXPORT_SYMBOL net/ceph/libceph 0xc421feb4 ceph_msg_data_add_pages -EXPORT_SYMBOL net/ceph/libceph 0xc5362763 ceph_osdc_put_request -EXPORT_SYMBOL net/ceph/libceph 0xc5cfdd37 ceph_auth_add_authorizer_challenge -EXPORT_SYMBOL net/ceph/libceph 0xc90b36b8 ceph_monc_wait_osdmap +EXPORT_SYMBOL net/ceph/libceph 0xc630626b ceph_osdc_notify_ack +EXPORT_SYMBOL net/ceph/libceph 0xc95069ce osd_req_op_extent_update EXPORT_SYMBOL net/ceph/libceph 0xca80437b ceph_extent_to_file -EXPORT_SYMBOL net/ceph/libceph 0xcaa63488 ceph_monc_stop -EXPORT_SYMBOL net/ceph/libceph 0xcb440ff1 osd_req_op_init -EXPORT_SYMBOL net/ceph/libceph 0xcd4d8525 osd_req_op_extent_init -EXPORT_SYMBOL net/ceph/libceph 0xd1ec38af ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xcb3de99b ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0xcb40be1d ceph_osdc_list_watchers +EXPORT_SYMBOL net/ceph/libceph 0xd011b0b7 ceph_osdc_get_request EXPORT_SYMBOL net/ceph/libceph 0xd4d736db ceph_destroy_options EXPORT_SYMBOL net/ceph/libceph 0xd4eb7735 ceph_decode_entity_addr -EXPORT_SYMBOL net/ceph/libceph 0xd602009b ceph_con_send -EXPORT_SYMBOL net/ceph/libceph 0xd60f6233 osd_req_op_alloc_hint_init -EXPORT_SYMBOL net/ceph/libceph 0xde00f808 osd_req_op_copy_from_init +EXPORT_SYMBOL net/ceph/libceph 0xd569b393 osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xda965bad ceph_monc_blocklist_add +EXPORT_SYMBOL net/ceph/libceph 0xdb0a8204 osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xdc952d11 ceph_msg_get +EXPORT_SYMBOL net/ceph/libceph 0xdca11335 osd_req_op_extent_osd_iter +EXPORT_SYMBOL net/ceph/libceph 0xdda93c2e ceph_osdc_call EXPORT_SYMBOL net/ceph/libceph 0xdf6ef4a1 ceph_oid_printf EXPORT_SYMBOL net/ceph/libceph 0xdfc091f9 ceph_entity_type_name -EXPORT_SYMBOL net/ceph/libceph 0xe341208a ceph_reset_client_addr +EXPORT_SYMBOL net/ceph/libceph 0xe0743d4f osd_req_op_copy_from_init +EXPORT_SYMBOL net/ceph/libceph 0xe1fe2a49 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xe21e0027 ceph_osdc_cancel_request +EXPORT_SYMBOL net/ceph/libceph 0xe34dad4e osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0xe38fbae9 ceph_client_addr +EXPORT_SYMBOL net/ceph/libceph 0xe451c62f ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xe4a831b2 ceph_monc_stop EXPORT_SYMBOL net/ceph/libceph 0xe76e7226 ceph_pagelist_alloc EXPORT_SYMBOL net/ceph/libceph 0xe9fcbf86 ceph_pg_pool_name_by_id -EXPORT_SYMBOL net/ceph/libceph 0xed037245 ceph_osdc_start_request EXPORT_SYMBOL net/ceph/libceph 0xee120c03 ceph_release_string -EXPORT_SYMBOL net/ceph/libceph 0xee2caadf ceph_monc_open_session EXPORT_SYMBOL net/ceph/libceph 0xeef6cfa3 ceph_iterate_extents EXPORT_SYMBOL net/ceph/libceph 0xefce3c3b ceph_pagelist_reserve EXPORT_SYMBOL net/ceph/libceph 0xefce991c ceph_pagelist_append EXPORT_SYMBOL net/ceph/libceph 0xf03fe862 ceph_pagelist_set_cursor -EXPORT_SYMBOL net/ceph/libceph 0xf0de336a ceph_osdc_alloc_messages -EXPORT_SYMBOL net/ceph/libceph 0xf1550c9b ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0xf0f33820 ceph_osdc_abort_requests +EXPORT_SYMBOL net/ceph/libceph 0xf1748858 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0xf1ebd430 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0xf2149462 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0xf23b0cf1 ceph_auth_get_authorizer EXPORT_SYMBOL net/ceph/libceph 0xf254297e ceph_addr_is_blank -EXPORT_SYMBOL net/ceph/libceph 0xf349c1fd ceph_monc_validate_auth EXPORT_SYMBOL net/ceph/libceph 0xf5acd9cf ceph_pg_poolid_by_name -EXPORT_SYMBOL net/ceph/libceph 0xf803b2c5 ceph_auth_verify_authorizer_reply -EXPORT_SYMBOL net/ceph/libceph 0xff4fe17e ceph_osdc_call -EXPORT_SYMBOL net/dccp/dccp_ipv4 0x665c9d7c dccp_req_err -EXPORT_SYMBOL net/dccp/dccp_ipv4 0xf1f4853e dccp_syn_ack_timeout -EXPORT_SYMBOL net/hsr/hsr 0xa9e82148 hsr_get_version -EXPORT_SYMBOL net/hsr/hsr 0xad954d32 is_hsr_master -EXPORT_SYMBOL net/ieee802154/ieee802154 0x02571ba0 wpan_phy_for_each -EXPORT_SYMBOL net/ieee802154/ieee802154 0x31f6dbcf wpan_phy_unregister -EXPORT_SYMBOL net/ieee802154/ieee802154 0x3d6520bc wpan_phy_find -EXPORT_SYMBOL net/ieee802154/ieee802154 0x54077e97 wpan_phy_free -EXPORT_SYMBOL net/ieee802154/ieee802154 0x680d2f27 wpan_phy_register -EXPORT_SYMBOL net/ieee802154/ieee802154 0xa421e8f8 wpan_phy_new +EXPORT_SYMBOL net/ceph/libceph 0xf7dba94f ceph_osdc_notify +EXPORT_SYMBOL net/ceph/libceph 0xf92d86c9 ceph_auth_handle_svc_reply_more +EXPORT_SYMBOL net/ceph/libceph 0xfa18df66 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0xfa96be5c ceph_reset_client_addr +EXPORT_SYMBOL net/ceph/libceph 0xfba1d189 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xfd0e8e89 osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x032dbd7b dccp_syn_ack_timeout +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x53b0f091 dccp_req_err +EXPORT_SYMBOL net/hsr/hsr 0x5b6213cc is_hsr_master +EXPORT_SYMBOL net/hsr/hsr 0xc1a49ed9 hsr_get_version +EXPORT_SYMBOL net/ieee802154/ieee802154 0x02c72ae0 wpan_phy_new +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1f57dd1d wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x34e8e2e8 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5fb3427f wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6a07639e wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbe2d5ab6 wpan_phy_register EXPORT_SYMBOL net/ipv4/fou 0x1757d1a4 fou_encap_hlen -EXPORT_SYMBOL net/ipv4/fou 0xa9e378f3 __gue_build_header -EXPORT_SYMBOL net/ipv4/fou 0xaf52b8bd __fou_build_header +EXPORT_SYMBOL net/ipv4/fou 0x50288176 __fou_build_header +EXPORT_SYMBOL net/ipv4/fou 0xddacfbba __gue_build_header EXPORT_SYMBOL net/ipv4/fou 0xf13914b3 gue_encap_hlen -EXPORT_SYMBOL net/ipv4/gre 0xea69d057 gre_parse_header -EXPORT_SYMBOL net/ipv4/ip_tunnel 0x61f8e4c6 ip_tunnel_encap_del_ops -EXPORT_SYMBOL net/ipv4/ip_tunnel 0x93fc7177 ip_tunnel_md_udp_encap -EXPORT_SYMBOL net/ipv4/ip_tunnel 0xb3e22be0 ip_tunnel_encap_add_ops -EXPORT_SYMBOL net/ipv4/ip_tunnel 0xcbc5d19b ip_tunnel_get_iflink -EXPORT_SYMBOL net/ipv4/ip_tunnel 0xd5db4eca ip_tunnel_get_link_net -EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xb6b600b7 arpt_unregister_table -EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xc2227139 arpt_register_table -EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xcf39b381 arpt_unregister_table_pre_exit -EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xe004ac9d arpt_do_table -EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x13ec3a4f ipt_unregister_table_exit -EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x7a6ef447 ipt_register_table -EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x9f183033 ipt_unregister_table_pre_exit -EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xb417f23e ipt_do_table -EXPORT_SYMBOL net/ipv4/tunnel4 0x3eb36b50 xfrm4_tunnel_register -EXPORT_SYMBOL net/ipv4/tunnel4 0xe9346c85 xfrm4_tunnel_deregister -EXPORT_SYMBOL net/ipv4/udp_tunnel 0xd0e5d629 udp_sock_create4 -EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x0b22b568 ip6_tnl_get_iflink -EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x1c8fceba ip6_tnl_change_mtu -EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x2f5234d7 ip6_tnl_parse_tlv_enc_lim -EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x9675626d ip6_tnl_encap_add_ops -EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x993db01d ip6_tnl_xmit -EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xb8ceb5da ip6_tnl_get_cap -EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xc58ba14c ip6_tnl_get_link_net -EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xfb82864e ip6_tnl_encap_del_ops -EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xfe9112c3 ip6_tnl_rcv -EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x04bbe3ef ip6t_unregister_table_pre_exit -EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x3adb3aba ip6t_register_table -EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x5d816b23 ip6t_unregister_table_exit -EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xf95cc41e ip6t_do_table -EXPORT_SYMBOL net/ipv6/tunnel6 0x4bb5fed0 xfrm6_tunnel_register -EXPORT_SYMBOL net/ipv6/tunnel6 0x9df31bd3 xfrm6_tunnel_deregister -EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x1e672227 xfrm6_tunnel_alloc_spi -EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xea3c168f xfrm6_tunnel_spi_lookup -EXPORT_SYMBOL net/lapb/lapb 0x172b96da lapb_getparms -EXPORT_SYMBOL net/lapb/lapb 0x3e2a52d4 lapb_data_request -EXPORT_SYMBOL net/lapb/lapb 0x45a92ed7 lapb_setparms -EXPORT_SYMBOL net/lapb/lapb 0x4a768c7f lapb_register -EXPORT_SYMBOL net/lapb/lapb 0x5231d3cf lapb_connect_request -EXPORT_SYMBOL net/lapb/lapb 0x6b0a0ca4 lapb_data_received -EXPORT_SYMBOL net/lapb/lapb 0xba3f1432 lapb_unregister -EXPORT_SYMBOL net/lapb/lapb 0xf633e5e3 lapb_disconnect_request +EXPORT_SYMBOL net/ipv4/gre 0x7572a24c gre_parse_header +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x83bc9ceb ip_tunnel_encap_add_ops +EXPORT_SYMBOL net/ipv4/ip_tunnel 0xb92e2bd0 ip_tunnel_md_udp_encap +EXPORT_SYMBOL net/ipv4/ip_tunnel 0xbb619470 ip_tunnel_encap_del_ops +EXPORT_SYMBOL net/ipv4/ip_tunnel 0xbe3bc0b0 ip_tunnel_get_iflink +EXPORT_SYMBOL net/ipv4/ip_tunnel 0xc9c2c7d0 ip_tunnel_get_link_net +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x4f50dd5a arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x573979f7 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x9270ad01 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xbb4e5c08 arpt_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x0131a621 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x20a8c5c0 ipt_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x4dc27022 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xf0aa1115 ipt_unregister_table_exit +EXPORT_SYMBOL net/ipv4/tunnel4 0xe31e9a39 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xfe3e41c9 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/udp_tunnel 0x55199201 udp_sock_create4 +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x06d4d901 ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x1e325b97 ip6_tnl_encap_add_ops +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x44c2a199 ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x69df7e33 ip6_tnl_xmit +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x7724abf4 ip6_tnl_get_link_net +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xa6e56a38 ip6_tnl_change_mtu +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xac85adfb ip6_tnl_encap_del_ops +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xdc07f8fa ip6_tnl_get_iflink +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xde169e94 ip6_tnl_rcv +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x34c95f88 ip6t_unregister_table_exit +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x78b7a38f ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x8de3cf20 ip6t_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xc4d8b352 ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x233ac0b5 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xcaf5f502 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x0043642c xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x370c5357 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/lapb/lapb 0x51838745 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x52bca25c lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x5af3b369 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x8b0f6b00 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x9c262220 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xd42b6dc8 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xe58a40b8 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xea1385d4 lapb_setparms +EXPORT_SYMBOL net/llc/llc 0x0ff5e0de llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x1452d061 llc_mac_hdr_init EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack -EXPORT_SYMBOL net/llc/llc 0x404a5ea4 llc_add_pack -EXPORT_SYMBOL net/llc/llc 0x514c0bb3 llc_sap_close EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list -EXPORT_SYMBOL net/llc/llc 0xa64398cd llc_sap_find -EXPORT_SYMBOL net/llc/llc 0xca749106 llc_set_station_handler -EXPORT_SYMBOL net/llc/llc 0xd13c9a0f llc_mac_hdr_init -EXPORT_SYMBOL net/llc/llc 0xef48e526 llc_sap_open -EXPORT_SYMBOL net/llc/llc 0xf7685e1f llc_build_and_send_ui_pkt -EXPORT_SYMBOL net/mac80211/mac80211 0x00de7986 ieee80211_rx_ba_timer_expired -EXPORT_SYMBOL net/mac80211/mac80211 0x01289e91 ieee80211_register_hw -EXPORT_SYMBOL net/mac80211/mac80211 0x03f08137 ieee80211_txq_airtime_check -EXPORT_SYMBOL net/mac80211/mac80211 0x056bfde4 ieee80211_get_tkip_p2k -EXPORT_SYMBOL net/mac80211/mac80211 0x06f6f7d2 ieee80211_beacon_get_template_ema_list -EXPORT_SYMBOL net/mac80211/mac80211 0x0e871c0e ieee80211_enable_rssi_reports -EXPORT_SYMBOL net/mac80211/mac80211 0x0fe500b8 ieee80211_beacon_free_ema_list -EXPORT_SYMBOL net/mac80211/mac80211 0x16efc3fe ieee80211_unreserve_tid -EXPORT_SYMBOL net/mac80211/mac80211 0x177507b2 ieee80211_next_txq -EXPORT_SYMBOL net/mac80211/mac80211 0x19529dec ieee80211_queue_stopped +EXPORT_SYMBOL net/llc/llc 0x56f5efd0 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0x67886317 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x866b1731 llc_sap_find +EXPORT_SYMBOL net/llc/llc 0xd369ab68 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0xde659a28 llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/mac80211/mac80211 0x000c8a6b ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x01f2cd53 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x07b6c0c8 ieee80211_next_txq +EXPORT_SYMBOL net/mac80211/mac80211 0x07cb03e4 ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x08aff178 rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x0d71a671 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x10e726b8 ieee80211_sta_pspoll +EXPORT_SYMBOL net/mac80211/mac80211 0x12809da3 ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x16944b1b ieee80211_tx_status_irqsafe EXPORT_SYMBOL net/mac80211/mac80211 0x19f37f0d ieee80211_update_p2p_noa -EXPORT_SYMBOL net/mac80211/mac80211 0x1c075c02 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x1abcd66c __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x1acdc7cc ieee80211_get_tx_rates EXPORT_SYMBOL net/mac80211/mac80211 0x1cf75d45 ieee80211_get_tkip_p1k_iv -EXPORT_SYMBOL net/mac80211/mac80211 0x1fc250db ieee80211_sta_pspoll -EXPORT_SYMBOL net/mac80211/mac80211 0x22710c6d ieee80211_disconnect -EXPORT_SYMBOL net/mac80211/mac80211 0x249f1f3f ieee80211_sta_uapsd_trigger -EXPORT_SYMBOL net/mac80211/mac80211 0x2975dbdd ieee80211_get_fils_discovery_tmpl -EXPORT_SYMBOL net/mac80211/mac80211 0x2ee34054 ieee80211_send_eosp_nullfunc -EXPORT_SYMBOL net/mac80211/mac80211 0x30e1c6e3 ieee80211_stop_queues -EXPORT_SYMBOL net/mac80211/mac80211 0x371cafae ieee80211_nan_func_match -EXPORT_SYMBOL net/mac80211/mac80211 0x3792f054 ieee80211_send_bar -EXPORT_SYMBOL net/mac80211/mac80211 0x386fc56e ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x1ef993e7 ieee80211_send_eosp_nullfunc +EXPORT_SYMBOL net/mac80211/mac80211 0x2109ea59 ieee80211_tx_dequeue +EXPORT_SYMBOL net/mac80211/mac80211 0x26998ca1 ieee80211_rx_ba_timer_expired +EXPORT_SYMBOL net/mac80211/mac80211 0x26ed9310 ieee80211_rx_list +EXPORT_SYMBOL net/mac80211/mac80211 0x2b77c596 ieee80211_manage_rx_ba_offl +EXPORT_SYMBOL net/mac80211/mac80211 0x2d2aae8d ieee80211_beacon_set_cntdwn +EXPORT_SYMBOL net/mac80211/mac80211 0x2dfb1594 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x33176fea ieee80211_stop_queues EXPORT_SYMBOL net/mac80211/mac80211 0x391eda45 ieee80211_get_tkip_rx_p1k -EXPORT_SYMBOL net/mac80211/mac80211 0x392aceb6 ieee80211_rx_irqsafe -EXPORT_SYMBOL net/mac80211/mac80211 0x3ddf18f7 __ieee80211_get_rx_led_name -EXPORT_SYMBOL net/mac80211/mac80211 0x3e0137f0 ieee80211_free_hw -EXPORT_SYMBOL net/mac80211/mac80211 0x42a22df2 ieee80211_cqm_rssi_notify -EXPORT_SYMBOL net/mac80211/mac80211 0x42cae603 ieee80211_sta_register_airtime -EXPORT_SYMBOL net/mac80211/mac80211 0x46786f7d ieee80211_csa_finish -EXPORT_SYMBOL net/mac80211/mac80211 0x47774805 ieee80211_nan_func_terminated -EXPORT_SYMBOL net/mac80211/mac80211 0x4b02f1ad ieee80211_chswitch_done -EXPORT_SYMBOL net/mac80211/mac80211 0x51372595 ieee80211_txq_get_depth -EXPORT_SYMBOL net/mac80211/mac80211 0x522916f4 ieee80211_disable_rssi_reports -EXPORT_SYMBOL net/mac80211/mac80211 0x52c7b58f ieee80211_refresh_tx_agg_session_timer -EXPORT_SYMBOL net/mac80211/mac80211 0x540f9098 ieee80211_generic_frame_duration -EXPORT_SYMBOL net/mac80211/mac80211 0x56b8095c ieee80211_nullfunc_get -EXPORT_SYMBOL net/mac80211/mac80211 0x57f67cea __ieee80211_get_tx_led_name -EXPORT_SYMBOL net/mac80211/mac80211 0x59ce8bb5 ieee80211_radar_detected -EXPORT_SYMBOL net/mac80211/mac80211 0x5acd9d3f ieee80211_restart_hw -EXPORT_SYMBOL net/mac80211/mac80211 0x627d834c ieee80211_tx_status_ext -EXPORT_SYMBOL net/mac80211/mac80211 0x63c6728f ieee80211_wake_queues -EXPORT_SYMBOL net/mac80211/mac80211 0x63dc44b5 ieee80211_tx_status_irqsafe -EXPORT_SYMBOL net/mac80211/mac80211 0x64a81b49 rate_control_set_rates -EXPORT_SYMBOL net/mac80211/mac80211 0x65556337 ieee80211_tx_status -EXPORT_SYMBOL net/mac80211/mac80211 0x66a8b9cb ieee80211_beacon_get_template -EXPORT_SYMBOL net/mac80211/mac80211 0x6756ddb9 ieee80211_rx_napi -EXPORT_SYMBOL net/mac80211/mac80211 0x6788909a ieee80211_sta_recalc_aggregates -EXPORT_SYMBOL net/mac80211/mac80211 0x6a35daf3 ieee80211_unregister_hw -EXPORT_SYMBOL net/mac80211/mac80211 0x6c7034f3 ieee80211_rate_control_register -EXPORT_SYMBOL net/mac80211/mac80211 0x7837ae46 ieee80211_cqm_beacon_loss_notify -EXPORT_SYMBOL net/mac80211/mac80211 0x7a63f4e7 ieee80211_stop_tx_ba_cb_irqsafe -EXPORT_SYMBOL net/mac80211/mac80211 0x7e794a88 ieee80211_proberesp_get -EXPORT_SYMBOL net/mac80211/mac80211 0x83483127 ieee80211_rts_duration -EXPORT_SYMBOL net/mac80211/mac80211 0x84e97d7a ieee80211_sched_scan_results -EXPORT_SYMBOL net/mac80211/mac80211 0x85e51cf6 ieee80211_report_low_ack -EXPORT_SYMBOL net/mac80211/mac80211 0x883fee89 __ieee80211_create_tpt_led_trigger -EXPORT_SYMBOL net/mac80211/mac80211 0x8994389c ieee80211_beacon_loss -EXPORT_SYMBOL net/mac80211/mac80211 0x903c7b99 __ieee80211_schedule_txq -EXPORT_SYMBOL net/mac80211/mac80211 0x916596bd ieee80211_get_tx_rates -EXPORT_SYMBOL net/mac80211/mac80211 0x916904ba ieee80211_pspoll_get -EXPORT_SYMBOL net/mac80211/mac80211 0x918bc6ab ieee80211_probereq_get -EXPORT_SYMBOL net/mac80211/mac80211 0x94f6c871 ieee80211_manage_rx_ba_offl +EXPORT_SYMBOL net/mac80211/mac80211 0x3d0cccb4 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x462beae9 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x463238c4 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x4bcb8f01 ieee80211_beacon_free_ema_list +EXPORT_SYMBOL net/mac80211/mac80211 0x4d9b89a1 ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0x5182231e ieee80211_disconnect +EXPORT_SYMBOL net/mac80211/mac80211 0x525efd21 ieee80211_beacon_get_template_ema_list +EXPORT_SYMBOL net/mac80211/mac80211 0x582fd461 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x614840ab ieee80211_txq_may_transmit +EXPORT_SYMBOL net/mac80211/mac80211 0x6198510c ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x640dd88b ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x6474e46f ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x649a39f5 ieee80211_rx_napi +EXPORT_SYMBOL net/mac80211/mac80211 0x66c4f424 ieee80211_nan_func_match +EXPORT_SYMBOL net/mac80211/mac80211 0x66ee23a2 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0x68ad3a40 ieee80211_sta_recalc_aggregates +EXPORT_SYMBOL net/mac80211/mac80211 0x68e63998 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x69b5673d ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x6aab40eb ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x6c104c7e ieee80211_beacon_get_template +EXPORT_SYMBOL net/mac80211/mac80211 0x6cb9de56 ieee80211_beacon_update_cntdwn +EXPORT_SYMBOL net/mac80211/mac80211 0x7083a15c ieee80211_reserve_tid +EXPORT_SYMBOL net/mac80211/mac80211 0x716b0581 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x77510979 ieee80211_nan_func_terminated +EXPORT_SYMBOL net/mac80211/mac80211 0x78486e37 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x7f893887 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x8606cd7e ieee80211_beacon_get_template_ema_index +EXPORT_SYMBOL net/mac80211/mac80211 0x89598b0e ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0x8b54c2da ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0x8cb16858 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x8d3e79bc ieee80211_tdls_oper_request +EXPORT_SYMBOL net/mac80211/mac80211 0x8eeb0d07 ieee80211_tx_status_ext EXPORT_SYMBOL net/mac80211/mac80211 0x95febea6 ieee80211_get_bssid +EXPORT_SYMBOL net/mac80211/mac80211 0x96a89140 ieee80211_sched_scan_results EXPORT_SYMBOL net/mac80211/mac80211 0x991a0ca0 ieee80211_parse_p2p_noa -EXPORT_SYMBOL net/mac80211/mac80211 0x99b386de ieee80211_queue_work -EXPORT_SYMBOL net/mac80211/mac80211 0x9cc5d631 ieee80211_sched_scan_stopped -EXPORT_SYMBOL net/mac80211/mac80211 0x9f99834f ieee80211_get_unsol_bcast_probe_resp_tmpl -EXPORT_SYMBOL net/mac80211/mac80211 0xa025042c ieee80211_txq_schedule_start -EXPORT_SYMBOL net/mac80211/mac80211 0xa07697a4 __ieee80211_get_radio_led_name -EXPORT_SYMBOL net/mac80211/mac80211 0xa0eca7ba ieee80211_tx_prepare_skb -EXPORT_SYMBOL net/mac80211/mac80211 0xa2b80979 ieee80211_start_tx_ba_cb_irqsafe -EXPORT_SYMBOL net/mac80211/mac80211 0xa7a06634 ieee80211_sta_ps_transition -EXPORT_SYMBOL net/mac80211/mac80211 0xab0a6516 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0x999eacec ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x99b041ba ieee80211_alloc_hw_nm +EXPORT_SYMBOL net/mac80211/mac80211 0x9d49c48c ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xa1defa78 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0xa2e4ea76 ieee80211_handle_wake_tx_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xa3a48fb4 ieee80211_iter_keys_rcu +EXPORT_SYMBOL net/mac80211/mac80211 0xa3cd5f5a ieee80211_beacon_cntdwn_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0xa6a31050 ieee80211_channel_switch_disconnect +EXPORT_SYMBOL net/mac80211/mac80211 0xa6a40cb6 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xa8173ef2 ieee80211_unreserve_tid +EXPORT_SYMBOL net/mac80211/mac80211 0xac246a0f ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xad74f994 __ieee80211_get_assoc_led_name EXPORT_SYMBOL net/mac80211/mac80211 0xaeb9a917 ieee80211_get_key_rx_seq -EXPORT_SYMBOL net/mac80211/mac80211 0xb0d13cee ieee80211_wake_queue -EXPORT_SYMBOL net/mac80211/mac80211 0xb1aeeba7 ieee80211_ctstoself_get -EXPORT_SYMBOL net/mac80211/mac80211 0xb23836b4 ieee80211_reserve_tid -EXPORT_SYMBOL net/mac80211/mac80211 0xb4711c37 __ieee80211_get_assoc_led_name -EXPORT_SYMBOL net/mac80211/mac80211 0xb58fd26b ieee80211_connection_loss -EXPORT_SYMBOL net/mac80211/mac80211 0xb9deb644 ieee80211_sta_set_buffered -EXPORT_SYMBOL net/mac80211/mac80211 0xba146ca7 ieee80211_beacon_get_tim -EXPORT_SYMBOL net/mac80211/mac80211 0xbab32202 ieee80211_tx_rate_update -EXPORT_SYMBOL net/mac80211/mac80211 0xbc547c9a ieee80211_sta_eosp -EXPORT_SYMBOL net/mac80211/mac80211 0xbc6e308a ieee80211_beacon_update_cntdwn -EXPORT_SYMBOL net/mac80211/mac80211 0xc1acdea0 ieee80211_scan_completed -EXPORT_SYMBOL net/mac80211/mac80211 0xc343d5f3 ieee80211_alloc_hw_nm -EXPORT_SYMBOL net/mac80211/mac80211 0xc498c2e9 ieee80211_free_txskb -EXPORT_SYMBOL net/mac80211/mac80211 0xc9c8edd1 ieee80211_txq_may_transmit -EXPORT_SYMBOL net/mac80211/mac80211 0xcb3e3274 ieee80211_get_buffered_bc -EXPORT_SYMBOL net/mac80211/mac80211 0xcb591f3c ieee80211_iter_keys_rcu -EXPORT_SYMBOL net/mac80211/mac80211 0xcd39e361 ieee80211_beacon_get_template_ema_index -EXPORT_SYMBOL net/mac80211/mac80211 0xd297219d ieee80211_stop_queue -EXPORT_SYMBOL net/mac80211/mac80211 0xd6391ff3 ieee80211_ctstoself_duration -EXPORT_SYMBOL net/mac80211/mac80211 0xdacbae08 ieee80211_tx_dequeue -EXPORT_SYMBOL net/mac80211/mac80211 0xe1184b25 wiphy_to_ieee80211_hw -EXPORT_SYMBOL net/mac80211/mac80211 0xe1c93273 ieee80211_channel_switch_disconnect -EXPORT_SYMBOL net/mac80211/mac80211 0xe1d4f54f ieee80211_tdls_oper_request -EXPORT_SYMBOL net/mac80211/mac80211 0xe2b2b67e ieee80211_find_sta -EXPORT_SYMBOL net/mac80211/mac80211 0xe59e8819 ieee80211_start_tx_ba_session -EXPORT_SYMBOL net/mac80211/mac80211 0xe6e59b92 ieee80211_ap_probereq_get -EXPORT_SYMBOL net/mac80211/mac80211 0xe9b54595 ieee80211_stop_rx_ba_session -EXPORT_SYMBOL net/mac80211/mac80211 0xeb283805 ieee80211_iter_keys -EXPORT_SYMBOL net/mac80211/mac80211 0xec5ba785 ieee80211_handle_wake_tx_queue -EXPORT_SYMBOL net/mac80211/mac80211 0xed9bb544 ieee80211_rx_list -EXPORT_SYMBOL net/mac80211/mac80211 0xefd5fd85 ieee80211_mark_rx_ba_filtered_frames -EXPORT_SYMBOL net/mac80211/mac80211 0xf0df02a9 ieee80211_queue_delayed_work -EXPORT_SYMBOL net/mac80211/mac80211 0xf118bc60 ieee80211_beacon_cntdwn_is_complete -EXPORT_SYMBOL net/mac80211/mac80211 0xf5a5a368 ieee80211_beacon_set_cntdwn -EXPORT_SYMBOL net/mac80211/mac80211 0xfbe8be89 ieee80211_sta_block_awake -EXPORT_SYMBOL net/mac80211/mac80211 0xfe0c8363 ieee80211_rate_control_unregister -EXPORT_SYMBOL net/mac802154/mac802154 0x14430989 ieee802154_alloc_hw -EXPORT_SYMBOL net/mac802154/mac802154 0x45bbf97c ieee802154_rx_irqsafe -EXPORT_SYMBOL net/mac802154/mac802154 0x54b34e41 ieee802154_xmit_error -EXPORT_SYMBOL net/mac802154/mac802154 0x8df8c8b9 ieee802154_xmit_hw_error -EXPORT_SYMBOL net/mac802154/mac802154 0x9caba290 ieee802154_configure_durations -EXPORT_SYMBOL net/mac802154/mac802154 0xb321dc84 ieee802154_unregister_hw -EXPORT_SYMBOL net/mac802154/mac802154 0xce7d23d1 ieee802154_register_hw -EXPORT_SYMBOL net/mac802154/mac802154 0xd619ebe2 ieee802154_xmit_complete -EXPORT_SYMBOL net/mac802154/mac802154 0xe12b860c ieee802154_free_hw -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x06af16d4 ip_vs_nfct_expect_related -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x22fd3d34 ip_vs_conn_put -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3040d687 ip_vs_proto_get -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6663e99c unregister_ip_vs_scheduler -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6aeed82f ip_vs_scheduler_err -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x725eec7c register_ip_vs_app -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9fb4bdd3 register_ip_vs_app_inc -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb7ffe7a0 ip_vs_conn_new -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc162b4f2 ip_vs_proto_data_get -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc717bf32 ip_vs_conn_in_get -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xcaa331aa ip_vs_tcp_conn_listen -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xccb8b32b ip_vs_new_conn_out -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd09661b8 register_ip_vs_scheduler +EXPORT_SYMBOL net/mac80211/mac80211 0xaf24127d ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xb1aea253 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0xb3592da1 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0xb3cd9a6c ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xb498eb6e ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xb5842d32 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0xb6275a95 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0xb6e003f3 __ieee80211_schedule_txq +EXPORT_SYMBOL net/mac80211/mac80211 0xb92067eb ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xbb6b1093 ieee80211_txq_get_depth +EXPORT_SYMBOL net/mac80211/mac80211 0xbb742f97 ieee80211_mark_rx_ba_filtered_frames +EXPORT_SYMBOL net/mac80211/mac80211 0xbc1f7085 ieee80211_tx_rate_update +EXPORT_SYMBOL net/mac80211/mac80211 0xbf58613d ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0xc1117fe5 ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0xc141ccb1 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xc4b76ef5 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xcc0bddfb ieee80211_refresh_tx_agg_session_timer +EXPORT_SYMBOL net/mac80211/mac80211 0xcc9a14fd ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xcd4264aa __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xcf9249f3 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xd3d65ea5 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xd7054c35 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xdb2d5e0f ieee80211_sta_register_airtime +EXPORT_SYMBOL net/mac80211/mac80211 0xdbe6a6f8 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xdc878de6 ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0xdf546b1c ieee80211_txq_schedule_start +EXPORT_SYMBOL net/mac80211/mac80211 0xdf655b79 ieee80211_get_fils_discovery_tmpl +EXPORT_SYMBOL net/mac80211/mac80211 0xdfb84b53 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xe119932c ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xe2e3eba9 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0xe4d4db59 ieee80211_cqm_beacon_loss_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xe6814b75 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xef995149 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xf2782769 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0xf2a2e190 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xf5b328e8 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xf67d4002 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0xfb4fd4cd ieee80211_txq_airtime_check +EXPORT_SYMBOL net/mac80211/mac80211 0xfd2a27ad ieee80211_get_unsol_bcast_probe_resp_tmpl +EXPORT_SYMBOL net/mac80211/mac80211 0xff21b1ca ieee80211_sta_uapsd_trigger +EXPORT_SYMBOL net/mac802154/mac802154 0x1f181ed0 ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0x204e5a62 ieee802154_configure_durations +EXPORT_SYMBOL net/mac802154/mac802154 0x2220ead9 ieee802154_xmit_complete +EXPORT_SYMBOL net/mac802154/mac802154 0x2da370c2 ieee802154_free_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x413a80c0 ieee802154_xmit_error +EXPORT_SYMBOL net/mac802154/mac802154 0x4a5d19ab ieee802154_xmit_hw_error +EXPORT_SYMBOL net/mac802154/mac802154 0x6087c8c8 ieee802154_unregister_hw +EXPORT_SYMBOL net/mac802154/mac802154 0xa92b9f26 ieee802154_alloc_hw +EXPORT_SYMBOL net/mac802154/mac802154 0xdfa15404 ieee802154_register_hw +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x01413e22 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0705e08b ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0f2c149f ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x101055bb ip_vs_new_conn_out +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2dacf7d2 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x411e0952 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4d6d510f ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x65924783 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6cedce15 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa63b1374 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xbfb75afd unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc7e520d6 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd2d7d905 ip_vs_proto_data_get EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe8b68af5 ip_vs_conn_out_get -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfbce45e7 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe25cf944 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xebd73c2d ip_vs_conn_in_get EXPORT_SYMBOL net/netfilter/nf_conntrack 0x3b08a8f0 nf_ct_destroy -EXPORT_SYMBOL net/netfilter/nf_conntrack 0x49f2e054 nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x8681b094 nf_ct_ext_add EXPORT_SYMBOL net/netfilter/nf_conntrack 0x89d99ee1 __nf_ct_ext_find EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0xf2a36612 pptp_msg_name -EXPORT_SYMBOL net/netfilter/nf_nat 0x43d5b7e6 nf_nat_follow_master -EXPORT_SYMBOL net/netfilter/nf_nat 0x971ff178 nf_nat_setup_info -EXPORT_SYMBOL net/netfilter/nf_nat 0xe45be271 __nf_nat_mangle_tcp_packet -EXPORT_SYMBOL net/netfilter/nf_nat 0xeba78a9b nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x32a3f71e __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x53f6ab6e nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0x9229a1d6 nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0x9e99bd12 nf_nat_mangle_udp_packet EXPORT_SYMBOL net/netfilter/nft_fib 0x46170f23 nft_fib_policy +EXPORT_SYMBOL net/netfilter/x_tables 0x09a836df xt_register_targets EXPORT_SYMBOL net/netfilter/x_tables 0x0d7f5fcd xt_alloc_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x23438b7f xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x2463b05f xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x27de8cc1 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x291f8716 xt_find_match EXPORT_SYMBOL net/netfilter/x_tables 0x3bf9d084 xt_check_table_hooks EXPORT_SYMBOL net/netfilter/x_tables 0x48012e28 xt_check_proc_name -EXPORT_SYMBOL net/netfilter/x_tables 0x57b5b838 xt_register_match -EXPORT_SYMBOL net/netfilter/x_tables 0x5a057e98 xt_unregister_target -EXPORT_SYMBOL net/netfilter/x_tables 0x7a51bcc3 xt_unregister_match -EXPORT_SYMBOL net/netfilter/x_tables 0x9639a641 xt_find_match EXPORT_SYMBOL net/netfilter/x_tables 0x977fd4bf xt_alloc_table_info -EXPORT_SYMBOL net/netfilter/x_tables 0x9d92033f xt_unregister_matches -EXPORT_SYMBOL net/netfilter/x_tables 0x9e4caad9 xt_register_targets -EXPORT_SYMBOL net/netfilter/x_tables 0xaa20af13 xt_register_target -EXPORT_SYMBOL net/netfilter/x_tables 0xaa9a2013 xt_find_table -EXPORT_SYMBOL net/netfilter/x_tables 0xb2d6ecd7 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xa348b83a xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xb6088af6 xt_unregister_target EXPORT_SYMBOL net/netfilter/x_tables 0xcb3e91cc xt_counters_alloc +EXPORT_SYMBOL net/netfilter/x_tables 0xd0dfcd67 xt_register_target EXPORT_SYMBOL net/netfilter/x_tables 0xd87ae60d xt_check_entry_offsets -EXPORT_SYMBOL net/netfilter/x_tables 0xde4a8681 xt_register_matches EXPORT_SYMBOL net/netfilter/x_tables 0xe204e042 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xe35f9bfb xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xebc16205 xt_find_table EXPORT_SYMBOL net/netfilter/x_tables 0xfef779fa xt_find_jump_offset -EXPORT_SYMBOL net/nfc/hci/hci 0x09307d1a nfc_hci_reset_pipes_per_host -EXPORT_SYMBOL net/nfc/hci/hci 0x0beb0bf1 nfc_hci_connect_gate -EXPORT_SYMBOL net/nfc/hci/hci 0x307cb1bb nfc_hci_reset_pipes -EXPORT_SYMBOL net/nfc/hci/hci 0x3707e974 nfc_llc_stop -EXPORT_SYMBOL net/nfc/hci/hci 0x383efe70 nfc_hci_set_param -EXPORT_SYMBOL net/nfc/hci/hci 0x4558900a nfc_hci_allocate_device -EXPORT_SYMBOL net/nfc/hci/hci 0x5098beec nfc_hci_target_discovered -EXPORT_SYMBOL net/nfc/hci/hci 0x53c7cebf nfc_hci_register_device -EXPORT_SYMBOL net/nfc/hci/hci 0x5735df5b nfc_hci_recv_frame -EXPORT_SYMBOL net/nfc/hci/hci 0x5cf9c9e1 nfc_hci_send_cmd_async -EXPORT_SYMBOL net/nfc/hci/hci 0x5eb77283 nfc_hci_set_clientdata -EXPORT_SYMBOL net/nfc/hci/hci 0x5f075b13 nfc_hci_get_param -EXPORT_SYMBOL net/nfc/hci/hci 0x6c94c6ae nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0x0d21cd13 nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0x10d5836c nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0x238422f6 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x2f77e05c nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x37806b8d nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0x47d982c1 nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0x4c11854a nfc_hci_reset_pipes +EXPORT_SYMBOL net/nfc/hci/hci 0x59799980 nfc_llc_stop +EXPORT_SYMBOL net/nfc/hci/hci 0x666f9df9 nfc_hci_disconnect_all_gates EXPORT_SYMBOL net/nfc/hci/hci 0x74fe3670 nfc_hci_result_to_errno -EXPORT_SYMBOL net/nfc/hci/hci 0x8165bdce nfc_hci_disconnect_gate -EXPORT_SYMBOL net/nfc/hci/hci 0x8475251f nfc_hci_get_clientdata -EXPORT_SYMBOL net/nfc/hci/hci 0xa1d0173c nfc_hci_free_device -EXPORT_SYMBOL net/nfc/hci/hci 0xb86a69da nfc_hci_send_cmd -EXPORT_SYMBOL net/nfc/hci/hci 0xc5a0b7fb nfc_llc_start -EXPORT_SYMBOL net/nfc/hci/hci 0xd01ad6c1 nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0x78be499c nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0x7fe023d3 nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0x86cf726a nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0x8a491bc9 nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x8dff1f21 nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0xa5b1b8be nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xa7ce28c6 nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0xaf7fedf4 nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0xc0d826f7 nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0xd640a951 nfc_hci_set_param EXPORT_SYMBOL net/nfc/hci/hci 0xdd231c55 nfc_hci_sak_to_protocol -EXPORT_SYMBOL net/nfc/hci/hci 0xfe3d6c80 nfc_hci_send_event -EXPORT_SYMBOL net/nfc/hci/hci 0xff60db1b nfc_hci_unregister_device -EXPORT_SYMBOL net/nfc/nci/nci 0x0caa060c nci_send_cmd -EXPORT_SYMBOL net/nfc/nci/nci 0x1017fde7 nci_prop_cmd -EXPORT_SYMBOL net/nfc/nci/nci 0x180497fe nci_core_cmd -EXPORT_SYMBOL net/nfc/nci/nci 0x18949c50 nci_core_reset -EXPORT_SYMBOL net/nfc/nci/nci 0x238a3aa2 nci_hci_connect_gate -EXPORT_SYMBOL net/nfc/nci/nci 0x23adbba1 nci_conn_max_data_pkt_payload_size -EXPORT_SYMBOL net/nfc/nci/nci 0x42aa3499 nci_hci_clear_all_pipes -EXPORT_SYMBOL net/nfc/nci/nci 0x46154057 nci_recv_frame -EXPORT_SYMBOL net/nfc/nci/nci 0x55afb2cc nci_send_data -EXPORT_SYMBOL net/nfc/nci/nci 0x5cdb1150 nci_allocate_device -EXPORT_SYMBOL net/nfc/nci/nci 0x624e8a9b nci_core_init -EXPORT_SYMBOL net/nfc/nci/nci 0x65701f88 nci_register_device -EXPORT_SYMBOL net/nfc/nci/nci 0x79f19a22 nci_core_conn_close -EXPORT_SYMBOL net/nfc/nci/nci 0x7f913261 nci_hci_send_event -EXPORT_SYMBOL net/nfc/nci/nci 0x852452f5 nci_core_conn_create -EXPORT_SYMBOL net/nfc/nci/nci 0x85c04352 nci_free_device -EXPORT_SYMBOL net/nfc/nci/nci 0x887600f3 nci_hci_dev_session_init -EXPORT_SYMBOL net/nfc/nci/nci 0x9bd97fce nci_nfcee_mode_set -EXPORT_SYMBOL net/nfc/nci/nci 0xa2a46a92 nci_get_conn_info_by_dest_type_params -EXPORT_SYMBOL net/nfc/nci/nci 0xb2743c25 nci_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0xe1c3dd3c nfc_llc_start +EXPORT_SYMBOL net/nfc/hci/hci 0xf80d1900 nfc_hci_reset_pipes_per_host +EXPORT_SYMBOL net/nfc/nci/nci 0x07fd90be nci_core_conn_close +EXPORT_SYMBOL net/nfc/nci/nci 0x10069b3c nci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x13206c9d nci_set_config +EXPORT_SYMBOL net/nfc/nci/nci 0x25c6ea52 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0x2732078a nci_nfcc_loopback +EXPORT_SYMBOL net/nfc/nci/nci 0x311c64da nci_core_conn_create +EXPORT_SYMBOL net/nfc/nci/nci 0x598fd484 nci_hci_open_pipe +EXPORT_SYMBOL net/nfc/nci/nci 0x67248fab nci_get_conn_info_by_dest_type_params +EXPORT_SYMBOL net/nfc/nci/nci 0x6b27b36f nci_hci_get_param +EXPORT_SYMBOL net/nfc/nci/nci 0x73b9fada nci_core_reset +EXPORT_SYMBOL net/nfc/nci/nci 0x753f56a4 nci_req_complete +EXPORT_SYMBOL net/nfc/nci/nci 0x75dc270d nci_hci_clear_all_pipes +EXPORT_SYMBOL net/nfc/nci/nci 0x7f3453b9 nci_conn_max_data_pkt_payload_size +EXPORT_SYMBOL net/nfc/nci/nci 0x7fe1380d nci_nfcee_mode_set +EXPORT_SYMBOL net/nfc/nci/nci 0x80694c6e nci_core_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x84ea87db nci_send_data +EXPORT_SYMBOL net/nfc/nci/nci 0x91decad4 nci_send_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x9aa1e927 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0xa22f9057 nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0xa2fd84cc nci_hci_send_event +EXPORT_SYMBOL net/nfc/nci/nci 0xa3e222c2 nci_nfcee_discover EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno -EXPORT_SYMBOL net/nfc/nci/nci 0xd04961fd nci_req_complete -EXPORT_SYMBOL net/nfc/nci/nci 0xdbc3e602 nci_set_config -EXPORT_SYMBOL net/nfc/nci/nci 0xde08509c nci_nfcc_loopback -EXPORT_SYMBOL net/nfc/nci/nci 0xe189612a nci_hci_set_param -EXPORT_SYMBOL net/nfc/nci/nci 0xf268a973 nci_hci_open_pipe -EXPORT_SYMBOL net/nfc/nci/nci 0xf31f65ea nci_hci_send_cmd -EXPORT_SYMBOL net/nfc/nci/nci 0xf54f2e39 nci_unregister_device -EXPORT_SYMBOL net/nfc/nci/nci 0xf5554b94 nci_send_frame -EXPORT_SYMBOL net/nfc/nci/nci 0xf89fc7d8 nci_nfcee_discover -EXPORT_SYMBOL net/nfc/nfc 0x15ad5f4e __nfc_alloc_vendor_cmd_reply_skb -EXPORT_SYMBOL net/nfc/nfc 0x285f6f8b nfc_tm_activated -EXPORT_SYMBOL net/nfc/nfc 0x4b9b8bcb nfc_driver_failure -EXPORT_SYMBOL net/nfc/nfc 0x527d827a nfc_remove_se -EXPORT_SYMBOL net/nfc/nfc 0x58114eca nfc_set_remote_general_bytes -EXPORT_SYMBOL net/nfc/nfc 0x5bc2b81c nfc_se_connectivity -EXPORT_SYMBOL net/nfc/nfc 0x63922aea nfc_get_local_general_bytes -EXPORT_SYMBOL net/nfc/nfc 0x6dd1e2fe nfc_allocate_device -EXPORT_SYMBOL net/nfc/nfc 0x6fbd0b49 nfc_tm_data_received -EXPORT_SYMBOL net/nfc/nfc 0x73fd5b39 nfc_add_se -EXPORT_SYMBOL net/nfc/nfc 0x79d5a2e0 nfc_find_se -EXPORT_SYMBOL net/nfc/nfc 0x8490d391 nfc_alloc_recv_skb -EXPORT_SYMBOL net/nfc/nfc 0x90e28792 nfc_proto_register -EXPORT_SYMBOL net/nfc/nfc 0x9796cac0 nfc_dep_link_is_up -EXPORT_SYMBOL net/nfc/nfc 0x98bb31f9 nfc_register_device -EXPORT_SYMBOL net/nfc/nfc 0x9b153c3b nfc_vendor_cmd_reply -EXPORT_SYMBOL net/nfc/nfc 0xa1f1e67f nfc_se_transaction -EXPORT_SYMBOL net/nfc/nfc 0xa61338b4 nfc_targets_found -EXPORT_SYMBOL net/nfc/nfc 0xa6148482 nfc_proto_unregister -EXPORT_SYMBOL net/nfc/nfc 0xb311bc41 nfc_class -EXPORT_SYMBOL net/nfc/nfc 0xbc335f6b nfc_target_lost -EXPORT_SYMBOL net/nfc/nfc 0xdcef9727 nfc_tm_deactivated -EXPORT_SYMBOL net/nfc/nfc 0xe8f10ae6 nfc_send_to_raw_sock -EXPORT_SYMBOL net/nfc/nfc 0xec52c00a nfc_fw_download_done -EXPORT_SYMBOL net/nfc/nfc 0xfa25a113 nfc_unregister_device -EXPORT_SYMBOL net/nfc/nfc_digital 0x182e1d56 nfc_digital_register_device -EXPORT_SYMBOL net/nfc/nfc_digital 0x215f6294 nfc_digital_unregister_device -EXPORT_SYMBOL net/nfc/nfc_digital 0x50c60683 nfc_digital_allocate_device -EXPORT_SYMBOL net/nfc/nfc_digital 0xa10655bb nfc_digital_free_device -EXPORT_SYMBOL net/phonet/phonet 0x00d5807e pn_sock_get_port -EXPORT_SYMBOL net/phonet/phonet 0x298654df phonet_proto_register -EXPORT_SYMBOL net/phonet/phonet 0x31efe202 phonet_header_ops -EXPORT_SYMBOL net/phonet/phonet 0x6d9c3930 phonet_stream_ops -EXPORT_SYMBOL net/phonet/phonet 0xa01f27d8 pn_sock_hash -EXPORT_SYMBOL net/phonet/phonet 0xba2defb5 pn_skb_send -EXPORT_SYMBOL net/phonet/phonet 0xc1c87c2c phonet_proto_unregister -EXPORT_SYMBOL net/phonet/phonet 0xd0d2cb83 pn_sock_unhash -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00464cb2 rxrpc_kernel_new_call_notification -EXPORT_SYMBOL net/rxrpc/rxrpc 0x0b371962 rxrpc_kernel_abort_call -EXPORT_SYMBOL net/rxrpc/rxrpc 0x0fed1d5f rxrpc_kernel_charge_accept -EXPORT_SYMBOL net/rxrpc/rxrpc 0x1385f8b3 rxrpc_kernel_send_data -EXPORT_SYMBOL net/rxrpc/rxrpc 0x1cffd0a3 rxrpc_kernel_get_peer -EXPORT_SYMBOL net/rxrpc/rxrpc 0x1e692c85 rxrpc_kernel_begin_call -EXPORT_SYMBOL net/rxrpc/rxrpc 0x2beb3799 rxrpc_kernel_get_srtt +EXPORT_SYMBOL net/nfc/nci/nci 0xbf84d814 nci_prop_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0xcd3ad2e9 nci_hci_dev_session_init +EXPORT_SYMBOL net/nfc/nci/nci 0xd5ae194d nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xd808986d nci_core_init +EXPORT_SYMBOL net/nfc/nci/nci 0xe48cedfc nci_hci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0xe8e0c730 nci_hci_set_param +EXPORT_SYMBOL net/nfc/nci/nci 0xf5d5a2a6 nci_hci_connect_gate +EXPORT_SYMBOL net/nfc/nci/nci 0xf6f5f1ff nci_recv_frame +EXPORT_SYMBOL net/nfc/nfc 0x082d5616 nfc_se_connectivity +EXPORT_SYMBOL net/nfc/nfc 0x0b64e0ac nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x0ef40da9 nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0x14c2e72a nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x1fe4f85d nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x28712c70 nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0x3a875d87 nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0x3be8cc84 nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0x4aba07fb nfc_send_to_raw_sock +EXPORT_SYMBOL net/nfc/nfc 0x60ca45da nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x63eb0f9d nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0x9003f78d nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0x929e75fb nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x953de131 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0x9d5abd99 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0xa273a526 __nfc_alloc_vendor_cmd_reply_skb +EXPORT_SYMBOL net/nfc/nfc 0xa8fa373c nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0xab5d822c nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0xb607ad10 nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0xba176aa1 nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0xda2f4d8f nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0xe6bbc985 nfc_vendor_cmd_reply +EXPORT_SYMBOL net/nfc/nfc 0xea7bc528 nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0xebd4d94a nfc_se_transaction +EXPORT_SYMBOL net/nfc/nfc 0xf0124eaa nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc_digital 0x2a41f7c6 nfc_digital_free_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x31bcbacd nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x93c8caeb nfc_digital_unregister_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xe640c6e3 nfc_digital_register_device +EXPORT_SYMBOL net/phonet/phonet 0x08e934b7 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x114677b8 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x628551b9 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x65b4b880 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x86ecdd9e phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x8b6d1207 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x8e7f02a4 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xb8775f05 phonet_header_ops +EXPORT_SYMBOL net/rxrpc/rxrpc 0x1524774b rxrpc_kernel_shutdown_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x246d5b9e rxrpc_get_null_key EXPORT_SYMBOL net/rxrpc/rxrpc 0x31bf3ca3 rxrpc_debug_id -EXPORT_SYMBOL net/rxrpc/rxrpc 0x422f4869 rxrpc_sock_set_security_keyring -EXPORT_SYMBOL net/rxrpc/rxrpc 0x45d46eca rxrpc_kernel_recv_data -EXPORT_SYMBOL net/rxrpc/rxrpc 0x5593458f rxrpc_get_null_key -EXPORT_SYMBOL net/rxrpc/rxrpc 0x6771b1c9 rxrpc_kernel_check_life -EXPORT_SYMBOL net/rxrpc/rxrpc 0x8baa4627 rxrpc_get_server_data_key -EXPORT_SYMBOL net/rxrpc/rxrpc 0x8bc3b6ab rxrpc_kernel_put_call -EXPORT_SYMBOL net/rxrpc/rxrpc 0x8d9a646b rxrpc_sock_set_min_security_level -EXPORT_SYMBOL net/rxrpc/rxrpc 0xd5cc8148 key_type_rxrpc -EXPORT_SYMBOL net/rxrpc/rxrpc 0xdc2fb8fe rxrpc_kernel_shutdown_call -EXPORT_SYMBOL net/rxrpc/rxrpc 0xe6f4e788 rxrpc_kernel_get_epoch -EXPORT_SYMBOL net/rxrpc/rxrpc 0xe7277d37 rxrpc_kernel_set_tx_length -EXPORT_SYMBOL net/rxrpc/rxrpc 0xed8b6189 rxrpc_kernel_set_max_life -EXPORT_SYMBOL net/sctp/sctp 0x366fb7d7 sctp_do_peeloff -EXPORT_SYMBOL net/smc/smc 0x1d095825 __traceiter_smcr_link_down +EXPORT_SYMBOL net/rxrpc/rxrpc 0x4a444039 rxrpc_kernel_recv_data +EXPORT_SYMBOL net/rxrpc/rxrpc 0x4de26e86 rxrpc_kernel_get_peer +EXPORT_SYMBOL net/rxrpc/rxrpc 0x5c3e7f56 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x60fe2cf2 rxrpc_kernel_get_epoch +EXPORT_SYMBOL net/rxrpc/rxrpc 0x743025fa rxrpc_sock_set_min_security_level +EXPORT_SYMBOL net/rxrpc/rxrpc 0x75fa93e3 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7d09acfe rxrpc_kernel_set_tx_length +EXPORT_SYMBOL net/rxrpc/rxrpc 0x851281df rxrpc_sock_set_security_keyring +EXPORT_SYMBOL net/rxrpc/rxrpc 0x95a7afd3 rxrpc_kernel_new_call_notification +EXPORT_SYMBOL net/rxrpc/rxrpc 0x9a4eb5ea key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/rxrpc 0xb6bae95b rxrpc_kernel_check_life +EXPORT_SYMBOL net/rxrpc/rxrpc 0xce0fe40a rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/rxrpc 0xd102e867 rxrpc_kernel_set_max_life +EXPORT_SYMBOL net/rxrpc/rxrpc 0xdf7dfd40 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0xeedf0a2d rxrpc_kernel_put_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0xf13dceb8 rxrpc_kernel_charge_accept +EXPORT_SYMBOL net/rxrpc/rxrpc 0xf2c5243c rxrpc_kernel_get_srtt +EXPORT_SYMBOL net/sctp/sctp 0x461aed85 sctp_do_peeloff EXPORT_SYMBOL net/smc/smc 0x3153cc92 __SCK__tp_func_smc_rx_recvmsg -EXPORT_SYMBOL net/smc/smc 0x6ad16081 __traceiter_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0x34347580 __traceiter_smcr_link_down EXPORT_SYMBOL net/smc/smc 0x76da5303 __tracepoint_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x7a430d34 __traceiter_smc_switch_to_fallback EXPORT_SYMBOL net/smc/smc 0xa053541c __tracepoint_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0xaa980096 __traceiter_smc_tx_sendmsg EXPORT_SYMBOL net/smc/smc 0xb3f2d173 __SCK__tp_func_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0xcb278351 __traceiter_smc_rx_recvmsg EXPORT_SYMBOL net/smc/smc 0xd24addfc __tracepoint_smc_switch_to_fallback -EXPORT_SYMBOL net/smc/smc 0xd45e8fd5 __traceiter_smc_switch_to_fallback EXPORT_SYMBOL net/smc/smc 0xe7dacb8d __SCK__tp_func_smcr_link_down EXPORT_SYMBOL net/smc/smc 0xf47b4ee2 __tracepoint_smc_tx_sendmsg -EXPORT_SYMBOL net/smc/smc 0xf7f74310 __traceiter_smc_rx_recvmsg EXPORT_SYMBOL net/smc/smc 0xfb8cae0f __SCK__tp_func_smc_switch_to_fallback -EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x7ef60bdc gss_mech_get -EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x976a9b56 gss_mech_put -EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xc9e3b72b gss_pseudoflavor_to_service -EXPORT_SYMBOL net/sunrpc/sunrpc 0x1762db75 xdr_truncate_encode -EXPORT_SYMBOL net/sunrpc/sunrpc 0x9da558f6 svc_pool_stats_open -EXPORT_SYMBOL net/sunrpc/sunrpc 0xc84fc10f xdr_restrict_buflen -EXPORT_SYMBOL net/tipc/tipc 0x29b19616 tipc_dump_start -EXPORT_SYMBOL net/tipc/tipc 0x3b4d1099 tipc_sk_fill_sock_diag -EXPORT_SYMBOL net/tipc/tipc 0x56027c64 tipc_dump_done -EXPORT_SYMBOL net/tipc/tipc 0xc35aef23 tipc_nl_sk_walk -EXPORT_SYMBOL net/tls/tls 0x716e5b04 tls_get_record -EXPORT_SYMBOL net/wireless/cfg80211 0x03569628 cfg80211_crit_proto_stopped -EXPORT_SYMBOL net/wireless/cfg80211 0x042a69f9 cfg80211_any_usable_channels +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x3d6631b3 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xe4b97c43 gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xe6190092 gss_mech_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7015331d svc_pool_stats_open +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9ec36f5f xdr_truncate_encode +EXPORT_SYMBOL net/sunrpc/sunrpc 0xcfbf92b4 xdr_restrict_buflen +EXPORT_SYMBOL net/tipc/tipc 0x8a8ae302 tipc_nl_sk_walk +EXPORT_SYMBOL net/tipc/tipc 0xcdf1489f tipc_sk_fill_sock_diag +EXPORT_SYMBOL net/tipc/tipc 0xeeb644b8 tipc_dump_done +EXPORT_SYMBOL net/tipc/tipc 0xfe049913 tipc_dump_start +EXPORT_SYMBOL net/tls/tls 0x2a56dab4 tls_get_record +EXPORT_SYMBOL net/wireless/cfg80211 0x0160d832 ieee80211_get_channel_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x040c3867 ieee80211_get_num_supported_channels +EXPORT_SYMBOL net/wireless/cfg80211 0x05410f3a cfg80211_ref_bss EXPORT_SYMBOL net/wireless/cfg80211 0x06ca71fd cfg80211_chandef_create -EXPORT_SYMBOL net/wireless/cfg80211 0x0a3d6cb4 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x0a634555 cfg80211_check_combinations +EXPORT_SYMBOL net/wireless/cfg80211 0x0be14415 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x0c2a9e8b cfg80211_bss_color_notify EXPORT_SYMBOL net/wireless/cfg80211 0x0cc95bc2 ieee80211_s1g_channel_width -EXPORT_SYMBOL net/wireless/cfg80211 0x0f568ae9 ieee80211_get_channel_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x0cfe2484 cfg80211_external_auth_request +EXPORT_SYMBOL net/wireless/cfg80211 0x0f764206 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x0fb0600f cfg80211_ft_event EXPORT_SYMBOL net/wireless/cfg80211 0x117aca91 cfg80211_merge_profile +EXPORT_SYMBOL net/wireless/cfg80211 0x13ad4872 cfg80211_crit_proto_stopped EXPORT_SYMBOL net/wireless/cfg80211 0x13c58e52 ieee80211_get_8023_tunnel_proto -EXPORT_SYMBOL net/wireless/cfg80211 0x1498c771 cfg80211_send_layer2_update +EXPORT_SYMBOL net/wireless/cfg80211 0x15059837 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x1667bbc4 cfg80211_links_removed +EXPORT_SYMBOL net/wireless/cfg80211 0x16741ac2 cfg80211_bss_iter +EXPORT_SYMBOL net/wireless/cfg80211 0x17729140 ieee80211_data_to_8023_exthdr EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x191458b9 cfg80211_conn_failed EXPORT_SYMBOL net/wireless/cfg80211 0x1b82a85a cfg80211_valid_disable_subchannel_bitmap +EXPORT_SYMBOL net/wireless/cfg80211 0x1b8d73be cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0x1b9192f2 cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0x1c703908 wiphy_apply_custom_regulatory EXPORT_SYMBOL net/wireless/cfg80211 0x1ce2497f reg_query_regdb_wmm -EXPORT_SYMBOL net/wireless/cfg80211 0x1cf0306e cfg80211_ref_bss -EXPORT_SYMBOL net/wireless/cfg80211 0x1e6067dd wiphy_rfkill_set_hw_state_reason -EXPORT_SYMBOL net/wireless/cfg80211 0x22c99c68 __cfg80211_alloc_reply_skb -EXPORT_SYMBOL net/wireless/cfg80211 0x235eaf78 cfg80211_put_bss -EXPORT_SYMBOL net/wireless/cfg80211 0x2462d400 cfg80211_auth_timeout -EXPORT_SYMBOL net/wireless/cfg80211 0x2665bad1 cfg80211_nan_match +EXPORT_SYMBOL net/wireless/cfg80211 0x1d10f760 cfg80211_iter_combinations +EXPORT_SYMBOL net/wireless/cfg80211 0x1ec58262 cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0x210c2c61 cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x2277c5ce cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x2372fb7a cfg80211_connect_done +EXPORT_SYMBOL net/wireless/cfg80211 0x24aadbd4 cfg80211_probe_status EXPORT_SYMBOL net/wireless/cfg80211 0x275269b3 ieee80211_ie_split_ric -EXPORT_SYMBOL net/wireless/cfg80211 0x2860980c cfg80211_sta_opmode_change_notify -EXPORT_SYMBOL net/wireless/cfg80211 0x294cf583 wiphy_apply_custom_regulatory -EXPORT_SYMBOL net/wireless/cfg80211 0x2b7a36a5 ieee80211_get_hdrlen_from_skb -EXPORT_SYMBOL net/wireless/cfg80211 0x2bdb6123 cfg80211_background_cac_abort -EXPORT_SYMBOL net/wireless/cfg80211 0x2db5f71d cfg80211_rx_unexpected_4addr_frame -EXPORT_SYMBOL net/wireless/cfg80211 0x2e4e4108 cfg80211_rx_control_port -EXPORT_SYMBOL net/wireless/cfg80211 0x3315a30b wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x29ccc60b cfg80211_iftype_allowed +EXPORT_SYMBOL net/wireless/cfg80211 0x2b1b4782 cfg80211_tx_mgmt_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x2ba07d81 cfg80211_ch_switch_started_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x3007fdc4 cfg80211_assoc_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x32323101 cfg80211_cqm_beacon_loss_notify EXPORT_SYMBOL net/wireless/cfg80211 0x3643b80f ieee80211_chandef_to_operating_class -EXPORT_SYMBOL net/wireless/cfg80211 0x3647950e cfg80211_iter_combinations +EXPORT_SYMBOL net/wireless/cfg80211 0x36a864eb cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x3775b113 __cfg80211_send_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x39b81abe wiphy_rfkill_set_hw_state_reason EXPORT_SYMBOL net/wireless/cfg80211 0x3aca71a1 cfg80211_get_ies_channel_number -EXPORT_SYMBOL net/wireless/cfg80211 0x3bd3fe53 cfg80211_inform_bss_frame_data -EXPORT_SYMBOL net/wireless/cfg80211 0x3c05191a cfg80211_update_owe_info_event EXPORT_SYMBOL net/wireless/cfg80211 0x3c744e95 cfg80211_calculate_bitrate EXPORT_SYMBOL net/wireless/cfg80211 0x3c86019a cfg80211_sinfo_alloc_tid_stats -EXPORT_SYMBOL net/wireless/cfg80211 0x3f346a42 wdev_chandef -EXPORT_SYMBOL net/wireless/cfg80211 0x41c54e5d cfg80211_bss_flush -EXPORT_SYMBOL net/wireless/cfg80211 0x4294971a cfg80211_rx_spurious_frame EXPORT_SYMBOL net/wireless/cfg80211 0x429c0c31 ieee80211_bss_get_elem -EXPORT_SYMBOL net/wireless/cfg80211 0x43611035 cfg80211_reg_can_beacon_relax -EXPORT_SYMBOL net/wireless/cfg80211 0x43afa9b7 cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x435f6ec0 cfg80211_unregister_wdev EXPORT_SYMBOL net/wireless/cfg80211 0x43afadee ieee80211_radiotap_iterator_init -EXPORT_SYMBOL net/wireless/cfg80211 0x490b9fe9 cfg80211_remain_on_channel_expired -EXPORT_SYMBOL net/wireless/cfg80211 0x497c75b7 cfg80211_bss_color_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x455d4b6d cfg80211_port_authorized EXPORT_SYMBOL net/wireless/cfg80211 0x4abed7d4 ieee80211_mandatory_rates -EXPORT_SYMBOL net/wireless/cfg80211 0x4ba87184 cfg80211_unlink_bss -EXPORT_SYMBOL net/wireless/cfg80211 0x4caf8754 cfg80211_new_sta -EXPORT_SYMBOL net/wireless/cfg80211 0x51165fbf cfg80211_rx_unprot_mlme_mgmt -EXPORT_SYMBOL net/wireless/cfg80211 0x5180344e regulatory_set_wiphy_regd_sync +EXPORT_SYMBOL net/wireless/cfg80211 0x4f664abe cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x52d3349f __cfg80211_alloc_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x53e336db cfg80211_chandef_usable EXPORT_SYMBOL net/wireless/cfg80211 0x5584448a ieee80211_channel_to_freq_khz -EXPORT_SYMBOL net/wireless/cfg80211 0x58f4d37f cfg80211_check_combinations -EXPORT_SYMBOL net/wireless/cfg80211 0x5b5be706 cfg80211_report_obss_beacon_khz -EXPORT_SYMBOL net/wireless/cfg80211 0x615ba4c2 cfg80211_assoc_failure -EXPORT_SYMBOL net/wireless/cfg80211 0x62c83a81 wiphy_free -EXPORT_SYMBOL net/wireless/cfg80211 0x669658f5 freq_reg_info -EXPORT_SYMBOL net/wireless/cfg80211 0x66daff20 cfg80211_notify_new_peer_candidate -EXPORT_SYMBOL net/wireless/cfg80211 0x685074e6 ieee80211_amsdu_to_8023s -EXPORT_SYMBOL net/wireless/cfg80211 0x68ebd5cd cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x5c68da05 cfg80211_send_layer2_update +EXPORT_SYMBOL net/wireless/cfg80211 0x6220ba3e cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x64611fb0 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x65c2702e ieee80211_is_valid_amsdu +EXPORT_SYMBOL net/wireless/cfg80211 0x6829d53a cfg80211_cqm_txe_notify EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6bc3c5ae freq_reg_info EXPORT_SYMBOL net/wireless/cfg80211 0x6bedf402 ieee80211_freq_khz_to_channel -EXPORT_SYMBOL net/wireless/cfg80211 0x6ce74c1c cfg80211_ready_on_channel -EXPORT_SYMBOL net/wireless/cfg80211 0x6dfeaf1f ieee80211_get_num_supported_channels -EXPORT_SYMBOL net/wireless/cfg80211 0x6f0e13b2 cfg80211_get_drvinfo -EXPORT_SYMBOL net/wireless/cfg80211 0x6fd2ca5a cfg80211_assoc_comeback -EXPORT_SYMBOL net/wireless/cfg80211 0x70cca3c6 cfg80211_scan_done -EXPORT_SYMBOL net/wireless/cfg80211 0x763e835f cfg80211_iftype_allowed -EXPORT_SYMBOL net/wireless/cfg80211 0x791a5871 cfg80211_del_sta_sinfo -EXPORT_SYMBOL net/wireless/cfg80211 0x796f7843 nl80211_send_chandef +EXPORT_SYMBOL net/wireless/cfg80211 0x6d9e1352 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x6deb7c1d wdev_chandef +EXPORT_SYMBOL net/wireless/cfg80211 0x7077c459 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x70dee884 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x739f9c91 cfg80211_inform_bss_data +EXPORT_SYMBOL net/wireless/cfg80211 0x73f70396 cfg80211_bss_flush +EXPORT_SYMBOL net/wireless/cfg80211 0x76ec87cf cfg80211_report_obss_beacon_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x78d19d05 cfg80211_control_port_tx_status EXPORT_SYMBOL net/wireless/cfg80211 0x79b82a71 cfg80211_find_vendor_elem EXPORT_SYMBOL net/wireless/cfg80211 0x7acb86ed ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0x7b3b84ee get_wiphy_regdom +EXPORT_SYMBOL net/wireless/cfg80211 0x7b4dc1b2 cfg80211_assoc_comeback +EXPORT_SYMBOL net/wireless/cfg80211 0x7b96aa1f wiphy_register EXPORT_SYMBOL net/wireless/cfg80211 0x7c3ac925 ieee80211_get_vht_max_nss -EXPORT_SYMBOL net/wireless/cfg80211 0x7e2be8a6 regulatory_hint EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen -EXPORT_SYMBOL net/wireless/cfg80211 0x81999102 ieee80211_is_valid_amsdu -EXPORT_SYMBOL net/wireless/cfg80211 0x81b9f5d3 cfg80211_nan_func_terminated +EXPORT_SYMBOL net/wireless/cfg80211 0x7f47f1e8 regulatory_pre_cac_allowed +EXPORT_SYMBOL net/wireless/cfg80211 0x80ec87a8 cfg80211_sched_scan_stopped_locked +EXPORT_SYMBOL net/wireless/cfg80211 0x8587a475 cfg80211_gtk_rekey_notify EXPORT_SYMBOL net/wireless/cfg80211 0x85de3f6f wiphy_delayed_work_timer -EXPORT_SYMBOL net/wireless/cfg80211 0x86261d48 cfg80211_ibss_joined -EXPORT_SYMBOL net/wireless/cfg80211 0x8c7ce9d6 ieee80211_data_to_8023_exthdr -EXPORT_SYMBOL net/wireless/cfg80211 0x8e2ab3ff cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x86aa8856 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x8bfdaba2 cfg80211_rx_unexpected_4addr_frame EXPORT_SYMBOL net/wireless/cfg80211 0x8fa02936 cfg80211_free_nan_func -EXPORT_SYMBOL net/wireless/cfg80211 0x919a1c0e cfg80211_mgmt_tx_status_ext -EXPORT_SYMBOL net/wireless/cfg80211 0x933f024d get_wiphy_regdom -EXPORT_SYMBOL net/wireless/cfg80211 0x944d9027 cfg80211_michael_mic_failure -EXPORT_SYMBOL net/wireless/cfg80211 0x9b2148b0 cfg80211_register_netdevice -EXPORT_SYMBOL net/wireless/cfg80211 0x9b5f2c3b __cfg80211_radar_event -EXPORT_SYMBOL net/wireless/cfg80211 0x9be66022 regulatory_pre_cac_allowed +EXPORT_SYMBOL net/wireless/cfg80211 0x90d1aa80 __cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x936398e7 cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0x94b374ec cfg80211_del_sta_sinfo +EXPORT_SYMBOL net/wireless/cfg80211 0x953b37b7 cfg80211_sta_opmode_change_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x9837de97 cfg80211_get_drvinfo EXPORT_SYMBOL net/wireless/cfg80211 0x9d6cba30 cfg80211_find_elem_match -EXPORT_SYMBOL net/wireless/cfg80211 0x9e6f5ed9 cfg80211_cqm_txe_notify -EXPORT_SYMBOL net/wireless/cfg80211 0x9f5969b7 wiphy_read_of_freq_limits -EXPORT_SYMBOL net/wireless/cfg80211 0xa3a0c1f0 cfg80211_cac_event -EXPORT_SYMBOL net/wireless/cfg80211 0xa3c54b4f __cfg80211_send_event_skb -EXPORT_SYMBOL net/wireless/cfg80211 0xa5f9480f cfg80211_inform_bss_data -EXPORT_SYMBOL net/wireless/cfg80211 0xa8f1e044 cfg80211_gtk_rekey_notify -EXPORT_SYMBOL net/wireless/cfg80211 0xa9656b4b wiphy_register -EXPORT_SYMBOL net/wireless/cfg80211 0xaa0aa731 cfg80211_chandef_dfs_required -EXPORT_SYMBOL net/wireless/cfg80211 0xaf9cda85 regulatory_set_wiphy_regd -EXPORT_SYMBOL net/wireless/cfg80211 0xb07f8366 cfg80211_report_wowlan_wakeup -EXPORT_SYMBOL net/wireless/cfg80211 0xb6038fd3 __cfg80211_alloc_event_skb -EXPORT_SYMBOL net/wireless/cfg80211 0xb73f0b18 cfg80211_get_station -EXPORT_SYMBOL net/wireless/cfg80211 0xba6b5cd1 cfg80211_probe_status -EXPORT_SYMBOL net/wireless/cfg80211 0xbaea70ec cfg80211_sched_scan_results -EXPORT_SYMBOL net/wireless/cfg80211 0xbcec2b35 cfg80211_port_authorized -EXPORT_SYMBOL net/wireless/cfg80211 0xc19d97e2 cfg80211_stop_iface -EXPORT_SYMBOL net/wireless/cfg80211 0xc3915b74 cfg80211_connect_done +EXPORT_SYMBOL net/wireless/cfg80211 0x9dff3cf7 wiphy_new_nm +EXPORT_SYMBOL net/wireless/cfg80211 0x9ff55132 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xa4eae76a cfg80211_background_cac_abort +EXPORT_SYMBOL net/wireless/cfg80211 0xa6d684d8 cfg80211_inform_bss_frame_data +EXPORT_SYMBOL net/wireless/cfg80211 0xac951ab8 cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xae68703f cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xb1d5c6a3 cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xb6cb6fe5 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb76a7bac cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xb8ae8940 cfg80211_nan_func_terminated +EXPORT_SYMBOL net/wireless/cfg80211 0xba1ac820 cfg80211_mgmt_tx_status_ext +EXPORT_SYMBOL net/wireless/cfg80211 0xbafd8bdc cfg80211_rx_mgmt_ext +EXPORT_SYMBOL net/wireless/cfg80211 0xbd085c5d regulatory_set_wiphy_regd_sync +EXPORT_SYMBOL net/wireless/cfg80211 0xbd9d39c2 cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0xc1c012fd nl80211_send_chandef EXPORT_SYMBOL net/wireless/cfg80211 0xc3fb97ca ieee80211_get_response_rate EXPORT_SYMBOL net/wireless/cfg80211 0xc4b4fc27 cfg80211_chandef_valid -EXPORT_SYMBOL net/wireless/cfg80211 0xc5e67592 cfg80211_cqm_beacon_loss_notify -EXPORT_SYMBOL net/wireless/cfg80211 0xc74f42ff cfg80211_bss_iter -EXPORT_SYMBOL net/wireless/cfg80211 0xcbd91fe3 ieee80211_strip_8023_mesh_hdr +EXPORT_SYMBOL net/wireless/cfg80211 0xc66c0cf8 cfg80211_nan_match +EXPORT_SYMBOL net/wireless/cfg80211 0xc951ffd4 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xc96c8e42 cfg80211_get_station +EXPORT_SYMBOL net/wireless/cfg80211 0xcab5fcaf cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xcbbc0128 cfg80211_reg_can_beacon_relax EXPORT_SYMBOL net/wireless/cfg80211 0xcc1a7c48 cfg80211_is_element_inherited -EXPORT_SYMBOL net/wireless/cfg80211 0xcd535c39 cfg80211_get_iftype_ext_capa -EXPORT_SYMBOL net/wireless/cfg80211 0xce4bc0f6 cfg80211_rx_assoc_resp -EXPORT_SYMBOL net/wireless/cfg80211 0xd0dffc29 cfg80211_rx_mlme_mgmt -EXPORT_SYMBOL net/wireless/cfg80211 0xd3c4a896 cfg80211_cqm_pktloss_notify -EXPORT_SYMBOL net/wireless/cfg80211 0xd473242e cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xcc72e93e regulatory_set_wiphy_regd +EXPORT_SYMBOL net/wireless/cfg80211 0xcd0966a3 cfg80211_register_netdevice +EXPORT_SYMBOL net/wireless/cfg80211 0xce5c7590 ieee80211_strip_8023_mesh_hdr +EXPORT_SYMBOL net/wireless/cfg80211 0xd0d0b0a7 cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0xd240ddd6 wiphy_unregister EXPORT_SYMBOL net/wireless/cfg80211 0xd56d55f3 ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xd5f454d3 cfg80211_any_usable_channels EXPORT_SYMBOL net/wireless/cfg80211 0xd6c87a05 cfg80211_defragment_element -EXPORT_SYMBOL net/wireless/cfg80211 0xd6db56f0 cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0xd6ef8d76 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xd8f5033e cfg80211_cqm_pktloss_notify EXPORT_SYMBOL net/wireless/cfg80211 0xd97eaad4 cfg80211_chandef_compatible -EXPORT_SYMBOL net/wireless/cfg80211 0xda522af8 cfg80211_links_removed +EXPORT_SYMBOL net/wireless/cfg80211 0xda4e519f wiphy_read_of_freq_limits +EXPORT_SYMBOL net/wireless/cfg80211 0xdb8dc49b cfg80211_sched_scan_stopped EXPORT_SYMBOL net/wireless/cfg80211 0xdba126c1 reg_initiator_name -EXPORT_SYMBOL net/wireless/cfg80211 0xdbb40ac4 cfg80211_pmksa_candidate_notify -EXPORT_SYMBOL net/wireless/cfg80211 0xdfa8af42 cfg80211_external_auth_request -EXPORT_SYMBOL net/wireless/cfg80211 0xe03aa5e9 cfg80211_sched_scan_stopped -EXPORT_SYMBOL net/wireless/cfg80211 0xe0c2dd20 cfg80211_classify8021d -EXPORT_SYMBOL net/wireless/cfg80211 0xe67fb80c cfg80211_ch_switch_started_notify -EXPORT_SYMBOL net/wireless/cfg80211 0xe9d60d18 cfg80211_control_port_tx_status -EXPORT_SYMBOL net/wireless/cfg80211 0xea031dad cfg80211_unregister_wdev -EXPORT_SYMBOL net/wireless/cfg80211 0xea1a8510 cfg80211_tx_mlme_mgmt -EXPORT_SYMBOL net/wireless/cfg80211 0xeb47efdc cfg80211_check_station_change -EXPORT_SYMBOL net/wireless/cfg80211 0xebd80a8f wiphy_new_nm -EXPORT_SYMBOL net/wireless/cfg80211 0xee889c62 cfg80211_reg_can_beacon -EXPORT_SYMBOL net/wireless/cfg80211 0xefb86266 cfg80211_ft_event -EXPORT_SYMBOL net/wireless/cfg80211 0xf27236a1 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xe19fd823 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0xeb810008 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xeca9b2f1 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xf1a84686 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xf37a6a57 __cfg80211_alloc_reply_skb EXPORT_SYMBOL net/wireless/cfg80211 0xf40bc2f5 ieee80211_operating_class_to_band EXPORT_SYMBOL net/wireless/cfg80211 0xf5596d89 cfg80211_get_p2p_attr -EXPORT_SYMBOL net/wireless/cfg80211 0xf94055ef cfg80211_cqm_rssi_notify -EXPORT_SYMBOL net/wireless/cfg80211 0xf9d33857 cfg80211_rx_mgmt_ext -EXPORT_SYMBOL net/wireless/cfg80211 0xfa2ffd79 cfg80211_ch_switch_notify -EXPORT_SYMBOL net/wireless/cfg80211 0xfc4ea5ca cfg80211_sched_scan_stopped_locked -EXPORT_SYMBOL net/wireless/cfg80211 0xfec080dc cfg80211_tx_mgmt_expired -EXPORT_SYMBOL net/wireless/lib80211 0x2ad82118 lib80211_crypt_delayed_deinit -EXPORT_SYMBOL net/wireless/lib80211 0x7212f085 lib80211_crypt_info_free -EXPORT_SYMBOL net/wireless/lib80211 0x792006b1 lib80211_crypt_info_init -EXPORT_SYMBOL net/wireless/lib80211 0xe2995106 lib80211_get_crypto_ops -EXPORT_SYMBOL net/wireless/lib80211 0xe7594505 lib80211_unregister_crypto_ops -EXPORT_SYMBOL net/wireless/lib80211 0xf1f6400b lib80211_register_crypto_ops -EXPORT_SYMBOL sound/ac97_bus 0x7c7a196c ac97_bus_type -EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0xddee6e18 snd_mixer_oss_ioctl_card +EXPORT_SYMBOL net/wireless/cfg80211 0xf603d6b7 cfg80211_get_iftype_ext_capa +EXPORT_SYMBOL net/wireless/cfg80211 0xfad4512d cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xfb12c3fa cfg80211_update_owe_info_event +EXPORT_SYMBOL net/wireless/cfg80211 0xfc9c4be6 cfg80211_rx_control_port +EXPORT_SYMBOL net/wireless/cfg80211 0xfceba026 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xffac11bf cfg80211_stop_iface +EXPORT_SYMBOL net/wireless/lib80211 0x50063834 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x86d21220 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x8b39f5c4 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xa35b7fc1 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xdaadc50a lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xdff65c97 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL sound/ac97_bus 0x814cb0a0 ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x9944dbe4 snd_mixer_oss_ioctl_card EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl EXPORT_SYMBOL sound/core/seq/snd-seq 0x23738926 snd_seq_dump_var_event EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper -EXPORT_SYMBOL sound/core/seq/snd-seq 0x48d11ce2 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x4c474fe5 snd_seq_kernel_client_write_poll EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach -EXPORT_SYMBOL sound/core/seq/snd-seq 0x80e476d1 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7eb5e252 snd_seq_kernel_client_enqueue EXPORT_SYMBOL sound/core/seq/snd-seq 0x85cd59a8 snd_seq_kernel_client_dispatch -EXPORT_SYMBOL sound/core/seq/snd-seq 0xa69faf6f snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0x910e39f0 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x98052ecc snd_seq_create_kernel_client EXPORT_SYMBOL sound/core/seq/snd-seq 0xa6e19f8e snd_seq_expand_var_event EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo -EXPORT_SYMBOL sound/core/seq/snd-seq 0xc7ef5237 snd_seq_event_port_attach EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x74769de9 snd_midi_process_event EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear @@ -5696,3996 +5696,3998 @@ EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xcfea7d0b snd_midi_event_reset_decode EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf4392bf3 snd_midi_event_encode_byte EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf4c3b272 snd_midi_event_decode -EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x5a86389d snd_virmidi_new -EXPORT_SYMBOL sound/core/snd 0x017d8837 snd_card_file_remove -EXPORT_SYMBOL sound/core/snd 0x175e8576 snd_ctl_add +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x3015d2e5 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x01871b0a snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x1687ff79 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x169e7c02 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x18be53ab snd_card_free_when_closed EXPORT_SYMBOL sound/core/snd 0x198788b4 snd_lookup_oss_minor_data -EXPORT_SYMBOL sound/core/snd 0x1dcf6a6f snd_info_create_card_entry -EXPORT_SYMBOL sound/core/snd 0x2137be97 snd_ctl_replace -EXPORT_SYMBOL sound/core/snd 0x246df6db snd_component_add +EXPORT_SYMBOL sound/core/snd 0x1ee7ad09 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x20c6f532 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x2155d2c0 snd_ctl_rename_id EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line -EXPORT_SYMBOL sound/core/snd 0x2f460ab8 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x27e71eb0 snd_ctl_notify_one +EXPORT_SYMBOL sound/core/snd 0x285881c7 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x2d6e50b9 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x2fcd5b07 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x31c3b4a9 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x31e18ffe snd_register_oss_device EXPORT_SYMBOL sound/core/snd 0x342a2354 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x35b58107 snd_card_register +EXPORT_SYMBOL sound/core/snd 0x37d6ea98 snd_ctl_replace EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit -EXPORT_SYMBOL sound/core/snd 0x40952cf7 snd_ctl_register_ioctl -EXPORT_SYMBOL sound/core/snd 0x40cb80c1 snd_info_create_module_entry -EXPORT_SYMBOL sound/core/snd 0x438c86b1 snd_ctl_remove_id -EXPORT_SYMBOL sound/core/snd 0x4923e7ee snd_mixer_oss_notify_callback -EXPORT_SYMBOL sound/core/snd 0x49410305 _snd_ctl_add_follower -EXPORT_SYMBOL sound/core/snd 0x49b8ccc2 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x3a0f57fc snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x42b518a6 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x44d87646 snd_card_free +EXPORT_SYMBOL sound/core/snd 0x4915ad48 snd_jack_add_new_kctl EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card -EXPORT_SYMBOL sound/core/snd 0x4feb1032 snd_ctl_remove -EXPORT_SYMBOL sound/core/snd 0x5aca8c58 snd_device_free -EXPORT_SYMBOL sound/core/snd 0x5c67ea29 snd_device_new -EXPORT_SYMBOL sound/core/snd 0x67af8444 snd_info_free_entry -EXPORT_SYMBOL sound/core/snd 0x68606f16 snd_jack_set_key -EXPORT_SYMBOL sound/core/snd 0x6b558477 snd_ctl_make_virtual_master -EXPORT_SYMBOL sound/core/snd 0x6f2d35e9 snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0x5421da47 snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd 0x61017231 snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0x64459862 snd_unregister_device EXPORT_SYMBOL sound/core/snd 0x73076315 snd_pci_quirk_lookup_id -EXPORT_SYMBOL sound/core/snd 0x7424d72e snd_jack_report -EXPORT_SYMBOL sound/core/snd 0x7a9b49db snd_ctl_find_numid -EXPORT_SYMBOL sound/core/snd 0x7fc854d9 snd_ctl_notify -EXPORT_SYMBOL sound/core/snd 0x88867afb snd_unregister_device -EXPORT_SYMBOL sound/core/snd 0x8926cf75 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x780c655b snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x8ccac30b snd_ctl_notify EXPORT_SYMBOL sound/core/snd 0x8df3789f snd_oss_info_register EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major -EXPORT_SYMBOL sound/core/snd 0x9310a7bc snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x969bf5df snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x9767ffe4 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x994aeaf2 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x9b3df784 snd_component_add EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str -EXPORT_SYMBOL sound/core/snd 0xa26405fb snd_ctl_unregister_ioctl -EXPORT_SYMBOL sound/core/snd 0xa3d967d9 snd_card_set_id -EXPORT_SYMBOL sound/core/snd 0xa4adecdc snd_ctl_boolean_stereo_info -EXPORT_SYMBOL sound/core/snd 0xa574158d snd_power_wait -EXPORT_SYMBOL sound/core/snd 0xacdf3891 snd_unregister_oss_device -EXPORT_SYMBOL sound/core/snd 0xacdfb153 snd_jack_add_new_kctl -EXPORT_SYMBOL sound/core/snd 0xb2c93fb2 snd_card_register +EXPORT_SYMBOL sound/core/snd 0xa6c69c8a snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0xaf726f4c snd_power_wait EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data -EXPORT_SYMBOL sound/core/snd 0xb679453f snd_ctl_boolean_mono_info -EXPORT_SYMBOL sound/core/snd 0xb8d6356d snd_card_new -EXPORT_SYMBOL sound/core/snd 0xbfd00899 snd_card_disconnect -EXPORT_SYMBOL sound/core/snd 0xc1bc6108 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xba4d90b7 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xbb2c1df7 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xc157588a snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xc3e548ba snd_jack_new EXPORT_SYMBOL sound/core/snd 0xc5a6d10b release_and_free_resource -EXPORT_SYMBOL sound/core/snd 0xc79e1bf4 snd_ctl_rename_id EXPORT_SYMBOL sound/core/snd 0xcc6a729f snd_ctl_enum_info -EXPORT_SYMBOL sound/core/snd 0xcf3489e0 snd_register_device -EXPORT_SYMBOL sound/core/snd 0xd00fc053 snd_ctl_rename -EXPORT_SYMBOL sound/core/snd 0xd408d2d3 snd_ctl_notify_one -EXPORT_SYMBOL sound/core/snd 0xd9c36fad snd_card_free -EXPORT_SYMBOL sound/core/snd 0xdd69e4b3 snd_info_register -EXPORT_SYMBOL sound/core/snd 0xe31629f8 snd_ctl_free_one -EXPORT_SYMBOL sound/core/snd 0xe4e0d1ce snd_ctl_new1 -EXPORT_SYMBOL sound/core/snd 0xeb56b139 snd_device_register -EXPORT_SYMBOL sound/core/snd 0xf8a02cfd snd_card_file_add -EXPORT_SYMBOL sound/core/snd 0xfe7959a3 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0xcfb1fe7d snd_jack_report +EXPORT_SYMBOL sound/core/snd 0xd58a74ca snd_device_new +EXPORT_SYMBOL sound/core/snd 0xd8b422f0 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xd921a5b4 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0xd930ed78 snd_ctl_rename +EXPORT_SYMBOL sound/core/snd 0xdbe13c40 _snd_ctl_add_follower +EXPORT_SYMBOL sound/core/snd 0xe0d8bd0f snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xe38b32cd snd_register_device +EXPORT_SYMBOL sound/core/snd 0xe4dbdd03 snd_card_new +EXPORT_SYMBOL sound/core/snd 0xe7bc0ab1 snd_device_free +EXPORT_SYMBOL sound/core/snd 0xf4d071ba snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xf7872a58 snd_info_register +EXPORT_SYMBOL sound/core/snd 0xfcee14ec snd_ctl_make_virtual_master EXPORT_SYMBOL sound/core/snd 0xfffd89db copy_from_user_toio -EXPORT_SYMBOL sound/core/snd-compress 0x7911ed4c snd_compr_malloc_pages -EXPORT_SYMBOL sound/core/snd-compress 0xc1e92f6c snd_compr_free_pages -EXPORT_SYMBOL sound/core/snd-hwdep 0x05d34474 snd_hwdep_new -EXPORT_SYMBOL sound/core/snd-pcm 0x00d4e475 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-compress 0xaa83e85a snd_compr_free_pages +EXPORT_SYMBOL sound/core/snd-compress 0xbf9144a2 snd_compr_malloc_pages +EXPORT_SYMBOL sound/core/snd-hwdep 0xaabe1eb7 snd_hwdep_new EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any -EXPORT_SYMBOL sound/core/snd-pcm 0x03f5bf6d snd_pcm_hw_param_last EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine -EXPORT_SYMBOL sound/core/snd-pcm 0x065dcde5 snd_pcm_lib_get_vmalloc_page -EXPORT_SYMBOL sound/core/snd-pcm 0x0e698f43 snd_pcm_open_substream -EXPORT_SYMBOL sound/core/snd-pcm 0x0f3b5e2e _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x0ba7ea22 snd_pcm_kernel_ioctl EXPORT_SYMBOL sound/core/snd-pcm 0x11eba48e snd_pcm_create_iec958_consumer_hw_params -EXPORT_SYMBOL sound/core/snd-pcm 0x159b17a8 snd_pcm_mmap_data -EXPORT_SYMBOL sound/core/snd-pcm 0x17fec309 snd_pcm_set_managed_buffer -EXPORT_SYMBOL sound/core/snd-pcm 0x183d264f snd_pcm_period_elapsed -EXPORT_SYMBOL sound/core/snd-pcm 0x19344dca snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x17ab632b snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x1a7f7847 snd_pcm_hw_param_first EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed -EXPORT_SYMBOL sound/core/snd-pcm 0x20601cf8 snd_pcm_hw_constraint_pow2 -EXPORT_SYMBOL sound/core/snd-pcm 0x236fa04f snd_dma_alloc_dir_pages -EXPORT_SYMBOL sound/core/snd-pcm 0x23800f76 snd_pcm_hw_refine -EXPORT_SYMBOL sound/core/snd-pcm 0x29141ecf snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x21c75391 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x299863bd snd_dma_buffer_mmap +EXPORT_SYMBOL sound/core/snd-pcm 0x2c9b5962 snd_pcm_hw_constraint_mask64 +EXPORT_SYMBOL sound/core/snd-pcm 0x310ec994 snd_pcm_period_elapsed_under_stream_lock +EXPORT_SYMBOL sound/core/snd-pcm 0x31e12e11 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x35e12d37 snd_pcm_hw_constraint_pow2 EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian -EXPORT_SYMBOL sound/core/snd-pcm 0x391f315d snd_pcm_lib_free_vmalloc_buffer EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty -EXPORT_SYMBOL sound/core/snd-pcm 0x3d499a51 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x3d80858c snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x433de39d snd_dma_alloc_dir_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x475359e0 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x47d338c8 snd_pcm_open_substream EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian EXPORT_SYMBOL sound/core/snd-pcm 0x503bd137 snd_interval_ranges +EXPORT_SYMBOL sound/core/snd-pcm 0x525511b5 __snd_pcm_lib_xfer EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value -EXPORT_SYMBOL sound/core/snd-pcm 0x567281ae snd_pcm_hw_constraint_ratnums -EXPORT_SYMBOL sound/core/snd-pcm 0x578e1065 snd_pcm_hw_constraint_msbits -EXPORT_SYMBOL sound/core/snd-pcm 0x58bf6ec4 snd_pcm_period_elapsed_under_stream_lock -EXPORT_SYMBOL sound/core/snd-pcm 0x58fe9b9d snd_pcm_hw_constraint_ratdens -EXPORT_SYMBOL sound/core/snd-pcm 0x5b68cbea snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-pcm 0x52f1713f snd_pcm_new_internal +EXPORT_SYMBOL sound/core/snd-pcm 0x5547f4da snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x5dfaa5dd snd_pcm_suspend_all EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence -EXPORT_SYMBOL sound/core/snd-pcm 0x61c74dbd snd_sgbuf_get_page -EXPORT_SYMBOL sound/core/snd-pcm 0x64ebf91a snd_dma_buffer_mmap +EXPORT_SYMBOL sound/core/snd-pcm 0x62cc3cb3 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x643b57b7 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x64a745a4 snd_pcm_create_iec958_consumer +EXPORT_SYMBOL sound/core/snd-pcm 0x64cd3ee5 snd_pcm_lib_preallocate_pages_for_all EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 -EXPORT_SYMBOL sound/core/snd-pcm 0x67b67206 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x66230f29 snd_pcm_hw_rule_noresample EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x68c4c08b snd_pcm_hw_constraint_msbits EXPORT_SYMBOL sound/core/snd-pcm 0x69255f54 snd_pcm_hw_limit_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x6c164890 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x6e4add73 snd_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0x6e79fe12 snd_pcm_hw_rule_add EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear -EXPORT_SYMBOL sound/core/snd-pcm 0x726719c4 snd_pcm_lib_free_pages -EXPORT_SYMBOL sound/core/snd-pcm 0x7299a89b snd_pcm_set_sync -EXPORT_SYMBOL sound/core/snd-pcm 0x7bb4fd82 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x7c9bd95b snd_sgbuf_get_addr +EXPORT_SYMBOL sound/core/snd-pcm 0x81a51181 snd_pcm_hw_constraint_list EXPORT_SYMBOL sound/core/snd-pcm 0x834dc955 snd_pcm_format_size -EXPORT_SYMBOL sound/core/snd-pcm 0x867f5c08 snd_pcm_hw_rule_noresample -EXPORT_SYMBOL sound/core/snd-pcm 0x8b1290cd snd_pcm_new -EXPORT_SYMBOL sound/core/snd-pcm 0x8d40c62e snd_pcm_kernel_ioctl -EXPORT_SYMBOL sound/core/snd-pcm 0x8ebdd306 snd_pcm_lib_ioctl -EXPORT_SYMBOL sound/core/snd-pcm 0x8f88edb4 snd_pcm_create_iec958_consumer -EXPORT_SYMBOL sound/core/snd-pcm 0x912c3786 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x860424bb snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x89dfa4b7 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x90505d3b snd_pcm_hw_constraint_ranges EXPORT_SYMBOL sound/core/snd-pcm 0x94098ff8 snd_interval_list -EXPORT_SYMBOL sound/core/snd-pcm 0x96192d1d snd_pcm_set_managed_buffer_all -EXPORT_SYMBOL sound/core/snd-pcm 0x96d5abde snd_pcm_lib_preallocate_pages -EXPORT_SYMBOL sound/core/snd-pcm 0x9803ca27 snd_pcm_suspend_all -EXPORT_SYMBOL sound/core/snd-pcm 0xa2f3cbd7 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xa57f4566 snd_pcm_hw_constraint_integer EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned -EXPORT_SYMBOL sound/core/snd-pcm 0xab32860e snd_pcm_new_internal EXPORT_SYMBOL sound/core/snd-pcm 0xac437f7b snd_interval_ratnum -EXPORT_SYMBOL sound/core/snd-pcm 0xb70b7543 __snd_pcm_lib_xfer +EXPORT_SYMBOL sound/core/snd-pcm 0xb3ff2f2a snd_pcm_hw_constraint_ratdens EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit -EXPORT_SYMBOL sound/core/snd-pcm 0xbec4d13e snd_pcm_release_substream -EXPORT_SYMBOL sound/core/snd-pcm 0xcb7ac3c5 snd_pcm_hw_constraint_ranges -EXPORT_SYMBOL sound/core/snd-pcm 0xcdc00c1e snd_pcm_lib_malloc_pages -EXPORT_SYMBOL sound/core/snd-pcm 0xd5fbc2d4 snd_pcm_hw_constraint_mask64 +EXPORT_SYMBOL sound/core/snd-pcm 0xba8efd98 snd_sgbuf_get_page +EXPORT_SYMBOL sound/core/snd-pcm 0xbad6d3f3 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0xbb5e09c6 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0xc0906765 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xc40d36bc snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0xc50f0f08 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xca64c763 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xca8b65d7 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xcf86dbf2 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xd4cfb0b7 snd_pcm_set_managed_buffer_all +EXPORT_SYMBOL sound/core/snd-pcm 0xd95dea9c snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xdfff71ae snd_pcm_hw_constraint_minmax EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width -EXPORT_SYMBOL sound/core/snd-pcm 0xed44159f snd_sgbuf_get_addr -EXPORT_SYMBOL sound/core/snd-pcm 0xf170856b snd_pcm_new_stream -EXPORT_SYMBOL sound/core/snd-pcm 0xf3182661 snd_pcm_hw_constraint_minmax -EXPORT_SYMBOL sound/core/snd-pcm 0xf6808986 snd_pcm_hw_constraint_integer -EXPORT_SYMBOL sound/core/snd-pcm 0xf9ae1bc6 snd_dma_free_pages -EXPORT_SYMBOL sound/core/snd-pcm 0xfd7d1e42 snd_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0xe5f8a940 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-pcm 0xe7bb14f1 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xf3016a1e snd_pcm_set_managed_buffer EXPORT_SYMBOL sound/core/snd-pcm 0xff6104d0 snd_pcm_rate_bit_to_rate -EXPORT_SYMBOL sound/core/snd-rawmidi 0x0c86fcb9 snd_rawmidi_drop_output -EXPORT_SYMBOL sound/core/snd-rawmidi 0x2eec1e29 snd_rawmidi_drain_output -EXPORT_SYMBOL sound/core/snd-rawmidi 0x2fd19724 snd_rawmidi_drain_input -EXPORT_SYMBOL sound/core/snd-rawmidi 0x33e17718 snd_rawmidi_receive -EXPORT_SYMBOL sound/core/snd-rawmidi 0x3624d3e5 snd_rawmidi_set_ops -EXPORT_SYMBOL sound/core/snd-rawmidi 0x39ab4583 snd_rawmidi_kernel_write -EXPORT_SYMBOL sound/core/snd-rawmidi 0x3af0f868 snd_rawmidi_kernel_open -EXPORT_SYMBOL sound/core/snd-rawmidi 0x664ceb3f snd_rawmidi_transmit_peek -EXPORT_SYMBOL sound/core/snd-rawmidi 0x68d258d4 snd_rawmidi_info_select -EXPORT_SYMBOL sound/core/snd-rawmidi 0x7d7b85ab snd_rawmidi_output_params -EXPORT_SYMBOL sound/core/snd-rawmidi 0x8240d051 snd_rawmidi_kernel_release -EXPORT_SYMBOL sound/core/snd-rawmidi 0x996f313e snd_rawmidi_transmit_empty -EXPORT_SYMBOL sound/core/snd-rawmidi 0x99ff2c87 snd_rawmidi_transmit_ack -EXPORT_SYMBOL sound/core/snd-rawmidi 0xa1a7b7b8 snd_rawmidi_transmit -EXPORT_SYMBOL sound/core/snd-rawmidi 0xaa7fac0a snd_rawmidi_input_params -EXPORT_SYMBOL sound/core/snd-rawmidi 0xc354be07 snd_rawmidi_proceed -EXPORT_SYMBOL sound/core/snd-rawmidi 0xca09f740 snd_rawmidi_new -EXPORT_SYMBOL sound/core/snd-rawmidi 0xd04e3c90 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x02280622 snd_rawmidi_proceed +EXPORT_SYMBOL sound/core/snd-rawmidi 0x15001a09 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x22f20883 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2f8381fc snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x33ad2524 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8862d61f snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x922b98cd snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xaf25bba2 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb13a0d2f snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb3c0c68b snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb697af12 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb93adea5 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xbdac9b09 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc6398438 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0xeee3b2da snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf2198c0c snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf6518eb5 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfe2263e5 snd_rawmidi_drop_output EXPORT_SYMBOL sound/core/snd-seq-device 0x091def1c snd_seq_autoload_exit +EXPORT_SYMBOL sound/core/snd-seq-device 0x353931d2 snd_seq_device_new EXPORT_SYMBOL sound/core/snd-seq-device 0x370a0736 snd_seq_autoload_init EXPORT_SYMBOL sound/core/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers -EXPORT_SYMBOL sound/core/snd-seq-device 0xd1d84d82 snd_seq_device_new -EXPORT_SYMBOL sound/core/snd-timer 0x0460965f snd_timer_stop -EXPORT_SYMBOL sound/core/snd-timer 0x0c77299c snd_timer_global_register -EXPORT_SYMBOL sound/core/snd-timer 0x1ac9f621 snd_timer_open -EXPORT_SYMBOL sound/core/snd-timer 0x4514e608 snd_timer_instance_new -EXPORT_SYMBOL sound/core/snd-timer 0x45ff826b snd_timer_global_new -EXPORT_SYMBOL sound/core/snd-timer 0x4c1b0439 snd_timer_interrupt -EXPORT_SYMBOL sound/core/snd-timer 0x4cf01622 snd_timer_continue -EXPORT_SYMBOL sound/core/snd-timer 0x682d5749 snd_timer_notify -EXPORT_SYMBOL sound/core/snd-timer 0x6f127d05 snd_timer_new -EXPORT_SYMBOL sound/core/snd-timer 0x96a634f4 snd_timer_start -EXPORT_SYMBOL sound/core/snd-timer 0xa7f9aae9 snd_timer_pause -EXPORT_SYMBOL sound/core/snd-timer 0xbfbcfe19 snd_timer_instance_free -EXPORT_SYMBOL sound/core/snd-timer 0xd77df912 snd_timer_close -EXPORT_SYMBOL sound/core/snd-timer 0xf6f58531 snd_timer_resolution -EXPORT_SYMBOL sound/core/snd-timer 0xf9f0f651 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x148a9444 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x1c254553 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x3ea7706f snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x4ed699c9 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x523ec2be snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x53ae7f39 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x64116c07 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x68d97380 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x7d8c6bdb snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x8e5b12d1 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0xafca4cc7 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0xdfc2eb97 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xeff8b87e snd_timer_instance_free +EXPORT_SYMBOL sound/core/snd-timer 0xf1aa5eb5 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xffc47bcd snd_timer_instance_new EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x7564ebff snd_mpu401_uart_new EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227 snd_mpu401_uart_interrupt -EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xece6b405 snd_mpu401_uart_new EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x060588c2 snd_opl3_hwdep_new -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1e104cb3 snd_opl3_new -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x27376abb snd_opl3_timer_new -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x73a1e440 snd_opl3_reset -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x9c5bad99 snd_opl3_create -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa5d4d13a snd_opl3_interrupt -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbd2fb4cf snd_opl3_init -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xc03de801 snd_opl3_load_patch -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf32c1cf4 snd_opl3_find_patch -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x01caa972 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x39782ff0 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5370c155 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7cfe3b8f snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7f4d4df3 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x92175e32 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa06e377e snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbcfdcec9 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xc2ab79f3 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd409fa8b snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0428c86f snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x198b0b5b snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1c96efac snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x22042f64 snd_vx_suspend EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x226138b0 snd_vx_threaded_irq_handler -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x266eae19 snd_vx_suspend -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x67d3881d snd_vx_resume -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8570fa51 snd_vx_setup_firmware -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xa429e99d snd_vx_load_boot_image -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xa5207fe8 snd_vx_dsp_boot -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xac689da7 snd_vx_create -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb0b9d20f snd_vx_free_firmware -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe9868230 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x2a732ee0 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5c441d9a snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x781ef0d0 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc5d049bb snd_vx_setup_firmware EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0071674f cmp_connection_update -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x02274bcc fw_iso_resources_init -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0a206cf7 fw_iso_resources_allocate -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0a86a835 cmp_connection_destroy -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1445ef12 snd_fw_transaction +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xff2641dc snd_vx_resume +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x01c64426 fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0e745974 snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x16442d84 cmp_connection_update EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x20254e45 amdtp_syt_intervals -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x22c777b2 amdtp_stream_pcm_abort -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2cfe5667 fw_iso_resources_destroy -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x41df14fa amdtp_stream_destroy -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x454be807 cmp_connection_establish -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x45949ae8 amdtp_stream_set_parameters -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4b7410e9 amdtp_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x39a7cac5 avc_general_set_sig_fmt +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4a549649 fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x520a8be6 avc_general_get_sig_fmt EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x53ca18e8 amdtp_rate_table -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x61db6244 cmp_connection_break -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x674a9604 cmp_connection_release -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7250c553 avc_general_set_sig_fmt -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7d18708a avc_general_get_sig_fmt -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7ea414e6 iso_packets_buffer_destroy -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x891b3682 cmp_connection_init -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x90472d92 avc_general_get_plug_info -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x94c92eaf amdtp_stream_pcm_prepare -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x96fc32db fw_iso_resources_update -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x97e31e86 amdtp_stream_add_pcm_hw_constraints -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa1196879 fw_iso_resources_free -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xc450adbe amdtp_stream_update -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd3a5bc5c fcp_bus_reset -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xdf2f16ec fcp_avc_transaction -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf24fbb47 cmp_connection_reserve -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf94b3beb amdtp_stream_get_max_payload -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf992ea97 iso_packets_buffer_init -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xfc5a41cf cmp_connection_check_used +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x560cbdb4 amdtp_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5aba29f2 iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x63b3d994 fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6ff4c127 amdtp_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x70b7a191 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7ab8e1f0 cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x9fec38e4 cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa02df044 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa09e863d fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb5790105 cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb9712868 amdtp_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xbce99fdc amdtp_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xbd21549d amdtp_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xc0a5835a cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xce176300 cmp_connection_reserve +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xcf2200eb amdtp_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd1dc664b cmp_connection_release +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xdab0bf0a avc_general_get_plug_info +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xdcb4abfd iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe4f68242 cmp_connection_check_used +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe6340399 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe6a6933d amdtp_stream_add_pcm_hw_constraints +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe78f0da5 amdtp_stream_set_parameters +EXPORT_SYMBOL sound/hda/snd-intel-dspcfg 0x0bb2a10e intel_nhlt_get_endpoint_blob EXPORT_SYMBOL sound/hda/snd-intel-dspcfg 0x41a05c36 intel_nhlt_has_endpoint_type EXPORT_SYMBOL sound/hda/snd-intel-dspcfg 0x66fd6169 intel_nhlt_ssp_endpoint_mask EXPORT_SYMBOL sound/hda/snd-intel-dspcfg 0xb7b836b3 intel_nhlt_ssp_mclk_mask -EXPORT_SYMBOL sound/hda/snd-intel-dspcfg 0xd71fbe3f intel_nhlt_get_endpoint_blob -EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0x3c22f9da snd_ak4113_resume -EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0xe7df6100 snd_ak4113_suspend -EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x2e3f599e snd_ak4114_reg_write -EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x42a20beb snd_ak4114_resume -EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x67e37997 snd_ak4114_check_rate_and_errors -EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x7ab4cbf8 snd_ak4114_suspend -EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x8cc5704e snd_ak4114_reinit -EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x8d5719be snd_ak4114_build -EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x94838dab snd_ak4114_external_rate -EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf481ffad snd_ak4114_create -EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xa7dd611f snd_akm4xxx_init -EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xb7795fd0 snd_akm4xxx_reset -EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xd74a2bdc snd_akm4xxx_build_controls -EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xfd5b1e45 snd_akm4xxx_write -EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x43bd52f1 snd_pt2258_reset -EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x661ca314 snd_pt2258_build_controls -EXPORT_SYMBOL sound/i2c/snd-i2c 0x62a2b637 snd_i2c_device_free -EXPORT_SYMBOL sound/i2c/snd-i2c 0x7525ac1c snd_i2c_bus_create -EXPORT_SYMBOL sound/i2c/snd-i2c 0x9158af78 snd_i2c_sendbytes -EXPORT_SYMBOL sound/i2c/snd-i2c 0xc4751e5b snd_i2c_device_create -EXPORT_SYMBOL sound/i2c/snd-i2c 0xc7db9146 snd_i2c_readbytes -EXPORT_SYMBOL sound/i2c/snd-i2c 0xc9d5379f snd_i2c_probeaddr -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0280361d snd_ac97_get_short_name -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x14fd78e1 snd_ac97_pcm_close -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x18fedac7 snd_ac97_suspend -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1c1176ec snd_ac97_resume -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x36156909 snd_ac97_pcm_assign -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x367af8f4 snd_ac97_write -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3aa92097 snd_ac97_update_power -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5083fccf snd_ac97_bus -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7490c3a0 snd_ac97_pcm_double_rate_rules -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7d344369 snd_ac97_update -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9fa139f5 snd_ac97_read -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xacd16ee7 snd_ac97_pcm_open -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc9a4f148 snd_ac97_set_rate -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc9b70bf6 snd_ac97_mixer -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfa06b82f snd_ac97_write_cache -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfb8a9ae6 snd_ac97_tune_hardware -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfd5cb2d4 snd_ac97_update_bits -EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x088cca7e snd_ice1712_akm4xxx_build_controls -EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x4dac1bf1 snd_ice1712_akm4xxx_free -EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xcf973fe4 snd_ice1712_akm4xxx_init -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00bf709e oxygen_write16 -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x059e9c21 oxygen_write16_masked -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x08a892f8 oxygen_write8 -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0ec5f00f oxygen_write_uart -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x11131e2b oxygen_update_dac_routing -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x15555bee oxygen_write_ac97_masked -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2504f93e oxygen_reset_uart -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3117ad09 oxygen_read8 -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4d6c6be0 oxygen_pci_probe -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x51149389 oxygen_write32 -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5c9a780e oxygen_pci_shutdown -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5ecd3b51 oxygen_write_spi -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7031b50b oxygen_read_ac97 -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x73da7d4c oxygen_read32 -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x74c3ad1f oxygen_write_ac97 -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7e894b54 oxygen_write_i2c -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9779714f oxygen_write8_masked -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9deb36e9 oxygen_read16 -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa592ac01 oxygen_write32_masked -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdf867d3e oxygen_pci_pm +EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0x9f632267 snd_ak4113_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0xe3318ecd snd_ak4113_resume +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x38c417b8 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x8dca146d snd_ak4114_resume +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x9ec584cf snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa4552d2a snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xb6ab22fa snd_ak4114_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xcaf6d27f snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xd5610fb9 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf6abe1dc snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x14b515ee snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x4d199520 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x6ac14409 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xfa0e0e8c snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x00bd3762 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x2b0131e2 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/snd-i2c 0x2fc69824 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x613af0fe snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x878dcba7 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0xd6eb83ce snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xed1bd0ee snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xf18b493e snd_i2c_readbytes +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2859a59e snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4f63f7ee snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4fc9aac3 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x585cd4f8 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5caf933e snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6a82f9b7 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x840ad472 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa0b20b5a snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa73e86da snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa8db218b snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xaef4a146 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc2515cf4 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd70bfc5a snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdf501f3c snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfb99df52 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfc61e0a8 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfe5ca90f snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x10b29e82 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x4dc95d2e snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x50d8c502 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x01db38df oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0879fa60 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0cab28b5 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x23b5aa31 oxygen_update_dac_routing +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x50b7f8a3 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x52f10cce oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x78a36953 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x85cea96d oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x85f4bd1e oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9076fa76 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x97a6aab2 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xabdf4048 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb72d709c oxygen_pci_pm +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbe7c516f oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcd7cfe9e oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd686fe56 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd8d3a158 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe0f1d53c oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe2d302ed oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xefaa0bcb oxygen_write_spi EXPORT_SYMBOL sound/soc/amd/acp_audio_dma 0xf2cc2cce acp_bt_uart_enable -EXPORT_SYMBOL sound/soc/amd/snd-acp-config 0x4211a18f snd_soc_acpi_amd_sof_machines -EXPORT_SYMBOL sound/soc/amd/snd-acp-config 0xa1df3f80 snd_amd_acp_find_config -EXPORT_SYMBOL sound/soc/amd/snd-acp-config 0xb1bd2c31 snd_soc_acpi_amd_rmb_sof_machines -EXPORT_SYMBOL sound/soc/codecs/snd-soc-adau1372 0x0420b239 adau1372_probe -EXPORT_SYMBOL sound/soc/codecs/snd-soc-lpass-wsa-macro 0xec09b8a4 wsa_macro_set_spkr_mode -EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0x09e906ea pcm3060_probe -EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0xd480a5b7 pcm3060_regmap +EXPORT_SYMBOL sound/soc/amd/snd-acp-config 0x4685ca0c snd_soc_acpi_amd_rmb_sof_machines +EXPORT_SYMBOL sound/soc/amd/snd-acp-config 0x78666a73 snd_soc_acpi_amd_sof_machines +EXPORT_SYMBOL sound/soc/amd/snd-acp-config 0xcca52705 snd_amd_acp_find_config +EXPORT_SYMBOL sound/soc/codecs/snd-soc-adau1372 0x99cb8f28 adau1372_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-lpass-wsa-macro 0xc820d469 wsa_macro_set_spkr_mode +EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0x13d3bf07 pcm3060_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0x7209739d pcm3060_regmap EXPORT_SYMBOL sound/soc/codecs/snd-soc-rt715 0xed2acb24 hda_to_sdw -EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0x33a1c952 tlv320aic23_probe -EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0xa1ff9f7d tlv320aic23_regmap -EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x1c6ce690 aic32x4_remove -EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x3415e3cb aic32x4_probe -EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0xd40f0758 aic32x4_regmap_config -EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic3x 0x90e1ac0e aic3x_remove -EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic3x 0xc1b5f2d3 aic3x_probe -EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x1d4a063b wcd_dt_parse_mbhc_data +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0x3280bc7a tlv320aic23_regmap +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0x80e9ab0d tlv320aic23_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x2a4d7c58 aic32x4_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x9d0d5471 aic32x4_regmap_config +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0xe358957a aic32x4_remove +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic3x 0xc350dcad aic3x_remove +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic3x 0xe9980d61 aic3x_probe EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x3a195ca9 wcd_mbhc_get_impedance -EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x5f27d289 wcd_mbhc_init EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x789ebe56 wcd_mbhc_set_hph_type -EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x8577a7e8 wcd_mbhc_start +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x8a8f5e40 wcd_dt_parse_mbhc_data EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xa5758a49 wcd_mbhc_get_hph_type EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xd094df47 wcd_mbhc_deinit +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xd5dac339 wcd_mbhc_start EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xe2beca26 wcd_mbhc_stop -EXPORT_SYMBOL sound/soc/fsl/snd-soc-fsl-utils 0x4ee22482 fsl_asoc_reparent_pll_clocks -EXPORT_SYMBOL sound/soc/fsl/snd-soc-fsl-utils 0x589f21af fsl_asoc_get_pll_clocks -EXPORT_SYMBOL sound/soc/fsl/snd-soc-fsl-utils 0xb9ea39ec fsl_asoc_get_dma_channel -EXPORT_SYMBOL sound/soc/snd-soc-core 0x4e2b0f3c snd_soc_alloc_ac97_component -EXPORT_SYMBOL sound/soundcore 0x24224973 sound_class -EXPORT_SYMBOL sound/soundcore 0x4baa41b4 register_sound_mixer +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xf260f3e0 wcd_mbhc_init +EXPORT_SYMBOL sound/soc/fsl/snd-soc-fsl-utils 0x70cc9439 fsl_asoc_get_dma_channel +EXPORT_SYMBOL sound/soc/fsl/snd-soc-fsl-utils 0x7b34881c fsl_asoc_reparent_pll_clocks +EXPORT_SYMBOL sound/soc/fsl/snd-soc-fsl-utils 0xbeb98500 fsl_asoc_get_pll_clocks +EXPORT_SYMBOL sound/soc/snd-soc-core 0x1a0165da snd_soc_alloc_ac97_component +EXPORT_SYMBOL sound/soundcore 0x160aa006 register_sound_special EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer -EXPORT_SYMBOL sound/soundcore 0x8a2e960c register_sound_special EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special -EXPORT_SYMBOL sound/soundcore 0x9e54cbaa register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xa7a754ab register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0xbff4c5f1 register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xc767e0eb sound_class EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp -EXPORT_SYMBOL sound/soundcore 0xf80160e8 register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0xd7588123 register_sound_special_device EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xb2af19e1 snd_usbmidi_resume EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xbed43a41 snd_usbmidi_suspend -EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xc15a5402 __snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xc24006ba __snd_usbmidi_create EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect -EXPORT_SYMBOL vmlinux 0x00029b6a jbd2_journal_set_triggers -EXPORT_SYMBOL vmlinux 0x000b155b vmf_insert_mixed_mkwrite -EXPORT_SYMBOL vmlinux 0x000fc206 kill_anon_super EXPORT_SYMBOL vmlinux 0x00148653 vsnprintf -EXPORT_SYMBOL vmlinux 0x004677b1 blk_set_runtime_active -EXPORT_SYMBOL vmlinux 0x0053a7ef file_remove_privs -EXPORT_SYMBOL vmlinux 0x0083cf41 input_set_timestamp -EXPORT_SYMBOL vmlinux 0x0084427e page_pool_return_skb_page -EXPORT_SYMBOL vmlinux 0x00858964 tcp_md5_hash_key -EXPORT_SYMBOL vmlinux 0x00896b6e pcie_capability_read_word -EXPORT_SYMBOL vmlinux 0x008dd338 memory_cgrp_subsys -EXPORT_SYMBOL vmlinux 0x00977ea7 _dev_info -EXPORT_SYMBOL vmlinux 0x009788a5 fs_param_is_bool -EXPORT_SYMBOL vmlinux 0x00a080ad set_user_nice +EXPORT_SYMBOL vmlinux 0x002900cd skb_vlan_push +EXPORT_SYMBOL vmlinux 0x00290a27 ip6_frag_next +EXPORT_SYMBOL vmlinux 0x002e00e6 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x0041904d jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x007bf5c9 inode_insert5 +EXPORT_SYMBOL vmlinux 0x00839a5f netdev_emerg +EXPORT_SYMBOL vmlinux 0x00876492 netdev_port_same_parent_id +EXPORT_SYMBOL vmlinux 0x008d7aab blk_mq_start_request +EXPORT_SYMBOL vmlinux 0x00931232 init_net EXPORT_SYMBOL vmlinux 0x00b045a3 udp_table +EXPORT_SYMBOL vmlinux 0x00b07568 input_setup_polling +EXPORT_SYMBOL vmlinux 0x00b38e62 tcp_v4_conn_request EXPORT_SYMBOL vmlinux 0x00b4e615 posix_acl_equiv_mode -EXPORT_SYMBOL vmlinux 0x00b56c14 pin_user_pages -EXPORT_SYMBOL vmlinux 0x00d12e2c xfrm_state_lookup_byspi +EXPORT_SYMBOL vmlinux 0x00c809e3 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x00c9a0ae mapping_read_folio_gfp +EXPORT_SYMBOL vmlinux 0x00ca553e __i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x00d1454d pps_register_source +EXPORT_SYMBOL vmlinux 0x00d286be netdev_core_stats_alloc EXPORT_SYMBOL vmlinux 0x00d7e722 vme_lm_count -EXPORT_SYMBOL vmlinux 0x00e82339 has_capability -EXPORT_SYMBOL vmlinux 0x00ee80c4 vif_device_init -EXPORT_SYMBOL vmlinux 0x00ef1b58 iov_iter_get_pages2 +EXPORT_SYMBOL vmlinux 0x00e71c46 rtnl_offload_xstats_notify EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01076f8d scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x010ca6b9 i2c_smbus_read_i2c_block_data_or_emulated EXPORT_SYMBOL vmlinux 0x01156ae4 utf8_strncasecmp_folded -EXPORT_SYMBOL vmlinux 0x01215af3 pcie_capability_write_dword -EXPORT_SYMBOL vmlinux 0x0127c298 forget_cached_acl +EXPORT_SYMBOL vmlinux 0x011849df vme_slot_num +EXPORT_SYMBOL vmlinux 0x0118528f input_unregister_handler +EXPORT_SYMBOL vmlinux 0x011eb402 of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x01380179 generic_file_read_iter +EXPORT_SYMBOL vmlinux 0x013c39b4 cfb_imageblit EXPORT_SYMBOL vmlinux 0x0147812c kblockd_mod_delayed_work_on -EXPORT_SYMBOL vmlinux 0x01587f4e kthread_bind -EXPORT_SYMBOL vmlinux 0x015d1d40 platform_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x01534d71 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x016ebc6b cdrom_dummy_generic_packet EXPORT_SYMBOL vmlinux 0x016f123e sg_copy_to_buffer EXPORT_SYMBOL vmlinux 0x01757935 rdmacg_register_device EXPORT_SYMBOL vmlinux 0x017de3d5 nr_cpu_ids -EXPORT_SYMBOL vmlinux 0x01830e17 register_shrinker +EXPORT_SYMBOL vmlinux 0x0180c954 sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0x01837c76 md_write_inc EXPORT_SYMBOL vmlinux 0x0188cd88 vme_alloc_consistent EXPORT_SYMBOL vmlinux 0x01918a10 riscv_cached_marchid -EXPORT_SYMBOL vmlinux 0x0191c9a2 inode_owner_or_capable -EXPORT_SYMBOL vmlinux 0x0194c3b2 vfs_setpos -EXPORT_SYMBOL vmlinux 0x019da483 md_integrity_add_rdev -EXPORT_SYMBOL vmlinux 0x01a74d2a pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x01a70379 bmap +EXPORT_SYMBOL vmlinux 0x01b083b9 tcf_register_action +EXPORT_SYMBOL vmlinux 0x01b087e7 scsi_partsize +EXPORT_SYMBOL vmlinux 0x01bc1694 vfs_fsync_range EXPORT_SYMBOL vmlinux 0x01bf55fc paddr_vmcoreinfo_note -EXPORT_SYMBOL vmlinux 0x01d93df1 vlan_dev_vlan_proto -EXPORT_SYMBOL vmlinux 0x01e18116 neigh_sysctl_register -EXPORT_SYMBOL vmlinux 0x01e3aef0 flow_rule_match_enc_control -EXPORT_SYMBOL vmlinux 0x01f48810 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x01cd085d nf_ct_attach +EXPORT_SYMBOL vmlinux 0x01cff4d8 __vfs_setxattr +EXPORT_SYMBOL vmlinux 0x01f039d3 dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x01f6126e i2c_del_driver EXPORT_SYMBOL vmlinux 0x0209f3a7 secure_ipv6_port_ephemeral EXPORT_SYMBOL vmlinux 0x020dbf27 bitmap_alloc -EXPORT_SYMBOL vmlinux 0x02365f86 seq_open -EXPORT_SYMBOL vmlinux 0x02422c80 netif_skb_features +EXPORT_SYMBOL vmlinux 0x020e5500 dm_io +EXPORT_SYMBOL vmlinux 0x02263a23 d_drop +EXPORT_SYMBOL vmlinux 0x0226ae28 flow_rule_match_l2tpv3 +EXPORT_SYMBOL vmlinux 0x02286869 seq_open +EXPORT_SYMBOL vmlinux 0x023268b9 jbd2_journal_force_commit EXPORT_SYMBOL vmlinux 0x0248efd3 kstrtobool_from_user -EXPORT_SYMBOL vmlinux 0x02562274 __hw_addr_unsync_dev +EXPORT_SYMBOL vmlinux 0x025040bf crypto_kdf108_setkey +EXPORT_SYMBOL vmlinux 0x0253f67d mdiobus_scan_c22 EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x0274f3c3 devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0x028d50fb km_policy_notify +EXPORT_SYMBOL vmlinux 0x0292e181 __register_chrdev EXPORT_SYMBOL vmlinux 0x0296695f refcount_warn_saturate -EXPORT_SYMBOL vmlinux 0x029e8a36 of_get_compatible_child -EXPORT_SYMBOL vmlinux 0x02a12437 fs_param_is_enum -EXPORT_SYMBOL vmlinux 0x02b0b002 __sk_mem_schedule -EXPORT_SYMBOL vmlinux 0x02ce190b configfs_unregister_default_group -EXPORT_SYMBOL vmlinux 0x02d4acdd neigh_connected_output -EXPORT_SYMBOL vmlinux 0x02da7953 param_ops_int -EXPORT_SYMBOL vmlinux 0x02e8fc21 blkdev_issue_zeroout -EXPORT_SYMBOL vmlinux 0x02ffbd61 security_tun_dev_attach -EXPORT_SYMBOL vmlinux 0x030197b8 blk_queue_max_segment_size -EXPORT_SYMBOL vmlinux 0x03041c43 scsi_host_busy -EXPORT_SYMBOL vmlinux 0x03072de0 genphy_read_status_fixed -EXPORT_SYMBOL vmlinux 0x030cfc1b input_mt_report_pointer_emulation -EXPORT_SYMBOL vmlinux 0x031d5180 input_event -EXPORT_SYMBOL vmlinux 0x0320b97c dcb_ieee_delapp -EXPORT_SYMBOL vmlinux 0x032ebd6e netif_carrier_off +EXPORT_SYMBOL vmlinux 0x029720d0 param_ops_uint +EXPORT_SYMBOL vmlinux 0x02b39f91 inet_frag_queue_insert +EXPORT_SYMBOL vmlinux 0x02b94590 dma_resv_iter_first_unlocked +EXPORT_SYMBOL vmlinux 0x02bf2047 blk_queue_virt_boundary +EXPORT_SYMBOL vmlinux 0x02e3459c devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x02fcf8e7 sock_kzfree_s +EXPORT_SYMBOL vmlinux 0x03013d14 security_inode_copy_up +EXPORT_SYMBOL vmlinux 0x030ace90 filemap_fdatawait_keep_errors +EXPORT_SYMBOL vmlinux 0x03163528 t10_pi_type3_ip +EXPORT_SYMBOL vmlinux 0x0322229c seq_release_private EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl -EXPORT_SYMBOL vmlinux 0x03388862 pci_find_bus -EXPORT_SYMBOL vmlinux 0x035c707b sockopt_lock_sock +EXPORT_SYMBOL vmlinux 0x03368716 from_kprojid_munged +EXPORT_SYMBOL vmlinux 0x0340820b dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x035b0954 bio_add_page EXPORT_SYMBOL vmlinux 0x035d25ab memcg_kmem_online_key EXPORT_SYMBOL vmlinux 0x0360d67f make_flow_keys_digest EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled EXPORT_SYMBOL vmlinux 0x036cce78 tty_termios_input_baud_rate EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x037ef0de __bh_read EXPORT_SYMBOL vmlinux 0x03815f35 ledtrig_disk_activity +EXPORT_SYMBOL vmlinux 0x03888e60 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x0394ad4d bio_integrity_prep EXPORT_SYMBOL vmlinux 0x0397edd5 fb_edid_to_monspecs -EXPORT_SYMBOL vmlinux 0x039b253a blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x03aad5a1 elv_bio_merge_ok EXPORT_SYMBOL vmlinux 0x03b814ca bpf_dispatcher_xdp_func -EXPORT_SYMBOL vmlinux 0x03b81515 t10_pi_type1_crc -EXPORT_SYMBOL vmlinux 0x03b970e9 __inc_zone_page_state -EXPORT_SYMBOL vmlinux 0x03cff0e1 __splice_from_pipe -EXPORT_SYMBOL vmlinux 0x03d30d9e cdrom_get_media_event -EXPORT_SYMBOL vmlinux 0x03d6d73a devfreq_update_interval +EXPORT_SYMBOL vmlinux 0x03cb231c dma_map_page_attrs +EXPORT_SYMBOL vmlinux 0x03df6d71 config_item_get_unless_zero EXPORT_SYMBOL vmlinux 0x03e0c2c0 mtree_store_range -EXPORT_SYMBOL vmlinux 0x03e1c49f md_unregister_thread +EXPORT_SYMBOL vmlinux 0x03e80000 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x03ef6636 vfs_copy_file_range EXPORT_SYMBOL vmlinux 0x03f26151 mempool_exit +EXPORT_SYMBOL vmlinux 0x03fb5fa5 md_update_sb EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram -EXPORT_SYMBOL vmlinux 0x043aa015 of_iomap -EXPORT_SYMBOL vmlinux 0x043cae61 unregister_cdrom -EXPORT_SYMBOL vmlinux 0x043ce52a proc_create_single_data +EXPORT_SYMBOL vmlinux 0x04159307 dquot_initialize +EXPORT_SYMBOL vmlinux 0x042f0d7f tcf_idr_create_from_flags +EXPORT_SYMBOL vmlinux 0x043fd96b pcibios_bus_to_resource EXPORT_SYMBOL vmlinux 0x044154c6 tc_skb_ext_tc EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator -EXPORT_SYMBOL vmlinux 0x044e6f3b __xfrm_decode_session EXPORT_SYMBOL vmlinux 0x044f0ad9 get_random_u16 +EXPORT_SYMBOL vmlinux 0x0471bd60 mmc_alloc_host EXPORT_SYMBOL vmlinux 0x0474edef kstrtou16_from_user -EXPORT_SYMBOL vmlinux 0x04762316 tcf_exts_validate_ex -EXPORT_SYMBOL vmlinux 0x047763b6 key_instantiate_and_link EXPORT_SYMBOL vmlinux 0x0479aac1 seq_list_next_rcu +EXPORT_SYMBOL vmlinux 0x047ddb2f fuse_mount_destroy +EXPORT_SYMBOL vmlinux 0x047f3f3f __sk_dst_check EXPORT_SYMBOL vmlinux 0x0484c6c4 acpi_enter_sleep_state_prep EXPORT_SYMBOL vmlinux 0x04863e28 hdmi_audio_infoframe_pack_only -EXPORT_SYMBOL vmlinux 0x04a8c3a9 sk_net_capable -EXPORT_SYMBOL vmlinux 0x04ac73f2 fb_set_cmap -EXPORT_SYMBOL vmlinux 0x04b3acc9 bio_integrity_add_page -EXPORT_SYMBOL vmlinux 0x04c4b60d jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x0488cb88 _dev_emerg +EXPORT_SYMBOL vmlinux 0x0492e67b jbd2_fc_release_bufs EXPORT_SYMBOL vmlinux 0x04c62fd7 __memset -EXPORT_SYMBOL vmlinux 0x04d0d3e4 scsi_host_get EXPORT_SYMBOL vmlinux 0x04d24402 iwe_stream_add_point EXPORT_SYMBOL vmlinux 0x04ea5d10 ksize -EXPORT_SYMBOL vmlinux 0x04ea9f50 d_prune_aliases -EXPORT_SYMBOL vmlinux 0x0520d308 __of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x04f5a148 sockopt_lock_sock +EXPORT_SYMBOL vmlinux 0x04fac431 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x05002fb4 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x050639e9 seq_putc +EXPORT_SYMBOL vmlinux 0x0508853d ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x0509b2a8 netdev_txq_to_tc +EXPORT_SYMBOL vmlinux 0x050ff232 xsk_clear_tx_need_wakeup +EXPORT_SYMBOL vmlinux 0x05107fb6 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x0519dbb2 sk_dst_check +EXPORT_SYMBOL vmlinux 0x051b2f11 ppp_dev_name EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch -EXPORT_SYMBOL vmlinux 0x052a667f migrate_folio -EXPORT_SYMBOL vmlinux 0x05313de1 inc_node_page_state +EXPORT_SYMBOL vmlinux 0x052793ad mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0x05334f7b serio_unregister_port +EXPORT_SYMBOL vmlinux 0x05432ad1 of_graph_get_port_parent EXPORT_SYMBOL vmlinux 0x054496b4 schedule_timeout_interruptible -EXPORT_SYMBOL vmlinux 0x055774ee file_check_and_advance_wb_err -EXPORT_SYMBOL vmlinux 0x055893ee sg_miter_next EXPORT_SYMBOL vmlinux 0x0562dc30 __sg_page_iter_start EXPORT_SYMBOL vmlinux 0x056bcf7b dm_read_arg -EXPORT_SYMBOL vmlinux 0x056c0ea8 vfs_dedupe_file_range_one -EXPORT_SYMBOL vmlinux 0x056cf752 scmd_printk +EXPORT_SYMBOL vmlinux 0x056e89b1 of_mdio_find_bus +EXPORT_SYMBOL vmlinux 0x0575dd8d i2c_smbus_read_block_data EXPORT_SYMBOL vmlinux 0x05773919 __init_rwsem -EXPORT_SYMBOL vmlinux 0x057992ec sock_enable_timestamps -EXPORT_SYMBOL vmlinux 0x057e42e8 tcf_exts_dump_stats -EXPORT_SYMBOL vmlinux 0x057fa2b7 inet6_offloads -EXPORT_SYMBOL vmlinux 0x05821061 lookup_one_unlocked -EXPORT_SYMBOL vmlinux 0x05cb862b unregister_netdevice_notifier_dev_net -EXPORT_SYMBOL vmlinux 0x05e55eff tcp_md5_do_del -EXPORT_SYMBOL vmlinux 0x05f0a02a vm_insert_page -EXPORT_SYMBOL vmlinux 0x05f159d2 single_release +EXPORT_SYMBOL vmlinux 0x057a874a eth_mac_addr +EXPORT_SYMBOL vmlinux 0x057c89b0 vma_set_file +EXPORT_SYMBOL vmlinux 0x058031c1 inode_query_iversion +EXPORT_SYMBOL vmlinux 0x059d2c7c tcp_close +EXPORT_SYMBOL vmlinux 0x05a7898c tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x05cc5387 gnet_stats_copy_basic_hw +EXPORT_SYMBOL vmlinux 0x05cf5fe0 vfs_unlink +EXPORT_SYMBOL vmlinux 0x05d8f055 csum_and_copy_to_iter +EXPORT_SYMBOL vmlinux 0x05ddab7f twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x05edb96b pci_write_config_dword +EXPORT_SYMBOL vmlinux 0x06009be8 __traceiter_mmap_lock_released EXPORT_SYMBOL vmlinux 0x06052f8d __memmove EXPORT_SYMBOL vmlinux 0x0612aaab sbi_remote_fence_i EXPORT_SYMBOL vmlinux 0x061651be strcat EXPORT_SYMBOL vmlinux 0x061bc6a1 mt_find -EXPORT_SYMBOL vmlinux 0x06334321 netdev_warn +EXPORT_SYMBOL vmlinux 0x061d2d3e mdiobus_get_phy EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user -EXPORT_SYMBOL vmlinux 0x063f8a38 inet6_getname -EXPORT_SYMBOL vmlinux 0x0640cfde secure_tcpv6_ts_off -EXPORT_SYMBOL vmlinux 0x06495129 folio_wait_bit -EXPORT_SYMBOL vmlinux 0x064cd177 inet_csk_clear_xmit_timers -EXPORT_SYMBOL vmlinux 0x0651b31c sg_miter_start -EXPORT_SYMBOL vmlinux 0x065da3d7 single_open_size -EXPORT_SYMBOL vmlinux 0x06672bdd crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x065bb677 inet6_release +EXPORT_SYMBOL vmlinux 0x0665bf93 vga_client_register EXPORT_SYMBOL vmlinux 0x0668b595 _kstrtoul -EXPORT_SYMBOL vmlinux 0x06ae492c disk_check_media_change +EXPORT_SYMBOL vmlinux 0x06751316 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x0689d039 register_framebuffer +EXPORT_SYMBOL vmlinux 0x069b654b devm_free_irq +EXPORT_SYMBOL vmlinux 0x069e23cd __blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x06a313d3 skb_flow_get_icmp_tci +EXPORT_SYMBOL vmlinux 0x06afb6df input_unregister_handle +EXPORT_SYMBOL vmlinux 0x06b74332 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x06b8a3d1 devm_devfreq_register_opp_notifier EXPORT_SYMBOL vmlinux 0x06bd88b5 ucs2_strnlen +EXPORT_SYMBOL vmlinux 0x06cdb710 mr_dump EXPORT_SYMBOL vmlinux 0x06d11488 __bitmap_equal -EXPORT_SYMBOL vmlinux 0x06d2df7c __vfs_setxattr -EXPORT_SYMBOL vmlinux 0x06e11840 xfrm4_protocol_deregister -EXPORT_SYMBOL vmlinux 0x06e2806c uart_write_wakeup -EXPORT_SYMBOL vmlinux 0x06f89f31 __netif_napi_del -EXPORT_SYMBOL vmlinux 0x07060ad6 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x06de92f5 pci_write_config_byte +EXPORT_SYMBOL vmlinux 0x06f8a5bf dquot_get_next_id +EXPORT_SYMBOL vmlinux 0x06f8d2ad inode_to_bdi +EXPORT_SYMBOL vmlinux 0x06f92dd3 flow_rule_match_meta EXPORT_SYMBOL vmlinux 0x07098248 xz_dec_microlzma_alloc +EXPORT_SYMBOL vmlinux 0x07103e7e md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x0714fae6 dquot_writeback_dquots EXPORT_SYMBOL vmlinux 0x071d2690 _atomic_dec_and_lock -EXPORT_SYMBOL vmlinux 0x072b4210 neigh_direct_output -EXPORT_SYMBOL vmlinux 0x072c9e6c netif_device_detach -EXPORT_SYMBOL vmlinux 0x072f0aa6 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x072e92bf page_pool_put_page_bulk EXPORT_SYMBOL vmlinux 0x072f901c vme_master_rmw EXPORT_SYMBOL vmlinux 0x072fc6ea _raw_write_unlock_irqrestore -EXPORT_SYMBOL vmlinux 0x0738d8b3 mmc_cqe_start_req -EXPORT_SYMBOL vmlinux 0x074ff74d kernel_recvmsg -EXPORT_SYMBOL vmlinux 0x0752c42a tty_port_close_start -EXPORT_SYMBOL vmlinux 0x07781ed8 mnt_drop_write_file -EXPORT_SYMBOL vmlinux 0x07793068 vlan_ioctl_set -EXPORT_SYMBOL vmlinux 0x078df036 proc_symlink -EXPORT_SYMBOL vmlinux 0x0790ad8a __mdiobus_c45_read +EXPORT_SYMBOL vmlinux 0x073bbaa6 nexthop_res_grp_activity_update +EXPORT_SYMBOL vmlinux 0x0742b70f dev_get_iflink EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap -EXPORT_SYMBOL vmlinux 0x07c87d0d nd_btt_probe +EXPORT_SYMBOL vmlinux 0x07bce9bc skb_copy_expand EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit -EXPORT_SYMBOL vmlinux 0x07e779fd crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x07d346a4 get_thermal_instance EXPORT_SYMBOL vmlinux 0x07eab2c3 set_groups +EXPORT_SYMBOL vmlinux 0x07ece748 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x07edf8be kmem_cache_alloc_lru EXPORT_SYMBOL vmlinux 0x07f57478 pci_unmap_iospace +EXPORT_SYMBOL vmlinux 0x07f5a797 mr_mfc_seq_idx +EXPORT_SYMBOL vmlinux 0x07f63b34 phy_reset_after_clk_enable EXPORT_SYMBOL vmlinux 0x07fa445d trace_print_symbols_seq EXPORT_SYMBOL vmlinux 0x0800473f __cond_resched -EXPORT_SYMBOL vmlinux 0x0800622c of_find_device_by_node EXPORT_SYMBOL vmlinux 0x0805f2c8 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0x0807d86b input_open_device +EXPORT_SYMBOL vmlinux 0x0808c617 clean_bdev_aliases EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses -EXPORT_SYMBOL vmlinux 0x08332a5b __ClearPageMovable EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister -EXPORT_SYMBOL vmlinux 0x08547dd4 phy_validate_pause -EXPORT_SYMBOL vmlinux 0x0854e5fb jbd2_journal_inode_ranged_wait -EXPORT_SYMBOL vmlinux 0x0854ff78 tls_handshake_cancel +EXPORT_SYMBOL vmlinux 0x0857643d tcf_exts_destroy EXPORT_SYMBOL vmlinux 0x0870efe3 jent_testing_exit -EXPORT_SYMBOL vmlinux 0x0890246e generic_file_readonly_mmap -EXPORT_SYMBOL vmlinux 0x08908b34 tcf_action_update_hw_stats -EXPORT_SYMBOL vmlinux 0x089adffa __traceiter_mmap_lock_acquire_returned -EXPORT_SYMBOL vmlinux 0x08afad13 page_pool_put_defragged_page -EXPORT_SYMBOL vmlinux 0x08c3e3fd of_get_next_parent -EXPORT_SYMBOL vmlinux 0x08ce67ec xp_alloc -EXPORT_SYMBOL vmlinux 0x08e32e3c mdiobus_get_phy -EXPORT_SYMBOL vmlinux 0x08f77f8e eth_header -EXPORT_SYMBOL vmlinux 0x09178c53 skb_splice_from_iter -EXPORT_SYMBOL vmlinux 0x09211695 ethtool_rx_flow_rule_create +EXPORT_SYMBOL vmlinux 0x087e0c21 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x0888fc58 put_fs_context +EXPORT_SYMBOL vmlinux 0x088c430b dma_resv_init +EXPORT_SYMBOL vmlinux 0x08a7f656 dma_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x08c89d95 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x08dda41e dst_release +EXPORT_SYMBOL vmlinux 0x08e58808 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x08e9c902 qdisc_watchdog_init_clockid +EXPORT_SYMBOL vmlinux 0x08e9e144 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x08fcde5b phy_modify_paged_changed +EXPORT_SYMBOL vmlinux 0x091ee949 tcp_rcv_established EXPORT_SYMBOL vmlinux 0x092e26bf acpi_remove_address_space_handler EXPORT_SYMBOL vmlinux 0x093712e5 acpi_purge_cached_objects -EXPORT_SYMBOL vmlinux 0x09404d6d page_get_link -EXPORT_SYMBOL vmlinux 0x094207ae clean_bdev_aliases -EXPORT_SYMBOL vmlinux 0x0955bb9e __alloc_skb -EXPORT_SYMBOL vmlinux 0x09599861 skb_copy_header -EXPORT_SYMBOL vmlinux 0x09670160 serio_interrupt -EXPORT_SYMBOL vmlinux 0x096849dd param_get_short -EXPORT_SYMBOL vmlinux 0x096aefb6 __zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0x09374b88 netdev_bind_sb_channel_queue +EXPORT_SYMBOL vmlinux 0x095d9f2a devm_release_resource +EXPORT_SYMBOL vmlinux 0x0962e6cd __blk_alloc_disk +EXPORT_SYMBOL vmlinux 0x096436bd mmc_can_discard EXPORT_SYMBOL vmlinux 0x09769037 dmt_modes -EXPORT_SYMBOL vmlinux 0x098b0756 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x098873eb netdev_has_upper_dev EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap -EXPORT_SYMBOL vmlinux 0x0997113d phy_do_ioctl -EXPORT_SYMBOL vmlinux 0x099c4ab0 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x0997d0f0 __lock_sock_fast +EXPORT_SYMBOL vmlinux 0x0999f050 __dec_zone_page_state EXPORT_SYMBOL vmlinux 0x09a34a2b crc_itu_t -EXPORT_SYMBOL vmlinux 0x09b54550 devfreq_get_freq_range +EXPORT_SYMBOL vmlinux 0x09ab14bb ppp_channel_index EXPORT_SYMBOL vmlinux 0x09bd5dbb finish_wait -EXPORT_SYMBOL vmlinux 0x09c4bb76 lookup_one_len_unlocked -EXPORT_SYMBOL vmlinux 0x09cab9bf __ip_options_compile EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions -EXPORT_SYMBOL vmlinux 0x09e99021 __bh_read_batch +EXPORT_SYMBOL vmlinux 0x09f12243 inet_listen EXPORT_SYMBOL vmlinux 0x0a012f73 mb_cache_entry_touch -EXPORT_SYMBOL vmlinux 0x0a02590d locks_free_lock -EXPORT_SYMBOL vmlinux 0x0a027dac __sock_create -EXPORT_SYMBOL vmlinux 0x0a0881b1 icmp_ndo_send +EXPORT_SYMBOL vmlinux 0x0a08da37 vga_remove_vgacon EXPORT_SYMBOL vmlinux 0x0a1e8769 utf8_casefold_hash -EXPORT_SYMBOL vmlinux 0x0a3a5aa4 sock_init_data_uid -EXPORT_SYMBOL vmlinux 0x0a500641 bdi_register -EXPORT_SYMBOL vmlinux 0x0a5def12 skb_checksum_setup -EXPORT_SYMBOL vmlinux 0x0a6374af simple_dentry_operations -EXPORT_SYMBOL vmlinux 0x0a6fdf81 filp_open +EXPORT_SYMBOL vmlinux 0x0a2ad180 input_set_min_poll_interval +EXPORT_SYMBOL vmlinux 0x0a47e542 mmc_cqe_start_req +EXPORT_SYMBOL vmlinux 0x0a49455e inet_csk_reqsk_queue_drop_and_put +EXPORT_SYMBOL vmlinux 0x0a6bd1f7 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x0a746ab7 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x0a846222 vm_iomap_memory EXPORT_SYMBOL vmlinux 0x0a84b15d zstd_init_cctx EXPORT_SYMBOL vmlinux 0x0a8782a8 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x0a8a9805 scsi_print_result +EXPORT_SYMBOL vmlinux 0x0a986e45 elv_rb_former_request EXPORT_SYMBOL vmlinux 0x0aa309cf synchronize_hardirq +EXPORT_SYMBOL vmlinux 0x0aa8372c __sk_queue_drop_skb EXPORT_SYMBOL vmlinux 0x0aaccc92 pci_remap_iospace -EXPORT_SYMBOL vmlinux 0x0aba7fca simple_nosetlease -EXPORT_SYMBOL vmlinux 0x0ac3bdd7 touchscreen_parse_properties +EXPORT_SYMBOL vmlinux 0x0aad8f69 twl6040_set_bits EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all -EXPORT_SYMBOL vmlinux 0x0af3aa3f vfs_get_link -EXPORT_SYMBOL vmlinux 0x0affc82b i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x0b0c6379 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x0b0f8136 simple_setattr +EXPORT_SYMBOL vmlinux 0x0b1137ec input_register_handle EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b1c022a mntput EXPORT_SYMBOL vmlinux 0x0b26b8c8 acpi_run_osc -EXPORT_SYMBOL vmlinux 0x0b377e97 sock_common_getsockopt -EXPORT_SYMBOL vmlinux 0x0b5cdfa9 genl_unregister_family -EXPORT_SYMBOL vmlinux 0x0b6fb5bf pcie_bandwidth_available +EXPORT_SYMBOL vmlinux 0x0b40bd2d tc_setup_cb_call +EXPORT_SYMBOL vmlinux 0x0b58f854 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x0b6db7e4 pci_claim_resource EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol -EXPORT_SYMBOL vmlinux 0x0b8ea15b mmc_retune_pause -EXPORT_SYMBOL vmlinux 0x0b8f93d1 netdev_adjacent_change_commit -EXPORT_SYMBOL vmlinux 0x0b9f2314 fscrypt_encrypt_block_inplace +EXPORT_SYMBOL vmlinux 0x0b7602c1 __quota_error +EXPORT_SYMBOL vmlinux 0x0b83b9ee mdiobus_unregister_device +EXPORT_SYMBOL vmlinux 0x0b881eb9 register_md_personality +EXPORT_SYMBOL vmlinux 0x0b8d68f1 __phy_read_mmd +EXPORT_SYMBOL vmlinux 0x0b94aff6 iov_iter_get_pages_alloc2 +EXPORT_SYMBOL vmlinux 0x0b996d26 mr_table_alloc +EXPORT_SYMBOL vmlinux 0x0b9f0ae5 rtnl_create_link EXPORT_SYMBOL vmlinux 0x0ba0b938 vm_brk -EXPORT_SYMBOL vmlinux 0x0ba6bfa1 key_task_permission -EXPORT_SYMBOL vmlinux 0x0ba8fa0c jbd2_journal_start_reserved -EXPORT_SYMBOL vmlinux 0x0bb06159 __starget_for_each_device -EXPORT_SYMBOL vmlinux 0x0bb2e2a4 eth_platform_get_mac_address -EXPORT_SYMBOL vmlinux 0x0bb3da01 console_stop +EXPORT_SYMBOL vmlinux 0x0bab3799 follow_up +EXPORT_SYMBOL vmlinux 0x0bba0438 uart_remove_one_port EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type -EXPORT_SYMBOL vmlinux 0x0bced045 md_bitmap_unplug_async -EXPORT_SYMBOL vmlinux 0x0bd30dd2 xfrm_find_acq_byseq EXPORT_SYMBOL vmlinux 0x0bd394d8 tty_termios_baud_rate EXPORT_SYMBOL vmlinux 0x0bd8a00f dma_fence_match_context -EXPORT_SYMBOL vmlinux 0x0bdb135b iget5_locked -EXPORT_SYMBOL vmlinux 0x0bdb4bbb ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x0bde25ed __netif_schedule EXPORT_SYMBOL vmlinux 0x0be0c6fe pgtable_l4_enabled -EXPORT_SYMBOL vmlinux 0x0bef068a flow_rule_match_ip +EXPORT_SYMBOL vmlinux 0x0be51a23 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x0be9c64f genphy_read_master_slave +EXPORT_SYMBOL vmlinux 0x0bec517e user_path_at_empty EXPORT_SYMBOL vmlinux 0x0bf0e4a2 __SCK__tp_func_spi_transfer_stop -EXPORT_SYMBOL vmlinux 0x0bf4b738 unregister_nexthop_notifier +EXPORT_SYMBOL vmlinux 0x0bf2e69e __mdiobus_c45_read EXPORT_SYMBOL vmlinux 0x0bfc1d1a check_zeroed_user +EXPORT_SYMBOL vmlinux 0x0c0376b8 sock_set_rcvbuf +EXPORT_SYMBOL vmlinux 0x0c0b16de memory_cgrp_subsys EXPORT_SYMBOL vmlinux 0x0c25ec48 secure_tcpv6_seq -EXPORT_SYMBOL vmlinux 0x0c288d61 netdev_set_num_tc -EXPORT_SYMBOL vmlinux 0x0c2e09a1 phy_ethtool_ksettings_get -EXPORT_SYMBOL vmlinux 0x0c4afd3d twl6040_set_pll -EXPORT_SYMBOL vmlinux 0x0c504ae2 devm_extcon_register_notifier_all -EXPORT_SYMBOL vmlinux 0x0c56c646 uart_match_port +EXPORT_SYMBOL vmlinux 0x0c34995a scsi_host_busy +EXPORT_SYMBOL vmlinux 0x0c44383c kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x0c5f9077 ip6_output EXPORT_SYMBOL vmlinux 0x0c6bdc3f vme_master_read -EXPORT_SYMBOL vmlinux 0x0c7351e9 pci_bus_type -EXPORT_SYMBOL vmlinux 0x0c855e8c devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0x0c771ab5 vc_resize +EXPORT_SYMBOL vmlinux 0x0c7e25b7 sg_alloc_append_table_from_pages +EXPORT_SYMBOL vmlinux 0x0c99a003 d_splice_alias +EXPORT_SYMBOL vmlinux 0x0c9c7226 fsync_bdev EXPORT_SYMBOL vmlinux 0x0cb11bc7 __SCK__tp_func_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x0cb3b761 iov_iter_revert EXPORT_SYMBOL vmlinux 0x0cc4b4b6 crc_ccitt_false -EXPORT_SYMBOL vmlinux 0x0cccfb1b qdisc_watchdog_init_clockid +EXPORT_SYMBOL vmlinux 0x0cd04ab7 xfrm_input EXPORT_SYMBOL vmlinux 0x0cd5835b ipv6_flowlabel_exclusive -EXPORT_SYMBOL vmlinux 0x0cd91b85 tcp_ld_RTO_revert -EXPORT_SYMBOL vmlinux 0x0cda23e0 crypto_kdf108_ctr_generate EXPORT_SYMBOL vmlinux 0x0cdce87c rfkill_set_hw_state_reason -EXPORT_SYMBOL vmlinux 0x0ce7e936 free_cgroup_ns -EXPORT_SYMBOL vmlinux 0x0cf80c68 tty_write_room +EXPORT_SYMBOL vmlinux 0x0cf729ff trace_event_printf EXPORT_SYMBOL vmlinux 0x0d07f543 get_anon_bdev -EXPORT_SYMBOL vmlinux 0x0d2f0c43 i2c_transfer +EXPORT_SYMBOL vmlinux 0x0d0b7aa6 netif_skb_features +EXPORT_SYMBOL vmlinux 0x0d27fe37 input_reset_device +EXPORT_SYMBOL vmlinux 0x0d311b1b skb_checksum_setup EXPORT_SYMBOL vmlinux 0x0d333b64 zstd_end_stream -EXPORT_SYMBOL vmlinux 0x0d3bd60b phy_free_interrupt -EXPORT_SYMBOL vmlinux 0x0d4023a6 xp_raw_get_dma EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type -EXPORT_SYMBOL vmlinux 0x0d60bcb4 seg6_hmac_info_lookup -EXPORT_SYMBOL vmlinux 0x0d728f7f dquot_quota_off -EXPORT_SYMBOL vmlinux 0x0d7962df request_key_rcu -EXPORT_SYMBOL vmlinux 0x0d7c2b69 file_write_and_wait_range -EXPORT_SYMBOL vmlinux 0x0d8e6ec4 unregister_mii_tstamp_controller -EXPORT_SYMBOL vmlinux 0x0d931d24 proto_register -EXPORT_SYMBOL vmlinux 0x0d99e41c tcf_exts_terse_dump -EXPORT_SYMBOL vmlinux 0x0dc7d9a7 watchdog_unregister_governor -EXPORT_SYMBOL vmlinux 0x0dcb828d pci_save_state -EXPORT_SYMBOL vmlinux 0x0de210f4 make_bad_inode -EXPORT_SYMBOL vmlinux 0x0e028f18 ptp_find_pin_unlocked +EXPORT_SYMBOL vmlinux 0x0d5c1cd9 truncate_inode_pages_final +EXPORT_SYMBOL vmlinux 0x0d6b633e vfs_parse_fs_param_source +EXPORT_SYMBOL vmlinux 0x0d7f2682 param_get_dyndbg_classes +EXPORT_SYMBOL vmlinux 0x0d8617d5 reuseport_add_sock +EXPORT_SYMBOL vmlinux 0x0dad03da crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x0dc37622 netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0x0e043cee scsi_device_lookup_by_target EXPORT_SYMBOL vmlinux 0x0e17678a siphash_4u64 -EXPORT_SYMBOL vmlinux 0x0e19e8d6 mmc_get_card +EXPORT_SYMBOL vmlinux 0x0e1f5739 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x0e2ddfef ipmi_platform_add +EXPORT_SYMBOL vmlinux 0x0e356d8c __mmap_lock_do_trace_start_locking +EXPORT_SYMBOL vmlinux 0x0e3b8056 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x0e40e0dd unregister_tcf_proto_ops EXPORT_SYMBOL vmlinux 0x0e4262c6 __siphash_unaligned -EXPORT_SYMBOL vmlinux 0x0e5a4504 simple_setattr -EXPORT_SYMBOL vmlinux 0x0e6de6c5 eth_gro_complete -EXPORT_SYMBOL vmlinux 0x0e73aa88 skb_find_text -EXPORT_SYMBOL vmlinux 0x0e7ca8f0 netdev_lower_dev_get_private -EXPORT_SYMBOL vmlinux 0x0e825e33 param_get_charp -EXPORT_SYMBOL vmlinux 0x0ea06eeb rc5t583_ext_power_req_config -EXPORT_SYMBOL vmlinux 0x0ea0dfef dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x0e45e486 __seq_open_private +EXPORT_SYMBOL vmlinux 0x0e4e04f0 qdisc_hash_add +EXPORT_SYMBOL vmlinux 0x0e60af93 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x0e60c488 __skb_recv_udp +EXPORT_SYMBOL vmlinux 0x0e70fda4 of_graph_parse_endpoint +EXPORT_SYMBOL vmlinux 0x0e79daee dm_unregister_target +EXPORT_SYMBOL vmlinux 0x0e7bc36f md_reload_sb +EXPORT_SYMBOL vmlinux 0x0e87c796 skb_pull_data +EXPORT_SYMBOL vmlinux 0x0e8bbbe6 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0x0e8d5329 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x0e98a180 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x0e9a3d24 fb_get_buffer_offset EXPORT_SYMBOL vmlinux 0x0ea3c74e tasklet_kill EXPORT_SYMBOL vmlinux 0x0ea593f6 hdmi_drm_infoframe_init +EXPORT_SYMBOL vmlinux 0x0eaa1e5b jbd2_journal_flush EXPORT_SYMBOL vmlinux 0x0eadf51e gen_new_estimator -EXPORT_SYMBOL vmlinux 0x0eb107bb remap_pfn_range EXPORT_SYMBOL vmlinux 0x0eb6eb87 add_taint EXPORT_SYMBOL vmlinux 0x0ec5babe vme_dma_free -EXPORT_SYMBOL vmlinux 0x0ed4a771 netdev_set_tc_queue -EXPORT_SYMBOL vmlinux 0x0edbfcdb pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x0ec6ee17 md_handle_request +EXPORT_SYMBOL vmlinux 0x0ec74f3c insert_inode_locked +EXPORT_SYMBOL vmlinux 0x0ec7b2c1 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x0edfa3fe xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x0eeb9d34 devm_mfd_add_devices EXPORT_SYMBOL vmlinux 0x0f09cc34 schedule_timeout_killable -EXPORT_SYMBOL vmlinux 0x0f0c7c3d __scm_destroy -EXPORT_SYMBOL vmlinux 0x0f13a380 tty_name EXPORT_SYMBOL vmlinux 0x0f1ad8e2 seq_list_start_rcu -EXPORT_SYMBOL vmlinux 0x0f1ea551 __sock_queue_rcv_skb -EXPORT_SYMBOL vmlinux 0x0f308123 udp_prot -EXPORT_SYMBOL vmlinux 0x0f3744a0 nf_unregister_sockopt -EXPORT_SYMBOL vmlinux 0x0f5451fe cdrom_release -EXPORT_SYMBOL vmlinux 0x0f6232fc register_md_personality -EXPORT_SYMBOL vmlinux 0x0f6c2234 param_get_byte -EXPORT_SYMBOL vmlinux 0x0f719f62 of_chosen -EXPORT_SYMBOL vmlinux 0x0f7339f9 empty_aops -EXPORT_SYMBOL vmlinux 0x0f773468 __f_setown +EXPORT_SYMBOL vmlinux 0x0f2e0d5b phy_do_ioctl_running +EXPORT_SYMBOL vmlinux 0x0f4ac0ed cdrom_check_events +EXPORT_SYMBOL vmlinux 0x0f582c70 gpiochip_irq_reqres +EXPORT_SYMBOL vmlinux 0x0f64178e jbd2_journal_grab_journal_head +EXPORT_SYMBOL vmlinux 0x0f66acc4 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x0f6b0ebf of_find_compatible_node +EXPORT_SYMBOL vmlinux 0x0f806b95 param_set_copystring EXPORT_SYMBOL vmlinux 0x0f811fc7 jent_raw_hires_entropy_store EXPORT_SYMBOL vmlinux 0x0f86f560 kthread_delayed_work_timer_fn -EXPORT_SYMBOL vmlinux 0x0fa53dcd dput +EXPORT_SYMBOL vmlinux 0x0f96504f security_dentry_init_security +EXPORT_SYMBOL vmlinux 0x0f9b7ab8 of_graph_get_next_endpoint +EXPORT_SYMBOL vmlinux 0x0fa0d774 xp_dma_unmap EXPORT_SYMBOL vmlinux 0x0fa73f3b complete -EXPORT_SYMBOL vmlinux 0x0fa75f59 dec_zone_page_state -EXPORT_SYMBOL vmlinux 0x0fab1820 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x0fa7755c mipi_dsi_dcs_set_display_off EXPORT_SYMBOL vmlinux 0x0fab1ab0 hdmi_spd_infoframe_pack EXPORT_SYMBOL vmlinux 0x0fb2f8a4 mktime64 -EXPORT_SYMBOL vmlinux 0x0fc160e5 lookup_one -EXPORT_SYMBOL vmlinux 0x0fc30e17 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x0fbc7d15 km_new_mapping +EXPORT_SYMBOL vmlinux 0x0fc8e75b scsi_done_direct +EXPORT_SYMBOL vmlinux 0x0fd512c8 input_set_keycode +EXPORT_SYMBOL vmlinux 0x0fd80374 pci_reenable_device EXPORT_SYMBOL vmlinux 0x0fd902db mb_cache_entry_create +EXPORT_SYMBOL vmlinux 0x0fdd61d4 mipi_dsi_host_register EXPORT_SYMBOL vmlinux 0x0fdfb1e4 sbi_remote_hfence_gvma_vmid +EXPORT_SYMBOL vmlinux 0x0fe56272 __blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x0fe918e5 fqdir_exit +EXPORT_SYMBOL vmlinux 0x0fe9f465 sock_enable_timestamps +EXPORT_SYMBOL vmlinux 0x0feb2b93 blk_rq_map_user EXPORT_SYMBOL vmlinux 0x0ff6c40c mutex_lock_killable EXPORT_SYMBOL vmlinux 0x0ffb6a31 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x0ffbca27 devm_devfreq_unregister_opp_notifier +EXPORT_SYMBOL vmlinux 0x0ffd8c7d i2c_transfer_buffer_flags EXPORT_SYMBOL vmlinux 0x0fff5afc time64_to_tm -EXPORT_SYMBOL vmlinux 0x1011f3a4 devfreq_monitor_start -EXPORT_SYMBOL vmlinux 0x101204f7 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x101e3cf1 blk_queue_alignment_offset EXPORT_SYMBOL vmlinux 0x1035c7c2 __release_region -EXPORT_SYMBOL vmlinux 0x103a0293 __traceiter_kmem_cache_alloc -EXPORT_SYMBOL vmlinux 0x103b5aa5 fb_validate_mode -EXPORT_SYMBOL vmlinux 0x10448f14 pcie_capability_clear_and_set_word_unlocked -EXPORT_SYMBOL vmlinux 0x104dc7ec file_modified -EXPORT_SYMBOL vmlinux 0x104f0c64 get_cached_acl EXPORT_SYMBOL vmlinux 0x1057a279 bsearch EXPORT_SYMBOL vmlinux 0x1057e5ef down_read_interruptible -EXPORT_SYMBOL vmlinux 0x106338cb xfrm_lookup -EXPORT_SYMBOL vmlinux 0x1064263b fs_param_is_u64 -EXPORT_SYMBOL vmlinux 0x1067be1f security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x1059b8c6 do_clone_file_range EXPORT_SYMBOL vmlinux 0x1068004b gf128mul_bbe -EXPORT_SYMBOL vmlinux 0x10771da4 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x1068037f empty_aops EXPORT_SYMBOL vmlinux 0x107e5878 zlib_inflateEnd -EXPORT_SYMBOL vmlinux 0x10a28e02 dentry_path_raw -EXPORT_SYMBOL vmlinux 0x10aa26cd set_posix_acl +EXPORT_SYMBOL vmlinux 0x108d897e kthread_create_worker +EXPORT_SYMBOL vmlinux 0x109705aa prepare_to_swait_event +EXPORT_SYMBOL vmlinux 0x109ba9ba xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x10c22eea input_get_keycode +EXPORT_SYMBOL vmlinux 0x10c23551 register_mii_timestamper EXPORT_SYMBOL vmlinux 0x10d9f885 scsi_sense_desc_find -EXPORT_SYMBOL vmlinux 0x10da8031 dquot_alloc_inode -EXPORT_SYMBOL vmlinux 0x10dc16a3 clkdev_drop EXPORT_SYMBOL vmlinux 0x10e6f74a free_contig_range EXPORT_SYMBOL vmlinux 0x10f3a5a8 gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0x10f536dd pci_enable_atomic_ops_to_root +EXPORT_SYMBOL vmlinux 0x11046eba __f_setown EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype -EXPORT_SYMBOL vmlinux 0x1112baab napi_gro_receive -EXPORT_SYMBOL vmlinux 0x113d2cb9 pnp_register_card_driver -EXPORT_SYMBOL vmlinux 0x113e17ff xfrm_sad_getinfo -EXPORT_SYMBOL vmlinux 0x114b03d4 sk_filter_trim_cap -EXPORT_SYMBOL vmlinux 0x1150cd25 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x110bbcea max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x1116cdb3 seq_release +EXPORT_SYMBOL vmlinux 0x11223ab2 secpath_set +EXPORT_SYMBOL vmlinux 0x113cb582 pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0x1151cbde of_device_get_match_data +EXPORT_SYMBOL vmlinux 0x1153ffaa __of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x115485ed devm_ioremap_wc EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init -EXPORT_SYMBOL vmlinux 0x117a1b62 dev_set_allmulti -EXPORT_SYMBOL vmlinux 0x119e5f37 fqdir_init -EXPORT_SYMBOL vmlinux 0x11cecda8 i2c_smbus_write_byte -EXPORT_SYMBOL vmlinux 0x11e15651 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x11800405 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x119425a9 skb_clone_sk +EXPORT_SYMBOL vmlinux 0x11969504 get_mem_cgroup_from_mm +EXPORT_SYMBOL vmlinux 0x11e12246 seq_put_decimal_ll EXPORT_SYMBOL vmlinux 0x11e30762 chacha_block_generic -EXPORT_SYMBOL vmlinux 0x11e7fdd9 of_find_compatible_node -EXPORT_SYMBOL vmlinux 0x11f9ec2a qdisc_tree_reduce_backlog -EXPORT_SYMBOL vmlinux 0x11fcee81 of_device_get_match_data EXPORT_SYMBOL vmlinux 0x11ffba5c wait_for_completion_state -EXPORT_SYMBOL vmlinux 0x1200d32b netdev_state_change +EXPORT_SYMBOL vmlinux 0x120396f9 mfd_remove_devices_late EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented -EXPORT_SYMBOL vmlinux 0x12300029 netdev_alert -EXPORT_SYMBOL vmlinux 0x123359e2 update_devfreq +EXPORT_SYMBOL vmlinux 0x12333726 neigh_xmit EXPORT_SYMBOL vmlinux 0x123ca882 prepare_to_wait +EXPORT_SYMBOL vmlinux 0x124123d8 napi_gro_flush EXPORT_SYMBOL vmlinux 0x124bad4d kstrtobool -EXPORT_SYMBOL vmlinux 0x1258d9cd input_free_device -EXPORT_SYMBOL vmlinux 0x125d3442 pnp_start_dev -EXPORT_SYMBOL vmlinux 0x1270d928 __wait_on_buffer -EXPORT_SYMBOL vmlinux 0x127c8c0a skb_push +EXPORT_SYMBOL vmlinux 0x126417fa phy_attach +EXPORT_SYMBOL vmlinux 0x12653fb8 pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0x126e04c2 neigh_app_ns EXPORT_SYMBOL vmlinux 0x127d83ea security_locked_down -EXPORT_SYMBOL vmlinux 0x1280f5d5 mmc_card_alternative_gpt_sector -EXPORT_SYMBOL vmlinux 0x1283a742 xfrm_state_free EXPORT_SYMBOL vmlinux 0x128d07f0 _raw_spin_unlock_bh -EXPORT_SYMBOL vmlinux 0x12c1dd16 napi_consume_skb +EXPORT_SYMBOL vmlinux 0x12b7fc91 blk_rq_init +EXPORT_SYMBOL vmlinux 0x12b82bfa sock_alloc EXPORT_SYMBOL vmlinux 0x12cabc89 siphash_2u64 -EXPORT_SYMBOL vmlinux 0x12ced5ee tcp_sock_set_nodelay EXPORT_SYMBOL vmlinux 0x12d7f9ce kset_unregister -EXPORT_SYMBOL vmlinux 0x12e0f201 param_get_hexint -EXPORT_SYMBOL vmlinux 0x12ea0dd1 is_bad_inode +EXPORT_SYMBOL vmlinux 0x12ddccc0 dev_set_mac_address EXPORT_SYMBOL vmlinux 0x12f6f69c fb_videomode_to_var -EXPORT_SYMBOL vmlinux 0x12fb70aa dma_resv_replace_fences -EXPORT_SYMBOL vmlinux 0x1302bf8d phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0x1301ff23 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x13029bdd sg_miter_start +EXPORT_SYMBOL vmlinux 0x13058b0a i2c_del_adapter EXPORT_SYMBOL vmlinux 0x130afd75 acpi_get_sleep_type_data EXPORT_SYMBOL vmlinux 0x13110126 request_resource -EXPORT_SYMBOL vmlinux 0x13384a38 devfreq_register_opp_notifier -EXPORT_SYMBOL vmlinux 0x133d3ebe __tcp_md5_do_lookup -EXPORT_SYMBOL vmlinux 0x13428a0e dev_add_pack -EXPORT_SYMBOL vmlinux 0x134d82f9 brioctl_set -EXPORT_SYMBOL vmlinux 0x135feaa4 __invalidate_device -EXPORT_SYMBOL vmlinux 0x137db048 ethtool_aggregate_rmon_stats -EXPORT_SYMBOL vmlinux 0x139d3810 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x1318ccc7 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x1321a84e file_open_root +EXPORT_SYMBOL vmlinux 0x133e2374 of_cpu_node_to_id +EXPORT_SYMBOL vmlinux 0x134c992d unlock_new_inode +EXPORT_SYMBOL vmlinux 0x1357e99c mount_nodev +EXPORT_SYMBOL vmlinux 0x1358ae8c mini_qdisc_pair_swap +EXPORT_SYMBOL vmlinux 0x135c9f43 tcf_exts_validate_ex +EXPORT_SYMBOL vmlinux 0x136cc384 __ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x13910e57 pnp_register_card_driver EXPORT_SYMBOL vmlinux 0x139f2189 __kfifo_alloc -EXPORT_SYMBOL vmlinux 0x13a95a67 sock_init_data +EXPORT_SYMBOL vmlinux 0x13bc5dce mark_buffer_write_io_error +EXPORT_SYMBOL vmlinux 0x13c4506b dma_resv_replace_fences EXPORT_SYMBOL vmlinux 0x13c49cc2 _copy_from_user +EXPORT_SYMBOL vmlinux 0x13c9449e ps2_end_command EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out -EXPORT_SYMBOL vmlinux 0x13d7524f udp6_set_csum +EXPORT_SYMBOL vmlinux 0x13d0f8bb scsi_eh_restore_cmnd EXPORT_SYMBOL vmlinux 0x13d928f5 __SCK__tp_func_kmem_cache_alloc -EXPORT_SYMBOL vmlinux 0x13fdff00 fb_set_suspend -EXPORT_SYMBOL vmlinux 0x14002d39 mipi_dsi_dcs_get_display_brightness_large +EXPORT_SYMBOL vmlinux 0x13e846c0 fscrypt_decrypt_block_inplace +EXPORT_SYMBOL vmlinux 0x13f4c6b8 pci_release_region +EXPORT_SYMBOL vmlinux 0x13f7967b phy_get_eee_err +EXPORT_SYMBOL vmlinux 0x13f7a5fb mipi_dsi_dcs_set_tear_on +EXPORT_SYMBOL vmlinux 0x140c45c5 pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0x1411f548 scsi_command_normalize_sense EXPORT_SYMBOL vmlinux 0x141271bf acpi_dev_found -EXPORT_SYMBOL vmlinux 0x142b05f8 _dev_alert -EXPORT_SYMBOL vmlinux 0x1448e3a0 tcp_child_process -EXPORT_SYMBOL vmlinux 0x145e7a3f phy_request_interrupt -EXPORT_SYMBOL vmlinux 0x14601559 seq_read +EXPORT_SYMBOL vmlinux 0x1429edcb dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x143542c9 xfrm_input_register_afinfo +EXPORT_SYMBOL vmlinux 0x143aaa99 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x14484ed4 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x144ffebc dma_fence_describe EXPORT_SYMBOL vmlinux 0x14605535 dma_fence_context_alloc -EXPORT_SYMBOL vmlinux 0x1460ab38 netpoll_poll_dev EXPORT_SYMBOL vmlinux 0x146289b7 crc16_table -EXPORT_SYMBOL vmlinux 0x147e2364 sk_stream_wait_memory -EXPORT_SYMBOL vmlinux 0x14905482 close_fd_get_file +EXPORT_SYMBOL vmlinux 0x14677283 devfreq_unregister_opp_notifier +EXPORT_SYMBOL vmlinux 0x1469e6f2 sock_alloc_file +EXPORT_SYMBOL vmlinux 0x146f5507 block_write_begin +EXPORT_SYMBOL vmlinux 0x1472087a mem_cgroup_from_task +EXPORT_SYMBOL vmlinux 0x149204e8 netdev_adjacent_change_prepare +EXPORT_SYMBOL vmlinux 0x149437a4 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x1494e7f1 flow_block_cb_lookup EXPORT_SYMBOL vmlinux 0x14a64a87 acpi_install_address_space_handler_no_reg -EXPORT_SYMBOL vmlinux 0x14c55bbe setattr_copy +EXPORT_SYMBOL vmlinux 0x14b5582f param_set_ushort +EXPORT_SYMBOL vmlinux 0x14bcc8ca pci_read_vpd +EXPORT_SYMBOL vmlinux 0x14bd6eb3 dev_activate EXPORT_SYMBOL vmlinux 0x14c67e3e tcp_tx_delay_enabled +EXPORT_SYMBOL vmlinux 0x14ceb066 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x14cf08a5 of_mdio_find_device EXPORT_SYMBOL vmlinux 0x14d7477f console_list_unlock -EXPORT_SYMBOL vmlinux 0x14e0e9b6 tcf_em_tree_destroy -EXPORT_SYMBOL vmlinux 0x14ec86f3 devm_of_iomap -EXPORT_SYMBOL vmlinux 0x14f019a4 kfree_skb_partial -EXPORT_SYMBOL vmlinux 0x14f7a581 sync_inodes_sb -EXPORT_SYMBOL vmlinux 0x14fa454b xsk_tx_completed -EXPORT_SYMBOL vmlinux 0x151f1148 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x14f2ba77 freeze_super +EXPORT_SYMBOL vmlinux 0x14fc605f of_count_phandle_with_args +EXPORT_SYMBOL vmlinux 0x15141eb4 blkdev_issue_flush EXPORT_SYMBOL vmlinux 0x151f4898 schedule_timeout_uninterruptible -EXPORT_SYMBOL vmlinux 0x15203f75 trace_event_printf +EXPORT_SYMBOL vmlinux 0x15207fb3 xfrm_state_lookup_byaddr EXPORT_SYMBOL vmlinux 0x1526b301 unix_tot_inflight -EXPORT_SYMBOL vmlinux 0x1530f648 flow_rule_match_enc_ipv6_addrs -EXPORT_SYMBOL vmlinux 0x15445d56 do_splice_direct +EXPORT_SYMBOL vmlinux 0x1535777a sunxi_sram_claim EXPORT_SYMBOL vmlinux 0x1548d970 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x154923ab may_umount_tree EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy -EXPORT_SYMBOL vmlinux 0x1554a912 __ip_dev_find -EXPORT_SYMBOL vmlinux 0x15593d86 sock_no_sendmsg -EXPORT_SYMBOL vmlinux 0x1567dd06 filemap_dirty_folio -EXPORT_SYMBOL vmlinux 0x15735529 pci_alloc_irq_vectors -EXPORT_SYMBOL vmlinux 0x15794845 scsi_print_sense -EXPORT_SYMBOL vmlinux 0x157deda6 mr_mfc_find_any_parent -EXPORT_SYMBOL vmlinux 0x15835971 generic_pipe_buf_release -EXPORT_SYMBOL vmlinux 0x15919af2 _copy_from_iter +EXPORT_SYMBOL vmlinux 0x1557606e netpoll_poll_disable +EXPORT_SYMBOL vmlinux 0x15588745 amba_device_unregister +EXPORT_SYMBOL vmlinux 0x15610420 md_bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x156bf64e param_ops_invbool +EXPORT_SYMBOL vmlinux 0x15887bc0 of_match_node EXPORT_SYMBOL vmlinux 0x159533e2 __xa_clear_mark -EXPORT_SYMBOL vmlinux 0x15994e0c pci_enable_link_state -EXPORT_SYMBOL vmlinux 0x15a382d4 fib6_info_hw_flags_set EXPORT_SYMBOL vmlinux 0x15a95ad9 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x15ae1c9d max8925_set_bits +EXPORT_SYMBOL vmlinux 0x15b1398d copy_splice_read EXPORT_SYMBOL vmlinux 0x15bafe29 unregister_md_cluster_operations +EXPORT_SYMBOL vmlinux 0x15bbefe0 i2c_find_adapter_by_fwnode EXPORT_SYMBOL vmlinux 0x15bed7a5 LZ4_decompress_safe_partial -EXPORT_SYMBOL vmlinux 0x15d2dd23 dev_set_mac_address_user +EXPORT_SYMBOL vmlinux 0x15c02ed3 pci_clear_master +EXPORT_SYMBOL vmlinux 0x15d240bf md_bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x15d519df of_node_get EXPORT_SYMBOL vmlinux 0x15db3b99 __cpu_active_mask +EXPORT_SYMBOL vmlinux 0x15db50bd nf_log_trace +EXPORT_SYMBOL vmlinux 0x15f1d8d6 jbd2_journal_revoke EXPORT_SYMBOL vmlinux 0x15f90688 slhc_init -EXPORT_SYMBOL vmlinux 0x1602858c submit_bio_noacct -EXPORT_SYMBOL vmlinux 0x16037f17 _dev_warn -EXPORT_SYMBOL vmlinux 0x160fcb04 pci_release_regions -EXPORT_SYMBOL vmlinux 0x16104eac of_graph_get_next_endpoint -EXPORT_SYMBOL vmlinux 0x1621e3e6 tcf_block_get +EXPORT_SYMBOL vmlinux 0x1623c25f twl6030_mmc_card_detect EXPORT_SYMBOL vmlinux 0x162893fd hashlen_string EXPORT_SYMBOL vmlinux 0x1632bc21 kvasprintf_const -EXPORT_SYMBOL vmlinux 0x16465eed dev_get_port_parent_id -EXPORT_SYMBOL vmlinux 0x1647ed46 tag_pages_for_writeback -EXPORT_SYMBOL vmlinux 0x164f0dea sys_imageblit -EXPORT_SYMBOL vmlinux 0x16584874 neigh_lookup -EXPORT_SYMBOL vmlinux 0x1675f13e netdev_notice -EXPORT_SYMBOL vmlinux 0x167a860c mmc_can_discard -EXPORT_SYMBOL vmlinux 0x167b922e single_open +EXPORT_SYMBOL vmlinux 0x1665e01e iget5_locked +EXPORT_SYMBOL vmlinux 0x166b2cc2 thaw_bdev +EXPORT_SYMBOL vmlinux 0x166c2637 __xfrm_state_destroy EXPORT_SYMBOL vmlinux 0x167c5967 print_hex_dump -EXPORT_SYMBOL vmlinux 0x168a834b input_unregister_handle -EXPORT_SYMBOL vmlinux 0x168bf943 md_bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x167f0105 phy_start_cable_test_tdr +EXPORT_SYMBOL vmlinux 0x1692be20 page_pool_get_stats +EXPORT_SYMBOL vmlinux 0x1696de13 amba_request_regions EXPORT_SYMBOL vmlinux 0x169938c1 __sysfs_match_string -EXPORT_SYMBOL vmlinux 0x169b29de mpage_readahead -EXPORT_SYMBOL vmlinux 0x16a0db87 folio_create_empty_buffers -EXPORT_SYMBOL vmlinux 0x16a51b97 phy_device_create EXPORT_SYMBOL vmlinux 0x16a7b16f __traceiter_kmalloc -EXPORT_SYMBOL vmlinux 0x16b6db4b inet_csk_complete_hashdance -EXPORT_SYMBOL vmlinux 0x16bf321d km_policy_expired -EXPORT_SYMBOL vmlinux 0x16c0a14b __neigh_set_probe_once EXPORT_SYMBOL vmlinux 0x16cdc340 acpi_get_table -EXPORT_SYMBOL vmlinux 0x16d5a0be netdev_adjacent_change_abort EXPORT_SYMBOL vmlinux 0x16e297c3 bit_wait +EXPORT_SYMBOL vmlinux 0x16e80cf6 xfrm4_rcv_encap EXPORT_SYMBOL vmlinux 0x16f01809 idr_get_next_ul -EXPORT_SYMBOL vmlinux 0x1706e91b pcie_ptm_enabled -EXPORT_SYMBOL vmlinux 0x17084cb4 redraw_screen +EXPORT_SYMBOL vmlinux 0x16f10d4a dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x16f2b923 from_kgid +EXPORT_SYMBOL vmlinux 0x1701b7ce flush_dcache_folio EXPORT_SYMBOL vmlinux 0x170ddf79 acpi_install_notify_handler -EXPORT_SYMBOL vmlinux 0x1718ad85 page_pool_alloc_pages -EXPORT_SYMBOL vmlinux 0x1719cb5f pcie_capability_read_dword -EXPORT_SYMBOL vmlinux 0x1723aadd of_clk_get -EXPORT_SYMBOL vmlinux 0x17307681 fwnode_get_mac_address +EXPORT_SYMBOL vmlinux 0x17238dae xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x172a79cc free_buffer_head EXPORT_SYMBOL vmlinux 0x173a4039 percpu_counter_sync -EXPORT_SYMBOL vmlinux 0x17556c5b pci_get_device +EXPORT_SYMBOL vmlinux 0x173cc701 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x1741c3f3 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x1758c340 scm_fp_dup EXPORT_SYMBOL vmlinux 0x175bc645 regset_get_alloc -EXPORT_SYMBOL vmlinux 0x175ce99c dev_mc_unsync -EXPORT_SYMBOL vmlinux 0x1772a0c5 scsi_block_requests -EXPORT_SYMBOL vmlinux 0x17867824 netdev_pick_tx -EXPORT_SYMBOL vmlinux 0x17b282b1 skb_prepare_seq_read -EXPORT_SYMBOL vmlinux 0x17b71849 flow_rule_match_meta -EXPORT_SYMBOL vmlinux 0x17d6fb11 scsi_remove_target -EXPORT_SYMBOL vmlinux 0x17dfc467 posix_lock_file +EXPORT_SYMBOL vmlinux 0x1760510b tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x1760b269 dma_resv_reserve_fences +EXPORT_SYMBOL vmlinux 0x176bf08b find_inode_by_ino_rcu +EXPORT_SYMBOL vmlinux 0x1786bed0 pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0x178b7389 cdev_alloc +EXPORT_SYMBOL vmlinux 0x17a98da3 __sock_create +EXPORT_SYMBOL vmlinux 0x17ab27d9 truncate_setsize +EXPORT_SYMBOL vmlinux 0x17b11221 kill_pid +EXPORT_SYMBOL vmlinux 0x17bd4ac3 tcf_idr_cleanup +EXPORT_SYMBOL vmlinux 0x17c17700 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x17eb463c bio_integrity_add_page EXPORT_SYMBOL vmlinux 0x17ebf542 lockref_get_not_dead -EXPORT_SYMBOL vmlinux 0x1809b091 tcp_conn_request -EXPORT_SYMBOL vmlinux 0x181213f1 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x181ba9c6 folio_wait_bit EXPORT_SYMBOL vmlinux 0x18345b8e __bitmap_replace -EXPORT_SYMBOL vmlinux 0x1862f256 fs_bio_set -EXPORT_SYMBOL vmlinux 0x1864ec84 qdisc_watchdog_cancel -EXPORT_SYMBOL vmlinux 0x1870e4b2 inode_init_owner -EXPORT_SYMBOL vmlinux 0x187b854e new_inode +EXPORT_SYMBOL vmlinux 0x183b950d sock_rfree +EXPORT_SYMBOL vmlinux 0x1843de22 udpv6_sendmsg +EXPORT_SYMBOL vmlinux 0x184415a5 devm_iounmap +EXPORT_SYMBOL vmlinux 0x185e3ec6 eth_get_headlen +EXPORT_SYMBOL vmlinux 0x18764644 netdev_name_in_use EXPORT_SYMBOL vmlinux 0x188ea314 jiffies_to_timespec64 -EXPORT_SYMBOL vmlinux 0x18912939 get_user_pages -EXPORT_SYMBOL vmlinux 0x18926568 get_tree_single -EXPORT_SYMBOL vmlinux 0x18948654 inode_nohighmem -EXPORT_SYMBOL vmlinux 0x18a62509 tcf_qevent_dump -EXPORT_SYMBOL vmlinux 0x18a7fa4a generic_file_direct_write -EXPORT_SYMBOL vmlinux 0x18bf99eb napi_schedule_prep -EXPORT_SYMBOL vmlinux 0x18c1873f mmc_gpiod_request_cd -EXPORT_SYMBOL vmlinux 0x18cd4c92 phy_ethtool_get_strings -EXPORT_SYMBOL vmlinux 0x18d26fd8 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x18b89d1f __d_lookup_unhash_wake +EXPORT_SYMBOL vmlinux 0x18ba598e finish_no_open +EXPORT_SYMBOL vmlinux 0x18c72a5a icmp6_send +EXPORT_SYMBOL vmlinux 0x18e01f48 gnet_stats_finish_copy EXPORT_SYMBOL vmlinux 0x18e60984 __do_once_start -EXPORT_SYMBOL vmlinux 0x18eb491d __netif_rx -EXPORT_SYMBOL vmlinux 0x18f980c8 netdev_offload_xstats_enable +EXPORT_SYMBOL vmlinux 0x18f4c11f nd_device_register +EXPORT_SYMBOL vmlinux 0x18fa0fb4 locks_free_lock +EXPORT_SYMBOL vmlinux 0x19126c1a register_md_cluster_operations EXPORT_SYMBOL vmlinux 0x19136cd2 radix_tree_iter_delete -EXPORT_SYMBOL vmlinux 0x1927a7ed __register_binfmt -EXPORT_SYMBOL vmlinux 0x1942c8d5 bio_chain -EXPORT_SYMBOL vmlinux 0x19564747 blk_pre_runtime_suspend -EXPORT_SYMBOL vmlinux 0x195ad562 bioset_exit -EXPORT_SYMBOL vmlinux 0x1963d6c1 vme_master_request -EXPORT_SYMBOL vmlinux 0x1976c1da dquot_load_quota_sb +EXPORT_SYMBOL vmlinux 0x19199e8c acpi_device_hid +EXPORT_SYMBOL vmlinux 0x19205feb neigh_event_ns +EXPORT_SYMBOL vmlinux 0x194f2218 amba_driver_unregister +EXPORT_SYMBOL vmlinux 0x1957297f devm_kvasprintf +EXPORT_SYMBOL vmlinux 0x195ce2b9 devm_arch_phys_wc_add +EXPORT_SYMBOL vmlinux 0x196ed177 set_anon_super_fc +EXPORT_SYMBOL vmlinux 0x19730250 _dev_alert +EXPORT_SYMBOL vmlinux 0x19778cd6 __ps2_command EXPORT_SYMBOL vmlinux 0x1984d421 out_of_line_wait_on_bit -EXPORT_SYMBOL vmlinux 0x1985e6bc netdev_port_same_parent_id -EXPORT_SYMBOL vmlinux 0x198cc144 elv_rb_latter_request -EXPORT_SYMBOL vmlinux 0x1994fb83 of_graph_get_port_by_id EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp -EXPORT_SYMBOL vmlinux 0x19a92526 pps_register_source EXPORT_SYMBOL vmlinux 0x19b19708 gen_pool_destroy EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec -EXPORT_SYMBOL vmlinux 0x19cad74e vfs_parse_fs_param -EXPORT_SYMBOL vmlinux 0x19f48c84 kmem_cache_size -EXPORT_SYMBOL vmlinux 0x19fe92d3 jbd2_fc_get_buf -EXPORT_SYMBOL vmlinux 0x1a2b4404 pci_read_config_dword -EXPORT_SYMBOL vmlinux 0x1a2e24a6 mdio_device_register +EXPORT_SYMBOL vmlinux 0x19d0769c inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x19d5532f lookup_one_qstr_excl +EXPORT_SYMBOL vmlinux 0x19f4f8d5 sock_gettstamp +EXPORT_SYMBOL vmlinux 0x1a29c3fc tcp_prot +EXPORT_SYMBOL vmlinux 0x1a2c3435 nd_region_acquire_lane +EXPORT_SYMBOL vmlinux 0x1a309ef0 eth_header_parse +EXPORT_SYMBOL vmlinux 0x1a3fe85e build_skb_around EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a524a70 unpin_user_pages_dirty_lock EXPORT_SYMBOL vmlinux 0x1a61a219 down_interruptible -EXPORT_SYMBOL vmlinux 0x1a6a2e13 qdisc_put_unlocked -EXPORT_SYMBOL vmlinux 0x1a76cb57 __devm_release_region -EXPORT_SYMBOL vmlinux 0x1a782904 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x1a66c8f0 take_dentry_name_snapshot +EXPORT_SYMBOL vmlinux 0x1a6c2378 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x1a7d5f75 inet_pton_with_scope +EXPORT_SYMBOL vmlinux 0x1a84c3e4 sock_wfree +EXPORT_SYMBOL vmlinux 0x1a8e9dfd tcf_idrinfo_destroy EXPORT_SYMBOL vmlinux 0x1a8ee7e9 radix_tree_iter_resume EXPORT_SYMBOL vmlinux 0x1a9a433c prandom_u32_state -EXPORT_SYMBOL vmlinux 0x1aa1bea0 iov_iter_init -EXPORT_SYMBOL vmlinux 0x1aa9d03e param_get_ulong +EXPORT_SYMBOL vmlinux 0x1aa437d6 udplite_prot +EXPORT_SYMBOL vmlinux 0x1aa75447 phy_find_first +EXPORT_SYMBOL vmlinux 0x1aada7e9 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x1aaf1017 gnet_stats_start_copy_compat EXPORT_SYMBOL vmlinux 0x1ab2b43c xa_store_range +EXPORT_SYMBOL vmlinux 0x1ab84be6 ww_mutex_lock_interruptible EXPORT_SYMBOL vmlinux 0x1ac5d3cb strcspn -EXPORT_SYMBOL vmlinux 0x1ac89a8a gnet_stats_copy_queue -EXPORT_SYMBOL vmlinux 0x1ad38771 page_pool_create -EXPORT_SYMBOL vmlinux 0x1af12709 pcim_iomap +EXPORT_SYMBOL vmlinux 0x1ae88549 __neigh_set_probe_once +EXPORT_SYMBOL vmlinux 0x1af82824 nf_log_packet EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist -EXPORT_SYMBOL vmlinux 0x1b041636 tcp_set_rcvlowat -EXPORT_SYMBOL vmlinux 0x1b24e65d dec_node_page_state -EXPORT_SYMBOL vmlinux 0x1b28278b elevator_alloc -EXPORT_SYMBOL vmlinux 0x1b2a18ee netpoll_poll_disable +EXPORT_SYMBOL vmlinux 0x1b08eed3 bioset_exit +EXPORT_SYMBOL vmlinux 0x1b212fbc phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0x1b282c90 jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0x1b2b8f96 mini_qdisc_pair_init EXPORT_SYMBOL vmlinux 0x1b335af2 __tracepoint_kmem_cache_alloc -EXPORT_SYMBOL vmlinux 0x1b3bbcb0 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x1b3b2a0a mmc_card_alternative_gpt_sector +EXPORT_SYMBOL vmlinux 0x1b4a8020 simple_link +EXPORT_SYMBOL vmlinux 0x1b58fd37 mmc_retune_timer_stop EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6815d7 nvdimm_bus_lock EXPORT_SYMBOL vmlinux 0x1b7264dd down_killable -EXPORT_SYMBOL vmlinux 0x1b760923 ip_fraglist_prepare EXPORT_SYMBOL vmlinux 0x1b777357 rdmacg_unregister_device -EXPORT_SYMBOL vmlinux 0x1b7f9f0c tcf_block_get_ext -EXPORT_SYMBOL vmlinux 0x1b8ce6a3 skb_copy -EXPORT_SYMBOL vmlinux 0x1b8ceb56 param_ops_ulong +EXPORT_SYMBOL vmlinux 0x1b77d3fd skb_checksum_trimmed EXPORT_SYMBOL vmlinux 0x1ba59527 __kmalloc_node EXPORT_SYMBOL vmlinux 0x1bb51249 tcp_have_smc -EXPORT_SYMBOL vmlinux 0x1bc21267 __of_get_address -EXPORT_SYMBOL vmlinux 0x1bc5eaa1 drop_super -EXPORT_SYMBOL vmlinux 0x1bd27cd8 dcb_delrewr +EXPORT_SYMBOL vmlinux 0x1bca0e2a filp_open EXPORT_SYMBOL vmlinux 0x1bd59dbe vme_free_consistent +EXPORT_SYMBOL vmlinux 0x1bd83776 phy_validate_pause EXPORT_SYMBOL vmlinux 0x1be00271 __nla_reserve -EXPORT_SYMBOL vmlinux 0x1be4c61a sock_no_mmap -EXPORT_SYMBOL vmlinux 0x1bea1110 skb_vlan_pop -EXPORT_SYMBOL vmlinux 0x1bee047d pci_free_irq -EXPORT_SYMBOL vmlinux 0x1c0f6ae2 __filemap_get_folio -EXPORT_SYMBOL vmlinux 0x1c237087 key_put -EXPORT_SYMBOL vmlinux 0x1c238aeb csum_and_copy_from_iter +EXPORT_SYMBOL vmlinux 0x1c14f63e netif_set_real_num_queues +EXPORT_SYMBOL vmlinux 0x1c2bbc78 file_modified +EXPORT_SYMBOL vmlinux 0x1c2df566 phy_set_max_speed EXPORT_SYMBOL vmlinux 0x1c2ea17f mtree_destroy -EXPORT_SYMBOL vmlinux 0x1c305237 kernel_getsockname -EXPORT_SYMBOL vmlinux 0x1c3bf1c1 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x1c2f2294 tcp_disconnect EXPORT_SYMBOL vmlinux 0x1c3e02e4 memcmp -EXPORT_SYMBOL vmlinux 0x1c43ec2d jbd2_journal_put_journal_head -EXPORT_SYMBOL vmlinux 0x1c56a7b4 mipi_dsi_dcs_nop +EXPORT_SYMBOL vmlinux 0x1c4d94b4 is_subdir +EXPORT_SYMBOL vmlinux 0x1c53423b blk_start_plug +EXPORT_SYMBOL vmlinux 0x1c54417b pcie_capability_clear_and_set_word_unlocked EXPORT_SYMBOL vmlinux 0x1c58427f acpi_remove_notify_handler -EXPORT_SYMBOL vmlinux 0x1c7050d0 ethtool_aggregate_pause_stats -EXPORT_SYMBOL vmlinux 0x1c822c30 tcp_md5_hash_skb_data -EXPORT_SYMBOL vmlinux 0x1c862513 iov_iter_get_pages_alloc2 -EXPORT_SYMBOL vmlinux 0x1cb00e46 pci_find_capability -EXPORT_SYMBOL vmlinux 0x1cbdb4dc pci_rebar_get_possible_sizes +EXPORT_SYMBOL vmlinux 0x1c63c4ba devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x1c70fc83 to_nd_btt +EXPORT_SYMBOL vmlinux 0x1c7e277b scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x1c9c30d5 seg6_hmac_info_add +EXPORT_SYMBOL vmlinux 0x1c9d2b6c kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x1cbcbccf km_policy_expired EXPORT_SYMBOL vmlinux 0x1cc11154 __SCK__tp_func_mmap_lock_start_locking -EXPORT_SYMBOL vmlinux 0x1ccf0d3f max8925_bulk_write -EXPORT_SYMBOL vmlinux 0x1ccf988d __fs_parse -EXPORT_SYMBOL vmlinux 0x1cd283a4 pci_bus_add_devices -EXPORT_SYMBOL vmlinux 0x1ce01250 dev_get_by_name_rcu -EXPORT_SYMBOL vmlinux 0x1ce4ea70 end_buffer_read_sync -EXPORT_SYMBOL vmlinux 0x1cf61ae8 blk_mq_stop_hw_queue -EXPORT_SYMBOL vmlinux 0x1cff8229 tcf_get_next_chain +EXPORT_SYMBOL vmlinux 0x1cc5da43 tls_server_hello_x509 +EXPORT_SYMBOL vmlinux 0x1cd3b735 blk_mq_run_hw_queue +EXPORT_SYMBOL vmlinux 0x1cf40066 param_array_ops +EXPORT_SYMBOL vmlinux 0x1cf6bf77 phy_do_ioctl +EXPORT_SYMBOL vmlinux 0x1cf6ce72 ethtool_aggregate_rmon_stats +EXPORT_SYMBOL vmlinux 0x1cff7fd8 unregister_cdrom EXPORT_SYMBOL vmlinux 0x1d07e365 memdup_user_nul -EXPORT_SYMBOL vmlinux 0x1d0aea97 fs_param_is_string -EXPORT_SYMBOL vmlinux 0x1d12438e jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x1d0ef773 pci_fixup_device EXPORT_SYMBOL vmlinux 0x1d1483c9 down_read_trylock EXPORT_SYMBOL vmlinux 0x1d1abdf0 acpi_get_physical_device_location -EXPORT_SYMBOL vmlinux 0x1d2a56d6 mmc_request_done -EXPORT_SYMBOL vmlinux 0x1d2f24a1 inet_addr_type -EXPORT_SYMBOL vmlinux 0x1d30abee phy_ethtool_get_link_ksettings -EXPORT_SYMBOL vmlinux 0x1d402f23 mmc_cqe_recovery -EXPORT_SYMBOL vmlinux 0x1d487d13 page_mapping -EXPORT_SYMBOL vmlinux 0x1d5d113f inet_shutdown +EXPORT_SYMBOL vmlinux 0x1d2d4f76 netdev_err +EXPORT_SYMBOL vmlinux 0x1d326349 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x1d47439a pci_scan_bus EXPORT_SYMBOL vmlinux 0x1d5f3c88 trace_print_array_seq -EXPORT_SYMBOL vmlinux 0x1d600906 dquot_commit_info EXPORT_SYMBOL vmlinux 0x1d794855 __tracepoint_spi_transfer_start -EXPORT_SYMBOL vmlinux 0x1d86770d __page_frag_cache_drain EXPORT_SYMBOL vmlinux 0x1d9672bd fault_in_subpage_writeable -EXPORT_SYMBOL vmlinux 0x1d9f4785 genlmsg_multicast_allns -EXPORT_SYMBOL vmlinux 0x1da65f73 padata_free -EXPORT_SYMBOL vmlinux 0x1dc369c0 of_match_device +EXPORT_SYMBOL vmlinux 0x1da101b5 tcf_classify +EXPORT_SYMBOL vmlinux 0x1dc25852 ptp_clock_event EXPORT_SYMBOL vmlinux 0x1dc6c93b lookup_user_key -EXPORT_SYMBOL vmlinux 0x1dd1e15b pci_find_parent_resource EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap -EXPORT_SYMBOL vmlinux 0x1ddb430b put_cmsg +EXPORT_SYMBOL vmlinux 0x1dd6df56 mipi_dsi_dcs_set_display_on EXPORT_SYMBOL vmlinux 0x1de4ccb2 get_sg_io_hdr -EXPORT_SYMBOL vmlinux 0x1de57d39 mark_buffer_async_write -EXPORT_SYMBOL vmlinux 0x1dfe207e fwnode_irq_get +EXPORT_SYMBOL vmlinux 0x1dea2b9e tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x1dfb2f96 flow_block_cb_setup_simple EXPORT_SYMBOL vmlinux 0x1e0708e5 dev_base_lock EXPORT_SYMBOL vmlinux 0x1e0a0c24 mod_timer_pending EXPORT_SYMBOL vmlinux 0x1e0cd7fe acpi_detach_data -EXPORT_SYMBOL vmlinux 0x1e0e5eb8 pcie_set_mps -EXPORT_SYMBOL vmlinux 0x1e31bd8f default_qdisc_ops -EXPORT_SYMBOL vmlinux 0x1e346735 tls_server_hello_x509 -EXPORT_SYMBOL vmlinux 0x1e37d5b2 inode_init_once +EXPORT_SYMBOL vmlinux 0x1e43117b sk_stream_wait_memory EXPORT_SYMBOL vmlinux 0x1e6adaa0 bitmap_print_bitmask_to_buf EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr -EXPORT_SYMBOL vmlinux 0x1e71d8cf vm_mmap -EXPORT_SYMBOL vmlinux 0x1e742641 tcf_exts_num_actions -EXPORT_SYMBOL vmlinux 0x1e805814 netdev_rx_csum_fault -EXPORT_SYMBOL vmlinux 0x1e818979 bpf_link_get_from_fd -EXPORT_SYMBOL vmlinux 0x1e82fc93 mdio_find_bus +EXPORT_SYMBOL vmlinux 0x1e7adbbf inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x1e9a394a dump_skip EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu -EXPORT_SYMBOL vmlinux 0x1ebdb4f2 iov_iter_alignment -EXPORT_SYMBOL vmlinux 0x1ebfe226 fb_get_mode -EXPORT_SYMBOL vmlinux 0x1ec939c7 tcp_sock_set_cork -EXPORT_SYMBOL vmlinux 0x1ec9c26f handle_edge_irq +EXPORT_SYMBOL vmlinux 0x1ed50f88 pcie_bandwidth_available +EXPORT_SYMBOL vmlinux 0x1ed603ad pnp_stop_dev EXPORT_SYMBOL vmlinux 0x1edb69d6 ktime_get_raw_ts64 -EXPORT_SYMBOL vmlinux 0x1ee84f0b __inet6_lookup_established -EXPORT_SYMBOL vmlinux 0x1f065020 __dynamic_ibdev_dbg -EXPORT_SYMBOL vmlinux 0x1f3b4da3 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x1ee12db7 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x1ef717a9 pci_request_regions +EXPORT_SYMBOL vmlinux 0x1efc9523 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x1f01dadb dma_set_mask +EXPORT_SYMBOL vmlinux 0x1f0344d6 tcp_peek_len +EXPORT_SYMBOL vmlinux 0x1f189241 serio_interrupt +EXPORT_SYMBOL vmlinux 0x1f1b0f09 module_layout +EXPORT_SYMBOL vmlinux 0x1f1f47db of_get_next_parent EXPORT_SYMBOL vmlinux 0x1f445221 _raw_read_trylock -EXPORT_SYMBOL vmlinux 0x1f8644e8 free_netdev +EXPORT_SYMBOL vmlinux 0x1f6f3a6a pnp_device_attach +EXPORT_SYMBOL vmlinux 0x1f73f6b8 key_type_keyring +EXPORT_SYMBOL vmlinux 0x1f7a116a dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x1f828a20 vfs_mknod +EXPORT_SYMBOL vmlinux 0x1f8768e5 jbd2_journal_blocks_per_page EXPORT_SYMBOL vmlinux 0x1f892561 completion_done EXPORT_SYMBOL vmlinux 0x1f8dba4f __asm_copy_from_user -EXPORT_SYMBOL vmlinux 0x1f94d322 ihold -EXPORT_SYMBOL vmlinux 0x1fa85492 tty_unlock +EXPORT_SYMBOL vmlinux 0x1f993279 udp6_set_csum +EXPORT_SYMBOL vmlinux 0x1f9d6cc7 ethtool_aggregate_phy_stats +EXPORT_SYMBOL vmlinux 0x1f9f8815 scsi_eh_finish_cmd EXPORT_SYMBOL vmlinux 0x1faa36af wait_for_completion_interruptible EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fc555f9 touchscreen_report_pos EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag -EXPORT_SYMBOL vmlinux 0x1fe04225 vfs_clone_file_range -EXPORT_SYMBOL vmlinux 0x1ff91785 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x1fd38a41 __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x1fdb649a devm_register_netdev +EXPORT_SYMBOL vmlinux 0x1ffebebd dev_kfree_skb_any_reason EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul EXPORT_SYMBOL vmlinux 0x20002f34 gen_pool_dma_zalloc -EXPORT_SYMBOL vmlinux 0x20042e97 tcf_get_next_proto -EXPORT_SYMBOL vmlinux 0x20061494 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x2002c652 tcp_init_sock EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any -EXPORT_SYMBOL vmlinux 0x202e81eb tcp_simple_retransmit -EXPORT_SYMBOL vmlinux 0x203038be udp_gro_receive +EXPORT_SYMBOL vmlinux 0x200ba37d inet_frag_kill +EXPORT_SYMBOL vmlinux 0x201c6087 vfs_fsync +EXPORT_SYMBOL vmlinux 0x203741fb dm_kcopyd_copy EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool EXPORT_SYMBOL vmlinux 0x204c5067 scsi_dev_info_add_list -EXPORT_SYMBOL vmlinux 0x205a8fee mfd_remove_devices EXPORT_SYMBOL vmlinux 0x206e4dcc call_usermodehelper_setup -EXPORT_SYMBOL vmlinux 0x207be225 mdiobus_alloc_size -EXPORT_SYMBOL vmlinux 0x207d25f5 posix_acl_chmod -EXPORT_SYMBOL vmlinux 0x2081a6fc dm_table_get_mode -EXPORT_SYMBOL vmlinux 0x208931f5 clk_bulk_get_all -EXPORT_SYMBOL vmlinux 0x208a027a sock_register -EXPORT_SYMBOL vmlinux 0x20a5514e fscrypt_setup_filename +EXPORT_SYMBOL vmlinux 0x2099dec6 phy_suspend EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data -EXPORT_SYMBOL vmlinux 0x20a99825 sync_blockdev_range -EXPORT_SYMBOL vmlinux 0x20a9d8fe _dev_printk -EXPORT_SYMBOL vmlinux 0x20aa9883 invalidate_bdev -EXPORT_SYMBOL vmlinux 0x20b3b676 sk_stream_wait_close -EXPORT_SYMBOL vmlinux 0x20b4573b mmc_can_secure_erase_trim -EXPORT_SYMBOL vmlinux 0x20be6247 amba_driver_register -EXPORT_SYMBOL vmlinux 0x20c4d4b7 udpv6_sendmsg +EXPORT_SYMBOL vmlinux 0x20acf9ef sync_inodes_sb EXPORT_SYMBOL vmlinux 0x20d65e40 fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0x20e413d2 nexthop_set_hw_flags EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum -EXPORT_SYMBOL vmlinux 0x20f332fc dm_unregister_target -EXPORT_SYMBOL vmlinux 0x21046836 cdrom_number_of_slots -EXPORT_SYMBOL vmlinux 0x2114fe95 ptp_clock_event -EXPORT_SYMBOL vmlinux 0x211599ee md_flush_request -EXPORT_SYMBOL vmlinux 0x2115a557 pci_read_vpd_any -EXPORT_SYMBOL vmlinux 0x21193c3a proc_mkdir_mode -EXPORT_SYMBOL vmlinux 0x2125a06a fscrypt_decrypt_block_inplace -EXPORT_SYMBOL vmlinux 0x21270b3a dev_driver_string -EXPORT_SYMBOL vmlinux 0x213872d8 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x20f6edc9 __SetPageMovable +EXPORT_SYMBOL vmlinux 0x210e3128 netdev_crit +EXPORT_SYMBOL vmlinux 0x211aa018 inet_add_protocol EXPORT_SYMBOL vmlinux 0x213a738d memregion_alloc EXPORT_SYMBOL vmlinux 0x213e4965 ps2_is_keyboard_id -EXPORT_SYMBOL vmlinux 0x2146a0c6 _dev_notice -EXPORT_SYMBOL vmlinux 0x2179e93e tc_setup_offload_action -EXPORT_SYMBOL vmlinux 0x21800058 handshake_req_cancel +EXPORT_SYMBOL vmlinux 0x2159f677 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x21700af9 vfs_iocb_iter_write EXPORT_SYMBOL vmlinux 0x2189d98b ida_free -EXPORT_SYMBOL vmlinux 0x218db46c __ip_mc_dec_group EXPORT_SYMBOL vmlinux 0x218e600b pci_add_resource_offset -EXPORT_SYMBOL vmlinux 0x218f15c2 flow_rule_match_basic -EXPORT_SYMBOL vmlinux 0x21ad200c crypto_sha256_finup +EXPORT_SYMBOL vmlinux 0x219d8a2e dcb_setapp +EXPORT_SYMBOL vmlinux 0x219e6c83 __blk_mq_end_request +EXPORT_SYMBOL vmlinux 0x21a5c81c pcie_relaxed_ordering_enabled EXPORT_SYMBOL vmlinux 0x21addb2a security_binder_transaction EXPORT_SYMBOL vmlinux 0x21b3df87 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x21b4ef12 d_rehash EXPORT_SYMBOL vmlinux 0x21bdb523 errseq_check_and_advance -EXPORT_SYMBOL vmlinux 0x21bff559 phy_read_paged -EXPORT_SYMBOL vmlinux 0x21c9f5e9 simple_transaction_read -EXPORT_SYMBOL vmlinux 0x21ce9d60 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x21ca5355 sock_from_file +EXPORT_SYMBOL vmlinux 0x21cac22a vlan_filter_push_vids +EXPORT_SYMBOL vmlinux 0x21d3ec35 ps2_init +EXPORT_SYMBOL vmlinux 0x21dec6b1 config_item_init_type_name EXPORT_SYMBOL vmlinux 0x21e13cb3 inet_peer_xrlim_allow -EXPORT_SYMBOL vmlinux 0x21e199bb to_ndd EXPORT_SYMBOL vmlinux 0x21ea5251 __bitmap_weight -EXPORT_SYMBOL vmlinux 0x21f187ce input_set_min_poll_interval -EXPORT_SYMBOL vmlinux 0x21f67ec4 disk_stack_limits -EXPORT_SYMBOL vmlinux 0x2202d26f rtnl_kfree_skbs -EXPORT_SYMBOL vmlinux 0x2215fddf netdev_err -EXPORT_SYMBOL vmlinux 0x2222d798 vfs_llseek +EXPORT_SYMBOL vmlinux 0x21fdfd4e fs_param_is_blob +EXPORT_SYMBOL vmlinux 0x22031266 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x2207a7ba of_translate_dma_address +EXPORT_SYMBOL vmlinux 0x220c319e dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x2213a766 mipi_dsi_compression_mode EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq -EXPORT_SYMBOL vmlinux 0x22304134 uart_suspend_port -EXPORT_SYMBOL vmlinux 0x2233da27 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x223418d0 bio_uninit EXPORT_SYMBOL vmlinux 0x2234ca51 acpi_match_platform_list -EXPORT_SYMBOL vmlinux 0x22505c54 pci_unregister_driver -EXPORT_SYMBOL vmlinux 0x225a5ec8 twl6040_power -EXPORT_SYMBOL vmlinux 0x225ca04b input_mt_assign_slots -EXPORT_SYMBOL vmlinux 0x2266fce6 inet_del_offload -EXPORT_SYMBOL vmlinux 0x2268866a inode_sub_bytes -EXPORT_SYMBOL vmlinux 0x227ebf6f md_finish_reshape -EXPORT_SYMBOL vmlinux 0x22880ec7 block_is_partially_uptodate -EXPORT_SYMBOL vmlinux 0x229f08cf tcp_sock_set_quickack -EXPORT_SYMBOL vmlinux 0x22a5ebcc max8998_bulk_write -EXPORT_SYMBOL vmlinux 0x22ad2f14 of_find_node_by_type +EXPORT_SYMBOL vmlinux 0x223adc04 fbcon_update_vcs +EXPORT_SYMBOL vmlinux 0x22433c52 mmc_of_parse +EXPORT_SYMBOL vmlinux 0x2247b49b iov_iter_get_pages2 +EXPORT_SYMBOL vmlinux 0x22533c76 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x2263e963 param_set_uint +EXPORT_SYMBOL vmlinux 0x2265ee57 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x22694647 getname_kernel +EXPORT_SYMBOL vmlinux 0x227bcbff dquot_initialize_needed EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound -EXPORT_SYMBOL vmlinux 0x22df7007 writeback_inodes_sb -EXPORT_SYMBOL vmlinux 0x22df9cbc phy_register_fixup_for_uid -EXPORT_SYMBOL vmlinux 0x22f337d2 jbd2_journal_begin_ordered_truncate -EXPORT_SYMBOL vmlinux 0x230835e1 md_write_inc +EXPORT_SYMBOL vmlinux 0x22c4eba1 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x22d2c929 of_graph_get_remote_port +EXPORT_SYMBOL vmlinux 0x22d7ad6a vme_dma_request +EXPORT_SYMBOL vmlinux 0x22dc9add scsi_ioctl +EXPORT_SYMBOL vmlinux 0x22f0a645 get_user_pages +EXPORT_SYMBOL vmlinux 0x22f9cc59 call_fib_notifiers EXPORT_SYMBOL vmlinux 0x23126472 wait_for_completion_killable_timeout -EXPORT_SYMBOL vmlinux 0x232ef785 elv_rb_former_request -EXPORT_SYMBOL vmlinux 0x234173ba xfrm_init_replay -EXPORT_SYMBOL vmlinux 0x23478f6f pci_get_domain_bus_and_slot -EXPORT_SYMBOL vmlinux 0x234bac60 set_disk_ro -EXPORT_SYMBOL vmlinux 0x235e2697 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x2322aa4f mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x2325ddda of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x232b456a fs_param_is_path +EXPORT_SYMBOL vmlinux 0x23467fbc dquot_get_next_dqblk +EXPORT_SYMBOL vmlinux 0x235cf201 page_pool_return_skb_page EXPORT_SYMBOL vmlinux 0x2364c85a tasklet_init -EXPORT_SYMBOL vmlinux 0x237118f3 dev_change_flags -EXPORT_SYMBOL vmlinux 0x2374db7e tty_port_raise_dtr_rts EXPORT_SYMBOL vmlinux 0x238b099f mipi_dsi_packet_format_is_short -EXPORT_SYMBOL vmlinux 0x238bb944 ipv6_dev_find -EXPORT_SYMBOL vmlinux 0x23925bca generic_listxattr -EXPORT_SYMBOL vmlinux 0x239ebf14 inet6_bind +EXPORT_SYMBOL vmlinux 0x23ad2076 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x23b0dc39 mmc_gpio_set_cd_irq +EXPORT_SYMBOL vmlinux 0x23b666b0 sock_no_bind EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path -EXPORT_SYMBOL vmlinux 0x23c5ebef blk_mq_stop_hw_queues -EXPORT_SYMBOL vmlinux 0x23cb2c25 register_framebuffer -EXPORT_SYMBOL vmlinux 0x23d2046e ipmi_platform_add +EXPORT_SYMBOL vmlinux 0x23bc677d devfreq_resume_device EXPORT_SYMBOL vmlinux 0x23daa989 mipi_dsi_create_packet EXPORT_SYMBOL vmlinux 0x23dc663c dma_fence_free EXPORT_SYMBOL vmlinux 0x23dc7f6c hdmi_avi_infoframe_pack_only -EXPORT_SYMBOL vmlinux 0x23dd5e54 unix_get_socket +EXPORT_SYMBOL vmlinux 0x23e84910 input_mt_report_finger_count EXPORT_SYMBOL vmlinux 0x23f1d7a6 page_pool_ethtool_stats_get_count EXPORT_SYMBOL vmlinux 0x23f8d19c radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x23fa3e14 generic_file_direct_write EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node -EXPORT_SYMBOL vmlinux 0x24074c17 vfs_dup_fs_context -EXPORT_SYMBOL vmlinux 0x2420f1bf folio_set_bh -EXPORT_SYMBOL vmlinux 0x2424e29a mipi_dsi_dcs_set_tear_on -EXPORT_SYMBOL vmlinux 0x24341542 device_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x23fd4d00 d_delete +EXPORT_SYMBOL vmlinux 0x23ff841c tcp_sock_set_quickack +EXPORT_SYMBOL vmlinux 0x2404b42c __neigh_event_send +EXPORT_SYMBOL vmlinux 0x240ef137 add_watch_to_object +EXPORT_SYMBOL vmlinux 0x240f07ae bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x241e80e6 eth_header_parse_protocol EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user -EXPORT_SYMBOL vmlinux 0x2446ad6f cookie_timestamp_decode +EXPORT_SYMBOL vmlinux 0x244b113d sys_imageblit +EXPORT_SYMBOL vmlinux 0x244f5a0e pci_alloc_irq_vectors_affinity EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline -EXPORT_SYMBOL vmlinux 0x2461e625 skb_copy_datagram_from_iter -EXPORT_SYMBOL vmlinux 0x246564d6 sk_stream_kill_queues -EXPORT_SYMBOL vmlinux 0x246a0036 generic_fillattr -EXPORT_SYMBOL vmlinux 0x2476b96b clk_get -EXPORT_SYMBOL vmlinux 0x24771dbf i2c_del_adapter EXPORT_SYMBOL vmlinux 0x2484adc3 __kfifo_to_user_r -EXPORT_SYMBOL vmlinux 0x248a4897 param_ops_ullong -EXPORT_SYMBOL vmlinux 0x24d0f95a xfrm_state_update +EXPORT_SYMBOL vmlinux 0x24905429 __napi_schedule +EXPORT_SYMBOL vmlinux 0x249f28df address_space_init_once +EXPORT_SYMBOL vmlinux 0x249f8edd path_has_submounts +EXPORT_SYMBOL vmlinux 0x249fed3c dm_table_event +EXPORT_SYMBOL vmlinux 0x24b757fc seq_open_private +EXPORT_SYMBOL vmlinux 0x24c4dbd6 security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0x24c6f16a flow_block_cb_incref +EXPORT_SYMBOL vmlinux 0x24cf6cef napi_disable EXPORT_SYMBOL vmlinux 0x24d273d1 add_timer EXPORT_SYMBOL vmlinux 0x24d808a6 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x24db36e7 netdev_pick_tx +EXPORT_SYMBOL vmlinux 0x24dd2836 get_phy_device EXPORT_SYMBOL vmlinux 0x24e1b558 seg6_hmac_compute -EXPORT_SYMBOL vmlinux 0x24eb6c3c udp_pre_connect -EXPORT_SYMBOL vmlinux 0x24eec267 acpi_dev_get_next_match_dev -EXPORT_SYMBOL vmlinux 0x24fba7f5 vfs_getattr +EXPORT_SYMBOL vmlinux 0x24e9ab91 ps2_command EXPORT_SYMBOL vmlinux 0x2505bf18 kstrtol_from_user -EXPORT_SYMBOL vmlinux 0x25145eb0 fb_io_write +EXPORT_SYMBOL vmlinux 0x25174126 nf_getsockopt EXPORT_SYMBOL vmlinux 0x252332f1 __SCK__tp_func_mmap_lock_released EXPORT_SYMBOL vmlinux 0x253314e3 ns_capable_noaudit -EXPORT_SYMBOL vmlinux 0x254647c3 xfrm_lookup_with_ifid -EXPORT_SYMBOL vmlinux 0x2564caea __folio_start_writeback -EXPORT_SYMBOL vmlinux 0x2575710b tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0x253d2dae fb_set_cmap +EXPORT_SYMBOL vmlinux 0x25466c92 ip_fraglist_prepare +EXPORT_SYMBOL vmlinux 0x25484cc6 pci_ep_cfs_remove_epf_group +EXPORT_SYMBOL vmlinux 0x256f6365 padata_do_serial +EXPORT_SYMBOL vmlinux 0x25701851 init_task +EXPORT_SYMBOL vmlinux 0x25723602 xp_dma_sync_for_cpu_slow EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid -EXPORT_SYMBOL vmlinux 0x258c68bf skb_tx_error EXPORT_SYMBOL vmlinux 0x258d2f76 net_dim_get_tx_moderation -EXPORT_SYMBOL vmlinux 0x25902a48 neigh_resolve_output -EXPORT_SYMBOL vmlinux 0x259181f7 napi_gro_flush -EXPORT_SYMBOL vmlinux 0x2596a5e4 find_vma EXPORT_SYMBOL vmlinux 0x2598c6c0 __tracepoint_kmem_cache_free EXPORT_SYMBOL vmlinux 0x2599d995 _raw_read_unlock_bh -EXPORT_SYMBOL vmlinux 0x25c6e4da __acpi_mdiobus_register -EXPORT_SYMBOL vmlinux 0x25cff6fe inode_maybe_inc_iversion -EXPORT_SYMBOL vmlinux 0x25d39c8e netdev_master_upper_dev_get_rcu -EXPORT_SYMBOL vmlinux 0x25d9f5c2 blk_mq_alloc_disk_for_queue -EXPORT_SYMBOL vmlinux 0x25e7d9e0 tcp_get_cookie_sock +EXPORT_SYMBOL vmlinux 0x25aa6224 single_open +EXPORT_SYMBOL vmlinux 0x25b46e6b genphy_aneg_done +EXPORT_SYMBOL vmlinux 0x25c55a46 param_get_ulong +EXPORT_SYMBOL vmlinux 0x25d1bbf6 vfs_fileattr_set +EXPORT_SYMBOL vmlinux 0x25dfef8c tcf_block_put EXPORT_SYMBOL vmlinux 0x25e9d4bd resource_list_free -EXPORT_SYMBOL vmlinux 0x25edfadb inet_csk_accept -EXPORT_SYMBOL vmlinux 0x26165675 __phy_read_mmd +EXPORT_SYMBOL vmlinux 0x25f5dd4c scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x2637e9d1 tcp_splice_read EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions EXPORT_SYMBOL vmlinux 0x263c3152 bcmp EXPORT_SYMBOL vmlinux 0x263f3f44 xa_set_mark -EXPORT_SYMBOL vmlinux 0x26452f6a ppp_register_net_channel -EXPORT_SYMBOL vmlinux 0x265495d9 scsi_device_lookup -EXPORT_SYMBOL vmlinux 0x266047fa cdev_device_add +EXPORT_SYMBOL vmlinux 0x2650e0ef devm_extcon_unregister_notifier_all +EXPORT_SYMBOL vmlinux 0x26612a25 device_add_disk EXPORT_SYMBOL vmlinux 0x267181df _raw_spin_lock_irqsave -EXPORT_SYMBOL vmlinux 0x2679da68 pci_ep_cfs_remove_epc_group -EXPORT_SYMBOL vmlinux 0x267c245d dev_add_offload -EXPORT_SYMBOL vmlinux 0x2684d9ec __mmap_lock_do_trace_acquire_returned +EXPORT_SYMBOL vmlinux 0x2673cf20 __netif_rx +EXPORT_SYMBOL vmlinux 0x267ff84d t10_pi_type1_crc EXPORT_SYMBOL vmlinux 0x2688ec10 bitmap_zalloc EXPORT_SYMBOL vmlinux 0x26897b52 mb_cache_entry_get -EXPORT_SYMBOL vmlinux 0x268e1f4d seq_file_path -EXPORT_SYMBOL vmlinux 0x2695517b crypto_sha512_finup -EXPORT_SYMBOL vmlinux 0x2699e402 param_set_invbool -EXPORT_SYMBOL vmlinux 0x26c4b88d file_open_root -EXPORT_SYMBOL vmlinux 0x26cbb4af fb_set_var -EXPORT_SYMBOL vmlinux 0x26dcb249 ip_options_rcv_srr -EXPORT_SYMBOL vmlinux 0x270888fd rio_query_mport +EXPORT_SYMBOL vmlinux 0x26a6256d flow_indr_dev_setup_offload +EXPORT_SYMBOL vmlinux 0x26a7c92e bio_copy_data_iter +EXPORT_SYMBOL vmlinux 0x26a86be5 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x26c31aa8 i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0x26dbd8f9 mmc_cqe_post_req +EXPORT_SYMBOL vmlinux 0x2702efe8 proc_create +EXPORT_SYMBOL vmlinux 0x2702f6a6 mdiobus_write EXPORT_SYMBOL vmlinux 0x270cf88f dump_stack_lvl -EXPORT_SYMBOL vmlinux 0x2719646e textsearch_destroy -EXPORT_SYMBOL vmlinux 0x271a94c3 netif_device_attach EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler EXPORT_SYMBOL vmlinux 0x272a8933 udp_memory_allocated -EXPORT_SYMBOL vmlinux 0x272e4940 xfrm_policy_alloc EXPORT_SYMBOL vmlinux 0x2733eaf7 scsi_dev_info_list_add_keyed -EXPORT_SYMBOL vmlinux 0x27376744 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x273ab904 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x273fff31 __traceiter_kmem_cache_alloc EXPORT_SYMBOL vmlinux 0x27479d14 param_free_charp -EXPORT_SYMBOL vmlinux 0x275b1865 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x274baf05 genphy_config_eee_advert +EXPORT_SYMBOL vmlinux 0x27573a55 get_tree_single_reconf EXPORT_SYMBOL vmlinux 0x275f3d49 hdmi_vendor_infoframe_check -EXPORT_SYMBOL vmlinux 0x276e37ec register_key_type -EXPORT_SYMBOL vmlinux 0x277123ab dm_io +EXPORT_SYMBOL vmlinux 0x2768c919 mdiobus_read_nested EXPORT_SYMBOL vmlinux 0x27756bc8 scsi_sanitize_inquiry_string +EXPORT_SYMBOL vmlinux 0x277b1db9 md_finish_reshape EXPORT_SYMBOL vmlinux 0x27810361 acpi_os_wait_events_complete EXPORT_SYMBOL vmlinux 0x2782b393 xfrm_state_walk_init -EXPORT_SYMBOL vmlinux 0x27857c7c jbd2_transaction_committed EXPORT_SYMBOL vmlinux 0x27864d57 memparse -EXPORT_SYMBOL vmlinux 0x27a542a2 module_refcount -EXPORT_SYMBOL vmlinux 0x27a96343 set_blocksize -EXPORT_SYMBOL vmlinux 0x27a9cb3b i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x27a9fafe devm_mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x27ae528d __ip_options_compile EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync EXPORT_SYMBOL vmlinux 0x27cdca93 pci_add_resource -EXPORT_SYMBOL vmlinux 0x27e25fa5 qdisc_offload_query_caps +EXPORT_SYMBOL vmlinux 0x27d606ec mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x27e5b331 kfree_skb_list_reason +EXPORT_SYMBOL vmlinux 0x280a060a pcim_pin_device +EXPORT_SYMBOL vmlinux 0x280d5ce2 tcp_create_openreq_child EXPORT_SYMBOL vmlinux 0x280f9f14 __per_cpu_offset EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek -EXPORT_SYMBOL vmlinux 0x2820cf83 dump_align -EXPORT_SYMBOL vmlinux 0x2824b60e pnp_unregister_driver -EXPORT_SYMBOL vmlinux 0x28281e3c rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x281adbed scsi_dma_map +EXPORT_SYMBOL vmlinux 0x28281b43 bio_copy_data EXPORT_SYMBOL vmlinux 0x282c7e12 __tracepoint_dma_fence_enable_signal -EXPORT_SYMBOL vmlinux 0x283ecbc5 seq_dentry -EXPORT_SYMBOL vmlinux 0x283eee3a mipi_dsi_dcs_set_tear_off -EXPORT_SYMBOL vmlinux 0x2841002f devm_arch_phys_wc_add -EXPORT_SYMBOL vmlinux 0x284b85c5 xfrm_policy_byid -EXPORT_SYMBOL vmlinux 0x284d9f68 phy_write_paged -EXPORT_SYMBOL vmlinux 0x284ead70 xfrm_policy_unregister_afinfo -EXPORT_SYMBOL vmlinux 0x28588d22 xfrm_dev_state_flush -EXPORT_SYMBOL vmlinux 0x28743ab6 submit_bio_wait +EXPORT_SYMBOL vmlinux 0x284278fa dquot_commit_info EXPORT_SYMBOL vmlinux 0x2875a315 utf32_to_utf8 -EXPORT_SYMBOL vmlinux 0x2879df4a of_graph_parse_endpoint -EXPORT_SYMBOL vmlinux 0x2884b12a tty_unregister_device +EXPORT_SYMBOL vmlinux 0x287acaca clear_inode +EXPORT_SYMBOL vmlinux 0x287bb4eb xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0x287e8df4 fs_context_for_submount EXPORT_SYMBOL vmlinux 0x28864fef __tracepoint_module_get -EXPORT_SYMBOL vmlinux 0x28a0d0af folio_mapping -EXPORT_SYMBOL vmlinux 0x28abad71 jbd2_journal_start_commit -EXPORT_SYMBOL vmlinux 0x28c11a49 mipi_dsi_dcs_exit_sleep_mode -EXPORT_SYMBOL vmlinux 0x28c37475 vga_client_register +EXPORT_SYMBOL vmlinux 0x289051a9 zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0x28b302dc pci_iomap_range +EXPORT_SYMBOL vmlinux 0x28d27e76 iterate_dir +EXPORT_SYMBOL vmlinux 0x28eb3fdd acpi_dev_hid_uid_match EXPORT_SYMBOL vmlinux 0x28f264d7 __tracepoint_dma_fence_signaled -EXPORT_SYMBOL vmlinux 0x28f579c0 blk_queue_io_min -EXPORT_SYMBOL vmlinux 0x28fc7830 zpool_register_driver -EXPORT_SYMBOL vmlinux 0x291f9a20 mipi_dsi_dcs_soft_reset -EXPORT_SYMBOL vmlinux 0x2927b989 serio_unregister_driver -EXPORT_SYMBOL vmlinux 0x29305328 ipv6_dev_mc_dec -EXPORT_SYMBOL vmlinux 0x29378e2f phy_modify_paged +EXPORT_SYMBOL vmlinux 0x28f53db1 __inet_hash +EXPORT_SYMBOL vmlinux 0x28f6a706 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x28f8cfb6 pci_release_resource +EXPORT_SYMBOL vmlinux 0x2921dc6b tcp_mss_to_mtu +EXPORT_SYMBOL vmlinux 0x292c1c76 sock_create_lite +EXPORT_SYMBOL vmlinux 0x29354220 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x2939a4ca vc_cons +EXPORT_SYMBOL vmlinux 0x294f25e8 param_set_ulong +EXPORT_SYMBOL vmlinux 0x2952c805 fb_io_read +EXPORT_SYMBOL vmlinux 0x295b92b5 ihold EXPORT_SYMBOL vmlinux 0x29604158 napi_busy_loop -EXPORT_SYMBOL vmlinux 0x2966dace scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x2965e648 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x29672c5f vme_bus_type EXPORT_SYMBOL vmlinux 0x296b8bbf __kfifo_dma_in_prepare -EXPORT_SYMBOL vmlinux 0x296e5754 dquot_claim_space_nodirty -EXPORT_SYMBOL vmlinux 0x297d3e77 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x298748da pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x29b31e03 page_get_link +EXPORT_SYMBOL vmlinux 0x29c4ccf2 blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0x29d28f9e tcf_exts_validate EXPORT_SYMBOL vmlinux 0x29e1e204 hdmi_audio_infoframe_pack -EXPORT_SYMBOL vmlinux 0x2a021e13 __skb_checksum_complete_head -EXPORT_SYMBOL vmlinux 0x2a175190 max8925_bulk_read -EXPORT_SYMBOL vmlinux 0x2a2b8226 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x29e9529a __cgroup_bpf_run_filter_skb +EXPORT_SYMBOL vmlinux 0x29eea461 zpool_register_driver +EXPORT_SYMBOL vmlinux 0x29f09736 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x2a051dc6 poll_freewait +EXPORT_SYMBOL vmlinux 0x2a1f61e4 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x2a21d37c sock_wake_async +EXPORT_SYMBOL vmlinux 0x2a276b01 md_flush_request +EXPORT_SYMBOL vmlinux 0x2a289510 locks_copy_conflock EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature -EXPORT_SYMBOL vmlinux 0x2a588ab6 inode_insert5 +EXPORT_SYMBOL vmlinux 0x2a33985d datagram_poll +EXPORT_SYMBOL vmlinux 0x2a4a5ea0 param_set_bint +EXPORT_SYMBOL vmlinux 0x2a4aba29 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x2a4c184a phy_init_eee +EXPORT_SYMBOL vmlinux 0x2a584684 jbd2__journal_start EXPORT_SYMBOL vmlinux 0x2a6a5aac sockopt_capable -EXPORT_SYMBOL vmlinux 0x2a6b7d78 mr_rtm_dumproute EXPORT_SYMBOL vmlinux 0x2a6f99dd gen_pool_dma_alloc_align -EXPORT_SYMBOL vmlinux 0x2a755c83 genphy_check_and_restart_aneg EXPORT_SYMBOL vmlinux 0x2a7acc42 _raw_read_lock_irqsave -EXPORT_SYMBOL vmlinux 0x2a81cd17 d_set_fallthru -EXPORT_SYMBOL vmlinux 0x2a89a283 devm_pci_alloc_host_bridge -EXPORT_SYMBOL vmlinux 0x2a8c46b2 netif_set_tso_max_segs -EXPORT_SYMBOL vmlinux 0x2a8e8c11 blkdev_put EXPORT_SYMBOL vmlinux 0x2a928918 slhc_free +EXPORT_SYMBOL vmlinux 0x2a94ea31 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x2a95a60c blk_queue_flag_clear EXPORT_SYMBOL vmlinux 0x2a9a3905 vme_master_get -EXPORT_SYMBOL vmlinux 0x2a9a4113 dma_sync_sg_for_device -EXPORT_SYMBOL vmlinux 0x2aa12731 xfrm_lookup_route EXPORT_SYMBOL vmlinux 0x2aabcdc8 vmalloc_array -EXPORT_SYMBOL vmlinux 0x2aae6a9e filemap_fault -EXPORT_SYMBOL vmlinux 0x2acd3834 netdev_change_features -EXPORT_SYMBOL vmlinux 0x2af7c0bd kill_pid -EXPORT_SYMBOL vmlinux 0x2afb72df nexthop_res_grp_activity_update +EXPORT_SYMBOL vmlinux 0x2ab17742 bdi_unregister +EXPORT_SYMBOL vmlinux 0x2af9e8f0 __ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x2b0be72c reuseport_has_conns_set +EXPORT_SYMBOL vmlinux 0x2b0df04b cdev_device_add +EXPORT_SYMBOL vmlinux 0x2b1beb51 fs_param_is_u64 +EXPORT_SYMBOL vmlinux 0x2b22c2b0 key_link EXPORT_SYMBOL vmlinux 0x2b24260d mempool_create -EXPORT_SYMBOL vmlinux 0x2b33e67c pskb_trim_rcsum_slow -EXPORT_SYMBOL vmlinux 0x2b537935 d_hash_and_lookup -EXPORT_SYMBOL vmlinux 0x2b539b8c qdisc_hash_del -EXPORT_SYMBOL vmlinux 0x2b569fc9 is_free_buddy_page -EXPORT_SYMBOL vmlinux 0x2b75d690 request_key_tag -EXPORT_SYMBOL vmlinux 0x2b77f2a5 security_inet_conn_request -EXPORT_SYMBOL vmlinux 0x2b8b7a14 unregister_tcf_proto_ops -EXPORT_SYMBOL vmlinux 0x2b8fcb5a devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x2b5839c3 generic_fadvise +EXPORT_SYMBOL vmlinux 0x2b6dc922 param_get_byte +EXPORT_SYMBOL vmlinux 0x2b75d9aa thread_group_exited +EXPORT_SYMBOL vmlinux 0x2b93bfa6 __folio_lock +EXPORT_SYMBOL vmlinux 0x2b9556c1 vfs_path_parent_lookup EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock -EXPORT_SYMBOL vmlinux 0x2ba27cb7 inet_unregister_protosw -EXPORT_SYMBOL vmlinux 0x2bb0ab11 block_truncate_page +EXPORT_SYMBOL vmlinux 0x2b9f274e input_register_device +EXPORT_SYMBOL vmlinux 0x2ba84d8d sock_set_reuseaddr +EXPORT_SYMBOL vmlinux 0x2bab0d5f of_device_unregister +EXPORT_SYMBOL vmlinux 0x2bbbb5c8 reuseport_attach_prog +EXPORT_SYMBOL vmlinux 0x2bc65312 page_pool_unlink_napi +EXPORT_SYMBOL vmlinux 0x2bcb1695 xfrm_policy_hash_rebuild EXPORT_SYMBOL vmlinux 0x2bd60ab9 acpi_reset +EXPORT_SYMBOL vmlinux 0x2bd809dc cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x2bd820c8 thermal_zone_device_critical +EXPORT_SYMBOL vmlinux 0x2bdee35a cookie_timestamp_decode EXPORT_SYMBOL vmlinux 0x2be0f12d dql_completed -EXPORT_SYMBOL vmlinux 0x2bee53d4 acpi_dev_get_first_match_dev -EXPORT_SYMBOL vmlinux 0x2bfcec73 param_get_bool -EXPORT_SYMBOL vmlinux 0x2c076681 reuseport_detach_sock -EXPORT_SYMBOL vmlinux 0x2c1cf005 param_ops_byte -EXPORT_SYMBOL vmlinux 0x2c1d9ce7 seg6_hmac_info_add +EXPORT_SYMBOL vmlinux 0x2be3cb6d param_ops_long +EXPORT_SYMBOL vmlinux 0x2beb73cc inet6_getname +EXPORT_SYMBOL vmlinux 0x2beba32c register_shrinker EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c290827 pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0x2c373853 kernel_recvmsg EXPORT_SYMBOL vmlinux 0x2c381a09 __xa_cmpxchg +EXPORT_SYMBOL vmlinux 0x2c3c37e5 generic_write_checks_count EXPORT_SYMBOL vmlinux 0x2c3ca652 riscv_cached_mvendorid -EXPORT_SYMBOL vmlinux 0x2c4630dc set_page_dirty_lock -EXPORT_SYMBOL vmlinux 0x2c4ac212 pci_disable_ptm -EXPORT_SYMBOL vmlinux 0x2c56f65b pci_alloc_irq_vectors_affinity -EXPORT_SYMBOL vmlinux 0x2c63864c dev_pm_opp_register_notifier -EXPORT_SYMBOL vmlinux 0x2c7cd60c devm_alloc_etherdev_mqs -EXPORT_SYMBOL vmlinux 0x2c7ea3db genphy_write_mmd_unsupported +EXPORT_SYMBOL vmlinux 0x2c4dc3a7 vfs_iocb_iter_read EXPORT_SYMBOL vmlinux 0x2c82c36a security_secmark_relabel_packet -EXPORT_SYMBOL vmlinux 0x2c8fd15b iov_iter_npages -EXPORT_SYMBOL vmlinux 0x2c9106b8 md_wakeup_thread -EXPORT_SYMBOL vmlinux 0x2c9d409e max8925_reg_read -EXPORT_SYMBOL vmlinux 0x2c9f3c7d set_binfmt -EXPORT_SYMBOL vmlinux 0x2ca96ad7 mmc_wait_for_req_done -EXPORT_SYMBOL vmlinux 0x2ca9d0fb xp_can_alloc -EXPORT_SYMBOL vmlinux 0x2cb516cc flow_rule_match_arp -EXPORT_SYMBOL vmlinux 0x2cbf0d0a sk_alloc -EXPORT_SYMBOL vmlinux 0x2cbffc38 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x2c9b10b7 __brelse EXPORT_SYMBOL vmlinux 0x2ccd059a dim_on_top -EXPORT_SYMBOL vmlinux 0x2cd15eb5 processors -EXPORT_SYMBOL vmlinux 0x2cd587e6 jbd2_journal_invalidate_folio -EXPORT_SYMBOL vmlinux 0x2cdafd84 __napi_schedule +EXPORT_SYMBOL vmlinux 0x2cd1f0f7 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x2cec453e fs_param_is_fd +EXPORT_SYMBOL vmlinux 0x2cecb863 netdev_offload_xstats_disable EXPORT_SYMBOL vmlinux 0x2cf0c910 sg_init_table -EXPORT_SYMBOL vmlinux 0x2cf1acb8 find_inode_nowait -EXPORT_SYMBOL vmlinux 0x2cf1c41d param_set_long EXPORT_SYMBOL vmlinux 0x2cf56265 __dynamic_pr_debug -EXPORT_SYMBOL vmlinux 0x2cf982ac xfrm_register_type_offload +EXPORT_SYMBOL vmlinux 0x2d09576d jbd2_fc_get_buf EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock -EXPORT_SYMBOL vmlinux 0x2d16a46f pci_enable_atomic_ops_to_root -EXPORT_SYMBOL vmlinux 0x2d1c7858 __SetPageMovable -EXPORT_SYMBOL vmlinux 0x2d27c118 __hw_addr_sync_dev +EXPORT_SYMBOL vmlinux 0x2d25bd8b sk_stop_timer EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq -EXPORT_SYMBOL vmlinux 0x2d348584 pci_dev_get EXPORT_SYMBOL vmlinux 0x2d39b0a7 kstrdup EXPORT_SYMBOL vmlinux 0x2d4c773a hdmi_spd_infoframe_init EXPORT_SYMBOL vmlinux 0x2d4daef5 find_font -EXPORT_SYMBOL vmlinux 0x2d79b851 dquot_mark_dquot_dirty -EXPORT_SYMBOL vmlinux 0x2d7bca4f sock_queue_rcv_skb_reason -EXPORT_SYMBOL vmlinux 0x2d86a9e5 eth_header_parse -EXPORT_SYMBOL vmlinux 0x2d8a0ada pci_enable_device_io -EXPORT_SYMBOL vmlinux 0x2d952411 netif_tx_wake_queue +EXPORT_SYMBOL vmlinux 0x2d62b6c5 eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0x2d717bed unregister_console +EXPORT_SYMBOL vmlinux 0x2d881b6f netlink_ack EXPORT_SYMBOL vmlinux 0x2d994605 security_inode_copy_up_xattr -EXPORT_SYMBOL vmlinux 0x2d9e056e km_report -EXPORT_SYMBOL vmlinux 0x2da8e5cf vme_dma_list_exec -EXPORT_SYMBOL vmlinux 0x2dc4d1d6 acpi_bus_get_status -EXPORT_SYMBOL vmlinux 0x2dd642da dev_graft_qdisc -EXPORT_SYMBOL vmlinux 0x2dd657b0 __bforget +EXPORT_SYMBOL vmlinux 0x2d9c9afd scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x2dadedcb flow_block_cb_free +EXPORT_SYMBOL vmlinux 0x2dba827f blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x2dc6e460 skb_seq_read +EXPORT_SYMBOL vmlinux 0x2dd03f63 __phy_resume +EXPORT_SYMBOL vmlinux 0x2dd96b7b of_graph_get_endpoint_count EXPORT_SYMBOL vmlinux 0x2ddbe910 gen_pool_alloc_algo_owner EXPORT_SYMBOL vmlinux 0x2de125c0 page_frag_alloc_align -EXPORT_SYMBOL vmlinux 0x2df3ff32 mark_buffer_dirty_inode -EXPORT_SYMBOL vmlinux 0x2dfb534d of_graph_get_port_parent +EXPORT_SYMBOL vmlinux 0x2de2ff69 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x2de960a2 skb_queue_head +EXPORT_SYMBOL vmlinux 0x2dfd2c76 netif_carrier_on EXPORT_SYMBOL vmlinux 0x2dfdc921 kobject_del -EXPORT_SYMBOL vmlinux 0x2e01671e inet_bind -EXPORT_SYMBOL vmlinux 0x2e078e27 touch_atime -EXPORT_SYMBOL vmlinux 0x2e09a09f ata_print_version +EXPORT_SYMBOL vmlinux 0x2e017786 dma_mmap_attrs +EXPORT_SYMBOL vmlinux 0x2e07e752 iov_iter_xarray EXPORT_SYMBOL vmlinux 0x2e0a637d acpi_walk_resources -EXPORT_SYMBOL vmlinux 0x2e1ab46e dcache_dir_lseek EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put -EXPORT_SYMBOL vmlinux 0x2e275285 tcf_idr_release +EXPORT_SYMBOL vmlinux 0x2e28054a mmc_sw_reset +EXPORT_SYMBOL vmlinux 0x2e29cc97 sb_min_blocksize EXPORT_SYMBOL vmlinux 0x2e2b40d2 strncat -EXPORT_SYMBOL vmlinux 0x2e3419fc proc_remove -EXPORT_SYMBOL vmlinux 0x2e34ba74 pneigh_enqueue -EXPORT_SYMBOL vmlinux 0x2e398988 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x2e4087fc pps_lookup_dev EXPORT_SYMBOL vmlinux 0x2e439142 drm_get_panel_orientation_quirk -EXPORT_SYMBOL vmlinux 0x2e4d8381 vfs_iocb_iter_read +EXPORT_SYMBOL vmlinux 0x2e49e8c1 sock_kmalloc EXPORT_SYMBOL vmlinux 0x2e5ea702 __mutex_init -EXPORT_SYMBOL vmlinux 0x2e697bbd nexthop_set_hw_flags -EXPORT_SYMBOL vmlinux 0x2e955f90 __lock_sock_fast -EXPORT_SYMBOL vmlinux 0x2e9b2050 pldmfw_op_pci_match_record -EXPORT_SYMBOL vmlinux 0x2eaa81db jbd2_log_wait_commit -EXPORT_SYMBOL vmlinux 0x2eb4f222 rtnl_notify +EXPORT_SYMBOL vmlinux 0x2e66b782 __napi_schedule_irqoff +EXPORT_SYMBOL vmlinux 0x2e6f2fdb iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x2e78cec6 touch_buffer +EXPORT_SYMBOL vmlinux 0x2ec35a81 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x2ec69657 pci_disable_link_state EXPORT_SYMBOL vmlinux 0x2ec6bba0 errseq_set -EXPORT_SYMBOL vmlinux 0x2ec86295 generic_parse_monolithic -EXPORT_SYMBOL vmlinux 0x2ed4edc5 copy_page_to_iter_nofault -EXPORT_SYMBOL vmlinux 0x2ee63711 __mdiobus_read -EXPORT_SYMBOL vmlinux 0x2ef56d82 seq_release +EXPORT_SYMBOL vmlinux 0x2eca36d4 sock_no_listen +EXPORT_SYMBOL vmlinux 0x2ecab3ff sock_i_uid +EXPORT_SYMBOL vmlinux 0x2ecd6fe9 setup_new_exec +EXPORT_SYMBOL vmlinux 0x2ee68fc6 __folio_start_writeback +EXPORT_SYMBOL vmlinux 0x2eeee40e disk_stack_limits +EXPORT_SYMBOL vmlinux 0x2ef174b4 simple_transaction_get EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc -EXPORT_SYMBOL vmlinux 0x2f0ce32d setattr_should_drop_sgid +EXPORT_SYMBOL vmlinux 0x2f08859d of_graph_get_remote_port_parent +EXPORT_SYMBOL vmlinux 0x2f0baf1c jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x2f1b6867 __module_get +EXPORT_SYMBOL vmlinux 0x2f27bba0 dev_set_alias EXPORT_SYMBOL vmlinux 0x2f2e91b2 security_ib_alloc_security +EXPORT_SYMBOL vmlinux 0x2f31d912 nvdimm_namespace_disk_name EXPORT_SYMBOL vmlinux 0x2f384db3 acpi_is_video_device -EXPORT_SYMBOL vmlinux 0x2f4f561c xfrm_state_lookup -EXPORT_SYMBOL vmlinux 0x2f5b2b79 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x2f3b38d9 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x2f4ff649 pci_request_irq +EXPORT_SYMBOL vmlinux 0x2f537b6f mfd_remove_devices EXPORT_SYMBOL vmlinux 0x2f5f0f40 do_wait_intr_irq +EXPORT_SYMBOL vmlinux 0x2f6334a0 qdisc_reset EXPORT_SYMBOL vmlinux 0x2f7754a8 dma_pool_free -EXPORT_SYMBOL vmlinux 0x2f881cc5 unpin_user_page_range_dirty_lock -EXPORT_SYMBOL vmlinux 0x2f99a74d follow_up -EXPORT_SYMBOL vmlinux 0x2f9a2055 tcp_rtx_synack -EXPORT_SYMBOL vmlinux 0x2f9c0efd gnet_stats_copy_app -EXPORT_SYMBOL vmlinux 0x2fa661d1 pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x2f815df7 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x2f88e5cf can_nice +EXPORT_SYMBOL vmlinux 0x2fa1bb43 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x2fad03be mmc_cqe_request_done EXPORT_SYMBOL vmlinux 0x2fb1c4ef add_wait_queue -EXPORT_SYMBOL vmlinux 0x2fbb572c cfb_imageblit -EXPORT_SYMBOL vmlinux 0x2fdddbd3 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x2fb2165a tty_port_close_start +EXPORT_SYMBOL vmlinux 0x2fb4707e inet_twsk_deschedule_put +EXPORT_SYMBOL vmlinux 0x2fb5c459 xsk_set_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0x2fbf9f0e xfrm4_protocol_register +EXPORT_SYMBOL vmlinux 0x2fde3cb0 dev_pick_tx_zero EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier -EXPORT_SYMBOL vmlinux 0x2fef974e pin_user_pages_unlocked -EXPORT_SYMBOL vmlinux 0x302e3235 of_get_cpu_node -EXPORT_SYMBOL vmlinux 0x3037cd51 sock_set_mark -EXPORT_SYMBOL vmlinux 0x30593832 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x2ff3ee23 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x2ff81956 folio_set_bh +EXPORT_SYMBOL vmlinux 0x3008ae68 pipe_unlock +EXPORT_SYMBOL vmlinux 0x301cd4c7 __traceiter_spi_transfer_start +EXPORT_SYMBOL vmlinux 0x3024ed55 tcp_sock_set_keepidle +EXPORT_SYMBOL vmlinux 0x303a5884 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x30461806 tty_kref_put +EXPORT_SYMBOL vmlinux 0x304a8b64 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x3064e820 page_symlink_inode_operations EXPORT_SYMBOL vmlinux 0x3067f298 prepare_to_wait_exclusive -EXPORT_SYMBOL vmlinux 0x306fb955 of_find_property -EXPORT_SYMBOL vmlinux 0x30719572 jbd2_journal_get_create_access -EXPORT_SYMBOL vmlinux 0x3071aa29 xsk_tx_release -EXPORT_SYMBOL vmlinux 0x307fa0e0 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x3073f020 kill_anon_super +EXPORT_SYMBOL vmlinux 0x308873cd flow_rule_match_enc_ipv6_addrs +EXPORT_SYMBOL vmlinux 0x308b322f f_setown +EXPORT_SYMBOL vmlinux 0x308baa48 __folio_batch_release +EXPORT_SYMBOL vmlinux 0x308c1559 twl6040_reg_write EXPORT_SYMBOL vmlinux 0x3096be16 names_cachep EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30a8d13a cdev_set_parent EXPORT_SYMBOL vmlinux 0x30acfde9 hsiphash_2u32 -EXPORT_SYMBOL vmlinux 0x30b84191 hash_and_copy_to_iter -EXPORT_SYMBOL vmlinux 0x30b86362 acpi_bus_register_driver -EXPORT_SYMBOL vmlinux 0x30bb3b00 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x30b9915d input_close_device EXPORT_SYMBOL vmlinux 0x30cd5f1d swake_up_locked -EXPORT_SYMBOL vmlinux 0x30eee6b7 mipi_dsi_dcs_write_buffer -EXPORT_SYMBOL vmlinux 0x30f3ed9e page_readlink -EXPORT_SYMBOL vmlinux 0x30f7df5b block_write_end -EXPORT_SYMBOL vmlinux 0x3116b910 __tty_insert_flip_char -EXPORT_SYMBOL vmlinux 0x311826bf pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x30f58a46 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x30f5aa99 xfrm_state_lookup EXPORT_SYMBOL vmlinux 0x3126a9e8 siphash_1u64 EXPORT_SYMBOL vmlinux 0x312ed932 verify_spi_info -EXPORT_SYMBOL vmlinux 0x313fa3b5 jbd2_journal_inode_ranged_write -EXPORT_SYMBOL vmlinux 0x31735a59 add_to_page_cache_lru -EXPORT_SYMBOL vmlinux 0x31785aa1 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x31325ad0 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x313c2a53 rtc_add_groups +EXPORT_SYMBOL vmlinux 0x3142dffb phy_ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0x314ea567 dquot_load_quota_inode +EXPORT_SYMBOL vmlinux 0x317815e6 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x317ffd8a dcb_getrewr_prio_pcp_mask_map EXPORT_SYMBOL vmlinux 0x31997b93 down_write -EXPORT_SYMBOL vmlinux 0x31a08888 inet_sendmsg -EXPORT_SYMBOL vmlinux 0x31acbbfa pci_read_vpd -EXPORT_SYMBOL vmlinux 0x31adc5be dev_trans_start -EXPORT_SYMBOL vmlinux 0x31be5f15 generic_update_time -EXPORT_SYMBOL vmlinux 0x31c01cf6 da903x_query_status -EXPORT_SYMBOL vmlinux 0x31d052ae kmem_cache_free -EXPORT_SYMBOL vmlinux 0x31e2ea60 phy_attached_info -EXPORT_SYMBOL vmlinux 0x31e709ea pcie_get_width_cap -EXPORT_SYMBOL vmlinux 0x31ec6694 phy_attach_direct +EXPORT_SYMBOL vmlinux 0x31a2462a blk_queue_flag_set +EXPORT_SYMBOL vmlinux 0x31b0ade0 mipi_dsi_dcs_get_display_brightness_large +EXPORT_SYMBOL vmlinux 0x31ce4817 km_state_expired +EXPORT_SYMBOL vmlinux 0x31ce5ae6 do_SAK EXPORT_SYMBOL vmlinux 0x31ed9486 wait_for_completion_killable EXPORT_SYMBOL vmlinux 0x31f33e45 posix_acl_from_xattr -EXPORT_SYMBOL vmlinux 0x3206d2ab iw_handler_set_spy -EXPORT_SYMBOL vmlinux 0x320ec0d3 tcp_v4_destroy_sock -EXPORT_SYMBOL vmlinux 0x32152de9 xfrm_state_check_expire -EXPORT_SYMBOL vmlinux 0x321a4bbf ip_tunnel_header_ops +EXPORT_SYMBOL vmlinux 0x31fea222 security_inode_invalidate_secctx +EXPORT_SYMBOL vmlinux 0x320986ca genphy_handle_interrupt_no_ack EXPORT_SYMBOL vmlinux 0x3221df67 __bitmap_subset -EXPORT_SYMBOL vmlinux 0x322c3854 cdev_init -EXPORT_SYMBOL vmlinux 0x32351bd7 devm_pci_remap_cfgspace -EXPORT_SYMBOL vmlinux 0x323a48b2 input_close_device -EXPORT_SYMBOL vmlinux 0x3245f821 dst_destroy -EXPORT_SYMBOL vmlinux 0x324aad7e vfs_readlink -EXPORT_SYMBOL vmlinux 0x326338c5 pci_clear_mwi -EXPORT_SYMBOL vmlinux 0x32735942 inet_reqsk_alloc +EXPORT_SYMBOL vmlinux 0x323dda9a blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x323e1ca3 get_ipc_ns_exported +EXPORT_SYMBOL vmlinux 0x324c1f1c alloc_fddidev EXPORT_SYMBOL vmlinux 0x32787823 __skb_ext_put +EXPORT_SYMBOL vmlinux 0x32794456 pcie_get_mps EXPORT_SYMBOL vmlinux 0x327c84bf vme_lm_attach +EXPORT_SYMBOL vmlinux 0x327ec0dd cdc_parse_cdc_header EXPORT_SYMBOL vmlinux 0x3283e6b0 prandom_seed_full_state -EXPORT_SYMBOL vmlinux 0x3284f540 tcf_exts_change -EXPORT_SYMBOL vmlinux 0x3295b656 key_unlink -EXPORT_SYMBOL vmlinux 0x32ac6356 nf_ip6_checksum -EXPORT_SYMBOL vmlinux 0x32c25916 of_get_cpu_state_node +EXPORT_SYMBOL vmlinux 0x3291ca46 page_pool_update_nid +EXPORT_SYMBOL vmlinux 0x3294fc02 submit_bio_wait +EXPORT_SYMBOL vmlinux 0x32a3bb7c __tty_insert_flip_char EXPORT_SYMBOL vmlinux 0x32ce3777 radix_tree_preload EXPORT_SYMBOL vmlinux 0x32e6f1a0 acpi_video_backlight_string +EXPORT_SYMBOL vmlinux 0x32e70971 acpi_match_device_ids EXPORT_SYMBOL vmlinux 0x3311647a dma_fence_chain_ops -EXPORT_SYMBOL vmlinux 0x331b1170 deactivate_super -EXPORT_SYMBOL vmlinux 0x3332728e skb_free_datagram +EXPORT_SYMBOL vmlinux 0x331592bf sk_capable +EXPORT_SYMBOL vmlinux 0x3320e02c mdio_driver_unregister +EXPORT_SYMBOL vmlinux 0x332845be pcie_set_readrq EXPORT_SYMBOL vmlinux 0x333bfca1 hdmi_infoframe_pack_only -EXPORT_SYMBOL vmlinux 0x334965fd blk_queue_bounce_limit -EXPORT_SYMBOL vmlinux 0x3361f4a5 max8925_set_bits -EXPORT_SYMBOL vmlinux 0x336b7582 netif_set_real_num_tx_queues EXPORT_SYMBOL vmlinux 0x33736a1d __genradix_ptr_alloc -EXPORT_SYMBOL vmlinux 0x337e635e ip6mr_rule_default -EXPORT_SYMBOL vmlinux 0x33bcf88d md_handle_request -EXPORT_SYMBOL vmlinux 0x33be3efa i2c_smbus_read_word_data -EXPORT_SYMBOL vmlinux 0x33c69166 dquot_quota_sync -EXPORT_SYMBOL vmlinux 0x33eeeda1 unlock_page +EXPORT_SYMBOL vmlinux 0x33aafd07 phy_attached_print +EXPORT_SYMBOL vmlinux 0x33afb95b pci_resize_resource +EXPORT_SYMBOL vmlinux 0x33bfba85 nvdimm_namespace_capacity +EXPORT_SYMBOL vmlinux 0x33d4f49e mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x33ddbd8d ip_mc_inc_group EXPORT_SYMBOL vmlinux 0x33ef0118 __cpuhp_setup_state EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max EXPORT_SYMBOL vmlinux 0x33fcf44a __kfifo_out_r -EXPORT_SYMBOL vmlinux 0x3409bfff tcp_ioctl -EXPORT_SYMBOL vmlinux 0x340c5407 param_set_bint -EXPORT_SYMBOL vmlinux 0x340e6f96 flow_rule_match_ipv4_addrs -EXPORT_SYMBOL vmlinux 0x341ddc4f md_wait_for_blocked_rdev -EXPORT_SYMBOL vmlinux 0x3422d320 udp_seq_next -EXPORT_SYMBOL vmlinux 0x34337077 skb_dequeue -EXPORT_SYMBOL vmlinux 0x344f79c9 vga_put -EXPORT_SYMBOL vmlinux 0x345f52e8 tcp_mss_to_mtu -EXPORT_SYMBOL vmlinux 0x346d3382 kern_unmount +EXPORT_SYMBOL vmlinux 0x340d9f8a _dev_err +EXPORT_SYMBOL vmlinux 0x3426822c seg6_push_hmac +EXPORT_SYMBOL vmlinux 0x34317132 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x34346a48 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x345926f6 kill_pgrp +EXPORT_SYMBOL vmlinux 0x347b3828 unix_attach_fds +EXPORT_SYMBOL vmlinux 0x349b5b17 folio_wait_private_2 EXPORT_SYMBOL vmlinux 0x349cba85 strchr -EXPORT_SYMBOL vmlinux 0x34b16069 thread_group_exited -EXPORT_SYMBOL vmlinux 0x34bb97fd wireless_spy_update -EXPORT_SYMBOL vmlinux 0x34bbe95e of_get_child_by_name +EXPORT_SYMBOL vmlinux 0x34ae60e4 cdev_init EXPORT_SYMBOL vmlinux 0x34bbedef radix_tree_insert EXPORT_SYMBOL vmlinux 0x34c7cdbc lookup_bdev -EXPORT_SYMBOL vmlinux 0x34d29ce9 jbd2_fc_end_commit_fallback -EXPORT_SYMBOL vmlinux 0x34d8cc80 of_node_name_eq +EXPORT_SYMBOL vmlinux 0x34d20f45 md_write_start +EXPORT_SYMBOL vmlinux 0x34d22a83 pci_scan_bridge EXPORT_SYMBOL vmlinux 0x34d9105d empty_zero_page EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x34f4f58c phy_start_cable_test EXPORT_SYMBOL vmlinux 0x34f89363 acpi_terminate_debugger -EXPORT_SYMBOL vmlinux 0x35064f73 dma_async_device_unregister -EXPORT_SYMBOL vmlinux 0x350a373d of_find_node_by_phandle -EXPORT_SYMBOL vmlinux 0x350f465c ww_mutex_unlock -EXPORT_SYMBOL vmlinux 0x3511ff4c tcp_stream_memory_free +EXPORT_SYMBOL vmlinux 0x350286b9 write_inode_now +EXPORT_SYMBOL vmlinux 0x3511077b eth_platform_get_mac_address EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier -EXPORT_SYMBOL vmlinux 0x3532096d of_translate_dma_region EXPORT_SYMBOL vmlinux 0x3536d925 _raw_spin_lock EXPORT_SYMBOL vmlinux 0x3539f11b match_strlcpy -EXPORT_SYMBOL vmlinux 0x3540b172 skb_condense +EXPORT_SYMBOL vmlinux 0x3546c550 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x354810f8 vm_map_ram EXPORT_SYMBOL vmlinux 0x354b4a1e acpi_ut_trace -EXPORT_SYMBOL vmlinux 0x355903d9 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x355b38d4 ps2_drain +EXPORT_SYMBOL vmlinux 0x3561af66 skb_copy_and_csum_datagram_msg EXPORT_SYMBOL vmlinux 0x356461c8 rtc_time64_to_tm -EXPORT_SYMBOL vmlinux 0x3583b5c9 sock_alloc_send_pskb -EXPORT_SYMBOL vmlinux 0x3594be55 flow_block_cb_priv -EXPORT_SYMBOL vmlinux 0x359da934 tcf_chain_put_by_act +EXPORT_SYMBOL vmlinux 0x357ace74 dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x358de39c bio_split +EXPORT_SYMBOL vmlinux 0x359ed1ac simple_fill_super EXPORT_SYMBOL vmlinux 0x35a88f28 zlib_inflateInit2 -EXPORT_SYMBOL vmlinux 0x35be9b1b fwnode_irq_get_byname -EXPORT_SYMBOL vmlinux 0x35cd95c0 of_clk_get_by_name -EXPORT_SYMBOL vmlinux 0x35d9dc67 sched_autogroup_create_attach -EXPORT_SYMBOL vmlinux 0x35dd0396 __filemap_set_wb_err -EXPORT_SYMBOL vmlinux 0x3600c81a fixed_size_llseek -EXPORT_SYMBOL vmlinux 0x3617c0eb truncate_pagecache_range -EXPORT_SYMBOL vmlinux 0x3626d0f0 seg6_hmac_validate_skb -EXPORT_SYMBOL vmlinux 0x36297ab9 i2c_smbus_xfer -EXPORT_SYMBOL vmlinux 0x362c3b67 nd_region_to_nstype +EXPORT_SYMBOL vmlinux 0x35bef9bc netif_napi_add_weight +EXPORT_SYMBOL vmlinux 0x35c2f757 blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0x35cb0d8c neigh_lookup +EXPORT_SYMBOL vmlinux 0x35ee0ca3 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x3607e80e dcache_dir_close +EXPORT_SYMBOL vmlinux 0x360be166 pci_release_regions +EXPORT_SYMBOL vmlinux 0x361b12e2 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x36254151 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x36269550 nexthop_bucket_set_hw_flags +EXPORT_SYMBOL vmlinux 0x36386f9e sget_fc +EXPORT_SYMBOL vmlinux 0x3644a3ad jbd2_journal_start_reserved EXPORT_SYMBOL vmlinux 0x365acda7 set_normalized_timespec64 EXPORT_SYMBOL vmlinux 0x365e7911 kstrdup_const EXPORT_SYMBOL vmlinux 0x366707c9 jent_testing_init -EXPORT_SYMBOL vmlinux 0x36689bd0 dev_kfree_skb_irq_reason -EXPORT_SYMBOL vmlinux 0x3676818e pipe_lock -EXPORT_SYMBOL vmlinux 0x3677f8db of_device_unregister -EXPORT_SYMBOL vmlinux 0x369011b6 scsi_report_bus_reset -EXPORT_SYMBOL vmlinux 0x36a03fea tcp_gro_complete -EXPORT_SYMBOL vmlinux 0x36a3f3f4 dev_uc_add_excl -EXPORT_SYMBOL vmlinux 0x36b13de0 input_register_handler -EXPORT_SYMBOL vmlinux 0x36bc2404 d_alloc_name -EXPORT_SYMBOL vmlinux 0x36bff84c dev_get_by_index -EXPORT_SYMBOL vmlinux 0x36c84623 read_cache_page -EXPORT_SYMBOL vmlinux 0x36d1c9f4 dmaengine_get_unmap_data -EXPORT_SYMBOL vmlinux 0x36e30e72 sync_blockdev -EXPORT_SYMBOL vmlinux 0x36e46046 param_set_byte -EXPORT_SYMBOL vmlinux 0x36f69edc genphy_aneg_done -EXPORT_SYMBOL vmlinux 0x3717a5b0 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x36723b51 param_ops_int +EXPORT_SYMBOL vmlinux 0x3674ab36 pci_irq_vector +EXPORT_SYMBOL vmlinux 0x369e6ca4 vfs_dedupe_file_range +EXPORT_SYMBOL vmlinux 0x36dfae13 sb_set_blocksize EXPORT_SYMBOL vmlinux 0x371e1953 __printk_cpu_sync_wait -EXPORT_SYMBOL vmlinux 0x372e0952 tcf_exts_init_ex -EXPORT_SYMBOL vmlinux 0x373d327e inet_accept +EXPORT_SYMBOL vmlinux 0x372815d3 security_dentry_create_files_as +EXPORT_SYMBOL vmlinux 0x372f1a7c kern_unmount_array +EXPORT_SYMBOL vmlinux 0x373c8eda xp_alloc +EXPORT_SYMBOL vmlinux 0x373cedfb __skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x3742033f unregister_shrinker EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn -EXPORT_SYMBOL vmlinux 0x374ef2f9 netdev_has_any_upper_dev EXPORT_SYMBOL vmlinux 0x3755f990 gf128mul_init_64k_bbe -EXPORT_SYMBOL vmlinux 0x3764cfe7 dev_mc_sync_multiple EXPORT_SYMBOL vmlinux 0x3768c933 mutex_is_locked -EXPORT_SYMBOL vmlinux 0x376d6160 vme_register_error_handler +EXPORT_SYMBOL vmlinux 0x376927e4 generic_set_encrypted_ci_d_ops EXPORT_SYMBOL vmlinux 0x377d8004 acpi_error -EXPORT_SYMBOL vmlinux 0x377e65f9 dquot_quota_on_mount -EXPORT_SYMBOL vmlinux 0x37a27ff0 finish_no_open -EXPORT_SYMBOL vmlinux 0x37b03d37 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x37890d65 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x378995b2 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x378b6c50 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x37989f71 inet_csk_reqsk_queue_drop +EXPORT_SYMBOL vmlinux 0x379b8556 inet_bind +EXPORT_SYMBOL vmlinux 0x37ac619c writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x37b1f26c jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x37b4b558 kmem_cache_shrink EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs -EXPORT_SYMBOL vmlinux 0x37d652dd __breadahead -EXPORT_SYMBOL vmlinux 0x37efc155 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x37c2c97d dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x37c883a5 bdi_alloc +EXPORT_SYMBOL vmlinux 0x37cb3cc1 eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x37d875a4 from_kprojid +EXPORT_SYMBOL vmlinux 0x37e0e769 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x380797d8 pci_read_vpd_any +EXPORT_SYMBOL vmlinux 0x380b0848 nf_log_unset EXPORT_SYMBOL vmlinux 0x380d405b sbi_spec_version -EXPORT_SYMBOL vmlinux 0x380ffbfe skb_flow_dissect_ct -EXPORT_SYMBOL vmlinux 0x3815168b fqdir_exit +EXPORT_SYMBOL vmlinux 0x3818b664 _dev_info EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus -EXPORT_SYMBOL vmlinux 0x3828a6e2 block_page_mkwrite -EXPORT_SYMBOL vmlinux 0x382bbbd4 no_seek_end_llseek -EXPORT_SYMBOL vmlinux 0x3831d192 vfs_mknod -EXPORT_SYMBOL vmlinux 0x38359a2a reuseport_alloc -EXPORT_SYMBOL vmlinux 0x383703e5 __scm_send -EXPORT_SYMBOL vmlinux 0x383fc8bf request_firmware -EXPORT_SYMBOL vmlinux 0x3840db9a blk_queue_max_secure_erase_sectors +EXPORT_SYMBOL vmlinux 0x38239c20 inet_shutdown +EXPORT_SYMBOL vmlinux 0x382dbd59 ip_cmsg_recv_offset +EXPORT_SYMBOL vmlinux 0x38343fbd udp_poll +EXPORT_SYMBOL vmlinux 0x383ca252 default_qdisc_ops +EXPORT_SYMBOL vmlinux 0x383f50ff file_remove_privs +EXPORT_SYMBOL vmlinux 0x384c75ba d_lookup EXPORT_SYMBOL vmlinux 0x3854774b kstrtoll +EXPORT_SYMBOL vmlinux 0x3855db53 netdev_lower_get_first_private_rcu EXPORT_SYMBOL vmlinux 0x3858b9bb percpu_counter_set EXPORT_SYMBOL vmlinux 0x385c7481 __tracepoint_mmap_lock_start_locking -EXPORT_SYMBOL vmlinux 0x38798d74 tty_register_driver -EXPORT_SYMBOL vmlinux 0x388396e8 tcp_seq_next +EXPORT_SYMBOL vmlinux 0x38710b63 acpi_device_set_power EXPORT_SYMBOL vmlinux 0x38869d88 kstat EXPORT_SYMBOL vmlinux 0x3891ffc8 ecryptfs_fill_auth_tok EXPORT_SYMBOL vmlinux 0x389617b0 LZ4_decompress_fast_continue +EXPORT_SYMBOL vmlinux 0x38a243df phy_config_aneg +EXPORT_SYMBOL vmlinux 0x38a25755 __blk_rq_map_sg EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback -EXPORT_SYMBOL vmlinux 0x38c61a5d param_set_ulong -EXPORT_SYMBOL vmlinux 0x38f278ce secpath_set -EXPORT_SYMBOL vmlinux 0x38f7d816 netif_receive_skb_core -EXPORT_SYMBOL vmlinux 0x391cb4f6 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x38d42105 iter_file_splice_write +EXPORT_SYMBOL vmlinux 0x38e07300 ethtool_aggregate_mac_stats +EXPORT_SYMBOL vmlinux 0x38e2ca5f pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0x38ec5860 mq_change_real_num_tx +EXPORT_SYMBOL vmlinux 0x38fb3ef8 iov_iter_discard +EXPORT_SYMBOL vmlinux 0x39044f87 mmc_release_host EXPORT_SYMBOL vmlinux 0x391df80a netstamp_needed_key -EXPORT_SYMBOL vmlinux 0x39201144 skb_try_coalesce -EXPORT_SYMBOL vmlinux 0x39308f27 d_lookup +EXPORT_SYMBOL vmlinux 0x3924ca6c jbd2_fc_end_commit_fallback +EXPORT_SYMBOL vmlinux 0x3934e3a4 netdev_lower_get_next_private EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling -EXPORT_SYMBOL vmlinux 0x393fd660 generic_copy_file_range EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p EXPORT_SYMBOL vmlinux 0x394a1e11 phy_sfp_attach -EXPORT_SYMBOL vmlinux 0x394d2354 seq_hex_dump -EXPORT_SYMBOL vmlinux 0x39503c14 fsync_bdev -EXPORT_SYMBOL vmlinux 0x39554f5c clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x3950ff14 seg6_hmac_info_lookup EXPORT_SYMBOL vmlinux 0x3955fcf6 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x395898e1 flow_indr_block_cb_alloc EXPORT_SYMBOL vmlinux 0x3961b551 down_read_killable -EXPORT_SYMBOL vmlinux 0x397cd1fe mipi_dsi_host_unregister +EXPORT_SYMBOL vmlinux 0x396e1050 skb_queue_tail EXPORT_SYMBOL vmlinux 0x39991865 icmp_global_allow EXPORT_SYMBOL vmlinux 0x399ad043 __kfifo_dma_out_finish_r -EXPORT_SYMBOL vmlinux 0x399bed8c inode_init_always -EXPORT_SYMBOL vmlinux 0x399f45ee __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x39a30a0d xfrm_register_type +EXPORT_SYMBOL vmlinux 0x39aa767e hmm_range_fault +EXPORT_SYMBOL vmlinux 0x39ab6583 skb_set_owner_w +EXPORT_SYMBOL vmlinux 0x39ad5eb8 wrap_directory_iterator +EXPORT_SYMBOL vmlinux 0x39b0f48e param_get_short EXPORT_SYMBOL vmlinux 0x39b12223 __acpi_handle_debug -EXPORT_SYMBOL vmlinux 0x39b5f7cd __block_write_full_folio -EXPORT_SYMBOL vmlinux 0x39bf4b7a fscrypt_free_inode +EXPORT_SYMBOL vmlinux 0x39bd5a26 ipv6_push_frag_opts EXPORT_SYMBOL vmlinux 0x39c74235 dm_read_arg_group -EXPORT_SYMBOL vmlinux 0x39d5490d deactivate_locked_super EXPORT_SYMBOL vmlinux 0x39d95ca4 zstd_reset_cstream +EXPORT_SYMBOL vmlinux 0x39e64b7e kernel_write EXPORT_SYMBOL vmlinux 0x39e979be __xa_alloc -EXPORT_SYMBOL vmlinux 0x39ebd3ab folio_migrate_mapping -EXPORT_SYMBOL vmlinux 0x39ef90e7 scsi_set_medium_removal -EXPORT_SYMBOL vmlinux 0x39f938b5 tcf_em_tree_validate -EXPORT_SYMBOL vmlinux 0x3a03a53a flow_rule_alloc -EXPORT_SYMBOL vmlinux 0x3a071672 mmc_gpiod_request_ro -EXPORT_SYMBOL vmlinux 0x3a0a3799 blk_mq_tagset_busy_iter -EXPORT_SYMBOL vmlinux 0x3a258fe0 from_kprojid_munged -EXPORT_SYMBOL vmlinux 0x3a3986e4 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x39eef7fb genl_unregister_family +EXPORT_SYMBOL vmlinux 0x3a0ffc44 dquot_file_open +EXPORT_SYMBOL vmlinux 0x3a1a0e32 __traceiter_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0x3a3cb645 phy_ethtool_get_strings +EXPORT_SYMBOL vmlinux 0x3a482416 pnp_possible_config +EXPORT_SYMBOL vmlinux 0x3a4bdd31 netdev_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0x3a4d114f filemap_release_folio EXPORT_SYMBOL vmlinux 0x3a4f9d28 rng_is_initialized EXPORT_SYMBOL vmlinux 0x3a516709 __cpuhp_setup_state_cpuslocked -EXPORT_SYMBOL vmlinux 0x3a6bb646 wireless_send_event -EXPORT_SYMBOL vmlinux 0x3a7958f2 ___pskb_trim -EXPORT_SYMBOL vmlinux 0x3a9ed139 remove_watch_from_object +EXPORT_SYMBOL vmlinux 0x3a52811b mmc_card_is_blockaddr +EXPORT_SYMBOL vmlinux 0x3a645d84 ps2_interrupt +EXPORT_SYMBOL vmlinux 0x3a72dcf3 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x3a792656 skb_copy_header +EXPORT_SYMBOL vmlinux 0x3a7be75a seq_escape_mem +EXPORT_SYMBOL vmlinux 0x3a81f261 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x3a860cb2 xfrm6_rcv_encap +EXPORT_SYMBOL vmlinux 0x3a8b7cac pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x3a8d6f2e clkdev_drop +EXPORT_SYMBOL vmlinux 0x3a90d5d7 ipv6_sock_mc_join +EXPORT_SYMBOL vmlinux 0x3aa19859 devfreq_monitor_suspend EXPORT_SYMBOL vmlinux 0x3ab28948 console_srcu_read_lock EXPORT_SYMBOL vmlinux 0x3ab7b1cc scsi_set_sense_field_pointer -EXPORT_SYMBOL vmlinux 0x3ab7d2fc of_graph_is_present -EXPORT_SYMBOL vmlinux 0x3ad392d9 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x3ac290a1 set_create_files_as +EXPORT_SYMBOL vmlinux 0x3ac29dae seq_read_iter +EXPORT_SYMBOL vmlinux 0x3ad59368 ip_mc_leave_group EXPORT_SYMBOL vmlinux 0x3ad7a5d5 acpi_evaluate_reference EXPORT_SYMBOL vmlinux 0x3ada9e06 acpi_check_region -EXPORT_SYMBOL vmlinux 0x3add6232 take_dentry_name_snapshot -EXPORT_SYMBOL vmlinux 0x3add67ce security_unix_may_send +EXPORT_SYMBOL vmlinux 0x3addf55a jbd2_journal_extend EXPORT_SYMBOL vmlinux 0x3ae34aeb zstd_init_dctx -EXPORT_SYMBOL vmlinux 0x3ae851ad tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x3afb7a97 of_find_node_opts_by_path EXPORT_SYMBOL vmlinux 0x3aff3200 acpi_evaluate_object_typed -EXPORT_SYMBOL vmlinux 0x3b1f5ce5 dev_mc_add_global -EXPORT_SYMBOL vmlinux 0x3b2da1f4 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x3b0f3fd9 copy_page_to_iter_nofault +EXPORT_SYMBOL vmlinux 0x3b2ce04b simple_dentry_operations EXPORT_SYMBOL vmlinux 0x3b321462 LZ4_setStreamDecode +EXPORT_SYMBOL vmlinux 0x3b351a4a crypto_sha3_update +EXPORT_SYMBOL vmlinux 0x3b4f7718 tc_setup_offload_action +EXPORT_SYMBOL vmlinux 0x3b59d46e tcf_idr_release EXPORT_SYMBOL vmlinux 0x3b644591 __bitmap_shift_left EXPORT_SYMBOL vmlinux 0x3b6c41ea kstrtouint -EXPORT_SYMBOL vmlinux 0x3b805cf6 phy_attached_info_irq -EXPORT_SYMBOL vmlinux 0x3b902716 of_root +EXPORT_SYMBOL vmlinux 0x3b7ad330 pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0x3b7e9e19 ipv6_dev_find +EXPORT_SYMBOL vmlinux 0x3b8b2472 setattr_should_drop_sgid +EXPORT_SYMBOL vmlinux 0x3b90dfe6 configfs_unregister_group EXPORT_SYMBOL vmlinux 0x3b9144c9 acpi_get_current_resources -EXPORT_SYMBOL vmlinux 0x3b9186c6 mipi_dsi_dcs_set_display_brightness_large -EXPORT_SYMBOL vmlinux 0x3b9cc834 has_capability_noaudit -EXPORT_SYMBOL vmlinux 0x3ba2feb8 always_delete_dentry EXPORT_SYMBOL vmlinux 0x3ba96bc4 cpu_rmap_update -EXPORT_SYMBOL vmlinux 0x3bc28073 folio_alloc -EXPORT_SYMBOL vmlinux 0x3c1606e1 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x3bc2b635 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x3bc4cc4d flow_rule_match_ports +EXPORT_SYMBOL vmlinux 0x3bf48ccb io_uring_destruct_scm +EXPORT_SYMBOL vmlinux 0x3bf8a734 param_set_byte +EXPORT_SYMBOL vmlinux 0x3bfa27ec d_mark_dontcache +EXPORT_SYMBOL vmlinux 0x3bfbed21 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x3c105cd7 filemap_fdatawrite_range EXPORT_SYMBOL vmlinux 0x3c185c61 page_put_link +EXPORT_SYMBOL vmlinux 0x3c344ea4 clk_hw_get_clk EXPORT_SYMBOL vmlinux 0x3c3fce39 __local_bh_enable_ip EXPORT_SYMBOL vmlinux 0x3c3ff9fd sprintf -EXPORT_SYMBOL vmlinux 0x3c4ead26 iommu_dma_get_resv_regions -EXPORT_SYMBOL vmlinux 0x3c58abe5 key_payload_reserve -EXPORT_SYMBOL vmlinux 0x3c590362 vlan_filter_drop_vids -EXPORT_SYMBOL vmlinux 0x3c758583 eth_header_cache_update -EXPORT_SYMBOL vmlinux 0x3c90319e neigh_app_ns -EXPORT_SYMBOL vmlinux 0x3c9f8435 block_invalidate_folio -EXPORT_SYMBOL vmlinux 0x3ca64b14 sock_cmsg_send -EXPORT_SYMBOL vmlinux 0x3cb0252b phy_stop +EXPORT_SYMBOL vmlinux 0x3c6ce963 kernel_param_lock +EXPORT_SYMBOL vmlinux 0x3c839804 genphy_setup_forced +EXPORT_SYMBOL vmlinux 0x3c86fa9e xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x3ca68ec4 folio_mark_dirty +EXPORT_SYMBOL vmlinux 0x3cafc6e5 udp6_csum_init EXPORT_SYMBOL vmlinux 0x3cb23db3 console_srcu_read_unlock -EXPORT_SYMBOL vmlinux 0x3cb421e5 vfs_mkobj +EXPORT_SYMBOL vmlinux 0x3cb534bc netdev_refcnt_read EXPORT_SYMBOL vmlinux 0x3cbb940b zstd_init_dstream -EXPORT_SYMBOL vmlinux 0x3cbf15dc kernel_tmpfile_open -EXPORT_SYMBOL vmlinux 0x3ce4a5c5 read_code +EXPORT_SYMBOL vmlinux 0x3cd6beee phy_get_pause EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq -EXPORT_SYMBOL vmlinux 0x3d01e71e fs_param_is_fd -EXPORT_SYMBOL vmlinux 0x3d026277 inet_frag_reasm_prepare -EXPORT_SYMBOL vmlinux 0x3d03c99f mipi_dsi_dcs_set_page_address -EXPORT_SYMBOL vmlinux 0x3d1584d5 skb_seq_read -EXPORT_SYMBOL vmlinux 0x3d436e8c mark_buffer_dirty -EXPORT_SYMBOL vmlinux 0x3d49937d vm_insert_pages -EXPORT_SYMBOL vmlinux 0x3d792938 register_qdisc -EXPORT_SYMBOL vmlinux 0x3d89925a d_set_d_op -EXPORT_SYMBOL vmlinux 0x3d8a2f25 vme_bus_num -EXPORT_SYMBOL vmlinux 0x3d8d7d62 sget_fc -EXPORT_SYMBOL vmlinux 0x3d9d5a43 wake_up_process +EXPORT_SYMBOL vmlinux 0x3d00fcc3 of_get_parent +EXPORT_SYMBOL vmlinux 0x3d031006 mipi_dsi_dcs_write +EXPORT_SYMBOL vmlinux 0x3d093317 kern_path_create +EXPORT_SYMBOL vmlinux 0x3d2a3615 lookup_one_len +EXPORT_SYMBOL vmlinux 0x3d47169b generic_read_dir +EXPORT_SYMBOL vmlinux 0x3d4c9a90 param_ops_ullong +EXPORT_SYMBOL vmlinux 0x3d6bb3fc input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0x3d825e39 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x3d8fdb83 jbd2_journal_stop EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3da43475 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x3da44df9 kernel_sendmsg EXPORT_SYMBOL vmlinux 0x3dabf271 memcg_sockets_enabled_key EXPORT_SYMBOL vmlinux 0x3dac779a bpf_sk_lookup_enabled EXPORT_SYMBOL vmlinux 0x3dad9978 cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x3dbbfce1 input_allocate_device EXPORT_SYMBOL vmlinux 0x3dc4cd68 __nla_put_64bit EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3df7f7f6 finish_open EXPORT_SYMBOL vmlinux 0x3dfb86b9 resource_list_create_entry EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head -EXPORT_SYMBOL vmlinux 0x3e0c1f03 __module_get +EXPORT_SYMBOL vmlinux 0x3e137290 dst_alloc +EXPORT_SYMBOL vmlinux 0x3e154bc8 generic_listxattr +EXPORT_SYMBOL vmlinux 0x3e1a36a4 mmc_can_gpio_cd EXPORT_SYMBOL vmlinux 0x3e2ac554 proc_dointvec -EXPORT_SYMBOL vmlinux 0x3e361bee register_quota_format +EXPORT_SYMBOL vmlinux 0x3e2cdc5c __dynamic_ibdev_dbg EXPORT_SYMBOL vmlinux 0x3e3bad0a __tasklet_hi_schedule -EXPORT_SYMBOL vmlinux 0x3e4650bc mmc_unregister_driver -EXPORT_SYMBOL vmlinux 0x3e4b3496 truncate_setsize -EXPORT_SYMBOL vmlinux 0x3e5f6988 mipi_dsi_dcs_set_display_off -EXPORT_SYMBOL vmlinux 0x3e6da22c param_ops_bint -EXPORT_SYMBOL vmlinux 0x3e7d59aa ndisc_send_skb -EXPORT_SYMBOL vmlinux 0x3e80d2c8 register_netdevice -EXPORT_SYMBOL vmlinux 0x3e8478bf cdev_alloc -EXPORT_SYMBOL vmlinux 0x3e985f5f cdrom_ioctl -EXPORT_SYMBOL vmlinux 0x3e99c9d7 netlink_kernel_release -EXPORT_SYMBOL vmlinux 0x3ead659c dma_map_page_attrs -EXPORT_SYMBOL vmlinux 0x3eae9366 vlan_uses_dev -EXPORT_SYMBOL vmlinux 0x3ecc0ec8 from_kgid +EXPORT_SYMBOL vmlinux 0x3e47be29 ethtool_virtdev_set_link_ksettings +EXPORT_SYMBOL vmlinux 0x3e8a7cb3 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x3ea31429 tls_client_hello_anon +EXPORT_SYMBOL vmlinux 0x3ec6a3fa mmc_retune_release EXPORT_SYMBOL vmlinux 0x3eccbe2c __find_nth_bit -EXPORT_SYMBOL vmlinux 0x3ece4eeb iov_iter_advance -EXPORT_SYMBOL vmlinux 0x3ed1fde9 pcie_set_readrq -EXPORT_SYMBOL vmlinux 0x3ed901bb pfifo_fast_ops -EXPORT_SYMBOL vmlinux 0x3edfafd6 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x3ed77328 d_alloc_anon +EXPORT_SYMBOL vmlinux 0x3ee4acd7 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x3ef28cc3 i2c_put_adapter EXPORT_SYMBOL vmlinux 0x3efe1703 phy_unregister_fixup_for_id +EXPORT_SYMBOL vmlinux 0x3f05ed59 inode_set_bytes EXPORT_SYMBOL vmlinux 0x3f0eabd2 xxh64_update -EXPORT_SYMBOL vmlinux 0x3f1358fe kfree_skb_list_reason -EXPORT_SYMBOL vmlinux 0x3f22ca6e __mmc_claim_host EXPORT_SYMBOL vmlinux 0x3f2ef0ec radix_tree_tagged EXPORT_SYMBOL vmlinux 0x3f34644d zstd_dstream_workspace_bound -EXPORT_SYMBOL vmlinux 0x3f34c6d6 kmem_cache_create_usercopy +EXPORT_SYMBOL vmlinux 0x3f3ef0e2 tty_hung_up_p EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd -EXPORT_SYMBOL vmlinux 0x3f5255f8 ps2_sliced_command -EXPORT_SYMBOL vmlinux 0x3f717a6c padata_do_parallel -EXPORT_SYMBOL vmlinux 0x3f7fc018 iov_iter_bvec -EXPORT_SYMBOL vmlinux 0x3f82be48 netdev_next_lower_dev_rcu +EXPORT_SYMBOL vmlinux 0x3f4e3f4b scsi_host_get +EXPORT_SYMBOL vmlinux 0x3f68c796 thaw_super +EXPORT_SYMBOL vmlinux 0x3f7da26d rt6_lookup +EXPORT_SYMBOL vmlinux 0x3f7f87bf vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x3f835fc8 dma_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x3f854a1a vfs_llseek EXPORT_SYMBOL vmlinux 0x3f89071b security_ib_pkey_access -EXPORT_SYMBOL vmlinux 0x3f8c78fb io_uring_destruct_scm -EXPORT_SYMBOL vmlinux 0x3f939af3 pci_free_host_bridge -EXPORT_SYMBOL vmlinux 0x3f97fb35 phy_drivers_register -EXPORT_SYMBOL vmlinux 0x3fa79003 security_task_getsecid_obj +EXPORT_SYMBOL vmlinux 0x3fab43a0 flow_indr_dev_register +EXPORT_SYMBOL vmlinux 0x3fb78dd0 ip6tun_encaps +EXPORT_SYMBOL vmlinux 0x3fbe6a8a dma_free_attrs EXPORT_SYMBOL vmlinux 0x3fbf3c89 vme_slave_set -EXPORT_SYMBOL vmlinux 0x3fd761c0 ip_frag_init EXPORT_SYMBOL vmlinux 0x3fd78f3b register_chrdev_region +EXPORT_SYMBOL vmlinux 0x3fda93c2 tcp_inbound_md5_hash +EXPORT_SYMBOL vmlinux 0x3fde506c pci_unregister_driver EXPORT_SYMBOL vmlinux 0x3fdfb62c _raw_write_trylock EXPORT_SYMBOL vmlinux 0x3fe2ccbe memweight -EXPORT_SYMBOL vmlinux 0x3ff8964b of_platform_device_create -EXPORT_SYMBOL vmlinux 0x3ffd59dc __pskb_pull_tail -EXPORT_SYMBOL vmlinux 0x401471c3 genphy_read_status -EXPORT_SYMBOL vmlinux 0x4014893a ipv6_sock_mc_drop -EXPORT_SYMBOL vmlinux 0x4021b300 pci_alloc_dev -EXPORT_SYMBOL vmlinux 0x40252348 unregister_qdisc -EXPORT_SYMBOL vmlinux 0x40384af5 dev_mc_del_global -EXPORT_SYMBOL vmlinux 0x4050a92d of_get_next_child -EXPORT_SYMBOL vmlinux 0x4080c706 phy_print_status +EXPORT_SYMBOL vmlinux 0x3fef7138 kernel_listen +EXPORT_SYMBOL vmlinux 0x401dc5c2 __check_sticky +EXPORT_SYMBOL vmlinux 0x401f960c tcf_get_next_proto +EXPORT_SYMBOL vmlinux 0x4030d0ed km_query +EXPORT_SYMBOL vmlinux 0x40333f47 __folio_alloc +EXPORT_SYMBOL vmlinux 0x40356ccd device_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x403655d5 blk_queue_max_secure_erase_sectors +EXPORT_SYMBOL vmlinux 0x4054d74c __vfs_getxattr +EXPORT_SYMBOL vmlinux 0x40687afd __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x407cbb2b tty_lock +EXPORT_SYMBOL vmlinux 0x4082b06c mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x4085a8d1 dev_remove_offload EXPORT_SYMBOL vmlinux 0x40863ba1 ioremap_prot EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem EXPORT_SYMBOL vmlinux 0x40a62432 __nla_validate +EXPORT_SYMBOL vmlinux 0x40a70c6a simple_open EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc -EXPORT_SYMBOL vmlinux 0x40bfd417 bd_abort_claiming -EXPORT_SYMBOL vmlinux 0x40c69323 pnp_activate_dev EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock EXPORT_SYMBOL vmlinux 0x40d59096 unregister_restart_handler -EXPORT_SYMBOL vmlinux 0x40e5b51e inet_frag_kill -EXPORT_SYMBOL vmlinux 0x40e60279 fib_notifier_ops_unregister -EXPORT_SYMBOL vmlinux 0x40f2690f pm860x_page_bulk_read -EXPORT_SYMBOL vmlinux 0x40f54356 fs_param_is_u32 +EXPORT_SYMBOL vmlinux 0x40d6b8c1 param_get_ullong +EXPORT_SYMBOL vmlinux 0x40e35d17 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x40f15374 __scsi_add_device EXPORT_SYMBOL vmlinux 0x40f76a86 __vcalloc -EXPORT_SYMBOL vmlinux 0x4116bd56 __scsi_print_sense -EXPORT_SYMBOL vmlinux 0x4128154e blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x40fa6fa3 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x41009706 make_kuid +EXPORT_SYMBOL vmlinux 0x4115ae7e nd_dev_to_uuid +EXPORT_SYMBOL vmlinux 0x4117882e uart_add_one_port +EXPORT_SYMBOL vmlinux 0x411bff27 netdev_get_by_name +EXPORT_SYMBOL vmlinux 0x411d2f3c ip_tunnel_parse_protocol +EXPORT_SYMBOL vmlinux 0x4121c22e i2c_smbus_read_byte EXPORT_SYMBOL vmlinux 0x412e26fd dma_fence_chain_walk EXPORT_SYMBOL vmlinux 0x412f893c page_offline_begin -EXPORT_SYMBOL vmlinux 0x414108b5 kmem_cache_free_bulk +EXPORT_SYMBOL vmlinux 0x4136a59e alloc_anon_inode +EXPORT_SYMBOL vmlinux 0x41392ca5 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x414685f9 __dec_node_page_state EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user -EXPORT_SYMBOL vmlinux 0x4159a966 xattr_full_name -EXPORT_SYMBOL vmlinux 0x4159b795 tty_hangup EXPORT_SYMBOL vmlinux 0x415f0925 dma_fence_get_status -EXPORT_SYMBOL vmlinux 0x41607c54 configfs_depend_item_unlocked -EXPORT_SYMBOL vmlinux 0x4163da97 fput EXPORT_SYMBOL vmlinux 0x416be379 trace_seq_acquire -EXPORT_SYMBOL vmlinux 0x416d2e7f key_reject_and_link -EXPORT_SYMBOL vmlinux 0x417186de flow_rule_match_control -EXPORT_SYMBOL vmlinux 0x417cced7 truncate_inode_pages_range -EXPORT_SYMBOL vmlinux 0x417fe812 xfrm_if_register_cb -EXPORT_SYMBOL vmlinux 0x41857314 seq_read_iter +EXPORT_SYMBOL vmlinux 0x417a0dea phy_drivers_register +EXPORT_SYMBOL vmlinux 0x417d1c16 tcf_action_dump_1 EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time -EXPORT_SYMBOL vmlinux 0x418fa7db __genphy_config_aneg -EXPORT_SYMBOL vmlinux 0x419462a5 sock_bindtoindex -EXPORT_SYMBOL vmlinux 0x41a743ae serio_reconnect -EXPORT_SYMBOL vmlinux 0x41d7f134 pci_fixup_device -EXPORT_SYMBOL vmlinux 0x41e52ddd ppp_unit_number +EXPORT_SYMBOL vmlinux 0x41b601a8 __skb_checksum_complete EXPORT_SYMBOL vmlinux 0x41ed3709 get_random_bytes -EXPORT_SYMBOL vmlinux 0x41f01ec3 of_device_is_compatible -EXPORT_SYMBOL vmlinux 0x41ff5b6c seq_path -EXPORT_SYMBOL vmlinux 0x42006835 configfs_register_default_group -EXPORT_SYMBOL vmlinux 0x4215ce2e register_console -EXPORT_SYMBOL vmlinux 0x421c0948 release_sock -EXPORT_SYMBOL vmlinux 0x423c0b2b vme_lm_request -EXPORT_SYMBOL vmlinux 0x42426f3f flow_block_cb_setup_simple +EXPORT_SYMBOL vmlinux 0x421e5d12 dev_mc_init +EXPORT_SYMBOL vmlinux 0x423bdcde ip_route_input_noref +EXPORT_SYMBOL vmlinux 0x42487925 skb_try_coalesce EXPORT_SYMBOL vmlinux 0x4248ae3c single_task_running EXPORT_SYMBOL vmlinux 0x424d3620 zlib_inflateIncomp -EXPORT_SYMBOL vmlinux 0x42542575 tcp_fastopen_defer_connect +EXPORT_SYMBOL vmlinux 0x42523b0a iov_iter_alignment +EXPORT_SYMBOL vmlinux 0x42547158 key_validate EXPORT_SYMBOL vmlinux 0x42578e80 acpi_get_type -EXPORT_SYMBOL vmlinux 0x428a93bf vlan_filter_push_vids -EXPORT_SYMBOL vmlinux 0x428e568b skb_copy_and_csum_datagram_msg -EXPORT_SYMBOL vmlinux 0x428f67d2 sock_set_reuseport +EXPORT_SYMBOL vmlinux 0x426c79e1 tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0x42784bff read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x429425be udp_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x4298acb5 tty_unregister_device EXPORT_SYMBOL vmlinux 0x4299e3d1 dma_fence_default_wait -EXPORT_SYMBOL vmlinux 0x429c0447 blk_queue_max_segments -EXPORT_SYMBOL vmlinux 0x42a31ecf devm_devfreq_add_governor -EXPORT_SYMBOL vmlinux 0x42ad453d dev_getfirstbyhwtype -EXPORT_SYMBOL vmlinux 0x42b1b618 prepare_kernel_cred -EXPORT_SYMBOL vmlinux 0x42c18c74 tty_port_block_til_ready -EXPORT_SYMBOL vmlinux 0x42cc439b netdev_get_by_index -EXPORT_SYMBOL vmlinux 0x42ce9af8 blk_integrity_unregister -EXPORT_SYMBOL vmlinux 0x42de3111 __inet_stream_connect -EXPORT_SYMBOL vmlinux 0x42ecf7cd dma_get_sgtable_attrs +EXPORT_SYMBOL vmlinux 0x429e5996 folio_account_redirty +EXPORT_SYMBOL vmlinux 0x42a3fedd dev_load +EXPORT_SYMBOL vmlinux 0x42b1cc4c neigh_destroy +EXPORT_SYMBOL vmlinux 0x42b3002f __filemap_get_folio +EXPORT_SYMBOL vmlinux 0x42b82c3f tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x42bff6e3 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x42cf576a d_obtain_root +EXPORT_SYMBOL vmlinux 0x42dbdfd6 i2c_get_match_data +EXPORT_SYMBOL vmlinux 0x42dd71d0 pci_restore_state EXPORT_SYMBOL vmlinux 0x42f1b900 fb_pad_unaligned_buffer -EXPORT_SYMBOL vmlinux 0x430071dd arp_create +EXPORT_SYMBOL vmlinux 0x42fd3c71 nd_region_to_nstype EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43084e7f dquot_quotactl_sysfile_ops EXPORT_SYMBOL vmlinux 0x4336fcca ucs2_as_utf8 -EXPORT_SYMBOL vmlinux 0x4337b083 scsi_device_set_state EXPORT_SYMBOL vmlinux 0x433cabfb acpi_decode_pld_buffer -EXPORT_SYMBOL vmlinux 0x43467235 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x433d74cf ppp_input_error +EXPORT_SYMBOL vmlinux 0x434c0c31 fscrypt_fname_disk_to_usr EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid -EXPORT_SYMBOL vmlinux 0x4358c6ff udp_seq_stop +EXPORT_SYMBOL vmlinux 0x435baa41 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x435bffb6 ipmr_rule_default +EXPORT_SYMBOL vmlinux 0x4370cfb7 rdmacg_uncharge EXPORT_SYMBOL vmlinux 0x437a0d6d __sock_tx_timestamp EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security -EXPORT_SYMBOL vmlinux 0x438f82b6 alloc_pages +EXPORT_SYMBOL vmlinux 0x43a112ef devm_memremap EXPORT_SYMBOL vmlinux 0x43a4938f vm_get_page_prot -EXPORT_SYMBOL vmlinux 0x43b2f859 inet_csk_prepare_forced_close EXPORT_SYMBOL vmlinux 0x43babd19 sg_init_one EXPORT_SYMBOL vmlinux 0x43ca69f1 nla_put_nohdr EXPORT_SYMBOL vmlinux 0x43d22fb9 groups_alloc -EXPORT_SYMBOL vmlinux 0x43f1f77d input_register_device +EXPORT_SYMBOL vmlinux 0x43dc30ed register_fib_notifier +EXPORT_SYMBOL vmlinux 0x43e0f84b unregister_mii_timestamper EXPORT_SYMBOL vmlinux 0x43f9ebc8 slhc_remember EXPORT_SYMBOL vmlinux 0x4401802d mutex_lock -EXPORT_SYMBOL vmlinux 0x4407a3ca __napi_alloc_skb -EXPORT_SYMBOL vmlinux 0x441d1a77 netdev_unbind_sb_channel -EXPORT_SYMBOL vmlinux 0x4423b0d4 file_update_time -EXPORT_SYMBOL vmlinux 0x442745df adjust_managed_page_count -EXPORT_SYMBOL vmlinux 0x443632be pm860x_bulk_write -EXPORT_SYMBOL vmlinux 0x443f3d51 inet_dgram_ops EXPORT_SYMBOL vmlinux 0x44469a76 crc_ccitt_false_table +EXPORT_SYMBOL vmlinux 0x4446e5b1 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x4461ac51 is_acpi_data_node EXPORT_SYMBOL vmlinux 0x4462d35e cpufreq_get_hw_max_freq -EXPORT_SYMBOL vmlinux 0x4466f361 component_match_add_release -EXPORT_SYMBOL vmlinux 0x448587e4 simple_pin_fs -EXPORT_SYMBOL vmlinux 0x448771fc rtnl_offload_xstats_notify -EXPORT_SYMBOL vmlinux 0x449b36e6 dev_alloc_name -EXPORT_SYMBOL vmlinux 0x44af6a5f generic_key_instantiate -EXPORT_SYMBOL vmlinux 0x44ca92e1 flow_block_cb_lookup -EXPORT_SYMBOL vmlinux 0x44ce070f nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x446d3ba6 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x446d7bf0 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x44811e71 put_cmsg_scm_timestamping64 +EXPORT_SYMBOL vmlinux 0x4492e8c4 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x4499f5c9 dquot_disable +EXPORT_SYMBOL vmlinux 0x44a13ce8 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x44b0e3e5 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x44b74f27 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x44d34d11 sock_ioctl_inout EXPORT_SYMBOL vmlinux 0x44d98015 nla_put_64bit +EXPORT_SYMBOL vmlinux 0x44dd5855 tcf_block_put_ext +EXPORT_SYMBOL vmlinux 0x44de4577 fb_set_var EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44ecd151 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x44f8b4a3 init_special_inode EXPORT_SYMBOL vmlinux 0x44fa6c3d xa_get_mark EXPORT_SYMBOL vmlinux 0x45006cee default_red EXPORT_SYMBOL vmlinux 0x450639ab sg_last EXPORT_SYMBOL vmlinux 0x45081703 ec_get_handle -EXPORT_SYMBOL vmlinux 0x451a3d68 ptp_find_pin +EXPORT_SYMBOL vmlinux 0x450dd1b3 __inode_add_bytes EXPORT_SYMBOL vmlinux 0x452ba683 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x452fa5c0 tcp_mtu_to_mss EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled -EXPORT_SYMBOL vmlinux 0x45447f27 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x45423849 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x454c52e5 dmam_pool_create EXPORT_SYMBOL vmlinux 0x45535485 xxh32_update -EXPORT_SYMBOL vmlinux 0x4557f6e1 seq_write -EXPORT_SYMBOL vmlinux 0x456a9ce6 dquot_commit +EXPORT_SYMBOL vmlinux 0x4560c41a ptp_cancel_worker_sync +EXPORT_SYMBOL vmlinux 0x4565537c pldmfw_op_pci_match_record +EXPORT_SYMBOL vmlinux 0x456bf29a inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x4572fc5c dquot_acquire +EXPORT_SYMBOL vmlinux 0x45775e27 load_nls_default EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user -EXPORT_SYMBOL vmlinux 0x458db32f __register_chrdev -EXPORT_SYMBOL vmlinux 0x45a97712 inode_needs_sync -EXPORT_SYMBOL vmlinux 0x45ae71a6 filemap_get_folios_tag -EXPORT_SYMBOL vmlinux 0x45b0926b blk_rq_count_integrity_sg -EXPORT_SYMBOL vmlinux 0x45c3778a tty_do_resize +EXPORT_SYMBOL vmlinux 0x4588544b mipi_dsi_picture_parameter_set +EXPORT_SYMBOL vmlinux 0x4599a2e1 mmc_start_request +EXPORT_SYMBOL vmlinux 0x45bacfd6 qdisc_watchdog_init EXPORT_SYMBOL vmlinux 0x45d2c9e6 wait_for_completion -EXPORT_SYMBOL vmlinux 0x45f41dff seq_putc -EXPORT_SYMBOL vmlinux 0x4604e7da unlock_new_inode +EXPORT_SYMBOL vmlinux 0x45e8fcd2 reuseport_alloc +EXPORT_SYMBOL vmlinux 0x45f044cd unregister_mii_tstamp_controller +EXPORT_SYMBOL vmlinux 0x46053dc3 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x4606b379 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x460d502d tcp_get_md5sig_pool EXPORT_SYMBOL vmlinux 0x460f4a34 flow_hash_from_keys -EXPORT_SYMBOL vmlinux 0x462dbf6c mmc_spi_get_pdata +EXPORT_SYMBOL vmlinux 0x461e9439 __traceiter_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0x462f2270 __blk_mq_alloc_disk EXPORT_SYMBOL vmlinux 0x462ffb84 set_security_override_from_ctx -EXPORT_SYMBOL vmlinux 0x4637c10c handshake_req_submit -EXPORT_SYMBOL vmlinux 0x46430211 noop_dirty_folio EXPORT_SYMBOL vmlinux 0x46451cee zstd_get_frame_header -EXPORT_SYMBOL vmlinux 0x4645a0bc xp_alloc_batch -EXPORT_SYMBOL vmlinux 0x465c5df0 scsi_change_queue_depth +EXPORT_SYMBOL vmlinux 0x46523850 locks_delete_block EXPORT_SYMBOL vmlinux 0x465e24ff ucs2_utf8size EXPORT_SYMBOL vmlinux 0x466c14a7 __delay -EXPORT_SYMBOL vmlinux 0x466da62a phy_disconnect -EXPORT_SYMBOL vmlinux 0x46723ab3 scsi_bios_ptable -EXPORT_SYMBOL vmlinux 0x467c8116 xfrm_dev_policy_flush EXPORT_SYMBOL vmlinux 0x467df16d netdev_rss_key_fill -EXPORT_SYMBOL vmlinux 0x4688de16 lookup_positive_unlocked -EXPORT_SYMBOL vmlinux 0x46894786 freezing_slow_path EXPORT_SYMBOL vmlinux 0x469a6ec7 tcp_parse_md5sig_option -EXPORT_SYMBOL vmlinux 0x46a6d88d folio_wait_private_2 +EXPORT_SYMBOL vmlinux 0x46a27f96 pskb_extract +EXPORT_SYMBOL vmlinux 0x46a4ba2d rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x46ad4c18 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x46b748c4 skb_push EXPORT_SYMBOL vmlinux 0x46bd5d6e video_get_options EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance -EXPORT_SYMBOL vmlinux 0x46c4ed00 acpi_notifier_call_chain -EXPORT_SYMBOL vmlinux 0x46c55098 fb_firmware_edid -EXPORT_SYMBOL vmlinux 0x46d2da6e copy_string_kernel -EXPORT_SYMBOL vmlinux 0x46d3b21c vlan_for_each -EXPORT_SYMBOL vmlinux 0x46d73c57 gro_find_complete_by_type -EXPORT_SYMBOL vmlinux 0x46f93789 pci_get_subsys -EXPORT_SYMBOL vmlinux 0x46ff041e neigh_event_ns -EXPORT_SYMBOL vmlinux 0x47001f70 kill_fasync -EXPORT_SYMBOL vmlinux 0x47062dec alloc_skb_with_frags +EXPORT_SYMBOL vmlinux 0x46fbb8bb security_sctp_bind_connect EXPORT_SYMBOL vmlinux 0x4715a909 acpi_load_table EXPORT_SYMBOL vmlinux 0x47201c88 refcount_dec_and_lock +EXPORT_SYMBOL vmlinux 0x473ab857 netif_device_detach +EXPORT_SYMBOL vmlinux 0x473d910a tcp_md5_key_copy EXPORT_SYMBOL vmlinux 0x4744d06a dma_fence_wait_timeout -EXPORT_SYMBOL vmlinux 0x475036d2 __traceiter_spi_transfer_start -EXPORT_SYMBOL vmlinux 0x475b265d pcie_print_link_status +EXPORT_SYMBOL vmlinux 0x4746c71b netdev_warn +EXPORT_SYMBOL vmlinux 0x47574789 ip4_datagram_connect EXPORT_SYMBOL vmlinux 0x47709e42 free_anon_bdev -EXPORT_SYMBOL vmlinux 0x477f90b2 netlbl_calipso_ops_register -EXPORT_SYMBOL vmlinux 0x478d355d dmaenginem_async_device_register -EXPORT_SYMBOL vmlinux 0x479e2635 devm_clk_get -EXPORT_SYMBOL vmlinux 0x47a8c7bd pci_pme_capable -EXPORT_SYMBOL vmlinux 0x47acbc78 path_get -EXPORT_SYMBOL vmlinux 0x47b33066 follow_pfn -EXPORT_SYMBOL vmlinux 0x47b4e32f unregister_shrinker -EXPORT_SYMBOL vmlinux 0x47b75995 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x477c4f35 get_fs_type +EXPORT_SYMBOL vmlinux 0x4781d5c3 request_firmware_into_buf +EXPORT_SYMBOL vmlinux 0x47855ecf iterate_fd +EXPORT_SYMBOL vmlinux 0x478e7f1b flow_rule_match_pppoe +EXPORT_SYMBOL vmlinux 0x47ad40ff inet_register_protosw +EXPORT_SYMBOL vmlinux 0x47b45fb0 fc_mount +EXPORT_SYMBOL vmlinux 0x47b563cc mipi_dsi_dcs_set_display_brightness_large EXPORT_SYMBOL vmlinux 0x47bd89be dma_fence_remove_callback EXPORT_SYMBOL vmlinux 0x47c20f8a refcount_dec_not_one EXPORT_SYMBOL vmlinux 0x47c65bfc unregister_inet6addr_validator_notifier -EXPORT_SYMBOL vmlinux 0x47cb6b13 iw_handler_set_thrspy EXPORT_SYMBOL vmlinux 0x47cfd825 kstrtouint_from_user -EXPORT_SYMBOL vmlinux 0x47d2731b dquot_free_inode -EXPORT_SYMBOL vmlinux 0x47eb8364 filemap_write_and_wait_range -EXPORT_SYMBOL vmlinux 0x48029642 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x480c5272 devm_devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x4811c322 ptp_clock_register EXPORT_SYMBOL vmlinux 0x481814c4 mb_cache_entry_find_next -EXPORT_SYMBOL vmlinux 0x48181674 ipv6_chk_prefix EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x48254f9e pcie_capability_clear_and_set_word_locked EXPORT_SYMBOL vmlinux 0x4829cf6b fscrypt_enqueue_decrypt_work -EXPORT_SYMBOL vmlinux 0x482ed031 del_gendisk -EXPORT_SYMBOL vmlinux 0x4837339a drop_super_exclusive -EXPORT_SYMBOL vmlinux 0x4837a3fe fs_lookup_param +EXPORT_SYMBOL vmlinux 0x48323922 tty_port_block_til_ready EXPORT_SYMBOL vmlinux 0x4841bdee strnchr EXPORT_SYMBOL vmlinux 0x4848cfb1 phy_mipi_dphy_get_default_config EXPORT_SYMBOL vmlinux 0x484f6edf ktime_get_coarse_real_ts64 -EXPORT_SYMBOL vmlinux 0x484fce5a submit_bio -EXPORT_SYMBOL vmlinux 0x48513f29 tcp_init_sock +EXPORT_SYMBOL vmlinux 0x4858687c find_inode_rcu EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days -EXPORT_SYMBOL vmlinux 0x488855f9 kernel_connect -EXPORT_SYMBOL vmlinux 0x4895457d generic_shutdown_super -EXPORT_SYMBOL vmlinux 0x489921d1 cdrom_mode_sense -EXPORT_SYMBOL vmlinux 0x489b1d88 clk_hw_get_clk +EXPORT_SYMBOL vmlinux 0x4865b017 mmc_can_gpio_ro +EXPORT_SYMBOL vmlinux 0x486e8dc7 inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x487d2189 phy_read_paged EXPORT_SYMBOL vmlinux 0x489eda10 memset32 EXPORT_SYMBOL vmlinux 0x489f6e0b rdma_dim EXPORT_SYMBOL vmlinux 0x48a91171 string_get_size +EXPORT_SYMBOL vmlinux 0x48b7c44e xfrm_policy_destroy EXPORT_SYMBOL vmlinux 0x48b99a13 vme_lm_free -EXPORT_SYMBOL vmlinux 0x48cee3a3 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x48c339eb blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x48c3774e unregister_nexthop_notifier +EXPORT_SYMBOL vmlinux 0x48ca9dfc begin_new_exec EXPORT_SYMBOL vmlinux 0x48d27375 __bitmap_intersects EXPORT_SYMBOL vmlinux 0x48d3fa27 kmalloc_large_node -EXPORT_SYMBOL vmlinux 0x48ff0cbf genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x48f129f7 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x49038d8d ppp_register_net_channel EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert -EXPORT_SYMBOL vmlinux 0x490f24c2 __dev_queue_xmit -EXPORT_SYMBOL vmlinux 0x49243d22 d_instantiate_anon -EXPORT_SYMBOL vmlinux 0x492f2ca7 icmp6_send -EXPORT_SYMBOL vmlinux 0x49312ca9 ip_do_fragment -EXPORT_SYMBOL vmlinux 0x49360e0e tcp_v4_md5_hash_skb -EXPORT_SYMBOL vmlinux 0x493c9005 ps2_end_command -EXPORT_SYMBOL vmlinux 0x493feb10 __neigh_create -EXPORT_SYMBOL vmlinux 0x4948bb35 nf_log_trace -EXPORT_SYMBOL vmlinux 0x494cfdf6 devfreq_suspend_device -EXPORT_SYMBOL vmlinux 0x4950cd01 audit_log_start +EXPORT_SYMBOL vmlinux 0x4909327d __skb_try_recv_datagram +EXPORT_SYMBOL vmlinux 0x4926c497 tcf_em_register +EXPORT_SYMBOL vmlinux 0x492cc98c dev_lstats_read +EXPORT_SYMBOL vmlinux 0x4935be4c edac_mc_find +EXPORT_SYMBOL vmlinux 0x493fd730 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x494d927d netif_device_attach EXPORT_SYMBOL vmlinux 0x495231ea mul_u64_u64_div_u64 -EXPORT_SYMBOL vmlinux 0x4970c9e7 simple_link -EXPORT_SYMBOL vmlinux 0x4975dc42 amba_device_register -EXPORT_SYMBOL vmlinux 0x4976b875 napi_get_frags +EXPORT_SYMBOL vmlinux 0x4955226f __pskb_copy_fclone +EXPORT_SYMBOL vmlinux 0x495ead43 lock_rename +EXPORT_SYMBOL vmlinux 0x496fdf6e dev_uc_add EXPORT_SYMBOL vmlinux 0x4977c498 stack_depot_get_extra_bits -EXPORT_SYMBOL vmlinux 0x49824460 rt_mutex_base_init +EXPORT_SYMBOL vmlinux 0x4977cef6 __ClearPageMovable +EXPORT_SYMBOL vmlinux 0x49798a07 pci_save_state +EXPORT_SYMBOL vmlinux 0x49829119 wake_up_process +EXPORT_SYMBOL vmlinux 0x4996ff88 __icmp_send +EXPORT_SYMBOL vmlinux 0x499e5c47 generic_permission EXPORT_SYMBOL vmlinux 0x499f0ecf nd_sb_checksum -EXPORT_SYMBOL vmlinux 0x49acd1f0 mmc_wait_for_cmd EXPORT_SYMBOL vmlinux 0x49b163b8 acpi_bus_scan -EXPORT_SYMBOL vmlinux 0x49ca85cc dcb_ieee_getapp_prio_dscp_mask_map -EXPORT_SYMBOL vmlinux 0x49cb0fb1 fb_prepare_logo +EXPORT_SYMBOL vmlinux 0x49b1c236 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x49bda378 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x49be99c3 flow_rule_match_arp +EXPORT_SYMBOL vmlinux 0x49bf388d tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x49c8a181 page_cache_next_miss +EXPORT_SYMBOL vmlinux 0x49d42aff xp_free +EXPORT_SYMBOL vmlinux 0x49da2b07 fwnode_irq_get +EXPORT_SYMBOL vmlinux 0x49ef6019 current_in_userns +EXPORT_SYMBOL vmlinux 0x49f2a3ed pci_disable_link_state_locked EXPORT_SYMBOL vmlinux 0x4a0250d3 radix_tree_lookup_slot -EXPORT_SYMBOL vmlinux 0x4a185214 tty_port_hangup -EXPORT_SYMBOL vmlinux 0x4a19d61c pnp_possible_config -EXPORT_SYMBOL vmlinux 0x4a2955bc tcp_recv_skb -EXPORT_SYMBOL vmlinux 0x4a4d57e2 locks_copy_conflock -EXPORT_SYMBOL vmlinux 0x4a5814da nvdimm_namespace_common_probe +EXPORT_SYMBOL vmlinux 0x4a085c56 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x4a156075 flow_rule_match_ipv4_addrs +EXPORT_SYMBOL vmlinux 0x4a1d19ff serio_open +EXPORT_SYMBOL vmlinux 0x4a265a75 pci_irq_get_affinity +EXPORT_SYMBOL vmlinux 0x4a49d717 open_exec EXPORT_SYMBOL vmlinux 0x4a5e533d mtree_alloc_range -EXPORT_SYMBOL vmlinux 0x4a5feacf udp_sk_rx_dst_set -EXPORT_SYMBOL vmlinux 0x4a6ef823 sock_set_reuseaddr -EXPORT_SYMBOL vmlinux 0x4a76162c pps_event -EXPORT_SYMBOL vmlinux 0x4a87069f tcp_rcv_established -EXPORT_SYMBOL vmlinux 0x4a90c4da sync_dirty_buffer -EXPORT_SYMBOL vmlinux 0x4a9167af jbd2_journal_start EXPORT_SYMBOL vmlinux 0x4a96a8eb xxh32_digest -EXPORT_SYMBOL vmlinux 0x4ac9c8b3 devm_extcon_register_notifier -EXPORT_SYMBOL vmlinux 0x4ad4d3f9 __bread_gfp +EXPORT_SYMBOL vmlinux 0x4a9a2ca9 blk_mq_free_tag_set +EXPORT_SYMBOL vmlinux 0x4aa43e25 super_setup_bdi_name +EXPORT_SYMBOL vmlinux 0x4aaddb34 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x4acc9321 clk_bulk_get_all EXPORT_SYMBOL vmlinux 0x4ae90d8e hdmi_avi_infoframe_check EXPORT_SYMBOL vmlinux 0x4aea463f crc32_le_shift -EXPORT_SYMBOL vmlinux 0x4aec2771 pci_set_power_state -EXPORT_SYMBOL vmlinux 0x4af2c859 fiemap_prep EXPORT_SYMBOL vmlinux 0x4af6ddf0 kstrtou16 EXPORT_SYMBOL vmlinux 0x4b092b43 add_wait_queue_exclusive -EXPORT_SYMBOL vmlinux 0x4b357dad md_bitmap_end_sync -EXPORT_SYMBOL vmlinux 0x4b39cdd1 ip_fraglist_init +EXPORT_SYMBOL vmlinux 0x4b2a69e8 mipi_dsi_dcs_read +EXPORT_SYMBOL vmlinux 0x4b3087a3 __sock_i_ino +EXPORT_SYMBOL vmlinux 0x4b33280c dst_discard_out EXPORT_SYMBOL vmlinux 0x4b401817 iwe_stream_add_value -EXPORT_SYMBOL vmlinux 0x4b6661b9 __skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x4b40c1dc tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x4b469e9d d_exact_alias +EXPORT_SYMBOL vmlinux 0x4b4911ec devfreq_register_notifier +EXPORT_SYMBOL vmlinux 0x4b62fe92 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x4b6a1039 vme_irq_request EXPORT_SYMBOL vmlinux 0x4b6df007 acpi_evaluate_reg -EXPORT_SYMBOL vmlinux 0x4b7ff497 ip6_fraglist_prepare +EXPORT_SYMBOL vmlinux 0x4b6f36a0 tcf_action_set_ctrlact +EXPORT_SYMBOL vmlinux 0x4b71e7e4 del_gendisk +EXPORT_SYMBOL vmlinux 0x4b74b117 skb_headers_offset_update EXPORT_SYMBOL vmlinux 0x4b9085d4 lockref_mark_dead -EXPORT_SYMBOL vmlinux 0x4b964023 generic_setlease +EXPORT_SYMBOL vmlinux 0x4b93c69f ethtool_aggregate_ctrl_stats +EXPORT_SYMBOL vmlinux 0x4b93f1a7 phy_device_free EXPORT_SYMBOL vmlinux 0x4b9f2ae4 idr_replace -EXPORT_SYMBOL vmlinux 0x4ba062bb blk_queue_max_discard_sectors -EXPORT_SYMBOL vmlinux 0x4bb650f4 folio_clear_dirty_for_io -EXPORT_SYMBOL vmlinux 0x4bc2c001 pci_enable_wake -EXPORT_SYMBOL vmlinux 0x4becebb8 fib_notifier_ops_register +EXPORT_SYMBOL vmlinux 0x4ba25963 param_ops_string +EXPORT_SYMBOL vmlinux 0x4ba3b753 misc_register +EXPORT_SYMBOL vmlinux 0x4bdbb2ee tcp_md5_hash_key EXPORT_SYMBOL vmlinux 0x4bef1c67 empty_name -EXPORT_SYMBOL vmlinux 0x4bf1a245 gnet_stats_copy_basic_hw -EXPORT_SYMBOL vmlinux 0x4bf3f348 tcp_sock_set_keepintvl -EXPORT_SYMBOL vmlinux 0x4c00e961 dm_table_run_md_queue_async -EXPORT_SYMBOL vmlinux 0x4c0112c0 simple_transaction_release -EXPORT_SYMBOL vmlinux 0x4c21a9fa mpage_writepages -EXPORT_SYMBOL vmlinux 0x4c3df747 input_flush_device +EXPORT_SYMBOL vmlinux 0x4bf3b055 proc_symlink +EXPORT_SYMBOL vmlinux 0x4c03cae3 update_region +EXPORT_SYMBOL vmlinux 0x4c0bfdbd vfs_getattr +EXPORT_SYMBOL vmlinux 0x4c12d8b8 nf_register_net_hooks +EXPORT_SYMBOL vmlinux 0x4c2fac30 flow_rule_match_cvlan +EXPORT_SYMBOL vmlinux 0x4c36e0e1 mipi_dsi_dcs_set_display_brightness EXPORT_SYMBOL vmlinux 0x4c416eb9 LZ4_decompress_fast -EXPORT_SYMBOL vmlinux 0x4c50ee92 jbd2_fc_begin_commit -EXPORT_SYMBOL vmlinux 0x4c5ae687 acpi_pm_device_sleep_state -EXPORT_SYMBOL vmlinux 0x4c61505e netif_receive_skb -EXPORT_SYMBOL vmlinux 0x4c65be91 vfs_dedupe_file_range -EXPORT_SYMBOL vmlinux 0x4c86b50d param_ops_short -EXPORT_SYMBOL vmlinux 0x4c8c42b2 tty_port_close -EXPORT_SYMBOL vmlinux 0x4c9d8012 phy_suspend -EXPORT_SYMBOL vmlinux 0x4c9f6da0 tty_wait_until_sent -EXPORT_SYMBOL vmlinux 0x4ca202ea scsi_remove_device -EXPORT_SYMBOL vmlinux 0x4ca3e0b8 blk_queue_chunk_sectors -EXPORT_SYMBOL vmlinux 0x4ca729e9 path_put -EXPORT_SYMBOL vmlinux 0x4ca9cc18 jbd2_wait_inode_data -EXPORT_SYMBOL vmlinux 0x4cb04357 mipi_dsi_dcs_read -EXPORT_SYMBOL vmlinux 0x4cd9ef48 sockfd_lookup -EXPORT_SYMBOL vmlinux 0x4ce598a0 inet_select_addr -EXPORT_SYMBOL vmlinux 0x4ce8ba66 pci_enable_ptm -EXPORT_SYMBOL vmlinux 0x4cea3535 mr_fill_mroute -EXPORT_SYMBOL vmlinux 0x4cee4034 vm_map_ram -EXPORT_SYMBOL vmlinux 0x4cefe6c9 watchdog_register_governor -EXPORT_SYMBOL vmlinux 0x4d100052 __netif_schedule -EXPORT_SYMBOL vmlinux 0x4d103fb0 of_count_phandle_with_args -EXPORT_SYMBOL vmlinux 0x4d15cf3a seg6_hmac_info_del +EXPORT_SYMBOL vmlinux 0x4c450cdd kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x4c9dfc33 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x4c9e8bac dentry_create +EXPORT_SYMBOL vmlinux 0x4cb13b93 new_inode +EXPORT_SYMBOL vmlinux 0x4cd40323 __genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x4ce24d8a __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x4ce880e2 simple_statfs +EXPORT_SYMBOL vmlinux 0x4cf25218 tcp_sock_set_cork +EXPORT_SYMBOL vmlinux 0x4cf46655 __traceiter_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0x4d217147 filemap_flush EXPORT_SYMBOL vmlinux 0x4d2c7133 acpi_info -EXPORT_SYMBOL vmlinux 0x4d53d7cb __dev_set_mtu -EXPORT_SYMBOL vmlinux 0x4d5fcc5f crypto_sha3_init +EXPORT_SYMBOL vmlinux 0x4d5a6504 xsk_tx_completed +EXPORT_SYMBOL vmlinux 0x4d601990 key_task_permission EXPORT_SYMBOL vmlinux 0x4d65cbd5 csum_ipv6_magic -EXPORT_SYMBOL vmlinux 0x4d664354 sock_rfree -EXPORT_SYMBOL vmlinux 0x4d8092f7 param_set_uint +EXPORT_SYMBOL vmlinux 0x4d6b5fec neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x4d8425f4 device_match_acpi_dev +EXPORT_SYMBOL vmlinux 0x4d85dd68 pagecache_get_page +EXPORT_SYMBOL vmlinux 0x4d89ec57 netdev_state_change EXPORT_SYMBOL vmlinux 0x4d924f20 memremap +EXPORT_SYMBOL vmlinux 0x4d992fa9 tcp_v4_do_rcv EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase -EXPORT_SYMBOL vmlinux 0x4d9d3191 __destroy_inode -EXPORT_SYMBOL vmlinux 0x4d9e4bcf of_property_read_reg -EXPORT_SYMBOL vmlinux 0x4d9f1b27 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x4d9c1995 put_watch_queue EXPORT_SYMBOL vmlinux 0x4da278d9 cpu_rmap_put -EXPORT_SYMBOL vmlinux 0x4dd7fc65 jbd2_journal_lock_updates -EXPORT_SYMBOL vmlinux 0x4de40a4a rtnl_unicast -EXPORT_SYMBOL vmlinux 0x4de818eb register_tcf_proto_ops -EXPORT_SYMBOL vmlinux 0x4ded2a99 d_rehash +EXPORT_SYMBOL vmlinux 0x4dc5d870 devm_extcon_register_notifier EXPORT_SYMBOL vmlinux 0x4df02057 crc32_be EXPORT_SYMBOL vmlinux 0x4df2ea84 gen_estimator_read -EXPORT_SYMBOL vmlinux 0x4e2b184c timestamp_truncate +EXPORT_SYMBOL vmlinux 0x4e1d87c6 elv_rb_del +EXPORT_SYMBOL vmlinux 0x4e1f7992 flow_rule_match_ports_range EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int -EXPORT_SYMBOL vmlinux 0x4e54347c twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x4e38cc08 fwnode_mdio_find_device +EXPORT_SYMBOL vmlinux 0x4e4882e9 mipi_dsi_attach EXPORT_SYMBOL vmlinux 0x4e547048 __kmalloc_node_track_caller EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6a6092 fb_class EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console -EXPORT_SYMBOL vmlinux 0x4e70b41e t10_pi_type3_crc -EXPORT_SYMBOL vmlinux 0x4e8ed15f fb_io_read -EXPORT_SYMBOL vmlinux 0x4e963c49 dma_sync_single_for_cpu -EXPORT_SYMBOL vmlinux 0x4e9d03b8 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x4e876364 _copy_from_iter_nocache +EXPORT_SYMBOL vmlinux 0x4e987df4 dma_resv_fini EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum -EXPORT_SYMBOL vmlinux 0x4ea3cc96 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x4e9f9798 param_ops_ushort +EXPORT_SYMBOL vmlinux 0x4ea56567 single_release +EXPORT_SYMBOL vmlinux 0x4ea5edd6 xfrm_spd_getinfo EXPORT_SYMBOL vmlinux 0x4ea9cead ___ratelimit +EXPORT_SYMBOL vmlinux 0x4eaaa7e3 generic_pipe_buf_try_steal EXPORT_SYMBOL vmlinux 0x4eada8f7 security_secid_to_secctx EXPORT_SYMBOL vmlinux 0x4eb2b066 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x4ebc9a7c dev_mc_sync EXPORT_SYMBOL vmlinux 0x4ec54e78 bitmap_to_arr32 -EXPORT_SYMBOL vmlinux 0x4ec58b7f phy_aneg_done -EXPORT_SYMBOL vmlinux 0x4edab395 tcp_md5_key_copy -EXPORT_SYMBOL vmlinux 0x4eef621d inet_twsk_deschedule_put -EXPORT_SYMBOL vmlinux 0x4ef1ead9 security_sctp_assoc_request -EXPORT_SYMBOL vmlinux 0x4f0e1eb6 param_set_copystring -EXPORT_SYMBOL vmlinux 0x4f1b7d0e dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x4ece5b68 ipv4_specific +EXPORT_SYMBOL vmlinux 0x4ed3cfc1 dst_init +EXPORT_SYMBOL vmlinux 0x4ee6b1c4 mr_table_dump +EXPORT_SYMBOL vmlinux 0x4efc9344 scsi_print_command +EXPORT_SYMBOL vmlinux 0x4f07f0e6 pin_user_pages_unlocked +EXPORT_SYMBOL vmlinux 0x4f109aa9 nlmsg_notify EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create EXPORT_SYMBOL vmlinux 0x4f20d80b zstd_min_clevel EXPORT_SYMBOL vmlinux 0x4f2250ba rtc_tm_to_time64 -EXPORT_SYMBOL vmlinux 0x4f2a41fd devfreq_update_status -EXPORT_SYMBOL vmlinux 0x4f2a5165 iw_handler_get_thrspy -EXPORT_SYMBOL vmlinux 0x4f4899cf kmem_cache_alloc_lru -EXPORT_SYMBOL vmlinux 0x4f4ef0d9 ptp_clock_index +EXPORT_SYMBOL vmlinux 0x4f2b7f6e udp_push_pending_frames EXPORT_SYMBOL vmlinux 0x4f55166f acpi_set_current_resources -EXPORT_SYMBOL vmlinux 0x4f5db859 netdev_upper_get_next_dev_rcu -EXPORT_SYMBOL vmlinux 0x4f62ca9e dquot_transfer -EXPORT_SYMBOL vmlinux 0x4f6de673 inet6_register_protosw -EXPORT_SYMBOL vmlinux 0x4f8b5ad6 pcie_relaxed_ordering_enabled -EXPORT_SYMBOL vmlinux 0x4f8d9cad tcp_connect -EXPORT_SYMBOL vmlinux 0x4f91efce devm_devfreq_unregister_opp_notifier -EXPORT_SYMBOL vmlinux 0x4fb54b40 mr_vif_seq_idx -EXPORT_SYMBOL vmlinux 0x4fc2d025 register_mii_timestamper -EXPORT_SYMBOL vmlinux 0x4fd35bc3 dcbnl_ieee_notify -EXPORT_SYMBOL vmlinux 0x4fd50bcb neigh_ifdown -EXPORT_SYMBOL vmlinux 0x4fd6a747 devm_register_reboot_notifier -EXPORT_SYMBOL vmlinux 0x4fe1113e dcbnl_cee_notify -EXPORT_SYMBOL vmlinux 0x4ff3fba7 d_alloc -EXPORT_SYMBOL vmlinux 0x4ffaf8a2 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x4f5d4b05 amba_driver_register +EXPORT_SYMBOL vmlinux 0x4f77e97f arp_tbl +EXPORT_SYMBOL vmlinux 0x4f8e7058 cdrom_release +EXPORT_SYMBOL vmlinux 0x4f9e28b8 md_bitmap_free +EXPORT_SYMBOL vmlinux 0x4f9f7881 mr_mfc_find_any +EXPORT_SYMBOL vmlinux 0x4fb09b89 devm_devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x4fc5b1f3 config_group_find_item +EXPORT_SYMBOL vmlinux 0x4fc7360c of_root +EXPORT_SYMBOL vmlinux 0x4fe76721 mmc_of_parse_clk_phase +EXPORT_SYMBOL vmlinux 0x4ff25aba vfs_parse_monolithic_sep +EXPORT_SYMBOL vmlinux 0x4ff6e8fa tty_port_carrier_raised EXPORT_SYMBOL vmlinux 0x4ffb59bf __SCK__tp_func_kfree EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security EXPORT_SYMBOL vmlinux 0x5009c71d glob_match -EXPORT_SYMBOL vmlinux 0x500b34ca of_find_mipi_dsi_device_by_node -EXPORT_SYMBOL vmlinux 0x500d3b7c mmc_start_request EXPORT_SYMBOL vmlinux 0x5027bde2 acpi_acquire_mutex -EXPORT_SYMBOL vmlinux 0x5034b8db mmc_gpio_set_cd_irq -EXPORT_SYMBOL vmlinux 0x504226d7 file_fdatawait_range -EXPORT_SYMBOL vmlinux 0x504be999 __skb_checksum -EXPORT_SYMBOL vmlinux 0x50571fac bio_alloc_bioset -EXPORT_SYMBOL vmlinux 0x505a50bd dquot_destroy +EXPORT_SYMBOL vmlinux 0x50325884 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x503dd757 vfs_symlink +EXPORT_SYMBOL vmlinux 0x5040f5f4 of_phy_get_and_connect +EXPORT_SYMBOL vmlinux 0x504a815c xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x5051a52f input_free_device +EXPORT_SYMBOL vmlinux 0x50574efe dev_set_promiscuity EXPORT_SYMBOL vmlinux 0x50624917 sha1_init -EXPORT_SYMBOL vmlinux 0x50671f61 of_phy_find_device EXPORT_SYMBOL vmlinux 0x506dff1a __genradix_free -EXPORT_SYMBOL vmlinux 0x50770b68 fs_context_for_reconfigure +EXPORT_SYMBOL vmlinux 0x5078f52a kernel_tmpfile_open +EXPORT_SYMBOL vmlinux 0x50825482 xp_dma_sync_for_device_slow +EXPORT_SYMBOL vmlinux 0x5085abdd xattr_supports_user_prefix +EXPORT_SYMBOL vmlinux 0x5087ac42 inet_select_addr EXPORT_SYMBOL vmlinux 0x5089f45f ip_send_check -EXPORT_SYMBOL vmlinux 0x508c7847 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x5092fdaf iget_failed EXPORT_SYMBOL vmlinux 0x50944630 seq_list_start_head_rcu -EXPORT_SYMBOL vmlinux 0x50944d6a md_cluster_ops -EXPORT_SYMBOL vmlinux 0x509863ac netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0x509a3cbf netif_receive_skb_core EXPORT_SYMBOL vmlinux 0x509b64ea acpi_has_method EXPORT_SYMBOL vmlinux 0x50a4698c fb_videomode_to_modelist -EXPORT_SYMBOL vmlinux 0x50a64c1c tcp_enter_cwr +EXPORT_SYMBOL vmlinux 0x50a64472 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x50a66867 kill_block_super EXPORT_SYMBOL vmlinux 0x50b73ce2 rfkill_find_type EXPORT_SYMBOL vmlinux 0x50b80992 mb_cache_entry_find_first EXPORT_SYMBOL vmlinux 0x50be748d security_ib_free_security -EXPORT_SYMBOL vmlinux 0x50c64ace netdev_has_upper_dev_all_rcu +EXPORT_SYMBOL vmlinux 0x50c6b48d vfs_get_tree EXPORT_SYMBOL vmlinux 0x50cf7585 hex2bin -EXPORT_SYMBOL vmlinux 0x50d02c3e dev_addr_mod EXPORT_SYMBOL vmlinux 0x50d035c2 vsscanf -EXPORT_SYMBOL vmlinux 0x50d125a0 page_pool_put_page_bulk -EXPORT_SYMBOL vmlinux 0x50dc8eca netlink_broadcast +EXPORT_SYMBOL vmlinux 0x50d54e79 of_pci_range_to_resource +EXPORT_SYMBOL vmlinux 0x50ea134e __dquot_free_space EXPORT_SYMBOL vmlinux 0x50f91491 __genradix_ptr -EXPORT_SYMBOL vmlinux 0x50fa0652 __ip_select_ident -EXPORT_SYMBOL vmlinux 0x5102f198 xp_dma_unmap -EXPORT_SYMBOL vmlinux 0x511d6446 inet6_csk_route_req -EXPORT_SYMBOL vmlinux 0x5130ee74 twl6030_mmc_card_detect -EXPORT_SYMBOL vmlinux 0x513692c9 skb_udp_tunnel_segment -EXPORT_SYMBOL vmlinux 0x513a50fd d_find_alias -EXPORT_SYMBOL vmlinux 0x514cd899 inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x51007de8 __getblk_gfp +EXPORT_SYMBOL vmlinux 0x511d7546 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x5126963c __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x512c4de5 mmc_register_driver EXPORT_SYMBOL vmlinux 0x515083bf acpi_release_mutex +EXPORT_SYMBOL vmlinux 0x51576bda configfs_depend_item_unlocked EXPORT_SYMBOL vmlinux 0x51641162 opal_unlock_from_suspend -EXPORT_SYMBOL vmlinux 0x516fc1a1 nf_log_register -EXPORT_SYMBOL vmlinux 0x5182ae78 fb_blank -EXPORT_SYMBOL vmlinux 0x51913519 kmem_cache_shrink -EXPORT_SYMBOL vmlinux 0x51970b3f input_enable_softrepeat -EXPORT_SYMBOL vmlinux 0x519e15f7 mipi_dsi_dcs_write -EXPORT_SYMBOL vmlinux 0x51a064ab blk_mq_init_allocated_queue -EXPORT_SYMBOL vmlinux 0x51a69040 vfs_unlink -EXPORT_SYMBOL vmlinux 0x51abb0ed udp_ioctl -EXPORT_SYMBOL vmlinux 0x51b51594 ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x516963db vme_register_bridge +EXPORT_SYMBOL vmlinux 0x516c7549 cdrom_open +EXPORT_SYMBOL vmlinux 0x51715402 pci_alloc_irq_vectors +EXPORT_SYMBOL vmlinux 0x5176e039 xsk_set_tx_need_wakeup +EXPORT_SYMBOL vmlinux 0x518fe643 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x5191eb8e generic_parse_monolithic +EXPORT_SYMBOL vmlinux 0x51a9e917 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x51c4586e get_task_cred EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled -EXPORT_SYMBOL vmlinux 0x51f0bfd3 nf_unregister_net_hooks -EXPORT_SYMBOL vmlinux 0x5218c103 pps_unregister_source -EXPORT_SYMBOL vmlinux 0x522cec82 of_graph_get_remote_port -EXPORT_SYMBOL vmlinux 0x522fc7b2 phy_ethtool_get_eee -EXPORT_SYMBOL vmlinux 0x52411900 handshake_req_alloc -EXPORT_SYMBOL vmlinux 0x525bd8b9 tcf_action_update_stats -EXPORT_SYMBOL vmlinux 0x5260641c devm_extcon_unregister_notifier_all -EXPORT_SYMBOL vmlinux 0x5260ca4c ps2_begin_command -EXPORT_SYMBOL vmlinux 0x52648b64 param_ops_string +EXPORT_SYMBOL vmlinux 0x51d23b65 napi_complete_done +EXPORT_SYMBOL vmlinux 0x51d4ac9c xsk_tx_peek_desc +EXPORT_SYMBOL vmlinux 0x51dd612c simple_empty +EXPORT_SYMBOL vmlinux 0x51f0f267 xp_alloc_batch +EXPORT_SYMBOL vmlinux 0x51fd22a3 scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x52068cbb xfrm_dev_policy_flush +EXPORT_SYMBOL vmlinux 0x520c2972 security_unix_may_send +EXPORT_SYMBOL vmlinux 0x52128f9f param_get_uint +EXPORT_SYMBOL vmlinux 0x5215b8c1 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x523e927c param_set_short +EXPORT_SYMBOL vmlinux 0x52408538 sg_miter_next +EXPORT_SYMBOL vmlinux 0x52458fae add_to_pipe +EXPORT_SYMBOL vmlinux 0x5249104a mipi_dsi_dcs_soft_reset +EXPORT_SYMBOL vmlinux 0x524dac23 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0x525716a1 bioset_init +EXPORT_SYMBOL vmlinux 0x5257cc76 netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0x5263757c mipi_dsi_dcs_set_page_address EXPORT_SYMBOL vmlinux 0x526c3a6c jiffies -EXPORT_SYMBOL vmlinux 0x526e5d6a d_alloc_anon EXPORT_SYMBOL vmlinux 0x526eef2c hdmi_vendor_infoframe_pack -EXPORT_SYMBOL vmlinux 0x528b8331 inet6_release -EXPORT_SYMBOL vmlinux 0x5296e9b9 vme_init_bridge +EXPORT_SYMBOL vmlinux 0x5294fe18 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x529695a1 mode_strip_sgid EXPORT_SYMBOL vmlinux 0x52983a4f vme_master_write -EXPORT_SYMBOL vmlinux 0x52a3bf46 lookup_one_positive_unlocked -EXPORT_SYMBOL vmlinux 0x52b6486c blk_integrity_register -EXPORT_SYMBOL vmlinux 0x52bcbc21 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x52cfba0a filp_close EXPORT_SYMBOL vmlinux 0x52d717da xz_dec_init -EXPORT_SYMBOL vmlinux 0x52d976cd dm_table_get_md -EXPORT_SYMBOL vmlinux 0x52d99701 pci_wake_from_d3 -EXPORT_SYMBOL vmlinux 0x52e4a70d __fput_sync EXPORT_SYMBOL vmlinux 0x52ecbc75 crc_ccitt +EXPORT_SYMBOL vmlinux 0x52fec5b0 sunxi_sram_release +EXPORT_SYMBOL vmlinux 0x5301cbf4 simple_write_begin EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend -EXPORT_SYMBOL vmlinux 0x5315d9fb pci_bus_assign_resources -EXPORT_SYMBOL vmlinux 0x53222d55 vfs_create +EXPORT_SYMBOL vmlinux 0x5312a9eb pneigh_lookup EXPORT_SYMBOL vmlinux 0x5322663e acpi_get_handle EXPORT_SYMBOL vmlinux 0x5338184f ethtool_sprintf -EXPORT_SYMBOL vmlinux 0x5342ef90 tty_lock EXPORT_SYMBOL vmlinux 0x534f2aa4 blk_stack_limits -EXPORT_SYMBOL vmlinux 0x536f33cd phy_ethtool_get_stats -EXPORT_SYMBOL vmlinux 0x538c2cbf pcim_iomap_regions_request_all -EXPORT_SYMBOL vmlinux 0x53977048 __quota_error +EXPORT_SYMBOL vmlinux 0x53535b4b acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x535d0981 register_filesystem +EXPORT_SYMBOL vmlinux 0x5361ed92 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x53646eff vfs_iter_read +EXPORT_SYMBOL vmlinux 0x53659ef9 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x53726c0c inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x53787adb fs_context_for_mount +EXPORT_SYMBOL vmlinux 0x5380aa04 block_dirty_folio +EXPORT_SYMBOL vmlinux 0x53834abd __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0x538abbe9 vlan_filter_drop_vids +EXPORT_SYMBOL vmlinux 0x53900da2 i2c_find_device_by_fwnode +EXPORT_SYMBOL vmlinux 0x539f2edb md_integrity_register EXPORT_SYMBOL vmlinux 0x53a1e8d9 _find_next_bit -EXPORT_SYMBOL vmlinux 0x53a497e4 mipi_dsi_dcs_set_tear_scanline EXPORT_SYMBOL vmlinux 0x53ad8dc7 __traceiter_dma_fence_enable_signal -EXPORT_SYMBOL vmlinux 0x53adade1 nd_region_acquire_lane -EXPORT_SYMBOL vmlinux 0x53aea42e of_translate_address -EXPORT_SYMBOL vmlinux 0x53b1e6a6 pm_vt_switch_unregister -EXPORT_SYMBOL vmlinux 0x53c442dc mipi_dsi_dcs_get_power_mode -EXPORT_SYMBOL vmlinux 0x53ec1f55 locks_delete_block +EXPORT_SYMBOL vmlinux 0x53bd2d88 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x53c32fbd pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0x53c425d6 netif_set_tso_max_size +EXPORT_SYMBOL vmlinux 0x53c89cba set_page_dirty +EXPORT_SYMBOL vmlinux 0x53cb7bf7 i2c_get_adapter_by_fwnode +EXPORT_SYMBOL vmlinux 0x53d54302 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0x53f107e2 dquot_quota_on_mount EXPORT_SYMBOL vmlinux 0x53f8ced7 page_pool_ethtool_stats_get_strings -EXPORT_SYMBOL vmlinux 0x542f606e mini_qdisc_pair_init +EXPORT_SYMBOL vmlinux 0x5402dae1 tcp_filter +EXPORT_SYMBOL vmlinux 0x5408dbff scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x5409aac2 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x540a8bb2 vmf_insert_mixed +EXPORT_SYMBOL vmlinux 0x540fb09c __alloc_skb +EXPORT_SYMBOL vmlinux 0x54154e60 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x54189ecb dma_map_resource +EXPORT_SYMBOL vmlinux 0x54239d1c ilookup5 +EXPORT_SYMBOL vmlinux 0x5424f5b0 jbd2_journal_finish_inode_data_buffers +EXPORT_SYMBOL vmlinux 0x543d0609 devm_alloc_etherdev_mqs EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start -EXPORT_SYMBOL vmlinux 0x54448798 phy_loopback -EXPORT_SYMBOL vmlinux 0x5444f921 dev_open -EXPORT_SYMBOL vmlinux 0x54489f22 input_setup_polling -EXPORT_SYMBOL vmlinux 0x544b365f devm_mfd_add_devices -EXPORT_SYMBOL vmlinux 0x545d6512 neigh_xmit -EXPORT_SYMBOL vmlinux 0x545ef061 padata_alloc_shell -EXPORT_SYMBOL vmlinux 0x5475cce8 mmc_cqe_post_req +EXPORT_SYMBOL vmlinux 0x54405d1f mdiobus_read EXPORT_SYMBOL vmlinux 0x5492b8d1 revert_creds +EXPORT_SYMBOL vmlinux 0x54aa2974 pci_msix_vec_count EXPORT_SYMBOL vmlinux 0x54b23e67 sg_pcopy_to_buffer -EXPORT_SYMBOL vmlinux 0x54bdad61 udp_seq_ops -EXPORT_SYMBOL vmlinux 0x54ca18e2 pin_user_pages_remote +EXPORT_SYMBOL vmlinux 0x54c5a35c phy_register_fixup_for_id EXPORT_SYMBOL vmlinux 0x54caa724 down_write_trylock +EXPORT_SYMBOL vmlinux 0x54cd1310 __netlink_ns_capable EXPORT_SYMBOL vmlinux 0x54cfacd5 __ctzdi2 -EXPORT_SYMBOL vmlinux 0x54dc496e tcf_idrinfo_destroy +EXPORT_SYMBOL vmlinux 0x54d2a52f mmc_wait_for_req_done +EXPORT_SYMBOL vmlinux 0x54e61800 seq_write EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x5503668e generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x55056565 arp_create EXPORT_SYMBOL vmlinux 0x5506b8f7 netlbl_bitmap_setbit +EXPORT_SYMBOL vmlinux 0x550bf20e dec_node_page_state +EXPORT_SYMBOL vmlinux 0x5516c8a2 module_refcount EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color -EXPORT_SYMBOL vmlinux 0x5525928f qdisc_reset -EXPORT_SYMBOL vmlinux 0x553d949a dquot_reclaim_space_nodirty -EXPORT_SYMBOL vmlinux 0x55441518 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x552213e9 dup_iter +EXPORT_SYMBOL vmlinux 0x5527b651 blk_mq_kick_requeue_list EXPORT_SYMBOL vmlinux 0x554ae3a4 irq_poll_sched -EXPORT_SYMBOL vmlinux 0x5566695a sock_bind_add EXPORT_SYMBOL vmlinux 0x5570a41a gen_pool_dma_zalloc_algo -EXPORT_SYMBOL vmlinux 0x557add95 would_dump +EXPORT_SYMBOL vmlinux 0x5581fbf9 simple_lookup +EXPORT_SYMBOL vmlinux 0x558299e3 gro_cells_init EXPORT_SYMBOL vmlinux 0x558b281d aes_expandkey -EXPORT_SYMBOL vmlinux 0x559533a0 __vlan_find_dev_deep_rcu -EXPORT_SYMBOL vmlinux 0x55979949 d_invalidate -EXPORT_SYMBOL vmlinux 0x55a029a5 import_iovec -EXPORT_SYMBOL vmlinux 0x55a04d2d remap_vmalloc_range -EXPORT_SYMBOL vmlinux 0x55b01c1b mount_bdev -EXPORT_SYMBOL vmlinux 0x55c06081 d_instantiate_new -EXPORT_SYMBOL vmlinux 0x55d22ed9 devm_pci_remap_cfg_resource +EXPORT_SYMBOL vmlinux 0x559da0c9 ip_output +EXPORT_SYMBOL vmlinux 0x559ed254 mipi_dsi_set_maximum_return_packet_size +EXPORT_SYMBOL vmlinux 0x55e20b9e __devm_mdiobus_register EXPORT_SYMBOL vmlinux 0x55e31703 ethtool_convert_link_mode_to_legacy_u32 -EXPORT_SYMBOL vmlinux 0x5607106f neigh_changeaddr -EXPORT_SYMBOL vmlinux 0x560aba7c __mdiobus_register -EXPORT_SYMBOL vmlinux 0x5624117a blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x55e9cdf3 __devm_release_region +EXPORT_SYMBOL vmlinux 0x5603aa16 vfs_ioctl +EXPORT_SYMBOL vmlinux 0x56153c21 sock_bind_add +EXPORT_SYMBOL vmlinux 0x5617d239 sk_wait_data +EXPORT_SYMBOL vmlinux 0x562652b3 vme_irq_handler +EXPORT_SYMBOL vmlinux 0x5627956f page_symlink +EXPORT_SYMBOL vmlinux 0x56297c6b scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x562f53f4 ppp_input EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563c8a1c pci_request_selected_regions EXPORT_SYMBOL vmlinux 0x56470118 __warn_printk EXPORT_SYMBOL vmlinux 0x564f7608 acpi_reconfig_notifier_register -EXPORT_SYMBOL vmlinux 0x565fb390 d_splice_alias -EXPORT_SYMBOL vmlinux 0x566ee3d9 pci_disable_device +EXPORT_SYMBOL vmlinux 0x5658baac scmd_printk EXPORT_SYMBOL vmlinux 0x56802ae8 rps_cpu_mask -EXPORT_SYMBOL vmlinux 0x56855668 alloc_fddidev -EXPORT_SYMBOL vmlinux 0x568f73f7 dma_unmap_sg_attrs -EXPORT_SYMBOL vmlinux 0x5696bf94 unlock_rename -EXPORT_SYMBOL vmlinux 0x56977df2 mroute6_is_socket -EXPORT_SYMBOL vmlinux 0x5699f413 tty_driver_kref_put -EXPORT_SYMBOL vmlinux 0x56b993e6 scsi_add_host_with_dma -EXPORT_SYMBOL vmlinux 0x56bdf3f2 ilookup5_nowait -EXPORT_SYMBOL vmlinux 0x56c2503c phy_advertise_supported +EXPORT_SYMBOL vmlinux 0x56805da5 param_get_int +EXPORT_SYMBOL vmlinux 0x569cdb32 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x569d599f dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x569e09ae mr_mfc_seq_next +EXPORT_SYMBOL vmlinux 0x56a8bfa0 pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0x56b0530a mmc_free_host +EXPORT_SYMBOL vmlinux 0x56ba2c9c eth_type_trans +EXPORT_SYMBOL vmlinux 0x56bc91a6 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x56c4b2e5 fs_param_is_blockdev EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg -EXPORT_SYMBOL vmlinux 0x56d1db43 skb_set_owner_w -EXPORT_SYMBOL vmlinux 0x56db7b81 tso_build_hdr -EXPORT_SYMBOL vmlinux 0x56fd9f84 __i2c_smbus_xfer -EXPORT_SYMBOL vmlinux 0x5749e4a5 ipv6_mc_check_mld +EXPORT_SYMBOL vmlinux 0x56df4228 pci_scan_root_bus_bridge +EXPORT_SYMBOL vmlinux 0x56f4cb8e ipv6_sock_mc_drop +EXPORT_SYMBOL vmlinux 0x56f90e9b flow_rule_match_basic +EXPORT_SYMBOL vmlinux 0x571596f0 seq_vprintf +EXPORT_SYMBOL vmlinux 0x571ddb8f inet_proto_csum_replace_by_diff +EXPORT_SYMBOL vmlinux 0x5724f55f ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x573476ed dm_table_get_mode EXPORT_SYMBOL vmlinux 0x574c2e74 bitmap_release_region EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put -EXPORT_SYMBOL vmlinux 0x5759459f param_ops_ushort -EXPORT_SYMBOL vmlinux 0x57606790 pnp_is_active -EXPORT_SYMBOL vmlinux 0x576567f8 putname +EXPORT_SYMBOL vmlinux 0x575cea15 skb_udp_tunnel_segment +EXPORT_SYMBOL vmlinux 0x5763fca4 i2c_transfer EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 -EXPORT_SYMBOL vmlinux 0x576de2c9 _dev_crit -EXPORT_SYMBOL vmlinux 0x57812004 xfrm_find_acq -EXPORT_SYMBOL vmlinux 0x5789284d iov_iter_gap_alignment +EXPORT_SYMBOL vmlinux 0x577451e6 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x5776a716 __mod_zone_page_state EXPORT_SYMBOL vmlinux 0x5792f848 strlcpy -EXPORT_SYMBOL vmlinux 0x57a6a063 simple_fill_super -EXPORT_SYMBOL vmlinux 0x57a8aea2 ip6_xmit -EXPORT_SYMBOL vmlinux 0x57b0876c genphy_suspend +EXPORT_SYMBOL vmlinux 0x5797e46b __netif_napi_del +EXPORT_SYMBOL vmlinux 0x579da249 pci_enable_ptm +EXPORT_SYMBOL vmlinux 0x57af7e52 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x57bdb640 mmc_spi_put_pdata +EXPORT_SYMBOL vmlinux 0x57cad9bf tcp_fastopen_defer_connect EXPORT_SYMBOL vmlinux 0x57db8fd6 utf8_normalize -EXPORT_SYMBOL vmlinux 0x57e7cfac ethtool_aggregate_ctrl_stats -EXPORT_SYMBOL vmlinux 0x57f5e296 mr_dump -EXPORT_SYMBOL vmlinux 0x5814caad pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x57e733e6 vlan_dev_vlan_proto +EXPORT_SYMBOL vmlinux 0x57e9aa03 locks_init_lock +EXPORT_SYMBOL vmlinux 0x57ece9d0 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x57ef45e7 vfs_get_fsid +EXPORT_SYMBOL vmlinux 0x57f01c8a __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x57f45e1e fuse_dequeue_forget +EXPORT_SYMBOL vmlinux 0x57f7c304 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x5809594d dput EXPORT_SYMBOL vmlinux 0x5818fe3c posix_acl_from_mode -EXPORT_SYMBOL vmlinux 0x581acfdb get_task_cred EXPORT_SYMBOL vmlinux 0x581f98da zlib_inflate EXPORT_SYMBOL vmlinux 0x5826d774 dma_fence_set_deadline +EXPORT_SYMBOL vmlinux 0x582ab9cd pci_dev_put EXPORT_SYMBOL vmlinux 0x582b6275 xfrm_if_unregister_cb -EXPORT_SYMBOL vmlinux 0x5830a4a8 sock_set_keepalive +EXPORT_SYMBOL vmlinux 0x582e959d simple_dir_operations EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm -EXPORT_SYMBOL vmlinux 0x583c112b sock_recv_errqueue -EXPORT_SYMBOL vmlinux 0x58457406 phy_mii_ioctl -EXPORT_SYMBOL vmlinux 0x584e22ff seq_open_private -EXPORT_SYMBOL vmlinux 0x585ff998 seq_release_private +EXPORT_SYMBOL vmlinux 0x58488ee1 inode_maybe_inc_iversion +EXPORT_SYMBOL vmlinux 0x585aeb93 register_nexthop_notifier +EXPORT_SYMBOL vmlinux 0x586082d2 flow_rule_match_enc_control +EXPORT_SYMBOL vmlinux 0x586d0946 netdev_adjacent_change_abort EXPORT_SYMBOL vmlinux 0x587b0954 kvasprintf -EXPORT_SYMBOL vmlinux 0x58892dfc from_kprojid -EXPORT_SYMBOL vmlinux 0x5894aa52 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x5894c793 devm_ioport_unmap EXPORT_SYMBOL vmlinux 0x5897a680 __find_nth_and_andnot_bit -EXPORT_SYMBOL vmlinux 0x5898cf8b try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x589bcc8f phy_disconnect EXPORT_SYMBOL vmlinux 0x58acf24b mdiobus_register_board_info EXPORT_SYMBOL vmlinux 0x58b4645c dev_close_many EXPORT_SYMBOL vmlinux 0x58b73bc7 match_wildcard +EXPORT_SYMBOL vmlinux 0x58c08e28 ip6_dst_alloc EXPORT_SYMBOL vmlinux 0x58c3f78a mtree_insert_range -EXPORT_SYMBOL vmlinux 0x58dee5a4 sk_error_report +EXPORT_SYMBOL vmlinux 0x58ddd04a unload_nls +EXPORT_SYMBOL vmlinux 0x58e1bb4d iommu_dma_get_resv_regions EXPORT_SYMBOL vmlinux 0x58e3306d bit_wait_io -EXPORT_SYMBOL vmlinux 0x590b61e1 __bh_read -EXPORT_SYMBOL vmlinux 0x590d38fd jbd2_journal_force_commit -EXPORT_SYMBOL vmlinux 0x59101116 blk_mq_end_request -EXPORT_SYMBOL vmlinux 0x592b3448 get_thermal_instance -EXPORT_SYMBOL vmlinux 0x593216c3 md_check_no_bitmap -EXPORT_SYMBOL vmlinux 0x5932d3ea iget_locked +EXPORT_SYMBOL vmlinux 0x58e77a30 dm_put_device +EXPORT_SYMBOL vmlinux 0x58e97f6a tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x58f5fd55 flow_block_cb_alloc +EXPORT_SYMBOL vmlinux 0x58fbbca0 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x59055ed0 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x5909d3f3 phy_queue_state_machine +EXPORT_SYMBOL vmlinux 0x59141c42 devm_pci_remap_iospace +EXPORT_SYMBOL vmlinux 0x59176663 tcf_qevent_handle +EXPORT_SYMBOL vmlinux 0x5938bd1f max8925_reg_write +EXPORT_SYMBOL vmlinux 0x5943a62c register_console +EXPORT_SYMBOL vmlinux 0x594736f4 proc_create_data EXPORT_SYMBOL vmlinux 0x5947747e dns_query -EXPORT_SYMBOL vmlinux 0x59547403 mmc_free_host -EXPORT_SYMBOL vmlinux 0x596f2e9e vme_bus_error_handler -EXPORT_SYMBOL vmlinux 0x5974f5fe i2c_smbus_read_byte_data -EXPORT_SYMBOL vmlinux 0x59760731 nvdimm_bus_unlock -EXPORT_SYMBOL vmlinux 0x5990447c __serio_register_port -EXPORT_SYMBOL vmlinux 0x599e4052 twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0x597396ae elevator_alloc +EXPORT_SYMBOL vmlinux 0x5975aa0d vfs_parse_fs_string +EXPORT_SYMBOL vmlinux 0x597733ca pin_user_pages +EXPORT_SYMBOL vmlinux 0x598279ad inet_addr_type_table +EXPORT_SYMBOL vmlinux 0x5984faa1 send_sig_mceerr EXPORT_SYMBOL vmlinux 0x599fb41c kvmalloc_node EXPORT_SYMBOL vmlinux 0x59a2f0ee packing -EXPORT_SYMBOL vmlinux 0x59a4bf04 bio_split EXPORT_SYMBOL vmlinux 0x59b4ac3e tcp_memory_allocated -EXPORT_SYMBOL vmlinux 0x59bd00b2 vc_resize -EXPORT_SYMBOL vmlinux 0x59c33bcd inet_addr_type_dev_table +EXPORT_SYMBOL vmlinux 0x59c8a000 rt_dst_alloc EXPORT_SYMBOL vmlinux 0x59cf0538 __asm_copy_to_user -EXPORT_SYMBOL vmlinux 0x59d09c7c set_create_files_as -EXPORT_SYMBOL vmlinux 0x59d63e33 phy_ethtool_nway_reset EXPORT_SYMBOL vmlinux 0x59d83f80 radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x59e0a8fe generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x59e20a1c dquot_set_dqblk EXPORT_SYMBOL vmlinux 0x59f60128 sbi_probe_extension EXPORT_SYMBOL vmlinux 0x5a0b73d0 zlib_deflateInit2 -EXPORT_SYMBOL vmlinux 0x5a15d6d1 skb_copy_datagram_iter +EXPORT_SYMBOL vmlinux 0x5a131403 ipv6_dev_get_saddr EXPORT_SYMBOL vmlinux 0x5a290250 hdmi_drm_infoframe_pack_only -EXPORT_SYMBOL vmlinux 0x5a29660d bioset_init +EXPORT_SYMBOL vmlinux 0x5a3ee83e acpi_register_debugger EXPORT_SYMBOL vmlinux 0x5a44f8cb __crypto_memneq EXPORT_SYMBOL vmlinux 0x5a4d313e gf128mul_4k_lle -EXPORT_SYMBOL vmlinux 0x5a4f7c54 blk_mq_kick_requeue_list -EXPORT_SYMBOL vmlinux 0x5a7b1fad xfrm_user_policy -EXPORT_SYMBOL vmlinux 0x5a7bf78b fddi_type_trans -EXPORT_SYMBOL vmlinux 0x5a98bc0d sock_efree +EXPORT_SYMBOL vmlinux 0x5a591858 xfrm_trans_queue +EXPORT_SYMBOL vmlinux 0x5a5e7ef2 fscrypt_setup_filename +EXPORT_SYMBOL vmlinux 0x5a745d22 __neigh_create +EXPORT_SYMBOL vmlinux 0x5a86aa05 phy_ethtool_get_stats +EXPORT_SYMBOL vmlinux 0x5a8c14b3 buffer_migrate_folio +EXPORT_SYMBOL vmlinux 0x5a93afc7 lookup_positive_unlocked +EXPORT_SYMBOL vmlinux 0x5a98a4a2 blk_rq_unmap_user EXPORT_SYMBOL vmlinux 0x5a99a0d7 flow_get_u32_dst -EXPORT_SYMBOL vmlinux 0x5abae7bf __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x5aa6e725 __nlmsg_put EXPORT_SYMBOL vmlinux 0x5ac01b95 acpi_resource_to_address64 -EXPORT_SYMBOL vmlinux 0x5aca805c dm_table_event +EXPORT_SYMBOL vmlinux 0x5ac79d9c skb_flow_dissect_hash EXPORT_SYMBOL vmlinux 0x5ae1154b __traceiter_kfree -EXPORT_SYMBOL vmlinux 0x5af0b811 of_parse_phandle_with_args_map -EXPORT_SYMBOL vmlinux 0x5b310aaf mptcp_subflow_reqsk_alloc -EXPORT_SYMBOL vmlinux 0x5b4bda7f mmc_gpio_set_cd_wake +EXPORT_SYMBOL vmlinux 0x5af83f09 kernel_connect +EXPORT_SYMBOL vmlinux 0x5afbd9ad skb_orphan_partial +EXPORT_SYMBOL vmlinux 0x5b042556 ethtool_rx_flow_rule_create +EXPORT_SYMBOL vmlinux 0x5b1254d5 pmem_sector_size +EXPORT_SYMBOL vmlinux 0x5b281592 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x5b361738 netdev_set_sb_channel +EXPORT_SYMBOL vmlinux 0x5b492539 kern_unmount EXPORT_SYMBOL vmlinux 0x5b56860c vm_munmap EXPORT_SYMBOL vmlinux 0x5b674a77 __xa_insert -EXPORT_SYMBOL vmlinux 0x5b7d6aa5 input_unregister_handler -EXPORT_SYMBOL vmlinux 0x5ba85ac3 phy_modify_paged_changed -EXPORT_SYMBOL vmlinux 0x5bb4a223 mipi_dsi_dcs_get_display_brightness -EXPORT_SYMBOL vmlinux 0x5bb9c6c5 tcf_action_set_ctrlact -EXPORT_SYMBOL vmlinux 0x5bcb48d7 xp_dma_map +EXPORT_SYMBOL vmlinux 0x5b7cee02 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x5b83548e dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x5b8ddb6c of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x5b90ffb1 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x5b984b72 fwnode_mdiobus_phy_device_register +EXPORT_SYMBOL vmlinux 0x5bc7c7bc md_bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x5bc82c3e fscrypt_decrypt_bio EXPORT_SYMBOL vmlinux 0x5bcea5f1 sgl_free_n_order +EXPORT_SYMBOL vmlinux 0x5bcefea3 cdrom_ioctl EXPORT_SYMBOL vmlinux 0x5bd4ff88 flow_action_cookie_create EXPORT_SYMBOL vmlinux 0x5bdb7603 sock_copy_user_timeval -EXPORT_SYMBOL vmlinux 0x5bdc270d inet_frags_fini EXPORT_SYMBOL vmlinux 0x5be63c5b crc32c_csum_stub -EXPORT_SYMBOL vmlinux 0x5becb96e mdio_device_create -EXPORT_SYMBOL vmlinux 0x5c1021ce reuseport_attach_prog -EXPORT_SYMBOL vmlinux 0x5c217a16 __alloc_pages -EXPORT_SYMBOL vmlinux 0x5c3a9cfc ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x5bf31856 __mdiobus_c45_write +EXPORT_SYMBOL vmlinux 0x5c03cabf netdev_lower_state_changed +EXPORT_SYMBOL vmlinux 0x5c0e9159 fwnode_get_mac_address +EXPORT_SYMBOL vmlinux 0x5c1ca65a inet_del_offload +EXPORT_SYMBOL vmlinux 0x5c1dfd57 phy_stop +EXPORT_SYMBOL vmlinux 0x5c289e1c netdev_bonding_info_change EXPORT_SYMBOL vmlinux 0x5c3c7387 kstrtoull -EXPORT_SYMBOL vmlinux 0x5c3d3aaa pm860x_set_bits -EXPORT_SYMBOL vmlinux 0x5c444e60 scsi_ioctl -EXPORT_SYMBOL vmlinux 0x5c471117 __tty_alloc_driver -EXPORT_SYMBOL vmlinux 0x5c5f6af5 mr_mfc_find_any -EXPORT_SYMBOL vmlinux 0x5c6e3bd7 gpiochip_irq_reqres -EXPORT_SYMBOL vmlinux 0x5c71bbb1 fwnode_iomap -EXPORT_SYMBOL vmlinux 0x5c7feed6 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x5c56fd2b linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x5c748203 capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0x5c7f9ac2 netdev_offload_xstats_enabled EXPORT_SYMBOL vmlinux 0x5c972bf6 __wake_up -EXPORT_SYMBOL vmlinux 0x5c98993d pskb_expand_head -EXPORT_SYMBOL vmlinux 0x5c99ab91 mq_change_real_num_tx -EXPORT_SYMBOL vmlinux 0x5c9b8910 blk_pm_runtime_init -EXPORT_SYMBOL vmlinux 0x5c9d35aa inode_newsize_ok -EXPORT_SYMBOL vmlinux 0x5cc201fc d_obtain_root +EXPORT_SYMBOL vmlinux 0x5c9cbebd __bh_read_batch +EXPORT_SYMBOL vmlinux 0x5c9eb747 pci_read_config_dword EXPORT_SYMBOL vmlinux 0x5cd2ddf3 ethtool_intersect_link_masks -EXPORT_SYMBOL vmlinux 0x5cd6b5cd pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x5cd67c40 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x5cd8537b lease_get_mtime EXPORT_SYMBOL vmlinux 0x5cdf0538 gen_pool_best_fit -EXPORT_SYMBOL vmlinux 0x5ce1f89e cpufreq_get_policy -EXPORT_SYMBOL vmlinux 0x5cef1089 seq_escape_mem EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5cf935d1 cdrom_mode_sense EXPORT_SYMBOL vmlinux 0x5cfb26a0 acpi_enter_sleep_state -EXPORT_SYMBOL vmlinux 0x5d1e4858 md_error -EXPORT_SYMBOL vmlinux 0x5d2b7591 dcb_ieee_setapp -EXPORT_SYMBOL vmlinux 0x5d3111b0 acpi_device_hid -EXPORT_SYMBOL vmlinux 0x5d35fc2c i2c_register_driver -EXPORT_SYMBOL vmlinux 0x5d3a7dbe uart_add_one_port -EXPORT_SYMBOL vmlinux 0x5d3ad28f scsi_is_host_device -EXPORT_SYMBOL vmlinux 0x5d421221 debugfs_create_automount -EXPORT_SYMBOL vmlinux 0x5d46382a netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x5cfb7c8e __register_binfmt +EXPORT_SYMBOL vmlinux 0x5d3b3da2 skb_tx_error EXPORT_SYMBOL vmlinux 0x5d49aabc init_wait_var_entry -EXPORT_SYMBOL vmlinux 0x5d54533e flow_rule_match_ipv6_addrs -EXPORT_SYMBOL vmlinux 0x5d66b3f3 flow_rule_match_cvlan -EXPORT_SYMBOL vmlinux 0x5d6d4b7f tcp_poll -EXPORT_SYMBOL vmlinux 0x5d7755c7 pci_back_from_sleep -EXPORT_SYMBOL vmlinux 0x5d8010c0 filemap_fdatawait_range -EXPORT_SYMBOL vmlinux 0x5d9a3eab blkdev_get_by_path -EXPORT_SYMBOL vmlinux 0x5dad8a8d flow_rule_match_mpls -EXPORT_SYMBOL vmlinux 0x5dbf4264 skb_flow_get_icmp_tci -EXPORT_SYMBOL vmlinux 0x5ddd96a9 block_commit_write -EXPORT_SYMBOL vmlinux 0x5de3f92c tls_client_hello_psk -EXPORT_SYMBOL vmlinux 0x5de6e851 i2c_clients_command -EXPORT_SYMBOL vmlinux 0x5df3394f pci_free_irq_vectors +EXPORT_SYMBOL vmlinux 0x5d4f2d7e jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x5d52c218 genphy_read_mmd_unsupported +EXPORT_SYMBOL vmlinux 0x5d5e7b75 fault_in_iov_iter_readable +EXPORT_SYMBOL vmlinux 0x5d712b21 netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x5d8d7480 inode_nohighmem +EXPORT_SYMBOL vmlinux 0x5d92a2ca __aperture_remove_legacy_vga_devices +EXPORT_SYMBOL vmlinux 0x5d9eae6f d_find_alias +EXPORT_SYMBOL vmlinux 0x5dbca655 pci_dev_get +EXPORT_SYMBOL vmlinux 0x5dc21788 __block_write_begin +EXPORT_SYMBOL vmlinux 0x5dcd78ed dma_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x5dcdae39 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x5dce469f d_path +EXPORT_SYMBOL vmlinux 0x5dff9a94 devm_devfreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x5e0389b5 skb_checksum_help EXPORT_SYMBOL vmlinux 0x5e0ccb9f sha1_transform +EXPORT_SYMBOL vmlinux 0x5e19553a tcp_enter_cwr EXPORT_SYMBOL vmlinux 0x5e19b8f3 xa_erase -EXPORT_SYMBOL vmlinux 0x5e1b2523 mmc_command_done +EXPORT_SYMBOL vmlinux 0x5e1e57a2 input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x5e2f3d30 ps2_sendbyte EXPORT_SYMBOL vmlinux 0x5e373fb4 gf128mul_64k_bbe -EXPORT_SYMBOL vmlinux 0x5e6db8bf inc_node_state -EXPORT_SYMBOL vmlinux 0x5e70070e netlink_rcv_skb -EXPORT_SYMBOL vmlinux 0x5e761021 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x5e38401f netpoll_poll_enable +EXPORT_SYMBOL vmlinux 0x5e398217 skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0x5e4de8c9 of_io_request_and_map +EXPORT_SYMBOL vmlinux 0x5e53fa92 is_acpi_device_node +EXPORT_SYMBOL vmlinux 0x5e54e248 iov_iter_init +EXPORT_SYMBOL vmlinux 0x5e58f5a9 kmem_cache_free_bulk +EXPORT_SYMBOL vmlinux 0x5e7785dc bio_alloc_clone +EXPORT_SYMBOL vmlinux 0x5e7908ed genphy_c45_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x5e879926 drop_super_exclusive EXPORT_SYMBOL vmlinux 0x5e934fc7 sgl_alloc EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask -EXPORT_SYMBOL vmlinux 0x5ea7e9d8 balance_dirty_pages_ratelimited -EXPORT_SYMBOL vmlinux 0x5ebac1df dev_activate -EXPORT_SYMBOL vmlinux 0x5ebf3dd3 tcp_openreq_init_rwin +EXPORT_SYMBOL vmlinux 0x5ebd3615 posix_acl_chmod EXPORT_SYMBOL vmlinux 0x5ec4aee6 put_sg_io_hdr EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch EXPORT_SYMBOL vmlinux 0x5ed90adc int_to_scsilun EXPORT_SYMBOL vmlinux 0x5eda7fa7 kobject_init -EXPORT_SYMBOL vmlinux 0x5eed72bc dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x5ee1d1e0 fs_param_is_s32 +EXPORT_SYMBOL vmlinux 0x5ef30c32 netpoll_setup EXPORT_SYMBOL vmlinux 0x5ef3d2c4 dma_fence_wait_any_timeout +EXPORT_SYMBOL vmlinux 0x5f01e97b kill_litter_super EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters -EXPORT_SYMBOL vmlinux 0x5f19e91f proc_create_seq_private +EXPORT_SYMBOL vmlinux 0x5f0d674e pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x5f2144e6 read_cache_page EXPORT_SYMBOL vmlinux 0x5f2ba55e security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x5f2cd881 mdio_device_remove EXPORT_SYMBOL vmlinux 0x5f43c059 on_each_cpu_cond_mask +EXPORT_SYMBOL vmlinux 0x5f456602 mini_qdisc_pair_block_init +EXPORT_SYMBOL vmlinux 0x5f47ec09 genphy_soft_reset +EXPORT_SYMBOL vmlinux 0x5f48ab72 xfrm_register_km EXPORT_SYMBOL vmlinux 0x5f4e6885 xa_get_order -EXPORT_SYMBOL vmlinux 0x5f4fc1c7 mmc_detect_change -EXPORT_SYMBOL vmlinux 0x5f6e03ff inet_confirm_addr -EXPORT_SYMBOL vmlinux 0x5f6e41c5 get_user_pages_remote -EXPORT_SYMBOL vmlinux 0x5f7685a7 request_firmware_nowait -EXPORT_SYMBOL vmlinux 0x5f8286ce acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x5f761754 write_dirty_buffer EXPORT_SYMBOL vmlinux 0x5f93525c acpi_extract_package EXPORT_SYMBOL vmlinux 0x5fa19c80 trace_print_flags_seq -EXPORT_SYMBOL vmlinux 0x5faeafa0 page_pool_update_nid -EXPORT_SYMBOL vmlinux 0x5fc25d3f cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x5fa9944c reuseport_migrate_sock +EXPORT_SYMBOL vmlinux 0x5fb17529 tty_vhangup +EXPORT_SYMBOL vmlinux 0x5fb744e5 __tty_alloc_driver EXPORT_SYMBOL vmlinux 0x5fc72f0e alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x5fd05d8b __dquot_alloc_space EXPORT_SYMBOL vmlinux 0x5fd78448 _raw_write_lock_nested -EXPORT_SYMBOL vmlinux 0x5fe84e8a ip4_datagram_connect -EXPORT_SYMBOL vmlinux 0x5ff1b4a8 nonseekable_open +EXPORT_SYMBOL vmlinux 0x5fdeb16d __netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x60040358 blk_mq_requeue_request EXPORT_SYMBOL vmlinux 0x6005c351 zpool_has_pool EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x60154d5c jbd2_log_wait_commit EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create -EXPORT_SYMBOL vmlinux 0x602529d1 inet_add_protocol -EXPORT_SYMBOL vmlinux 0x60260c3e key_validate -EXPORT_SYMBOL vmlinux 0x6034f832 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x6023ec14 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x60267475 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x60338c30 filemap_get_folios_contig +EXPORT_SYMBOL vmlinux 0x6033fe15 sk_common_release EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier -EXPORT_SYMBOL vmlinux 0x60380001 mount_single +EXPORT_SYMBOL vmlinux 0x603dff7f pci_setup_cardbus EXPORT_SYMBOL vmlinux 0x605790dc fiemap_fill_next_extent -EXPORT_SYMBOL vmlinux 0x6064190a dma_map_sg_attrs -EXPORT_SYMBOL vmlinux 0x60641ee3 find_inode_rcu +EXPORT_SYMBOL vmlinux 0x606abadf proc_create_mount_point +EXPORT_SYMBOL vmlinux 0x60709ba8 sock_cmsg_send EXPORT_SYMBOL vmlinux 0x608d0267 zstd_get_error_code -EXPORT_SYMBOL vmlinux 0x608df2fa tcp_release_cb EXPORT_SYMBOL vmlinux 0x6091b333 unregister_chrdev_region EXPORT_SYMBOL vmlinux 0x609bcd98 in6_pton EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x609f9933 inet6_del_offload EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off -EXPORT_SYMBOL vmlinux 0x60ae86d5 mntget -EXPORT_SYMBOL vmlinux 0x60b230cf key_invalidate -EXPORT_SYMBOL vmlinux 0x60be5fad dquot_quota_on -EXPORT_SYMBOL vmlinux 0x60bfb300 dquot_load_quota_inode -EXPORT_SYMBOL vmlinux 0x60c12aaa skb_eth_gso_segment -EXPORT_SYMBOL vmlinux 0x60d0f5f8 user_path_create +EXPORT_SYMBOL vmlinux 0x60c4b0db tty_port_init EXPORT_SYMBOL vmlinux 0x60d8ab30 vme_lm_get -EXPORT_SYMBOL vmlinux 0x60ebabc8 fault_in_iov_iter_writeable -EXPORT_SYMBOL vmlinux 0x61063243 ip_defrag +EXPORT_SYMBOL vmlinux 0x61006422 of_get_next_cpu_node EXPORT_SYMBOL vmlinux 0x61073e4a acpi_os_map_generic_address -EXPORT_SYMBOL vmlinux 0x61183fc8 blkdev_get_by_dev -EXPORT_SYMBOL vmlinux 0x612250d9 pcie_capability_write_word -EXPORT_SYMBOL vmlinux 0x6122d805 proc_set_size +EXPORT_SYMBOL vmlinux 0x61077337 param_ops_charp +EXPORT_SYMBOL vmlinux 0x610ec144 __kfree_skb +EXPORT_SYMBOL vmlinux 0x6116fb15 input_set_timestamp EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit -EXPORT_SYMBOL vmlinux 0x612c9518 nf_ct_get_tuple_skb EXPORT_SYMBOL vmlinux 0x61347034 mb_cache_entry_delete_or_get EXPORT_SYMBOL vmlinux 0x615911d7 __bitmap_set EXPORT_SYMBOL vmlinux 0x615977f5 __nla_put_nohdr EXPORT_SYMBOL vmlinux 0x6167381d node_states -EXPORT_SYMBOL vmlinux 0x61810aed crypto_sha3_update +EXPORT_SYMBOL vmlinux 0x617183fe napi_enable EXPORT_SYMBOL vmlinux 0x618911fc numa_node -EXPORT_SYMBOL vmlinux 0x619a861b tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x618eb44f dquot_release +EXPORT_SYMBOL vmlinux 0x619122e6 phy_ethtool_get_eee EXPORT_SYMBOL vmlinux 0x619cb7dd simple_read_from_buffer -EXPORT_SYMBOL vmlinux 0x61a95ed3 tcp_mtup_init EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull -EXPORT_SYMBOL vmlinux 0x61bee8c0 sdev_enable_disk_events -EXPORT_SYMBOL vmlinux 0x61c59231 __set_page_dirty_nobuffers -EXPORT_SYMBOL vmlinux 0x61cda9e2 filemap_page_mkwrite -EXPORT_SYMBOL vmlinux 0x61d33aa9 set_capacity -EXPORT_SYMBOL vmlinux 0x61d9cf8c scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x61b86670 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x61bb318a sock_no_sendmsg_locked +EXPORT_SYMBOL vmlinux 0x61cf0208 udp_read_skb EXPORT_SYMBOL vmlinux 0x61e272c9 sha256_final +EXPORT_SYMBOL vmlinux 0x61e2da5e flow_rule_match_ip EXPORT_SYMBOL vmlinux 0x61ea189b fb_pad_aligned_buffer -EXPORT_SYMBOL vmlinux 0x621405f0 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x61fd25e9 bdev_end_io_acct EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier -EXPORT_SYMBOL vmlinux 0x62258757 qdisc_create_dflt EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single -EXPORT_SYMBOL vmlinux 0x623222fd mmc_can_erase -EXPORT_SYMBOL vmlinux 0x623bf13e dquot_drop -EXPORT_SYMBOL vmlinux 0x6244c2a6 pci_write_config_word -EXPORT_SYMBOL vmlinux 0x625bb0ba framebuffer_alloc -EXPORT_SYMBOL vmlinux 0x625dcdd2 fget +EXPORT_SYMBOL vmlinux 0x623e3281 __generic_file_write_iter +EXPORT_SYMBOL vmlinux 0x623f3888 generic_fillattr +EXPORT_SYMBOL vmlinux 0x62446dfc phy_detach +EXPORT_SYMBOL vmlinux 0x624c1bd2 try_to_free_buffers EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister -EXPORT_SYMBOL vmlinux 0x627e2b87 fs_param_is_blockdev -EXPORT_SYMBOL vmlinux 0x627f337e netpoll_print_options EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name -EXPORT_SYMBOL vmlinux 0x62936f69 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x629ec046 mr_rtm_dumproute +EXPORT_SYMBOL vmlinux 0x62a35e66 ip_check_defrag EXPORT_SYMBOL vmlinux 0x62aa05a3 satp_mode -EXPORT_SYMBOL vmlinux 0x62bb292b filemap_check_errors -EXPORT_SYMBOL vmlinux 0x62d148a2 devm_request_any_context_irq -EXPORT_SYMBOL vmlinux 0x62d9d535 ip_generic_getfrag -EXPORT_SYMBOL vmlinux 0x62e3c704 filemap_invalidate_lock_two -EXPORT_SYMBOL vmlinux 0x62e606bc mdio_bus_type -EXPORT_SYMBOL vmlinux 0x62e7d533 jbd2_submit_inode_data +EXPORT_SYMBOL vmlinux 0x62ab00bc netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x62b2db44 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x62b85868 seq_printf +EXPORT_SYMBOL vmlinux 0x62bf2521 of_property_read_reg +EXPORT_SYMBOL vmlinux 0x62bf8a2f phy_sfp_probe +EXPORT_SYMBOL vmlinux 0x62d8d948 tcp_rtx_synack +EXPORT_SYMBOL vmlinux 0x62df54a2 xfrm_dev_state_flush EXPORT_SYMBOL vmlinux 0x62f0919d mempool_init_node -EXPORT_SYMBOL vmlinux 0x6308f534 freeze_super -EXPORT_SYMBOL vmlinux 0x630d272f devfreq_unregister_opp_notifier +EXPORT_SYMBOL vmlinux 0x62f7ca52 uart_unregister_driver EXPORT_SYMBOL vmlinux 0x6315c42c zstd_get_params -EXPORT_SYMBOL vmlinux 0x632054a5 udp_poll -EXPORT_SYMBOL vmlinux 0x633def2f tcp_sendmsg -EXPORT_SYMBOL vmlinux 0x63422162 vme_register_bridge -EXPORT_SYMBOL vmlinux 0x63447b59 devm_memremap -EXPORT_SYMBOL vmlinux 0x63478fe9 tcf_action_dump_1 -EXPORT_SYMBOL vmlinux 0x6348f3d2 param_get_long -EXPORT_SYMBOL vmlinux 0x6364b940 ip_local_deliver +EXPORT_SYMBOL vmlinux 0x636f41b5 d_alloc_name EXPORT_SYMBOL vmlinux 0x637ba65a dma_fence_allocate_private_stub -EXPORT_SYMBOL vmlinux 0x637f40d8 mdiobus_read_nested -EXPORT_SYMBOL vmlinux 0x63a21322 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x63857403 flow_rule_match_ct +EXPORT_SYMBOL vmlinux 0x6388add9 forget_cached_acl +EXPORT_SYMBOL vmlinux 0x6388c9b1 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x638add82 pci_prepare_to_sleep EXPORT_SYMBOL vmlinux 0x63a58370 flow_action_cookie_destroy EXPORT_SYMBOL vmlinux 0x63a7c28c bitmap_find_free_region -EXPORT_SYMBOL vmlinux 0x63b9745b vga_remove_vgacon -EXPORT_SYMBOL vmlinux 0x63bfe4a6 sock_wfree -EXPORT_SYMBOL vmlinux 0x63db05b5 generic_perform_write -EXPORT_SYMBOL vmlinux 0x63e3ef0c input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x63a94af8 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x63af51d4 of_get_next_available_child +EXPORT_SYMBOL vmlinux 0x63b911f4 sg_alloc_table_from_pages_segment +EXPORT_SYMBOL vmlinux 0x63c98307 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x63e69356 blk_mq_rq_cpu EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink -EXPORT_SYMBOL vmlinux 0x63ec0ca8 set_page_dirty -EXPORT_SYMBOL vmlinux 0x63f5b975 security_skb_classify_flow EXPORT_SYMBOL vmlinux 0x63f647bb up_read -EXPORT_SYMBOL vmlinux 0x640ea709 block_dirty_folio +EXPORT_SYMBOL vmlinux 0x64011987 padata_alloc EXPORT_SYMBOL vmlinux 0x64127b67 bitmap_find_next_zero_area_off -EXPORT_SYMBOL vmlinux 0x642a688c xp_free -EXPORT_SYMBOL vmlinux 0x64529494 con_is_bound +EXPORT_SYMBOL vmlinux 0x641b3b31 sock_set_keepalive +EXPORT_SYMBOL vmlinux 0x642c8f2f aperture_remove_conflicting_pci_devices +EXPORT_SYMBOL vmlinux 0x6450dc09 ip_setsockopt EXPORT_SYMBOL vmlinux 0x6455298a security_xfrm_policy_free -EXPORT_SYMBOL vmlinux 0x647db0fc skb_copy_expand +EXPORT_SYMBOL vmlinux 0x6477a17c tcp_check_req EXPORT_SYMBOL vmlinux 0x6481ffe0 hsiphash_1u32 -EXPORT_SYMBOL vmlinux 0x648d00d6 page_pool_unlink_napi -EXPORT_SYMBOL vmlinux 0x648db6e8 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x648390d1 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x648526ee validate_slab_cache EXPORT_SYMBOL vmlinux 0x648eb59d gc_inflight_list -EXPORT_SYMBOL vmlinux 0x6495cbb7 mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x6494a3fa mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x6496db2b blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x649bb590 pci_choose_state EXPORT_SYMBOL vmlinux 0x64a9c928 default_blu EXPORT_SYMBOL vmlinux 0x64bbc288 string_unescape -EXPORT_SYMBOL vmlinux 0x64bc1dec security_sk_clone -EXPORT_SYMBOL vmlinux 0x64c572e9 sock_kfree_s -EXPORT_SYMBOL vmlinux 0x64d8fee9 device_add_disk -EXPORT_SYMBOL vmlinux 0x64f23bdb tty_unregister_driver -EXPORT_SYMBOL vmlinux 0x65076c81 skb_flow_dissect_meta +EXPORT_SYMBOL vmlinux 0x64bc3d3f netdev_alert +EXPORT_SYMBOL vmlinux 0x64ce79eb sock_setsockopt +EXPORT_SYMBOL vmlinux 0x64d15253 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x64e04949 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x64eed80c seg6_hmac_net_exit +EXPORT_SYMBOL vmlinux 0x64fba6a9 current_time EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth EXPORT_SYMBOL vmlinux 0x6514c1e6 flow_get_u32_src EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651f1234 crypto_sha3_final EXPORT_SYMBOL vmlinux 0x652032cb mac_pton EXPORT_SYMBOL vmlinux 0x652ce9aa nla_memcmp -EXPORT_SYMBOL vmlinux 0x65368023 sb_set_blocksize -EXPORT_SYMBOL vmlinux 0x653eec15 pci_unmap_rom -EXPORT_SYMBOL vmlinux 0x654041d9 reuseport_migrate_sock +EXPORT_SYMBOL vmlinux 0x6538f7bc unpin_user_page EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob EXPORT_SYMBOL vmlinux 0x654449c3 memset16 -EXPORT_SYMBOL vmlinux 0x65447f1c page_pool_alloc_frag -EXPORT_SYMBOL vmlinux 0x65472505 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x655fb2d2 tcp_release_cb EXPORT_SYMBOL vmlinux 0x656c1a0e string_escape_mem EXPORT_SYMBOL vmlinux 0x656e4a6e snprintf EXPORT_SYMBOL vmlinux 0x658ce1a8 xxh64_reset -EXPORT_SYMBOL vmlinux 0x658f186c udp_seq_start -EXPORT_SYMBOL vmlinux 0x6591e4e2 stream_open EXPORT_SYMBOL vmlinux 0x65929cae ns_to_timespec64 EXPORT_SYMBOL vmlinux 0x659ded26 xfrm_flush_gc -EXPORT_SYMBOL vmlinux 0x659e1c8a fs_param_is_s32 EXPORT_SYMBOL vmlinux 0x659e81e6 _raw_read_lock_bh EXPORT_SYMBOL vmlinux 0x65a1c9e0 __alloc_bucket_spinlocks EXPORT_SYMBOL vmlinux 0x65aaf037 crc7_be_syndrome_table +EXPORT_SYMBOL vmlinux 0x65c4646c inet_getname +EXPORT_SYMBOL vmlinux 0x65c5a8d8 icmp_ndo_send +EXPORT_SYMBOL vmlinux 0x65cdcb4d vme_bus_error_handler +EXPORT_SYMBOL vmlinux 0x65cf7b70 flow_block_cb_decref EXPORT_SYMBOL vmlinux 0x65d1bab2 acpi_bios_warning +EXPORT_SYMBOL vmlinux 0x65d5ca38 pnp_is_active EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier -EXPORT_SYMBOL vmlinux 0x65db62c6 netif_carrier_on EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65de700a mr_vif_seq_idx EXPORT_SYMBOL vmlinux 0x65e0d6d7 memory_read_from_buffer -EXPORT_SYMBOL vmlinux 0x65e66407 con_copy_unimap -EXPORT_SYMBOL vmlinux 0x65e7291a generic_ro_fops -EXPORT_SYMBOL vmlinux 0x65e832e2 filemap_fdatawrite_wbc -EXPORT_SYMBOL vmlinux 0x66005611 __dynamic_dev_dbg -EXPORT_SYMBOL vmlinux 0x660e4be0 iov_iter_xarray -EXPORT_SYMBOL vmlinux 0x661aa45c netdev_lower_get_next -EXPORT_SYMBOL vmlinux 0x6646d587 address_space_init_once -EXPORT_SYMBOL vmlinux 0x6649c74b __ethtool_get_link_ksettings -EXPORT_SYMBOL vmlinux 0x664f75f0 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x660672b6 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x663a258f skb_condense +EXPORT_SYMBOL vmlinux 0x66551430 unregister_netdevice_notifier_net EXPORT_SYMBOL vmlinux 0x665e2513 zstd_max_clevel -EXPORT_SYMBOL vmlinux 0x665f2cbf __inode_add_bytes EXPORT_SYMBOL vmlinux 0x66628bf3 ip_tunnel_metadata_cnt +EXPORT_SYMBOL vmlinux 0x6663b389 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x666d2cf1 request_key_rcu EXPORT_SYMBOL vmlinux 0x6673f96d xxh32_reset -EXPORT_SYMBOL vmlinux 0x6698dd50 bio_add_folio +EXPORT_SYMBOL vmlinux 0x66859baa neigh_parms_release +EXPORT_SYMBOL vmlinux 0x669674a5 serio_unregister_child_port EXPORT_SYMBOL vmlinux 0x669c191b dm_consume_args -EXPORT_SYMBOL vmlinux 0x66a4b934 twl6040_get_vibralr_status -EXPORT_SYMBOL vmlinux 0x66b47a8f page_pool_release_page EXPORT_SYMBOL vmlinux 0x66b4cc41 kmemdup +EXPORT_SYMBOL vmlinux 0x66bfe626 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x66c0c46b qdisc_offload_query_caps +EXPORT_SYMBOL vmlinux 0x66cfae96 ethtool_get_phc_vclocks +EXPORT_SYMBOL vmlinux 0x66e0c86b phy_modify_paged +EXPORT_SYMBOL vmlinux 0x66e96ac4 security_sb_mnt_opts_compat EXPORT_SYMBOL vmlinux 0x66edfc78 _find_next_or_bit -EXPORT_SYMBOL vmlinux 0x66fb50ca __dec_zone_page_state -EXPORT_SYMBOL vmlinux 0x66fdfe6b remove_proc_subtree -EXPORT_SYMBOL vmlinux 0x6701fd2b simple_write_begin -EXPORT_SYMBOL vmlinux 0x670d9dea __aperture_remove_legacy_vga_devices -EXPORT_SYMBOL vmlinux 0x6722a4bd scsi_add_device -EXPORT_SYMBOL vmlinux 0x67284606 ioc_lookup_icq -EXPORT_SYMBOL vmlinux 0x673f6945 gro_cells_init -EXPORT_SYMBOL vmlinux 0x67448c71 tcp_v4_send_check -EXPORT_SYMBOL vmlinux 0x674761dc blk_mq_tagset_wait_completed_request +EXPORT_SYMBOL vmlinux 0x66f38f46 seq_lseek +EXPORT_SYMBOL vmlinux 0x66f6a175 param_get_hexint +EXPORT_SYMBOL vmlinux 0x671143db bpf_link_get_from_fd +EXPORT_SYMBOL vmlinux 0x671267c7 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x6716723e iov_iter_gap_alignment +EXPORT_SYMBOL vmlinux 0x672f80ea clear_nlink +EXPORT_SYMBOL vmlinux 0x67381e32 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x67457867 scsi_execute_cmd +EXPORT_SYMBOL vmlinux 0x674969a1 filemap_fault EXPORT_SYMBOL vmlinux 0x6749d53f hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x6775e190 pci_set_master +EXPORT_SYMBOL vmlinux 0x677fbfd1 phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0x67867103 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x6788b7ff cdrom_mode_select EXPORT_SYMBOL vmlinux 0x678b96ec dma_pool_alloc -EXPORT_SYMBOL vmlinux 0x679644b3 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x679578ab vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0x679bf4ba inet_release EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios -EXPORT_SYMBOL vmlinux 0x67b4db8a of_phy_register_fixed_link +EXPORT_SYMBOL vmlinux 0x67b2f221 registered_fb +EXPORT_SYMBOL vmlinux 0x67b724a1 dcb_ieee_getapp_prio_dscp_mask_map EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu -EXPORT_SYMBOL vmlinux 0x67c12ab2 uart_resume_port EXPORT_SYMBOL vmlinux 0x67c13ea0 acpi_read -EXPORT_SYMBOL vmlinux 0x67cc80d8 pci_bus_read_config_word -EXPORT_SYMBOL vmlinux 0x67d198b9 phy_get_eee_err -EXPORT_SYMBOL vmlinux 0x67d27151 dma_resv_iter_next_unlocked -EXPORT_SYMBOL vmlinux 0x67d59aab mipi_dsi_compression_mode -EXPORT_SYMBOL vmlinux 0x67d9767d dev_get_by_napi_id -EXPORT_SYMBOL vmlinux 0x67db3792 rt_dst_alloc -EXPORT_SYMBOL vmlinux 0x6824e7f1 pci_resize_resource +EXPORT_SYMBOL vmlinux 0x67d7ea0d key_put +EXPORT_SYMBOL vmlinux 0x67e2bbb6 genphy_read_abilities +EXPORT_SYMBOL vmlinux 0x68017d42 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x68175bed pci_find_resource +EXPORT_SYMBOL vmlinux 0x68339858 d_instantiate +EXPORT_SYMBOL vmlinux 0x68392e53 of_get_mac_address +EXPORT_SYMBOL vmlinux 0x683b056f xfrm_dst_ifdown EXPORT_SYMBOL vmlinux 0x6840c432 try_wait_for_completion -EXPORT_SYMBOL vmlinux 0x6858c453 tty_devnum -EXPORT_SYMBOL vmlinux 0x6864e444 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x6844d0bf generic_file_llseek +EXPORT_SYMBOL vmlinux 0x6851b4e3 input_get_timestamp EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval -EXPORT_SYMBOL vmlinux 0x6881f241 input_mt_drop_unused -EXPORT_SYMBOL vmlinux 0x6891e61c blk_mq_alloc_request EXPORT_SYMBOL vmlinux 0x68947128 gen_pool_add_owner -EXPORT_SYMBOL vmlinux 0x6895853d scsi_register_interface -EXPORT_SYMBOL vmlinux 0x68cb8627 netdev_sk_get_lowest_dev -EXPORT_SYMBOL vmlinux 0x68e52e28 security_path_rename +EXPORT_SYMBOL vmlinux 0x68a0eb6c param_get_charp +EXPORT_SYMBOL vmlinux 0x68a119dd kmem_cache_alloc_bulk +EXPORT_SYMBOL vmlinux 0x68affc02 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x68d0b66b skb_unlink +EXPORT_SYMBOL vmlinux 0x68d9558d xfrm_init_state EXPORT_SYMBOL vmlinux 0x68e6d5db tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x68f93482 unix_detach_fds +EXPORT_SYMBOL vmlinux 0x6908a5e9 padata_free +EXPORT_SYMBOL vmlinux 0x6913a8c3 vfs_dup_fs_context EXPORT_SYMBOL vmlinux 0x694e1203 _atomic_dec_and_raw_lock_irqsave +EXPORT_SYMBOL vmlinux 0x695efcce copy_page_from_iter EXPORT_SYMBOL vmlinux 0x69668826 netdev_increment_features EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days EXPORT_SYMBOL vmlinux 0x6972e413 __bitmap_weight_and -EXPORT_SYMBOL vmlinux 0x69753cbd pci_irq_get_affinity -EXPORT_SYMBOL vmlinux 0x697e7800 filemap_fdatawait_range_keep_errors EXPORT_SYMBOL vmlinux 0x697ed5f0 memcpy_and_pad -EXPORT_SYMBOL vmlinux 0x69872c23 input_set_abs_params -EXPORT_SYMBOL vmlinux 0x699322c3 tcp_sock_set_syncnt -EXPORT_SYMBOL vmlinux 0x6994747f udp_set_csum +EXPORT_SYMBOL vmlinux 0x697f894d mdiobus_c45_read_nested +EXPORT_SYMBOL vmlinux 0x698bc69e md_bitmap_update_sb +EXPORT_SYMBOL vmlinux 0x698e4a33 scsi_vpd_tpg_id +EXPORT_SYMBOL vmlinux 0x698ff681 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x6990b547 submit_bio +EXPORT_SYMBOL vmlinux 0x69a44ef6 is_free_buddy_page +EXPORT_SYMBOL vmlinux 0x69a65fbd dev_uc_flush +EXPORT_SYMBOL vmlinux 0x69ac3e36 dquot_free_inode EXPORT_SYMBOL vmlinux 0x69acdf38 memcpy -EXPORT_SYMBOL vmlinux 0x69b31c3c textsearch_find_continuous -EXPORT_SYMBOL vmlinux 0x69d08000 mdio_driver_register +EXPORT_SYMBOL vmlinux 0x69b93016 tcp_seq_stop +EXPORT_SYMBOL vmlinux 0x69c58d05 blk_mq_alloc_request EXPORT_SYMBOL vmlinux 0x69d89736 _atomic_dec_and_lock_irqsave -EXPORT_SYMBOL vmlinux 0x69da5f7c sock_queue_err_skb -EXPORT_SYMBOL vmlinux 0x69dc2286 mipi_dsi_dcs_set_display_on EXPORT_SYMBOL vmlinux 0x69dd3b5b crc32_le EXPORT_SYMBOL vmlinux 0x69de8757 vme_check_window -EXPORT_SYMBOL vmlinux 0x69e2e070 mmc_retune_timer_stop -EXPORT_SYMBOL vmlinux 0x69f249be xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x69e29f32 peernet2id EXPORT_SYMBOL vmlinux 0x69f27980 dma_fence_signal_timestamp EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree -EXPORT_SYMBOL vmlinux 0x6a04d19c of_find_all_nodes -EXPORT_SYMBOL vmlinux 0x6a0e70f8 flow_indr_dev_unregister -EXPORT_SYMBOL vmlinux 0x6a1825cf tcf_qevent_init -EXPORT_SYMBOL vmlinux 0x6a1e1424 scsi_device_get -EXPORT_SYMBOL vmlinux 0x6a3e030c iov_iter_revert -EXPORT_SYMBOL vmlinux 0x6a3eba1a tc_cleanup_offload_action +EXPORT_SYMBOL vmlinux 0x6a1b40e1 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x6a210d4e scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x6a343c79 folio_end_private_2 +EXPORT_SYMBOL vmlinux 0x6a4a58f4 udp_gro_complete EXPORT_SYMBOL vmlinux 0x6a5cb5ee __get_free_pages -EXPORT_SYMBOL vmlinux 0x6a5db6c6 __blkdev_issue_zeroout EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier -EXPORT_SYMBOL vmlinux 0x6a6bbcc7 __scsi_iterate_devices EXPORT_SYMBOL vmlinux 0x6a6e05bf kstrtou8 -EXPORT_SYMBOL vmlinux 0x6a73ca2a blk_queue_dma_alignment -EXPORT_SYMBOL vmlinux 0x6a7a2673 tty_port_put -EXPORT_SYMBOL vmlinux 0x6a80080a bdi_alloc +EXPORT_SYMBOL vmlinux 0x6a6f6d81 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x6a7fcef3 cfb_fillrect EXPORT_SYMBOL vmlinux 0x6a8831e0 jiffies_64 -EXPORT_SYMBOL vmlinux 0x6aa7fbaf pci_read_config_word -EXPORT_SYMBOL vmlinux 0x6aaf4ddb __kfree_skb -EXPORT_SYMBOL vmlinux 0x6abb3ecd pci_ep_cfs_remove_epf_group -EXPORT_SYMBOL vmlinux 0x6acb5d50 dev_vprintk_emit -EXPORT_SYMBOL vmlinux 0x6ae57f7a inc_zone_page_state -EXPORT_SYMBOL vmlinux 0x6ae6ed5e input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x6a98821f mipi_dsi_dcs_nop +EXPORT_SYMBOL vmlinux 0x6aa028f5 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x6aa4ebf4 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x6ac6d7fa set_binfmt +EXPORT_SYMBOL vmlinux 0x6ad7393b send_sig +EXPORT_SYMBOL vmlinux 0x6ae75544 mmc_cqe_recovery +EXPORT_SYMBOL vmlinux 0x6aee7c5c seg6_hmac_validate_skb EXPORT_SYMBOL vmlinux 0x6aeefac4 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x6afafaea pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x6b054e1e pci_free_irq EXPORT_SYMBOL vmlinux 0x6b10bee1 _copy_to_user -EXPORT_SYMBOL vmlinux 0x6b12fa7c sock_common_recvmsg -EXPORT_SYMBOL vmlinux 0x6b1762b4 ps2_init -EXPORT_SYMBOL vmlinux 0x6b18aa1b edac_mc_find -EXPORT_SYMBOL vmlinux 0x6b28a6e9 thaw_super +EXPORT_SYMBOL vmlinux 0x6b206449 seq_dentry +EXPORT_SYMBOL vmlinux 0x6b230a9e scsi_host_lookup EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack -EXPORT_SYMBOL vmlinux 0x6b32e752 inet_frag_find -EXPORT_SYMBOL vmlinux 0x6b34e60d of_get_ethdev_address -EXPORT_SYMBOL vmlinux 0x6b3ecc7b kthread_create_on_node -EXPORT_SYMBOL vmlinux 0x6b447a72 flow_rule_match_enc_opts -EXPORT_SYMBOL vmlinux 0x6b4f7d1d kernel_bind -EXPORT_SYMBOL vmlinux 0x6b51b947 do_SAK +EXPORT_SYMBOL vmlinux 0x6b413136 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x6b46e6a1 mr_fill_mroute +EXPORT_SYMBOL vmlinux 0x6b4f00ce unix_get_socket +EXPORT_SYMBOL vmlinux 0x6b5083c0 tcf_em_tree_dump EXPORT_SYMBOL vmlinux 0x6b55acd0 rtnl_lock_killable -EXPORT_SYMBOL vmlinux 0x6b63f073 dm_table_get_size -EXPORT_SYMBOL vmlinux 0x6b763da3 __find_get_block -EXPORT_SYMBOL vmlinux 0x6b848397 vfs_ioctl +EXPORT_SYMBOL vmlinux 0x6b5b831a rio_query_mport +EXPORT_SYMBOL vmlinux 0x6b5d54b8 __traceiter_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x6b7626aa dump_align +EXPORT_SYMBOL vmlinux 0x6b82070a set_bh_page EXPORT_SYMBOL vmlinux 0x6b853d06 ns_to_kernel_old_timeval EXPORT_SYMBOL vmlinux 0x6b8bf149 netif_receive_skb_list -EXPORT_SYMBOL vmlinux 0x6bad65f3 crypto_sha3_final +EXPORT_SYMBOL vmlinux 0x6ba537b7 tcf_chain_put_by_act +EXPORT_SYMBOL vmlinux 0x6ba946f5 acpi_pm_device_sleep_state +EXPORT_SYMBOL vmlinux 0x6bae0c8e genphy_read_status +EXPORT_SYMBOL vmlinux 0x6bb1591d phy_remove_link_mode EXPORT_SYMBOL vmlinux 0x6bb47275 idr_destroy -EXPORT_SYMBOL vmlinux 0x6bbf8cdd filp_close +EXPORT_SYMBOL vmlinux 0x6bb75946 t10_pi_type3_crc EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev -EXPORT_SYMBOL vmlinux 0x6bc7b602 pnp_device_detach -EXPORT_SYMBOL vmlinux 0x6bd64468 nf_hook_slow_list +EXPORT_SYMBOL vmlinux 0x6bc419f7 max8998_read_reg EXPORT_SYMBOL vmlinux 0x6be1c1f8 acpi_install_method -EXPORT_SYMBOL vmlinux 0x6be358f4 reuseport_has_conns_set -EXPORT_SYMBOL vmlinux 0x6be7427e sdev_prefix_printk -EXPORT_SYMBOL vmlinux 0x6c017efe inc_nlink -EXPORT_SYMBOL vmlinux 0x6c16d9e9 of_get_mac_address_nvmem -EXPORT_SYMBOL vmlinux 0x6c3c52af dma_resv_add_fence -EXPORT_SYMBOL vmlinux 0x6c4c588b page_symlink -EXPORT_SYMBOL vmlinux 0x6c4e3eb9 mr_table_alloc +EXPORT_SYMBOL vmlinux 0x6be71a4f mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x6be72581 inet_sk_get_local_port_range +EXPORT_SYMBOL vmlinux 0x6bf419e7 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x6bff2bd6 bdi_register +EXPORT_SYMBOL vmlinux 0x6c120cb9 tty_write_room +EXPORT_SYMBOL vmlinux 0x6c156117 pci_map_rom +EXPORT_SYMBOL vmlinux 0x6c1614d1 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x6c194df9 sock_create +EXPORT_SYMBOL vmlinux 0x6c2012ec textsearch_register +EXPORT_SYMBOL vmlinux 0x6c39a0ef dma_unmap_resource +EXPORT_SYMBOL vmlinux 0x6c3ecea1 bio_endio EXPORT_SYMBOL vmlinux 0x6c5c863d gen_pool_free_owner EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb -EXPORT_SYMBOL vmlinux 0x6c6c896f alloc_anon_inode -EXPORT_SYMBOL vmlinux 0x6c75b74d blk_queue_update_dma_pad -EXPORT_SYMBOL vmlinux 0x6c812367 generic_buffers_fsync -EXPORT_SYMBOL vmlinux 0x6c81b7ba __sk_dst_check -EXPORT_SYMBOL vmlinux 0x6c8959e4 can_nice -EXPORT_SYMBOL vmlinux 0x6ca29715 tc_setup_cb_call +EXPORT_SYMBOL vmlinux 0x6c7f8277 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x6c996505 netdev_features_change +EXPORT_SYMBOL vmlinux 0x6ca122b0 nd_btt_arena_is_valid EXPORT_SYMBOL vmlinux 0x6cb46525 netlbl_catmap_walk -EXPORT_SYMBOL vmlinux 0x6cd6001b insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x6cb6e513 pnp_device_detach +EXPORT_SYMBOL vmlinux 0x6cceac2c of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x6cd4f37d max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x6cdd6900 skb_append EXPORT_SYMBOL vmlinux 0x6ce22259 ida_destroy EXPORT_SYMBOL vmlinux 0x6ce4ec94 sbi_remote_hfence_vvma -EXPORT_SYMBOL vmlinux 0x6ce517f9 __break_lease EXPORT_SYMBOL vmlinux 0x6ce6f1b1 gen_pool_dma_zalloc_align +EXPORT_SYMBOL vmlinux 0x6ce91db0 ppp_unregister_channel EXPORT_SYMBOL vmlinux 0x6cf78cdd gen_pool_first_fit -EXPORT_SYMBOL vmlinux 0x6cf8c312 md_update_sb -EXPORT_SYMBOL vmlinux 0x6d015ee5 zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0x6cf80366 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x6d219002 seq_bprintf EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2bd824 i2c_smbus_write_i2c_block_data EXPORT_SYMBOL vmlinux 0x6d2c123f _raw_spin_trylock -EXPORT_SYMBOL vmlinux 0x6d3993f7 __hw_addr_ref_sync_dev +EXPORT_SYMBOL vmlinux 0x6d46b1d1 skb_copy_datagram_iter EXPORT_SYMBOL vmlinux 0x6d479017 __traceiter_dma_fence_emit -EXPORT_SYMBOL vmlinux 0x6d48cb91 dev_load -EXPORT_SYMBOL vmlinux 0x6d75a563 elv_rb_del -EXPORT_SYMBOL vmlinux 0x6d7673e3 bdi_put +EXPORT_SYMBOL vmlinux 0x6d5005f3 dev_open +EXPORT_SYMBOL vmlinux 0x6d5aafe5 filemap_splice_read +EXPORT_SYMBOL vmlinux 0x6d60a906 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x6d6281e7 phy_ethtool_nway_reset EXPORT_SYMBOL vmlinux 0x6d7c7dcc bitmap_cut -EXPORT_SYMBOL vmlinux 0x6d879cc2 __dec_node_page_state -EXPORT_SYMBOL vmlinux 0x6d8acf71 bio_put EXPORT_SYMBOL vmlinux 0x6dba9051 xz_dec_microlzma_end +EXPORT_SYMBOL vmlinux 0x6dcc6984 dma_resv_iter_next_unlocked EXPORT_SYMBOL vmlinux 0x6dcf857f uuid_null -EXPORT_SYMBOL vmlinux 0x6dcfa0cf md_set_array_sectors EXPORT_SYMBOL vmlinux 0x6dd17e7b acpi_get_table_header -EXPORT_SYMBOL vmlinux 0x6dd4da67 jbd2_journal_finish_inode_data_buffers -EXPORT_SYMBOL vmlinux 0x6de2464a flow_indr_dev_register +EXPORT_SYMBOL vmlinux 0x6dd80a87 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x6dd9776d framebuffer_release EXPORT_SYMBOL vmlinux 0x6df1aaf1 kernel_sigaction +EXPORT_SYMBOL vmlinux 0x6dfd5ecd dst_release_immediate +EXPORT_SYMBOL vmlinux 0x6e02c56a devm_clk_put EXPORT_SYMBOL vmlinux 0x6e05d65e abort_creds -EXPORT_SYMBOL vmlinux 0x6e0f04d1 dcb_getrewr_prio_pcp_mask_map -EXPORT_SYMBOL vmlinux 0x6e15f78e xsk_uses_need_wakeup -EXPORT_SYMBOL vmlinux 0x6e23c422 xp_dma_sync_for_cpu_slow -EXPORT_SYMBOL vmlinux 0x6e5513b2 md_bitmap_close_sync -EXPORT_SYMBOL vmlinux 0x6e593ee2 simple_empty +EXPORT_SYMBOL vmlinux 0x6e0de226 __mdiobus_read +EXPORT_SYMBOL vmlinux 0x6e1817f0 tc_setup_cb_replace +EXPORT_SYMBOL vmlinux 0x6e1c6029 component_match_add_release +EXPORT_SYMBOL vmlinux 0x6e24fa3d remove_watch_from_object +EXPORT_SYMBOL vmlinux 0x6e41a75f __skb_checksum +EXPORT_SYMBOL vmlinux 0x6e58a4c0 pci_rebar_get_possible_sizes EXPORT_SYMBOL vmlinux 0x6e5b8651 xz_dec_run -EXPORT_SYMBOL vmlinux 0x6e5d71a5 of_find_node_with_property -EXPORT_SYMBOL vmlinux 0x6e6b8572 mmc_of_parse_clk_phase EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock -EXPORT_SYMBOL vmlinux 0x6e7934b0 vfs_path_parent_lookup +EXPORT_SYMBOL vmlinux 0x6e85e9f6 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x6e8fd76d __phy_write_mmd EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea4745b pm8606_osc_disable EXPORT_SYMBOL vmlinux 0x6ea9363b force_sig -EXPORT_SYMBOL vmlinux 0x6eafbd04 tcp_sync_mss -EXPORT_SYMBOL vmlinux 0x6ee266d3 genphy_soft_reset +EXPORT_SYMBOL vmlinux 0x6ead2a5f udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x6eca5211 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x6ecb80da pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x6ee50d30 dma_pool_create EXPORT_SYMBOL vmlinux 0x6eecfaf4 sg_copy_buffer -EXPORT_SYMBOL vmlinux 0x6efd59b8 get_phy_device -EXPORT_SYMBOL vmlinux 0x6efe5c15 __sk_receive_skb -EXPORT_SYMBOL vmlinux 0x6f001b2a super_setup_bdi -EXPORT_SYMBOL vmlinux 0x6f0944db vlan_dev_real_dev -EXPORT_SYMBOL vmlinux 0x6f13fac6 mipi_dsi_dcs_enter_sleep_mode +EXPORT_SYMBOL vmlinux 0x6eeeadf8 neigh_table_init +EXPORT_SYMBOL vmlinux 0x6ef9a708 __skb_gro_checksum_complete +EXPORT_SYMBOL vmlinux 0x6f01a33f tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x6f131a5a input_unregister_device EXPORT_SYMBOL vmlinux 0x6f14e9db console_list_lock -EXPORT_SYMBOL vmlinux 0x6f15ccd3 thaw_bdev -EXPORT_SYMBOL vmlinux 0x6f328465 flow_indr_dev_setup_offload +EXPORT_SYMBOL vmlinux 0x6f170b0f dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0x6f335151 _copy_from_iter EXPORT_SYMBOL vmlinux 0x6f406b7b atomic_dec_and_mutex_lock -EXPORT_SYMBOL vmlinux 0x6f4132a6 __folio_put EXPORT_SYMBOL vmlinux 0x6f41a428 acpi_get_vendor_resource EXPORT_SYMBOL vmlinux 0x6f41a639 irq_cpu_rmap_remove EXPORT_SYMBOL vmlinux 0x6f4a59e4 sort_r +EXPORT_SYMBOL vmlinux 0x6f53770f ptp_schedule_worker +EXPORT_SYMBOL vmlinux 0x6f539713 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x6f56dede gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0x6f58dae3 invalidate_inode_buffers EXPORT_SYMBOL vmlinux 0x6f5ab52f acpi_get_local_address +EXPORT_SYMBOL vmlinux 0x6f5c0cbf padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x6f6ba70d udp_skb_destructor EXPORT_SYMBOL vmlinux 0x6f7793a5 skb_flow_dissector_init -EXPORT_SYMBOL vmlinux 0x6f843c61 __dquot_transfer EXPORT_SYMBOL vmlinux 0x6f847407 neigh_proc_dointvec_ms_jiffies -EXPORT_SYMBOL vmlinux 0x6fb2a220 fb_find_mode +EXPORT_SYMBOL vmlinux 0x6f84d528 mmc_command_done +EXPORT_SYMBOL vmlinux 0x6fac6f7f mdiobus_c45_write EXPORT_SYMBOL vmlinux 0x6fb49676 queue_rcu_work -EXPORT_SYMBOL vmlinux 0x6fcb5a72 tcf_block_put_ext +EXPORT_SYMBOL vmlinux 0x6fba5670 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x6fc01b27 disk_check_media_change +EXPORT_SYMBOL vmlinux 0x6fc45ce1 dcb_ieee_getapp_mask EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd62ce5 secure_tcpv6_ts_off +EXPORT_SYMBOL vmlinux 0x6fdbde93 vmf_insert_mixed_mkwrite EXPORT_SYMBOL vmlinux 0x6fdcfc99 sigprocmask EXPORT_SYMBOL vmlinux 0x70002fe8 siphash_1u32 -EXPORT_SYMBOL vmlinux 0x700c0329 dquot_get_state +EXPORT_SYMBOL vmlinux 0x7004470b netdev_reset_tc EXPORT_SYMBOL vmlinux 0x700c6c17 key_create -EXPORT_SYMBOL vmlinux 0x700e3fa9 ethtool_aggregate_phy_stats -EXPORT_SYMBOL vmlinux 0x70225582 ps2_interrupt EXPORT_SYMBOL vmlinux 0x7023bea8 unregister_acpi_notifier -EXPORT_SYMBOL vmlinux 0x702753c1 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x702406f4 phy_device_create EXPORT_SYMBOL vmlinux 0x702946da ucs2_strlen -EXPORT_SYMBOL vmlinux 0x703db053 reuseport_add_sock -EXPORT_SYMBOL vmlinux 0x704e8325 set_page_writeback -EXPORT_SYMBOL vmlinux 0x70521240 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x702cb47d inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x7041a65f xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x70449731 qdisc_put_unlocked EXPORT_SYMBOL vmlinux 0x7060d475 kern_sys_bpf -EXPORT_SYMBOL vmlinux 0x70681f75 sk_free -EXPORT_SYMBOL vmlinux 0x707f9a7e phy_find_first -EXPORT_SYMBOL vmlinux 0x708df128 device_get_mac_address -EXPORT_SYMBOL vmlinux 0x7096a5d6 tcf_idr_cleanup -EXPORT_SYMBOL vmlinux 0x70a85653 load_nls +EXPORT_SYMBOL vmlinux 0x707f59dc put_cmsg EXPORT_SYMBOL vmlinux 0x70ac2c1a blk_limits_io_min -EXPORT_SYMBOL vmlinux 0x70b9a16c xfrm_policy_insert -EXPORT_SYMBOL vmlinux 0x70d0a3b2 __skb_flow_get_ports -EXPORT_SYMBOL vmlinux 0x70daa925 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x70de3724 jbd2_journal_abort EXPORT_SYMBOL vmlinux 0x70e1a28d __cond_resched_rwlock_read -EXPORT_SYMBOL vmlinux 0x70fcfe3c ppp_unregister_compressor -EXPORT_SYMBOL vmlinux 0x710bc875 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x70e265ad vme_master_request +EXPORT_SYMBOL vmlinux 0x70e390a6 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x70f01dd8 nf_hook_slow EXPORT_SYMBOL vmlinux 0x710cdedb down_timeout -EXPORT_SYMBOL vmlinux 0x710d5a8f pldmfw_flash_image -EXPORT_SYMBOL vmlinux 0x7119302c genlmsg_put EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc -EXPORT_SYMBOL vmlinux 0x7134c67f security_sk_classify_flow -EXPORT_SYMBOL vmlinux 0x71399af0 csum_and_copy_to_iter -EXPORT_SYMBOL vmlinux 0x71454428 blk_mq_destroy_queue +EXPORT_SYMBOL vmlinux 0x7138aebb copy_page_to_iter +EXPORT_SYMBOL vmlinux 0x713ce03a crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x7140ffe3 tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0x7146eecb tcp_sendmsg EXPORT_SYMBOL vmlinux 0x7147bfff inetpeer_invalidate_tree -EXPORT_SYMBOL vmlinux 0x714c43fc ata_std_end_eh -EXPORT_SYMBOL vmlinux 0x714df96a inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x71584b5e pcie_capability_write_dword EXPORT_SYMBOL vmlinux 0x715a5ed0 vprintk +EXPORT_SYMBOL vmlinux 0x715b20c1 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x7163119d pci_bus_alloc_resource EXPORT_SYMBOL vmlinux 0x7171121c overflowgid -EXPORT_SYMBOL vmlinux 0x7172b5d0 flow_rule_match_enc_ports +EXPORT_SYMBOL vmlinux 0x7172bca4 input_event +EXPORT_SYMBOL vmlinux 0x7179067c skb_splice_from_iter +EXPORT_SYMBOL vmlinux 0x71795ac8 framebuffer_alloc EXPORT_SYMBOL vmlinux 0x717d1f96 hdmi_infoframe_check -EXPORT_SYMBOL vmlinux 0x717e3e3e md_done_sync -EXPORT_SYMBOL vmlinux 0x71846cb8 of_find_mipi_dsi_host_by_node +EXPORT_SYMBOL vmlinux 0x718b86b7 devm_get_clk_from_child EXPORT_SYMBOL vmlinux 0x71932956 mempool_create_node +EXPORT_SYMBOL vmlinux 0x719340d0 tty_port_destroy EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy -EXPORT_SYMBOL vmlinux 0x71a74a64 cdev_add EXPORT_SYMBOL vmlinux 0x71c37ac4 wait_for_completion_interruptible_timeout -EXPORT_SYMBOL vmlinux 0x71e3dca2 dev_uc_sync -EXPORT_SYMBOL vmlinux 0x71e42aaa netdev_lower_get_first_private_rcu +EXPORT_SYMBOL vmlinux 0x71ce7842 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x71d7f738 configfs_undepend_item +EXPORT_SYMBOL vmlinux 0x71dd7bb8 slab_build_skb EXPORT_SYMBOL vmlinux 0x71ed46df ns_capable_setid -EXPORT_SYMBOL vmlinux 0x7209bdce bio_init +EXPORT_SYMBOL vmlinux 0x71fcabd2 bdi_set_max_ratio EXPORT_SYMBOL vmlinux 0x720a27a7 __register_blkdev -EXPORT_SYMBOL vmlinux 0x72219b6c __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x721c9e58 vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0x721d3b9b simple_get_link EXPORT_SYMBOL vmlinux 0x7227311d gen_pool_set_algo -EXPORT_SYMBOL vmlinux 0x722ed82e mipi_dsi_shutdown_peripheral -EXPORT_SYMBOL vmlinux 0x7240ed8c cookie_ecn_ok -EXPORT_SYMBOL vmlinux 0x72425c49 __hw_addr_ref_unsync_dev -EXPORT_SYMBOL vmlinux 0x725fed5c register_mii_tstamp_controller -EXPORT_SYMBOL vmlinux 0x727a0c6f jbd2_journal_check_used_features -EXPORT_SYMBOL vmlinux 0x727eb213 pci_disable_link_state_locked -EXPORT_SYMBOL vmlinux 0x7281adc9 __generic_file_fsync +EXPORT_SYMBOL vmlinux 0x722ceced set_cached_acl +EXPORT_SYMBOL vmlinux 0x72451861 xp_set_rxq_info +EXPORT_SYMBOL vmlinux 0x727a4577 filemap_map_pages EXPORT_SYMBOL vmlinux 0x728e1699 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0x72a44f0b irq_domain_set_info EXPORT_SYMBOL vmlinux 0x72b9d287 default_grn -EXPORT_SYMBOL vmlinux 0x72cc7677 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x72b9df04 do_splice_direct +EXPORT_SYMBOL vmlinux 0x72bec083 inode_permission +EXPORT_SYMBOL vmlinux 0x72c8c221 mipi_dsi_dcs_get_display_brightness EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type EXPORT_SYMBOL vmlinux 0x72f14ff7 acpi_get_object_info -EXPORT_SYMBOL vmlinux 0x73011569 padata_set_cpumask -EXPORT_SYMBOL vmlinux 0x7310d43a pcie_get_mps +EXPORT_SYMBOL vmlinux 0x730651e9 eth_gro_complete +EXPORT_SYMBOL vmlinux 0x730a482a rtnl_configure_link EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config -EXPORT_SYMBOL vmlinux 0x732352f3 mode_strip_sgid +EXPORT_SYMBOL vmlinux 0x731c4a4d inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x732a13ff pci_disable_device EXPORT_SYMBOL vmlinux 0x732dd326 groups_free -EXPORT_SYMBOL vmlinux 0x73402f52 pipe_unlock +EXPORT_SYMBOL vmlinux 0x7357c3ee of_graph_get_remote_node +EXPORT_SYMBOL vmlinux 0x735b763b dev_set_threaded EXPORT_SYMBOL vmlinux 0x735e6a81 acpi_evaluate_integer -EXPORT_SYMBOL vmlinux 0x73611b2c param_set_dyndbg_classes -EXPORT_SYMBOL vmlinux 0x7365972b of_get_next_cpu_node +EXPORT_SYMBOL vmlinux 0x7366835b pci_set_mwi +EXPORT_SYMBOL vmlinux 0x7367b438 file_fdatawait_range +EXPORT_SYMBOL vmlinux 0x737ad2bc kmalloc_node_trace EXPORT_SYMBOL vmlinux 0x7380dffa argv_split -EXPORT_SYMBOL vmlinux 0x7392477e __inc_node_page_state +EXPORT_SYMBOL vmlinux 0x73899847 iov_iter_npages +EXPORT_SYMBOL vmlinux 0x738e941d blk_mq_alloc_disk_for_queue +EXPORT_SYMBOL vmlinux 0x7398165e block_write_end EXPORT_SYMBOL vmlinux 0x739fd00f __SCK__tp_func_module_get -EXPORT_SYMBOL vmlinux 0x73a71153 d_add_ci +EXPORT_SYMBOL vmlinux 0x73a74195 skb_store_bits EXPORT_SYMBOL vmlinux 0x73abb180 alloc_contig_range -EXPORT_SYMBOL vmlinux 0x73b2e8e1 scm_fp_dup -EXPORT_SYMBOL vmlinux 0x73b3d091 passthru_features_check -EXPORT_SYMBOL vmlinux 0x73bd4cd7 sock_no_accept -EXPORT_SYMBOL vmlinux 0x73de8f92 of_graph_get_remote_node -EXPORT_SYMBOL vmlinux 0x73f0eaee genl_register_family -EXPORT_SYMBOL vmlinux 0x73f0fb89 filemap_invalidate_unlock_two -EXPORT_SYMBOL vmlinux 0x73f111e2 __netlink_ns_capable -EXPORT_SYMBOL vmlinux 0x73f32440 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x73ae6009 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0x73bdae78 try_lookup_one_len +EXPORT_SYMBOL vmlinux 0x73c13164 reuseport_stop_listen_sock +EXPORT_SYMBOL vmlinux 0x73c801e7 dev_addr_add +EXPORT_SYMBOL vmlinux 0x73eda8fa sync_filesystem +EXPORT_SYMBOL vmlinux 0x73ef917e bio_chain +EXPORT_SYMBOL vmlinux 0x73f62660 dev_disable_lro EXPORT_SYMBOL vmlinux 0x740364a0 mt_find_after EXPORT_SYMBOL vmlinux 0x7410aba2 strreplace EXPORT_SYMBOL vmlinux 0x7412ed5b kvfree_sensitive -EXPORT_SYMBOL vmlinux 0x741dbe88 _dev_emerg EXPORT_SYMBOL vmlinux 0x742578a5 wait_for_random_bytes -EXPORT_SYMBOL vmlinux 0x7426679c gnet_stats_finish_copy EXPORT_SYMBOL vmlinux 0x7429e20c kstrtos8 EXPORT_SYMBOL vmlinux 0x742fa9c9 swake_up_one -EXPORT_SYMBOL vmlinux 0x7439a591 folio_account_redirty -EXPORT_SYMBOL vmlinux 0x7441a938 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x743ec7de register_netdevice +EXPORT_SYMBOL vmlinux 0x743f5937 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x745356b7 inet6_protos EXPORT_SYMBOL vmlinux 0x7453d3e8 security_release_secctx +EXPORT_SYMBOL vmlinux 0x745ade86 show_init_ipc_ns +EXPORT_SYMBOL vmlinux 0x7466cf00 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x746a83d0 phy_advertise_supported +EXPORT_SYMBOL vmlinux 0x7474fbea pci_iomap EXPORT_SYMBOL vmlinux 0x74754435 acpi_bus_generate_netlink_event -EXPORT_SYMBOL vmlinux 0x747612de inet_add_offload EXPORT_SYMBOL vmlinux 0x7483dc59 pci_dev_present -EXPORT_SYMBOL vmlinux 0x74859253 sock_no_listen -EXPORT_SYMBOL vmlinux 0x748ac2b2 padata_do_serial +EXPORT_SYMBOL vmlinux 0x7490957a filemap_check_errors EXPORT_SYMBOL vmlinux 0x74924e98 dma_fence_init -EXPORT_SYMBOL vmlinux 0x749c8986 cdev_set_parent -EXPORT_SYMBOL vmlinux 0x74a221e5 vme_slot_num -EXPORT_SYMBOL vmlinux 0x74aa4ae4 genphy_read_master_slave -EXPORT_SYMBOL vmlinux 0x74ac4c12 config_group_find_item +EXPORT_SYMBOL vmlinux 0x7494cec1 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x74a46732 inode_init_once +EXPORT_SYMBOL vmlinux 0x74b5df32 blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x74b62394 netdev_update_features EXPORT_SYMBOL vmlinux 0x74b8e674 slhc_toss EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 -EXPORT_SYMBOL vmlinux 0x74da6ce5 lookup_one_qstr_excl +EXPORT_SYMBOL vmlinux 0x74c49d9d param_get_ushort +EXPORT_SYMBOL vmlinux 0x74c9904d sock_no_connect +EXPORT_SYMBOL vmlinux 0x74d9742a inet_csk_delete_keepalive_timer EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable -EXPORT_SYMBOL vmlinux 0x752290dc pci_enable_msix_range -EXPORT_SYMBOL vmlinux 0x752a5e30 serial8250_register_8250_port -EXPORT_SYMBOL vmlinux 0x752b1b8d d_instantiate -EXPORT_SYMBOL vmlinux 0x752c653d dquot_release -EXPORT_SYMBOL vmlinux 0x753fa1d0 napi_gro_frags -EXPORT_SYMBOL vmlinux 0x7541b2a6 skb_coalesce_rx_frag -EXPORT_SYMBOL vmlinux 0x7543645f generic_fadvise -EXPORT_SYMBOL vmlinux 0x7545d622 inet_csk_init_xmit_timers -EXPORT_SYMBOL vmlinux 0x755736ba ppp_channel_index -EXPORT_SYMBOL vmlinux 0x755b484f fscrypt_put_encryption_info +EXPORT_SYMBOL vmlinux 0x74ec1a00 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x74ff5b27 udp_set_csum +EXPORT_SYMBOL vmlinux 0x750ec31f generic_write_end +EXPORT_SYMBOL vmlinux 0x751f2672 generic_file_write_iter +EXPORT_SYMBOL vmlinux 0x75564ad0 tcf_chain_get_by_act +EXPORT_SYMBOL vmlinux 0x755a0104 dquot_quota_off EXPORT_SYMBOL vmlinux 0x755f4ba3 blake2s_compress_generic -EXPORT_SYMBOL vmlinux 0x7560ee57 inode_query_iversion -EXPORT_SYMBOL vmlinux 0x756279fa __serio_register_driver +EXPORT_SYMBOL vmlinux 0x756703a9 pcim_iomap_table EXPORT_SYMBOL vmlinux 0x75871f5e acpi_get_next_object -EXPORT_SYMBOL vmlinux 0x7592d698 of_find_node_opts_by_path -EXPORT_SYMBOL vmlinux 0x75946a93 dst_release -EXPORT_SYMBOL vmlinux 0x759dcbb1 ip_route_input_noref +EXPORT_SYMBOL vmlinux 0x7593596d blk_mq_delay_run_hw_queues +EXPORT_SYMBOL vmlinux 0x7593a71f mr_mfc_find_parent +EXPORT_SYMBOL vmlinux 0x75b83753 tcf_qevent_dump EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next -EXPORT_SYMBOL vmlinux 0x75c02ecb xfrm6_rcv_tnl +EXPORT_SYMBOL vmlinux 0x75bf574f set_page_dirty_lock EXPORT_SYMBOL vmlinux 0x75d0deb9 nsecs_to_jiffies64 EXPORT_SYMBOL vmlinux 0x75d499dd vmcore_add_device_dump -EXPORT_SYMBOL vmlinux 0x75f3341e nd_device_notify -EXPORT_SYMBOL vmlinux 0x75fd3fc3 iov_iter_single_seg_count -EXPORT_SYMBOL vmlinux 0x7609bbc6 try_lookup_one_len +EXPORT_SYMBOL vmlinux 0x75f64691 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x75f9a277 setattr_copy +EXPORT_SYMBOL vmlinux 0x75fc10c6 dcb_ieee_getapp_dscp_prio_mask_map EXPORT_SYMBOL vmlinux 0x760a0f4f yield -EXPORT_SYMBOL vmlinux 0x76139571 kernel_sendmsg_locked -EXPORT_SYMBOL vmlinux 0x7620bae9 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x7616f251 create_empty_buffers EXPORT_SYMBOL vmlinux 0x7624249e dim_park_tired -EXPORT_SYMBOL vmlinux 0x76363b44 gnet_stats_copy_rate_est -EXPORT_SYMBOL vmlinux 0x76381871 security_inet_conn_established -EXPORT_SYMBOL vmlinux 0x7639460b ppp_dev_name -EXPORT_SYMBOL vmlinux 0x763d634b igrab +EXPORT_SYMBOL vmlinux 0x7631e9cf read_cache_folio +EXPORT_SYMBOL vmlinux 0x7635cc78 dmam_alloc_attrs +EXPORT_SYMBOL vmlinux 0x76395177 neigh_direct_output EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq -EXPORT_SYMBOL vmlinux 0x7659b00d mmc_calc_max_discard EXPORT_SYMBOL vmlinux 0x765ff474 crc_t10dif_generic EXPORT_SYMBOL vmlinux 0x766a0927 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x76768762 ps2_sliced_command EXPORT_SYMBOL vmlinux 0x7682ba4e __copy_overflow -EXPORT_SYMBOL vmlinux 0x7699a943 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x76868c32 mipi_dsi_dcs_exit_sleep_mode +EXPORT_SYMBOL vmlinux 0x76891e71 genphy_resume +EXPORT_SYMBOL vmlinux 0x7689467c tc_setup_cb_add EXPORT_SYMBOL vmlinux 0x769f6e64 errseq_check -EXPORT_SYMBOL vmlinux 0x76a06dc6 inet_frag_pull_head -EXPORT_SYMBOL vmlinux 0x76ad519f config_item_put -EXPORT_SYMBOL vmlinux 0x76b05f8a __dev_direct_xmit -EXPORT_SYMBOL vmlinux 0x76c7c95c i2c_verify_client +EXPORT_SYMBOL vmlinux 0x76a77966 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x76ab1519 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x76bf74b4 of_iommu_get_resv_regions EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode -EXPORT_SYMBOL vmlinux 0x76e4b884 nd_btt_version -EXPORT_SYMBOL vmlinux 0x76ead101 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x76e5c6f0 param_ops_bool EXPORT_SYMBOL vmlinux 0x76f4a8b6 idr_alloc_cyclic -EXPORT_SYMBOL vmlinux 0x7706fd3f amba_device_unregister -EXPORT_SYMBOL vmlinux 0x7708cdf1 inet_listen -EXPORT_SYMBOL vmlinux 0x77148beb eth_get_headlen -EXPORT_SYMBOL vmlinux 0x7714a120 sock_kmalloc -EXPORT_SYMBOL vmlinux 0x77283a0d tc_setup_cb_destroy +EXPORT_SYMBOL vmlinux 0x770de354 param_set_dyndbg_classes +EXPORT_SYMBOL vmlinux 0x770f1031 d_move +EXPORT_SYMBOL vmlinux 0x771eef6b pci_enable_device_mem EXPORT_SYMBOL vmlinux 0x77358855 iomem_resource -EXPORT_SYMBOL vmlinux 0x773a2304 netif_napi_add_weight +EXPORT_SYMBOL vmlinux 0x77372706 vga_con EXPORT_SYMBOL vmlinux 0x773fa409 __kfifo_dma_in_finish_r -EXPORT_SYMBOL vmlinux 0x77427086 xfrm_state_lookup_byaddr EXPORT_SYMBOL vmlinux 0x77456e0a acpi_root_dir -EXPORT_SYMBOL vmlinux 0x774e23c8 iter_file_splice_write -EXPORT_SYMBOL vmlinux 0x77511085 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x7767ad75 vga_put EXPORT_SYMBOL vmlinux 0x776ca93a __clzdi2 EXPORT_SYMBOL vmlinux 0x777677a7 trace_seq_hex_dump -EXPORT_SYMBOL vmlinux 0x77879bb7 acpi_dev_uid_to_integer -EXPORT_SYMBOL vmlinux 0x77a9919f splice_direct_to_actor -EXPORT_SYMBOL vmlinux 0x77b02895 done_path_create +EXPORT_SYMBOL vmlinux 0x7777bb46 netdev_has_upper_dev_all_rcu +EXPORT_SYMBOL vmlinux 0x777e0c5a input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x778ce4b4 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x77977505 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x77a4c43c kmem_cache_size +EXPORT_SYMBOL vmlinux 0x77afa3b0 phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x77b9c4f4 remap_pfn_range EXPORT_SYMBOL vmlinux 0x77bc13a0 strim -EXPORT_SYMBOL vmlinux 0x77bc1c40 security_path_mkdir -EXPORT_SYMBOL vmlinux 0x77ca88dc folio_wait_private_2_killable -EXPORT_SYMBOL vmlinux 0x77cce35f mmc_can_gpio_ro -EXPORT_SYMBOL vmlinux 0x77d2a4d7 config_group_init_type_name -EXPORT_SYMBOL vmlinux 0x77dbe348 show_init_ipc_ns +EXPORT_SYMBOL vmlinux 0x77da50c3 qdisc_offload_dump_helper EXPORT_SYMBOL vmlinux 0x77e9eb37 aes_encrypt -EXPORT_SYMBOL vmlinux 0x77f9dddf make_kuid -EXPORT_SYMBOL vmlinux 0x77fd643e vfs_fsync_range -EXPORT_SYMBOL vmlinux 0x78006873 param_set_ullong -EXPORT_SYMBOL vmlinux 0x7803e645 dentry_create +EXPORT_SYMBOL vmlinux 0x77fdc235 generic_buffers_fsync_noflush EXPORT_SYMBOL vmlinux 0x7807f0f8 schedule_timeout_idle -EXPORT_SYMBOL vmlinux 0x780c91fa put_watch_queue -EXPORT_SYMBOL vmlinux 0x7819b847 genphy_update_link +EXPORT_SYMBOL vmlinux 0x7818a5d6 netif_inherit_tso_max +EXPORT_SYMBOL vmlinux 0x783d68bb cdev_add EXPORT_SYMBOL vmlinux 0x7846af3e __kfifo_len_r -EXPORT_SYMBOL vmlinux 0x7860cc24 netdev_lower_get_next_private_rcu -EXPORT_SYMBOL vmlinux 0x78650393 filemap_map_pages -EXPORT_SYMBOL vmlinux 0x7871f176 neigh_table_clear -EXPORT_SYMBOL vmlinux 0x787e7bdc kill_litter_super -EXPORT_SYMBOL vmlinux 0x78927509 mmc_card_is_blockaddr +EXPORT_SYMBOL vmlinux 0x784aa4f9 finish_swait +EXPORT_SYMBOL vmlinux 0x78680114 __ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0x786c5670 ip6_xmit +EXPORT_SYMBOL vmlinux 0x786c72a5 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x78783a9c __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x78843b92 filemap_fdatawait_range EXPORT_SYMBOL vmlinux 0x789b405d __mmiowb_state EXPORT_SYMBOL vmlinux 0x78a16f48 aes_decrypt -EXPORT_SYMBOL vmlinux 0x78af9633 ipv6_sock_mc_join +EXPORT_SYMBOL vmlinux 0x78a687e2 dquot_get_state EXPORT_SYMBOL vmlinux 0x78b887ed vsprintf -EXPORT_SYMBOL vmlinux 0x78ba4393 ilookup5 -EXPORT_SYMBOL vmlinux 0x78be07d9 xsk_tx_peek_desc -EXPORT_SYMBOL vmlinux 0x78d50f95 tcp_mtu_to_mss +EXPORT_SYMBOL vmlinux 0x78d6b9d4 iw_handler_get_thrspy EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices -EXPORT_SYMBOL vmlinux 0x78e95e8a mount_nodev +EXPORT_SYMBOL vmlinux 0x78e4890b uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x78faff49 mipi_dsi_dcs_set_column_address +EXPORT_SYMBOL vmlinux 0x78ff19f0 tls_client_hello_psk EXPORT_SYMBOL vmlinux 0x7919b383 alloc_cpu_rmap -EXPORT_SYMBOL vmlinux 0x79377c42 xfrm_policy_delete -EXPORT_SYMBOL vmlinux 0x79546f01 fifo_set_limit -EXPORT_SYMBOL vmlinux 0x795d34e3 blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0x7932645f sock_set_priority +EXPORT_SYMBOL vmlinux 0x7954f01a kfree_skb_reason +EXPORT_SYMBOL vmlinux 0x7965053c pipe_lock +EXPORT_SYMBOL vmlinux 0x7976b9cb udp_seq_start +EXPORT_SYMBOL vmlinux 0x7976ffeb setup_arg_pages EXPORT_SYMBOL vmlinux 0x797a27e3 proc_do_large_bitmap EXPORT_SYMBOL vmlinux 0x7984eefc key_update -EXPORT_SYMBOL vmlinux 0x7989a882 make_kgid -EXPORT_SYMBOL vmlinux 0x798ae84c of_phy_connect -EXPORT_SYMBOL vmlinux 0x799f30b0 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x798a5138 phy_write_paged EXPORT_SYMBOL vmlinux 0x79a2d314 _raw_spin_trylock_bh EXPORT_SYMBOL vmlinux 0x79a33f85 vme_get_size -EXPORT_SYMBOL vmlinux 0x79ba4cb9 pci_iomap -EXPORT_SYMBOL vmlinux 0x79d78332 generic_read_dir -EXPORT_SYMBOL vmlinux 0x79e915d9 key_alloc +EXPORT_SYMBOL vmlinux 0x79a96649 sk_ioctl +EXPORT_SYMBOL vmlinux 0x79af559f pci_enable_link_state +EXPORT_SYMBOL vmlinux 0x79cc45dc netif_tx_stop_all_queues +EXPORT_SYMBOL vmlinux 0x79d66648 t10_pi_type1_ip +EXPORT_SYMBOL vmlinux 0x79d7728b register_key_type +EXPORT_SYMBOL vmlinux 0x79dcd06d phy_connect EXPORT_SYMBOL vmlinux 0x79ebe2dd phys_ram_base -EXPORT_SYMBOL vmlinux 0x79f039aa pnp_stop_dev -EXPORT_SYMBOL vmlinux 0x79fe5622 cdrom_open -EXPORT_SYMBOL vmlinux 0x79ff992b mipi_dsi_dcs_set_display_brightness +EXPORT_SYMBOL vmlinux 0x79f8f56a pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x7a0594ab vme_register_driver EXPORT_SYMBOL vmlinux 0x7a1bcd59 gf128mul_x8_ble -EXPORT_SYMBOL vmlinux 0x7a1c69e8 rtnl_configure_link -EXPORT_SYMBOL vmlinux 0x7a24022a kmem_cache_alloc_bulk +EXPORT_SYMBOL vmlinux 0x7a2a63e3 blk_dump_rq_flags EXPORT_SYMBOL vmlinux 0x7a2ff57e security_current_getsecid_subj -EXPORT_SYMBOL vmlinux 0x7a3afc39 __blk_mq_alloc_disk -EXPORT_SYMBOL vmlinux 0x7a40d1ca dev_uc_flush +EXPORT_SYMBOL vmlinux 0x7a4846a7 vlan_uses_dev +EXPORT_SYMBOL vmlinux 0x7a4ee59c sk_stream_wait_close EXPORT_SYMBOL vmlinux 0x7a53a06d flow_indr_dev_exists -EXPORT_SYMBOL vmlinux 0x7a5f2797 netdev_name_in_use +EXPORT_SYMBOL vmlinux 0x7a7d5f60 scsi_change_queue_depth +EXPORT_SYMBOL vmlinux 0x7a86ef12 mmc_request_done EXPORT_SYMBOL vmlinux 0x7a95e5ae do_settimeofday64 -EXPORT_SYMBOL vmlinux 0x7a9c9e01 fuse_mount_destroy EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree -EXPORT_SYMBOL vmlinux 0x7aa46953 security_sb_remount -EXPORT_SYMBOL vmlinux 0x7acd1949 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x7abf5b84 xfrm6_protocol_deregister EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt -EXPORT_SYMBOL vmlinux 0x7ad7b3b3 I_BDEV EXPORT_SYMBOL vmlinux 0x7adc0fbf rb_replace_node_rcu -EXPORT_SYMBOL vmlinux 0x7ae95793 dev_set_threaded -EXPORT_SYMBOL vmlinux 0x7af71f97 read_cache_page_gfp -EXPORT_SYMBOL vmlinux 0x7b029deb param_set_int -EXPORT_SYMBOL vmlinux 0x7b09f927 tty_port_open +EXPORT_SYMBOL vmlinux 0x7ae67975 __vfs_removexattr +EXPORT_SYMBOL vmlinux 0x7b01a46c ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x7b214465 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x7b2817b1 filemap_invalidate_unlock_two +EXPORT_SYMBOL vmlinux 0x7b29d870 md_write_end +EXPORT_SYMBOL vmlinux 0x7b2e2ddd tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x7b3486eb dma_resv_add_fence EXPORT_SYMBOL vmlinux 0x7b37d4a7 _find_first_zero_bit -EXPORT_SYMBOL vmlinux 0x7b47d6b7 napi_build_skb -EXPORT_SYMBOL vmlinux 0x7b5344bf blk_queue_flag_clear -EXPORT_SYMBOL vmlinux 0x7b53f1b7 d_tmpfile +EXPORT_SYMBOL vmlinux 0x7b475a97 __insert_inode_hash EXPORT_SYMBOL vmlinux 0x7b5b8f31 sha256_update -EXPORT_SYMBOL vmlinux 0x7b5fc0bf blk_queue_update_dma_alignment -EXPORT_SYMBOL vmlinux 0x7b92263b sock_wake_async +EXPORT_SYMBOL vmlinux 0x7b5f26a4 follow_pfn +EXPORT_SYMBOL vmlinux 0x7b6aeb72 vm_map_pages +EXPORT_SYMBOL vmlinux 0x7b7def64 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x7b8a8e3c fs_param_is_u32 +EXPORT_SYMBOL vmlinux 0x7bac1396 setattr_should_drop_suidgid +EXPORT_SYMBOL vmlinux 0x7bad1dd3 tty_check_change +EXPORT_SYMBOL vmlinux 0x7bae3829 xfrm_state_alloc EXPORT_SYMBOL vmlinux 0x7bb50b88 acpi_write -EXPORT_SYMBOL vmlinux 0x7bb9eec1 __fib6_flush_trees EXPORT_SYMBOL vmlinux 0x7bbccd05 nr_node_ids -EXPORT_SYMBOL vmlinux 0x7bd7436c __do_once_sleepable_done +EXPORT_SYMBOL vmlinux 0x7bc65162 unlock_buffer +EXPORT_SYMBOL vmlinux 0x7bccd652 xsk_clear_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0x7bf2f822 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x7bfbdcc0 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x7c057881 ip_defrag EXPORT_SYMBOL vmlinux 0x7c173634 __bitmap_complement -EXPORT_SYMBOL vmlinux 0x7c3ab7a5 bio_add_page -EXPORT_SYMBOL vmlinux 0x7c42c566 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x7c1da77e mark_buffer_async_write EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get -EXPORT_SYMBOL vmlinux 0x7c5a9d45 netdev_bonding_info_change -EXPORT_SYMBOL vmlinux 0x7c699088 dump_emit -EXPORT_SYMBOL vmlinux 0x7c83e01e __skb_ext_del -EXPORT_SYMBOL vmlinux 0x7c8c42ce arp_send -EXPORT_SYMBOL vmlinux 0x7c96a5bc kill_pgrp -EXPORT_SYMBOL vmlinux 0x7ca00c91 __dev_get_by_flags -EXPORT_SYMBOL vmlinux 0x7ca02552 set_bh_page -EXPORT_SYMBOL vmlinux 0x7ca95ad0 mipi_dsi_detach +EXPORT_SYMBOL vmlinux 0x7c79ea7f dev_mc_del +EXPORT_SYMBOL vmlinux 0x7c86da29 netdev_printk +EXPORT_SYMBOL vmlinux 0x7c95f666 sock_init_data +EXPORT_SYMBOL vmlinux 0x7cb883b1 pci_add_new_bus EXPORT_SYMBOL vmlinux 0x7cbe0cd2 drop_reasons_by_subsys -EXPORT_SYMBOL vmlinux 0x7ccf75ca prepare_to_swait_exclusive -EXPORT_SYMBOL vmlinux 0x7cd00148 start_tty -EXPORT_SYMBOL vmlinux 0x7cd8acfe __scsi_add_device -EXPORT_SYMBOL vmlinux 0x7cdcebe6 ppp_input_error -EXPORT_SYMBOL vmlinux 0x7cde7497 __blk_mq_end_request +EXPORT_SYMBOL vmlinux 0x7cc7ee9c scsi_remove_target +EXPORT_SYMBOL vmlinux 0x7ccc5c23 inet_csk_complete_hashdance +EXPORT_SYMBOL vmlinux 0x7cd92651 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x7cdd845f blk_mq_run_hw_queues EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid EXPORT_SYMBOL vmlinux 0x7ce58981 kvrealloc EXPORT_SYMBOL vmlinux 0x7cf35220 vme_master_free -EXPORT_SYMBOL vmlinux 0x7cf50063 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x7cfb2767 insert_inode_locked4 EXPORT_SYMBOL vmlinux 0x7cfe368d net_dim_get_def_tx_moderation -EXPORT_SYMBOL vmlinux 0x7d01de88 xfrm_state_unregister_afinfo -EXPORT_SYMBOL vmlinux 0x7d0c6cf7 pci_clear_master -EXPORT_SYMBOL vmlinux 0x7d0ccb79 md_bitmap_sync_with_cluster +EXPORT_SYMBOL vmlinux 0x7d076f4a netlink_capable EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t EXPORT_SYMBOL vmlinux 0x7d12d76d acpi_get_parent EXPORT_SYMBOL vmlinux 0x7d136cd9 down +EXPORT_SYMBOL vmlinux 0x7d19797d config_group_init_type_name +EXPORT_SYMBOL vmlinux 0x7d1de623 genphy_read_lpa EXPORT_SYMBOL vmlinux 0x7d27e504 dm_shift_arg EXPORT_SYMBOL vmlinux 0x7d30a655 kobject_put -EXPORT_SYMBOL vmlinux 0x7d3648f0 bpf_prog_get_type_path -EXPORT_SYMBOL vmlinux 0x7d3a7619 generic_file_llseek -EXPORT_SYMBOL vmlinux 0x7d44577f fscrypt_decrypt_pagecache_blocks +EXPORT_SYMBOL vmlinux 0x7d3a94ca d_add +EXPORT_SYMBOL vmlinux 0x7d3c202f twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0x7d44e747 tcf_block_netif_keep_dst EXPORT_SYMBOL vmlinux 0x7d4b176a netlbl_catmap_setbit -EXPORT_SYMBOL vmlinux 0x7d58f752 md_bitmap_cond_end_sync -EXPORT_SYMBOL vmlinux 0x7d5cbee8 tc_setup_cb_reoffload EXPORT_SYMBOL vmlinux 0x7d5e1008 __crc32c_le_shift +EXPORT_SYMBOL vmlinux 0x7d5e2268 pci_enable_wake EXPORT_SYMBOL vmlinux 0x7d74d522 kstrtoull_from_user -EXPORT_SYMBOL vmlinux 0x7d96448e dev_disable_lro -EXPORT_SYMBOL vmlinux 0x7dad3e65 vmf_insert_mixed -EXPORT_SYMBOL vmlinux 0x7dadfd90 keyring_alloc +EXPORT_SYMBOL vmlinux 0x7d7c3d33 __free_pages +EXPORT_SYMBOL vmlinux 0x7d8103a4 pcim_iounmap_regions EXPORT_SYMBOL vmlinux 0x7daece67 quota_send_warning -EXPORT_SYMBOL vmlinux 0x7db4936a vfs_statfs -EXPORT_SYMBOL vmlinux 0x7db94d17 unregister_netdevice_queue -EXPORT_SYMBOL vmlinux 0x7dba8d09 block_write_begin EXPORT_SYMBOL vmlinux 0x7dc5ffa7 tc_skb_ext_tc_disable -EXPORT_SYMBOL vmlinux 0x7dc69c55 of_device_is_big_endian -EXPORT_SYMBOL vmlinux 0x7dcad7e4 security_dentry_create_files_as -EXPORT_SYMBOL vmlinux 0x7ddb0241 sg_miter_skip -EXPORT_SYMBOL vmlinux 0x7df19d85 tcf_classify -EXPORT_SYMBOL vmlinux 0x7df31058 find_inode_by_ino_rcu -EXPORT_SYMBOL vmlinux 0x7df43d90 kthread_create_worker_on_cpu -EXPORT_SYMBOL vmlinux 0x7e039427 flow_rule_match_enc_ip +EXPORT_SYMBOL vmlinux 0x7dd0ca6a mipi_dsi_device_register_full +EXPORT_SYMBOL vmlinux 0x7e0b0897 mmc_gpiod_request_cd EXPORT_SYMBOL vmlinux 0x7e0b255f hdmi_audio_infoframe_pack_for_dp -EXPORT_SYMBOL vmlinux 0x7e20b47e super_setup_bdi_name -EXPORT_SYMBOL vmlinux 0x7e2377e6 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x7e0f868b security_sk_clone +EXPORT_SYMBOL vmlinux 0x7e17ee27 netlink_unicast EXPORT_SYMBOL vmlinux 0x7e3191f6 try_to_del_timer_sync -EXPORT_SYMBOL vmlinux 0x7e32baed input_match_device_id -EXPORT_SYMBOL vmlinux 0x7e422d38 of_node_get +EXPORT_SYMBOL vmlinux 0x7e49b639 inode_init_always EXPORT_SYMBOL vmlinux 0x7e4c3df5 efi +EXPORT_SYMBOL vmlinux 0x7e6a4ebe in6_dev_finish_destroy EXPORT_SYMBOL vmlinux 0x7e6b8edb __wait_on_bit -EXPORT_SYMBOL vmlinux 0x7e720c25 n_tty_ioctl_helper -EXPORT_SYMBOL vmlinux 0x7e7df264 pcie_capability_clear_and_set_dword -EXPORT_SYMBOL vmlinux 0x7eaa3c01 __mdiobus_write -EXPORT_SYMBOL vmlinux 0x7ebcf8de mmc_of_parse -EXPORT_SYMBOL vmlinux 0x7ebcfbb4 bpf_map_get -EXPORT_SYMBOL vmlinux 0x7ebd084e folio_end_writeback -EXPORT_SYMBOL vmlinux 0x7eca0767 dcb_getapp -EXPORT_SYMBOL vmlinux 0x7ed8949e phy_init_eee -EXPORT_SYMBOL vmlinux 0x7ee0cc21 proc_mkdir -EXPORT_SYMBOL vmlinux 0x7ee5544e hdmi_infoframe_log +EXPORT_SYMBOL vmlinux 0x7e6e0cf7 input_enable_softrepeat +EXPORT_SYMBOL vmlinux 0x7e757e4b free_task +EXPORT_SYMBOL vmlinux 0x7e88974d of_n_size_cells +EXPORT_SYMBOL vmlinux 0x7e99cf63 crypto_sha3_init +EXPORT_SYMBOL vmlinux 0x7eb0a5dd lock_rename_child +EXPORT_SYMBOL vmlinux 0x7eb198eb __do_once_sleepable_done +EXPORT_SYMBOL vmlinux 0x7ed40827 lookup_one_len_unlocked +EXPORT_SYMBOL vmlinux 0x7ed5d94b pcie_get_speed_cap +EXPORT_SYMBOL vmlinux 0x7ee7b746 md_bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x7eee3f1c alloc_file_pseudo EXPORT_SYMBOL vmlinux 0x7ef4bddc __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0x7efad331 devm_ioremap +EXPORT_SYMBOL vmlinux 0x7efca045 ip6_route_me_harder EXPORT_SYMBOL vmlinux 0x7f02188f __msecs_to_jiffies EXPORT_SYMBOL vmlinux 0x7f03b6a9 crc_ccitt_table -EXPORT_SYMBOL vmlinux 0x7f164ad1 dev_pick_tx_cpu_id -EXPORT_SYMBOL vmlinux 0x7f16ca5b udp_disconnect -EXPORT_SYMBOL vmlinux 0x7f20fd0e acpi_register_debugger +EXPORT_SYMBOL vmlinux 0x7f097faa get_cached_acl EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs -EXPORT_SYMBOL vmlinux 0x7f2ade38 security_d_instantiate -EXPORT_SYMBOL vmlinux 0x7f2b7dc4 is_acpi_device_node -EXPORT_SYMBOL vmlinux 0x7f344818 vfs_get_tree -EXPORT_SYMBOL vmlinux 0x7f3e8b24 configfs_register_group -EXPORT_SYMBOL vmlinux 0x7f42e911 module_put -EXPORT_SYMBOL vmlinux 0x7f4d1a9e inet_pton_with_scope +EXPORT_SYMBOL vmlinux 0x7f324363 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x7f3260c5 xfrm_state_insert EXPORT_SYMBOL vmlinux 0x7f52071a net_dim -EXPORT_SYMBOL vmlinux 0x7f5589c3 xfrm_state_delete_tunnel -EXPORT_SYMBOL vmlinux 0x7f607483 vga_con +EXPORT_SYMBOL vmlinux 0x7f5f576a __traceiter_module_get +EXPORT_SYMBOL vmlinux 0x7f5fa5e5 folio_zero_new_buffers EXPORT_SYMBOL vmlinux 0x7f62eaa4 sgl_free +EXPORT_SYMBOL vmlinux 0x7f6d3cbe tcp_read_done EXPORT_SYMBOL vmlinux 0x7f7f7bb4 irq_poll_disable -EXPORT_SYMBOL vmlinux 0x7f84a124 md_bitmap_update_sb +EXPORT_SYMBOL vmlinux 0x7f856336 inet_frags_init +EXPORT_SYMBOL vmlinux 0x7f91ed38 blk_queue_max_write_zeroes_sectors +EXPORT_SYMBOL vmlinux 0x7f95bb12 pm8606_osc_enable EXPORT_SYMBOL vmlinux 0x7f9724d7 __init_waitqueue_head -EXPORT_SYMBOL vmlinux 0x7f9e9d85 ip_sock_set_tos -EXPORT_SYMBOL vmlinux 0x7fa51a43 phy_queue_state_machine -EXPORT_SYMBOL vmlinux 0x7fdadfe8 skb_eth_push +EXPORT_SYMBOL vmlinux 0x7fb72f0a zpool_unregister_driver EXPORT_SYMBOL vmlinux 0x7fde1fbc acpi_walk_resource_buffer +EXPORT_SYMBOL vmlinux 0x7fdeb626 vfs_iter_write +EXPORT_SYMBOL vmlinux 0x7fe0a134 vfs_dedupe_file_range_one EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node -EXPORT_SYMBOL vmlinux 0x7ff11c65 vfs_rmdir -EXPORT_SYMBOL vmlinux 0x7ff131ba mark_buffer_write_io_error EXPORT_SYMBOL vmlinux 0x7ff4b335 kobject_set_name +EXPORT_SYMBOL vmlinux 0x80014108 md_bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x800e725a iommu_get_msi_cookie +EXPORT_SYMBOL vmlinux 0x8028e606 fib6_info_hw_flags_set EXPORT_SYMBOL vmlinux 0x803ddbb6 __posix_acl_create +EXPORT_SYMBOL vmlinux 0x803e1783 sock_no_ioctl EXPORT_SYMBOL vmlinux 0x8041d948 __cpuhp_remove_state -EXPORT_SYMBOL vmlinux 0x8048e285 ipv6_dev_get_saddr -EXPORT_SYMBOL vmlinux 0x805c90b6 mmc_of_parse_voltage -EXPORT_SYMBOL vmlinux 0x806c605e input_release_device -EXPORT_SYMBOL vmlinux 0x80733929 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x80497ce5 __acpi_mdiobus_register +EXPORT_SYMBOL vmlinux 0x8053c87d __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x80595ba5 seq_puts +EXPORT_SYMBOL vmlinux 0x806e6b4b copy_page_from_iter_atomic +EXPORT_SYMBOL vmlinux 0x807ddd70 tcf_action_check_ctrlact EXPORT_SYMBOL vmlinux 0x80816f26 get_user_ifreq -EXPORT_SYMBOL vmlinux 0x808e6a7a jbd2_journal_update_sb_errno EXPORT_SYMBOL vmlinux 0x8099d596 radix_tree_delete_item -EXPORT_SYMBOL vmlinux 0x80a411e8 unpin_user_pages -EXPORT_SYMBOL vmlinux 0x80a7941a vga_get -EXPORT_SYMBOL vmlinux 0x80aa173c pmem_sector_size -EXPORT_SYMBOL vmlinux 0x80b76d48 misc_register -EXPORT_SYMBOL vmlinux 0x80bd7bca netdev_info +EXPORT_SYMBOL vmlinux 0x80a25515 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x80c9b62d __inet_stream_connect EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd -EXPORT_SYMBOL vmlinux 0x80cc3f2c __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x80cc3975 seq_file_path EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client EXPORT_SYMBOL vmlinux 0x80e5f86f fscrypt_fname_alloc_buffer -EXPORT_SYMBOL vmlinux 0x80ea5621 jbd2_fc_release_bufs EXPORT_SYMBOL vmlinux 0x80f913fc up -EXPORT_SYMBOL vmlinux 0x8102269f generic_write_checks EXPORT_SYMBOL vmlinux 0x8112b3d2 scsi_build_sense_buffer -EXPORT_SYMBOL vmlinux 0x81177480 xfrm_stateonly_find EXPORT_SYMBOL vmlinux 0x81188c30 match_string -EXPORT_SYMBOL vmlinux 0x811b0b58 register_netdev -EXPORT_SYMBOL vmlinux 0x813339c4 ethtool_notify -EXPORT_SYMBOL vmlinux 0x813d2168 netif_set_tso_max_size +EXPORT_SYMBOL vmlinux 0x811a8661 blk_mq_alloc_tag_set +EXPORT_SYMBOL vmlinux 0x811d6e33 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x8129c691 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x812ce882 page_cache_prev_miss EXPORT_SYMBOL vmlinux 0x81533963 sysfs_format_mac -EXPORT_SYMBOL vmlinux 0x815512ab vfs_fsync +EXPORT_SYMBOL vmlinux 0x8154b341 mipi_dsi_dcs_set_pixel_format +EXPORT_SYMBOL vmlinux 0x8156d6f8 __hw_addr_ref_sync_dev EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal EXPORT_SYMBOL vmlinux 0x818416e1 scsi_set_sense_information +EXPORT_SYMBOL vmlinux 0x818f859a ip6_fraglist_init EXPORT_SYMBOL vmlinux 0x819b7af3 kobject_get_unless_zero -EXPORT_SYMBOL vmlinux 0x81a01ec6 netdev_set_sb_channel EXPORT_SYMBOL vmlinux 0x81a1eb59 utf8_unload EXPORT_SYMBOL vmlinux 0x81b0449b kthread_complete_and_exit EXPORT_SYMBOL vmlinux 0x81c51d19 irq_cpu_rmap_add -EXPORT_SYMBOL vmlinux 0x81cdb068 dev_get_by_name EXPORT_SYMBOL vmlinux 0x81d6c28b acpi_buffer_to_resource +EXPORT_SYMBOL vmlinux 0x81db43de rawv6_mh_filter_register EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset -EXPORT_SYMBOL vmlinux 0x81f8d2ac mmc_cqe_request_done -EXPORT_SYMBOL vmlinux 0x81fc0261 follow_down EXPORT_SYMBOL vmlinux 0x81fe4df2 proc_dobool -EXPORT_SYMBOL vmlinux 0x820cad44 init_task +EXPORT_SYMBOL vmlinux 0x820b6a40 fb_blank EXPORT_SYMBOL vmlinux 0x820e0c70 __percpu_counter_init -EXPORT_SYMBOL vmlinux 0x820ec183 nf_log_packet EXPORT_SYMBOL vmlinux 0x821d626d xa_find_after -EXPORT_SYMBOL vmlinux 0x823351ab set_cached_acl -EXPORT_SYMBOL vmlinux 0x824f01ec serio_bus +EXPORT_SYMBOL vmlinux 0x8231bde2 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x8231ea8c sk_error_report +EXPORT_SYMBOL vmlinux 0x823748ba ip6_fraglist_prepare +EXPORT_SYMBOL vmlinux 0x823f639b set_nlink +EXPORT_SYMBOL vmlinux 0x8248d5fa sched_autogroup_create_attach EXPORT_SYMBOL vmlinux 0x825971ad phy_mipi_dphy_get_default_config_for_hsclk -EXPORT_SYMBOL vmlinux 0x82a0bc74 pci_prepare_to_sleep -EXPORT_SYMBOL vmlinux 0x82b2bc60 lock_rename +EXPORT_SYMBOL vmlinux 0x8262fca5 netdev_get_by_index +EXPORT_SYMBOL vmlinux 0x8274b8e7 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x82810578 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x828a62fb genphy_read_status_fixed EXPORT_SYMBOL vmlinux 0x82c87ad5 nr_online_nodes -EXPORT_SYMBOL vmlinux 0x82e8ef34 security_inode_invalidate_secctx -EXPORT_SYMBOL vmlinux 0x82e99583 simple_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x82d6edde refresh_frequency_limits +EXPORT_SYMBOL vmlinux 0x82e46265 xsk_tx_release EXPORT_SYMBOL vmlinux 0x82ee90dc timer_delete_sync -EXPORT_SYMBOL vmlinux 0x83105b51 sock_create_lite -EXPORT_SYMBOL vmlinux 0x831ab2ab sk_stream_error -EXPORT_SYMBOL vmlinux 0x831b596c mmc_put_card -EXPORT_SYMBOL vmlinux 0x83276a83 padata_alloc -EXPORT_SYMBOL vmlinux 0x833fbc5a get_inode_acl +EXPORT_SYMBOL vmlinux 0x82fcf3fd netdev_offload_xstats_get +EXPORT_SYMBOL vmlinux 0x8300f426 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x830dba4f fb_prepare_logo +EXPORT_SYMBOL vmlinux 0x8311c4c0 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x831df684 skb_copy_and_hash_datagram_iter +EXPORT_SYMBOL vmlinux 0x832c0c99 xfrm6_protocol_register +EXPORT_SYMBOL vmlinux 0x8340e400 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x8342447f __dev_direct_xmit EXPORT_SYMBOL vmlinux 0x83581089 gf128mul_init_4k_lle -EXPORT_SYMBOL vmlinux 0x8362a3ab rdmacg_uncharge -EXPORT_SYMBOL vmlinux 0x8369470d blk_mq_rq_cpu +EXPORT_SYMBOL vmlinux 0x836ca7af tcp_read_sock +EXPORT_SYMBOL vmlinux 0x837a1a02 dev_get_by_napi_id EXPORT_SYMBOL vmlinux 0x838d2bc8 siphash_3u32 -EXPORT_SYMBOL vmlinux 0x83a5fc47 kernel_read EXPORT_SYMBOL vmlinux 0x83b084ae up_write -EXPORT_SYMBOL vmlinux 0x83b56405 simple_rmdir -EXPORT_SYMBOL vmlinux 0x83cb378e generic_file_mmap -EXPORT_SYMBOL vmlinux 0x83d664d4 proc_create_data -EXPORT_SYMBOL vmlinux 0x83dfc218 simple_unlink -EXPORT_SYMBOL vmlinux 0x83eb8269 pci_dev_put +EXPORT_SYMBOL vmlinux 0x83b5123b get_tree_keyed +EXPORT_SYMBOL vmlinux 0x83be5f63 fwnode_iomap +EXPORT_SYMBOL vmlinux 0x83db7649 tcf_block_get_ext EXPORT_SYMBOL vmlinux 0x83ebc2b1 _raw_write_lock -EXPORT_SYMBOL vmlinux 0x83f08b35 __ip_queue_xmit -EXPORT_SYMBOL vmlinux 0x83fbbb20 sock_i_uid -EXPORT_SYMBOL vmlinux 0x841daefa __do_once_done -EXPORT_SYMBOL vmlinux 0x8424453e config_item_init_type_name -EXPORT_SYMBOL vmlinux 0x8436f1e3 devm_ioport_unmap -EXPORT_SYMBOL vmlinux 0x843b8acf genphy_loopback -EXPORT_SYMBOL vmlinux 0x8453f5a4 dmam_free_coherent -EXPORT_SYMBOL vmlinux 0x84652b0b jbd2_journal_clear_features -EXPORT_SYMBOL vmlinux 0x846964a6 setup_new_exec +EXPORT_SYMBOL vmlinux 0x83f35cc6 mmc_add_host +EXPORT_SYMBOL vmlinux 0x840aac6b igrab +EXPORT_SYMBOL vmlinux 0x8443d3c2 vlan_vids_add_by_dev EXPORT_SYMBOL vmlinux 0x84823cf3 nla_strscpy EXPORT_SYMBOL vmlinux 0x84914079 __kfifo_dma_out_prepare -EXPORT_SYMBOL vmlinux 0x8491af08 kernel_listen -EXPORT_SYMBOL vmlinux 0x849bdf44 dma_unmap_resource -EXPORT_SYMBOL vmlinux 0x849de5a3 tty_port_destroy +EXPORT_SYMBOL vmlinux 0x84946aab sock_edemux +EXPORT_SYMBOL vmlinux 0x8499de56 acpi_dev_uid_to_integer EXPORT_SYMBOL vmlinux 0x84a0ca4d bitmap_zalloc_node -EXPORT_SYMBOL vmlinux 0x84a1bfc0 simple_statfs -EXPORT_SYMBOL vmlinux 0x84a7de85 udp_skb_destructor -EXPORT_SYMBOL vmlinux 0x84c988ef security_inode_copy_up -EXPORT_SYMBOL vmlinux 0x84d8c41c mr_table_dump -EXPORT_SYMBOL vmlinux 0x850971c3 flow_rule_match_ports -EXPORT_SYMBOL vmlinux 0x85321d67 inode_io_list_del -EXPORT_SYMBOL vmlinux 0x85412966 simple_open -EXPORT_SYMBOL vmlinux 0x85416d23 getname_kernel -EXPORT_SYMBOL vmlinux 0x854b645e kmem_cache_destroy -EXPORT_SYMBOL vmlinux 0x855d2388 pskb_extract +EXPORT_SYMBOL vmlinux 0x84a1df5a d_set_d_op +EXPORT_SYMBOL vmlinux 0x84a2ea48 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x84ac5b8c blk_mq_delay_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x84afc168 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x84c78a20 tc_setup_cb_destroy +EXPORT_SYMBOL vmlinux 0x84d9f767 bio_add_folio +EXPORT_SYMBOL vmlinux 0x84e230fc mdio_device_reset +EXPORT_SYMBOL vmlinux 0x84f4311d tcf_exts_terse_dump +EXPORT_SYMBOL vmlinux 0x8500f17b dev_add_offload +EXPORT_SYMBOL vmlinux 0x85163bbc ip_sock_set_recverr +EXPORT_SYMBOL vmlinux 0x85344c1f rt_mutex_base_init +EXPORT_SYMBOL vmlinux 0x855d86eb netif_tx_lock +EXPORT_SYMBOL vmlinux 0x855ed867 mod_zone_page_state EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked -EXPORT_SYMBOL vmlinux 0x856baaa3 inet_rcv_saddr_equal -EXPORT_SYMBOL vmlinux 0x8581bf80 dma_map_resource -EXPORT_SYMBOL vmlinux 0x8589fc4a sock_pfree +EXPORT_SYMBOL vmlinux 0x8573c3a1 phy_ethtool_set_link_ksettings +EXPORT_SYMBOL vmlinux 0x857c6396 readahead_expand +EXPORT_SYMBOL vmlinux 0x858cf699 stream_open EXPORT_SYMBOL vmlinux 0x8591d7d5 ledtrig_mtd_activity -EXPORT_SYMBOL vmlinux 0x8592cb97 jbd2_journal_abort -EXPORT_SYMBOL vmlinux 0x85a91ed6 pci_bus_claim_resources +EXPORT_SYMBOL vmlinux 0x85a27469 of_phy_find_device +EXPORT_SYMBOL vmlinux 0x85aedfb6 ether_setup EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states -EXPORT_SYMBOL vmlinux 0x85bad88e setup_arg_pages EXPORT_SYMBOL vmlinux 0x85bd1608 __request_region -EXPORT_SYMBOL vmlinux 0x85bd502b xfrm_state_insert EXPORT_SYMBOL vmlinux 0x85c83cce gen_replace_estimator -EXPORT_SYMBOL vmlinux 0x85cde05b to_nd_btt EXPORT_SYMBOL vmlinux 0x85df9b6c strsep -EXPORT_SYMBOL vmlinux 0x85e86210 crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x85e4608a netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0x85ed197d tcf_idr_search EXPORT_SYMBOL vmlinux 0x85efc7e0 zero_pfn -EXPORT_SYMBOL vmlinux 0x85f02711 udplite_prot +EXPORT_SYMBOL vmlinux 0x85fc03e8 con_is_bound EXPORT_SYMBOL vmlinux 0x8601bc70 security_cred_getsecid -EXPORT_SYMBOL vmlinux 0x86095e38 sock_release -EXPORT_SYMBOL vmlinux 0x861b147c call_fib_notifiers -EXPORT_SYMBOL vmlinux 0x8622fcf9 km_query EXPORT_SYMBOL vmlinux 0x862c8035 bitmap_alloc_node -EXPORT_SYMBOL vmlinux 0x862f08e8 phy_detach -EXPORT_SYMBOL vmlinux 0x8632d8ed pci_dev_driver +EXPORT_SYMBOL vmlinux 0x862d0dd4 fscrypt_encrypt_pagecache_blocks EXPORT_SYMBOL vmlinux 0x863a276a color_table -EXPORT_SYMBOL vmlinux 0x86509f65 poll_initwait +EXPORT_SYMBOL vmlinux 0x86560448 misc_deregister +EXPORT_SYMBOL vmlinux 0x86576071 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x865cdf81 block_truncate_page EXPORT_SYMBOL vmlinux 0x866a62b2 gnet_stats_basic_sync_init -EXPORT_SYMBOL vmlinux 0x866d546e scsi_device_lookup_by_target -EXPORT_SYMBOL vmlinux 0x866e5f54 locks_init_lock -EXPORT_SYMBOL vmlinux 0x86708261 eth_gro_receive EXPORT_SYMBOL vmlinux 0x86728d02 ns_capable -EXPORT_SYMBOL vmlinux 0x86743695 sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0x86762fe7 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x867ae158 key_instantiate_and_link EXPORT_SYMBOL vmlinux 0x868acba5 get_options -EXPORT_SYMBOL vmlinux 0x86ad058b fs_context_for_submount +EXPORT_SYMBOL vmlinux 0x86aeea76 __generic_file_fsync +EXPORT_SYMBOL vmlinux 0x86b44d47 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x86b61913 seg6_hmac_info_del EXPORT_SYMBOL vmlinux 0x86b8012f _raw_write_lock_irqsave -EXPORT_SYMBOL vmlinux 0x86bff0ae fb_show_logo +EXPORT_SYMBOL vmlinux 0x86d51302 tcp_simple_retransmit EXPORT_SYMBOL vmlinux 0x86d52ba5 lookup_constant +EXPORT_SYMBOL vmlinux 0x86dbb8a6 vfs_fadvise EXPORT_SYMBOL vmlinux 0x86dd708d tc_skb_ext_tc_enable -EXPORT_SYMBOL vmlinux 0x86e6041a unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x86e97427 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x86efaa74 phy_ethtool_get_sset_count +EXPORT_SYMBOL vmlinux 0x86f090ad skb_copy_datagram_from_iter EXPORT_SYMBOL vmlinux 0x86f7fcc3 _raw_read_lock_irq -EXPORT_SYMBOL vmlinux 0x86fa432f pci_enable_device_mem EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user -EXPORT_SYMBOL vmlinux 0x8738eb73 xfrm_input_register_afinfo -EXPORT_SYMBOL vmlinux 0x874ee767 flow_rule_match_ct -EXPORT_SYMBOL vmlinux 0x87537b7d __skb_recv_datagram -EXPORT_SYMBOL vmlinux 0x8753a977 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x86ff71fd dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x8703f38e jbd2_journal_invalidate_folio +EXPORT_SYMBOL vmlinux 0x870885be make_kgid +EXPORT_SYMBOL vmlinux 0x872c14b9 tso_build_hdr +EXPORT_SYMBOL vmlinux 0x872dffca tty_port_close +EXPORT_SYMBOL vmlinux 0x873cb0f0 tcp_sock_set_syncnt +EXPORT_SYMBOL vmlinux 0x87435187 dcb_getapp +EXPORT_SYMBOL vmlinux 0x874e8952 jbd2_journal_check_available_features EXPORT_SYMBOL vmlinux 0x8761c87b rps_needed -EXPORT_SYMBOL vmlinux 0x876fcabc devfreq_remove_governor -EXPORT_SYMBOL vmlinux 0x87771de7 pci_request_regions EXPORT_SYMBOL vmlinux 0x87809aeb put_user_ifreq -EXPORT_SYMBOL vmlinux 0x878f4e43 read_cache_folio -EXPORT_SYMBOL vmlinux 0x87bdf68c tcp_close -EXPORT_SYMBOL vmlinux 0x87dc4ca7 tcf_qevent_handle -EXPORT_SYMBOL vmlinux 0x87dddcc6 bio_kmalloc -EXPORT_SYMBOL vmlinux 0x87f5d91b alloc_netdev_mqs -EXPORT_SYMBOL vmlinux 0x87f60673 configfs_depend_item -EXPORT_SYMBOL vmlinux 0x87f94772 fwnode_get_phy_id -EXPORT_SYMBOL vmlinux 0x87fc3ddd i2c_smbus_write_block_data -EXPORT_SYMBOL vmlinux 0x8801c63f blk_queue_max_write_zeroes_sectors -EXPORT_SYMBOL vmlinux 0x8809c242 blk_mq_start_request +EXPORT_SYMBOL vmlinux 0x8796ab0c nf_reinject +EXPORT_SYMBOL vmlinux 0x879a8f3f input_grab_device +EXPORT_SYMBOL vmlinux 0x87c86b63 tcp_sock_set_nodelay +EXPORT_SYMBOL vmlinux 0x87cb5acd phy_print_status +EXPORT_SYMBOL vmlinux 0x87d57d54 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x87debd84 lookup_one_unlocked +EXPORT_SYMBOL vmlinux 0x880f22cf simple_transaction_read +EXPORT_SYMBOL vmlinux 0x88103ffd twl6040_set_pll EXPORT_SYMBOL vmlinux 0x8810754a _find_first_bit -EXPORT_SYMBOL vmlinux 0x88181e39 __scsi_device_lookup_by_target EXPORT_SYMBOL vmlinux 0x881bad5e phy_mipi_dphy_config_validate -EXPORT_SYMBOL vmlinux 0x88357ca0 _copy_from_iter_nocache -EXPORT_SYMBOL vmlinux 0x8842dde1 pcim_set_mwi -EXPORT_SYMBOL vmlinux 0x8849659d crypto_sha1_finup +EXPORT_SYMBOL vmlinux 0x881fd342 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x882be271 mdio_driver_register +EXPORT_SYMBOL vmlinux 0x8832729b nf_unregister_net_hooks +EXPORT_SYMBOL vmlinux 0x884a20cf __filemap_set_wb_err +EXPORT_SYMBOL vmlinux 0x886050a0 pci_bus_claim_resources +EXPORT_SYMBOL vmlinux 0x88752403 watchdog_unregister_governor EXPORT_SYMBOL vmlinux 0x887a9836 gen_pool_dma_alloc_algo EXPORT_SYMBOL vmlinux 0x88822d38 unregister_blocking_lsm_notifier -EXPORT_SYMBOL vmlinux 0x88832219 skb_clone EXPORT_SYMBOL vmlinux 0x8888f1fe xxh32 -EXPORT_SYMBOL vmlinux 0x888a1663 d_exact_alias -EXPORT_SYMBOL vmlinux 0x88a0ff36 devm_request_resource -EXPORT_SYMBOL vmlinux 0x88a6a2f0 pci_read_config_byte -EXPORT_SYMBOL vmlinux 0x88cef2b2 ps2_command +EXPORT_SYMBOL vmlinux 0x888c8f9a mdiobus_c45_write_nested +EXPORT_SYMBOL vmlinux 0x88926d55 mipi_dsi_dcs_get_power_mode +EXPORT_SYMBOL vmlinux 0x88950b6b softnet_data +EXPORT_SYMBOL vmlinux 0x88b90a2c md_cluster_ops EXPORT_SYMBOL vmlinux 0x88db9f48 __check_object_size -EXPORT_SYMBOL vmlinux 0x88e1079a devm_release_resource EXPORT_SYMBOL vmlinux 0x88e1d0f0 page_frag_free -EXPORT_SYMBOL vmlinux 0x88ed2605 pnp_request_card_device -EXPORT_SYMBOL vmlinux 0x88f7d9cb __mdiobus_c45_write -EXPORT_SYMBOL vmlinux 0x890ce8f5 msi_desc_to_pci_dev +EXPORT_SYMBOL vmlinux 0x88fb46d9 md_error +EXPORT_SYMBOL vmlinux 0x890a2380 mdiobus_write_nested EXPORT_SYMBOL vmlinux 0x891dbb8f sgl_free_order -EXPORT_SYMBOL vmlinux 0x893e9666 pci_scan_single_device -EXPORT_SYMBOL vmlinux 0x8940c3f6 netpoll_send_udp -EXPORT_SYMBOL vmlinux 0x89521377 tcp_parse_options -EXPORT_SYMBOL vmlinux 0x8953e5bb dst_discard_out -EXPORT_SYMBOL vmlinux 0x89612041 dump_page -EXPORT_SYMBOL vmlinux 0x896348d9 proc_set_user -EXPORT_SYMBOL vmlinux 0x897d7d5d blk_queue_flag_set -EXPORT_SYMBOL vmlinux 0x897feaa2 set_anon_super_fc +EXPORT_SYMBOL vmlinux 0x893fdc00 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x8955fb05 clk_add_alias +EXPORT_SYMBOL vmlinux 0x895970ec tty_devnum +EXPORT_SYMBOL vmlinux 0x897264dd padata_do_parallel EXPORT_SYMBOL vmlinux 0x898e0bb2 flush_icache_all -EXPORT_SYMBOL vmlinux 0x89b2f99b __neigh_for_each_release -EXPORT_SYMBOL vmlinux 0x89c77005 security_sctp_sk_clone -EXPORT_SYMBOL vmlinux 0x89fb40f0 __seq_open_private -EXPORT_SYMBOL vmlinux 0x8a0ba6ae vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x89983e16 pci_request_region +EXPORT_SYMBOL vmlinux 0x899c8928 input_copy_abs +EXPORT_SYMBOL vmlinux 0x89f63aec fscrypt_put_encryption_info +EXPORT_SYMBOL vmlinux 0x8a01c066 pcie_ptm_enabled +EXPORT_SYMBOL vmlinux 0x8a2080ed __dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x8a29f4cc dev_uc_del +EXPORT_SYMBOL vmlinux 0x8a30e941 blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0x8a373da2 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x8a38c3ae xfrm6_rcv_tnl +EXPORT_SYMBOL vmlinux 0x8a3a067f netlink_rcv_skb EXPORT_SYMBOL vmlinux 0x8a47043d LZ4_decompress_safe_continue EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state -EXPORT_SYMBOL vmlinux 0x8a4916f8 user_revoke -EXPORT_SYMBOL vmlinux 0x8a60150a vme_dma_list_add +EXPORT_SYMBOL vmlinux 0x8a57aaab dump_emit +EXPORT_SYMBOL vmlinux 0x8a6350e0 ip_sock_set_tos +EXPORT_SYMBOL vmlinux 0x8a6820d2 __page_frag_cache_drain EXPORT_SYMBOL vmlinux 0x8a6913a4 xa_find EXPORT_SYMBOL vmlinux 0x8a7094ba vm_brk_flags EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory -EXPORT_SYMBOL vmlinux 0x8a92fad4 __brelse -EXPORT_SYMBOL vmlinux 0x8a982c11 devm_clk_get_optional +EXPORT_SYMBOL vmlinux 0x8a8b81c0 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x8a8ff9a1 tcp_seq_next +EXPORT_SYMBOL vmlinux 0x8a9783c2 alloc_skb_with_frags EXPORT_SYMBOL vmlinux 0x8a98ff2a prepare_creds EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab -EXPORT_SYMBOL vmlinux 0x8a9fff4c tty_port_init -EXPORT_SYMBOL vmlinux 0x8aa00ea4 iov_iter_discard -EXPORT_SYMBOL vmlinux 0x8aa30fed skb_mac_gso_segment -EXPORT_SYMBOL vmlinux 0x8aa99b22 vme_master_mmap -EXPORT_SYMBOL vmlinux 0x8ab3252e udp_lib_rehash EXPORT_SYMBOL vmlinux 0x8ac3334b net_dim_get_def_rx_moderation +EXPORT_SYMBOL vmlinux 0x8ac888b8 eth_header_cache EXPORT_SYMBOL vmlinux 0x8ae51d38 proc_dointvec_jiffies -EXPORT_SYMBOL vmlinux 0x8ae52291 phy_write_mmd -EXPORT_SYMBOL vmlinux 0x8ae95992 d_add -EXPORT_SYMBOL vmlinux 0x8af27336 elv_rb_find -EXPORT_SYMBOL vmlinux 0x8af372e9 complete_request_key -EXPORT_SYMBOL vmlinux 0x8afeea9f skb_orphan_partial -EXPORT_SYMBOL vmlinux 0x8b003f32 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x8af5240f phy_resume EXPORT_SYMBOL vmlinux 0x8b0088d1 LZ4_decompress_safe_usingDict -EXPORT_SYMBOL vmlinux 0x8b02770e dev_lstats_read -EXPORT_SYMBOL vmlinux 0x8b074a43 neigh_carrier_down -EXPORT_SYMBOL vmlinux 0x8b07ea6d scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x8b00a587 ip_sock_set_freebind EXPORT_SYMBOL vmlinux 0x8b15c628 radix_tree_replace_slot -EXPORT_SYMBOL vmlinux 0x8b16a53f param_ops_invbool -EXPORT_SYMBOL vmlinux 0x8b28a762 pci_write_vpd -EXPORT_SYMBOL vmlinux 0x8b54a6ee skb_tunnel_check_pmtu +EXPORT_SYMBOL vmlinux 0x8b2f8c12 xfrm_state_free EXPORT_SYMBOL vmlinux 0x8b574630 cpumask_next_wrap EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid EXPORT_SYMBOL vmlinux 0x8b8059bd in_group_p -EXPORT_SYMBOL vmlinux 0x8b808091 jbd2_journal_unlock_updates -EXPORT_SYMBOL vmlinux 0x8b88d0e8 mdiobus_free EXPORT_SYMBOL vmlinux 0x8b910be2 errseq_sample -EXPORT_SYMBOL vmlinux 0x8b91653a inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x8b9463cd pci_wait_for_pending_transaction EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup -EXPORT_SYMBOL vmlinux 0x8b9993ea blk_execute_rq -EXPORT_SYMBOL vmlinux 0x8b99f99c netif_set_real_num_queues -EXPORT_SYMBOL vmlinux 0x8ba476f1 nf_unregister_net_hook -EXPORT_SYMBOL vmlinux 0x8babf22e pnpacpi_protocol -EXPORT_SYMBOL vmlinux 0x8bac7fc4 sys_copyarea -EXPORT_SYMBOL vmlinux 0x8bad32ee input_handler_for_each_handle -EXPORT_SYMBOL vmlinux 0x8baf6dc4 key_link -EXPORT_SYMBOL vmlinux 0x8bb3c038 dqget -EXPORT_SYMBOL vmlinux 0x8bb5219b dma_alloc_attrs +EXPORT_SYMBOL vmlinux 0x8bb66825 folio_clear_dirty_for_io +EXPORT_SYMBOL vmlinux 0x8bc2553c filemap_invalidate_lock_two EXPORT_SYMBOL vmlinux 0x8bd577d0 acpi_ut_exit -EXPORT_SYMBOL vmlinux 0x8bde5182 tcp_sock_set_keepcnt +EXPORT_SYMBOL vmlinux 0x8bd8f2f8 __skb_gso_segment EXPORT_SYMBOL vmlinux 0x8bdfc47c __mb_cache_entry_free -EXPORT_SYMBOL vmlinux 0x8be81d39 mmc_detect_card_removed -EXPORT_SYMBOL vmlinux 0x8bf2e321 pm_vt_switch_required -EXPORT_SYMBOL vmlinux 0x8bf64f02 dquot_file_open -EXPORT_SYMBOL vmlinux 0x8c112233 gro_cells_receive +EXPORT_SYMBOL vmlinux 0x8be8b641 key_move +EXPORT_SYMBOL vmlinux 0x8bf5f74c gnet_stats_copy_rate_est EXPORT_SYMBOL vmlinux 0x8c12df0a first_ec -EXPORT_SYMBOL vmlinux 0x8c19ce1b pci_disable_msi EXPORT_SYMBOL vmlinux 0x8c30bf67 zstd_dctx_workspace_bound -EXPORT_SYMBOL vmlinux 0x8c4d3418 tls_client_hello_x509 +EXPORT_SYMBOL vmlinux 0x8c394c99 clocksource_change_rating EXPORT_SYMBOL vmlinux 0x8c620961 proc_douintvec -EXPORT_SYMBOL vmlinux 0x8c6d36d4 mmc_set_data_timeout -EXPORT_SYMBOL vmlinux 0x8c7c0445 devm_devfreq_unregister_notifier -EXPORT_SYMBOL vmlinux 0x8c805953 of_pci_range_to_resource +EXPORT_SYMBOL vmlinux 0x8c6b2677 __skb_wait_for_more_packets +EXPORT_SYMBOL vmlinux 0x8c6f8e31 set_capacity EXPORT_SYMBOL vmlinux 0x8c8569cb kstrtoint +EXPORT_SYMBOL vmlinux 0x8c8ca30b mipi_dsi_generic_write EXPORT_SYMBOL vmlinux 0x8c9e338f acpi_bios_error -EXPORT_SYMBOL vmlinux 0x8ca10ac5 fs_param_is_blob +EXPORT_SYMBOL vmlinux 0x8ca8e9af register_cdrom +EXPORT_SYMBOL vmlinux 0x8cace4a9 configfs_remove_default_groups +EXPORT_SYMBOL vmlinux 0x8caf8ca3 i2c_clients_command EXPORT_SYMBOL vmlinux 0x8caf9305 uuid_is_valid -EXPORT_SYMBOL vmlinux 0x8cafdd62 dcache_dir_close -EXPORT_SYMBOL vmlinux 0x8cb3e62c unix_attach_fds -EXPORT_SYMBOL vmlinux 0x8cd980e2 unregister_console -EXPORT_SYMBOL vmlinux 0x8cefb87a km_policy_notify +EXPORT_SYMBOL vmlinux 0x8cbbd2dd sock_recvmsg +EXPORT_SYMBOL vmlinux 0x8cbc94f6 phy_loopback +EXPORT_SYMBOL vmlinux 0x8cca8368 vme_new_dma_list +EXPORT_SYMBOL vmlinux 0x8ccc9665 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x8ce21e43 of_get_compatible_child +EXPORT_SYMBOL vmlinux 0x8d11d347 inet6_add_offload EXPORT_SYMBOL vmlinux 0x8d33e672 __find_nth_andnot_bit -EXPORT_SYMBOL vmlinux 0x8d4715ab finish_open -EXPORT_SYMBOL vmlinux 0x8d505843 sock_no_connect +EXPORT_SYMBOL vmlinux 0x8d45df86 of_graph_get_port_by_id EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d5dbe46 inet_reqsk_alloc EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper -EXPORT_SYMBOL vmlinux 0x8d863ce7 scsi_remove_host -EXPORT_SYMBOL vmlinux 0x8d865686 ip_tunnel_parse_protocol -EXPORT_SYMBOL vmlinux 0x8dac53ab pci_disable_msix +EXPORT_SYMBOL vmlinux 0x8d910aa1 rtnl_notify EXPORT_SYMBOL vmlinux 0x8dafaf22 hdmi_avi_infoframe_pack -EXPORT_SYMBOL vmlinux 0x8dd21c87 skb_headers_offset_update +EXPORT_SYMBOL vmlinux 0x8dbee7dc pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x8dc70144 skb_checksum +EXPORT_SYMBOL vmlinux 0x8dcce65b noop_qdisc EXPORT_SYMBOL vmlinux 0x8ddd8aad schedule_timeout +EXPORT_SYMBOL vmlinux 0x8def9ac9 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x8df67579 xfrm_trans_queue_net EXPORT_SYMBOL vmlinux 0x8df92f66 memchr_inv EXPORT_SYMBOL vmlinux 0x8df9dd10 guid_null -EXPORT_SYMBOL vmlinux 0x8e062090 vlan_vids_del_by_dev -EXPORT_SYMBOL vmlinux 0x8e1ab240 eth_prepare_mac_addr_change -EXPORT_SYMBOL vmlinux 0x8e1bf709 send_sig_mceerr +EXPORT_SYMBOL vmlinux 0x8e303d43 fib_notifier_ops_register EXPORT_SYMBOL vmlinux 0x8e3e0f7d fault_in_readable -EXPORT_SYMBOL vmlinux 0x8e40b665 lease_modify -EXPORT_SYMBOL vmlinux 0x8e439ad5 netpoll_send_skb -EXPORT_SYMBOL vmlinux 0x8e61149b pci_scan_root_bus_bridge -EXPORT_SYMBOL vmlinux 0x8e6c04e0 tcf_unregister_action -EXPORT_SYMBOL vmlinux 0x8e77b2e1 fs_param_is_path -EXPORT_SYMBOL vmlinux 0x8e8c0c6c tty_unthrottle +EXPORT_SYMBOL vmlinux 0x8e588f15 param_set_invbool +EXPORT_SYMBOL vmlinux 0x8e62994b tcp_sock_set_user_timeout +EXPORT_SYMBOL vmlinux 0x8e632016 vme_unregister_driver +EXPORT_SYMBOL vmlinux 0x8e760d7b inet_put_port EXPORT_SYMBOL vmlinux 0x8e93bd24 security_secctx_to_secid -EXPORT_SYMBOL vmlinux 0x8eb67475 __dst_destroy_metrics_generic -EXPORT_SYMBOL vmlinux 0x8ec3f710 inet_stream_ops EXPORT_SYMBOL vmlinux 0x8ec760b0 cgroup_bpf_enabled_key -EXPORT_SYMBOL vmlinux 0x8ec991ef console_start -EXPORT_SYMBOL vmlinux 0x8ef30add param_get_string -EXPORT_SYMBOL vmlinux 0x8efbe333 jbd2_fc_end_commit +EXPORT_SYMBOL vmlinux 0x8ee20052 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x8eee3eda jbd2_journal_clear_features EXPORT_SYMBOL vmlinux 0x8f01afd6 twl6030_interrupt_mask -EXPORT_SYMBOL vmlinux 0x8f068cd8 security_sock_graft -EXPORT_SYMBOL vmlinux 0x8f0b5538 devm_get_clk_from_child -EXPORT_SYMBOL vmlinux 0x8f1d6d50 phy_device_register -EXPORT_SYMBOL vmlinux 0x8f2b5774 phy_ethtool_set_eee -EXPORT_SYMBOL vmlinux 0x8f32037e dquot_get_next_id -EXPORT_SYMBOL vmlinux 0x8f584a89 dquot_get_next_dqblk -EXPORT_SYMBOL vmlinux 0x8f69b618 dma_resv_fini -EXPORT_SYMBOL vmlinux 0x8f6f55a6 dcb_setapp -EXPORT_SYMBOL vmlinux 0x8f74b59f simple_transaction_get -EXPORT_SYMBOL vmlinux 0x8f8c474b nexthop_bucket_set_hw_flags +EXPORT_SYMBOL vmlinux 0x8f12132d i2c_verify_client +EXPORT_SYMBOL vmlinux 0x8f37d6c1 sock_register +EXPORT_SYMBOL vmlinux 0x8f3efec8 vlan_vid_add +EXPORT_SYMBOL vmlinux 0x8f4a4191 md_register_thread +EXPORT_SYMBOL vmlinux 0x8f5097da __break_lease +EXPORT_SYMBOL vmlinux 0x8f8b32aa xfrm_state_delete EXPORT_SYMBOL vmlinux 0x8f8df880 unregister_sysctl_table -EXPORT_SYMBOL vmlinux 0x8f9015b7 rtnl_create_link -EXPORT_SYMBOL vmlinux 0x8f92827a sk_stop_timer_sync +EXPORT_SYMBOL vmlinux 0x8f90a752 fs_lookup_param EXPORT_SYMBOL vmlinux 0x8f996a30 ethtool_convert_legacy_u32_to_link_mode -EXPORT_SYMBOL vmlinux 0x8fb0e378 scsi_mode_sense -EXPORT_SYMBOL vmlinux 0x8fb16930 qdisc_watchdog_schedule_range_ns +EXPORT_SYMBOL vmlinux 0x8faef695 ipv6_chk_custom_prefix EXPORT_SYMBOL vmlinux 0x8fb2ac53 bit_waitqueue -EXPORT_SYMBOL vmlinux 0x8fbe3771 blk_mq_init_queue -EXPORT_SYMBOL vmlinux 0x8fd564f9 netdev_bind_sb_channel_queue -EXPORT_SYMBOL vmlinux 0x8fe11a78 tcp_seq_start -EXPORT_SYMBOL vmlinux 0x8fecab20 phy_connect_direct -EXPORT_SYMBOL vmlinux 0x8ff7b417 tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x8fe64070 config_group_init +EXPORT_SYMBOL vmlinux 0x8ff5a45a d_alloc EXPORT_SYMBOL vmlinux 0x8ff89ed0 seg6_hmac_exit -EXPORT_SYMBOL vmlinux 0x8ffc6b3a pci_release_resource +EXPORT_SYMBOL vmlinux 0x8ffc2d8c of_graph_is_present EXPORT_SYMBOL vmlinux 0x90006be6 dm_kcopyd_client_flush -EXPORT_SYMBOL vmlinux 0x901db6b3 dev_uc_add -EXPORT_SYMBOL vmlinux 0x90288087 do_clone_file_range +EXPORT_SYMBOL vmlinux 0x9006108b __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x900662a4 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x900e8f09 from_kuid_munged +EXPORT_SYMBOL vmlinux 0x901bed2c netlbl_calipso_ops_register +EXPORT_SYMBOL vmlinux 0x901f381c ptp_find_pin_unlocked EXPORT_SYMBOL vmlinux 0x902d8722 vme_slave_get -EXPORT_SYMBOL vmlinux 0x9045fa1c __traceiter_mmap_lock_start_locking -EXPORT_SYMBOL vmlinux 0x90472775 ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0x90461577 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x904cfc8c security_task_getsecid_obj EXPORT_SYMBOL vmlinux 0x90576ec4 vmemdup_user -EXPORT_SYMBOL vmlinux 0x90838e99 from_kuid_munged +EXPORT_SYMBOL vmlinux 0x90673fca vmf_insert_pfn_prot +EXPORT_SYMBOL vmlinux 0x906b3a1b blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0x9072abf3 dqget EXPORT_SYMBOL vmlinux 0x90867dad proc_doulongvec_ms_jiffies_minmax -EXPORT_SYMBOL vmlinux 0x908b33b5 unload_nls -EXPORT_SYMBOL vmlinux 0x90bf6b96 fscrypt_free_bounce_page -EXPORT_SYMBOL vmlinux 0x910e4ce9 ip_sock_set_recverr -EXPORT_SYMBOL vmlinux 0x9124b956 dev_pm_opp_unregister_notifier +EXPORT_SYMBOL vmlinux 0x9094f7fe page_pool_create +EXPORT_SYMBOL vmlinux 0x90a17003 __of_get_address +EXPORT_SYMBOL vmlinux 0x90b9431d tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x90be7226 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x90ca00ba of_find_matching_node_and_match +EXPORT_SYMBOL vmlinux 0x90f3e523 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x9105bb07 sk_filter_trim_cap +EXPORT_SYMBOL vmlinux 0x911855a9 dev_mc_sync_multiple EXPORT_SYMBOL vmlinux 0x912521b7 __cpu_dying_mask -EXPORT_SYMBOL vmlinux 0x9128af89 tty_kref_put -EXPORT_SYMBOL vmlinux 0x913b2dbd kthread_stop -EXPORT_SYMBOL vmlinux 0x9149ce8f vfs_symlink +EXPORT_SYMBOL vmlinux 0x91277ab8 udp_ioctl +EXPORT_SYMBOL vmlinux 0x9127ea98 vme_bus_num +EXPORT_SYMBOL vmlinux 0x91339ed4 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x913953ac kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x91444e91 task_lookup_next_fd_rcu +EXPORT_SYMBOL vmlinux 0x914726de handshake_req_private +EXPORT_SYMBOL vmlinux 0x91649b9d pci_bus_assign_resources EXPORT_SYMBOL vmlinux 0x9166fada strncpy EXPORT_SYMBOL vmlinux 0x9166fc03 __flush_workqueue -EXPORT_SYMBOL vmlinux 0x917f65a2 udp6_csum_init -EXPORT_SYMBOL vmlinux 0x918cb019 validate_slab_cache -EXPORT_SYMBOL vmlinux 0x918db07c nf_register_net_hooks -EXPORT_SYMBOL vmlinux 0x918e709a scsi_print_command +EXPORT_SYMBOL vmlinux 0x918cdeb9 fb_firmware_edid EXPORT_SYMBOL vmlinux 0x919c58f3 __clzsi2 -EXPORT_SYMBOL vmlinux 0x919de7a3 softnet_data EXPORT_SYMBOL vmlinux 0x91a488ac __netdev_alloc_frag_align +EXPORT_SYMBOL vmlinux 0x91a77b68 genl_register_family EXPORT_SYMBOL vmlinux 0x91a7b1da qdisc_class_hash_remove -EXPORT_SYMBOL vmlinux 0x91ab31ec ip_mc_inc_group EXPORT_SYMBOL vmlinux 0x91b82d00 gen_pool_has_addr -EXPORT_SYMBOL vmlinux 0x91c95b60 pcibios_bus_to_resource -EXPORT_SYMBOL vmlinux 0x91d9ebe0 gnet_stats_copy_basic -EXPORT_SYMBOL vmlinux 0x91ec3617 sock_no_shutdown -EXPORT_SYMBOL vmlinux 0x91f46002 of_mdio_find_device +EXPORT_SYMBOL vmlinux 0x91c89944 __ip_dev_find +EXPORT_SYMBOL vmlinux 0x91d775a9 keyring_clear +EXPORT_SYMBOL vmlinux 0x91ee820d stop_tty EXPORT_SYMBOL vmlinux 0x91f68ea1 __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x92163eea mdio_device_create +EXPORT_SYMBOL vmlinux 0x922d151b of_get_ethdev_address EXPORT_SYMBOL vmlinux 0x922f45a6 __bitmap_clear -EXPORT_SYMBOL vmlinux 0x9237d030 sk_reset_timer EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get EXPORT_SYMBOL vmlinux 0x9258c776 hdmi_vendor_infoframe_pack_only -EXPORT_SYMBOL vmlinux 0x926452aa kmalloc_node_trace EXPORT_SYMBOL vmlinux 0x92774cf8 __kfence_pool -EXPORT_SYMBOL vmlinux 0x927be495 follow_down_one +EXPORT_SYMBOL vmlinux 0x9279ffd9 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x927ff46b inet_stream_connect EXPORT_SYMBOL vmlinux 0x928b5c28 strncmp +EXPORT_SYMBOL vmlinux 0x92903b9f pci_enable_device_io EXPORT_SYMBOL vmlinux 0x9291cd3b memdup_user -EXPORT_SYMBOL vmlinux 0x9294ed37 mdiobus_read EXPORT_SYMBOL vmlinux 0x92997ed8 _printk -EXPORT_SYMBOL vmlinux 0x92a0fd90 tcp_disconnect EXPORT_SYMBOL vmlinux 0x92a51e56 acpi_debug_print_raw -EXPORT_SYMBOL vmlinux 0x92adafc9 scsi_dma_unmap EXPORT_SYMBOL vmlinux 0x92b99a33 acpi_put_table EXPORT_SYMBOL vmlinux 0x92b9b180 slash_name -EXPORT_SYMBOL vmlinux 0x92c21694 ip_sock_set_pktinfo -EXPORT_SYMBOL vmlinux 0x92c3c633 __register_nls +EXPORT_SYMBOL vmlinux 0x92c60023 mmc_run_bkops EXPORT_SYMBOL vmlinux 0x92c856a3 iwe_stream_add_event -EXPORT_SYMBOL vmlinux 0x92d23c38 bio_endio EXPORT_SYMBOL vmlinux 0x92d5838e request_threaded_irq -EXPORT_SYMBOL vmlinux 0x92e753a0 ip_sock_set_mtu_discover +EXPORT_SYMBOL vmlinux 0x92d5b247 set_page_writeback +EXPORT_SYMBOL vmlinux 0x92d967b8 qdisc_offload_graft_helper +EXPORT_SYMBOL vmlinux 0x92e66012 phy_attach_direct +EXPORT_SYMBOL vmlinux 0x92ea4952 phy_device_remove EXPORT_SYMBOL vmlinux 0x92ec510d jiffies64_to_msecs -EXPORT_SYMBOL vmlinux 0x92eecb2b vme_irq_request -EXPORT_SYMBOL vmlinux 0x92f786ec default_llseek +EXPORT_SYMBOL vmlinux 0x92ec80ab ioc_lookup_icq EXPORT_SYMBOL vmlinux 0x92fa5abb vme_lm_detach EXPORT_SYMBOL vmlinux 0x93022ba6 __scsi_format_command EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get -EXPORT_SYMBOL vmlinux 0x931fef66 netif_stacked_transfer_operstate -EXPORT_SYMBOL vmlinux 0x9327c376 kmem_cache_create -EXPORT_SYMBOL vmlinux 0x93321745 mipi_dsi_turn_on_peripheral -EXPORT_SYMBOL vmlinux 0x933625a3 framebuffer_release -EXPORT_SYMBOL vmlinux 0x933e2274 load_nls_default -EXPORT_SYMBOL vmlinux 0x934cfde9 pcix_get_mmrbc -EXPORT_SYMBOL vmlinux 0x935c1363 skb_add_rx_frag -EXPORT_SYMBOL vmlinux 0x9363cc5a phy_config_aneg +EXPORT_SYMBOL vmlinux 0x93062304 ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x93120660 always_delete_dentry +EXPORT_SYMBOL vmlinux 0x931ae547 skb_pull +EXPORT_SYMBOL vmlinux 0x9335561a dev_printk_emit +EXPORT_SYMBOL vmlinux 0x93701bee vme_unregister_bridge EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid -EXPORT_SYMBOL vmlinux 0x9394dee3 nd_device_unregister -EXPORT_SYMBOL vmlinux 0x939a0b91 blk_finish_plug -EXPORT_SYMBOL vmlinux 0x939ea658 configfs_undepend_item -EXPORT_SYMBOL vmlinux 0x93a5e31a linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x937de455 fault_in_iov_iter_writeable +EXPORT_SYMBOL vmlinux 0x938b8e24 get_watch_queue +EXPORT_SYMBOL vmlinux 0x939c9102 get_bitmap_from_slot EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule -EXPORT_SYMBOL vmlinux 0x93a98f1b jbd2_journal_destroy -EXPORT_SYMBOL vmlinux 0x93af3824 phy_start_cable_test_tdr EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier -EXPORT_SYMBOL vmlinux 0x93c93b63 scsi_host_lookup -EXPORT_SYMBOL vmlinux 0x93ef562d mmc_erase_group_aligned -EXPORT_SYMBOL vmlinux 0x93f78d5d pci_remove_bus -EXPORT_SYMBOL vmlinux 0x93fe4022 dma_resv_reserve_fences -EXPORT_SYMBOL vmlinux 0x9400593e bdi_set_max_ratio -EXPORT_SYMBOL vmlinux 0x94101f04 fget_raw -EXPORT_SYMBOL vmlinux 0x94216ac0 vmalloc_to_page -EXPORT_SYMBOL vmlinux 0x9422037b max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x93ba1e88 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x93ce8581 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x93ed9633 config_item_get +EXPORT_SYMBOL vmlinux 0x941a8907 sock_create_kern EXPORT_SYMBOL vmlinux 0x9428f816 dim_turn -EXPORT_SYMBOL vmlinux 0x942aee38 irq_domain_set_info EXPORT_SYMBOL vmlinux 0x944375db _totalram_pages -EXPORT_SYMBOL vmlinux 0x9444b79e dev_get_iflink EXPORT_SYMBOL vmlinux 0x944a564d is_console_locked -EXPORT_SYMBOL vmlinux 0x945216e8 blk_mq_requeue_request -EXPORT_SYMBOL vmlinux 0x946d0884 tty_unregister_ldisc -EXPORT_SYMBOL vmlinux 0x94714145 submit_bh -EXPORT_SYMBOL vmlinux 0x947c1cbd end_buffer_write_sync -EXPORT_SYMBOL vmlinux 0x947ccf69 mini_qdisc_pair_block_init -EXPORT_SYMBOL vmlinux 0x94932f6e __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x946e94e7 inet_accept +EXPORT_SYMBOL vmlinux 0x947e98ae migrate_folio +EXPORT_SYMBOL vmlinux 0x94870be7 mount_single EXPORT_SYMBOL vmlinux 0x94961283 vunmap -EXPORT_SYMBOL vmlinux 0x94976868 phy_remove_link_mode -EXPORT_SYMBOL vmlinux 0x94a0e53b tcf_qevent_destroy -EXPORT_SYMBOL vmlinux 0x94a67516 serio_close -EXPORT_SYMBOL vmlinux 0x94b77a87 fwnode_mdiobus_phy_device_register +EXPORT_SYMBOL vmlinux 0x94a765ad twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0x94b3afbf register_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0x94b64f6f platform_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x94ba9900 end_page_writeback EXPORT_SYMBOL vmlinux 0x94bf03ca utf8_to_utf32 EXPORT_SYMBOL vmlinux 0x94bfabca unix_gc_lock -EXPORT_SYMBOL vmlinux 0x94c663ce xsk_clear_rx_need_wakeup -EXPORT_SYMBOL vmlinux 0x94df794f filemap_flush -EXPORT_SYMBOL vmlinux 0x94fa5e26 free_task +EXPORT_SYMBOL vmlinux 0x94d6ea10 blackhole_netdev +EXPORT_SYMBOL vmlinux 0x94dddb4c inet_rcv_saddr_equal +EXPORT_SYMBOL vmlinux 0x94df7ace eth_header +EXPORT_SYMBOL vmlinux 0x94ecad6e ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0x95057c88 skb_copy_and_csum_bits EXPORT_SYMBOL vmlinux 0x9507c90f copy_fsxattr_to_user -EXPORT_SYMBOL vmlinux 0x95092cd8 sock_no_recvmsg -EXPORT_SYMBOL vmlinux 0x950e0b89 eth_type_trans +EXPORT_SYMBOL vmlinux 0x950a6a10 of_node_name_prefix +EXPORT_SYMBOL vmlinux 0x950e79ef bio_add_pc_page EXPORT_SYMBOL vmlinux 0x9514151a _mcount -EXPORT_SYMBOL vmlinux 0x951d73eb fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x951e8aef is_bad_inode +EXPORT_SYMBOL vmlinux 0x9526fb1f of_device_is_big_endian +EXPORT_SYMBOL vmlinux 0x95396c61 iov_iter_bvec EXPORT_SYMBOL vmlinux 0x953d2426 utf8_strncmp +EXPORT_SYMBOL vmlinux 0x953f36e1 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x95463438 import_single_range EXPORT_SYMBOL vmlinux 0x954cef6f init_on_alloc EXPORT_SYMBOL vmlinux 0x954f099c idr_preload -EXPORT_SYMBOL vmlinux 0x95900acf of_get_property +EXPORT_SYMBOL vmlinux 0x95719891 trace_raw_output_prep +EXPORT_SYMBOL vmlinux 0x9580d889 _dev_crit EXPORT_SYMBOL vmlinux 0x959c9b73 __tracepoint_spi_transfer_stop EXPORT_SYMBOL vmlinux 0x95a07bb5 acpi_execute_reg_methods -EXPORT_SYMBOL vmlinux 0x95a705b1 vma_alloc_folio -EXPORT_SYMBOL vmlinux 0x95ad108b pcie_get_speed_cap -EXPORT_SYMBOL vmlinux 0x95f67e46 i2c_get_match_data -EXPORT_SYMBOL vmlinux 0x95f982b5 pci_bus_write_config_word -EXPORT_SYMBOL vmlinux 0x9618746a scsi_eh_finish_cmd -EXPORT_SYMBOL vmlinux 0x9618ef24 security_socket_socketpair -EXPORT_SYMBOL vmlinux 0x962c7cc9 skb_pull_data -EXPORT_SYMBOL vmlinux 0x9633de6a nd_region_release_lane -EXPORT_SYMBOL vmlinux 0x964606f1 gpiochip_irq_relres -EXPORT_SYMBOL vmlinux 0x965ede4d netdev_offload_xstats_push_delta -EXPORT_SYMBOL vmlinux 0x9668af4f rps_may_expire_flow -EXPORT_SYMBOL vmlinux 0x9668d46d kernel_write -EXPORT_SYMBOL vmlinux 0x966ed377 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x95a0e31a xp_dma_map +EXPORT_SYMBOL vmlinux 0x95c592f9 get_cached_acl_rcu +EXPORT_SYMBOL vmlinux 0x95cb3de8 putname +EXPORT_SYMBOL vmlinux 0x95cc4123 no_seek_end_llseek +EXPORT_SYMBOL vmlinux 0x95d33900 tls_client_hello_x509 +EXPORT_SYMBOL vmlinux 0x963fd459 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x964bcd93 dump_skip_to +EXPORT_SYMBOL vmlinux 0x964ce333 xfrm_input_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x96670f32 dma_unmap_page_attrs +EXPORT_SYMBOL vmlinux 0x96817268 pci_write_vpd EXPORT_SYMBOL vmlinux 0x96848186 scnprintf -EXPORT_SYMBOL vmlinux 0x96892363 bpf_link_put -EXPORT_SYMBOL vmlinux 0x96a59dd0 devm_clk_hw_register_clkdev -EXPORT_SYMBOL vmlinux 0x96aeda3b __generic_file_write_iter +EXPORT_SYMBOL vmlinux 0x96868fbd handshake_req_submit +EXPORT_SYMBOL vmlinux 0x968e15b3 keyring_alloc +EXPORT_SYMBOL vmlinux 0x969271e8 of_node_name_eq EXPORT_SYMBOL vmlinux 0x96b29254 strncasecmp -EXPORT_SYMBOL vmlinux 0x96b70adc sock_no_sendmsg_locked EXPORT_SYMBOL vmlinux 0x96c17136 fb_var_to_videomode -EXPORT_SYMBOL vmlinux 0x96c580ad elv_bio_merge_ok EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string EXPORT_SYMBOL vmlinux 0x96fab350 dim_park_on_top EXPORT_SYMBOL vmlinux 0x970a26e8 __wake_up_bit -EXPORT_SYMBOL vmlinux 0x971d2d28 inet_dgram_connect -EXPORT_SYMBOL vmlinux 0x9725de90 register_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0x971512c7 input_mt_drop_unused +EXPORT_SYMBOL vmlinux 0x97197e54 uart_register_driver +EXPORT_SYMBOL vmlinux 0x97226672 mipi_dsi_shutdown_peripheral EXPORT_SYMBOL vmlinux 0x97311c44 idr_for_each -EXPORT_SYMBOL vmlinux 0x9734e8cd open_exec -EXPORT_SYMBOL vmlinux 0x9735aa5d invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x97347caf skb_recv_datagram EXPORT_SYMBOL vmlinux 0x973fa82e register_acpi_notifier -EXPORT_SYMBOL vmlinux 0x97471666 eth_header_cache -EXPORT_SYMBOL vmlinux 0x974e3e1c gro_find_receive_by_type -EXPORT_SYMBOL vmlinux 0x975bb939 skb_ext_add -EXPORT_SYMBOL vmlinux 0x976fc51b ip_check_defrag +EXPORT_SYMBOL vmlinux 0x9746e265 netif_set_tso_max_segs +EXPORT_SYMBOL vmlinux 0x9753cae3 mpage_readahead +EXPORT_SYMBOL vmlinux 0x975414c7 nf_hook_slow_list +EXPORT_SYMBOL vmlinux 0x97562852 __skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0x97593c3a nf_unregister_net_hook +EXPORT_SYMBOL vmlinux 0x976d9081 key_alloc +EXPORT_SYMBOL vmlinux 0x9773c1f7 generic_error_remove_page EXPORT_SYMBOL vmlinux 0x97796289 vm_node_stat +EXPORT_SYMBOL vmlinux 0x978b38db node_data EXPORT_SYMBOL vmlinux 0x97a57333 crc_t10dif_update EXPORT_SYMBOL vmlinux 0x97adb487 utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x97b26da5 blk_pre_runtime_suspend EXPORT_SYMBOL vmlinux 0x97bdfa60 scsi_dev_info_remove_list -EXPORT_SYMBOL vmlinux 0x97c2d9cd dev_mc_add -EXPORT_SYMBOL vmlinux 0x97c87bb6 crypto_kdf108_setkey -EXPORT_SYMBOL vmlinux 0x97eaad07 freeze_bdev -EXPORT_SYMBOL vmlinux 0x97f139ca param_ops_dyndbg_classes -EXPORT_SYMBOL vmlinux 0x980ce54e rt_dst_clone -EXPORT_SYMBOL vmlinux 0x9819658f __of_parse_phandle_with_args +EXPORT_SYMBOL vmlinux 0x97c12f74 device_match_acpi_handle +EXPORT_SYMBOL vmlinux 0x97c66b43 devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x97cbc089 filemap_range_has_page +EXPORT_SYMBOL vmlinux 0x97d8fec7 genphy_suspend +EXPORT_SYMBOL vmlinux 0x97df8071 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x97e28507 has_capability_noaudit EXPORT_SYMBOL vmlinux 0x9829fc11 __kfifo_out_peek_r -EXPORT_SYMBOL vmlinux 0x98372767 blk_mq_delay_run_hw_queue +EXPORT_SYMBOL vmlinux 0x982cad48 lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x9846433e fscrypt_free_bounce_page +EXPORT_SYMBOL vmlinux 0x9855b69e pci_bus_type EXPORT_SYMBOL vmlinux 0x9858f364 get_random_u8 -EXPORT_SYMBOL vmlinux 0x98766600 km_state_expired -EXPORT_SYMBOL vmlinux 0x9880c684 get_watch_queue -EXPORT_SYMBOL vmlinux 0x988360c6 genphy_config_eee_advert -EXPORT_SYMBOL vmlinux 0x988d49c4 tcp_getsockopt -EXPORT_SYMBOL vmlinux 0x9896b679 ndo_dflt_fdb_del -EXPORT_SYMBOL vmlinux 0x98a51c6b dev_get_by_index_rcu -EXPORT_SYMBOL vmlinux 0x98b3d99e phy_device_remove +EXPORT_SYMBOL vmlinux 0x9861ad76 jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x9865c754 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x986baaca pci_enable_msi +EXPORT_SYMBOL vmlinux 0x98716e53 phy_driver_register +EXPORT_SYMBOL vmlinux 0x98902495 tcp_req_err +EXPORT_SYMBOL vmlinux 0x98984c31 config_item_set_name EXPORT_SYMBOL vmlinux 0x98c89ade security_xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x98ccf1c5 generic_setlease EXPORT_SYMBOL vmlinux 0x98cf60b3 strlen -EXPORT_SYMBOL vmlinux 0x98d32f26 input_reset_device -EXPORT_SYMBOL vmlinux 0x98dae3f8 param_get_int -EXPORT_SYMBOL vmlinux 0x98df0f9e param_ops_bool +EXPORT_SYMBOL vmlinux 0x98d9a0f2 mmc_put_card +EXPORT_SYMBOL vmlinux 0x98e476be skb_abort_seq_read EXPORT_SYMBOL vmlinux 0x98e508ef ignore_console_lock_warning -EXPORT_SYMBOL vmlinux 0x98fc3df0 mfd_add_devices -EXPORT_SYMBOL vmlinux 0x990ab2a7 jbd2__journal_restart -EXPORT_SYMBOL vmlinux 0x990af4a7 ip_mc_join_group -EXPORT_SYMBOL vmlinux 0x9911ae0a shmem_aops -EXPORT_SYMBOL vmlinux 0x991a16c1 import_single_range -EXPORT_SYMBOL vmlinux 0x991a3a9b skb_checksum_trimmed -EXPORT_SYMBOL vmlinux 0x991c33b5 dma_unmap_page_attrs -EXPORT_SYMBOL vmlinux 0x9923de06 blk_integrity_compare -EXPORT_SYMBOL vmlinux 0x992ace8b vmf_insert_pfn -EXPORT_SYMBOL vmlinux 0x994bcfcb current_in_userns -EXPORT_SYMBOL vmlinux 0x995149b7 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x98ef3433 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x98ef3ab2 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x991c1739 dev_pre_changeaddr_notify +EXPORT_SYMBOL vmlinux 0x993f6dea flow_rule_match_enc_ports +EXPORT_SYMBOL vmlinux 0x9946791c d_genocide +EXPORT_SYMBOL vmlinux 0x994b47a2 of_find_mipi_dsi_host_by_node EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable -EXPORT_SYMBOL vmlinux 0x9954f0be noop_fsync -EXPORT_SYMBOL vmlinux 0x9963d27f inet_frag_reasm_finish -EXPORT_SYMBOL vmlinux 0x99761b51 pci_map_rom +EXPORT_SYMBOL vmlinux 0x995439cb skb_copy +EXPORT_SYMBOL vmlinux 0x9960681b block_commit_write +EXPORT_SYMBOL vmlinux 0x9967c35b inet_addr_type +EXPORT_SYMBOL vmlinux 0x998cec59 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x99937b77 sock_common_recvmsg EXPORT_SYMBOL vmlinux 0x999e8297 vfree -EXPORT_SYMBOL vmlinux 0x99a03762 mod_node_page_state -EXPORT_SYMBOL vmlinux 0x99b26303 input_get_keycode -EXPORT_SYMBOL vmlinux 0x99b4d167 vme_dma_list_free -EXPORT_SYMBOL vmlinux 0x99b8f941 dev_get_stats +EXPORT_SYMBOL vmlinux 0x99af3a3e tcp_recvmsg EXPORT_SYMBOL vmlinux 0x99be6957 dma_fence_chain_init -EXPORT_SYMBOL vmlinux 0x99ca1c28 uart_register_driver -EXPORT_SYMBOL vmlinux 0x99cf8553 seq_put_decimal_ll EXPORT_SYMBOL vmlinux 0x99d472b1 net_dim_get_rx_moderation -EXPORT_SYMBOL vmlinux 0x99d4ad35 __d_lookup_unhash_wake -EXPORT_SYMBOL vmlinux 0x99e8ea42 ilookup -EXPORT_SYMBOL vmlinux 0x99eacfbc flow_block_cb_incref -EXPORT_SYMBOL vmlinux 0x99f2b8c8 pci_request_selected_regions_exclusive -EXPORT_SYMBOL vmlinux 0x99f792c6 xfrm_unregister_type_offload +EXPORT_SYMBOL vmlinux 0x99e3d1d9 alloc_netdev_mqs EXPORT_SYMBOL vmlinux 0x99f9638f __napi_alloc_frag_align -EXPORT_SYMBOL vmlinux 0x99fed614 finalize_exec -EXPORT_SYMBOL vmlinux 0x99ff8314 seg6_push_hmac -EXPORT_SYMBOL vmlinux 0x9a06db89 readahead_expand -EXPORT_SYMBOL vmlinux 0x9a1888af xattr_supports_user_prefix +EXPORT_SYMBOL vmlinux 0x9a104ef7 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x9a13bf54 iterate_supers_type +EXPORT_SYMBOL vmlinux 0x9a16f3fc of_iomap EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk -EXPORT_SYMBOL vmlinux 0x9a2286d3 lock_two_nondirectories -EXPORT_SYMBOL vmlinux 0x9a2e3827 jbd2_journal_restart -EXPORT_SYMBOL vmlinux 0x9a46d186 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x9a254af2 set_disk_ro +EXPORT_SYMBOL vmlinux 0x9a2eaef2 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x9a42c532 pci_free_host_bridge +EXPORT_SYMBOL vmlinux 0x9a47e768 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x9a4fe08e mpage_read_folio EXPORT_SYMBOL vmlinux 0x9a583306 netlbl_bitmap_walk -EXPORT_SYMBOL vmlinux 0x9a6c8263 xsk_tx_peek_release_desc_batch -EXPORT_SYMBOL vmlinux 0x9a6c838d dma_resv_copy_fences -EXPORT_SYMBOL vmlinux 0x9a8ab45b netlink_capable -EXPORT_SYMBOL vmlinux 0x9a8aed79 security_sb_mnt_opts_compat +EXPORT_SYMBOL vmlinux 0x9a6be437 security_path_mknod +EXPORT_SYMBOL vmlinux 0x9a6c2c4a phy_aneg_done +EXPORT_SYMBOL vmlinux 0x9a716f23 tcp_child_process +EXPORT_SYMBOL vmlinux 0x9a7c09d6 padata_free_shell +EXPORT_SYMBOL vmlinux 0x9a82a2f6 phy_start +EXPORT_SYMBOL vmlinux 0x9a8a10ca scsi_host_put +EXPORT_SYMBOL vmlinux 0x9a9b231e ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x9aa4ef40 serio_bus EXPORT_SYMBOL vmlinux 0x9aaeefce sysctl_nf_log_all_netns -EXPORT_SYMBOL vmlinux 0x9ab68da5 input_mt_init_slots -EXPORT_SYMBOL vmlinux 0x9ac90189 flow_rule_match_enc_keyid +EXPORT_SYMBOL vmlinux 0x9ad2702e i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x9ad30289 __hw_addr_sync_dev +EXPORT_SYMBOL vmlinux 0x9ad9d948 genphy_update_link +EXPORT_SYMBOL vmlinux 0x9adf0289 tcf_exts_change EXPORT_SYMBOL vmlinux 0x9ae47436 _find_last_bit -EXPORT_SYMBOL vmlinux 0x9ae70c4e in_dev_finish_destroy -EXPORT_SYMBOL vmlinux 0x9b06d4ee pci_irq_vector -EXPORT_SYMBOL vmlinux 0x9b105c17 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x9b01974a posix_acl_update_mode +EXPORT_SYMBOL vmlinux 0x9b03a770 blk_mq_end_request +EXPORT_SYMBOL vmlinux 0x9b153cb2 pcim_set_mwi EXPORT_SYMBOL vmlinux 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL vmlinux 0x9b33d3ea nf_ct_get_tuple_skb EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b444d6a sys_copyarea EXPORT_SYMBOL vmlinux 0x9b496b21 posix_acl_alloc -EXPORT_SYMBOL vmlinux 0x9b4f167e ww_mutex_trylock -EXPORT_SYMBOL vmlinux 0x9b66a9e4 ip_mc_check_igmp +EXPORT_SYMBOL vmlinux 0x9b4d326e inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x9b59957c xp_raw_get_dma +EXPORT_SYMBOL vmlinux 0x9b5b915e netdev_unbind_sb_channel EXPORT_SYMBOL vmlinux 0x9b72478f acpi_unload_parent_table -EXPORT_SYMBOL vmlinux 0x9b9342c1 ip_mc_leave_group -EXPORT_SYMBOL vmlinux 0x9b965238 pm8606_osc_disable -EXPORT_SYMBOL vmlinux 0x9bde834c pci_reenable_device -EXPORT_SYMBOL vmlinux 0x9bf52cb0 mount_subtree -EXPORT_SYMBOL vmlinux 0x9bf834a0 dev_kfree_skb_any_reason +EXPORT_SYMBOL vmlinux 0x9b73815d __devm_of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x9b7e3824 handle_edge_irq +EXPORT_SYMBOL vmlinux 0x9b8f0d15 dev_trans_start +EXPORT_SYMBOL vmlinux 0x9ba83a61 blk_mq_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x9bb4e1c0 bpf_empty_prog_array +EXPORT_SYMBOL vmlinux 0x9bbc98c9 __scm_destroy +EXPORT_SYMBOL vmlinux 0x9bdf4140 tty_driver_flush_buffer EXPORT_SYMBOL vmlinux 0x9c062e20 panic_notifier_list -EXPORT_SYMBOL vmlinux 0x9c0d5bec current_time -EXPORT_SYMBOL vmlinux 0x9c324a8b mdio_driver_unregister -EXPORT_SYMBOL vmlinux 0x9c502f10 dev_addr_del -EXPORT_SYMBOL vmlinux 0x9c62c251 component_match_add_typed -EXPORT_SYMBOL vmlinux 0x9c681df5 sync_inode_metadata -EXPORT_SYMBOL vmlinux 0x9c80b9d2 eth_mac_addr -EXPORT_SYMBOL vmlinux 0x9c869977 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x9c1fdf3c input_release_device +EXPORT_SYMBOL vmlinux 0x9c2f5091 path_is_mountpoint +EXPORT_SYMBOL vmlinux 0x9c5caa8a generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x9c74101d __dquot_transfer +EXPORT_SYMBOL vmlinux 0x9c8431b2 dev_mc_unsync EXPORT_SYMBOL vmlinux 0x9c86b9ab fileattr_fill_flags EXPORT_SYMBOL vmlinux 0x9c91b2e4 _raw_write_unlock_bh -EXPORT_SYMBOL vmlinux 0x9c9863dc xfrm_policy_walk EXPORT_SYMBOL vmlinux 0x9c9aa3b9 parse_int_array_user -EXPORT_SYMBOL vmlinux 0x9ca08688 __blkdev_issue_discard -EXPORT_SYMBOL vmlinux 0x9ca69e31 fb_pan_display +EXPORT_SYMBOL vmlinux 0x9ca4e5fd netif_receive_skb EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name -EXPORT_SYMBOL vmlinux 0x9cc73552 tcf_em_register -EXPORT_SYMBOL vmlinux 0x9ccb5310 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x9cbfaa58 netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0x9ccc5370 handshake_genl_put EXPORT_SYMBOL vmlinux 0x9ccf7171 vme_dma_pci_attribute +EXPORT_SYMBOL vmlinux 0x9ccfa1cf shmem_aops +EXPORT_SYMBOL vmlinux 0x9cdb906f con_set_default_unimap EXPORT_SYMBOL vmlinux 0x9cdfb3f7 sysctl_fb_tunnels_only_for_init_net -EXPORT_SYMBOL vmlinux 0x9ceb52a8 folio_wait_bit_killable -EXPORT_SYMBOL vmlinux 0x9cef3abf blk_post_runtime_suspend -EXPORT_SYMBOL vmlinux 0x9cf789e8 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x9cef0285 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x9cf60dbc init_pseudo +EXPORT_SYMBOL vmlinux 0x9cfa53ad i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x9d042b07 simple_rmdir EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier -EXPORT_SYMBOL vmlinux 0x9d1af9d4 unlock_buffer EXPORT_SYMBOL vmlinux 0x9d26675e zstd_cstream_workspace_bound -EXPORT_SYMBOL vmlinux 0x9d2846fe phy_set_max_speed EXPORT_SYMBOL vmlinux 0x9d2ab8ac __tasklet_schedule EXPORT_SYMBOL vmlinux 0x9d2e7707 unregister_sysrq_key -EXPORT_SYMBOL vmlinux 0x9d2f1518 pci_match_id EXPORT_SYMBOL vmlinux 0x9d307a20 prepare_to_wait_event -EXPORT_SYMBOL vmlinux 0x9d384b22 __traceiter_spi_transfer_stop -EXPORT_SYMBOL vmlinux 0x9d50b2dc truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x9d3ecfa5 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x9d444b2f tcf_exts_dump_stats EXPORT_SYMBOL vmlinux 0x9d61e994 ucs2_strncmp -EXPORT_SYMBOL vmlinux 0x9d68c271 touchscreen_report_pos -EXPORT_SYMBOL vmlinux 0x9d6ab04b pci_release_region -EXPORT_SYMBOL vmlinux 0x9d722451 is_nvdimm_bus_locked -EXPORT_SYMBOL vmlinux 0x9d832af2 dev_close +EXPORT_SYMBOL vmlinux 0x9d6a7127 pci_msi_vec_count +EXPORT_SYMBOL vmlinux 0x9d72ae49 finalize_exec +EXPORT_SYMBOL vmlinux 0x9d756329 icmpv6_ndo_send +EXPORT_SYMBOL vmlinux 0x9d76c644 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x9d889d95 pci_set_power_state EXPORT_SYMBOL vmlinux 0x9d8d6840 xa_extract -EXPORT_SYMBOL vmlinux 0x9d9c5154 tcf_qevent_validate_change -EXPORT_SYMBOL vmlinux 0x9daf1f9c __cgroup_bpf_run_filter_skb -EXPORT_SYMBOL vmlinux 0x9db28e12 cfb_copyarea -EXPORT_SYMBOL vmlinux 0x9dbc9c3b inet_get_local_port_range -EXPORT_SYMBOL vmlinux 0x9dbf2265 jbd2_journal_grab_journal_head -EXPORT_SYMBOL vmlinux 0x9dd139c3 blk_rq_map_user_io -EXPORT_SYMBOL vmlinux 0x9dd39581 vfs_getattr_nosec -EXPORT_SYMBOL vmlinux 0x9dd6ccc7 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x9d9d4d95 put_cmsg_scm_timestamping +EXPORT_SYMBOL vmlinux 0x9db76a38 seq_pad +EXPORT_SYMBOL vmlinux 0x9db922b2 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x9db9e85c __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x9dc911d5 fqdir_init +EXPORT_SYMBOL vmlinux 0x9dcebda3 pci_match_id EXPORT_SYMBOL vmlinux 0x9dd9df13 dm_kcopyd_client_create -EXPORT_SYMBOL vmlinux 0x9df32bc2 tcf_idr_search -EXPORT_SYMBOL vmlinux 0x9df85864 vfs_parse_fs_param_source +EXPORT_SYMBOL vmlinux 0x9ddefb62 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x9debe3a7 tcp_parse_options EXPORT_SYMBOL vmlinux 0x9df995fb stack_depot_set_extra_bits -EXPORT_SYMBOL vmlinux 0x9dfad282 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x9dfbdbde of_device_alloc +EXPORT_SYMBOL vmlinux 0x9e04249a udp_pre_connect EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node EXPORT_SYMBOL vmlinux 0x9e0fa5ae hsiphash_3u32 EXPORT_SYMBOL vmlinux 0x9e13f6f6 gf128mul_lle -EXPORT_SYMBOL vmlinux 0x9e1d3124 block_read_full_folio -EXPORT_SYMBOL vmlinux 0x9e25a289 md_check_recovery +EXPORT_SYMBOL vmlinux 0x9e261da3 noop_dirty_folio EXPORT_SYMBOL vmlinux 0x9e2737f0 acpi_install_interface_handler -EXPORT_SYMBOL vmlinux 0x9e4e1c3b inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x9e2f5d45 xfrm_lookup_with_ifid +EXPORT_SYMBOL vmlinux 0x9e3beea6 twl6040_power +EXPORT_SYMBOL vmlinux 0x9e3f9cff ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x9e445914 fscrypt_has_permitted_context EXPORT_SYMBOL vmlinux 0x9e4e9296 dql_init EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy EXPORT_SYMBOL vmlinux 0x9e52bf3d __percpu_counter_compare -EXPORT_SYMBOL vmlinux 0x9e554756 seq_bprintf EXPORT_SYMBOL vmlinux 0x9e59ad59 proc_dointvec_ms_jiffies EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable -EXPORT_SYMBOL vmlinux 0x9e8dcb8e of_graph_get_remote_endpoint -EXPORT_SYMBOL vmlinux 0x9e9a356a xfrm4_udp_encap_rcv +EXPORT_SYMBOL vmlinux 0x9e6e7e13 close_fd_get_file EXPORT_SYMBOL vmlinux 0x9e9eab95 devcgroup_check_permission EXPORT_SYMBOL vmlinux 0x9e9fdd9d memunmap -EXPORT_SYMBOL vmlinux 0x9eabd396 prepare_to_swait_event EXPORT_SYMBOL vmlinux 0x9eacf8a5 kstrndup -EXPORT_SYMBOL vmlinux 0x9eb6c2eb folio_mark_dirty +EXPORT_SYMBOL vmlinux 0x9eb2eb97 xfrm_state_update EXPORT_SYMBOL vmlinux 0x9ec0e639 twl6030_interrupt_unmask -EXPORT_SYMBOL vmlinux 0x9ec21d7e seq_put_decimal_ull EXPORT_SYMBOL vmlinux 0x9ec6ca96 ktime_get_real_ts64 EXPORT_SYMBOL vmlinux 0x9ed12e20 kmalloc_large +EXPORT_SYMBOL vmlinux 0x9ed802a9 pci_ep_cfs_remove_epc_group EXPORT_SYMBOL vmlinux 0x9ed978de vme_lm_set -EXPORT_SYMBOL vmlinux 0x9ee6bf9e dentry_open -EXPORT_SYMBOL vmlinux 0x9f083c80 phy_reset_after_clk_enable -EXPORT_SYMBOL vmlinux 0x9f12ad36 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x9ee6c222 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x9efa0111 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x9f037eb3 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x9f07383a devm_clk_get_optional +EXPORT_SYMBOL vmlinux 0x9f0ec61e devm_of_iomap EXPORT_SYMBOL vmlinux 0x9f14462f refcount_dec_and_mutex_lock -EXPORT_SYMBOL vmlinux 0x9f1d52b1 filemap_splice_read -EXPORT_SYMBOL vmlinux 0x9f275b10 flow_rule_match_eth_addrs -EXPORT_SYMBOL vmlinux 0x9f37fd6f udp_lib_getsockopt -EXPORT_SYMBOL vmlinux 0x9f404ea4 make_kprojid +EXPORT_SYMBOL vmlinux 0x9f1c672c jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x9f380056 request_key_with_auxdata EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 -EXPORT_SYMBOL vmlinux 0x9f4cb170 pci_write_vpd_any +EXPORT_SYMBOL vmlinux 0x9f47e10c dma_resv_copy_fences +EXPORT_SYMBOL vmlinux 0x9f4d574f netdev_upper_dev_unlink EXPORT_SYMBOL vmlinux 0x9f4f2aa3 acpi_gbl_FADT EXPORT_SYMBOL vmlinux 0x9f50b770 keyring_restrict EXPORT_SYMBOL vmlinux 0x9f54ead7 gro_cells_destroy -EXPORT_SYMBOL vmlinux 0x9f5e4e5c scsi_host_alloc -EXPORT_SYMBOL vmlinux 0x9f778d6e vmap -EXPORT_SYMBOL vmlinux 0x9f78163d tcp_mmap +EXPORT_SYMBOL vmlinux 0x9f56fea1 filemap_get_folios +EXPORT_SYMBOL vmlinux 0x9f6f1b65 xfrm_input_resume EXPORT_SYMBOL vmlinux 0x9f882c4c __put_cred +EXPORT_SYMBOL vmlinux 0x9f8a3d7d kthread_stop EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9e105b of_get_cpu_state_node +EXPORT_SYMBOL vmlinux 0x9fa3f2cb netif_tx_wake_queue EXPORT_SYMBOL vmlinux 0x9fa7184a cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x9fb34826 ipv6_mc_check_mld +EXPORT_SYMBOL vmlinux 0x9fb38f1e ip_do_fragment EXPORT_SYMBOL vmlinux 0x9fb41842 netdev_offload_xstats_report_delta -EXPORT_SYMBOL vmlinux 0x9fb97224 __traceiter_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x9fb44550 md_bitmap_unplug +EXPORT_SYMBOL vmlinux 0x9fb5b679 bpf_map_get +EXPORT_SYMBOL vmlinux 0x9fbbf74b nf_log_set +EXPORT_SYMBOL vmlinux 0x9fc26732 lease_modify +EXPORT_SYMBOL vmlinux 0x9fc3234e netdev_lower_get_next_private_rcu EXPORT_SYMBOL vmlinux 0x9fc5f8da sbi_remote_sfence_vma_asid -EXPORT_SYMBOL vmlinux 0x9fd02876 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x9fd98022 param_get_invbool +EXPORT_SYMBOL vmlinux 0x9fdabe7e nd_region_release_lane EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe2b3ff filemap_dirty_folio +EXPORT_SYMBOL vmlinux 0x9fe34e9b blk_set_queue_depth +EXPORT_SYMBOL vmlinux 0x9fe42e13 handshake_req_alloc +EXPORT_SYMBOL vmlinux 0x9fe7db57 file_update_time +EXPORT_SYMBOL vmlinux 0x9fe7e6e5 unlock_page EXPORT_SYMBOL vmlinux 0x9feed7ce timer_reduce EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0xa00fbe8e unregister_qdisc +EXPORT_SYMBOL vmlinux 0xa0192a95 sk_mc_loop EXPORT_SYMBOL vmlinux 0xa01d3df6 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0xa020ad6c from_kgid_munged +EXPORT_SYMBOL vmlinux 0xa0301dbe genphy_restart_aneg EXPORT_SYMBOL vmlinux 0xa033d747 next_arg -EXPORT_SYMBOL vmlinux 0xa03bfb68 inet_frag_queue_insert +EXPORT_SYMBOL vmlinux 0xa042c65a devm_ioremap_resource EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes EXPORT_SYMBOL vmlinux 0xa043f143 proc_doulongvec_minmax -EXPORT_SYMBOL vmlinux 0xa04bd8dc tcp_setsockopt -EXPORT_SYMBOL vmlinux 0xa052d510 __phy_resume +EXPORT_SYMBOL vmlinux 0xa054585b vfs_fileattr_get EXPORT_SYMBOL vmlinux 0xa057df8f twl_set_regcache_bypass EXPORT_SYMBOL vmlinux 0xa05b6be2 psched_ppscfg_precompute -EXPORT_SYMBOL vmlinux 0xa06d5cfd xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xa061cdc6 pps_unregister_source +EXPORT_SYMBOL vmlinux 0xa0621fa7 sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0xa07402f2 __devm_request_region +EXPORT_SYMBOL vmlinux 0xa0786907 genphy_write_mmd_unsupported EXPORT_SYMBOL vmlinux 0xa07a37f0 memchr EXPORT_SYMBOL vmlinux 0xa07d1b3c tasklet_setup EXPORT_SYMBOL vmlinux 0xa084749a __bitmap_or -EXPORT_SYMBOL vmlinux 0xa091e616 bfifo_qdisc_ops EXPORT_SYMBOL vmlinux 0xa095e02e generic_check_addressable -EXPORT_SYMBOL vmlinux 0xa09ba67e flow_rule_match_tcp -EXPORT_SYMBOL vmlinux 0xa0abe5bf task_work_add -EXPORT_SYMBOL vmlinux 0xa0ad06ad param_get_ushort EXPORT_SYMBOL vmlinux 0xa0ae1e73 siphash_3u64 +EXPORT_SYMBOL vmlinux 0xa0aebe8d filemap_write_and_wait_range EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 -EXPORT_SYMBOL vmlinux 0xa0b6758a vme_irq_free -EXPORT_SYMBOL vmlinux 0xa0c0c8a8 xsk_clear_tx_need_wakeup -EXPORT_SYMBOL vmlinux 0xa0c98ab1 copy_page_from_iter -EXPORT_SYMBOL vmlinux 0xa0cf673f simple_get_link -EXPORT_SYMBOL vmlinux 0xa0d57504 max8998_read_reg EXPORT_SYMBOL vmlinux 0xa0dad88e netdev_adjacent_get_private -EXPORT_SYMBOL vmlinux 0xa0e66ac8 dev_uc_unsync EXPORT_SYMBOL vmlinux 0xa0eae826 smp_call_function EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem EXPORT_SYMBOL vmlinux 0xa0ebd437 hdmi_drm_infoframe_check EXPORT_SYMBOL vmlinux 0xa0f10085 __sg_free_table +EXPORT_SYMBOL vmlinux 0xa0f228cf kmem_cache_create EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa1005a47 skb_flow_dissect_tunnel_info EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max EXPORT_SYMBOL vmlinux 0xa115da49 __tracepoint_kfree -EXPORT_SYMBOL vmlinux 0xa12038ba xfrm_input -EXPORT_SYMBOL vmlinux 0xa135c474 pagecache_get_page -EXPORT_SYMBOL vmlinux 0xa1483fd9 scsi_print_result -EXPORT_SYMBOL vmlinux 0xa148e96a devm_iounmap +EXPORT_SYMBOL vmlinux 0xa14106c9 ethtool_notify EXPORT_SYMBOL vmlinux 0xa153c76e mempool_free -EXPORT_SYMBOL vmlinux 0xa1709db6 __netlink_dump_start -EXPORT_SYMBOL vmlinux 0xa193f622 clk_hw_register_clkdev -EXPORT_SYMBOL vmlinux 0xa1954ab6 pci_ep_cfs_add_epf_group -EXPORT_SYMBOL vmlinux 0xa19cf652 filemap_get_folios_contig +EXPORT_SYMBOL vmlinux 0xa15c5fff xfrm_replay_seqhi +EXPORT_SYMBOL vmlinux 0xa19e8d8e of_find_node_with_property +EXPORT_SYMBOL vmlinux 0xa1ad5dee gnet_stats_copy_queue EXPORT_SYMBOL vmlinux 0xa1af1de0 xa_store -EXPORT_SYMBOL vmlinux 0xa1c22eed of_find_node_by_name -EXPORT_SYMBOL vmlinux 0xa1d9b44d dquot_disable -EXPORT_SYMBOL vmlinux 0xa1fed82c of_graph_get_remote_port_parent +EXPORT_SYMBOL vmlinux 0xa1c1aa89 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xa1c7cfea inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0xa1d3cd5a netpoll_send_skb +EXPORT_SYMBOL vmlinux 0xa1daa773 md_done_sync +EXPORT_SYMBOL vmlinux 0xa1df31b0 __ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xa1e4bcc1 pci_pme_active +EXPORT_SYMBOL vmlinux 0xa1f11f84 submit_bh +EXPORT_SYMBOL vmlinux 0xa1f5085f inc_node_state EXPORT_SYMBOL vmlinux 0xa2060911 inet_current_timestamp -EXPORT_SYMBOL vmlinux 0xa20802a3 dev_uc_sync_multiple -EXPORT_SYMBOL vmlinux 0xa20d881b cont_write_begin -EXPORT_SYMBOL vmlinux 0xa2191cdc scsi_done_direct -EXPORT_SYMBOL vmlinux 0xa2223d2c alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xa226ad48 unix_destruct_scm EXPORT_SYMBOL vmlinux 0xa2326c49 acpi_remove_table_handler -EXPORT_SYMBOL vmlinux 0xa234a7bd nf_log_unregister -EXPORT_SYMBOL vmlinux 0xa23aecae phy_set_asym_pause -EXPORT_SYMBOL vmlinux 0xa23ff8d7 km_state_notify +EXPORT_SYMBOL vmlinux 0xa232b92a audit_log_start EXPORT_SYMBOL vmlinux 0xa23ffc04 groups_sort -EXPORT_SYMBOL vmlinux 0xa246fcf8 devm_mmc_alloc_host +EXPORT_SYMBOL vmlinux 0xa24047d8 pci_bus_size_bridges EXPORT_SYMBOL vmlinux 0xa24f23d8 __request_module -EXPORT_SYMBOL vmlinux 0xa2524d97 kernel_getpeername +EXPORT_SYMBOL vmlinux 0xa25cbb15 dcb_getrewr EXPORT_SYMBOL vmlinux 0xa263892b fscrypt_fname_free_buffer -EXPORT_SYMBOL vmlinux 0xa28bf218 tcp_check_req +EXPORT_SYMBOL vmlinux 0xa2769f54 configfs_unregister_subsystem +EXPORT_SYMBOL vmlinux 0xa27b4fac cdev_del +EXPORT_SYMBOL vmlinux 0xa27fc3fc devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0xa286fdb9 of_node_put EXPORT_SYMBOL vmlinux 0xa28cfcc0 gen_estimator_active -EXPORT_SYMBOL vmlinux 0xa28d4026 pci_bus_alloc_resource -EXPORT_SYMBOL vmlinux 0xa29023c8 drop_nlink -EXPORT_SYMBOL vmlinux 0xa297e73c page_cache_next_miss -EXPORT_SYMBOL vmlinux 0xa2b0a77c mdiobus_setup_mdiodev_from_board_info -EXPORT_SYMBOL vmlinux 0xa2d62493 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xa294787a pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0xa2b2d4b5 input_flush_device +EXPORT_SYMBOL vmlinux 0xa2c2cd9c __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0xa2d21d89 dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0xa2d4a298 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xa2d79967 pm860x_bulk_write EXPORT_SYMBOL vmlinux 0xa2d7ec8d __SCK__tp_func_kmem_cache_free -EXPORT_SYMBOL vmlinux 0xa2d95e0e devfreq_resume_device +EXPORT_SYMBOL vmlinux 0xa2e7d989 mmc_spi_get_pdata EXPORT_SYMBOL vmlinux 0xa2f086fb xa_load -EXPORT_SYMBOL vmlinux 0xa30b8a7e tty_hung_up_p -EXPORT_SYMBOL vmlinux 0xa32f2ac2 iov_iter_zero +EXPORT_SYMBOL vmlinux 0xa3278043 bio_split_to_limits +EXPORT_SYMBOL vmlinux 0xa329a3ea dev_uc_init EXPORT_SYMBOL vmlinux 0xa3394ba7 nla_reserve -EXPORT_SYMBOL vmlinux 0xa33a5098 mipi_dsi_generic_read -EXPORT_SYMBOL vmlinux 0xa33cda0a pcim_pin_device -EXPORT_SYMBOL vmlinux 0xa341bc4a phy_ethtool_get_sset_count -EXPORT_SYMBOL vmlinux 0xa34d5d37 __skb_checksum_complete -EXPORT_SYMBOL vmlinux 0xa34ed15d __d_drop -EXPORT_SYMBOL vmlinux 0xa35beb56 lock_rename_child -EXPORT_SYMBOL vmlinux 0xa36d089f __netdev_notify_peers -EXPORT_SYMBOL vmlinux 0xa3735838 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xa371039f tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xa379c811 tcf_action_update_stats +EXPORT_SYMBOL vmlinux 0xa37a5a82 bio_put EXPORT_SYMBOL vmlinux 0xa381944f dql_reset -EXPORT_SYMBOL vmlinux 0xa38e3cd4 dm_get_device +EXPORT_SYMBOL vmlinux 0xa389c4e3 cont_write_begin +EXPORT_SYMBOL vmlinux 0xa3951dba __i2c_transfer EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay -EXPORT_SYMBOL vmlinux 0xa3a4ffd1 bio_copy_data_iter +EXPORT_SYMBOL vmlinux 0xa3a744b7 ps2_begin_command EXPORT_SYMBOL vmlinux 0xa3a94de0 neigh_proc_dointvec -EXPORT_SYMBOL vmlinux 0xa3c3b8f2 of_find_net_device_by_node +EXPORT_SYMBOL vmlinux 0xa3c4aec5 jbd2_journal_inode_ranged_write EXPORT_SYMBOL vmlinux 0xa3cefaa0 blake2s_update +EXPORT_SYMBOL vmlinux 0xa3d5134c build_skb +EXPORT_SYMBOL vmlinux 0xa3e2d171 inc_zone_page_state EXPORT_SYMBOL vmlinux 0xa3e4f871 acpi_initialize_debugger -EXPORT_SYMBOL vmlinux 0xa3f4a157 input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0xa3f46e97 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xa3fc5e53 brioctl_set EXPORT_SYMBOL vmlinux 0xa3fea172 sha224_final EXPORT_SYMBOL vmlinux 0xa40ff01b acpi_dbg_layer -EXPORT_SYMBOL vmlinux 0xa41daa60 pnp_register_driver +EXPORT_SYMBOL vmlinux 0xa41fcc0e genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xa429ea55 ip_options_compile +EXPORT_SYMBOL vmlinux 0xa43868e5 noop_fsync EXPORT_SYMBOL vmlinux 0xa440d121 flow_keys_dissector -EXPORT_SYMBOL vmlinux 0xa458b05d console_force_preferred_locked -EXPORT_SYMBOL vmlinux 0xa4880066 bio_integrity_alloc -EXPORT_SYMBOL vmlinux 0xa48de2c2 flow_rule_match_enc_ipv4_addrs -EXPORT_SYMBOL vmlinux 0xa491a25a param_set_short -EXPORT_SYMBOL vmlinux 0xa493bc69 kernel_sock_ip_overhead -EXPORT_SYMBOL vmlinux 0xa4a41a5d scm_detach_fds -EXPORT_SYMBOL vmlinux 0xa4add27c cdev_del -EXPORT_SYMBOL vmlinux 0xa4bac3f5 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xa447bfaf lookup_one_positive_unlocked +EXPORT_SYMBOL vmlinux 0xa44bc7b8 genlmsg_put +EXPORT_SYMBOL vmlinux 0xa4602bac sg_miter_skip +EXPORT_SYMBOL vmlinux 0xa468266d is_nd_btt +EXPORT_SYMBOL vmlinux 0xa46e3ce6 inet_frag_pull_head +EXPORT_SYMBOL vmlinux 0xa494deee bpf_prog_get_type_path +EXPORT_SYMBOL vmlinux 0xa4cd9bf3 jbd2_journal_put_journal_head +EXPORT_SYMBOL vmlinux 0xa4cdb595 netdev_notice +EXPORT_SYMBOL vmlinux 0xa4ceb883 dquot_set_dqinfo EXPORT_SYMBOL vmlinux 0xa4cfdbdc sbi_remote_sfence_vma EXPORT_SYMBOL vmlinux 0xa4d00ce8 udplite_table -EXPORT_SYMBOL vmlinux 0xa4d987e9 is_subdir -EXPORT_SYMBOL vmlinux 0xa4fb9e84 tty_register_device -EXPORT_SYMBOL vmlinux 0xa5043d21 __ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xa4daea37 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xa4f48472 drop_super EXPORT_SYMBOL vmlinux 0xa5056338 __hsiphash_aligned +EXPORT_SYMBOL vmlinux 0xa5183277 tc_setup_cb_reoffload EXPORT_SYMBOL vmlinux 0xa51b37ae __xa_set_mark -EXPORT_SYMBOL vmlinux 0xa5207392 key_revoke -EXPORT_SYMBOL vmlinux 0xa53ba388 __folio_lock -EXPORT_SYMBOL vmlinux 0xa541abf1 param_get_uint +EXPORT_SYMBOL vmlinux 0xa533f9ad follow_down_one EXPORT_SYMBOL vmlinux 0xa54b9063 cpu_rmap_add -EXPORT_SYMBOL vmlinux 0xa54bd54e unregister_fib_notifier EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color -EXPORT_SYMBOL vmlinux 0xa55b8af6 xfrm_register_km -EXPORT_SYMBOL vmlinux 0xa5708498 __free_pages -EXPORT_SYMBOL vmlinux 0xa57b6b6b kmem_cache_alloc -EXPORT_SYMBOL vmlinux 0xa57c8a10 __devm_mdiobus_register -EXPORT_SYMBOL vmlinux 0xa587ffe1 of_node_put -EXPORT_SYMBOL vmlinux 0xa59fe146 phy_drivers_unregister -EXPORT_SYMBOL vmlinux 0xa5a54533 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0xa5601b6f skb_csum_hwoffload_help +EXPORT_SYMBOL vmlinux 0xa5609629 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xa562198d blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xa56be439 ilookup +EXPORT_SYMBOL vmlinux 0xa57a7365 find_vma +EXPORT_SYMBOL vmlinux 0xa5830131 sock_efree +EXPORT_SYMBOL vmlinux 0xa58d0299 mmc_gpio_set_cd_wake +EXPORT_SYMBOL vmlinux 0xa59e715b proc_create_seq_private EXPORT_SYMBOL vmlinux 0xa5b844ae nmi_panic -EXPORT_SYMBOL vmlinux 0xa5d72a3e iterate_fd -EXPORT_SYMBOL vmlinux 0xa5fcc6f8 pcim_iounmap -EXPORT_SYMBOL vmlinux 0xa5fe6213 blk_queue_segment_boundary -EXPORT_SYMBOL vmlinux 0xa600e39c inode_set_flags -EXPORT_SYMBOL vmlinux 0xa616f264 flow_block_cb_alloc -EXPORT_SYMBOL vmlinux 0xa61719eb may_umount_tree +EXPORT_SYMBOL vmlinux 0xa5c2c340 dcache_readdir +EXPORT_SYMBOL vmlinux 0xa5c3bb7b flow_rule_match_vlan +EXPORT_SYMBOL vmlinux 0xa5cc90c7 folio_alloc +EXPORT_SYMBOL vmlinux 0xa5eaa960 xsk_get_pool_from_qid +EXPORT_SYMBOL vmlinux 0xa5ebdbac udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xa5ec9b45 generic_remap_file_range_prep +EXPORT_SYMBOL vmlinux 0xa6093f77 release_pages +EXPORT_SYMBOL vmlinux 0xa6100524 folio_add_lru +EXPORT_SYMBOL vmlinux 0xa619ea2d tcp_ld_RTO_revert +EXPORT_SYMBOL vmlinux 0xa61c4443 pcie_capability_write_word EXPORT_SYMBOL vmlinux 0xa61ced89 qdisc_put_rtab EXPORT_SYMBOL vmlinux 0xa6212807 security_binder_transfer_binder +EXPORT_SYMBOL vmlinux 0xa622d526 jbd2_fc_end_commit +EXPORT_SYMBOL vmlinux 0xa6302ed4 dquot_resume +EXPORT_SYMBOL vmlinux 0xa63c6e20 xfrm4_udp_encap_rcv +EXPORT_SYMBOL vmlinux 0xa63cbb6b blk_mq_delay_run_hw_queue +EXPORT_SYMBOL vmlinux 0xa63fcd4a wireless_send_event EXPORT_SYMBOL vmlinux 0xa6408eef dma_fence_add_callback EXPORT_SYMBOL vmlinux 0xa6457c89 hdmi_infoframe_pack EXPORT_SYMBOL vmlinux 0xa64c7249 __printk_cpu_sync_try_get -EXPORT_SYMBOL vmlinux 0xa66c112f fscrypt_ioctl_set_policy -EXPORT_SYMBOL vmlinux 0xa66ea270 write_dirty_buffer -EXPORT_SYMBOL vmlinux 0xa677592b generic_error_remove_page -EXPORT_SYMBOL vmlinux 0xa67d8c1c mr_mfc_seq_next -EXPORT_SYMBOL vmlinux 0xa67f6b20 tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0xa6546737 dquot_scan_active +EXPORT_SYMBOL vmlinux 0xa6591539 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0xa66a29a8 tcp_sock_set_keepcnt EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid -EXPORT_SYMBOL vmlinux 0xa6834ade dev_mc_flush -EXPORT_SYMBOL vmlinux 0xa68b0b0e nd_btt_arena_is_valid -EXPORT_SYMBOL vmlinux 0xa6a69373 vma_set_file -EXPORT_SYMBOL vmlinux 0xa6f70e8f qdisc_hash_add -EXPORT_SYMBOL vmlinux 0xa6fca3e8 mnt_set_expiry -EXPORT_SYMBOL vmlinux 0xa71db9de begin_new_exec -EXPORT_SYMBOL vmlinux 0xa723b98b trace_raw_output_prep -EXPORT_SYMBOL vmlinux 0xa725030d skb_expand_head -EXPORT_SYMBOL vmlinux 0xa72aec15 inet_del_protocol -EXPORT_SYMBOL vmlinux 0xa734261d mipi_dsi_host_register +EXPORT_SYMBOL vmlinux 0xa687f3a7 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xa6925e98 audit_log +EXPORT_SYMBOL vmlinux 0xa692cca6 __lock_buffer +EXPORT_SYMBOL vmlinux 0xa6b39305 security_sctp_assoc_established +EXPORT_SYMBOL vmlinux 0xa6b94a8b tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xa6c9665e __napi_alloc_skb +EXPORT_SYMBOL vmlinux 0xa6e12a00 load_nls +EXPORT_SYMBOL vmlinux 0xa6e2ef9e xfrm4_protocol_deregister +EXPORT_SYMBOL vmlinux 0xa6ebec90 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xa700af9b devm_extcon_unregister_notifier +EXPORT_SYMBOL vmlinux 0xa70be275 dquot_operations +EXPORT_SYMBOL vmlinux 0xa71c992a bio_reset +EXPORT_SYMBOL vmlinux 0xa72c66ed sget +EXPORT_SYMBOL vmlinux 0xa72d6705 configfs_register_default_group +EXPORT_SYMBOL vmlinux 0xa73f8efb dquot_commit +EXPORT_SYMBOL vmlinux 0xa740353d blkdev_issue_secure_erase EXPORT_SYMBOL vmlinux 0xa74c9877 refcount_dec_and_rtnl_lock -EXPORT_SYMBOL vmlinux 0xa76f9482 unpin_user_page -EXPORT_SYMBOL vmlinux 0xa7727cd6 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xa776e7b5 sched_autogroup_detach EXPORT_SYMBOL vmlinux 0xa77bfd29 register_inet6addr_validator_notifier -EXPORT_SYMBOL vmlinux 0xa78f9c7f __lock_buffer -EXPORT_SYMBOL vmlinux 0xa7a64970 of_get_mac_address -EXPORT_SYMBOL vmlinux 0xa7ad071e give_up_console -EXPORT_SYMBOL vmlinux 0xa7ad2c81 devm_kvasprintf -EXPORT_SYMBOL vmlinux 0xa7b27e88 netdev_offload_xstats_enabled -EXPORT_SYMBOL vmlinux 0xa7d7356c ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xa78472a9 dev_uc_sync +EXPORT_SYMBOL vmlinux 0xa7a3ea8f dev_deactivate +EXPORT_SYMBOL vmlinux 0xa7b07c70 inode_io_list_del +EXPORT_SYMBOL vmlinux 0xa7b40a48 fb_get_mode +EXPORT_SYMBOL vmlinux 0xa7bd28a1 qdisc_watchdog_schedule_range_ns +EXPORT_SYMBOL vmlinux 0xa7c3a783 tso_build_data +EXPORT_SYMBOL vmlinux 0xa7cf8a25 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xa7d19096 may_setattr +EXPORT_SYMBOL vmlinux 0xa7e90eac inode_get_bytes +EXPORT_SYMBOL vmlinux 0xa7ee6dab jbd2_journal_set_triggers EXPORT_SYMBOL vmlinux 0xa7eedcc4 call_usermodehelper -EXPORT_SYMBOL vmlinux 0xa803b8fc dquot_writeback_dquots -EXPORT_SYMBOL vmlinux 0xa8226924 handshake_req_private -EXPORT_SYMBOL vmlinux 0xa82e1bd9 rdmacg_try_charge -EXPORT_SYMBOL vmlinux 0xa833d629 netif_tx_lock -EXPORT_SYMBOL vmlinux 0xa83674b1 netdev_offload_xstats_get +EXPORT_SYMBOL vmlinux 0xa82a4689 kmalloc_trace +EXPORT_SYMBOL vmlinux 0xa82d2027 phy_write_mmd EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags EXPORT_SYMBOL vmlinux 0xa84ce9e0 crypto_aes_inv_sbox -EXPORT_SYMBOL vmlinux 0xa862e9b1 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xa85106df xattr_full_name +EXPORT_SYMBOL vmlinux 0xa863a430 kthread_destroy_worker EXPORT_SYMBOL vmlinux 0xa8676398 __tracepoint_dma_fence_emit +EXPORT_SYMBOL vmlinux 0xa868cb27 dev_get_by_name EXPORT_SYMBOL vmlinux 0xa8694ecd kblockd_schedule_work -EXPORT_SYMBOL vmlinux 0xa87a5c5c poll_freewait -EXPORT_SYMBOL vmlinux 0xa89889fe ip6_dst_alloc +EXPORT_SYMBOL vmlinux 0xa86e3956 vfs_link +EXPORT_SYMBOL vmlinux 0xa86e9447 vlan_vid_del +EXPORT_SYMBOL vmlinux 0xa88af59a tcp_sock_set_keepintvl +EXPORT_SYMBOL vmlinux 0xa88ed8cf skb_find_text EXPORT_SYMBOL vmlinux 0xa8aea9bc dqstats EXPORT_SYMBOL vmlinux 0xa8caa845 clk_bulk_put_all -EXPORT_SYMBOL vmlinux 0xa8d5eaa7 pci_msix_vec_count -EXPORT_SYMBOL vmlinux 0xa8d86471 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xa8ceb3fc __xfrm_state_delete EXPORT_SYMBOL vmlinux 0xa8db0933 do_wait_intr -EXPORT_SYMBOL vmlinux 0xa8dffe9d put_cmsg_scm_timestamping -EXPORT_SYMBOL vmlinux 0xa8e4cfcb config_group_init EXPORT_SYMBOL vmlinux 0xa8e6933a qdf2400_e44_present EXPORT_SYMBOL vmlinux 0xa8f6c843 ip_frag_ecn_table -EXPORT_SYMBOL vmlinux 0xa8ffe331 inet_proto_csum_replace_by_diff +EXPORT_SYMBOL vmlinux 0xa8f6d9e4 seq_read EXPORT_SYMBOL vmlinux 0xa90ca0de flush_rcu_work -EXPORT_SYMBOL vmlinux 0xa90ea0e8 ram_aops EXPORT_SYMBOL vmlinux 0xa916b694 strnlen EXPORT_SYMBOL vmlinux 0xa917c1de blk_limits_io_opt -EXPORT_SYMBOL vmlinux 0xa92977f9 kmem_cache_alloc_node -EXPORT_SYMBOL vmlinux 0xa930f383 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xa93d90af cpufreq_get_policy EXPORT_SYMBOL vmlinux 0xa94a09bb mem_section -EXPORT_SYMBOL vmlinux 0xa94f2f15 scsi_done -EXPORT_SYMBOL vmlinux 0xa9600de9 vfs_create_mount +EXPORT_SYMBOL vmlinux 0xa95ae6bf __mdiobus_register +EXPORT_SYMBOL vmlinux 0xa95bc34b ptp_find_pin EXPORT_SYMBOL vmlinux 0xa965ca81 reciprocal_value -EXPORT_SYMBOL vmlinux 0xa969d8f2 blk_mq_delay_kick_requeue_list -EXPORT_SYMBOL vmlinux 0xa96ce12e blk_mq_complete_request -EXPORT_SYMBOL vmlinux 0xa96f391a generic_delete_inode -EXPORT_SYMBOL vmlinux 0xa97375cd inode_dio_wait EXPORT_SYMBOL vmlinux 0xa97463c9 __siphash_aligned EXPORT_SYMBOL vmlinux 0xa976957d bitmap_remap -EXPORT_SYMBOL vmlinux 0xa99f4da8 f_setown -EXPORT_SYMBOL vmlinux 0xa9da4c69 vfs_fileattr_set -EXPORT_SYMBOL vmlinux 0xa9f05a0e jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xa9831ae5 blk_mq_unique_tag +EXPORT_SYMBOL vmlinux 0xa984e29a rtnl_kfree_skbs +EXPORT_SYMBOL vmlinux 0xa9b14cf8 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xa9e2bb7d input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0xa9ea1035 param_ops_dyndbg_classes EXPORT_SYMBOL vmlinux 0xaa00fdc0 ec_transaction -EXPORT_SYMBOL vmlinux 0xaa0a1538 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xaa036cc6 read_code EXPORT_SYMBOL vmlinux 0xaa0c318b vscnprintf -EXPORT_SYMBOL vmlinux 0xaa10ad91 inet_put_port +EXPORT_SYMBOL vmlinux 0xaa0e75d2 dcb_delrewr +EXPORT_SYMBOL vmlinux 0xaa15b619 fscrypt_free_inode EXPORT_SYMBOL vmlinux 0xaa19e4aa _kstrtol EXPORT_SYMBOL vmlinux 0xaa1b6030 dma_fence_array_next -EXPORT_SYMBOL vmlinux 0xaa1b9a43 scsi_register_driver -EXPORT_SYMBOL vmlinux 0xaa29ea55 bpf_empty_prog_array +EXPORT_SYMBOL vmlinux 0xaa217ebc pcie_capability_read_word EXPORT_SYMBOL vmlinux 0xaa341905 acpi_bios_exception +EXPORT_SYMBOL vmlinux 0xaa38df0c simple_dir_inode_operations EXPORT_SYMBOL vmlinux 0xaa3b5701 proc_dostring EXPORT_SYMBOL vmlinux 0xaa3f3ad2 complete_all -EXPORT_SYMBOL vmlinux 0xaa4b0d04 vme_irq_handler -EXPORT_SYMBOL vmlinux 0xaa60c97c scsi_device_put -EXPORT_SYMBOL vmlinux 0xaa67324c xp_set_rxq_info -EXPORT_SYMBOL vmlinux 0xaa6c8b4d tcp_sock_set_user_timeout +EXPORT_SYMBOL vmlinux 0xaa48fc22 vm_mmap +EXPORT_SYMBOL vmlinux 0xaa49307f security_socket_socketpair +EXPORT_SYMBOL vmlinux 0xaa58527e folio_mark_accessed +EXPORT_SYMBOL vmlinux 0xaa5900fc pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xaa5f32be unregister_key_type +EXPORT_SYMBOL vmlinux 0xaa6a2b2c gpiochip_irq_relres +EXPORT_SYMBOL vmlinux 0xaa6d1e01 unregister_nls EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name -EXPORT_SYMBOL vmlinux 0xaa7b80e3 phy_error -EXPORT_SYMBOL vmlinux 0xaa7c3f48 scsi_scan_target -EXPORT_SYMBOL vmlinux 0xaa7d39be skb_flow_dissect_hash +EXPORT_SYMBOL vmlinux 0xaa7424d4 crypto_kdf108_ctr_generate +EXPORT_SYMBOL vmlinux 0xaa8c400c jbd2_journal_get_write_access EXPORT_SYMBOL vmlinux 0xaa8f1b71 inet_addr_is_any -EXPORT_SYMBOL vmlinux 0xaa9129c6 mipi_dsi_dcs_get_pixel_format -EXPORT_SYMBOL vmlinux 0xaa99b167 __devm_of_mdiobus_register -EXPORT_SYMBOL vmlinux 0xaa9bff7f xfrm6_rcv_encap +EXPORT_SYMBOL vmlinux 0xaa930f1c pm860x_set_bits EXPORT_SYMBOL vmlinux 0xaaa4b9bc hchacha_block_generic -EXPORT_SYMBOL vmlinux 0xaaa54c95 tty_port_tty_get -EXPORT_SYMBOL vmlinux 0xaab8dedd netdev_class_create_file_ns -EXPORT_SYMBOL vmlinux 0xaaca3d0b inet_sk_get_local_port_range +EXPORT_SYMBOL vmlinux 0xaab58959 nf_register_net_hook +EXPORT_SYMBOL vmlinux 0xaabec617 dev_pick_tx_cpu_id EXPORT_SYMBOL vmlinux 0xaad0ae78 __bitmap_shift_right EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state EXPORT_SYMBOL vmlinux 0xaad8c7d6 default_wake_function -EXPORT_SYMBOL vmlinux 0xaae0889c dquot_operations +EXPORT_SYMBOL vmlinux 0xaae43236 d_set_fallthru EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable -EXPORT_SYMBOL vmlinux 0xaaeb8613 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xaaf44575 _dev_notice +EXPORT_SYMBOL vmlinux 0xaafc9a5f inode_dio_wait EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp -EXPORT_SYMBOL vmlinux 0xab2756b1 padata_free_shell -EXPORT_SYMBOL vmlinux 0xab29cd9a t10_pi_type3_ip +EXPORT_SYMBOL vmlinux 0xab0129bf pnp_activate_dev +EXPORT_SYMBOL vmlinux 0xab19013a put_ipc_ns +EXPORT_SYMBOL vmlinux 0xab2c001d alloc_etherdev_mqs EXPORT_SYMBOL vmlinux 0xab3697e4 irq_poll_init EXPORT_SYMBOL vmlinux 0xab3b75ea vme_dma_pattern_attribute +EXPORT_SYMBOL vmlinux 0xab3b7dc2 blk_mq_start_hw_queues +EXPORT_SYMBOL vmlinux 0xab4f6f44 tcp_recv_skb EXPORT_SYMBOL vmlinux 0xab63baa5 unregister_inetaddr_validator_notifier -EXPORT_SYMBOL vmlinux 0xab648b14 __pskb_copy_fclone +EXPORT_SYMBOL vmlinux 0xab682650 make_bad_inode EXPORT_SYMBOL vmlinux 0xab6d5b3b hex_to_bin EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options -EXPORT_SYMBOL vmlinux 0xab78e6f4 dquot_resume -EXPORT_SYMBOL vmlinux 0xab7cf6a9 of_phy_get_and_connect -EXPORT_SYMBOL vmlinux 0xab7fa9a8 page_cache_prev_miss -EXPORT_SYMBOL vmlinux 0xab7fedb8 security_binder_transfer_file -EXPORT_SYMBOL vmlinux 0xab8a4c1b kernel_sock_shutdown -EXPORT_SYMBOL vmlinux 0xaba54b74 nd_device_register -EXPORT_SYMBOL vmlinux 0xabc6a0f9 ptp_clock_register -EXPORT_SYMBOL vmlinux 0xabd95174 skb_dequeue_tail -EXPORT_SYMBOL vmlinux 0xabe10171 tty_vhangup -EXPORT_SYMBOL vmlinux 0xabe46232 skb_trim -EXPORT_SYMBOL vmlinux 0xabe82ff7 get_bitmap_from_slot +EXPORT_SYMBOL vmlinux 0xab80ea82 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xabaaff7a d_find_any_alias +EXPORT_SYMBOL vmlinux 0xabb0086c tty_hangup +EXPORT_SYMBOL vmlinux 0xabebb001 cad_pid EXPORT_SYMBOL vmlinux 0xabf32f29 utf16s_to_utf8s -EXPORT_SYMBOL vmlinux 0xabf49ddc jbd2_journal_clear_err -EXPORT_SYMBOL vmlinux 0xabfae303 setattr_prepare +EXPORT_SYMBOL vmlinux 0xac02c91e tty_port_put +EXPORT_SYMBOL vmlinux 0xac05cb2d jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xac063035 nf_ip6_checksum EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier -EXPORT_SYMBOL vmlinux 0xac1bb3cb kern_path_create +EXPORT_SYMBOL vmlinux 0xac1dd1b6 pnp_unregister_card_driver EXPORT_SYMBOL vmlinux 0xac3201b0 udp_flow_hashrnd +EXPORT_SYMBOL vmlinux 0xac4fa59a jbd2_journal_destroy EXPORT_SYMBOL vmlinux 0xac594e02 __cpu_online_mask +EXPORT_SYMBOL vmlinux 0xac5985a1 tcp_ioctl EXPORT_SYMBOL vmlinux 0xac5fcec0 in4_pton +EXPORT_SYMBOL vmlinux 0xac658726 dev_get_port_parent_id EXPORT_SYMBOL vmlinux 0xac6d9222 posix_acl_valid -EXPORT_SYMBOL vmlinux 0xac895669 iget_failed -EXPORT_SYMBOL vmlinux 0xac9866e9 tcp_seq_stop +EXPORT_SYMBOL vmlinux 0xac784b10 devm_arch_io_reserve_memtype_wc +EXPORT_SYMBOL vmlinux 0xac8c5625 of_range_to_resource +EXPORT_SYMBOL vmlinux 0xac93214e km_state_notify EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu -EXPORT_SYMBOL vmlinux 0xacc588da peernet2id -EXPORT_SYMBOL vmlinux 0xacd03f8c devfreq_update_target +EXPORT_SYMBOL vmlinux 0xacc0baf6 of_find_mipi_dsi_device_by_node +EXPORT_SYMBOL vmlinux 0xaccd5c28 configfs_depend_item EXPORT_SYMBOL vmlinux 0xacd81eb3 jbd2_inode_cache EXPORT_SYMBOL vmlinux 0xacddd806 ptp_get_vclocks_index EXPORT_SYMBOL vmlinux 0xacea8173 acpi_debug_print @@ -9693,1972 +9695,1971 @@ EXPORT_SYMBOL vmlinux 0xacf649bf audit_log_task_info EXPORT_SYMBOL vmlinux 0xacf95f6c queued_read_lock_slowpath EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex -EXPORT_SYMBOL vmlinux 0xad073bbc d_delete -EXPORT_SYMBOL vmlinux 0xad114535 __neigh_event_send -EXPORT_SYMBOL vmlinux 0xad261a49 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xad0c197a security_path_rename +EXPORT_SYMBOL vmlinux 0xad227034 nd_btt_probe EXPORT_SYMBOL vmlinux 0xad264638 __cond_resched_rwlock_write -EXPORT_SYMBOL vmlinux 0xad37d9d5 pcie_capability_clear_and_set_word_locked -EXPORT_SYMBOL vmlinux 0xad53263a devm_devfreq_register_opp_notifier -EXPORT_SYMBOL vmlinux 0xad6119cb sock_i_ino +EXPORT_SYMBOL vmlinux 0xad2bb018 __fs_parse +EXPORT_SYMBOL vmlinux 0xad3fa8e4 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xad4916e7 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xad4a5186 blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0xad4ef103 tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0xad553aa7 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xad591b8a device_get_mac_address +EXPORT_SYMBOL vmlinux 0xad64ffa8 jbd2_transaction_committed +EXPORT_SYMBOL vmlinux 0xad6856dc serio_rescan EXPORT_SYMBOL vmlinux 0xad73041f autoremove_wake_function -EXPORT_SYMBOL vmlinux 0xad82ec78 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xad77a868 tcp_connect EXPORT_SYMBOL vmlinux 0xad9536ec gen_pool_first_fit_align -EXPORT_SYMBOL vmlinux 0xada149f3 inet6_del_offload +EXPORT_SYMBOL vmlinux 0xada039d8 netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0xada285b4 filemap_fdatawrite_wbc EXPORT_SYMBOL vmlinux 0xadae6df8 blake2s_final EXPORT_SYMBOL vmlinux 0xadbdec67 override_creds -EXPORT_SYMBOL vmlinux 0xadbea1ee posix_test_lock EXPORT_SYMBOL vmlinux 0xadbeed61 mipi_dsi_packet_format_is_long +EXPORT_SYMBOL vmlinux 0xadcb7f2e fs_param_is_bool +EXPORT_SYMBOL vmlinux 0xadcc2dbf dev_change_flags EXPORT_SYMBOL vmlinux 0xadd139d4 rfs_needed -EXPORT_SYMBOL vmlinux 0xade42ff0 simple_rename +EXPORT_SYMBOL vmlinux 0xade8e75d mmc_get_card +EXPORT_SYMBOL vmlinux 0xadecf51f napi_schedule_prep +EXPORT_SYMBOL vmlinux 0xaded7982 module_put +EXPORT_SYMBOL vmlinux 0xadf1db18 simple_recursive_removal EXPORT_SYMBOL vmlinux 0xae04012c __vmalloc +EXPORT_SYMBOL vmlinux 0xae1c8609 ppp_register_channel EXPORT_SYMBOL vmlinux 0xae1d2c5e fb_modesetting_disabled +EXPORT_SYMBOL vmlinux 0xae2fccf9 ip_sock_set_pktinfo EXPORT_SYMBOL vmlinux 0xae316c11 icmpv6_err_convert -EXPORT_SYMBOL vmlinux 0xae337bcd dquot_quotactl_sysfile_ops -EXPORT_SYMBOL vmlinux 0xae4252f3 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xae367fa3 pps_event EXPORT_SYMBOL vmlinux 0xae5a04bb acpi_evaluate_dsm EXPORT_SYMBOL vmlinux 0xae66472b scsi_kmap_atomic_sg -EXPORT_SYMBOL vmlinux 0xae6b7dee consume_skb -EXPORT_SYMBOL vmlinux 0xae75969c devm_extcon_unregister_notifier -EXPORT_SYMBOL vmlinux 0xae886ec8 iw_handler_get_spy -EXPORT_SYMBOL vmlinux 0xae8da910 tcp_peek_len -EXPORT_SYMBOL vmlinux 0xae975982 param_set_hexint -EXPORT_SYMBOL vmlinux 0xae9c8c89 folio_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xae6f760e ndisc_send_skb +EXPORT_SYMBOL vmlinux 0xae6ffa4c io_uring_get_socket +EXPORT_SYMBOL vmlinux 0xae76f23e proc_create_single_data +EXPORT_SYMBOL vmlinux 0xae818c48 phy_ethtool_ksettings_get +EXPORT_SYMBOL vmlinux 0xae83b035 sdev_prefix_printk EXPORT_SYMBOL vmlinux 0xaeac049a generate_random_guid -EXPORT_SYMBOL vmlinux 0xaeafbc62 init_net EXPORT_SYMBOL vmlinux 0xaebd12f0 acpi_get_name -EXPORT_SYMBOL vmlinux 0xaedaff0b sync_file_create -EXPORT_SYMBOL vmlinux 0xaee6633d __sock_cmsg_send -EXPORT_SYMBOL vmlinux 0xaeeeae24 dev_printk_emit -EXPORT_SYMBOL vmlinux 0xaef36c82 input_mt_report_slot_state -EXPORT_SYMBOL vmlinux 0xaf06788f nvdimm_namespace_locked -EXPORT_SYMBOL vmlinux 0xaf2e4a35 scsi_vpd_tpg_id -EXPORT_SYMBOL vmlinux 0xaf332a5e scsi_target_quiesce -EXPORT_SYMBOL vmlinux 0xaf3d09df kthread_destroy_worker +EXPORT_SYMBOL vmlinux 0xaec2f92e dquot_transfer +EXPORT_SYMBOL vmlinux 0xaed6a459 setattr_prepare +EXPORT_SYMBOL vmlinux 0xaf2c707f proc_remove +EXPORT_SYMBOL vmlinux 0xaf308f20 dquot_alloc +EXPORT_SYMBOL vmlinux 0xaf30babc md_bitmap_sync_with_cluster EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level -EXPORT_SYMBOL vmlinux 0xaf547a65 filemap_release_folio -EXPORT_SYMBOL vmlinux 0xaf5581b4 blk_pre_runtime_resume -EXPORT_SYMBOL vmlinux 0xaf55ed23 unmap_mapping_range -EXPORT_SYMBOL vmlinux 0xaf607a6a pcim_enable_device -EXPORT_SYMBOL vmlinux 0xaf6d48b5 sock_ioctl_inout -EXPORT_SYMBOL vmlinux 0xaf719c69 serial8250_do_pm -EXPORT_SYMBOL vmlinux 0xaf9cef6e phy_ethtool_ksettings_set +EXPORT_SYMBOL vmlinux 0xaf4624c3 super_setup_bdi +EXPORT_SYMBOL vmlinux 0xaf55f8d8 blk_mq_complete_request +EXPORT_SYMBOL vmlinux 0xaf6f88da flow_rule_match_ipv6_addrs +EXPORT_SYMBOL vmlinux 0xaf8c9cc8 vfs_mkobj +EXPORT_SYMBOL vmlinux 0xafa19f33 of_translate_dma_region +EXPORT_SYMBOL vmlinux 0xafa39f0d amba_device_register EXPORT_SYMBOL vmlinux 0xafaa6031 _find_next_and_bit -EXPORT_SYMBOL vmlinux 0xafb842e5 inet_addr_type_table -EXPORT_SYMBOL vmlinux 0xafb8838f inet_offloads +EXPORT_SYMBOL vmlinux 0xafaef35a xfrm_lookup EXPORT_SYMBOL vmlinux 0xafc08054 dotdot_name +EXPORT_SYMBOL vmlinux 0xafc1def7 dma_sync_single_for_device +EXPORT_SYMBOL vmlinux 0xafc4bdfa dev_close +EXPORT_SYMBOL vmlinux 0xafc53b8a blk_queue_chunk_sectors EXPORT_SYMBOL vmlinux 0xafc6c68e zstd_is_error -EXPORT_SYMBOL vmlinux 0xafc7f089 input_allocate_device -EXPORT_SYMBOL vmlinux 0xafd0c621 path_is_mountpoint -EXPORT_SYMBOL vmlinux 0xb0051350 capable_wrt_inode_uidgid -EXPORT_SYMBOL vmlinux 0xb005a351 vme_slave_request +EXPORT_SYMBOL vmlinux 0xafced3ac skb_free_datagram +EXPORT_SYMBOL vmlinux 0xaffdd3bc fs_param_is_enum EXPORT_SYMBOL vmlinux 0xb01bebf9 xfrm_get_acqseq -EXPORT_SYMBOL vmlinux 0xb04d8f29 dev_get_flags -EXPORT_SYMBOL vmlinux 0xb05368ad netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0xb03e0929 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xb04971a4 fb_show_logo +EXPORT_SYMBOL vmlinux 0xb04eae87 i2c_smbus_xfer EXPORT_SYMBOL vmlinux 0xb058ca07 dim_calc_stats EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max -EXPORT_SYMBOL vmlinux 0xb0709c2d phy_get_c45_ids -EXPORT_SYMBOL vmlinux 0xb0775295 skb_get_hash_perturb +EXPORT_SYMBOL vmlinux 0xb061dac3 __mod_node_page_state +EXPORT_SYMBOL vmlinux 0xb06c5481 skb_dequeue +EXPORT_SYMBOL vmlinux 0xb09418dd generic_file_llseek_size EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0bf85dc xfrm_user_policy EXPORT_SYMBOL vmlinux 0xb0e10781 get_option -EXPORT_SYMBOL vmlinux 0xb0e1a81d blk_queue_physical_block_size EXPORT_SYMBOL vmlinux 0xb0e602eb memmove -EXPORT_SYMBOL vmlinux 0xb104c078 devfreq_unregister_notifier -EXPORT_SYMBOL vmlinux 0xb10d57f0 security_dentry_init_security -EXPORT_SYMBOL vmlinux 0xb10f9c10 xfrm6_protocol_deregister -EXPORT_SYMBOL vmlinux 0xb110b3f9 rt6_lookup -EXPORT_SYMBOL vmlinux 0xb1261237 inet_proto_csum_replace16 -EXPORT_SYMBOL vmlinux 0xb12cb5fd pci_restore_state +EXPORT_SYMBOL vmlinux 0xb0ef8cbc hash_and_copy_to_iter +EXPORT_SYMBOL vmlinux 0xb0f1b17c clk_bulk_get +EXPORT_SYMBOL vmlinux 0xb129e8b1 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xb12b8d6e jbd2_fc_begin_commit EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client -EXPORT_SYMBOL vmlinux 0xb1384c38 dquot_scan_active +EXPORT_SYMBOL vmlinux 0xb12f7f7c vfs_parse_fs_param +EXPORT_SYMBOL vmlinux 0xb12fdceb pcim_enable_device +EXPORT_SYMBOL vmlinux 0xb141a9a5 vfs_create EXPORT_SYMBOL vmlinux 0xb14ab1ef hdmi_audio_infoframe_init EXPORT_SYMBOL vmlinux 0xb14fc46a find_next_clump8 EXPORT_SYMBOL vmlinux 0xb1518e15 cancel_work -EXPORT_SYMBOL vmlinux 0xb1750c21 uart_get_baud_rate -EXPORT_SYMBOL vmlinux 0xb1837035 sync_filesystem -EXPORT_SYMBOL vmlinux 0xb19f83b4 sock_alloc_file -EXPORT_SYMBOL vmlinux 0xb1a159f2 genphy_read_lpa -EXPORT_SYMBOL vmlinux 0xb1a79e8b xfrm_parse_spi -EXPORT_SYMBOL vmlinux 0xb1bb8319 unregister_md_personality +EXPORT_SYMBOL vmlinux 0xb15573da tcp_stream_memory_free +EXPORT_SYMBOL vmlinux 0xb156e281 alloc_pages +EXPORT_SYMBOL vmlinux 0xb1639efa skb_get_hash_perturb +EXPORT_SYMBOL vmlinux 0xb1689dc0 param_ops_ulong +EXPORT_SYMBOL vmlinux 0xb1858ea6 mntget +EXPORT_SYMBOL vmlinux 0xb192ec2e inet_add_offload +EXPORT_SYMBOL vmlinux 0xb193d569 vfs_readlink +EXPORT_SYMBOL vmlinux 0xb19ad3a6 udp_seq_ops +EXPORT_SYMBOL vmlinux 0xb1a593ce scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xb1a8b9e4 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0xb1b26f6f mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xb1b2fb48 scsi_done +EXPORT_SYMBOL vmlinux 0xb1b3b44f __bforget EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress -EXPORT_SYMBOL vmlinux 0xb1d9849f rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xb1c77590 phy_free_interrupt +EXPORT_SYMBOL vmlinux 0xb1d9a3df inode_set_flags EXPORT_SYMBOL vmlinux 0xb1ddf995 jiffies_64_to_clock_t EXPORT_SYMBOL vmlinux 0xb1e01071 _raw_write_lock_bh -EXPORT_SYMBOL vmlinux 0xb1f091ee icmpv6_ndo_send -EXPORT_SYMBOL vmlinux 0xb1f89876 generic_file_llseek_size -EXPORT_SYMBOL vmlinux 0xb20204ca sock_setsockopt -EXPORT_SYMBOL vmlinux 0xb2055029 __cgroup_bpf_run_filter_sock_addr +EXPORT_SYMBOL vmlinux 0xb1fbc52b unregister_netdev EXPORT_SYMBOL vmlinux 0xb206c6b5 __init_swait_queue_head EXPORT_SYMBOL vmlinux 0xb2134798 percpu_counter_destroy -EXPORT_SYMBOL vmlinux 0xb22d33e8 of_mdiobus_phy_device_register +EXPORT_SYMBOL vmlinux 0xb21edfa7 dma_alloc_attrs +EXPORT_SYMBOL vmlinux 0xb22dd91b elv_rb_find EXPORT_SYMBOL vmlinux 0xb22e16d5 radix_tree_maybe_preload EXPORT_SYMBOL vmlinux 0xb23027c1 kstrtos16_from_user -EXPORT_SYMBOL vmlinux 0xb245f41c mipi_dsi_generic_write -EXPORT_SYMBOL vmlinux 0xb24722c2 jbd2_journal_forget -EXPORT_SYMBOL vmlinux 0xb251692b eth_commit_mac_addr_change -EXPORT_SYMBOL vmlinux 0xb254e16d pci_scan_bus -EXPORT_SYMBOL vmlinux 0xb25ce3ec truncate_inode_pages_final -EXPORT_SYMBOL vmlinux 0xb26b7c44 __blk_alloc_disk -EXPORT_SYMBOL vmlinux 0xb27451af clkdev_add -EXPORT_SYMBOL vmlinux 0xb2848e8e add_to_pipe -EXPORT_SYMBOL vmlinux 0xb29be2f3 sk_capable -EXPORT_SYMBOL vmlinux 0xb2b24c46 __dquot_free_space +EXPORT_SYMBOL vmlinux 0xb251d586 genphy_c45_eee_is_active +EXPORT_SYMBOL vmlinux 0xb25d5b29 of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xb25d97be qdisc_tree_reduce_backlog +EXPORT_SYMBOL vmlinux 0xb26a7ed8 tcp_set_rcvlowat +EXPORT_SYMBOL vmlinux 0xb28dcd53 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xb2b0b6a9 tcp_seq_start EXPORT_SYMBOL vmlinux 0xb2bcb088 acpi_current_gpe_count -EXPORT_SYMBOL vmlinux 0xb2c86cc1 blk_mq_run_hw_queues -EXPORT_SYMBOL vmlinux 0xb2f2cd7c pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xb2c6f6ab vlan_for_each +EXPORT_SYMBOL vmlinux 0xb2ccdf61 skb_flow_dissect_meta +EXPORT_SYMBOL vmlinux 0xb2da7a79 sock_release +EXPORT_SYMBOL vmlinux 0xb2da92fc mpage_writepages +EXPORT_SYMBOL vmlinux 0xb2e06a2f phy_start_aneg +EXPORT_SYMBOL vmlinux 0xb2edb8c9 of_phy_register_fixed_link EXPORT_SYMBOL vmlinux 0xb2f35c6a xxh64 EXPORT_SYMBOL vmlinux 0xb2fcb56d queue_delayed_work_on -EXPORT_SYMBOL vmlinux 0xb2fe9525 is_nd_btt EXPORT_SYMBOL vmlinux 0xb3055449 __cpu_present_mask EXPORT_SYMBOL vmlinux 0xb306ec50 __sg_alloc_table EXPORT_SYMBOL vmlinux 0xb308c97d wait_woken EXPORT_SYMBOL vmlinux 0xb30b9822 vme_master_set -EXPORT_SYMBOL vmlinux 0xb3111e0b skb_vlan_push -EXPORT_SYMBOL vmlinux 0xb316894d fscrypt_encrypt_pagecache_blocks -EXPORT_SYMBOL vmlinux 0xb3190e7d get_fs_type -EXPORT_SYMBOL vmlinux 0xb3251758 __pci_register_driver +EXPORT_SYMBOL vmlinux 0xb30cc233 _dev_printk +EXPORT_SYMBOL vmlinux 0xb321a604 pid_task EXPORT_SYMBOL vmlinux 0xb32a5973 acpi_ut_status_exit -EXPORT_SYMBOL vmlinux 0xb3462429 netdev_core_stats_alloc -EXPORT_SYMBOL vmlinux 0xb34f51b3 generic_file_open +EXPORT_SYMBOL vmlinux 0xb34063c4 generic_perform_write +EXPORT_SYMBOL vmlinux 0xb3434867 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0xb3628b17 netdev_set_num_tc +EXPORT_SYMBOL vmlinux 0xb3647261 send_sig_info EXPORT_SYMBOL vmlinux 0xb3687850 out_of_line_wait_on_bit_lock -EXPORT_SYMBOL vmlinux 0xb36daf4a tcf_idr_create -EXPORT_SYMBOL vmlinux 0xb37bc831 ethtool_rx_flow_rule_destroy +EXPORT_SYMBOL vmlinux 0xb368d1db iunique +EXPORT_SYMBOL vmlinux 0xb378421d sock_set_reuseport EXPORT_SYMBOL vmlinux 0xb386e0fd nla_reserve_64bit -EXPORT_SYMBOL vmlinux 0xb38d566c inet_csk_reqsk_queue_add -EXPORT_SYMBOL vmlinux 0xb39cc5be bdev_start_io_acct -EXPORT_SYMBOL vmlinux 0xb3a1b4e0 __mod_node_page_state -EXPORT_SYMBOL vmlinux 0xb3ab2a39 dmam_alloc_attrs -EXPORT_SYMBOL vmlinux 0xb3cc7444 request_firmware_into_buf +EXPORT_SYMBOL vmlinux 0xb3a48942 complete_request_key +EXPORT_SYMBOL vmlinux 0xb3b57d6e phy_support_sym_pause +EXPORT_SYMBOL vmlinux 0xb3c6bb44 generic_write_checks +EXPORT_SYMBOL vmlinux 0xb3ca6a88 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xb3ce8c34 security_inet_conn_request EXPORT_SYMBOL vmlinux 0xb3d2c76d scsi_hostbyte_string -EXPORT_SYMBOL vmlinux 0xb3d85c69 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xb3e62d9d mdio_find_bus EXPORT_SYMBOL vmlinux 0xb3f0de55 xz_dec_microlzma_run EXPORT_SYMBOL vmlinux 0xb3f49446 kstrtos8_from_user EXPORT_SYMBOL vmlinux 0xb3f548ad kmemdup_nul EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop EXPORT_SYMBOL vmlinux 0xb3f985a8 sg_alloc_table -EXPORT_SYMBOL vmlinux 0xb4017a1d configfs_remove_default_groups EXPORT_SYMBOL vmlinux 0xb4043948 acpi_execute_simple_method -EXPORT_SYMBOL vmlinux 0xb412c689 fscrypt_fname_disk_to_usr EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked -EXPORT_SYMBOL vmlinux 0xb42d0052 registered_fb -EXPORT_SYMBOL vmlinux 0xb44a1fce unpin_user_pages_dirty_lock +EXPORT_SYMBOL vmlinux 0xb42cb2dc clk_get +EXPORT_SYMBOL vmlinux 0xb4471cd4 security_tun_dev_attach EXPORT_SYMBOL vmlinux 0xb4577003 acpi_dev_present -EXPORT_SYMBOL vmlinux 0xb4729949 blk_mq_start_hw_queues -EXPORT_SYMBOL vmlinux 0xb47dab6e nvdimm_namespace_capacity -EXPORT_SYMBOL vmlinux 0xb47efed9 scsi_command_normalize_sense -EXPORT_SYMBOL vmlinux 0xb48b41b0 tcf_register_action -EXPORT_SYMBOL vmlinux 0xb48c562e md_bitmap_unplug +EXPORT_SYMBOL vmlinux 0xb457f861 blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0xb473c394 param_get_bool EXPORT_SYMBOL vmlinux 0xb48d4d22 security_sb_eat_lsm_opts +EXPORT_SYMBOL vmlinux 0xb48e3d46 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xb495242f nosteal_pipe_buf_ops EXPORT_SYMBOL vmlinux 0xb49601a1 sg_zero_buffer -EXPORT_SYMBOL vmlinux 0xb498bdee _copy_to_iter -EXPORT_SYMBOL vmlinux 0xb4aa7e0f iptun_encaps -EXPORT_SYMBOL vmlinux 0xb4aacb30 ndo_dflt_fdb_dump -EXPORT_SYMBOL vmlinux 0xb4acbd0c ps2_drain -EXPORT_SYMBOL vmlinux 0xb4bdbc01 nvdimm_namespace_disk_name -EXPORT_SYMBOL vmlinux 0xb4c159c4 vme_new_dma_list -EXPORT_SYMBOL vmlinux 0xb4c5bb6b blackhole_netdev -EXPORT_SYMBOL vmlinux 0xb4cc0278 serial8250_set_isa_configurator -EXPORT_SYMBOL vmlinux 0xb4d737e8 devfreq_recommended_opp -EXPORT_SYMBOL vmlinux 0xb4e0f482 inet_sock_destruct -EXPORT_SYMBOL vmlinux 0xb4e493b9 i2c_find_adapter_by_fwnode -EXPORT_SYMBOL vmlinux 0xb4f0bfaf sock_sendmsg -EXPORT_SYMBOL vmlinux 0xb4f647e5 pcibios_resource_to_bus -EXPORT_SYMBOL vmlinux 0xb5095107 of_iommu_get_resv_regions -EXPORT_SYMBOL vmlinux 0xb50ddda4 phy_register_fixup -EXPORT_SYMBOL vmlinux 0xb515f5d2 ndisc_ns_create -EXPORT_SYMBOL vmlinux 0xb51ee8cb __scsi_device_lookup -EXPORT_SYMBOL vmlinux 0xb5412374 __folio_cancel_dirty -EXPORT_SYMBOL vmlinux 0xb551e5f7 dcb_ieee_getapp_default_prio_mask -EXPORT_SYMBOL vmlinux 0xb556d378 init_pseudo -EXPORT_SYMBOL vmlinux 0xb556e02b invalidate_inode_buffers -EXPORT_SYMBOL vmlinux 0xb55b8fc8 blkdev_issue_flush -EXPORT_SYMBOL vmlinux 0xb56308e4 unix_detach_fds -EXPORT_SYMBOL vmlinux 0xb581ae94 xfrm_trans_queue_net +EXPORT_SYMBOL vmlinux 0xb4a02112 netdev_set_tc_queue +EXPORT_SYMBOL vmlinux 0xb4d1408b tcf_qevent_validate_change +EXPORT_SYMBOL vmlinux 0xb4f9d8b8 get_tree_nodev +EXPORT_SYMBOL vmlinux 0xb51fc0ac tty_name +EXPORT_SYMBOL vmlinux 0xb53c58de default_llseek +EXPORT_SYMBOL vmlinux 0xb5629881 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xb5732ebd call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0xb573cefe mmc_is_req_done +EXPORT_SYMBOL vmlinux 0xb5846748 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xb5874bbb netdev_upper_dev_link EXPORT_SYMBOL vmlinux 0xb58aeaab kernel_cpustat +EXPORT_SYMBOL vmlinux 0xb58b607c sys_fillrect EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev EXPORT_SYMBOL vmlinux 0xb5a7119c cpumask_any_distribute -EXPORT_SYMBOL vmlinux 0xb5a84fe9 tcf_idr_check_alloc EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy EXPORT_SYMBOL vmlinux 0xb5ad2956 swake_up_all -EXPORT_SYMBOL vmlinux 0xb5b377ea pps_lookup_dev EXPORT_SYMBOL vmlinux 0xb5b63711 fileattr_fill_xflags -EXPORT_SYMBOL vmlinux 0xb5d44d63 mdiobus_write +EXPORT_SYMBOL vmlinux 0xb5bbc6b9 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xb5c1eb71 of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xb5d06b7a inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xb5e49dd7 scsi_scan_target EXPORT_SYMBOL vmlinux 0xb5e73116 flush_delayed_work -EXPORT_SYMBOL vmlinux 0xb61076f0 param_array_ops -EXPORT_SYMBOL vmlinux 0xb614f935 skb_put -EXPORT_SYMBOL vmlinux 0xb6154fc2 i2c_get_adapter -EXPORT_SYMBOL vmlinux 0xb6167369 register_cdrom -EXPORT_SYMBOL vmlinux 0xb624be0d mipi_dsi_driver_unregister +EXPORT_SYMBOL vmlinux 0xb5fe914e mipi_dsi_dcs_get_pixel_format +EXPORT_SYMBOL vmlinux 0xb61ca959 folio_migrate_flags EXPORT_SYMBOL vmlinux 0xb633f115 irq_poll_enable -EXPORT_SYMBOL vmlinux 0xb64b6007 ptp_schedule_worker -EXPORT_SYMBOL vmlinux 0xb64c1221 md_bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xb63c5eae of_mdiobus_child_is_phy +EXPORT_SYMBOL vmlinux 0xb63c7181 dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0xb6426d00 mdiobus_c45_read +EXPORT_SYMBOL vmlinux 0xb645ba17 get_tree_bdev +EXPORT_SYMBOL vmlinux 0xb650d57e redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xb651cf1d bio_init_clone +EXPORT_SYMBOL vmlinux 0xb65403c4 bio_integrity_alloc EXPORT_SYMBOL vmlinux 0xb654ef65 acpi_os_read_port -EXPORT_SYMBOL vmlinux 0xb663c4ee sock_dequeue_err_skb +EXPORT_SYMBOL vmlinux 0xb66cd7bd tcp_get_cookie_sock EXPORT_SYMBOL vmlinux 0xb66e96d8 netlbl_audit_start +EXPORT_SYMBOL vmlinux 0xb67579ea dev_add_pack EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt EXPORT_SYMBOL vmlinux 0xb67fec0e uuid_parse -EXPORT_SYMBOL vmlinux 0xb6839b47 vfs_get_fsid EXPORT_SYMBOL vmlinux 0xb6867c2c lockref_put_return EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb6937db5 skb_vlan_pop +EXPORT_SYMBOL vmlinux 0xb6a66a9f __d_drop EXPORT_SYMBOL vmlinux 0xb6acaa13 phy_sfp_detach -EXPORT_SYMBOL vmlinux 0xb6adc094 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xb6bb118c __mmc_claim_host EXPORT_SYMBOL vmlinux 0xb6cb556a _find_first_and_bit EXPORT_SYMBOL vmlinux 0xb6cf91fc nla_reserve_nohdr -EXPORT_SYMBOL vmlinux 0xb6d2f0a8 i2c_smbus_read_block_data -EXPORT_SYMBOL vmlinux 0xb6d621f1 qdisc_offload_graft_helper EXPORT_SYMBOL vmlinux 0xb6e36ce2 psched_ratecfg_precompute -EXPORT_SYMBOL vmlinux 0xb6e5c33a phy_read_mmd -EXPORT_SYMBOL vmlinux 0xb6ebcdf0 d_alloc_parallel EXPORT_SYMBOL vmlinux 0xb6fde909 close_fd -EXPORT_SYMBOL vmlinux 0xb700b160 keyring_clear -EXPORT_SYMBOL vmlinux 0xb7039b4d mmc_gpio_set_cd_isr -EXPORT_SYMBOL vmlinux 0xb7061b1c neigh_seq_next -EXPORT_SYMBOL vmlinux 0xb710333a flow_indr_block_cb_alloc +EXPORT_SYMBOL vmlinux 0xb709c82d nvdimm_namespace_locked EXPORT_SYMBOL vmlinux 0xb71589f0 skip_spaces -EXPORT_SYMBOL vmlinux 0xb718db56 simple_dir_operations +EXPORT_SYMBOL vmlinux 0xb71c0cb7 posix_lock_file EXPORT_SYMBOL vmlinux 0xb71cf6f4 dma_fence_get_stub EXPORT_SYMBOL vmlinux 0xb71ed69f __hw_addr_unsync -EXPORT_SYMBOL vmlinux 0xb723b776 inet6_protos -EXPORT_SYMBOL vmlinux 0xb7495d86 xfrm_state_alloc -EXPORT_SYMBOL vmlinux 0xb7643f40 skb_pull -EXPORT_SYMBOL vmlinux 0xb77abade jbd2_fc_wait_bufs -EXPORT_SYMBOL vmlinux 0xb77b4d9e neigh_update -EXPORT_SYMBOL vmlinux 0xb77f3dae pci_set_master -EXPORT_SYMBOL vmlinux 0xb7891e51 fc_mount +EXPORT_SYMBOL vmlinux 0xb71f35ce security_sctp_sk_clone +EXPORT_SYMBOL vmlinux 0xb723605b nonseekable_open +EXPORT_SYMBOL vmlinux 0xb727dd94 proc_mkdir +EXPORT_SYMBOL vmlinux 0xb73133fc mmc_gpio_set_cd_isr +EXPORT_SYMBOL vmlinux 0xb732f6b5 phy_get_internal_delay +EXPORT_SYMBOL vmlinux 0xb734df1b fscrypt_decrypt_pagecache_blocks +EXPORT_SYMBOL vmlinux 0xb75652c5 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xb76acaa5 sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0xb76c7775 pcie_print_link_status +EXPORT_SYMBOL vmlinux 0xb77ac691 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xb78943b5 con_is_visible EXPORT_SYMBOL vmlinux 0xb78debe3 LZ4_decompress_fast_usingDict -EXPORT_SYMBOL vmlinux 0xb7a885d3 request_partial_firmware_into_buf +EXPORT_SYMBOL vmlinux 0xb7a0266e nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xb7a450d1 devm_request_resource EXPORT_SYMBOL vmlinux 0xb7a8d91b idr_get_next +EXPORT_SYMBOL vmlinux 0xb7aa9d96 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xb7b714fc ipv6_select_ident EXPORT_SYMBOL vmlinux 0xb7bc6f00 down_trylock +EXPORT_SYMBOL vmlinux 0xb7be2af6 dev_get_mac_address EXPORT_SYMBOL vmlinux 0xb7c0f443 sort -EXPORT_SYMBOL vmlinux 0xb7c0fc90 textsearch_register EXPORT_SYMBOL vmlinux 0xb7c6db70 sysctl_max_skb_frags -EXPORT_SYMBOL vmlinux 0xb7cd95dc rawv6_mh_filter_register -EXPORT_SYMBOL vmlinux 0xb7e9583f sg_alloc_append_table_from_pages -EXPORT_SYMBOL vmlinux 0xb7fa7193 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xb7c7f02d dcb_getrewr_prio_dscp_mask_map +EXPORT_SYMBOL vmlinux 0xb7e6dabe rtc_add_group +EXPORT_SYMBOL vmlinux 0xb7f1b588 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xb7f22db2 phy_set_sym_pause EXPORT_SYMBOL vmlinux 0xb80b4a18 zstd_compress_bound -EXPORT_SYMBOL vmlinux 0xb80bdef4 ip6_dst_hoplimit -EXPORT_SYMBOL vmlinux 0xb80e7728 serio_open -EXPORT_SYMBOL vmlinux 0xb812ba0a __inode_sub_bytes -EXPORT_SYMBOL vmlinux 0xb82152a8 flush_dcache_folio -EXPORT_SYMBOL vmlinux 0xb82bde67 twl6040_reg_read -EXPORT_SYMBOL vmlinux 0xb85a58b7 pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0xb811c912 is_nvdimm_bus_locked +EXPORT_SYMBOL vmlinux 0xb8139fee dcb_ieee_getapp_default_prio_mask +EXPORT_SYMBOL vmlinux 0xb81846c4 tty_register_driver +EXPORT_SYMBOL vmlinux 0xb82905a0 dev_get_flags +EXPORT_SYMBOL vmlinux 0xb82d609b tcp_time_wait +EXPORT_SYMBOL vmlinux 0xb82f76b0 ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xb84f71b5 sk_net_capable EXPORT_SYMBOL vmlinux 0xb868ac5c register_sysrq_key -EXPORT_SYMBOL vmlinux 0xb871b883 inode_update_time -EXPORT_SYMBOL vmlinux 0xb879bd80 writeback_inodes_sb_nr -EXPORT_SYMBOL vmlinux 0xb887ea62 devm_mdiobus_alloc_size -EXPORT_SYMBOL vmlinux 0xb88d9d3f posix_acl_update_mode +EXPORT_SYMBOL vmlinux 0xb8743c8b blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xb8783043 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xb885ff43 ip6_err_gen_icmpv6_unreach +EXPORT_SYMBOL vmlinux 0xb8968199 kernel_bind EXPORT_SYMBOL vmlinux 0xb89b6e6b guid_parse +EXPORT_SYMBOL vmlinux 0xb8a0284d napi_gro_frags EXPORT_SYMBOL vmlinux 0xb8b043f2 kfree_link -EXPORT_SYMBOL vmlinux 0xb8b81e44 bh_uptodate_or_lock -EXPORT_SYMBOL vmlinux 0xb8cad138 __skb_try_recv_datagram -EXPORT_SYMBOL vmlinux 0xb8e47af7 ip6_output -EXPORT_SYMBOL vmlinux 0xb8e48da5 vlan_dev_vlan_id -EXPORT_SYMBOL vmlinux 0xb8eae03e neigh_destroy -EXPORT_SYMBOL vmlinux 0xb9024b78 remove_arg_zero -EXPORT_SYMBOL vmlinux 0xb90f8bc0 pci_request_irq +EXPORT_SYMBOL vmlinux 0xb8bbee17 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xb8cb83ed __folio_put +EXPORT_SYMBOL vmlinux 0xb8d277cf flow_indr_dev_unregister +EXPORT_SYMBOL vmlinux 0xb8fa25b2 __nd_driver_register EXPORT_SYMBOL vmlinux 0xb911bb58 minmax_running_max EXPORT_SYMBOL vmlinux 0xb916e565 mtree_erase +EXPORT_SYMBOL vmlinux 0xb91942cf devm_pci_remap_cfgspace EXPORT_SYMBOL vmlinux 0xb920db49 acpi_tb_install_and_load_table -EXPORT_SYMBOL vmlinux 0xb92def7d qdisc_offload_dump_helper -EXPORT_SYMBOL vmlinux 0xb938f21b unregister_nls +EXPORT_SYMBOL vmlinux 0xb92584ef netif_tx_unlock +EXPORT_SYMBOL vmlinux 0xb9376c8c pci_ep_cfs_add_epf_group +EXPORT_SYMBOL vmlinux 0xb93d5cb9 done_path_create EXPORT_SYMBOL vmlinux 0xb94339c4 qdisc_put_stab -EXPORT_SYMBOL vmlinux 0xb9438f06 genphy_read_mmd_unsupported EXPORT_SYMBOL vmlinux 0xb9478d90 hdmi_drm_infoframe_unpack_only -EXPORT_SYMBOL vmlinux 0xb965dd67 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xb948ec97 file_path EXPORT_SYMBOL vmlinux 0xb96c4f9e audit_log_subject_context EXPORT_SYMBOL vmlinux 0xb97220ff bitmap_parse -EXPORT_SYMBOL vmlinux 0xb996c09a sock_set_rcvbuf -EXPORT_SYMBOL vmlinux 0xb9b0c283 folio_end_private_2 -EXPORT_SYMBOL vmlinux 0xb9b74bbf __traceiter_mmap_lock_released -EXPORT_SYMBOL vmlinux 0xb9c6c7fb blk_start_plug -EXPORT_SYMBOL vmlinux 0xb9e13d88 __netlink_kernel_create -EXPORT_SYMBOL vmlinux 0xb9e3cb80 page_symlink_inode_operations -EXPORT_SYMBOL vmlinux 0xb9e77d69 dma_fence_describe +EXPORT_SYMBOL vmlinux 0xb97d1aea mdio_device_register +EXPORT_SYMBOL vmlinux 0xb989e39d __serio_register_driver +EXPORT_SYMBOL vmlinux 0xb99c4b45 mdiobus_register_device EXPORT_SYMBOL vmlinux 0xb9e8e2cc in6addr_sitelocal_allrouters -EXPORT_SYMBOL vmlinux 0xb9ec9ef4 generic_buffers_fsync_noflush -EXPORT_SYMBOL vmlinux 0xb9fce034 sockopt_release_sock -EXPORT_SYMBOL vmlinux 0xb9ff1e96 configfs_register_subsystem EXPORT_SYMBOL vmlinux 0xba0676e2 vm_zone_stat EXPORT_SYMBOL vmlinux 0xba1008c8 __crc32c_le -EXPORT_SYMBOL vmlinux 0xba140e0e ethtool_virtdev_set_link_ksettings -EXPORT_SYMBOL vmlinux 0xba244bb8 xfrm6_input_addr -EXPORT_SYMBOL vmlinux 0xba2b15d4 scsicam_bios_param -EXPORT_SYMBOL vmlinux 0xba2f6a31 ip_options_compile -EXPORT_SYMBOL vmlinux 0xba31ce40 blk_rq_init EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy -EXPORT_SYMBOL vmlinux 0xba4ff871 i2c_smbus_write_word_data EXPORT_SYMBOL vmlinux 0xba55d23e crc7_be -EXPORT_SYMBOL vmlinux 0xba60d03f __skb_flow_dissect -EXPORT_SYMBOL vmlinux 0xba8296c2 blk_mq_free_tag_set -EXPORT_SYMBOL vmlinux 0xba8521b8 sk_ioctl -EXPORT_SYMBOL vmlinux 0xbaad4f99 sched_autogroup_detach -EXPORT_SYMBOL vmlinux 0xbab3138d folio_mark_accessed -EXPORT_SYMBOL vmlinux 0xbac648ba kthread_create_worker -EXPORT_SYMBOL vmlinux 0xbac76fd9 mem_cgroup_from_task +EXPORT_SYMBOL vmlinux 0xba5bceca key_reject_and_link +EXPORT_SYMBOL vmlinux 0xba76608f of_find_net_device_by_node +EXPORT_SYMBOL vmlinux 0xba84297a pci_write_config_word +EXPORT_SYMBOL vmlinux 0xba9a30b4 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xbaa92a37 mmc_gpiod_request_cd_irq +EXPORT_SYMBOL vmlinux 0xbaaddd1d dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0xbab43f6a folio_end_writeback EXPORT_SYMBOL vmlinux 0xbac8aeea sg_nents_for_len -EXPORT_SYMBOL vmlinux 0xbae9ccff tcp_time_wait +EXPORT_SYMBOL vmlinux 0xbadc4249 sock_no_mmap EXPORT_SYMBOL vmlinux 0xbaeb3956 xa_destroy -EXPORT_SYMBOL vmlinux 0xbaeeb1b3 lease_get_mtime EXPORT_SYMBOL vmlinux 0xbafa632e __do_once_sleepable_start EXPORT_SYMBOL vmlinux 0xbb0540aa zlib_inflateReset EXPORT_SYMBOL vmlinux 0xbb1bac24 acpi_unregister_debugger +EXPORT_SYMBOL vmlinux 0xbb23e32f configfs_register_group EXPORT_SYMBOL vmlinux 0xbb24f607 init_cdrom_command +EXPORT_SYMBOL vmlinux 0xbb28cd36 path_put +EXPORT_SYMBOL vmlinux 0xbb4b03ed file_check_and_advance_wb_err EXPORT_SYMBOL vmlinux 0xbb4f4766 simple_write_to_buffer -EXPORT_SYMBOL vmlinux 0xbb55a197 xsk_get_pool_from_qid -EXPORT_SYMBOL vmlinux 0xbb64c1ad pm860x_bulk_read -EXPORT_SYMBOL vmlinux 0xbb776c3c input_copy_abs -EXPORT_SYMBOL vmlinux 0xbb7f07bf blk_mq_run_hw_queue +EXPORT_SYMBOL vmlinux 0xbb58fb05 simple_transaction_set +EXPORT_SYMBOL vmlinux 0xbb79b38c twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0xbb8b98c4 dst_destroy EXPORT_SYMBOL vmlinux 0xbbb2ffba __var_waitqueue -EXPORT_SYMBOL vmlinux 0xbbb679ac __sk_mem_reclaim -EXPORT_SYMBOL vmlinux 0xbbc207b3 ip6tun_encaps -EXPORT_SYMBOL vmlinux 0xbbc26778 ptp_clock_unregister -EXPORT_SYMBOL vmlinux 0xbbc5f083 skb_checksum -EXPORT_SYMBOL vmlinux 0xbbd1eebc may_umount -EXPORT_SYMBOL vmlinux 0xbbe2e3da of_cpu_node_to_id EXPORT_SYMBOL vmlinux 0xbbe3c493 gen_pool_fixed_alloc -EXPORT_SYMBOL vmlinux 0xbbeda1c8 of_range_to_resource -EXPORT_SYMBOL vmlinux 0xbbee631a cdrom_check_events -EXPORT_SYMBOL vmlinux 0xbbf50c6f xfrm4_protocol_register +EXPORT_SYMBOL vmlinux 0xbc0ce9ef skb_eth_gso_segment +EXPORT_SYMBOL vmlinux 0xbc132259 dev_addr_mod +EXPORT_SYMBOL vmlinux 0xbc1523b1 mmc_can_trim +EXPORT_SYMBOL vmlinux 0xbc168a65 pci_disable_msi EXPORT_SYMBOL vmlinux 0xbc24db67 dma_fence_signal_locked -EXPORT_SYMBOL vmlinux 0xbc2a03d6 dma_sync_single_for_device -EXPORT_SYMBOL vmlinux 0xbc43f947 shrink_dcache_parent -EXPORT_SYMBOL vmlinux 0xbc846aa6 config_item_get_unless_zero -EXPORT_SYMBOL vmlinux 0xbc9d5a45 ethtool_op_get_ts_info -EXPORT_SYMBOL vmlinux 0xbca9fee0 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xbc2fb367 vm_insert_page +EXPORT_SYMBOL vmlinux 0xbc34d246 __invalidate_device +EXPORT_SYMBOL vmlinux 0xbc53f8ac fs_context_for_reconfigure +EXPORT_SYMBOL vmlinux 0xbc61476a block_write_full_page +EXPORT_SYMBOL vmlinux 0xbc67384d mmc_of_parse_voltage +EXPORT_SYMBOL vmlinux 0xbc7de49a skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0xbc822819 elv_rb_add +EXPORT_SYMBOL vmlinux 0xbc94e26e devm_memunmap EXPORT_SYMBOL vmlinux 0xbcab6ee6 sscanf EXPORT_SYMBOL vmlinux 0xbcb36fe4 hugetlb_optimize_vmemmap_key -EXPORT_SYMBOL vmlinux 0xbcb661ec tty_flip_buffer_push -EXPORT_SYMBOL vmlinux 0xbccda170 sock_create_kern EXPORT_SYMBOL vmlinux 0xbce6b7cf gen_pool_for_each_chunk -EXPORT_SYMBOL vmlinux 0xbcf04450 uart_update_timeout -EXPORT_SYMBOL vmlinux 0xbd0ed75e pci_bus_read_dev_vendor_id -EXPORT_SYMBOL vmlinux 0xbd289ef6 acpi_dev_hid_uid_match -EXPORT_SYMBOL vmlinux 0xbd41b568 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xbcfc23e7 bdi_put +EXPORT_SYMBOL vmlinux 0xbd281bfb tty_port_hangup +EXPORT_SYMBOL vmlinux 0xbd355c59 fiemap_prep +EXPORT_SYMBOL vmlinux 0xbd37522d phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0xbd37ba69 tls_server_hello_psk EXPORT_SYMBOL vmlinux 0xbd462b55 __kfifo_init -EXPORT_SYMBOL vmlinux 0xbd51de7a sock_kzfree_s -EXPORT_SYMBOL vmlinux 0xbd56a1af irq_set_chip +EXPORT_SYMBOL vmlinux 0xbd4a8456 of_get_property +EXPORT_SYMBOL vmlinux 0xbd58a610 end_buffer_write_sync EXPORT_SYMBOL vmlinux 0xbd6841d4 crc16 +EXPORT_SYMBOL vmlinux 0xbd7a3253 mark_buffer_dirty EXPORT_SYMBOL vmlinux 0xbd7f0215 _raw_spin_lock_bh -EXPORT_SYMBOL vmlinux 0xbdd99d24 cdc_parse_cdc_header +EXPORT_SYMBOL vmlinux 0xbd7fe413 mmc_retune_unpause +EXPORT_SYMBOL vmlinux 0xbd86ae1f tcf_idr_check_alloc +EXPORT_SYMBOL vmlinux 0xbd9448ca vme_dma_list_add +EXPORT_SYMBOL vmlinux 0xbd9d762d tso_start +EXPORT_SYMBOL vmlinux 0xbdb34330 dm_get_device +EXPORT_SYMBOL vmlinux 0xbddfac93 get_user_pages_unlocked EXPORT_SYMBOL vmlinux 0xbdecb1f3 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xbe010536 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0xbe15edb7 __dev_get_by_flags +EXPORT_SYMBOL vmlinux 0xbe1ba3c3 console_force_preferred_locked EXPORT_SYMBOL vmlinux 0xbe1c7b9f dma_fence_array_first -EXPORT_SYMBOL vmlinux 0xbe408650 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xbe368f6d end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xbe433686 __vlan_find_dev_deep_rcu EXPORT_SYMBOL vmlinux 0xbe49252c acpi_os_write_port EXPORT_SYMBOL vmlinux 0xbe4eb6ed secure_dccpv6_sequence_number -EXPORT_SYMBOL vmlinux 0xbe58ff60 devm_ioremap_wc +EXPORT_SYMBOL vmlinux 0xbe52164b would_dump EXPORT_SYMBOL vmlinux 0xbe5a24e9 xxh32_copy_state +EXPORT_SYMBOL vmlinux 0xbe60feda block_read_full_folio +EXPORT_SYMBOL vmlinux 0xbe64264e netdev_info +EXPORT_SYMBOL vmlinux 0xbe662d91 sock_no_shutdown EXPORT_SYMBOL vmlinux 0xbe6a8c96 zstd_cctx_workspace_bound +EXPORT_SYMBOL vmlinux 0xbe821f15 netdev_offload_xstats_enable EXPORT_SYMBOL vmlinux 0xbe978845 gen_pool_dma_alloc -EXPORT_SYMBOL vmlinux 0xbeb4b0be reuseport_stop_listen_sock -EXPORT_SYMBOL vmlinux 0xbeb8efce sk_stop_timer -EXPORT_SYMBOL vmlinux 0xbebac7f5 vme_irq_generate -EXPORT_SYMBOL vmlinux 0xbef2a1f4 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0xbebf8317 dev_pm_opp_register_notifier +EXPORT_SYMBOL vmlinux 0xbec0a5af security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xbecfab74 dm_mq_kick_requeue_list +EXPORT_SYMBOL vmlinux 0xbed3b54a inet_offloads +EXPORT_SYMBOL vmlinux 0xbee8e282 skb_vlan_untag EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule -EXPORT_SYMBOL vmlinux 0xbef86d74 dump_skip EXPORT_SYMBOL vmlinux 0xbefbd410 mtree_insert -EXPORT_SYMBOL vmlinux 0xbefd0bd1 tso_build_data -EXPORT_SYMBOL vmlinux 0xbf009b93 vfs_parse_fs_string -EXPORT_SYMBOL vmlinux 0xbf23f2a7 get_mem_cgroup_from_mm -EXPORT_SYMBOL vmlinux 0xbf2d78e8 devfreq_monitor_resume -EXPORT_SYMBOL vmlinux 0xbf4ff617 device_match_acpi_dev -EXPORT_SYMBOL vmlinux 0xbf504801 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xbf164b2e udp_seq_next +EXPORT_SYMBOL vmlinux 0xbf3379ec phy_trigger_machine +EXPORT_SYMBOL vmlinux 0xbf3fc1dd dev_mc_add EXPORT_SYMBOL vmlinux 0xbf59c419 posix_acl_init -EXPORT_SYMBOL vmlinux 0xbf70ab12 __udp_disconnect -EXPORT_SYMBOL vmlinux 0xbf72c8f8 skb_abort_seq_read -EXPORT_SYMBOL vmlinux 0xbf82b001 netpoll_setup -EXPORT_SYMBOL vmlinux 0xbfa4abba find_vma_intersection +EXPORT_SYMBOL vmlinux 0xbf5ca7de consume_skb +EXPORT_SYMBOL vmlinux 0xbf66f2aa inet_sk_set_state +EXPORT_SYMBOL vmlinux 0xbf686d0b napi_get_frags +EXPORT_SYMBOL vmlinux 0xbfaae28f param_set_ullong EXPORT_SYMBOL vmlinux 0xbfae9e07 utf8_validate -EXPORT_SYMBOL vmlinux 0xbfbfe31f get_tree_bdev -EXPORT_SYMBOL vmlinux 0xbfc56eb2 get_tree_keyed -EXPORT_SYMBOL vmlinux 0xbfc5e1e4 pci_write_config_dword -EXPORT_SYMBOL vmlinux 0xbfc79b96 sock_no_linger -EXPORT_SYMBOL vmlinux 0xbfd64ab5 skb_split +EXPORT_SYMBOL vmlinux 0xbfc28a44 fb_find_mode +EXPORT_SYMBOL vmlinux 0xbfd1af32 __sk_receive_skb EXPORT_SYMBOL vmlinux 0xbfdf2392 xa_clear_mark -EXPORT_SYMBOL vmlinux 0xbfebae7d phy_support_sym_pause -EXPORT_SYMBOL vmlinux 0xbff8694e sget -EXPORT_SYMBOL vmlinux 0xc0048eea __skb_get_hash -EXPORT_SYMBOL vmlinux 0xc0298a6e device_match_acpi_handle +EXPORT_SYMBOL vmlinux 0xbfdfd2d5 kthread_associate_blkcg +EXPORT_SYMBOL vmlinux 0xbff41967 tcf_qevent_destroy +EXPORT_SYMBOL vmlinux 0xc02fe90c gro_cells_receive +EXPORT_SYMBOL vmlinux 0xc0327492 napi_build_skb EXPORT_SYMBOL vmlinux 0xc0364007 fault_in_writeable -EXPORT_SYMBOL vmlinux 0xc0432423 fb_class +EXPORT_SYMBOL vmlinux 0xc05dff25 input_set_capability EXPORT_SYMBOL vmlinux 0xc060c3f4 page_pool_ethtool_stats_get -EXPORT_SYMBOL vmlinux 0xc064bd49 d_find_any_alias +EXPORT_SYMBOL vmlinux 0xc0702e1e __cgroup_bpf_run_filter_sock_ops EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked -EXPORT_SYMBOL vmlinux 0xc077acc7 ipv6_getsockopt -EXPORT_SYMBOL vmlinux 0xc0789ebb md_write_start -EXPORT_SYMBOL vmlinux 0xc078d125 udp6_seq_ops EXPORT_SYMBOL vmlinux 0xc078d22c zstd_init_cstream EXPORT_SYMBOL vmlinux 0xc07b0863 fb_destroy_modedb -EXPORT_SYMBOL vmlinux 0xc09254e3 mmc_spi_put_pdata -EXPORT_SYMBOL vmlinux 0xc09bf425 of_phy_is_fixed_link -EXPORT_SYMBOL vmlinux 0xc0a61b15 of_n_size_cells -EXPORT_SYMBOL vmlinux 0xc0b7354e dcb_getrewr -EXPORT_SYMBOL vmlinux 0xc0b7df01 dma_free_attrs -EXPORT_SYMBOL vmlinux 0xc0d80ffe nf_log_set -EXPORT_SYMBOL vmlinux 0xc0dd1baf scsi_dma_map -EXPORT_SYMBOL vmlinux 0xc0e3a74c uart_get_divisor -EXPORT_SYMBOL vmlinux 0xc0f2e0d2 pci_assign_resource -EXPORT_SYMBOL vmlinux 0xc0f3fe36 md_reload_sb -EXPORT_SYMBOL vmlinux 0xc0f789c4 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xc097494f devm_devfreq_register_notifier +EXPORT_SYMBOL vmlinux 0xc09c3267 vme_irq_generate +EXPORT_SYMBOL vmlinux 0xc0a66f16 mdiobus_is_registered_device +EXPORT_SYMBOL vmlinux 0xc0cccaf6 ram_aops +EXPORT_SYMBOL vmlinux 0xc0e77e40 i2c_smbus_read_byte_data EXPORT_SYMBOL vmlinux 0xc0fe9137 __printk_cpu_sync_put EXPORT_SYMBOL vmlinux 0xc0ff12fb nla_strdup EXPORT_SYMBOL vmlinux 0xc0ff21c1 input_get_new_minor -EXPORT_SYMBOL vmlinux 0xc1002451 pnp_get_resource -EXPORT_SYMBOL vmlinux 0xc10a8386 skb_ensure_writable -EXPORT_SYMBOL vmlinux 0xc1152942 noop_qdisc -EXPORT_SYMBOL vmlinux 0xc116fdeb pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xc1135536 console_stop EXPORT_SYMBOL vmlinux 0xc1198662 __warn_flushing_systemwide_wq -EXPORT_SYMBOL vmlinux 0xc11f33e6 netdev_adjacent_change_prepare -EXPORT_SYMBOL vmlinux 0xc1304e00 ipmr_rule_default -EXPORT_SYMBOL vmlinux 0xc132c48e xsk_set_tx_need_wakeup -EXPORT_SYMBOL vmlinux 0xc144b061 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xc12a0d14 tcf_exts_init_ex EXPORT_SYMBOL vmlinux 0xc14dc168 acpi_get_data EXPORT_SYMBOL vmlinux 0xc1514a3b free_irq +EXPORT_SYMBOL vmlinux 0xc15db2b1 get_inode_acl EXPORT_SYMBOL vmlinux 0xc16be39d iter_div_u64_rem -EXPORT_SYMBOL vmlinux 0xc18d6840 mipi_dsi_driver_register_full -EXPORT_SYMBOL vmlinux 0xc19b12a7 rawv6_mh_filter_unregister -EXPORT_SYMBOL vmlinux 0xc19bb448 eth_validate_addr -EXPORT_SYMBOL vmlinux 0xc19bdf86 rtc_add_group -EXPORT_SYMBOL vmlinux 0xc1b71480 phy_ethtool_set_wol -EXPORT_SYMBOL vmlinux 0xc1bd8fab neigh_seq_start +EXPORT_SYMBOL vmlinux 0xc17b1339 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xc199520e devfreq_register_opp_notifier +EXPORT_SYMBOL vmlinux 0xc19aa9e8 blk_set_runtime_active +EXPORT_SYMBOL vmlinux 0xc1b17900 dma_set_coherent_mask +EXPORT_SYMBOL vmlinux 0xc1c2f8f2 of_phy_deregister_fixed_link EXPORT_SYMBOL vmlinux 0xc1d8cfaf __fdget EXPORT_SYMBOL vmlinux 0xc1e5df8b riscv_cached_mimpid +EXPORT_SYMBOL vmlinux 0xc1e7f492 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0xc1efd6c4 fasync_helper +EXPORT_SYMBOL vmlinux 0xc1fd2dda unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xc20a281b tcf_qevent_init +EXPORT_SYMBOL vmlinux 0xc2207793 security_inet_conn_established +EXPORT_SYMBOL vmlinux 0xc226396b param_ops_byte EXPORT_SYMBOL vmlinux 0xc22f6693 call_fib_notifier -EXPORT_SYMBOL vmlinux 0xc240083f simple_recursive_removal +EXPORT_SYMBOL vmlinux 0xc2311b14 kmem_cache_create_usercopy +EXPORT_SYMBOL vmlinux 0xc242d2a6 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xc242e01d sock_pfree +EXPORT_SYMBOL vmlinux 0xc24960c5 ip_mc_check_igmp +EXPORT_SYMBOL vmlinux 0xc24a9164 mmc_gpiod_request_ro EXPORT_SYMBOL vmlinux 0xc250590f strnlen_user -EXPORT_SYMBOL vmlinux 0xc2699381 i2c_del_driver -EXPORT_SYMBOL vmlinux 0xc26c12d9 fwnode_graph_parse_endpoint -EXPORT_SYMBOL vmlinux 0xc281aea4 __tcf_em_tree_match -EXPORT_SYMBOL vmlinux 0xc286864c put_fs_context -EXPORT_SYMBOL vmlinux 0xc29399a8 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xc27c9478 dev_get_stats EXPORT_SYMBOL vmlinux 0xc29bf967 strspn +EXPORT_SYMBOL vmlinux 0xc2af12b1 uart_resume_port EXPORT_SYMBOL vmlinux 0xc2afaead lockref_put_not_zero -EXPORT_SYMBOL vmlinux 0xc2b21cf1 phy_resume +EXPORT_SYMBOL vmlinux 0xc2b44ce5 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0xc2c2d42d update_devfreq EXPORT_SYMBOL vmlinux 0xc2cb862e sgl_alloc_order +EXPORT_SYMBOL vmlinux 0xc2cbf0eb vm_map_pages_zero +EXPORT_SYMBOL vmlinux 0xc2cd1809 unlock_rename EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices EXPORT_SYMBOL vmlinux 0xc2f52274 __lshrti3 EXPORT_SYMBOL vmlinux 0xc3055d20 usleep_range_state EXPORT_SYMBOL vmlinux 0xc306a09a __percpu_counter_sum -EXPORT_SYMBOL vmlinux 0xc30e25e5 ip6_fraglist_init EXPORT_SYMBOL vmlinux 0xc310b981 strnstr +EXPORT_SYMBOL vmlinux 0xc311ba28 phy_read_mmd EXPORT_SYMBOL vmlinux 0xc31db0ce is_vmalloc_addr +EXPORT_SYMBOL vmlinux 0xc31e64c1 dma_sync_sg_for_cpu EXPORT_SYMBOL vmlinux 0xc32c71af register_inetaddr_validator_notifier -EXPORT_SYMBOL vmlinux 0xc348bba6 dev_mc_sync -EXPORT_SYMBOL vmlinux 0xc348d3ce mdiobus_unregister_device +EXPORT_SYMBOL vmlinux 0xc352c096 of_get_mac_address_nvmem +EXPORT_SYMBOL vmlinux 0xc353e9f0 page_pool_destroy EXPORT_SYMBOL vmlinux 0xc359fb65 abort -EXPORT_SYMBOL vmlinux 0xc37e0496 netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0xc35f0d6c devm_request_any_context_irq EXPORT_SYMBOL vmlinux 0xc37f9c6e cpufreq_update_policy -EXPORT_SYMBOL vmlinux 0xc38a3010 copy_splice_read EXPORT_SYMBOL vmlinux 0xc38c83b8 mod_timer -EXPORT_SYMBOL vmlinux 0xc38c92a5 filemap_fdatawait_keep_errors -EXPORT_SYMBOL vmlinux 0xc39ce35e kernel_accept -EXPORT_SYMBOL vmlinux 0xc3b52195 inet_sk_rebuild_header -EXPORT_SYMBOL vmlinux 0xc3b5a59d iput -EXPORT_SYMBOL vmlinux 0xc3b9672c bdi_unregister -EXPORT_SYMBOL vmlinux 0xc3c02ee8 dev_deactivate -EXPORT_SYMBOL vmlinux 0xc3ccd254 xfrm_policy_walk_done -EXPORT_SYMBOL vmlinux 0xc3d21865 input_set_max_poll_interval -EXPORT_SYMBOL vmlinux 0xc3f6ae92 napi_disable -EXPORT_SYMBOL vmlinux 0xc40ff86d blk_put_queue +EXPORT_SYMBOL vmlinux 0xc3ac0b64 write_cache_pages +EXPORT_SYMBOL vmlinux 0xc3b0b2fc devfreq_update_status +EXPORT_SYMBOL vmlinux 0xc3fd66db vme_lm_request EXPORT_SYMBOL vmlinux 0xc4212ab9 qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xc427d852 __xfrm_decode_session EXPORT_SYMBOL vmlinux 0xc42dcb99 acpi_evaluate_ost -EXPORT_SYMBOL vmlinux 0xc43658af __skb_pad +EXPORT_SYMBOL vmlinux 0xc4347a7a d_prune_aliases +EXPORT_SYMBOL vmlinux 0xc438bef2 km_report +EXPORT_SYMBOL vmlinux 0xc439f1a2 path_is_under +EXPORT_SYMBOL vmlinux 0xc4470a42 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xc4499eea padata_alloc_shell EXPORT_SYMBOL vmlinux 0xc452212c utf8_strncasecmp -EXPORT_SYMBOL vmlinux 0xc457bba5 vme_dma_request -EXPORT_SYMBOL vmlinux 0xc467113a dev_pre_changeaddr_notify -EXPORT_SYMBOL vmlinux 0xc4732256 netif_inherit_tso_max +EXPORT_SYMBOL vmlinux 0xc45791ed udp_seq_stop +EXPORT_SYMBOL vmlinux 0xc45fea4b input_set_poll_interval +EXPORT_SYMBOL vmlinux 0xc46f0d8c processors +EXPORT_SYMBOL vmlinux 0xc46ff818 __mod_lruvec_page_state +EXPORT_SYMBOL vmlinux 0xc4744b09 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xc475591d netif_carrier_off EXPORT_SYMBOL vmlinux 0xc4777aa9 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xc47fad9d scsi_target_resume +EXPORT_SYMBOL vmlinux 0xc4976a31 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xc4aa61ae __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xc4acf4dc xfrm_state_unregister_afinfo EXPORT_SYMBOL vmlinux 0xc4ae915e arch_touch_nmi_watchdog EXPORT_SYMBOL vmlinux 0xc4b3b943 kernel_map -EXPORT_SYMBOL vmlinux 0xc4b4c1d0 genphy_c37_read_status -EXPORT_SYMBOL vmlinux 0xc4b5c1ec amba_request_regions -EXPORT_SYMBOL vmlinux 0xc4c16807 security_socket_getpeersec_dgram -EXPORT_SYMBOL vmlinux 0xc4e2b150 devm_request_threaded_irq -EXPORT_SYMBOL vmlinux 0xc4fcd7a4 ip6_frag_next -EXPORT_SYMBOL vmlinux 0xc50bd7d9 sock_no_socketpair -EXPORT_SYMBOL vmlinux 0xc51646b3 filemap_fdatawrite_range -EXPORT_SYMBOL vmlinux 0xc5262989 bio_uninit -EXPORT_SYMBOL vmlinux 0xc537e9d1 dcb_setrewr -EXPORT_SYMBOL vmlinux 0xc540f9be ip_frag_next +EXPORT_SYMBOL vmlinux 0xc4b9017c rdmacg_try_charge +EXPORT_SYMBOL vmlinux 0xc4c958a2 __zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0xc503f7a2 simple_transaction_release +EXPORT_SYMBOL vmlinux 0xc50d1bb9 arp_xmit +EXPORT_SYMBOL vmlinux 0xc50d53f2 request_firmware +EXPORT_SYMBOL vmlinux 0xc50f1511 pmem_should_map_pages +EXPORT_SYMBOL vmlinux 0xc52612b9 simple_rename +EXPORT_SYMBOL vmlinux 0xc539f0ae md_bitmap_startwrite EXPORT_SYMBOL vmlinux 0xc544aea5 kobject_get +EXPORT_SYMBOL vmlinux 0xc55fb2e2 adjust_managed_page_count EXPORT_SYMBOL vmlinux 0xc56c3609 xz_dec_microlzma_reset EXPORT_SYMBOL vmlinux 0xc58d5a90 kstrtoll_from_user -EXPORT_SYMBOL vmlinux 0xc5919123 netif_rx EXPORT_SYMBOL vmlinux 0xc599a772 security_xfrm_state_delete -EXPORT_SYMBOL vmlinux 0xc5aea7a8 generic_file_read_iter -EXPORT_SYMBOL vmlinux 0xc5b212be netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0xc5a10a23 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xc5b34362 scsi_device_put +EXPORT_SYMBOL vmlinux 0xc5b58873 sock_init_data_uid EXPORT_SYMBOL vmlinux 0xc5b6f236 queue_work_on -EXPORT_SYMBOL vmlinux 0xc5bad67f mmc_run_bkops -EXPORT_SYMBOL vmlinux 0xc5d7f53c path_has_submounts -EXPORT_SYMBOL vmlinux 0xc5d90203 param_ops_long -EXPORT_SYMBOL vmlinux 0xc5db8d15 node_data -EXPORT_SYMBOL vmlinux 0xc5dc7279 vfs_iter_write +EXPORT_SYMBOL vmlinux 0xc5d24c75 keyring_search +EXPORT_SYMBOL vmlinux 0xc5d70233 jbd2_journal_errno EXPORT_SYMBOL vmlinux 0xc5e74216 release_resource -EXPORT_SYMBOL vmlinux 0xc5e87ed5 module_layout -EXPORT_SYMBOL vmlinux 0xc5efb0d8 ipv6_chk_addr_and_flags -EXPORT_SYMBOL vmlinux 0xc5fb795c tc_setup_cb_replace +EXPORT_SYMBOL vmlinux 0xc6017c02 folio_unlock EXPORT_SYMBOL vmlinux 0xc60d0620 __num_online_cpus -EXPORT_SYMBOL vmlinux 0xc6166bac input_register_handle +EXPORT_SYMBOL vmlinux 0xc61a63ba msi_desc_to_pci_dev +EXPORT_SYMBOL vmlinux 0xc62b0726 vfs_get_link +EXPORT_SYMBOL vmlinux 0xc62fdca0 touchscreen_parse_properties EXPORT_SYMBOL vmlinux 0xc631580a console_unlock EXPORT_SYMBOL vmlinux 0xc633d82d phy_unregister_fixup +EXPORT_SYMBOL vmlinux 0xc63ae738 serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0xc63d121d fscrypt_encrypt_block_inplace +EXPORT_SYMBOL vmlinux 0xc65406ab param_get_string +EXPORT_SYMBOL vmlinux 0xc65b7508 of_parse_phandle_with_args_map EXPORT_SYMBOL vmlinux 0xc65e4e97 secure_dccp_sequence_number EXPORT_SYMBOL vmlinux 0xc666a132 crc_t10dif -EXPORT_SYMBOL vmlinux 0xc6857bbb genphy_read_abilities -EXPORT_SYMBOL vmlinux 0xc68b57bb cdrom_mode_select -EXPORT_SYMBOL vmlinux 0xc6a055ce __traceiter_module_get -EXPORT_SYMBOL vmlinux 0xc6bb0ed7 tcf_block_put -EXPORT_SYMBOL vmlinux 0xc6bba831 acpi_device_set_power -EXPORT_SYMBOL vmlinux 0xc6c4dd54 ipv6_select_ident +EXPORT_SYMBOL vmlinux 0xc6735082 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xc683bc82 watchdog_register_governor +EXPORT_SYMBOL vmlinux 0xc69a5ea4 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0xc69be05d simple_nosetlease +EXPORT_SYMBOL vmlinux 0xc69e9e71 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0xc6b5de5b __bio_advance +EXPORT_SYMBOL vmlinux 0xc6bb072f iov_iter_kvec EXPORT_SYMBOL vmlinux 0xc6cb465a __kfifo_max_r EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable EXPORT_SYMBOL vmlinux 0xc6d09aa9 release_firmware -EXPORT_SYMBOL vmlinux 0xc6da38ac scsi_print_sense_hdr -EXPORT_SYMBOL vmlinux 0xc6ea67de generic_cont_expand_simple EXPORT_SYMBOL vmlinux 0xc6f3b3fc refcount_dec_if_one EXPORT_SYMBOL vmlinux 0xc6f46339 init_timer_key -EXPORT_SYMBOL vmlinux 0xc7060945 mmc_release_host EXPORT_SYMBOL vmlinux 0xc708f1fe ec_write -EXPORT_SYMBOL vmlinux 0xc716b7b7 ip_getsockopt +EXPORT_SYMBOL vmlinux 0xc713a9f2 import_iovec EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port -EXPORT_SYMBOL vmlinux 0xc72ad6e9 alloc_etherdev_mqs -EXPORT_SYMBOL vmlinux 0xc732b9d3 dev_mc_init -EXPORT_SYMBOL vmlinux 0xc75b94f6 folio_migrate_flags -EXPORT_SYMBOL vmlinux 0xc77b0d55 skb_flow_dissect_tunnel_info +EXPORT_SYMBOL vmlinux 0xc72910ec sk_stream_error +EXPORT_SYMBOL vmlinux 0xc747a25d ptp_clock_unregister +EXPORT_SYMBOL vmlinux 0xc775b017 ip_tunnel_header_ops +EXPORT_SYMBOL vmlinux 0xc77ca236 register_mii_tstamp_controller +EXPORT_SYMBOL vmlinux 0xc77d04f6 __inc_node_page_state EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain -EXPORT_SYMBOL vmlinux 0xc78e2fe8 simple_release_fs -EXPORT_SYMBOL vmlinux 0xc7997e35 io_uring_get_socket -EXPORT_SYMBOL vmlinux 0xc79a5d5d __skb_gro_checksum_complete +EXPORT_SYMBOL vmlinux 0xc7954bb5 con_copy_unimap EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock EXPORT_SYMBOL vmlinux 0xc7ae1903 security_lock_kernel_down EXPORT_SYMBOL vmlinux 0xc7b2824c tcp_hashinfo -EXPORT_SYMBOL vmlinux 0xc7b5352c napi_complete_done +EXPORT_SYMBOL vmlinux 0xc7bbc48f dev_getbyhwaddr_rcu EXPORT_SYMBOL vmlinux 0xc7c1107a LZ4_decompress_safe -EXPORT_SYMBOL vmlinux 0xc7cab03a mmc_retune_unpause +EXPORT_SYMBOL vmlinux 0xc7d03ae3 xfrm_policy_walk_done EXPORT_SYMBOL vmlinux 0xc7d0d868 regset_get -EXPORT_SYMBOL vmlinux 0xc7d4ae73 fscrypt_decrypt_bio -EXPORT_SYMBOL vmlinux 0xc7d96bd8 __phy_write_mmd -EXPORT_SYMBOL vmlinux 0xc7da9e4e amba_driver_unregister -EXPORT_SYMBOL vmlinux 0xc7e8c05c __napi_schedule_irqoff -EXPORT_SYMBOL vmlinux 0xc7f5be23 vmf_insert_pfn_prot -EXPORT_SYMBOL vmlinux 0xc823fb1b bio_alloc_clone +EXPORT_SYMBOL vmlinux 0xc7e304c7 sock_queue_rcv_skb_reason +EXPORT_SYMBOL vmlinux 0xc80b0330 dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0xc81fbc90 fwnode_get_phy_id +EXPORT_SYMBOL vmlinux 0xc82bea7b generic_key_instantiate +EXPORT_SYMBOL vmlinux 0xc82e46ef mipi_dsi_dcs_write_buffer EXPORT_SYMBOL vmlinux 0xc838c3f5 __ashrti3 EXPORT_SYMBOL vmlinux 0xc839afed hdmi_audio_infoframe_check EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu EXPORT_SYMBOL vmlinux 0xc84bee0f radix_tree_lookup -EXPORT_SYMBOL vmlinux 0xc852ba70 tty_port_alloc_xmit_buf -EXPORT_SYMBOL vmlinux 0xc85a05c2 pci_bus_read_config_byte -EXPORT_SYMBOL vmlinux 0xc85d4811 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xc8520c73 inet_frag_reasm_finish EXPORT_SYMBOL vmlinux 0xc86406da proc_dointvec_userhz_jiffies -EXPORT_SYMBOL vmlinux 0xc8651807 build_skb -EXPORT_SYMBOL vmlinux 0xc867a2d4 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xc86b50e1 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xc8712214 locks_lock_inode_wait EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes -EXPORT_SYMBOL vmlinux 0xc8759a39 folio_add_lru -EXPORT_SYMBOL vmlinux 0xc87f89c6 set_anon_super +EXPORT_SYMBOL vmlinux 0xc8773531 qdisc_hash_del +EXPORT_SYMBOL vmlinux 0xc87cde27 kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xc8823b3a dev_driver_string EXPORT_SYMBOL vmlinux 0xc8827b75 sysctl_vals -EXPORT_SYMBOL vmlinux 0xc88922b3 qdisc_warn_nonwc -EXPORT_SYMBOL vmlinux 0xc88b33ac pcix_set_mmrbc EXPORT_SYMBOL vmlinux 0xc890c008 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xc89a1012 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xc89dda0a napi_consume_skb +EXPORT_SYMBOL vmlinux 0xc8a347f4 dquot_load_quota_sb EXPORT_SYMBOL vmlinux 0xc8a91f5b cpumask_local_spread -EXPORT_SYMBOL vmlinux 0xc8b97b35 mmc_alloc_host -EXPORT_SYMBOL vmlinux 0xc8c3f3e1 devm_devfreq_remove_device +EXPORT_SYMBOL vmlinux 0xc8bfa0ac discard_new_inode +EXPORT_SYMBOL vmlinux 0xc8c0cacd crypto_sha512_finup EXPORT_SYMBOL vmlinux 0xc8c85086 sg_free_table -EXPORT_SYMBOL vmlinux 0xc8d9dfd2 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xc8c9106a unpin_user_pages +EXPORT_SYMBOL vmlinux 0xc8ca59c5 inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0xc8dbcfc6 pnp_unregister_driver EXPORT_SYMBOL vmlinux 0xc8dcc62a krealloc -EXPORT_SYMBOL vmlinux 0xc8dced0f mdio_device_reset +EXPORT_SYMBOL vmlinux 0xc8e5d7e3 key_revoke EXPORT_SYMBOL vmlinux 0xc8e75588 wait_for_completion_io -EXPORT_SYMBOL vmlinux 0xc8f758b2 inet_protos -EXPORT_SYMBOL vmlinux 0xc90f631e register_md_cluster_operations -EXPORT_SYMBOL vmlinux 0xc9157d51 scsi_partsize +EXPORT_SYMBOL vmlinux 0xc8ebddc4 d_make_root +EXPORT_SYMBOL vmlinux 0xc8f1f9df dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xc8f93149 security_skb_classify_flow +EXPORT_SYMBOL vmlinux 0xc91070bb writeback_inodes_sb EXPORT_SYMBOL vmlinux 0xc916dd46 __SCK__tp_func_kmalloc -EXPORT_SYMBOL vmlinux 0xc9180e60 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xc93caccb neigh_update EXPORT_SYMBOL vmlinux 0xc93e8461 acpi_get_event_resources -EXPORT_SYMBOL vmlinux 0xc9625425 starget_for_each_device EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters EXPORT_SYMBOL vmlinux 0xc972449f mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0xc979176e udp6_seq_ops +EXPORT_SYMBOL vmlinux 0xc97c40dc bd_abort_claiming +EXPORT_SYMBOL vmlinux 0xc97cfd30 get_vm_area EXPORT_SYMBOL vmlinux 0xc9822234 clk_register_clkdev EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev -EXPORT_SYMBOL vmlinux 0xc9b73325 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xc9d324b5 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xc9d7ac5c crypto_sha1_finup EXPORT_SYMBOL vmlinux 0xc9df055a xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xc9ed0307 fb_io_write +EXPORT_SYMBOL vmlinux 0xc9ee38de devfreq_add_device EXPORT_SYMBOL vmlinux 0xca0cae60 mempool_destroy -EXPORT_SYMBOL vmlinux 0xca100528 xp_dma_sync_for_device_slow EXPORT_SYMBOL vmlinux 0xca1648d4 zstd_decompress_dctx EXPORT_SYMBOL vmlinux 0xca17ac01 _find_next_andnot_bit -EXPORT_SYMBOL vmlinux 0xca1b0367 __xfrm_dst_lookup -EXPORT_SYMBOL vmlinux 0xca1d83f2 tcp_read_done +EXPORT_SYMBOL vmlinux 0xca18b397 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xca191138 flow_rule_match_eth_addrs EXPORT_SYMBOL vmlinux 0xca21ebd3 bitmap_free -EXPORT_SYMBOL vmlinux 0xca2e2fd4 blk_mq_start_stopped_hw_queues EXPORT_SYMBOL vmlinux 0xca431c05 wake_bit_function -EXPORT_SYMBOL vmlinux 0xca447b2d jbd2_journal_flush -EXPORT_SYMBOL vmlinux 0xca688709 of_io_request_and_map -EXPORT_SYMBOL vmlinux 0xca6e90bb xfrm_input_unregister_afinfo -EXPORT_SYMBOL vmlinux 0xca7aa694 nvdimm_bus_lock +EXPORT_SYMBOL vmlinux 0xca54ca4a bio_kmalloc +EXPORT_SYMBOL vmlinux 0xca5894a4 vfs_mkdir +EXPORT_SYMBOL vmlinux 0xca66c7a3 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xca752295 blk_sync_queue +EXPORT_SYMBOL vmlinux 0xca7bba6e tcf_exts_dump EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next -EXPORT_SYMBOL vmlinux 0xcab6c2b3 audit_log +EXPORT_SYMBOL vmlinux 0xcaa39fbc folio_create_empty_buffers +EXPORT_SYMBOL vmlinux 0xcab8ecff of_mdiobus_phy_device_register EXPORT_SYMBOL vmlinux 0xcab9e34c refcount_dec_and_lock_irqsave EXPORT_SYMBOL vmlinux 0xcabb1df5 kset_register -EXPORT_SYMBOL vmlinux 0xcac16d23 km_new_mapping +EXPORT_SYMBOL vmlinux 0xcac040ed neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xcacbe427 scsi_target_quiesce EXPORT_SYMBOL vmlinux 0xcad1aca8 acpi_exception +EXPORT_SYMBOL vmlinux 0xcad4e438 devfreq_unregister_notifier EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu -EXPORT_SYMBOL vmlinux 0xcb1590ea grab_cache_page_write_begin -EXPORT_SYMBOL vmlinux 0xcb1e3b45 blkdev_issue_secure_erase -EXPORT_SYMBOL vmlinux 0xcb252083 ethtool_aggregate_mac_stats +EXPORT_SYMBOL vmlinux 0xcb219f7b configfs_unregister_default_group +EXPORT_SYMBOL vmlinux 0xcb2f8f4e phy_device_register EXPORT_SYMBOL vmlinux 0xcb3ae215 call_blocking_lsm_notifier -EXPORT_SYMBOL vmlinux 0xcb45a5d7 seq_printf -EXPORT_SYMBOL vmlinux 0xcb681e61 pmem_should_map_pages -EXPORT_SYMBOL vmlinux 0xcb6e61fb aperture_remove_conflicting_pci_devices +EXPORT_SYMBOL vmlinux 0xcb3b0f47 param_set_long +EXPORT_SYMBOL vmlinux 0xcb411dde kernel_read +EXPORT_SYMBOL vmlinux 0xcb466103 unregister_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0xcb4ed949 __inode_sub_bytes EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power -EXPORT_SYMBOL vmlinux 0xcb9ad863 phy_sfp_probe -EXPORT_SYMBOL vmlinux 0xcb9e237f kfree_skb_reason +EXPORT_SYMBOL vmlinux 0xcb78edb0 kernel_sendmsg_locked +EXPORT_SYMBOL vmlinux 0xcb7f5ca8 __dev_set_mtu +EXPORT_SYMBOL vmlinux 0xcb839741 fwnode_graph_parse_endpoint +EXPORT_SYMBOL vmlinux 0xcba4ba1c skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xcba7d840 mipi_dsi_detach +EXPORT_SYMBOL vmlinux 0xcbad0922 ndo_dflt_fdb_del EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context -EXPORT_SYMBOL vmlinux 0xcbe305a1 param_ops_charp +EXPORT_SYMBOL vmlinux 0xcbc521ef set_posix_acl +EXPORT_SYMBOL vmlinux 0xcbd402a5 vme_master_mmap +EXPORT_SYMBOL vmlinux 0xcbd4572f mod_node_page_state +EXPORT_SYMBOL vmlinux 0xcbd65d07 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xcbe03eb0 skb_ensure_writable +EXPORT_SYMBOL vmlinux 0xcbe41e3d tc_cleanup_offload_action EXPORT_SYMBOL vmlinux 0xcbfb33e4 init_opal_dev -EXPORT_SYMBOL vmlinux 0xcc11e02a fbcon_update_vcs +EXPORT_SYMBOL vmlinux 0xcbfcccde __module_put_and_kthread_exit +EXPORT_SYMBOL vmlinux 0xcc013aee security_sctp_assoc_request +EXPORT_SYMBOL vmlinux 0xcc02e66d jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xcc198096 input_get_poll_interval +EXPORT_SYMBOL vmlinux 0xcc1b8edb splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xcc1f1d1a of_device_register EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port EXPORT_SYMBOL vmlinux 0xcc328a5c reservation_ww_class EXPORT_SYMBOL vmlinux 0xcc392eea kmalloc_size_roundup -EXPORT_SYMBOL vmlinux 0xcc3e1500 bio_copy_data EXPORT_SYMBOL vmlinux 0xcc411ed1 ptp_convert_timestamp EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc51225e folio_redirty_for_writepage EXPORT_SYMBOL vmlinux 0xcc5d22d9 can_do_mlock -EXPORT_SYMBOL vmlinux 0xcc634fb2 bio_reset +EXPORT_SYMBOL vmlinux 0xcc741238 pci_find_bus +EXPORT_SYMBOL vmlinux 0xcc786ac2 dev_set_mac_address_user +EXPORT_SYMBOL vmlinux 0xcc82bfb8 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xcc88870e pci_enable_device +EXPORT_SYMBOL vmlinux 0xcc8c68df key_unlink EXPORT_SYMBOL vmlinux 0xcc9301e4 _raw_read_lock -EXPORT_SYMBOL vmlinux 0xcca4d5fa mark_info_dirty -EXPORT_SYMBOL vmlinux 0xcca8a916 xfrm_policy_hash_rebuild -EXPORT_SYMBOL vmlinux 0xccab1de0 mdiobus_c45_read_nested -EXPORT_SYMBOL vmlinux 0xccb73d6d vme_register_driver -EXPORT_SYMBOL vmlinux 0xccbdb8a8 get_ipc_ns_exported -EXPORT_SYMBOL vmlinux 0xcce6336c xfrm4_rcv_encap -EXPORT_SYMBOL vmlinux 0xccf0f6b7 vfs_path_lookup -EXPORT_SYMBOL vmlinux 0xccfa825e unregister_netdev +EXPORT_SYMBOL vmlinux 0xcc9d93f6 sk_free +EXPORT_SYMBOL vmlinux 0xcca4be4e task_work_add +EXPORT_SYMBOL vmlinux 0xccc13141 component_match_add_typed +EXPORT_SYMBOL vmlinux 0xccd877fa inet_frag_reasm_prepare +EXPORT_SYMBOL vmlinux 0xcce34f68 freezing_slow_path +EXPORT_SYMBOL vmlinux 0xccebb61f skb_expand_head EXPORT_SYMBOL vmlinux 0xccfb9e07 dst_default_metrics EXPORT_SYMBOL vmlinux 0xccfd2ebc scsi_dev_info_list_del_keyed EXPORT_SYMBOL vmlinux 0xcd01b8e6 acpi_attach_data -EXPORT_SYMBOL vmlinux 0xcd25d06f pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xcd044586 free_inode_nonrcu EXPORT_SYMBOL vmlinux 0xcd279169 nla_find -EXPORT_SYMBOL vmlinux 0xcd307099 fasync_helper -EXPORT_SYMBOL vmlinux 0xcd5aa683 mdiobus_c45_read -EXPORT_SYMBOL vmlinux 0xcd621964 netdev_get_by_name -EXPORT_SYMBOL vmlinux 0xcd692fdd pci_bus_set_ops -EXPORT_SYMBOL vmlinux 0xcd6af136 xfrm_policy_register_afinfo -EXPORT_SYMBOL vmlinux 0xcd6f6cf3 ip_queue_xmit -EXPORT_SYMBOL vmlinux 0xcd827119 tcp_sock_set_keepidle +EXPORT_SYMBOL vmlinux 0xcd4875f3 folio_mapping +EXPORT_SYMBOL vmlinux 0xcd5fb773 uart_match_port +EXPORT_SYMBOL vmlinux 0xcd622c28 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xcd6bff13 pcim_iounmap +EXPORT_SYMBOL vmlinux 0xcd8cd7a9 pci_bus_read_config_dword EXPORT_SYMBOL vmlinux 0xcd8ce890 acpi_format_exception -EXPORT_SYMBOL vmlinux 0xcd93b24d pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xcd91a828 security_inode_init_security EXPORT_SYMBOL vmlinux 0xcd9c13a3 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xcda0fe4c devm_pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0xcdae195a param_ops_hexint +EXPORT_SYMBOL vmlinux 0xcdbb9bd0 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xcdbc6218 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xcdbdbf3a ptp_clock_index +EXPORT_SYMBOL vmlinux 0xcdbeb864 dquot_drop EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcdcd3ae7 da903x_query_status +EXPORT_SYMBOL vmlinux 0xcdd3e38c register_qdisc +EXPORT_SYMBOL vmlinux 0xcdd8fd90 neigh_carrier_down +EXPORT_SYMBOL vmlinux 0xcddbc141 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xcddbe05e freeze_bdev EXPORT_SYMBOL vmlinux 0xcde77bcc free_opal_dev -EXPORT_SYMBOL vmlinux 0xcdfd92c3 mdiobus_c45_write -EXPORT_SYMBOL vmlinux 0xce03b16d bio_split_to_limits -EXPORT_SYMBOL vmlinux 0xce145863 param_get_dyndbg_classes -EXPORT_SYMBOL vmlinux 0xce1ba6e3 netdev_get_xmit_slave +EXPORT_SYMBOL vmlinux 0xcdfd772b ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xcdff144e blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xce1a839a dev_uc_unsync EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake -EXPORT_SYMBOL vmlinux 0xce342c35 vga_set_legacy_decoding -EXPORT_SYMBOL vmlinux 0xce39455e ip6_err_gen_icmpv6_unreach -EXPORT_SYMBOL vmlinux 0xce3ca9b4 dst_init +EXPORT_SYMBOL vmlinux 0xce35ec12 i2c_smbus_write_block_data EXPORT_SYMBOL vmlinux 0xce3ece10 percpu_counter_add_batch -EXPORT_SYMBOL vmlinux 0xce4455d0 no_seek_end_llseek_size EXPORT_SYMBOL vmlinux 0xce4cdb8e fb_find_best_mode EXPORT_SYMBOL vmlinux 0xce4e47b6 __kfifo_skip_r -EXPORT_SYMBOL vmlinux 0xce4fda9e dev_set_mac_address -EXPORT_SYMBOL vmlinux 0xce50d73f sock_set_sndtimeo -EXPORT_SYMBOL vmlinux 0xce54ca0a mdiobus_register_device EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize EXPORT_SYMBOL vmlinux 0xce5c0b90 gen_pool_first_fit_order_align -EXPORT_SYMBOL vmlinux 0xce5c85b9 phy_attach -EXPORT_SYMBOL vmlinux 0xce683fb2 ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0xce5c430e pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0xce5f4b77 inode_update_time +EXPORT_SYMBOL vmlinux 0xce611bd9 skb_eth_pop +EXPORT_SYMBOL vmlinux 0xce74bb20 I_BDEV EXPORT_SYMBOL vmlinux 0xce76c257 acpi_get_irq_routing_table -EXPORT_SYMBOL vmlinux 0xce8b72ee skb_eth_pop +EXPORT_SYMBOL vmlinux 0xce76cb15 __serio_register_port +EXPORT_SYMBOL vmlinux 0xce770037 mark_page_accessed +EXPORT_SYMBOL vmlinux 0xce9033ba __mdiobus_write +EXPORT_SYMBOL vmlinux 0xce939848 flow_rule_match_enc_ip EXPORT_SYMBOL vmlinux 0xceab0311 strchrnul -EXPORT_SYMBOL vmlinux 0xceb0905c tcp_v4_md5_lookup EXPORT_SYMBOL vmlinux 0xceb3b3ee mempool_init EXPORT_SYMBOL vmlinux 0xceb4af5b cpumask_any_and_distribute -EXPORT_SYMBOL vmlinux 0xced9b268 bdev_end_io_acct -EXPORT_SYMBOL vmlinux 0xceedd3be d_obtain_alias +EXPORT_SYMBOL vmlinux 0xceb9e809 page_pool_put_defragged_page +EXPORT_SYMBOL vmlinux 0xcedd6d08 jbd2_journal_inode_ranged_wait +EXPORT_SYMBOL vmlinux 0xcee6d1a1 reuseport_select_sock EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf017d6d pci_read_config_byte +EXPORT_SYMBOL vmlinux 0xcf21f2b8 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xcf263736 flow_rule_match_control +EXPORT_SYMBOL vmlinux 0xcf26c944 sock_no_accept EXPORT_SYMBOL vmlinux 0xcf2ea86b __tracepoint_mmap_lock_acquire_returned EXPORT_SYMBOL vmlinux 0xcf3b69b3 netdev_stats_to_stats64 -EXPORT_SYMBOL vmlinux 0xcf516974 inet6_add_protocol -EXPORT_SYMBOL vmlinux 0xcf615c19 dma_sync_wait -EXPORT_SYMBOL vmlinux 0xcf883412 vfs_iocb_iter_write -EXPORT_SYMBOL vmlinux 0xcf9b0475 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xcf4598c8 clkdev_add +EXPORT_SYMBOL vmlinux 0xcf4ff905 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xcf652f65 gro_find_receive_by_type EXPORT_SYMBOL vmlinux 0xcf9b558d touchscreen_set_mt_pos -EXPORT_SYMBOL vmlinux 0xcfc29113 phy_get_pause +EXPORT_SYMBOL vmlinux 0xcf9cb4f8 touch_atime +EXPORT_SYMBOL vmlinux 0xcfbe0364 uart_suspend_port +EXPORT_SYMBOL vmlinux 0xcfcdd6c6 inode_needs_sync EXPORT_SYMBOL vmlinux 0xcfd884a8 __hsiphash_unaligned -EXPORT_SYMBOL vmlinux 0xcfdbf815 write_cache_pages -EXPORT_SYMBOL vmlinux 0xcfe451dc vc_cons -EXPORT_SYMBOL vmlinux 0xcff211b6 pci_pme_active +EXPORT_SYMBOL vmlinux 0xcfef7cf1 d_alloc_parallel +EXPORT_SYMBOL vmlinux 0xcff362dd dm_kobject_release +EXPORT_SYMBOL vmlinux 0xcff3d373 param_set_hexint +EXPORT_SYMBOL vmlinux 0xcff4f8c4 lookup_one EXPORT_SYMBOL vmlinux 0xcffafcd4 posix_acl_to_xattr -EXPORT_SYMBOL vmlinux 0xcfff414e bio_integrity_prep -EXPORT_SYMBOL vmlinux 0xd00e64b8 tcf_block_netif_keep_dst -EXPORT_SYMBOL vmlinux 0xd01033d9 dquot_get_dqblk -EXPORT_SYMBOL vmlinux 0xd0140123 sock_from_file -EXPORT_SYMBOL vmlinux 0xd02edd9c bprm_change_interp -EXPORT_SYMBOL vmlinux 0xd0390abd simple_getattr -EXPORT_SYMBOL vmlinux 0xd03974a2 netpoll_cleanup -EXPORT_SYMBOL vmlinux 0xd04b44eb ping_prot +EXPORT_SYMBOL vmlinux 0xd0261596 of_platform_device_create +EXPORT_SYMBOL vmlinux 0xd03266ad __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0xd04775ac tcf_action_exec EXPORT_SYMBOL vmlinux 0xd04c1a64 sysctl_devconf_inherit_init_net -EXPORT_SYMBOL vmlinux 0xd05baa26 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0xd0536e72 iget_locked +EXPORT_SYMBOL vmlinux 0xd055b54a tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xd0576b42 param_ops_bint EXPORT_SYMBOL vmlinux 0xd0654aba woken_wake_function -EXPORT_SYMBOL vmlinux 0xd06c5845 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xd07005c4 kernel_accept +EXPORT_SYMBOL vmlinux 0xd0735249 follow_down EXPORT_SYMBOL vmlinux 0xd0760fc0 kfree_sensitive -EXPORT_SYMBOL vmlinux 0xd0970c35 cad_pid -EXPORT_SYMBOL vmlinux 0xd0b4a6d4 devm_gen_pool_create +EXPORT_SYMBOL vmlinux 0xd07989f0 phy_init_hw +EXPORT_SYMBOL vmlinux 0xd07fadea __netlink_dump_start +EXPORT_SYMBOL vmlinux 0xd085dc17 mipi_dsi_dcs_set_tear_scanline +EXPORT_SYMBOL vmlinux 0xd091bf59 of_cpu_device_node_get +EXPORT_SYMBOL vmlinux 0xd098ad7e of_match_device +EXPORT_SYMBOL vmlinux 0xd0a76738 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0xd0a7af7d sock_set_sndtimeo EXPORT_SYMBOL vmlinux 0xd0b74705 acpi_install_interface -EXPORT_SYMBOL vmlinux 0xd0dae19c nf_hook_slow -EXPORT_SYMBOL vmlinux 0xd0dc1bdf copy_page_from_iter_atomic -EXPORT_SYMBOL vmlinux 0xd0ee11fb md_bitmap_free +EXPORT_SYMBOL vmlinux 0xd0b76451 netdev_change_features +EXPORT_SYMBOL vmlinux 0xd0d0f112 pci_iounmap +EXPORT_SYMBOL vmlinux 0xd0df40e5 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xd0e99973 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xd0f72ea2 mdiobus_setup_mdiodev_from_board_info +EXPORT_SYMBOL vmlinux 0xd1021eca pci_read_config_word EXPORT_SYMBOL vmlinux 0xd1023624 dma_fence_array_ops -EXPORT_SYMBOL vmlinux 0xd1176ab8 vme_unregister_driver -EXPORT_SYMBOL vmlinux 0xd133b629 kill_block_super +EXPORT_SYMBOL vmlinux 0xd116fc2e scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xd11e0ef1 udp_gro_receive +EXPORT_SYMBOL vmlinux 0xd12446f0 devm_pci_remap_cfg_resource EXPORT_SYMBOL vmlinux 0xd1363cc1 ucs2_strsize -EXPORT_SYMBOL vmlinux 0xd1385887 pci_write_config_byte -EXPORT_SYMBOL vmlinux 0xd13f0d69 mipi_dsi_set_maximum_return_packet_size +EXPORT_SYMBOL vmlinux 0xd146eec6 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xd1597c7b fifo_set_limit EXPORT_SYMBOL vmlinux 0xd15cb96e nla_put -EXPORT_SYMBOL vmlinux 0xd194103a sock_no_bind +EXPORT_SYMBOL vmlinux 0xd17edb9c kthread_bind +EXPORT_SYMBOL vmlinux 0xd17ee05f input_match_device_id +EXPORT_SYMBOL vmlinux 0xd193c1e8 config_item_put EXPORT_SYMBOL vmlinux 0xd194ddf9 acpi_gpe_count -EXPORT_SYMBOL vmlinux 0xd1b4e193 udp_sendmsg -EXPORT_SYMBOL vmlinux 0xd1b8353e scsi_report_opcode -EXPORT_SYMBOL vmlinux 0xd1bf51d4 datagram_poll -EXPORT_SYMBOL vmlinux 0xd1cee394 put_cmsg_scm_timestamping64 -EXPORT_SYMBOL vmlinux 0xd1d6ec46 key_move EXPORT_SYMBOL vmlinux 0xd1d87e92 scsi_mlreturn_string EXPORT_SYMBOL vmlinux 0xd1d8de64 mutex_lock_interruptible -EXPORT_SYMBOL vmlinux 0xd1e3f1c0 xfrm6_rcv_spi -EXPORT_SYMBOL vmlinux 0xd1e99efa t10_pi_type1_ip -EXPORT_SYMBOL vmlinux 0xd1f6eb97 devm_devfreq_register_notifier -EXPORT_SYMBOL vmlinux 0xd2110171 dev_mc_del EXPORT_SYMBOL vmlinux 0xd212e427 neigh_proc_dointvec_jiffies -EXPORT_SYMBOL vmlinux 0xd2133599 kthread_create_on_cpu -EXPORT_SYMBOL vmlinux 0xd21845a6 user_path_at_empty -EXPORT_SYMBOL vmlinux 0xd21c324a tcf_idr_create_from_flags -EXPORT_SYMBOL vmlinux 0xd2252bbd i2c_transfer_buffer_flags +EXPORT_SYMBOL vmlinux 0xd2190c20 kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0xd21ac2cb skb_put +EXPORT_SYMBOL vmlinux 0xd2341de6 dquot_destroy EXPORT_SYMBOL vmlinux 0xd24108d4 rfkill_soft_blocked +EXPORT_SYMBOL vmlinux 0xd2468f62 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xd2487ea4 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xd24b3dda vm_insert_pages +EXPORT_SYMBOL vmlinux 0xd2521871 flow_rule_match_enc_ipv4_addrs +EXPORT_SYMBOL vmlinux 0xd253d50e ata_print_version EXPORT_SYMBOL vmlinux 0xd2582f8f __SCK__tp_func_mmap_lock_acquire_returned -EXPORT_SYMBOL vmlinux 0xd259d414 param_set_ushort +EXPORT_SYMBOL vmlinux 0xd25aa2e0 simple_unlink +EXPORT_SYMBOL vmlinux 0xd25b6a2b genphy_c37_read_status EXPORT_SYMBOL vmlinux 0xd25bc5d4 csum_tcpudp_nofold EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook -EXPORT_SYMBOL vmlinux 0xd25f4f15 filemap_get_folios -EXPORT_SYMBOL vmlinux 0xd264849a dm_register_target EXPORT_SYMBOL vmlinux 0xd265b984 dma_fence_chain_find_seqno -EXPORT_SYMBOL vmlinux 0xd2788b9e devfreq_add_device EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged EXPORT_SYMBOL vmlinux 0xd27d0b65 sbi_send_ipi EXPORT_SYMBOL vmlinux 0xd2800691 nf_conntrack_destroy -EXPORT_SYMBOL vmlinux 0xd28e2ccf netif_schedule_queue -EXPORT_SYMBOL vmlinux 0xd29db77e pci_enable_device -EXPORT_SYMBOL vmlinux 0xd2a462fd dev_uc_init +EXPORT_SYMBOL vmlinux 0xd298705a skb_ext_add EXPORT_SYMBOL vmlinux 0xd2ae08a8 __traceiter_dma_fence_signaled EXPORT_SYMBOL vmlinux 0xd2b46a3c vme_unregister_error_handler +EXPORT_SYMBOL vmlinux 0xd2d2e95d filemap_alloc_folio EXPORT_SYMBOL vmlinux 0xd2d88506 netdev_offload_xstats_report_used EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier EXPORT_SYMBOL vmlinux 0xd2e2a9d0 hdmi_spd_infoframe_pack_only -EXPORT_SYMBOL vmlinux 0xd2e56b59 fault_in_iov_iter_readable +EXPORT_SYMBOL vmlinux 0xd2e47c74 mipi_dsi_generic_read +EXPORT_SYMBOL vmlinux 0xd2e71330 no_seek_end_llseek_size EXPORT_SYMBOL vmlinux 0xd2ea49b8 acpi_leave_sleep_state_prep +EXPORT_SYMBOL vmlinux 0xd30d4388 phy_get_c45_ids EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible -EXPORT_SYMBOL vmlinux 0xd3205cd7 ipv6_dev_mc_inc -EXPORT_SYMBOL vmlinux 0xd32a23a0 pci_scan_slot -EXPORT_SYMBOL vmlinux 0xd340ed92 twl6040_get_sysclk -EXPORT_SYMBOL vmlinux 0xd3552a8a ptp_cancel_worker_sync +EXPORT_SYMBOL vmlinux 0xd322d9b3 mmc_retune_pause +EXPORT_SYMBOL vmlinux 0xd3307301 inc_node_page_state EXPORT_SYMBOL vmlinux 0xd35a6d31 mempool_kmalloc EXPORT_SYMBOL vmlinux 0xd36dc10c get_random_u32 EXPORT_SYMBOL vmlinux 0xd36e3d59 prandom_bytes_state -EXPORT_SYMBOL vmlinux 0xd3806994 flow_rule_match_l2tpv3 -EXPORT_SYMBOL vmlinux 0xd386932f nvdimm_check_and_set_ro +EXPORT_SYMBOL vmlinux 0xd3779edc blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xd381c270 generic_cont_expand_simple EXPORT_SYMBOL vmlinux 0xd389b79c cred_fscmp EXPORT_SYMBOL vmlinux 0xd38ee2c7 __get_hash_from_flowi6 -EXPORT_SYMBOL vmlinux 0xd392b9a6 ipv6_chk_addr -EXPORT_SYMBOL vmlinux 0xd39486fa register_filesystem -EXPORT_SYMBOL vmlinux 0xd3aecfa0 tcp_req_err -EXPORT_SYMBOL vmlinux 0xd3d68714 fscrypt_has_permitted_context -EXPORT_SYMBOL vmlinux 0xd3d84f95 __bio_advance +EXPORT_SYMBOL vmlinux 0xd3a57696 blk_mq_tagset_busy_iter +EXPORT_SYMBOL vmlinux 0xd3c13439 page_pool_alloc_frag +EXPORT_SYMBOL vmlinux 0xd3d8a927 dm_table_get_size +EXPORT_SYMBOL vmlinux 0xd3e6d24a nvdimm_check_and_set_ro +EXPORT_SYMBOL vmlinux 0xd4021ede blk_execute_rq EXPORT_SYMBOL vmlinux 0xd406d266 fb_mode_is_equal -EXPORT_SYMBOL vmlinux 0xd4075131 fscrypt_ioctl_get_policy +EXPORT_SYMBOL vmlinux 0xd42af94b sk_ns_capable EXPORT_SYMBOL vmlinux 0xd42eaaa6 sockopt_ns_capable -EXPORT_SYMBOL vmlinux 0xd455d82e con_is_visible +EXPORT_SYMBOL vmlinux 0xd4359970 blk_finish_plug EXPORT_SYMBOL vmlinux 0xd45cc6ca bin2hex -EXPORT_SYMBOL vmlinux 0xd468cb5d param_ops_hexint +EXPORT_SYMBOL vmlinux 0xd4603672 security_d_instantiate EXPORT_SYMBOL vmlinux 0xd469bccc __tracepoint_mmap_lock_released -EXPORT_SYMBOL vmlinux 0xd47290e4 nf_register_net_hook EXPORT_SYMBOL vmlinux 0xd48458d4 mutex_unlock -EXPORT_SYMBOL vmlinux 0xd48c9ce6 refresh_frequency_limits +EXPORT_SYMBOL vmlinux 0xd491b659 passthru_features_check +EXPORT_SYMBOL vmlinux 0xd491c79f fwnode_mdiobus_register_phy +EXPORT_SYMBOL vmlinux 0xd49cc32f timestamp_truncate +EXPORT_SYMBOL vmlinux 0xd4ae6e69 genphy_check_and_restart_aneg EXPORT_SYMBOL vmlinux 0xd4afea5d free_irq_cpu_rmap -EXPORT_SYMBOL vmlinux 0xd4b0ff80 tcp_read_skb -EXPORT_SYMBOL vmlinux 0xd4b4bea0 sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0xd4b0ef17 xp_raw_get_data EXPORT_SYMBOL vmlinux 0xd4bb4a82 inet6addr_validator_notifier_call_chain EXPORT_SYMBOL vmlinux 0xd4bba968 gen_pool_create EXPORT_SYMBOL vmlinux 0xd4c69c4f mtree_load -EXPORT_SYMBOL vmlinux 0xd4c8f7be i2c_add_adapter -EXPORT_SYMBOL vmlinux 0xd4cb3a2d acpi_bus_unregister_driver -EXPORT_SYMBOL vmlinux 0xd4ce3b59 phy_trigger_machine -EXPORT_SYMBOL vmlinux 0xd4d5ab0b kernel_sendmsg -EXPORT_SYMBOL vmlinux 0xd4e5bf29 kiocb_set_cancel_fn -EXPORT_SYMBOL vmlinux 0xd4e9366b tcf_chain_get_by_act -EXPORT_SYMBOL vmlinux 0xd4f6866b inode_set_bytes -EXPORT_SYMBOL vmlinux 0xd50d4de2 sock_no_ioctl -EXPORT_SYMBOL vmlinux 0xd50d6a60 dcache_dir_open -EXPORT_SYMBOL vmlinux 0xd510ffca sb_min_blocksize -EXPORT_SYMBOL vmlinux 0xd526269f md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0xd50e022d seq_path EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd531322f netif_stacked_transfer_operstate EXPORT_SYMBOL vmlinux 0xd5346bfc acpi_get_possible_resources -EXPORT_SYMBOL vmlinux 0xd53f07ee file_ns_capable -EXPORT_SYMBOL vmlinux 0xd5517e90 path_is_under -EXPORT_SYMBOL vmlinux 0xd5548199 dma_resv_init -EXPORT_SYMBOL vmlinux 0xd558a8ca __post_watch_notification -EXPORT_SYMBOL vmlinux 0xd558e9c9 skb_vlan_untag -EXPORT_SYMBOL vmlinux 0xd56104f4 folio_migrate_copy -EXPORT_SYMBOL vmlinux 0xd56bd37c pci_stop_and_remove_bus_device -EXPORT_SYMBOL vmlinux 0xd58babd2 stop_tty -EXPORT_SYMBOL vmlinux 0xd58ea80b mr_mfc_seq_idx -EXPORT_SYMBOL vmlinux 0xd5a655a9 devm_pci_remap_iospace +EXPORT_SYMBOL vmlinux 0xd53fda83 __destroy_inode +EXPORT_SYMBOL vmlinux 0xd542e8d7 xp_can_alloc +EXPORT_SYMBOL vmlinux 0xd5525ab8 start_tty +EXPORT_SYMBOL vmlinux 0xd554a509 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0xd55d59e5 ethtool_rx_flow_rule_destroy +EXPORT_SYMBOL vmlinux 0xd5604e61 request_partial_firmware_into_buf +EXPORT_SYMBOL vmlinux 0xd581f173 xfrm_unregister_type_offload +EXPORT_SYMBOL vmlinux 0xd5903ba1 of_phy_connect +EXPORT_SYMBOL vmlinux 0xd5ac5516 kthread_create_worker_on_cpu EXPORT_SYMBOL vmlinux 0xd5b3d0d5 xxh64_copy_state -EXPORT_SYMBOL vmlinux 0xd5ce6e0f dev_uc_del -EXPORT_SYMBOL vmlinux 0xd5deee7f of_cpu_device_node_get +EXPORT_SYMBOL vmlinux 0xd5b87ea2 devm_nvmem_cell_put +EXPORT_SYMBOL vmlinux 0xd5d6c8d2 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xd5dd8bc3 skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0xd5ec311c of_chosen +EXPORT_SYMBOL vmlinux 0xd5ef3957 make_kprojid EXPORT_SYMBOL vmlinux 0xd60736ec gf128mul_free_64k -EXPORT_SYMBOL vmlinux 0xd609807d nf_register_queue_handler -EXPORT_SYMBOL vmlinux 0xd611480b __skb_wait_for_more_packets -EXPORT_SYMBOL vmlinux 0xd619d39e pci_iounmap -EXPORT_SYMBOL vmlinux 0xd620484d jbd2_journal_ack_err -EXPORT_SYMBOL vmlinux 0xd63b2c0d skb_dump -EXPORT_SYMBOL vmlinux 0xd63da24b __vfs_removexattr +EXPORT_SYMBOL vmlinux 0xd61c0caa skb_eth_push +EXPORT_SYMBOL vmlinux 0xd61c5e5e max8998_write_reg +EXPORT_SYMBOL vmlinux 0xd63c3dba __inet6_lookup_established EXPORT_SYMBOL vmlinux 0xd642f3f6 video_firmware_drivers_only EXPORT_SYMBOL vmlinux 0xd643239a acpi_leave_sleep_state -EXPORT_SYMBOL vmlinux 0xd6499aa4 put_ipc_ns -EXPORT_SYMBOL vmlinux 0xd64ba869 tcp_rcv_state_process -EXPORT_SYMBOL vmlinux 0xd6654c74 of_find_matching_node_and_match +EXPORT_SYMBOL vmlinux 0xd647f5d9 devm_clk_hw_register_clkdev +EXPORT_SYMBOL vmlinux 0xd648e862 __mmap_lock_do_trace_released +EXPORT_SYMBOL vmlinux 0xd6653bbe param_set_charp EXPORT_SYMBOL vmlinux 0xd66c8184 add_device_randomness EXPORT_SYMBOL vmlinux 0xd6742a28 vm_event_states -EXPORT_SYMBOL vmlinux 0xd6778036 xfrm_alloc_spi -EXPORT_SYMBOL vmlinux 0xd67a4ac7 _dev_err +EXPORT_SYMBOL vmlinux 0xd681192c fixed_size_llseek EXPORT_SYMBOL vmlinux 0xd68b599d dma_fence_enable_sw_signaling EXPORT_SYMBOL vmlinux 0xd68c5a1f adjust_resource -EXPORT_SYMBOL vmlinux 0xd6987996 pid_task -EXPORT_SYMBOL vmlinux 0xd699aae8 unregister_key_type EXPORT_SYMBOL vmlinux 0xd6a91f54 twl_i2c_read -EXPORT_SYMBOL vmlinux 0xd6ba7c66 d_drop -EXPORT_SYMBOL vmlinux 0xd6e4283b phy_do_ioctl_running +EXPORT_SYMBOL vmlinux 0xd6d33c6a jbd2_journal_init_dev EXPORT_SYMBOL vmlinux 0xd6eaaea1 full_name_hash -EXPORT_SYMBOL vmlinux 0xd6eb27cf sk_send_sigurg EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc -EXPORT_SYMBOL vmlinux 0xd6fc79b1 neigh_for_each EXPORT_SYMBOL vmlinux 0xd6fde043 is_module_sig_enforced -EXPORT_SYMBOL vmlinux 0xd70c6435 of_mdio_find_bus EXPORT_SYMBOL vmlinux 0xd70d35a1 gf128mul_4k_bbe EXPORT_SYMBOL vmlinux 0xd70f62b6 acpi_os_execute -EXPORT_SYMBOL vmlinux 0xd721a573 fs_context_for_mount -EXPORT_SYMBOL vmlinux 0xd72572b5 ipv6_push_frag_opts +EXPORT_SYMBOL vmlinux 0xd7166eff unregister_fib_notifier +EXPORT_SYMBOL vmlinux 0xd7211787 to_ndd +EXPORT_SYMBOL vmlinux 0xd72335e1 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xd723f5c2 get_tree_single +EXPORT_SYMBOL vmlinux 0xd7310b9d dump_page EXPORT_SYMBOL vmlinux 0xd73653c4 freezer_active -EXPORT_SYMBOL vmlinux 0xd7385b3f clear_nlink EXPORT_SYMBOL vmlinux 0xd738ca1b phy_unregister_fixup_for_uid EXPORT_SYMBOL vmlinux 0xd73c8c2b synchronize_shrinkers +EXPORT_SYMBOL vmlinux 0xd748052b acpi_dev_get_first_match_dev EXPORT_SYMBOL vmlinux 0xd7482f05 vcalloc -EXPORT_SYMBOL vmlinux 0xd74c4928 nf_getsockopt -EXPORT_SYMBOL vmlinux 0xd7583df9 tcp_prot -EXPORT_SYMBOL vmlinux 0xd75f2dce skb_queue_tail -EXPORT_SYMBOL vmlinux 0xd768e395 __i2c_transfer -EXPORT_SYMBOL vmlinux 0xd77f08d5 netdev_update_features +EXPORT_SYMBOL vmlinux 0xd76cac4e dqput +EXPORT_SYMBOL vmlinux 0xd7819c7f in_dev_finish_destroy EXPORT_SYMBOL vmlinux 0xd7987177 utf8_load -EXPORT_SYMBOL vmlinux 0xd79e0140 buffer_migrate_folio -EXPORT_SYMBOL vmlinux 0xd7bd9b17 forget_all_cached_acls -EXPORT_SYMBOL vmlinux 0xd7c4f069 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xd79fe899 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xd7a4ebf2 security_binder_transfer_file +EXPORT_SYMBOL vmlinux 0xd7ba304b sockopt_release_sock +EXPORT_SYMBOL vmlinux 0xd7bde189 set_anon_super +EXPORT_SYMBOL vmlinux 0xd7c54fbf nvdimm_bus_unlock +EXPORT_SYMBOL vmlinux 0xd7cc8322 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xd7ced96f ip_route_me_harder EXPORT_SYMBOL vmlinux 0xd7d280ad irq_poll_complete -EXPORT_SYMBOL vmlinux 0xd7d57007 __inet_hash -EXPORT_SYMBOL vmlinux 0xd7d6de7d bio_free_pages +EXPORT_SYMBOL vmlinux 0xd7de5575 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0xd7e42b45 serio_reconnect EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll EXPORT_SYMBOL vmlinux 0xd7e637a3 inet_frag_rbtree_purge EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd7eddd52 security_inode_setsecctx EXPORT_SYMBOL vmlinux 0xd7ff1b8a __ashlti3 -EXPORT_SYMBOL vmlinux 0xd819831d blk_rq_unmap_user EXPORT_SYMBOL vmlinux 0xd819a524 crc_itu_t_table EXPORT_SYMBOL vmlinux 0xd81a37ca rps_sock_flow_table -EXPORT_SYMBOL vmlinux 0xd81bdbef neigh_table_init -EXPORT_SYMBOL vmlinux 0xd81d2f87 devm_ioremap -EXPORT_SYMBOL vmlinux 0xd8284001 flow_block_cb_free -EXPORT_SYMBOL vmlinux 0xd82dc177 security_sctp_assoc_established EXPORT_SYMBOL vmlinux 0xd83898d5 nf_hooks_needed -EXPORT_SYMBOL vmlinux 0xd845a57c sk_wait_data -EXPORT_SYMBOL vmlinux 0xd858058f mark_page_accessed -EXPORT_SYMBOL vmlinux 0xd8659752 netdev_printk -EXPORT_SYMBOL vmlinux 0xd86da0b1 discard_new_inode -EXPORT_SYMBOL vmlinux 0xd879a1a2 d_move -EXPORT_SYMBOL vmlinux 0xd8813f9f __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xd8710638 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0xd87d6e47 fd_install EXPORT_SYMBOL vmlinux 0xd8877f68 dma_fence_array_create EXPORT_SYMBOL vmlinux 0xd8925a5d sbi_ecall +EXPORT_SYMBOL vmlinux 0xd8951210 xfrm_init_replay EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone -EXPORT_SYMBOL vmlinux 0xd8a2aaaa jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xd8a7c72a ip6mr_rule_default EXPORT_SYMBOL vmlinux 0xd8a994eb scsi_extd_sense_format -EXPORT_SYMBOL vmlinux 0xd8b5758f update_region EXPORT_SYMBOL vmlinux 0xd8b61304 get_default_font EXPORT_SYMBOL vmlinux 0xd8b6d96f __find_nth_and_bit -EXPORT_SYMBOL vmlinux 0xd8bc3379 from_kgid_munged -EXPORT_SYMBOL vmlinux 0xd8d2b51f tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xd8b8c70f path_get +EXPORT_SYMBOL vmlinux 0xd8caeed6 __xfrm_dst_lookup EXPORT_SYMBOL vmlinux 0xd8df08ac acpi_handle_printk -EXPORT_SYMBOL vmlinux 0xd8e43b79 __skb_warn_lro_forwarding -EXPORT_SYMBOL vmlinux 0xd8ed61fb __cgroup_bpf_run_filter_sk -EXPORT_SYMBOL vmlinux 0xd8f1f58d mntput -EXPORT_SYMBOL vmlinux 0xd9115221 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xd8e595f3 vme_init_bridge +EXPORT_SYMBOL vmlinux 0xd8f2a60a scsi_device_resume +EXPORT_SYMBOL vmlinux 0xd8ffe7cc mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0xd9018a48 notify_change +EXPORT_SYMBOL vmlinux 0xd915af03 cpufreq_generic_suspend EXPORT_SYMBOL vmlinux 0xd92deb6b acpi_evaluate_object -EXPORT_SYMBOL vmlinux 0xd95a51b4 skb_unlink -EXPORT_SYMBOL vmlinux 0xd9735719 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xd940b66a input_inject_event +EXPORT_SYMBOL vmlinux 0xd95161c3 deactivate_super +EXPORT_SYMBOL vmlinux 0xd956bb08 folio_migrate_mapping +EXPORT_SYMBOL vmlinux 0xd967e230 folio_migrate_copy EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9887bcd blkdev_get_by_dev EXPORT_SYMBOL vmlinux 0xd994ecee cpu_all_bits -EXPORT_SYMBOL vmlinux 0xd998d4a3 alloc_file_pseudo -EXPORT_SYMBOL vmlinux 0xd9b2d8bf jbd2__journal_start -EXPORT_SYMBOL vmlinux 0xd9b65aaa sock_create +EXPORT_SYMBOL vmlinux 0xd9b7f10f tcp_conn_request EXPORT_SYMBOL vmlinux 0xd9b8eaea __SCK__tp_func_dma_fence_signaled -EXPORT_SYMBOL vmlinux 0xd9baf4a1 scsi_host_put -EXPORT_SYMBOL vmlinux 0xd9bcbe2b ppp_unregister_channel -EXPORT_SYMBOL vmlinux 0xd9be7b5b dst_release_immediate -EXPORT_SYMBOL vmlinux 0xd9c97092 generic_pipe_buf_try_steal +EXPORT_SYMBOL vmlinux 0xd9d0dda4 jbd2_journal_get_undo_access EXPORT_SYMBOL vmlinux 0xd9d8fd16 register_restart_handler EXPORT_SYMBOL vmlinux 0xd9d952d1 crypto_aes_sbox -EXPORT_SYMBOL vmlinux 0xd9d9af7b netlink_ns_capable -EXPORT_SYMBOL vmlinux 0xd9eb8117 elv_rb_add -EXPORT_SYMBOL vmlinux 0xd9f0114a tcp_get_md5sig_pool -EXPORT_SYMBOL vmlinux 0xda0e770f d_make_root -EXPORT_SYMBOL vmlinux 0xda1b603b tcp_splice_read -EXPORT_SYMBOL vmlinux 0xda1d613a blk_mq_alloc_tag_set -EXPORT_SYMBOL vmlinux 0xda211e80 mpage_read_folio +EXPORT_SYMBOL vmlinux 0xd9ea268c cookie_ecn_ok +EXPORT_SYMBOL vmlinux 0xda05645f ata_std_end_eh +EXPORT_SYMBOL vmlinux 0xda08578b vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0xda21126d dev_mc_flush +EXPORT_SYMBOL vmlinux 0xda377b69 tcf_exts_num_actions EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open EXPORT_SYMBOL vmlinux 0xda3f8a71 nla_append +EXPORT_SYMBOL vmlinux 0xda46922e iw_handler_get_spy EXPORT_SYMBOL vmlinux 0xda6c3435 sbi_remote_hfence_vvma_asid -EXPORT_SYMBOL vmlinux 0xda90895c config_item_set_name -EXPORT_SYMBOL vmlinux 0xda90aec5 dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0xda7ffeea ip6_dst_hoplimit EXPORT_SYMBOL vmlinux 0xda9733fa trace_print_hex_dump_seq -EXPORT_SYMBOL vmlinux 0xda9f084d genl_notify -EXPORT_SYMBOL vmlinux 0xdaa26528 jbd2_journal_load -EXPORT_SYMBOL vmlinux 0xdac0a566 release_pages +EXPORT_SYMBOL vmlinux 0xdab43ada vif_device_init EXPORT_SYMBOL vmlinux 0xdac4913a bitmap_allocate_region -EXPORT_SYMBOL vmlinux 0xdac91b6f dquot_initialize_needed -EXPORT_SYMBOL vmlinux 0xdacbcd62 dev_remove_offload +EXPORT_SYMBOL vmlinux 0xdac8359c netdev_get_xmit_slave +EXPORT_SYMBOL vmlinux 0xdaced58e devfreq_update_target EXPORT_SYMBOL vmlinux 0xdad1fc3f zstd_flush_stream -EXPORT_SYMBOL vmlinux 0xdae2c3ed seq_lseek +EXPORT_SYMBOL vmlinux 0xdad3c73f devm_register_reboot_notifier EXPORT_SYMBOL vmlinux 0xdae93c02 mtree_store -EXPORT_SYMBOL vmlinux 0xdaeda84c mapping_read_folio_gfp -EXPORT_SYMBOL vmlinux 0xdafad40c tcp_syn_ack_timeout -EXPORT_SYMBOL vmlinux 0xdafb9112 ip_sock_set_freebind +EXPORT_SYMBOL vmlinux 0xdaffda90 ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0xdb02bcb2 __scm_send +EXPORT_SYMBOL vmlinux 0xdb03ae61 file_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xdb0650aa tcp_mmap +EXPORT_SYMBOL vmlinux 0xdb08413b scsi_vpd_lun_id +EXPORT_SYMBOL vmlinux 0xdb16e75d pnp_start_dev EXPORT_SYMBOL vmlinux 0xdb1edee6 hdmi_infoframe_unpack -EXPORT_SYMBOL vmlinux 0xdb1f3de7 inet6_del_protocol -EXPORT_SYMBOL vmlinux 0xdb20de68 tty_driver_flush_buffer -EXPORT_SYMBOL vmlinux 0xdb37900d pci_get_slot -EXPORT_SYMBOL vmlinux 0xdb382d41 blk_set_queue_depth -EXPORT_SYMBOL vmlinux 0xdb5f85c5 register_fib_notifier +EXPORT_SYMBOL vmlinux 0xdb25f7f3 input_set_abs_params +EXPORT_SYMBOL vmlinux 0xdb46f507 dmaenginem_async_device_register +EXPORT_SYMBOL vmlinux 0xdb5ba517 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0xdb5c3cc0 mdio_device_free +EXPORT_SYMBOL vmlinux 0xdb5ceba6 amba_release_regions EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free -EXPORT_SYMBOL vmlinux 0xdb77bf1a rtc_add_groups EXPORT_SYMBOL vmlinux 0xdb7b8e99 mutex_trylock +EXPORT_SYMBOL vmlinux 0xdb92c2f8 devfreq_recommended_opp EXPORT_SYMBOL vmlinux 0xdb97b952 remove_wait_queue +EXPORT_SYMBOL vmlinux 0xdb9d512b inc_nlink EXPORT_SYMBOL vmlinux 0xdba20e12 blk_set_stacking_limits -EXPORT_SYMBOL vmlinux 0xdbac6a87 dm_kobject_release +EXPORT_SYMBOL vmlinux 0xdbad1fd2 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0xdbb0d9fa security_sb_remount +EXPORT_SYMBOL vmlinux 0xdbc13bcd try_to_writeback_inodes_sb EXPORT_SYMBOL vmlinux 0xdbc43e6a qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xdbc4c10e ip_fraglist_init +EXPORT_SYMBOL vmlinux 0xdbc85e00 blkdev_put +EXPORT_SYMBOL vmlinux 0xdbccc078 jbd2_journal_try_to_free_buffers EXPORT_SYMBOL vmlinux 0xdbcf041a acpi_install_address_space_handler -EXPORT_SYMBOL vmlinux 0xdbd05451 i2c_smbus_read_i2c_block_data_or_emulated -EXPORT_SYMBOL vmlinux 0xdbd132ee __getblk_gfp -EXPORT_SYMBOL vmlinux 0xdbde5f83 hmm_range_fault -EXPORT_SYMBOL vmlinux 0xdbdeeaf5 nf_reinject +EXPORT_SYMBOL vmlinux 0xdbde7ab9 qdisc_watchdog_cancel EXPORT_SYMBOL vmlinux 0xdbdf5645 register_sysctl_mount_point EXPORT_SYMBOL vmlinux 0xdbdf6c92 ioport_resource EXPORT_SYMBOL vmlinux 0xdbeb8eb7 __wait_on_bit_lock -EXPORT_SYMBOL vmlinux 0xdbec775f dquot_alloc -EXPORT_SYMBOL vmlinux 0xdbf66368 mdio_device_free -EXPORT_SYMBOL vmlinux 0xdbf82e76 netdev_txq_to_tc -EXPORT_SYMBOL vmlinux 0xdbf9adda mmc_is_req_done -EXPORT_SYMBOL vmlinux 0xdc0b7783 seq_vprintf EXPORT_SYMBOL vmlinux 0xdc0e4855 timer_delete +EXPORT_SYMBOL vmlinux 0xdc11ded1 folio_wait_bit_killable EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems -EXPORT_SYMBOL vmlinux 0xdc1ba2dc misc_deregister +EXPORT_SYMBOL vmlinux 0xdc3d8f7a nd_btt_version EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc3feed5 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xdc42d4f2 forget_all_cached_acls +EXPORT_SYMBOL vmlinux 0xdc493634 vme_irq_free EXPORT_SYMBOL vmlinux 0xdc49c198 reciprocal_value_adv -EXPORT_SYMBOL vmlinux 0xdc6965c8 kthread_associate_blkcg -EXPORT_SYMBOL vmlinux 0xdc822e6f phy_init_hw -EXPORT_SYMBOL vmlinux 0xdc8a2c43 pci_get_class -EXPORT_SYMBOL vmlinux 0xdc9d3af8 inode_to_bdi +EXPORT_SYMBOL vmlinux 0xdc5ca517 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xdc5ebd95 blk_put_queue +EXPORT_SYMBOL vmlinux 0xdc8563cf kern_path +EXPORT_SYMBOL vmlinux 0xdcb664d6 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xdcbb7c3a tcp_select_initial_window EXPORT_SYMBOL vmlinux 0xdcbeba1d sg_copy_from_buffer -EXPORT_SYMBOL vmlinux 0xdcc8cd32 cdev_device_del -EXPORT_SYMBOL vmlinux 0xdcd5a503 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xdccca7f8 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xdcd92a14 skb_clone EXPORT_SYMBOL vmlinux 0xdcdc0040 slhc_compress -EXPORT_SYMBOL vmlinux 0xdcdc53c5 unregister_binfmt -EXPORT_SYMBOL vmlinux 0xdcdd7062 tty_check_change -EXPORT_SYMBOL vmlinux 0xdceb137f devm_register_netdev -EXPORT_SYMBOL vmlinux 0xdced9ebb d_mark_dontcache -EXPORT_SYMBOL vmlinux 0xdd0a7143 build_skb_around -EXPORT_SYMBOL vmlinux 0xdd129aaf skb_copy_and_hash_datagram_iter EXPORT_SYMBOL vmlinux 0xdd18a993 acpi_check_dsm -EXPORT_SYMBOL vmlinux 0xdd245c56 i2c_get_adapter_by_fwnode EXPORT_SYMBOL vmlinux 0xdd2c169b mb_cache_create -EXPORT_SYMBOL vmlinux 0xdd2ee10e ip_setsockopt -EXPORT_SYMBOL vmlinux 0xdd3c5e38 devm_clk_put -EXPORT_SYMBOL vmlinux 0xdd46e57f __vfs_getxattr -EXPORT_SYMBOL vmlinux 0xdd599d0a tcp_add_backlog +EXPORT_SYMBOL vmlinux 0xdd520d64 tcf_action_update_hw_stats EXPORT_SYMBOL vmlinux 0xdd5e4cea rtnl_nla_parse_ifinfomsg EXPORT_SYMBOL vmlinux 0xdd64e639 strscpy -EXPORT_SYMBOL vmlinux 0xdd652e69 generic_set_encrypted_ci_d_ops -EXPORT_SYMBOL vmlinux 0xdd7255cd d_genocide EXPORT_SYMBOL vmlinux 0xdd849d51 scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0xdd974125 fb_pan_display +EXPORT_SYMBOL vmlinux 0xdda354db pci_find_capability +EXPORT_SYMBOL vmlinux 0xddad42b3 scsi_print_sense EXPORT_SYMBOL vmlinux 0xddad7952 acpi_dbg_level EXPORT_SYMBOL vmlinux 0xddad96ac __xa_erase -EXPORT_SYMBOL vmlinux 0xddb5f1ef netdev_reset_tc -EXPORT_SYMBOL vmlinux 0xddca23b1 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xddafb49d ip_frag_next +EXPORT_SYMBOL vmlinux 0xddc108dd security_path_mkdir +EXPORT_SYMBOL vmlinux 0xddcaee29 sg_miter_stop EXPORT_SYMBOL vmlinux 0xddcbe1f3 acpi_ut_value_exit -EXPORT_SYMBOL vmlinux 0xdded8335 twl6040_get_pll +EXPORT_SYMBOL vmlinux 0xddf1252e block_is_partially_uptodate EXPORT_SYMBOL vmlinux 0xddfdb8ac tcp_md5_needed -EXPORT_SYMBOL vmlinux 0xde0fb61e udp_lib_get_port -EXPORT_SYMBOL vmlinux 0xde159cde genphy_c45_eee_is_active -EXPORT_SYMBOL vmlinux 0xde288b20 zero_fill_bio -EXPORT_SYMBOL vmlinux 0xde28cf13 __devm_request_region +EXPORT_SYMBOL vmlinux 0xde058b50 mr_mfc_find_any_parent +EXPORT_SYMBOL vmlinux 0xde0e2025 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0xde13453b generic_file_open EXPORT_SYMBOL vmlinux 0xde2c551d radix_tree_tag_clear -EXPORT_SYMBOL vmlinux 0xde545382 generic_write_checks_count -EXPORT_SYMBOL vmlinux 0xde7d681c logfc +EXPORT_SYMBOL vmlinux 0xde3667dd zap_page_range_single +EXPORT_SYMBOL vmlinux 0xde4232a0 devm_clk_get +EXPORT_SYMBOL vmlinux 0xde50ccc8 pcie_set_mps +EXPORT_SYMBOL vmlinux 0xde599320 proc_set_user EXPORT_SYMBOL vmlinux 0xde7ece30 __cpu_possible_mask -EXPORT_SYMBOL vmlinux 0xde8a90a7 register_nexthop_notifier -EXPORT_SYMBOL vmlinux 0xde8e985a cpufreq_generic_suspend -EXPORT_SYMBOL vmlinux 0xde99e3e8 fuse_dequeue_forget -EXPORT_SYMBOL vmlinux 0xdea4cdd1 pci_bus_read_config_dword -EXPORT_SYMBOL vmlinux 0xdebb1597 kern_unmount_array -EXPORT_SYMBOL vmlinux 0xdecc06fe netlink_unicast +EXPORT_SYMBOL vmlinux 0xde8b2885 __alloc_pages +EXPORT_SYMBOL vmlinux 0xde8c6776 page_mapping +EXPORT_SYMBOL vmlinux 0xde8d5172 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0xde914931 tcp_add_backlog +EXPORT_SYMBOL vmlinux 0xde917291 xfrm_if_register_cb EXPORT_SYMBOL vmlinux 0xded39a6b gen_kill_estimator -EXPORT_SYMBOL vmlinux 0xded50386 unlock_two_nondirectories -EXPORT_SYMBOL vmlinux 0xdedeac2b skb_store_bits +EXPORT_SYMBOL vmlinux 0xded3efb5 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0xdee0bac6 drop_nlink +EXPORT_SYMBOL vmlinux 0xdee420cd netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0xdef31b00 configfs_register_subsystem EXPORT_SYMBOL vmlinux 0xdef68d34 flow_keys_basic_dissector EXPORT_SYMBOL vmlinux 0xdef7c893 fb_match_mode -EXPORT_SYMBOL vmlinux 0xdf1f581b kernel_param_lock +EXPORT_SYMBOL vmlinux 0xdf188bba blk_rq_map_user_io +EXPORT_SYMBOL vmlinux 0xdf206423 d_tmpfile EXPORT_SYMBOL vmlinux 0xdf256037 kstrtou8_from_user EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last -EXPORT_SYMBOL vmlinux 0xdf3cb72f set_nlink -EXPORT_SYMBOL vmlinux 0xdf4ae7e0 tcp_inbound_md5_hash -EXPORT_SYMBOL vmlinux 0xdf502e0b clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xdf2e1fa5 generic_fill_statx_attr +EXPORT_SYMBOL vmlinux 0xdf33924a inet_protos +EXPORT_SYMBOL vmlinux 0xdf37e7ee register_quota_format +EXPORT_SYMBOL vmlinux 0xdf397b96 inet_csk_reqsk_queue_add +EXPORT_SYMBOL vmlinux 0xdf3c2b19 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xdf426eb6 phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0xdf4a7134 iommu_put_resv_regions +EXPORT_SYMBOL vmlinux 0xdf4d7bae filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xdf4dc32e md_integrity_add_rdev EXPORT_SYMBOL vmlinux 0xdf521442 _find_next_zero_bit EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier -EXPORT_SYMBOL vmlinux 0xdf5b6459 kmalloc_trace -EXPORT_SYMBOL vmlinux 0xdf8b286b __icmp_send +EXPORT_SYMBOL vmlinux 0xdf6e8937 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xdf73c508 dcb_setrewr +EXPORT_SYMBOL vmlinux 0xdf83a007 netif_set_real_num_tx_queues EXPORT_SYMBOL vmlinux 0xdf8cceb4 radix_tree_tag_get -EXPORT_SYMBOL vmlinux 0xdf8fea0a copy_page_to_iter EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid EXPORT_SYMBOL vmlinux 0xdf93b9d8 timespec64_to_jiffies EXPORT_SYMBOL vmlinux 0xdf9734a7 sg_nents -EXPORT_SYMBOL vmlinux 0xdf9c9a34 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xdf9c7aa3 __sync_dirty_buffer EXPORT_SYMBOL vmlinux 0xdfb9625e proc_dointvec_minmax EXPORT_SYMBOL vmlinux 0xdfc12ef1 zstd_decompress_stream -EXPORT_SYMBOL vmlinux 0xdfc1ad14 thermal_zone_device_critical +EXPORT_SYMBOL vmlinux 0xdfc644ab vga_get EXPORT_SYMBOL vmlinux 0xdfcc992c current_work -EXPORT_SYMBOL vmlinux 0xdfcd1c88 dev_loopback_xmit EXPORT_SYMBOL vmlinux 0xdfd8110c flow_block_cb_is_busy EXPORT_SYMBOL vmlinux 0xdfe30509 lockref_put_or_lock -EXPORT_SYMBOL vmlinux 0xdfe86826 phy_get_internal_delay -EXPORT_SYMBOL vmlinux 0xdfe96092 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xdfe577f1 netdev_offload_xstats_push_delta EXPORT_SYMBOL vmlinux 0xdff905e5 vme_slave_free EXPORT_SYMBOL vmlinux 0xdffc80fc vesa_modes -EXPORT_SYMBOL vmlinux 0xe00331e5 skb_copy_and_csum_dev -EXPORT_SYMBOL vmlinux 0xe014c174 dma_async_device_register EXPORT_SYMBOL vmlinux 0xe021cedd radix_tree_delete -EXPORT_SYMBOL vmlinux 0xe0324482 xfrm_state_walk -EXPORT_SYMBOL vmlinux 0xe03a37fb textsearch_prepare +EXPORT_SYMBOL vmlinux 0xe02d6bc0 nd_device_unregister EXPORT_SYMBOL vmlinux 0xe0419ac4 kstrtos16 +EXPORT_SYMBOL vmlinux 0xe042aa72 ipv6_chk_addr_and_flags +EXPORT_SYMBOL vmlinux 0xe045bf94 netdev_sk_get_lowest_dev +EXPORT_SYMBOL vmlinux 0xe049a40f pci_scan_slot +EXPORT_SYMBOL vmlinux 0xe0501e49 logfc EXPORT_SYMBOL vmlinux 0xe054b186 rename_lock -EXPORT_SYMBOL vmlinux 0xe05cdbda jbd2_journal_wipe -EXPORT_SYMBOL vmlinux 0xe0789dd8 mini_qdisc_pair_swap +EXPORT_SYMBOL vmlinux 0xe05b6c8e of_graph_get_remote_endpoint +EXPORT_SYMBOL vmlinux 0xe0791481 eth_gro_receive EXPORT_SYMBOL vmlinux 0xe07e5f44 acpi_reconfig_notifier_unregister EXPORT_SYMBOL vmlinux 0xe080e8f0 set_current_groups EXPORT_SYMBOL vmlinux 0xe082e88d acpi_check_address_range -EXPORT_SYMBOL vmlinux 0xe08f0679 fwnode_mdio_find_device +EXPORT_SYMBOL vmlinux 0xe08370be generic_delete_inode +EXPORT_SYMBOL vmlinux 0xe08d3fa3 unlock_two_nondirectories EXPORT_SYMBOL vmlinux 0xe091c977 list_sort -EXPORT_SYMBOL vmlinux 0xe092c58c pci_choose_state -EXPORT_SYMBOL vmlinux 0xe0af6700 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xe098d6ec of_graph_get_endpoint_by_regs +EXPORT_SYMBOL vmlinux 0xe0a135f5 submit_bio_noacct EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free EXPORT_SYMBOL vmlinux 0xe0b9065b security_xfrm_policy_alloc -EXPORT_SYMBOL vmlinux 0xe0c1789e lookup_one_len -EXPORT_SYMBOL vmlinux 0xe0df056b pci_add_new_bus -EXPORT_SYMBOL vmlinux 0xe0e3830e inet_csk_reqsk_queue_drop_and_put -EXPORT_SYMBOL vmlinux 0xe0f8311b send_sig -EXPORT_SYMBOL vmlinux 0xe1058799 zpool_unregister_driver -EXPORT_SYMBOL vmlinux 0xe10b9889 seg6_hmac_net_exit -EXPORT_SYMBOL vmlinux 0xe10ca9bd sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xe0be4b83 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xe0e574a3 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xe0fac0ad neigh_seq_next +EXPORT_SYMBOL vmlinux 0xe0fe3382 genphy_c45_ethtool_get_eee EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial -EXPORT_SYMBOL vmlinux 0xe1156263 proto_unregister -EXPORT_SYMBOL vmlinux 0xe117c7f8 clear_inode -EXPORT_SYMBOL vmlinux 0xe11f24a5 dquot_set_dqinfo -EXPORT_SYMBOL vmlinux 0xe120eb83 scsi_vpd_lun_id +EXPORT_SYMBOL vmlinux 0xe123abc6 generic_copy_file_range EXPORT_SYMBOL vmlinux 0xe123f3d9 dma_fence_release EXPORT_SYMBOL vmlinux 0xe12bda79 vme_dma_free_attribute -EXPORT_SYMBOL vmlinux 0xe12d4475 register_netdevice_notifier_net EXPORT_SYMBOL vmlinux 0xe1317694 __kfifo_dma_in_prepare_r -EXPORT_SYMBOL vmlinux 0xe134ebc6 dma_set_mask -EXPORT_SYMBOL vmlinux 0xe1507673 pcie_get_readrq -EXPORT_SYMBOL vmlinux 0xe17ab7c4 inet_recvmsg -EXPORT_SYMBOL vmlinux 0xe18524e5 put_disk -EXPORT_SYMBOL vmlinux 0xe1b6c551 sg_alloc_table_from_pages_segment -EXPORT_SYMBOL vmlinux 0xe1bbafdd dev_addr_add -EXPORT_SYMBOL vmlinux 0xe1bea58d flush_signals -EXPORT_SYMBOL vmlinux 0xe1c63d5f dcb_ieee_getapp_dscp_prio_mask_map -EXPORT_SYMBOL vmlinux 0xe1c80490 dump_skip_to +EXPORT_SYMBOL vmlinux 0xe15533fd invalidate_disk +EXPORT_SYMBOL vmlinux 0xe1579af6 skb_flow_dissect_ct +EXPORT_SYMBOL vmlinux 0xe15fdf84 bio_free_pages +EXPORT_SYMBOL vmlinux 0xe175657d netif_schedule_queue +EXPORT_SYMBOL vmlinux 0xe1857943 __udp_disconnect EXPORT_SYMBOL vmlinux 0xe1d59d3d __xa_alloc_cyclic -EXPORT_SYMBOL vmlinux 0xe1d8f5e7 __mmap_lock_do_trace_released EXPORT_SYMBOL vmlinux 0xe1dcf64a audit_log_format -EXPORT_SYMBOL vmlinux 0xe1de42f4 mr_vif_seq_next -EXPORT_SYMBOL vmlinux 0xe1e50d7c clk_bulk_get -EXPORT_SYMBOL vmlinux 0xe1eaaf60 __module_put_and_kthread_exit -EXPORT_SYMBOL vmlinux 0xe1f10b18 inet_release -EXPORT_SYMBOL vmlinux 0xe1fdd4a5 netpoll_poll_enable -EXPORT_SYMBOL vmlinux 0xe1ff1a07 vfs_fadvise -EXPORT_SYMBOL vmlinux 0xe200ce68 fb_get_buffer_offset -EXPORT_SYMBOL vmlinux 0xe205739f vme_bus_type -EXPORT_SYMBOL vmlinux 0xe217d9c0 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xe1e05bd6 netlink_net_capable +EXPORT_SYMBOL vmlinux 0xe1f1f469 scsi_register_driver +EXPORT_SYMBOL vmlinux 0xe201b7b1 devm_extcon_register_notifier_all +EXPORT_SYMBOL vmlinux 0xe2181d7d __skb_pad EXPORT_SYMBOL vmlinux 0xe21f18ac __genradix_iter_peek -EXPORT_SYMBOL vmlinux 0xe2370591 sock_no_getname -EXPORT_SYMBOL vmlinux 0xe23b6690 of_node_name_prefix -EXPORT_SYMBOL vmlinux 0xe23da687 mipi_dsi_dcs_set_pixel_format +EXPORT_SYMBOL vmlinux 0xe228b163 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xe22cda93 netif_rx +EXPORT_SYMBOL vmlinux 0xe23282eb dev_kfree_skb_irq_reason +EXPORT_SYMBOL vmlinux 0xe239cce3 sock_dequeue_err_skb EXPORT_SYMBOL vmlinux 0xe26a4e78 ndelay -EXPORT_SYMBOL vmlinux 0xe26bd544 __dynamic_netdev_dbg -EXPORT_SYMBOL vmlinux 0xe2729294 netdev_upper_dev_link -EXPORT_SYMBOL vmlinux 0xe287b9b9 remove_proc_entry -EXPORT_SYMBOL vmlinux 0xe292a184 mdiobus_is_registered_device -EXPORT_SYMBOL vmlinux 0xe298e545 security_inode_getsecctx -EXPORT_SYMBOL vmlinux 0xe2aa45fc vm_map_pages -EXPORT_SYMBOL vmlinux 0xe2ae589a blk_rq_map_user -EXPORT_SYMBOL vmlinux 0xe2b64771 clk_add_alias -EXPORT_SYMBOL vmlinux 0xe2c255fb input_inject_event +EXPORT_SYMBOL vmlinux 0xe28a8438 md_bitmap_unplug_async +EXPORT_SYMBOL vmlinux 0xe2ad25e0 __sock_cmsg_send +EXPORT_SYMBOL vmlinux 0xe2bfde85 acpi_dev_get_next_match_dev EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d52fb2 ipv6_dev_mc_inc EXPORT_SYMBOL vmlinux 0xe2df8e9a smp_call_function_many -EXPORT_SYMBOL vmlinux 0xe2f03694 mmc_can_gpio_cd -EXPORT_SYMBOL vmlinux 0xe2f0ac62 tls_client_hello_anon -EXPORT_SYMBOL vmlinux 0xe2f2b8e1 nf_ip_checksum -EXPORT_SYMBOL vmlinux 0xe2f41dee kern_path -EXPORT_SYMBOL vmlinux 0xe2fa6fbb dget_parent +EXPORT_SYMBOL vmlinux 0xe2ff38c1 debugfs_create_automount +EXPORT_SYMBOL vmlinux 0xe31fbb99 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0xe3278f62 __skb_flow_dissect +EXPORT_SYMBOL vmlinux 0xe329b4e1 __wait_on_buffer EXPORT_SYMBOL vmlinux 0xe32ab4d8 xxh64_digest -EXPORT_SYMBOL vmlinux 0xe32f1244 phy_connect -EXPORT_SYMBOL vmlinux 0xe33529f8 jbd2_journal_dirty_metadata -EXPORT_SYMBOL vmlinux 0xe3400cc8 nf_log_bind_pf -EXPORT_SYMBOL vmlinux 0xe35e8c18 mmc_retune_release -EXPORT_SYMBOL vmlinux 0xe3611955 serio_rescan -EXPORT_SYMBOL vmlinux 0xe36b7f54 seq_pad -EXPORT_SYMBOL vmlinux 0xe387d6c9 __cgroup_bpf_run_filter_sock_ops -EXPORT_SYMBOL vmlinux 0xe39035dc proc_create_mount_point +EXPORT_SYMBOL vmlinux 0xe32e2550 unpin_user_page_range_dirty_lock +EXPORT_SYMBOL vmlinux 0xe357aec1 sync_file_create +EXPORT_SYMBOL vmlinux 0xe3757bb5 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xe377bccb neigh_table_clear +EXPORT_SYMBOL vmlinux 0xe378010a jbd2_journal_lock_updates EXPORT_SYMBOL vmlinux 0xe39b2ea5 sha256 -EXPORT_SYMBOL vmlinux 0xe39c1ca8 of_graph_get_endpoint_by_regs +EXPORT_SYMBOL vmlinux 0xe3a1da18 iptun_encaps EXPORT_SYMBOL vmlinux 0xe3ad3046 __sg_page_iter_dma_next -EXPORT_SYMBOL vmlinux 0xe3b35133 of_mdiobus_child_is_phy -EXPORT_SYMBOL vmlinux 0xe3b76ed0 ata_scsi_cmd_error_handler -EXPORT_SYMBOL vmlinux 0xe3c2c465 pcim_iomap_table -EXPORT_SYMBOL vmlinux 0xe3d2acb1 nf_log_unset +EXPORT_SYMBOL vmlinux 0xe3ae935e vfs_setpos +EXPORT_SYMBOL vmlinux 0xe3cd1126 param_get_long EXPORT_SYMBOL vmlinux 0xe3ec2f2b alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0xe3f062c4 pcim_iomap +EXPORT_SYMBOL vmlinux 0xe3fd9805 __scsi_iterate_devices EXPORT_SYMBOL vmlinux 0xe3feba56 tasklet_unlock_spin_wait EXPORT_SYMBOL vmlinux 0xe3ff2c41 get_random_u64 +EXPORT_SYMBOL vmlinux 0xe403acbf nd_integrity_init EXPORT_SYMBOL vmlinux 0xe40976c0 pnp_range_reserved +EXPORT_SYMBOL vmlinux 0xe42284b3 vfs_rename EXPORT_SYMBOL vmlinux 0xe422adc0 pgtable_l5_enabled -EXPORT_SYMBOL vmlinux 0xe465df83 netlink_set_err -EXPORT_SYMBOL vmlinux 0xe47b17a9 inet_getname -EXPORT_SYMBOL vmlinux 0xe48185d8 input_set_poll_interval -EXPORT_SYMBOL vmlinux 0xe4ae8c14 md_bitmap_endwrite -EXPORT_SYMBOL vmlinux 0xe4b1767e genphy_handle_interrupt_no_ack +EXPORT_SYMBOL vmlinux 0xe42eea46 d_invalidate +EXPORT_SYMBOL vmlinux 0xe4332222 try_module_get +EXPORT_SYMBOL vmlinux 0xe4351458 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xe439aa38 csum_and_copy_from_iter +EXPORT_SYMBOL vmlinux 0xe43a93e8 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xe45bfe6c pin_user_pages_remote +EXPORT_SYMBOL vmlinux 0xe46b91aa __tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0xe47fd582 __hw_addr_unsync_dev +EXPORT_SYMBOL vmlinux 0xe49a5d28 mroute6_is_socket +EXPORT_SYMBOL vmlinux 0xe4ba8a0a blk_queue_dma_alignment EXPORT_SYMBOL vmlinux 0xe4bc2c2f hdmi_drm_infoframe_pack -EXPORT_SYMBOL vmlinux 0xe4cb6faf mmc_gpio_get_cd -EXPORT_SYMBOL vmlinux 0xe4dd3007 tcp_recvmsg -EXPORT_SYMBOL vmlinux 0xe4dea10a from_kuid -EXPORT_SYMBOL vmlinux 0xe4ff1c2a vfs_fileattr_get -EXPORT_SYMBOL vmlinux 0xe5127ad5 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xe4c61233 free_cgroup_ns +EXPORT_SYMBOL vmlinux 0xe4d1ad14 serio_close +EXPORT_SYMBOL vmlinux 0xe4d1cffe pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0xe4e93fc8 posix_test_lock +EXPORT_SYMBOL vmlinux 0xe4ea6fd8 sync_blockdev +EXPORT_SYMBOL vmlinux 0xe4ee0ac6 simple_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xe5074247 blk_get_queue EXPORT_SYMBOL vmlinux 0xe521a7c2 kobject_add EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq -EXPORT_SYMBOL vmlinux 0xe5250693 __skb_recv_udp -EXPORT_SYMBOL vmlinux 0xe52e974d blk_mq_unique_tag -EXPORT_SYMBOL vmlinux 0xe5322dea write_inode_now -EXPORT_SYMBOL vmlinux 0xe55bc77b neigh_seq_stop -EXPORT_SYMBOL vmlinux 0xe567978a block_write_full_page +EXPORT_SYMBOL vmlinux 0xe55b39a5 inode_init_owner +EXPORT_SYMBOL vmlinux 0xe55b3a3f prepare_to_swait_exclusive +EXPORT_SYMBOL vmlinux 0xe55ef346 has_capability +EXPORT_SYMBOL vmlinux 0xe5694f3d tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xe56e04d6 xfrm_register_type_offload +EXPORT_SYMBOL vmlinux 0xe57afdbf of_get_next_child +EXPORT_SYMBOL vmlinux 0xe57b4265 genphy_c37_config_aneg EXPORT_SYMBOL vmlinux 0xe58090ca security_ib_endport_manage_subnet -EXPORT_SYMBOL vmlinux 0xe590a91d sk_mc_loop EXPORT_SYMBOL vmlinux 0xe590dea3 sk_busy_loop_end -EXPORT_SYMBOL vmlinux 0xe597cc85 __mod_lruvec_page_state +EXPORT_SYMBOL vmlinux 0xe592c55c of_phy_is_fixed_link +EXPORT_SYMBOL vmlinux 0xe594e92f phy_request_interrupt +EXPORT_SYMBOL vmlinux 0xe5b043fa inet_ioctl +EXPORT_SYMBOL vmlinux 0xe5b33114 vfs_clone_file_range EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen -EXPORT_SYMBOL vmlinux 0xe5e16bfe phy_driver_register -EXPORT_SYMBOL vmlinux 0xe5f5a672 pnp_unregister_card_driver -EXPORT_SYMBOL vmlinux 0xe5fe3d15 wrap_directory_iterator -EXPORT_SYMBOL vmlinux 0xe610c970 skb_realloc_headroom -EXPORT_SYMBOL vmlinux 0xe6182184 sk_ns_capable -EXPORT_SYMBOL vmlinux 0xe62da48e phy_start -EXPORT_SYMBOL vmlinux 0xe6436376 genphy_c45_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0xe5d88ed9 put_disk +EXPORT_SYMBOL vmlinux 0xe5f2cb96 flow_rule_match_mpls +EXPORT_SYMBOL vmlinux 0xe6056ce4 netdev_notify_peers +EXPORT_SYMBOL vmlinux 0xe62633e4 devfreq_update_interval +EXPORT_SYMBOL vmlinux 0xe630dc43 __post_watch_notification +EXPORT_SYMBOL vmlinux 0xe63aec39 __sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xe63b9abd __scsi_print_sense +EXPORT_SYMBOL vmlinux 0xe648adfa dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xe64ae853 fwnode_phy_find_device EXPORT_SYMBOL vmlinux 0xe6550092 utf8_casefold -EXPORT_SYMBOL vmlinux 0xe65a237a may_setattr -EXPORT_SYMBOL vmlinux 0xe67374fb xfrm_trans_queue +EXPORT_SYMBOL vmlinux 0xe65d32e4 dst_dev_put +EXPORT_SYMBOL vmlinux 0xe662c39b param_ops_short +EXPORT_SYMBOL vmlinux 0xe67bad8b xsk_uses_need_wakeup EXPORT_SYMBOL vmlinux 0xe68033ae security_binder_set_context_mgr -EXPORT_SYMBOL vmlinux 0xe69224e3 param_set_charp -EXPORT_SYMBOL vmlinux 0xe69a9587 skb_queue_head -EXPORT_SYMBOL vmlinux 0xe6a4cf0b inet_ioctl -EXPORT_SYMBOL vmlinux 0xe6a571ed flow_rule_match_ports_range -EXPORT_SYMBOL vmlinux 0xe6addd47 is_acpi_data_node -EXPORT_SYMBOL vmlinux 0xe6bc2e7c get_tree_single_reconf -EXPORT_SYMBOL vmlinux 0xe6c06ebe filemap_range_has_page -EXPORT_SYMBOL vmlinux 0xe6c08b6b tcp_filter -EXPORT_SYMBOL vmlinux 0xe6ce0412 kmalloc_caches +EXPORT_SYMBOL vmlinux 0xe690b4f3 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xe692f5c8 jbd2_submit_inode_data +EXPORT_SYMBOL vmlinux 0xe6a461f4 fs_param_is_string +EXPORT_SYMBOL vmlinux 0xe6a8a7fe mipi_dsi_driver_unregister EXPORT_SYMBOL vmlinux 0xe6d2458e do_trace_netlink_extack -EXPORT_SYMBOL vmlinux 0xe6ed7f74 locks_remove_posix -EXPORT_SYMBOL vmlinux 0xe703b645 sk_dst_check -EXPORT_SYMBOL vmlinux 0xe73ab5ad blk_post_runtime_resume -EXPORT_SYMBOL vmlinux 0xe7672a3d truncate_pagecache -EXPORT_SYMBOL vmlinux 0xe76b0e4a send_sig_info +EXPORT_SYMBOL vmlinux 0xe6d6ee48 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xe6ff6398 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xe701b679 pci_ep_cfs_add_epc_group +EXPORT_SYMBOL vmlinux 0xe7080bb6 sock_bindtoindex +EXPORT_SYMBOL vmlinux 0xe70cc0b8 tcf_idr_create +EXPORT_SYMBOL vmlinux 0xe7189d22 hdmi_infoframe_log +EXPORT_SYMBOL vmlinux 0xe77074ea scsi_device_get +EXPORT_SYMBOL vmlinux 0xe773f95a ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xe77449d3 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xe77f84dc from_kuid +EXPORT_SYMBOL vmlinux 0xe78fffd2 mdiobus_free +EXPORT_SYMBOL vmlinux 0xe7950217 input_set_max_poll_interval +EXPORT_SYMBOL vmlinux 0xe79604f6 clocksource_unregister +EXPORT_SYMBOL vmlinux 0xe7a2eb7d of_device_is_available +EXPORT_SYMBOL vmlinux 0xe7a54d0e pcie_get_width_cap +EXPORT_SYMBOL vmlinux 0xe7aef649 proc_set_size +EXPORT_SYMBOL vmlinux 0xe7bbd9ec balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0xe7c3c573 filemap_page_mkwrite EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next -EXPORT_SYMBOL vmlinux 0xe7e164db vm_map_pages_zero +EXPORT_SYMBOL vmlinux 0xe7ddfc48 tcp_openreq_init_rwin EXPORT_SYMBOL vmlinux 0xe7e21861 down_write_killable -EXPORT_SYMBOL vmlinux 0xe804eda3 tcf_exts_destroy -EXPORT_SYMBOL vmlinux 0xe80b2e00 xfrm_replay_seqhi +EXPORT_SYMBOL vmlinux 0xe7f233a9 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xe7f64d60 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xe8028472 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xe8030e42 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xe80b5aa2 retire_super +EXPORT_SYMBOL vmlinux 0xe80b63cc dquot_quota_on EXPORT_SYMBOL vmlinux 0xe816048f tty_termios_copy_hw -EXPORT_SYMBOL vmlinux 0xe81c9fba skb_csum_hwoffload_help -EXPORT_SYMBOL vmlinux 0xe82586cc pci_iomap_range -EXPORT_SYMBOL vmlinux 0xe829db49 skb_append -EXPORT_SYMBOL vmlinux 0xe8382336 sock_alloc -EXPORT_SYMBOL vmlinux 0xe84131a1 vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0xe81a0ac5 devfreq_suspend_device EXPORT_SYMBOL vmlinux 0xe84884b5 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0xe859bbe0 mipi_dsi_device_unregister EXPORT_SYMBOL vmlinux 0xe85f2123 acpi_tb_unload_table -EXPORT_SYMBOL vmlinux 0xe8670bf9 scsi_alloc_sgtables -EXPORT_SYMBOL vmlinux 0xe8726d44 try_module_get -EXPORT_SYMBOL vmlinux 0xe8803169 __ps2_command -EXPORT_SYMBOL vmlinux 0xe88ff6ad mmc_wait_for_req -EXPORT_SYMBOL vmlinux 0xe898954c inet_csk_delete_keepalive_timer -EXPORT_SYMBOL vmlinux 0xe89e3dae mipi_dsi_picture_parameter_set +EXPORT_SYMBOL vmlinux 0xe882fee0 sync_blockdev_range +EXPORT_SYMBOL vmlinux 0xe8877277 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0xe8a671f2 add_to_page_cache_lru +EXPORT_SYMBOL vmlinux 0xe8af762d jbd2_fc_wait_bufs +EXPORT_SYMBOL vmlinux 0xe8b1315a security_path_unlink EXPORT_SYMBOL vmlinux 0xe8d285b2 nla_policy_len -EXPORT_SYMBOL vmlinux 0xe8dca311 iterate_supers_type -EXPORT_SYMBOL vmlinux 0xe8ee6b03 devfreq_remove_device +EXPORT_SYMBOL vmlinux 0xe8de4876 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xe8f01d24 crypto_sha256_finup EXPORT_SYMBOL vmlinux 0xe8f42d8c irq_stat -EXPORT_SYMBOL vmlinux 0xe8f66e17 init_special_inode -EXPORT_SYMBOL vmlinux 0xe8f794f0 dcache_readdir -EXPORT_SYMBOL vmlinux 0xe8fd5897 inet_frags_init EXPORT_SYMBOL vmlinux 0xe909997a bitmap_print_list_to_buf -EXPORT_SYMBOL vmlinux 0xe90a1136 ip_cmsg_recv_offset EXPORT_SYMBOL vmlinux 0xe914e41e strcpy -EXPORT_SYMBOL vmlinux 0xe92114c1 security_path_mknod -EXPORT_SYMBOL vmlinux 0xe934dee4 cdrom_dummy_generic_packet -EXPORT_SYMBOL vmlinux 0xe94103e1 devm_input_allocate_device -EXPORT_SYMBOL vmlinux 0xe947b03f xfrm6_protocol_register +EXPORT_SYMBOL vmlinux 0xe9364eae simple_getattr EXPORT_SYMBOL vmlinux 0xe947f97d node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0xe948a039 genphy_loopback EXPORT_SYMBOL vmlinux 0xe94fb63f __cond_resched_lock EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino -EXPORT_SYMBOL vmlinux 0xe95ba34a get_user_pages_unlocked -EXPORT_SYMBOL vmlinux 0xe96f6df7 mmc_remove_host -EXPORT_SYMBOL vmlinux 0xe9784333 max8998_update_reg -EXPORT_SYMBOL vmlinux 0xe9a374a1 dma_find_channel -EXPORT_SYMBOL vmlinux 0xe9da7857 dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0xe95545db of_translate_address +EXPORT_SYMBOL vmlinux 0xe9597b5f crypto_sha512_update +EXPORT_SYMBOL vmlinux 0xe95e355a inet6_bind +EXPORT_SYMBOL vmlinux 0xe95f28fe pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0xe99f372c phy_attached_info +EXPORT_SYMBOL vmlinux 0xe99f5640 request_key_tag +EXPORT_SYMBOL vmlinux 0xe9a62b31 vme_dma_list_exec +EXPORT_SYMBOL vmlinux 0xe9b335fd tcp_poll +EXPORT_SYMBOL vmlinux 0xe9b4037e mipi_dsi_dcs_enter_sleep_mode +EXPORT_SYMBOL vmlinux 0xe9b4c7cd udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xe9d9c172 find_vma_intersection EXPORT_SYMBOL vmlinux 0xe9dc12a4 zstd_get_error_name -EXPORT_SYMBOL vmlinux 0xe9e0fd11 of_translate_dma_address -EXPORT_SYMBOL vmlinux 0xe9e1c62d generic_permission EXPORT_SYMBOL vmlinux 0xe9e8faeb efi_tpm_final_log_size +EXPORT_SYMBOL vmlinux 0xe9efd605 find_inode_nowait EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize -EXPORT_SYMBOL vmlinux 0xe9f77d25 devm_memunmap -EXPORT_SYMBOL vmlinux 0xe9fbf97a free_buffer_head -EXPORT_SYMBOL vmlinux 0xea0e65e9 get_tree_nodev -EXPORT_SYMBOL vmlinux 0xea0ec154 unregister_netdevice_notifier_net -EXPORT_SYMBOL vmlinux 0xea26df9a kernel_param_unlock -EXPORT_SYMBOL vmlinux 0xea36c386 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xea032b54 input_register_handler +EXPORT_SYMBOL vmlinux 0xea30930c ipv6_dev_mc_dec EXPORT_SYMBOL vmlinux 0xea3c8e4e scsilun_to_int -EXPORT_SYMBOL vmlinux 0xea5521f6 __ip4_datagram_connect EXPORT_SYMBOL vmlinux 0xea6f9a36 zlib_deflate_dfltcc_enabled -EXPORT_SYMBOL vmlinux 0xea74137b sock_gettstamp -EXPORT_SYMBOL vmlinux 0xea7a0fa1 max8925_reg_write -EXPORT_SYMBOL vmlinux 0xea7d0527 netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0xea75ce06 vfs_statfs EXPORT_SYMBOL vmlinux 0xea7daa08 __video_get_options -EXPORT_SYMBOL vmlinux 0xea966b30 jbd2_complete_transaction -EXPORT_SYMBOL vmlinux 0xeab52f7d generic_file_write_iter +EXPORT_SYMBOL vmlinux 0xea83f9d6 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xea8545d3 flow_rule_match_icmp +EXPORT_SYMBOL vmlinux 0xea88324d rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0xea956895 input_mt_destroy_slots EXPORT_SYMBOL vmlinux 0xeab62217 set_security_override +EXPORT_SYMBOL vmlinux 0xeab625ff pci_fixup_cardbus EXPORT_SYMBOL vmlinux 0xeab6f4c4 acpi_check_resource_conflict -EXPORT_SYMBOL vmlinux 0xeac8fb91 dev_set_alias -EXPORT_SYMBOL vmlinux 0xead62491 ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xeac5c213 devm_devfreq_add_device +EXPORT_SYMBOL vmlinux 0xead5a17a __cgroup_bpf_run_filter_sk +EXPORT_SYMBOL vmlinux 0xead63a30 of_find_property EXPORT_SYMBOL vmlinux 0xeae2bcd3 mtree_alloc_rrange EXPORT_SYMBOL vmlinux 0xeae9ab6f lockref_get EXPORT_SYMBOL vmlinux 0xeafc141f __posix_acl_chmod -EXPORT_SYMBOL vmlinux 0xeafeeda8 vlan_vid_del -EXPORT_SYMBOL vmlinux 0xeb1ffde9 tso_start +EXPORT_SYMBOL vmlinux 0xeb011f4f udp_disconnect +EXPORT_SYMBOL vmlinux 0xeb0423ae xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xeb0b67ff ndisc_ns_create +EXPORT_SYMBOL vmlinux 0xeb17fbfd __put_user_ns +EXPORT_SYMBOL vmlinux 0xeb2294f5 kernel_sock_ip_overhead EXPORT_SYMBOL vmlinux 0xeb233a45 __kmalloc -EXPORT_SYMBOL vmlinux 0xeb2a3fb6 tty_insert_flip_string_flags EXPORT_SYMBOL vmlinux 0xeb31aee8 acpi_trace_point EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end -EXPORT_SYMBOL vmlinux 0xeb3c4c79 ether_setup EXPORT_SYMBOL vmlinux 0xeb44339a free_pages_exact -EXPORT_SYMBOL vmlinux 0xeb46b632 mmc_gpiod_request_cd_irq -EXPORT_SYMBOL vmlinux 0xeb4b27cd add_watch_to_object -EXPORT_SYMBOL vmlinux 0xeb7582f6 genphy_setup_forced +EXPORT_SYMBOL vmlinux 0xeb515b56 register_netdevice_notifier_net +EXPORT_SYMBOL vmlinux 0xeb57d3cc skb_trim +EXPORT_SYMBOL vmlinux 0xeb6503bf get_user_pages_remote +EXPORT_SYMBOL vmlinux 0xeb7309d3 kernel_getsockname EXPORT_SYMBOL vmlinux 0xeb7f6046 acpi_get_devices EXPORT_SYMBOL vmlinux 0xeb9eef52 match_uint -EXPORT_SYMBOL vmlinux 0xeba4ca13 __blk_rq_map_sg -EXPORT_SYMBOL vmlinux 0xebae8625 xfrm_state_delete -EXPORT_SYMBOL vmlinux 0xebafc09e zap_page_range_single -EXPORT_SYMBOL vmlinux 0xebb24219 xp_raw_get_data -EXPORT_SYMBOL vmlinux 0xebde1811 phy_ethtool_get_wol -EXPORT_SYMBOL vmlinux 0xebe04222 security_sock_rcv_skb -EXPORT_SYMBOL vmlinux 0xec006605 fwnode_phy_find_device -EXPORT_SYMBOL vmlinux 0xec11f35d flow_rule_match_icmp -EXPORT_SYMBOL vmlinux 0xec16774c param_get_ullong +EXPORT_SYMBOL vmlinux 0xebb12944 bdev_start_io_acct +EXPORT_SYMBOL vmlinux 0xebb60164 noop_llseek +EXPORT_SYMBOL vmlinux 0xebe6fe55 page_pool_alloc_pages +EXPORT_SYMBOL vmlinux 0xec1a3fb0 phy_ethtool_ksettings_set +EXPORT_SYMBOL vmlinux 0xec1d2330 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xec2108b5 filemap_get_folios_tag EXPORT_SYMBOL vmlinux 0xec2b8a42 acpi_walk_namespace -EXPORT_SYMBOL vmlinux 0xec32b187 udp_read_skb EXPORT_SYMBOL vmlinux 0xec33c668 __SCK__tp_func_spi_transfer_start +EXPORT_SYMBOL vmlinux 0xec3a410c flow_rule_alloc EXPORT_SYMBOL vmlinux 0xec46f6e4 __irq_regs +EXPORT_SYMBOL vmlinux 0xec4d669f scsi_test_unit_ready EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys -EXPORT_SYMBOL vmlinux 0xec536952 mdiobus_scan_c22 -EXPORT_SYMBOL vmlinux 0xec550eb7 nosteal_pipe_buf_ops -EXPORT_SYMBOL vmlinux 0xec5bed0f serial8250_do_set_termios -EXPORT_SYMBOL vmlinux 0xec751a6c jbd2_journal_get_write_access -EXPORT_SYMBOL vmlinux 0xec779629 pci_find_resource -EXPORT_SYMBOL vmlinux 0xec789448 arp_tbl -EXPORT_SYMBOL vmlinux 0xec7ee161 twl6040_set_bits -EXPORT_SYMBOL vmlinux 0xec8f36c0 flow_rule_match_pppoe -EXPORT_SYMBOL vmlinux 0xec9956b8 iterate_dir -EXPORT_SYMBOL vmlinux 0xec998008 security_inode_init_security +EXPORT_SYMBOL vmlinux 0xec57cae1 sk_alloc EXPORT_SYMBOL vmlinux 0xec9a30ec wait_for_completion_io_timeout -EXPORT_SYMBOL vmlinux 0xec9a799f netdev_features_change -EXPORT_SYMBOL vmlinux 0xec9fe7ee ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xec9c9c41 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0xeca357d8 pm860x_bulk_read EXPORT_SYMBOL vmlinux 0xeca957d1 __bitmap_and -EXPORT_SYMBOL vmlinux 0xeca98bd7 xfrm_state_walk_done EXPORT_SYMBOL vmlinux 0xecac8407 __memcpy -EXPORT_SYMBOL vmlinux 0xecade9be param_ops_uint -EXPORT_SYMBOL vmlinux 0xece14d36 locks_lock_inode_wait -EXPORT_SYMBOL vmlinux 0xece1849a netlink_ack +EXPORT_SYMBOL vmlinux 0xecc4b9e7 __block_write_full_folio +EXPORT_SYMBOL vmlinux 0xecd00863 mipi_dsi_driver_register_full +EXPORT_SYMBOL vmlinux 0xece508cd inet_recvmsg EXPORT_SYMBOL vmlinux 0xece784c2 rb_first -EXPORT_SYMBOL vmlinux 0xecf18a9d pci_release_selected_regions EXPORT_SYMBOL vmlinux 0xed00c4fb acpi_os_printf -EXPORT_SYMBOL vmlinux 0xed1d597e inet_csk_reqsk_queue_drop -EXPORT_SYMBOL vmlinux 0xed2ed6b5 napi_enable -EXPORT_SYMBOL vmlinux 0xed384d59 dmam_pool_create -EXPORT_SYMBOL vmlinux 0xed3b73bb __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xed129432 pnp_register_driver +EXPORT_SYMBOL vmlinux 0xed16c8e2 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xed240d40 textsearch_prepare +EXPORT_SYMBOL vmlinux 0xed2a49c3 scsi_add_device +EXPORT_SYMBOL vmlinux 0xed2a7bd4 set_user_nice +EXPORT_SYMBOL vmlinux 0xed386911 pci_alloc_dev +EXPORT_SYMBOL vmlinux 0xed4b9bef sock_set_mark +EXPORT_SYMBOL vmlinux 0xed4f9fdd security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xed50b53b pci_disable_msix EXPORT_SYMBOL vmlinux 0xed55f929 acpi_os_unmap_generic_address -EXPORT_SYMBOL vmlinux 0xed5974f6 devm_devfreq_add_device EXPORT_SYMBOL vmlinux 0xed656e30 udp_encap_disable EXPORT_SYMBOL vmlinux 0xed6bf28a dma_fence_signal -EXPORT_SYMBOL vmlinux 0xed7efd91 finish_swait -EXPORT_SYMBOL vmlinux 0xed839496 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xed84f7a1 may_umount EXPORT_SYMBOL vmlinux 0xed8a2d95 memset64 +EXPORT_SYMBOL vmlinux 0xed8f383a __skb_checksum_complete_head EXPORT_SYMBOL vmlinux 0xeda2e038 scsi_cmd_allowed +EXPORT_SYMBOL vmlinux 0xeda75986 dm_table_get_md +EXPORT_SYMBOL vmlinux 0xeda9823a key_invalidate EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedbb5f3c clk_hw_register_clkdev EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc060c0 xfrm_state_lookup_byspi EXPORT_SYMBOL vmlinux 0xedc9a15a __xa_store +EXPORT_SYMBOL vmlinux 0xedc9aac3 textsearch_destroy EXPORT_SYMBOL vmlinux 0xedd17b31 sock_get_timeout -EXPORT_SYMBOL vmlinux 0xede11e2a dquot_initialize -EXPORT_SYMBOL vmlinux 0xede25b6b dm_kcopyd_copy -EXPORT_SYMBOL vmlinux 0xede50aec md_integrity_register -EXPORT_SYMBOL vmlinux 0xedf31e68 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xedd83ec8 mipi_dsi_host_unregister +EXPORT_SYMBOL vmlinux 0xedf19f7a fs_bio_set +EXPORT_SYMBOL vmlinux 0xedf65842 request_firmware_nowait EXPORT_SYMBOL vmlinux 0xedf99f8e commit_creds EXPORT_SYMBOL vmlinux 0xee0118df aperture_remove_conflicting_devices -EXPORT_SYMBOL vmlinux 0xee0d52fe vme_unregister_bridge -EXPORT_SYMBOL vmlinux 0xee1019a4 genphy_resume -EXPORT_SYMBOL vmlinux 0xee228390 devfreq_register_notifier +EXPORT_SYMBOL vmlinux 0xee20a61c release_sock EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable -EXPORT_SYMBOL vmlinux 0xee32a339 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0xee2d3374 napi_gro_receive +EXPORT_SYMBOL vmlinux 0xee3352aa param_set_int +EXPORT_SYMBOL vmlinux 0xee35678f d_instantiate_new EXPORT_SYMBOL vmlinux 0xee58e970 fb_add_videomode -EXPORT_SYMBOL vmlinux 0xee5f801d textsearch_unregister -EXPORT_SYMBOL vmlinux 0xee66af33 vfs_iter_read -EXPORT_SYMBOL vmlinux 0xee6b1b09 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xee5e9129 dget_parent +EXPORT_SYMBOL vmlinux 0xee5f0df5 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xee60ffbe inet6_offloads EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices EXPORT_SYMBOL vmlinux 0xee883b06 __vmalloc_array -EXPORT_SYMBOL vmlinux 0xee885434 input_open_device EXPORT_SYMBOL vmlinux 0xee8c02e9 vprintk_emit EXPORT_SYMBOL vmlinux 0xee8d74d6 jiffies64_to_nsecs EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder -EXPORT_SYMBOL vmlinux 0xeea58a13 md_register_thread +EXPORT_SYMBOL vmlinux 0xeea41327 xfrm_state_walk EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap -EXPORT_SYMBOL vmlinux 0xeefea19f task_lookup_next_fd_rcu -EXPORT_SYMBOL vmlinux 0xef049201 mmc_can_trim -EXPORT_SYMBOL vmlinux 0xef1aa59a of_get_parent +EXPORT_SYMBOL vmlinux 0xeeafa663 d_instantiate_anon +EXPORT_SYMBOL vmlinux 0xeeb1de79 ip_frag_init +EXPORT_SYMBOL vmlinux 0xeeb35956 fwnode_irq_get_byname +EXPORT_SYMBOL vmlinux 0xeebc6f78 poll_initwait +EXPORT_SYMBOL vmlinux 0xeec3dd9c __mmap_lock_do_trace_acquire_returned +EXPORT_SYMBOL vmlinux 0xeee015e3 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0xeee97f31 inet_frag_find +EXPORT_SYMBOL vmlinux 0xef185080 bioset_integrity_create EXPORT_SYMBOL vmlinux 0xef23cc16 _atomic_dec_and_raw_lock -EXPORT_SYMBOL vmlinux 0xef25a759 netdev_crit -EXPORT_SYMBOL vmlinux 0xef31f9cd sock_set_priority -EXPORT_SYMBOL vmlinux 0xef58b517 input_get_timestamp -EXPORT_SYMBOL vmlinux 0xef62d2cb i2c_verify_adapter -EXPORT_SYMBOL vmlinux 0xef64afa1 cfb_fillrect -EXPORT_SYMBOL vmlinux 0xef6cbdf8 netdev_lower_get_next_private -EXPORT_SYMBOL vmlinux 0xef746c41 amba_release_regions -EXPORT_SYMBOL vmlinux 0xef8bd2b5 vfs_rename -EXPORT_SYMBOL vmlinux 0xef9dc36f setattr_should_drop_suidgid +EXPORT_SYMBOL vmlinux 0xef444307 netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0xef5c0317 kernel_getpeername +EXPORT_SYMBOL vmlinux 0xef8c65c5 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xefa1e469 dma_get_sgtable_attrs +EXPORT_SYMBOL vmlinux 0xefabc666 pci_get_class EXPORT_SYMBOL vmlinux 0xefaf2e4f tcf_queue_work -EXPORT_SYMBOL vmlinux 0xefb84c23 __sock_i_ino -EXPORT_SYMBOL vmlinux 0xefbabe34 slab_build_skb -EXPORT_SYMBOL vmlinux 0xefc5a137 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xefcc5f22 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xefce7d4d qdisc_put EXPORT_SYMBOL vmlinux 0xefcea2e7 acpi_warning -EXPORT_SYMBOL vmlinux 0xefd167cb end_page_writeback +EXPORT_SYMBOL vmlinux 0xefd516e7 inet6_csk_route_req +EXPORT_SYMBOL vmlinux 0xefe969f8 fget_raw EXPORT_SYMBOL vmlinux 0xefee932c acpi_get_data_full EXPORT_SYMBOL vmlinux 0xefeefc09 __SCK__tp_func_dma_fence_emit +EXPORT_SYMBOL vmlinux 0xeff003f3 nf_log_bind_pf EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list -EXPORT_SYMBOL vmlinux 0xf00123e1 neigh_parms_alloc -EXPORT_SYMBOL vmlinux 0xf01eb786 mipi_dsi_device_register_full -EXPORT_SYMBOL vmlinux 0xf05ea826 __dev_get_by_name -EXPORT_SYMBOL vmlinux 0xf06e329a tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xf0081a8b mmc_erase +EXPORT_SYMBOL vmlinux 0xf0153fef pskb_trim_rcsum_slow +EXPORT_SYMBOL vmlinux 0xf016c12d sock_no_getname +EXPORT_SYMBOL vmlinux 0xf0199862 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xf02d66e9 jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0xf0679b74 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xf075bc2a reuseport_detach_sock EXPORT_SYMBOL vmlinux 0xf07b07f6 sg_free_append_table EXPORT_SYMBOL vmlinux 0xf07b8a76 radix_tree_gang_lookup_tag -EXPORT_SYMBOL vmlinux 0xf07c8eed ww_mutex_lock -EXPORT_SYMBOL vmlinux 0xf080f68d flow_rule_match_vlan -EXPORT_SYMBOL vmlinux 0xf09181f2 pci_bus_write_config_dword -EXPORT_SYMBOL vmlinux 0xf09803b0 param_set_bool +EXPORT_SYMBOL vmlinux 0xf0938eea truncate_inode_pages EXPORT_SYMBOL vmlinux 0xf09b5d9a get_zeroed_page -EXPORT_SYMBOL vmlinux 0xf0e0cfc7 input_grab_device -EXPORT_SYMBOL vmlinux 0xf0e2a383 skb_clone_sk -EXPORT_SYMBOL vmlinux 0xf0e2d90a dma_mmap_attrs -EXPORT_SYMBOL vmlinux 0xf0eabafc dquot_acquire -EXPORT_SYMBOL vmlinux 0xf0f96899 ethtool_get_phc_vclocks +EXPORT_SYMBOL vmlinux 0xf0c530c4 page_readlink +EXPORT_SYMBOL vmlinux 0xf0c70b31 file_ns_capable +EXPORT_SYMBOL vmlinux 0xf0cd4e58 dev_addr_del +EXPORT_SYMBOL vmlinux 0xf0d9fbb0 __do_once_done +EXPORT_SYMBOL vmlinux 0xf0e3be6d nvdimm_namespace_common_probe +EXPORT_SYMBOL vmlinux 0xf0eca6c7 _dev_warn +EXPORT_SYMBOL vmlinux 0xf0f2e771 __scsi_device_lookup_by_target EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail EXPORT_SYMBOL vmlinux 0xf11dd46e _page_poisoning_enabled_early -EXPORT_SYMBOL vmlinux 0xf15acf1c bmap -EXPORT_SYMBOL vmlinux 0xf15ef5fc input_set_capability -EXPORT_SYMBOL vmlinux 0xf162a7f6 rfkill_alloc -EXPORT_SYMBOL vmlinux 0xf16f1979 devm_nvmem_cell_put -EXPORT_SYMBOL vmlinux 0xf1791b01 dup_iter -EXPORT_SYMBOL vmlinux 0xf1867a12 tcp_make_synack -EXPORT_SYMBOL vmlinux 0xf1941e71 of_device_alloc +EXPORT_SYMBOL vmlinux 0xf1334290 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xf15e045e flow_rule_match_enc_keyid +EXPORT_SYMBOL vmlinux 0xf15f7d6d pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xf177cb33 copy_string_kernel +EXPORT_SYMBOL vmlinux 0xf186c643 vma_alloc_folio +EXPORT_SYMBOL vmlinux 0xf18d573c mount_subtree +EXPORT_SYMBOL vmlinux 0xf18dfcc1 flush_signals EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps EXPORT_SYMBOL vmlinux 0xf1969a8e __usecs_to_jiffies EXPORT_SYMBOL vmlinux 0xf1a2f66c trace_print_hex_seq EXPORT_SYMBOL vmlinux 0xf1a65f7b zstd_reset_dstream -EXPORT_SYMBOL vmlinux 0xf1ae39d1 dst_cow_metrics_generic -EXPORT_SYMBOL vmlinux 0xf1c51e4d nd_integrity_init -EXPORT_SYMBOL vmlinux 0xf1cd8318 of_phy_deregister_fixed_link +EXPORT_SYMBOL vmlinux 0xf1b60a0b blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xf1c20d87 mipi_dsi_turn_on_peripheral +EXPORT_SYMBOL vmlinux 0xf1c27524 user_path_create EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy EXPORT_SYMBOL vmlinux 0xf1e046cc panic +EXPORT_SYMBOL vmlinux 0xf1e5309e folio_wait_private_2_killable +EXPORT_SYMBOL vmlinux 0xf1e5fa99 sock_no_linger EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun -EXPORT_SYMBOL vmlinux 0xf1ecb2c5 jbd2_journal_free_reserved EXPORT_SYMBOL vmlinux 0xf1f88a0e dm_kcopyd_prepare_callback -EXPORT_SYMBOL vmlinux 0xf1fe7ce2 tcf_em_tree_dump -EXPORT_SYMBOL vmlinux 0xf1ffe1b8 __mmap_lock_do_trace_start_locking -EXPORT_SYMBOL vmlinux 0xf2108d16 fwnode_mdiobus_register_phy -EXPORT_SYMBOL vmlinux 0xf21b32aa iov_iter_kvec -EXPORT_SYMBOL vmlinux 0xf23b7293 __folio_batch_release +EXPORT_SYMBOL vmlinux 0xf2041b6a give_up_console +EXPORT_SYMBOL vmlinux 0xf20db77e arp_send +EXPORT_SYMBOL vmlinux 0xf21b0582 kill_fasync +EXPORT_SYMBOL vmlinux 0xf21cad18 of_clk_get +EXPORT_SYMBOL vmlinux 0xf23ee6e6 phy_support_asym_pause EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in -EXPORT_SYMBOL vmlinux 0xf24fd3bc udp_lib_unhash -EXPORT_SYMBOL vmlinux 0xf2527d25 __put_user_ns -EXPORT_SYMBOL vmlinux 0xf25f15d4 pnp_device_attach +EXPORT_SYMBOL vmlinux 0xf252614f eth_header_cache_update EXPORT_SYMBOL vmlinux 0xf2628676 zstd_compress_cctx -EXPORT_SYMBOL vmlinux 0xf26859f9 mfd_remove_devices_late -EXPORT_SYMBOL vmlinux 0xf270ad6f phy_attached_print +EXPORT_SYMBOL vmlinux 0xf27a5b86 rw_verify_area EXPORT_SYMBOL vmlinux 0xf28cf0ae __hw_addr_init EXPORT_SYMBOL vmlinux 0xf29403e5 acpi_install_table_handler -EXPORT_SYMBOL vmlinux 0xf2a08248 nd_dev_to_uuid +EXPORT_SYMBOL vmlinux 0xf29923df __folio_cancel_dirty EXPORT_SYMBOL vmlinux 0xf2a8efae dm_kcopyd_do_callback -EXPORT_SYMBOL vmlinux 0xf2b64fb5 key_type_keyring -EXPORT_SYMBOL vmlinux 0xf2bc3573 proc_create EXPORT_SYMBOL vmlinux 0xf2c43f3f zlib_deflate EXPORT_SYMBOL vmlinux 0xf2e5bd87 security_free_mnt_opts EXPORT_SYMBOL vmlinux 0xf2f53617 memregion_free -EXPORT_SYMBOL vmlinux 0xf3275ce4 sk_common_release -EXPORT_SYMBOL vmlinux 0xf32c35f1 pneigh_lookup -EXPORT_SYMBOL vmlinux 0xf331f7fe param_get_invbool -EXPORT_SYMBOL vmlinux 0xf3372cf3 mipi_dsi_device_unregister -EXPORT_SYMBOL vmlinux 0xf337b411 pci_enable_msi -EXPORT_SYMBOL vmlinux 0xf339fc56 sunxi_sram_claim -EXPORT_SYMBOL vmlinux 0xf33ec59f __check_sticky -EXPORT_SYMBOL vmlinux 0xf3461bd6 netdev_emerg +EXPORT_SYMBOL vmlinux 0xf30471ca single_open_size +EXPORT_SYMBOL vmlinux 0xf30cd853 blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0xf31c49f8 kthread_create_on_cpu +EXPORT_SYMBOL vmlinux 0xf32f6db2 tls_handshake_cancel +EXPORT_SYMBOL vmlinux 0xf343c24b vmap EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf346b4c3 md_wait_for_blocked_rdev EXPORT_SYMBOL vmlinux 0xf348ddba sbi_err_map_linux_errno EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier -EXPORT_SYMBOL vmlinux 0xf3604aa1 skb_queue_purge -EXPORT_SYMBOL vmlinux 0xf36b45e0 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xf3553983 tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0xf35866b4 nd_device_notify +EXPORT_SYMBOL vmlinux 0xf362ca2e qdisc_class_hash_grow EXPORT_SYMBOL vmlinux 0xf36f42a9 slhc_uncompress +EXPORT_SYMBOL vmlinux 0xf370b4d1 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0xf372b9f1 genl_notify +EXPORT_SYMBOL vmlinux 0xf3739184 rt_dst_clone +EXPORT_SYMBOL vmlinux 0xf378fd08 filemap_fdatawait_range_keep_errors +EXPORT_SYMBOL vmlinux 0xf37935b3 __ip_queue_xmit EXPORT_SYMBOL vmlinux 0xf390f6f1 __bitmap_andnot EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default EXPORT_SYMBOL vmlinux 0xf3932313 mb_cache_entry_wait_unused +EXPORT_SYMBOL vmlinux 0xf3957342 udp_prot EXPORT_SYMBOL vmlinux 0xf3a57892 release_dentry_name_snapshot -EXPORT_SYMBOL vmlinux 0xf3ae550e mmc_add_host -EXPORT_SYMBOL vmlinux 0xf3b3126b md_write_end -EXPORT_SYMBOL vmlinux 0xf3c0a297 dcb_getrewr_prio_dscp_mask_map +EXPORT_SYMBOL vmlinux 0xf3b23a10 ethtool_aggregate_pause_stats +EXPORT_SYMBOL vmlinux 0xf3b78ad1 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xf3ca4e58 mipi_dsi_dcs_set_tear_off +EXPORT_SYMBOL vmlinux 0xf3cb3b44 tcf_unregister_action EXPORT_SYMBOL vmlinux 0xf3cfa76a __nla_put -EXPORT_SYMBOL vmlinux 0xf3de5608 mmc_erase +EXPORT_SYMBOL vmlinux 0xf3d47352 pnp_get_resource +EXPORT_SYMBOL vmlinux 0xf3d7a592 proto_register EXPORT_SYMBOL vmlinux 0xf3e0e1df allocate_resource -EXPORT_SYMBOL vmlinux 0xf40bc976 mmc_sw_reset -EXPORT_SYMBOL vmlinux 0xf42b8414 skb_checksum_help -EXPORT_SYMBOL vmlinux 0xf43397f1 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0xf3f7012e sock_wmalloc +EXPORT_SYMBOL vmlinux 0xf4051c71 fscrypt_ioctl_get_policy EXPORT_SYMBOL vmlinux 0xf43d2caa acpi_remove_interface -EXPORT_SYMBOL vmlinux 0xf44200ad nlmsg_notify -EXPORT_SYMBOL vmlinux 0xf44435ad input_set_keycode -EXPORT_SYMBOL vmlinux 0xf4469245 __nlmsg_put -EXPORT_SYMBOL vmlinux 0xf448c421 fscrypt_zeroout_range EXPORT_SYMBOL vmlinux 0xf44a904a net_ns_barrier EXPORT_SYMBOL vmlinux 0xf44f852a phy_check_valid -EXPORT_SYMBOL vmlinux 0xf4535a7d __folio_alloc -EXPORT_SYMBOL vmlinux 0xf45e4630 __skb_gso_segment -EXPORT_SYMBOL vmlinux 0xf46a9b2d of_get_next_available_child -EXPORT_SYMBOL vmlinux 0xf4746a41 __nd_driver_register +EXPORT_SYMBOL vmlinux 0xf454448f pci_disable_ptm +EXPORT_SYMBOL vmlinux 0xf45ce3ae _copy_to_iter +EXPORT_SYMBOL vmlinux 0xf45d852d console_start +EXPORT_SYMBOL vmlinux 0xf46aacf4 fscrypt_zeroout_range EXPORT_SYMBOL vmlinux 0xf474c21c bitmap_print_to_pagebuf EXPORT_SYMBOL vmlinux 0xf474fdcb kfree_const -EXPORT_SYMBOL vmlinux 0xf48c2ca9 input_get_poll_interval -EXPORT_SYMBOL vmlinux 0xf490cab7 pci_select_bars -EXPORT_SYMBOL vmlinux 0xf49320b3 inet_sk_set_state -EXPORT_SYMBOL vmlinux 0xf4b35841 phy_start_cable_test +EXPORT_SYMBOL vmlinux 0xf47ff328 __breadahead +EXPORT_SYMBOL vmlinux 0xf494128d textsearch_unregister +EXPORT_SYMBOL vmlinux 0xf4b612f5 vfs_create_mount EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4d9af17 scsi_alloc_sgtables EXPORT_SYMBOL vmlinux 0xf4db35bc stpcpy -EXPORT_SYMBOL vmlinux 0xf4eeaf4c acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0xf4e85576 __register_nls EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock -EXPORT_SYMBOL vmlinux 0xf4fd8165 vfs_copy_file_range -EXPORT_SYMBOL vmlinux 0xf50491e3 phy_ethtool_set_link_ksettings -EXPORT_SYMBOL vmlinux 0xf513f62b tcf_action_check_ctrlact -EXPORT_SYMBOL vmlinux 0xf515ac96 devm_free_irq -EXPORT_SYMBOL vmlinux 0xf515dbe1 flow_block_cb_decref -EXPORT_SYMBOL vmlinux 0xf52a726f netif_tx_unlock -EXPORT_SYMBOL vmlinux 0xf5346fe8 xsk_set_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0xf4f64dfd dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xf538f03f blk_pre_runtime_resume EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy -EXPORT_SYMBOL vmlinux 0xf550c431 security_path_unlink -EXPORT_SYMBOL vmlinux 0xf55e5fd1 security_sctp_bind_connect -EXPORT_SYMBOL vmlinux 0xf55eeac4 shrink_dcache_sb -EXPORT_SYMBOL vmlinux 0xf5687aed devm_aperture_acquire_for_platform_device -EXPORT_SYMBOL vmlinux 0xf5982bf4 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xf541ca5d fb_set_suspend +EXPORT_SYMBOL vmlinux 0xf5618060 mr_vif_seq_next +EXPORT_SYMBOL vmlinux 0xf56a6b5b pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xf581bbf4 d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0xf597f9be dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0xf59d8929 flow_rule_match_tcp +EXPORT_SYMBOL vmlinux 0xf5a2075a skb_tunnel_check_pmtu EXPORT_SYMBOL vmlinux 0xf5a20ed2 __genradix_prealloc -EXPORT_SYMBOL vmlinux 0xf5ad510e netdev_master_upper_dev_get -EXPORT_SYMBOL vmlinux 0xf5cfcbff mdiobus_c45_write_nested -EXPORT_SYMBOL vmlinux 0xf5dc815e blk_sync_queue -EXPORT_SYMBOL vmlinux 0xf5e519ff security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xf5d0869f iov_iter_zero EXPORT_SYMBOL vmlinux 0xf5e754eb queued_write_lock_slowpath EXPORT_SYMBOL vmlinux 0xf5e7ea40 ktime_get_coarse_ts64 -EXPORT_SYMBOL vmlinux 0xf5f2892f vlan_vid_add -EXPORT_SYMBOL vmlinux 0xf5f70163 dst_alloc -EXPORT_SYMBOL vmlinux 0xf62f9a7d locks_copy_lock -EXPORT_SYMBOL vmlinux 0xf630ae2f ip_output -EXPORT_SYMBOL vmlinux 0xf63e4fe0 tls_server_hello_psk -EXPORT_SYMBOL vmlinux 0xf63fa356 iommu_put_resv_regions +EXPORT_SYMBOL vmlinux 0xf5f352fb redraw_screen +EXPORT_SYMBOL vmlinux 0xf617c433 tty_do_resize +EXPORT_SYMBOL vmlinux 0xf63c008b neigh_for_each EXPORT_SYMBOL vmlinux 0xf643d104 hsiphash_4u32 -EXPORT_SYMBOL vmlinux 0xf653764e devfreq_monitor_stop EXPORT_SYMBOL vmlinux 0xf665f74f sock_load_diag_module -EXPORT_SYMBOL vmlinux 0xf6809329 simple_lookup +EXPORT_SYMBOL vmlinux 0xf6675244 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xf66d8bab reuseport_detach_prog +EXPORT_SYMBOL vmlinux 0xf67d22be scsi_remove_host +EXPORT_SYMBOL vmlinux 0xf6802639 handshake_req_cancel EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier -EXPORT_SYMBOL vmlinux 0xf69913a2 pagecache_isize_extended -EXPORT_SYMBOL vmlinux 0xf6b95de2 filemap_alloc_folio -EXPORT_SYMBOL vmlinux 0xf6b984b2 phy_device_free +EXPORT_SYMBOL vmlinux 0xf6a10f5b gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xf6c1bb6f dm_register_target EXPORT_SYMBOL vmlinux 0xf6c31ac7 ida_alloc_range -EXPORT_SYMBOL vmlinux 0xf6d03379 blk_mq_delay_run_hw_queues EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit -EXPORT_SYMBOL vmlinux 0xf6ef4581 generic_fill_statx_attr -EXPORT_SYMBOL vmlinux 0xf6f3aa92 retire_super EXPORT_SYMBOL vmlinux 0xf6f9d58d init_on_free EXPORT_SYMBOL vmlinux 0xf6fc8791 __bitmap_xor EXPORT_SYMBOL vmlinux 0xf7025202 down_read -EXPORT_SYMBOL vmlinux 0xf70e54f2 rw_verify_area +EXPORT_SYMBOL vmlinux 0xf7177889 blk_mq_destroy_queue +EXPORT_SYMBOL vmlinux 0xf71aa444 d_add_ci +EXPORT_SYMBOL vmlinux 0xf71c5a82 md_wakeup_thread EXPORT_SYMBOL vmlinux 0xf723cbd5 _raw_spin_lock_irq -EXPORT_SYMBOL vmlinux 0xf7295094 file_path -EXPORT_SYMBOL vmlinux 0xf729f586 unix_destruct_scm -EXPORT_SYMBOL vmlinux 0xf72d95ac xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xf72e5e1e wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xf72efb30 simple_release_fs EXPORT_SYMBOL vmlinux 0xf7370f56 system_state EXPORT_SYMBOL vmlinux 0xf738d1be register_blocking_lsm_notifier -EXPORT_SYMBOL vmlinux 0xf742daaa netdev_lower_state_changed -EXPORT_SYMBOL vmlinux 0xf75dfcd0 sock_diag_put_filterinfo -EXPORT_SYMBOL vmlinux 0xf75f1212 handshake_genl_put -EXPORT_SYMBOL vmlinux 0xf761beba __skb_vlan_pop -EXPORT_SYMBOL vmlinux 0xf776979a pci_request_region -EXPORT_SYMBOL vmlinux 0xf78880a1 netlink_net_capable -EXPORT_SYMBOL vmlinux 0xf7898729 phy_start_aneg -EXPORT_SYMBOL vmlinux 0xf79387f2 i2c_find_device_by_fwnode -EXPORT_SYMBOL vmlinux 0xf7a2a1bc mipi_dsi_attach -EXPORT_SYMBOL vmlinux 0xf7c22e68 configfs_unregister_subsystem -EXPORT_SYMBOL vmlinux 0xf7d22ad0 tcp_read_sock +EXPORT_SYMBOL vmlinux 0xf7443162 netdev_adjacent_change_commit +EXPORT_SYMBOL vmlinux 0xf76e1dc8 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xf78cd26d tcf_get_next_chain +EXPORT_SYMBOL vmlinux 0xf78e5c4c ip_sock_set_mtu_discover +EXPORT_SYMBOL vmlinux 0xf7b83531 phy_set_asym_pause +EXPORT_SYMBOL vmlinux 0xf7bae25f uart_update_timeout EXPORT_SYMBOL vmlinux 0xf7d31de9 kstrtoul_from_user EXPORT_SYMBOL vmlinux 0xf7da6e6f acpi_unload_table -EXPORT_SYMBOL vmlinux 0xf7e2423a ipv4_specific -EXPORT_SYMBOL vmlinux 0xf7edc03c touch_buffer -EXPORT_SYMBOL vmlinux 0xf7ee1a49 __block_write_begin -EXPORT_SYMBOL vmlinux 0xf7f45805 mdio_device_remove -EXPORT_SYMBOL vmlinux 0xf801e2d8 iommu_get_msi_cookie +EXPORT_SYMBOL vmlinux 0xf7ee9f57 phy_attached_info_irq +EXPORT_SYMBOL vmlinux 0xf7f8cdeb __of_parse_phandle_with_args +EXPORT_SYMBOL vmlinux 0xf80861a0 truncate_pagecache_range EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q EXPORT_SYMBOL vmlinux 0xf812cff6 memscan -EXPORT_SYMBOL vmlinux 0xf81af07e uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xf81b0f50 tty_port_open +EXPORT_SYMBOL vmlinux 0xf825ec21 phy_connect_direct +EXPORT_SYMBOL vmlinux 0xf82b2215 flow_block_cb_priv EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf839aae9 fget +EXPORT_SYMBOL vmlinux 0xf83b65a8 vme_dma_list_free +EXPORT_SYMBOL vmlinux 0xf8464542 generic_ro_fops EXPORT_SYMBOL vmlinux 0xf84bd6ee bpf_stats_enabled_key -EXPORT_SYMBOL vmlinux 0xf85fe670 jbd2_journal_check_available_features -EXPORT_SYMBOL vmlinux 0xf8651393 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0xf84fe1ca __skb_ext_del +EXPORT_SYMBOL vmlinux 0xf8525c8a skb_split +EXPORT_SYMBOL vmlinux 0xf854bc18 devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0xf85f49f0 tty_wait_until_sent EXPORT_SYMBOL vmlinux 0xf868c0a0 mempool_alloc -EXPORT_SYMBOL vmlinux 0xf881ad2e noop_llseek -EXPORT_SYMBOL vmlinux 0xf889df29 netif_tx_stop_all_queues -EXPORT_SYMBOL vmlinux 0xf88b8bd2 eth_header_parse_protocol +EXPORT_SYMBOL vmlinux 0xf87b0f0b skb_dump EXPORT_SYMBOL vmlinux 0xf88ecec4 kvmemdup -EXPORT_SYMBOL vmlinux 0xf89f0358 generic_remap_file_range_prep -EXPORT_SYMBOL vmlinux 0xf8ad00c4 reuseport_select_sock -EXPORT_SYMBOL vmlinux 0xf8af5d28 dma_async_tx_descriptor_init -EXPORT_SYMBOL vmlinux 0xf8b29a7b jbd2_journal_force_commit_nested -EXPORT_SYMBOL vmlinux 0xf8c2c5ee mr_mfc_find_parent +EXPORT_SYMBOL vmlinux 0xf8b1c90e tcp_read_skb +EXPORT_SYMBOL vmlinux 0xf8b7f407 scsi_remove_device EXPORT_SYMBOL vmlinux 0xf8d07858 bitmap_from_arr32 EXPORT_SYMBOL vmlinux 0xf8d2bc2c zstd_find_frame_compressed_size +EXPORT_SYMBOL vmlinux 0xf8e230a9 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xf8ed97fb blk_mq_tagset_wait_completed_request EXPORT_SYMBOL vmlinux 0xf8f61ebc wake_up_var -EXPORT_SYMBOL vmlinux 0xf8fb772a input_unregister_device -EXPORT_SYMBOL vmlinux 0xf9088765 d_path -EXPORT_SYMBOL vmlinux 0xf90da54f configfs_unregister_group -EXPORT_SYMBOL vmlinux 0xf91701e4 netif_set_real_num_rx_queues -EXPORT_SYMBOL vmlinux 0xf917754a skb_page_frag_refill -EXPORT_SYMBOL vmlinux 0xf937a738 devfreq_add_governor +EXPORT_SYMBOL vmlinux 0xf90cda41 fscrypt_ioctl_set_policy +EXPORT_SYMBOL vmlinux 0xf913a9a1 tty_unlock +EXPORT_SYMBOL vmlinux 0xf9152618 __find_get_block +EXPORT_SYMBOL vmlinux 0xf92b0443 devfreq_get_freq_range EXPORT_SYMBOL vmlinux 0xf93fd09c fb_find_mode_cvt -EXPORT_SYMBOL vmlinux 0xf94806bf dm_put_device -EXPORT_SYMBOL vmlinux 0xf95eaa07 netdev_offload_xstats_disable -EXPORT_SYMBOL vmlinux 0xf9649121 reuseport_detach_prog -EXPORT_SYMBOL vmlinux 0xf96c7aa7 phy_set_sym_pause -EXPORT_SYMBOL vmlinux 0xf96fe6a7 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xf94fc7dd iput +EXPORT_SYMBOL vmlinux 0xf9605223 devm_mmc_alloc_host EXPORT_SYMBOL vmlinux 0xf9722676 twl_i2c_write EXPORT_SYMBOL vmlinux 0xf977f1c3 downgrade_write -EXPORT_SYMBOL vmlinux 0xf9791968 dm_mq_kick_requeue_list -EXPORT_SYMBOL vmlinux 0xf97a5e77 sys_fillrect -EXPORT_SYMBOL vmlinux 0xf99466e1 dst_dev_put +EXPORT_SYMBOL vmlinux 0xf97944e2 scsi_device_lookup EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9adbcab pci_select_bars +EXPORT_SYMBOL vmlinux 0xf9c05060 pci_get_slot EXPORT_SYMBOL vmlinux 0xf9c0b663 strlcat +EXPORT_SYMBOL vmlinux 0xf9c4c709 phy_error EXPORT_SYMBOL vmlinux 0xf9ca2eb4 kstrtoint_from_user EXPORT_SYMBOL vmlinux 0xf9cdddc3 __cpuhp_remove_state_cpuslocked -EXPORT_SYMBOL vmlinux 0xf9e9ebcd dev_get_mac_address +EXPORT_SYMBOL vmlinux 0xf9d2be9c security_sock_graft EXPORT_SYMBOL vmlinux 0xf9eae674 free_bucket_spinlocks +EXPORT_SYMBOL vmlinux 0xf9f0c979 generic_update_time EXPORT_SYMBOL vmlinux 0xfa042227 gnet_stats_add_basic EXPORT_SYMBOL vmlinux 0xfa08c34a page_offline_end -EXPORT_SYMBOL vmlinux 0xfa0be1ae mipi_dsi_dcs_set_column_address -EXPORT_SYMBOL vmlinux 0xfa0ceb04 arp_xmit -EXPORT_SYMBOL vmlinux 0xfa1c0afd inode_permission -EXPORT_SYMBOL vmlinux 0xfa2487d6 dma_resv_iter_first_unlocked -EXPORT_SYMBOL vmlinux 0xfa25d73a tc_setup_cb_add -EXPORT_SYMBOL vmlinux 0xfa2b6a4a config_item_get +EXPORT_SYMBOL vmlinux 0xfa19c7ef nf_log_register EXPORT_SYMBOL vmlinux 0xfa2e5f32 i2c_smbus_pec -EXPORT_SYMBOL vmlinux 0xfa35372d sock_edemux EXPORT_SYMBOL vmlinux 0xfa4d2f03 __nla_parse -EXPORT_SYMBOL vmlinux 0xfa54efed iunique EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier -EXPORT_SYMBOL vmlinux 0xfa5d7a50 page_pool_get_stats -EXPORT_SYMBOL vmlinux 0xfa88f569 xfrm_unregister_km -EXPORT_SYMBOL vmlinux 0xfa8d5c04 folio_redirty_for_writepage -EXPORT_SYMBOL vmlinux 0xfaa6043b phy_support_asym_pause +EXPORT_SYMBOL vmlinux 0xfa73dd8e pci_write_vpd_any +EXPORT_SYMBOL vmlinux 0xfa7a1502 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xfa981d5e mnt_drop_write_file EXPORT_SYMBOL vmlinux 0xfaaa12d0 _page_poisoning_enabled -EXPORT_SYMBOL vmlinux 0xfab257a8 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xfaaa27f9 devm_aperture_acquire_for_platform_device +EXPORT_SYMBOL vmlinux 0xfab82c4e vme_slave_request +EXPORT_SYMBOL vmlinux 0xfabca539 jbd2_wait_inode_data +EXPORT_SYMBOL vmlinux 0xfabea162 jbd2_journal_forget EXPORT_SYMBOL vmlinux 0xfac19588 __clear_user EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max -EXPORT_SYMBOL vmlinux 0xfacafd28 __dev_get_by_index -EXPORT_SYMBOL vmlinux 0xfae07142 xfrm_init_state +EXPORT_SYMBOL vmlinux 0xfacf0895 md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0xfad5925a set_blocksize +EXPORT_SYMBOL vmlinux 0xfae428a8 udp_sendmsg EXPORT_SYMBOL vmlinux 0xfaecb308 memcg_bpf_enabled_key -EXPORT_SYMBOL vmlinux 0xfafc52fa blk_get_queue -EXPORT_SYMBOL vmlinux 0xfb0e8720 sync_mapping_buffers -EXPORT_SYMBOL vmlinux 0xfb102b42 ppp_input -EXPORT_SYMBOL vmlinux 0xfb1a837c invalidate_disk -EXPORT_SYMBOL vmlinux 0xfb2de9ee bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xfb0f0782 sock_i_ino +EXPORT_SYMBOL vmlinux 0xfb18bf12 pldmfw_flash_image +EXPORT_SYMBOL vmlinux 0xfb2fb88a tcf_block_get EXPORT_SYMBOL vmlinux 0xfb348fea fault_in_safe_writeable EXPORT_SYMBOL vmlinux 0xfb384d37 kasprintf -EXPORT_SYMBOL vmlinux 0xfb3d46aa of_device_register -EXPORT_SYMBOL vmlinux 0xfb40f99f qdisc_put -EXPORT_SYMBOL vmlinux 0xfb4281e6 security_inode_listsecurity EXPORT_SYMBOL vmlinux 0xfb4a2546 mempool_resize -EXPORT_SYMBOL vmlinux 0xfb4daf68 devm_arch_io_reserve_memtype_wc +EXPORT_SYMBOL vmlinux 0xfb4fe3c4 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xfb52909c param_set_bool +EXPORT_SYMBOL vmlinux 0xfb535ece register_netdev +EXPORT_SYMBOL vmlinux 0xfb552780 fib_notifier_ops_unregister EXPORT_SYMBOL vmlinux 0xfb578fc5 memset +EXPORT_SYMBOL vmlinux 0xfb5d1a31 pci_get_device +EXPORT_SYMBOL vmlinux 0xfb615990 seq_put_decimal_ull EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending -EXPORT_SYMBOL vmlinux 0xfb7040f5 seq_puts -EXPORT_SYMBOL vmlinux 0xfb754cb2 keyring_search -EXPORT_SYMBOL vmlinux 0xfb7a74d3 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xfb6fee1d proto_unregister +EXPORT_SYMBOL vmlinux 0xfb73f13c __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xfb781575 of_get_child_by_name +EXPORT_SYMBOL vmlinux 0xfb95e3d0 ip_local_deliver +EXPORT_SYMBOL vmlinux 0xfb9afe27 vmf_insert_pfn EXPORT_SYMBOL vmlinux 0xfba7a5f5 __get_random_u32_below -EXPORT_SYMBOL vmlinux 0xfba7d90e udp_gro_complete EXPORT_SYMBOL vmlinux 0xfba7ddd2 match_u64 EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock EXPORT_SYMBOL vmlinux 0xfbad3cf0 scsi_normalize_sense -EXPORT_SYMBOL vmlinux 0xfbb1a7cb inet6_add_offload EXPORT_SYMBOL vmlinux 0xfbb8a761 strscpy_pad EXPORT_SYMBOL vmlinux 0xfbc4f89e io_schedule_timeout -EXPORT_SYMBOL vmlinux 0xfbcfab52 dev_remove_pack -EXPORT_SYMBOL vmlinux 0xfbd7f2f7 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xfbcfaffa sdev_disable_disk_events EXPORT_SYMBOL vmlinux 0xfbe215e4 sg_next +EXPORT_SYMBOL vmlinux 0xfbe45dc0 sk_stop_timer_sync EXPORT_SYMBOL vmlinux 0xfbe8ee28 acpi_get_table_by_index EXPORT_SYMBOL vmlinux 0xfbe9d8b4 sync_file_get_fence -EXPORT_SYMBOL vmlinux 0xfbf6cb4c sunxi_sram_release -EXPORT_SYMBOL vmlinux 0xfc020778 gnet_stats_start_copy -EXPORT_SYMBOL vmlinux 0xfc2510df inode_add_bytes -EXPORT_SYMBOL vmlinux 0xfc40c5c9 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xfc2f9785 generic_buffers_fsync EXPORT_SYMBOL vmlinux 0xfc4152fc ec_read EXPORT_SYMBOL vmlinux 0xfc421e79 gnet_stats_add_queue -EXPORT_SYMBOL vmlinux 0xfc66f794 __sk_queue_drop_skb -EXPORT_SYMBOL vmlinux 0xfc8ef037 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xfc5b5107 iov_iter_advance +EXPORT_SYMBOL vmlinux 0xfc5c6e59 irq_set_chip +EXPORT_SYMBOL vmlinux 0xfc5d5f0c kfree_skb_partial +EXPORT_SYMBOL vmlinux 0xfc67fc00 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xfc7abb2c bpf_link_put +EXPORT_SYMBOL vmlinux 0xfc7ee402 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xfc956a5a fput EXPORT_SYMBOL vmlinux 0xfc979a3a register_sysctl -EXPORT_SYMBOL vmlinux 0xfc99377c vfs_mkdir -EXPORT_SYMBOL vmlinux 0xfcc51b1c vfs_link -EXPORT_SYMBOL vmlinux 0xfccc565a pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xfcb5881e scsicam_bios_param EXPORT_SYMBOL vmlinux 0xfcd1819a hdmi_spd_infoframe_check -EXPORT_SYMBOL vmlinux 0xfcd785b7 blk_queue_virt_boundary -EXPORT_SYMBOL vmlinux 0xfceafd60 dev_pick_tx_zero +EXPORT_SYMBOL vmlinux 0xfcdd7304 free_netdev EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq -EXPORT_SYMBOL vmlinux 0xfcf081bc scsi_execute_cmd -EXPORT_SYMBOL vmlinux 0xfd1617d0 folio_unlock +EXPORT_SYMBOL vmlinux 0xfd03f2d0 flow_rule_match_enc_opts +EXPORT_SYMBOL vmlinux 0xfd12846f iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xfd189b61 dm_table_run_md_queue_async +EXPORT_SYMBOL vmlinux 0xfd2d2819 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xfd37352e dentry_open EXPORT_SYMBOL vmlinux 0xfd3965eb lockref_get_not_zero -EXPORT_SYMBOL vmlinux 0xfd42c5ad pci_msi_vec_count -EXPORT_SYMBOL vmlinux 0xfd5be419 dma_pool_create -EXPORT_SYMBOL vmlinux 0xfd6a1297 generic_write_end -EXPORT_SYMBOL vmlinux 0xfd75a2a7 mdiobus_write_nested -EXPORT_SYMBOL vmlinux 0xfd8a2576 sock_wmalloc -EXPORT_SYMBOL vmlinux 0xfd928b37 of_graph_get_endpoint_count +EXPORT_SYMBOL vmlinux 0xfd4ef193 dev_pm_opp_unregister_notifier +EXPORT_SYMBOL vmlinux 0xfd50a5ff dma_find_channel +EXPORT_SYMBOL vmlinux 0xfd590877 of_clk_get_by_name +EXPORT_SYMBOL vmlinux 0xfd66b177 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xfd6a21b3 netlink_set_err +EXPORT_SYMBOL vmlinux 0xfd993f21 __skb_get_hash +EXPORT_SYMBOL vmlinux 0xfd9faefc udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xfdb5a7f1 __hw_addr_ref_unsync_dev EXPORT_SYMBOL vmlinux 0xfdb6576f acpi_set_debugger_thread_id EXPORT_SYMBOL vmlinux 0xfdb77a80 dq_data_lock EXPORT_SYMBOL vmlinux 0xfdba919d __nla_reserve_64bit -EXPORT_SYMBOL vmlinux 0xfdca9d09 genphy_c45_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0xfdba9242 __fput_sync EXPORT_SYMBOL vmlinux 0xfdcb4ed3 acpi_os_get_line EXPORT_SYMBOL vmlinux 0xfdcc8a0e fb_find_best_display -EXPORT_SYMBOL vmlinux 0xfdd88722 bio_init_clone +EXPORT_SYMBOL vmlinux 0xfdd3aac2 ww_mutex_trylock +EXPORT_SYMBOL vmlinux 0xfde75976 md_check_recovery EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe0b5627 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xfe170edc bio_init EXPORT_SYMBOL vmlinux 0xfe1c9ea5 sg_pcopy_from_buffer EXPORT_SYMBOL vmlinux 0xfe1d2e94 key_create_or_update -EXPORT_SYMBOL vmlinux 0xfe249b34 jbd2_journal_try_to_free_buffers -EXPORT_SYMBOL vmlinux 0xfe2a0d24 max8998_write_reg -EXPORT_SYMBOL vmlinux 0xfe2f7467 fd_install +EXPORT_SYMBOL vmlinux 0xfe2984db mmc_remove_host +EXPORT_SYMBOL vmlinux 0xfe3824f8 __skb_vlan_pop EXPORT_SYMBOL vmlinux 0xfe487975 init_wait_entry +EXPORT_SYMBOL vmlinux 0xfe5239e2 __bread_gfp EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe6fbc87 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xfe76f8d7 block_invalidate_folio +EXPORT_SYMBOL vmlinux 0xfe8b623c devm_gen_pool_create EXPORT_SYMBOL vmlinux 0xfe916dc6 hex_dump_to_buffer EXPORT_SYMBOL vmlinux 0xfe9ebbbb acpi_osi_is_win8 -EXPORT_SYMBOL vmlinux 0xfeab38c7 neigh_sysctl_unregister -EXPORT_SYMBOL vmlinux 0xfeade28e scsi_rescan_device -EXPORT_SYMBOL vmlinux 0xfec26260 get_vm_area +EXPORT_SYMBOL vmlinux 0xfea1d985 vme_register_error_handler +EXPORT_SYMBOL vmlinux 0xfeaa2d1f mptcp_subflow_reqsk_alloc +EXPORT_SYMBOL vmlinux 0xfec4d77c register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xfecc4eca page_pool_release_page +EXPORT_SYMBOL vmlinux 0xfed2352e unregister_framebuffer EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfee514aa inet_addr_type_dev_table +EXPORT_SYMBOL vmlinux 0xfee53e87 xsk_tx_peek_release_desc_batch +EXPORT_SYMBOL vmlinux 0xfeea0585 cdev_device_del EXPORT_SYMBOL vmlinux 0xfeebc7c4 __kfifo_from_user_r -EXPORT_SYMBOL vmlinux 0xfeed263c of_match_node -EXPORT_SYMBOL vmlinux 0xfeee41df nf_ct_attach EXPORT_SYMBOL vmlinux 0xfefcb98e vme_dma_vme_attribute -EXPORT_SYMBOL vmlinux 0xff0cd0af page_pool_destroy +EXPORT_SYMBOL vmlinux 0xff12814c __cgroup_bpf_run_filter_sock_addr EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start EXPORT_SYMBOL vmlinux 0xff282521 rfkill_register -EXPORT_SYMBOL vmlinux 0xff331d78 dqput +EXPORT_SYMBOL vmlinux 0xff2c0176 netdev_next_lower_dev_rcu +EXPORT_SYMBOL vmlinux 0xff388392 ping_prot EXPORT_SYMBOL vmlinux 0xff41a709 __tracepoint_kmalloc -EXPORT_SYMBOL vmlinux 0xff4235e5 unregister_mii_timestamper -EXPORT_SYMBOL vmlinux 0xff58dfc6 i2c_smbus_write_i2c_block_data -EXPORT_SYMBOL vmlinux 0xff5da2d0 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xff4a13c7 user_revoke EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap EXPORT_SYMBOL vmlinux 0xff699e2c dma_fence_signal_timestamp_locked -EXPORT_SYMBOL vmlinux 0xff8f4645 of_device_is_available -EXPORT_SYMBOL vmlinux 0xff968832 fib_default_rule_add -EXPORT_SYMBOL vmlinux 0xff969954 dma_set_coherent_mask -EXPORT_SYMBOL vmlinux 0xffa39043 pci_ep_cfs_add_epc_group -EXPORT_SYMBOL vmlinux 0xffc25df3 notify_change +EXPORT_SYMBOL vmlinux 0xff8a3e27 mount_bdev +EXPORT_SYMBOL vmlinux 0xff9369ac ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xff93af2f pci_free_irq_vectors +EXPORT_SYMBOL vmlinux 0xff97b113 tty_register_device +EXPORT_SYMBOL vmlinux 0xffa4e6dd __fib6_flush_trees +EXPORT_SYMBOL vmlinux 0xffbc4e14 netdev_master_upper_dev_get EXPORT_SYMBOL vmlinux 0xffc4f200 zstd_compress_stream EXPORT_SYMBOL vmlinux 0xffcc4ec7 tcp_bpf_bypass_getsockopt -EXPORT_SYMBOL vmlinux 0xffdf2435 genphy_c37_config_aneg -EXPORT_SYMBOL vmlinux 0xffdfa1ed get_cached_acl_rcu +EXPORT_SYMBOL vmlinux 0xffd4b28a seq_hex_dump +EXPORT_SYMBOL vmlinux 0xffea0f3b __dynamic_netdev_dbg EXPORT_SYMBOL vmlinux 0xffeedf6a delayed_work_timer_fn -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x0309b55a kvm_read_guest -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x047e6da8 kvm_read_guest_cached -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x0643e185 kvm_vcpu_on_spin -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x098094ce kvm_make_all_cpus_request -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x0ce8dd30 gfn_to_pfn_prot -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x10bf3144 kvm_write_guest_page -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x19d02c2d kvm_vcpu_gfn_to_hva -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x1ec661b3 gfn_to_memslot -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x209c4590 gfn_to_hva -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x21f7d207 kvm_set_memory_region -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x229e0a0f kvm_put_kvm -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x24a8d32c kvm_vcpu_wake_up +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x00c08d6b kvm_are_all_memslots_empty +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x0e3de8e3 kvm_read_guest_cached +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x0f016979 kvm_vcpu_unmap +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x10ed1f6c kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x1782d5b7 kvm_vcpu_wake_up +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x17d09b39 kvm_io_bus_get_dev EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x27046576 kvm_exit -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x2993f8c2 kvm_vcpu_mark_page_dirty -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x2ebaa574 kvm_vcpu_yield_to EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x2ed489ec gfn_to_pfn_memslot -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x2f27712e kvm_is_visible_gfn -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x31fe81d6 kvm_vcpu_is_visible_gfn -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x33785a20 kvm_vcpu_write_guest_page +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x2fb13db7 kvm_vcpu_gfn_to_pfn +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x33554085 kvm_vcpu_read_guest_atomic +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x346f370c kvm_vcpu_on_spin EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x39fd83db halt_poll_ns_shrink -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x3d56c32e kvm_vcpu_gfn_to_pfn_atomic -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x40fdc790 gfn_to_page -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x43bc87d9 kvm_vcpu_unmap -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x44e33d12 kvm_vcpu_read_guest_atomic -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x4546a352 kvm_flush_remote_tlbs +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x3ef93a52 kvm_flush_remote_tlbs +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x468eb92a kvm_put_kvm_no_destroy +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x484f7822 kvm_destroy_vcpus EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x485cd7f6 kvm_rebooting -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x4c79b44d file_is_kvm +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x4beeebe3 kvm_io_bus_write +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x4d560c53 kvm_vcpu_yield_to EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x4e3fd1b4 kvm_release_pfn_clean -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x5163f4df kvm_write_guest_cached -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x52256bcd kvm_io_bus_get_dev -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x5422983c kvm_put_kvm_no_destroy +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x580bc743 kvm_debugfs_dir EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x59e640c0 halt_poll_ns -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x5d294eef kvm_destroy_vcpus +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x5c13d840 kvm_vcpu_read_guest EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x5fb8848b halt_poll_ns_grow_start +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x60cf9ba2 kvm_write_guest_offset_cached +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x631888e0 kvm_get_running_vcpu +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x6452b30f kvm_vcpu_write_guest_page EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x6892e3c3 kvm_set_pfn_accessed -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x7707799f kvm_vcpu_write_guest +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x6db43f26 kvm_vcpu_mark_page_dirty +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x7296bb30 gfn_to_hva +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x729d18e7 vcpu_put +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x75238e62 gfn_to_pfn_prot EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x7afe324e halt_poll_ns_grow EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x7c94c99a kvm_release_pfn_dirty -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x8133419d kvm_get_kvm -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x83c1a11c __kvm_set_memory_region -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x874bd117 mark_page_dirty +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x7e081abc kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x84e342e2 gfn_to_page_many_atomic EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x89bec8b0 gfn_to_pfn_memslot_atomic -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x8e2f6b0f kvm_vcpu_gfn_to_pfn -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x9ab638f6 kvm_vcpu_kick -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x9c877a76 kvm_get_running_vcpu +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x8f0652f6 file_is_kvm +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x93c591f6 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x953b0fea kvm_vcpu_map +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x97007e03 kvm_vcpu_read_guest_page +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x9e4320aa kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0x9e788c1f kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xa0d19ec3 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xa147d13c kvm_vcpu_is_visible_gfn EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xa1c4231f kvm_set_pfn_dirty -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xa2a77d50 kvm_read_guest_offset_cached -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xa7e75129 vcpu_load -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xa9ac8f48 kvm_are_all_memslots_empty -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xb1ef1224 kvm_get_kvm_safe -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xb4fa142e kvm_vcpu_read_guest_page +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xa39bebae kvm_make_all_cpus_request +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xa43a272d kvm_vcpu_kick +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xa4701fee kvm_init +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xa6e0be6c kvm_get_kvm_safe EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xb592d904 __gfn_to_pfn_memslot -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xbae5259d kvm_io_bus_write -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xbb4c4260 kvm_vcpu_read_guest +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xb811c0cc kvm_irq_has_notifier EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xbb7e9690 gfn_to_hva_memslot -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xc421ed07 mark_page_dirty_in_slot -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xc5bd4e7d kvm_release_page_dirty -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xc9d58943 vcpu_put -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xd6d05fef gfn_to_page_many_atomic -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xd8032e01 kvm_read_guest_page -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xd9704ae2 kvm_write_guest_offset_cached -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xda6664d9 kvm_vcpu_halt -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xdb58c88a kvm_vcpu_map -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xe2718ea9 kvm_debugfs_dir -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xead347e0 kvm_release_page_clean -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xf927a49e gfn_to_pfn -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xfbabfe95 kvm_irq_has_notifier -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xfd50cb47 kvm_init -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xfe23c1ad kvm_write_guest -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xfee33c79 kvm_clear_guest -EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xff6dbe8e kvm_gfn_to_hva_cache_init -EXPORT_SYMBOL_GPL crypto/af_alg 0x18354a32 af_alg_release -EXPORT_SYMBOL_GPL crypto/af_alg 0x1941a4e8 af_alg_release_parent -EXPORT_SYMBOL_GPL crypto/af_alg 0x22c4092d af_alg_wmem_wakeup +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xbd851bd7 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xc07b3098 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xc0c98b4f gfn_to_memslot +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xc403fbc3 mark_page_dirty_in_slot +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xc6c4553c kvm_vcpu_halt +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xc82356d8 kvm_vcpu_gfn_to_hva +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xcf371e1a gfn_to_page +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xcf551a71 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xde88e245 vcpu_load +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xe0158697 kvm_read_guest_offset_cached +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xe02858ad mark_page_dirty +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xe17dd3b5 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xe32aced3 kvm_vcpu_gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xec600c94 kvm_read_guest +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xedfa5874 kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xee3706df gfn_to_pfn +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xf1a709bf kvm_write_guest +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xf70a3293 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/riscv/kvm/kvm 0xfdb2ed08 kvm_vcpu_write_guest +EXPORT_SYMBOL_GPL crypto/af_alg 0x0fd3dae3 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x1ef97baf af_alg_sendmsg +EXPORT_SYMBOL_GPL crypto/af_alg 0x243a9916 af_alg_get_rsgl EXPORT_SYMBOL_GPL crypto/af_alg 0x27e92408 af_alg_async_cb -EXPORT_SYMBOL_GPL crypto/af_alg 0x31eb4633 af_alg_sendmsg -EXPORT_SYMBOL_GPL crypto/af_alg 0x52d55176 af_alg_get_rsgl -EXPORT_SYMBOL_GPL crypto/af_alg 0x58e76abf af_alg_count_tsgl -EXPORT_SYMBOL_GPL crypto/af_alg 0x5f53fdd1 af_alg_free_resources -EXPORT_SYMBOL_GPL crypto/af_alg 0x6177ff70 af_alg_pull_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0x2d59a2f6 af_alg_free_resources +EXPORT_SYMBOL_GPL crypto/af_alg 0x2db3f5e4 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x56c313b6 af_alg_release_parent EXPORT_SYMBOL_GPL crypto/af_alg 0x634264a9 af_alg_free_sg -EXPORT_SYMBOL_GPL crypto/af_alg 0x74953407 af_alg_unregister_type -EXPORT_SYMBOL_GPL crypto/af_alg 0xafdc1fba af_alg_wait_for_data -EXPORT_SYMBOL_GPL crypto/af_alg 0xc1eb4393 af_alg_register_type -EXPORT_SYMBOL_GPL crypto/af_alg 0xc5e29986 af_alg_alloc_areq -EXPORT_SYMBOL_GPL crypto/af_alg 0xdaa1e17b af_alg_poll -EXPORT_SYMBOL_GPL crypto/af_alg 0xf9fa2845 af_alg_accept -EXPORT_SYMBOL_GPL crypto/aria_generic 0x24ae689a aria_set_key +EXPORT_SYMBOL_GPL crypto/af_alg 0x71045e34 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x8da4aa64 af_alg_wait_for_data +EXPORT_SYMBOL_GPL crypto/af_alg 0x9f91bb2e af_alg_wmem_wakeup +EXPORT_SYMBOL_GPL crypto/af_alg 0xa1697c94 af_alg_alloc_areq +EXPORT_SYMBOL_GPL crypto/af_alg 0xa3882257 af_alg_pull_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0xa5f5678c af_alg_poll +EXPORT_SYMBOL_GPL crypto/af_alg 0xc02a49c3 af_alg_count_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0xf093c8eb af_alg_register_type +EXPORT_SYMBOL_GPL crypto/aria_generic 0x00fc938f aria_set_key EXPORT_SYMBOL_GPL crypto/aria_generic 0x4a61978a aria_encrypt EXPORT_SYMBOL_GPL crypto/aria_generic 0xbdad6df6 aria_decrypt -EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x787db6c0 async_memcpy -EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x283fc8fe async_syndrome_val -EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xea7344b6 async_gen_syndrome -EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x558d5e7e async_raid6_2data_recov -EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x592dd520 async_raid6_datap_recov -EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x51440223 __async_tx_find_channel -EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x770ae77d async_trigger_callback -EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xaa81e209 async_tx_submit -EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xe9ba3c8a async_tx_quiesce -EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x3db84e29 async_xor_offs -EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x402b59e9 async_xor -EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xa6c00e3e async_xor_val_offs -EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xc2b55cac async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xd23f690f async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x34d1a881 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xacef88ed async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x89da047c async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xa3621b2f async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x02c3998d async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x159d2328 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x65b0a0cd async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x6d2509a7 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x36901e9e async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x68eacada async_xor_offs +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x96d4f741 async_xor_val_offs +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xac02491d async_xor_val EXPORT_SYMBOL_GPL crypto/authenc 0x2479193e crypto_authenc_extractkeys -EXPORT_SYMBOL_GPL crypto/blowfish_common 0xfba81644 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x3429d05c blowfish_setkey EXPORT_SYMBOL_GPL crypto/cast5_generic 0x188d9d26 __cast5_decrypt -EXPORT_SYMBOL_GPL crypto/cast5_generic 0x45016c5b cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x9ac9a826 cast5_setkey EXPORT_SYMBOL_GPL crypto/cast5_generic 0xef81a4af __cast5_encrypt EXPORT_SYMBOL_GPL crypto/cast6_generic 0x3dbae082 __cast6_decrypt -EXPORT_SYMBOL_GPL crypto/cast6_generic 0x5d5c6939 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x4c67c4ad cast6_setkey EXPORT_SYMBOL_GPL crypto/cast6_generic 0xcfce512f __cast6_encrypt EXPORT_SYMBOL_GPL crypto/cast6_generic 0xd76a5716 __cast6_setkey EXPORT_SYMBOL_GPL crypto/cast_common 0x5609ce41 cast_s2 EXPORT_SYMBOL_GPL crypto/cast_common 0x5b17be06 cast_s4 EXPORT_SYMBOL_GPL crypto/cast_common 0xb9cba57f cast_s3 EXPORT_SYMBOL_GPL crypto/cast_common 0xbd3e7542 cast_s1 -EXPORT_SYMBOL_GPL crypto/cryptd 0x087e12bb cryptd_free_skcipher -EXPORT_SYMBOL_GPL crypto/cryptd 0x22278b9e cryptd_alloc_skcipher -EXPORT_SYMBOL_GPL crypto/cryptd 0x28c19596 cryptd_ahash_child -EXPORT_SYMBOL_GPL crypto/cryptd 0x4ffb0796 cryptd_alloc_ahash -EXPORT_SYMBOL_GPL crypto/cryptd 0x5a37472b cryptd_aead_child -EXPORT_SYMBOL_GPL crypto/cryptd 0x72b71f92 cryptd_alloc_aead -EXPORT_SYMBOL_GPL crypto/cryptd 0x85d777e9 cryptd_ahash_queued -EXPORT_SYMBOL_GPL crypto/cryptd 0x9bb6df72 cryptd_aead_queued -EXPORT_SYMBOL_GPL crypto/cryptd 0xaa50ff2e cryptd_free_ahash -EXPORT_SYMBOL_GPL crypto/cryptd 0xb87d7186 cryptd_shash_desc -EXPORT_SYMBOL_GPL crypto/cryptd 0xbc17f220 cryptd_free_aead -EXPORT_SYMBOL_GPL crypto/cryptd 0xd23993a4 cryptd_skcipher_queued -EXPORT_SYMBOL_GPL crypto/cryptd 0xea48e778 cryptd_skcipher_child -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x059e1412 crypto_engine_start -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x267a935b crypto_finalize_akcipher_request -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x3ae91c38 crypto_transfer_hash_request_to_engine -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x5ef68492 crypto_engine_stop -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x60e62bf5 crypto_finalize_skcipher_request -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x651896d2 crypto_engine_alloc_init -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x689aa66c crypto_transfer_skcipher_request_to_engine -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x6b7cc345 crypto_finalize_aead_request -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x89b86e83 crypto_transfer_aead_request_to_engine -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x9ff479e7 crypto_engine_alloc_init_and_set -EXPORT_SYMBOL_GPL crypto/crypto_engine 0xcd6a7db2 crypto_transfer_kpp_request_to_engine -EXPORT_SYMBOL_GPL crypto/crypto_engine 0xd032664e crypto_finalize_hash_request -EXPORT_SYMBOL_GPL crypto/crypto_engine 0xf543726f crypto_finalize_kpp_request -EXPORT_SYMBOL_GPL crypto/crypto_engine 0xfac1aee7 crypto_engine_exit -EXPORT_SYMBOL_GPL crypto/crypto_engine 0xfdca1b62 crypto_transfer_akcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/cryptd 0x01e46aff cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x361adc0a cryptd_skcipher_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x38860d20 cryptd_free_skcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x725177fa cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x7f166867 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x807d5a89 cryptd_ahash_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x875549d6 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xa63ab3ad cryptd_skcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xadfd8775 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xb01bc131 cryptd_alloc_skcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xe760f97a cryptd_aead_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0xf41063ca cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xfe2667f1 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x0823120d crypto_transfer_hash_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x0c3d7070 crypto_finalize_aead_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x18f3209d crypto_finalize_kpp_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x271449ec crypto_finalize_skcipher_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x3ce5151b crypto_engine_exit +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x4c7546ff crypto_transfer_kpp_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x56cb14a0 crypto_engine_alloc_init_and_set +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x818c092c crypto_engine_stop +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xb00af10b crypto_transfer_akcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xb09dca98 crypto_transfer_aead_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xbd1ab5eb crypto_transfer_skcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xbd513196 crypto_finalize_akcipher_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xbe64b48f crypto_finalize_hash_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xd1973706 crypto_engine_start +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xe995e894 crypto_engine_alloc_init EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x33b866ce crypto_ecdh_decode_key EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x7475be8e crypto_ecdh_key_len EXPORT_SYMBOL_GPL crypto/ecdh_generic 0xb230d2ec crypto_ecdh_encode_key EXPORT_SYMBOL_GPL crypto/polyval-generic 0x1936413e polyval_mul_non4k EXPORT_SYMBOL_GPL crypto/polyval-generic 0x49dece42 polyval_update_non4k -EXPORT_SYMBOL_GPL crypto/serpent_generic 0x1be92de2 serpent_setkey EXPORT_SYMBOL_GPL crypto/serpent_generic 0x4eb4c55e __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x7711113d serpent_setkey EXPORT_SYMBOL_GPL crypto/serpent_generic 0xbcc074f3 __serpent_decrypt EXPORT_SYMBOL_GPL crypto/serpent_generic 0xd4c9681a __serpent_setkey -EXPORT_SYMBOL_GPL crypto/sm2_generic 0xb5f7cc15 sm2_compute_z_digest +EXPORT_SYMBOL_GPL crypto/sm2_generic 0x8283eed8 sm2_compute_z_digest EXPORT_SYMBOL_GPL crypto/sm3 0xa98edad1 sm3_update EXPORT_SYMBOL_GPL crypto/sm3 0xf04338f9 sm3_final EXPORT_SYMBOL_GPL crypto/sm3_generic 0x0bddca87 sm3_zero_message_hash EXPORT_SYMBOL_GPL crypto/sm4 0x24e254e8 sm4_expandkey EXPORT_SYMBOL_GPL crypto/sm4 0xfa81970e sm4_crypt_block -EXPORT_SYMBOL_GPL crypto/twofish_common 0x554e651a twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x8744d463 twofish_setkey EXPORT_SYMBOL_GPL crypto/twofish_common 0xe22b7787 __twofish_setkey +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x0494340a spk_ttyio_release +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x053068d7 spk_do_catch_up_unicode EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x08f0212d spk_set_num_var -EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x0c6b030f spk_ttyio_ops +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x0a264e2a synth_add EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x1e39eb14 synth_putws -EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x23c1ec64 spk_ttyio_synth_immediate -EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x3d59aff6 spk_synth_is_alive_nop EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x41a160e5 synth_buffer_empty EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x4449e1dd synth_buffer_clear -EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x452c9b3d spk_var_store EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x45eda959 spk_get_var EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x466f5eb7 synth_putwc EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x4b231e25 speakup_event -EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x561c9bf5 spk_ttyio_synth_probe -EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x76219d9c spk_synth_is_alive_restart EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x76d40046 synth_buffer_skip_nonlatin1 EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x84dad068 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x86eda81d spk_do_catch_up EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x8c82dfca synth_request_region EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x8fe0db01 synth_putwc_s EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x9619ff5f speakup_info -EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xa8ad8df3 spk_var_show EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xaadb0612 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xb5ef0225 spk_synth_is_alive_restart EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xbbd15a51 speakup_start_ttys -EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xbbd59c62 spk_do_catch_up_unicode EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xc319c604 synth_putws_s EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xc58f6e50 spk_get_var_header -EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xd5795ada synth_current -EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xd6bf05a7 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xc6869001 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xccf32173 spk_ttyio_synth_probe +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xd19d1d19 spk_ttyio_synth_immediate +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xd83a84a5 synth_current EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xd8fd86cf synth_release_region +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xddcd87c4 spk_var_show +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xdea3449f spk_var_store EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xe194d0ef synth_printf -EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xe33b3b6f spk_ttyio_release -EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xe6b64582 spk_synth_get_index -EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xe6cab41f synth_remove -EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xeda16ded synth_add -EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xf7015971 spk_do_catch_up -EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x394e4302 acpi_nfit_desc_init +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xe49d6a4b synth_remove +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xea27f895 spk_synth_get_index +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xf0a2eb12 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xfebda9e9 spk_ttyio_ops +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x2eb7bc02 acpi_nfit_ctl +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x4060d352 __acpi_nvdimm_notify EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x4639bcda acpi_nfit_shutdown EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x499bbf57 nfit_get_smbios_id -EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x6d691a56 __acpi_nfit_notify -EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x762df37d acpi_nfit_ctl -EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0xb1596c61 acpi_nfit_init -EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0xcaaeaf5f __acpi_nvdimm_notify -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x02b12cc9 ahci_kick_engine -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x06693e9d ahci_init_controller -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0f29ee89 ahci_sdev_groups -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0fae83fa ahci_stop_engine -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x158d768b ahci_handle_port_intr -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4c926755 ahci_shost_groups -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4f1708d4 ahci_start_engine -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x74bac83d ahci_check_ready -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8dff0c9d ahci_fill_cmd_slot -EXPORT_SYMBOL_GPL drivers/ata/libahci 0xaa7e12f7 ahci_port_resume -EXPORT_SYMBOL_GPL drivers/ata/libahci 0xaf8c7ade ahci_error_handler -EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb7dd26be ahci_reset_controller -EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb97d7367 ahci_set_em_messages -EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc01f5dcc ahci_qc_issue -EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc142cc9f ahci_print_info -EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc80a1194 ahci_do_softreset -EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd5c61540 ahci_host_activate -EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd611e146 ahci_save_initial_config -EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe58cdb47 ahci_do_hardreset -EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe5add911 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x5a781edc acpi_nfit_desc_init +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x60cd0df6 __acpi_nfit_notify +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0xb255226e acpi_nfit_init +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0a4803e7 ahci_shost_groups +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x129edf98 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1e1fcca9 ahci_handle_port_intr +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x32a355eb ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3c467396 ahci_qc_issue +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x43a269da ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5501099a ahci_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x63c1384a ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x64445de0 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7decc216 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x88c8e074 ahci_do_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x89dacd15 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x95173e78 ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xaf35896c ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb67d3693 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xbacea9be ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xbcf32526 ahci_sdev_groups +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc4df43f6 ahci_start_fis_rx +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xde60e670 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe099f931 ahci_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe2e1355d ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe66fbd7a ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe9c0933a ahci_save_initial_config EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss -EXPORT_SYMBOL_GPL drivers/ata/libahci 0xebf1dd6e ahci_pmp_retry_srst_ops -EXPORT_SYMBOL_GPL drivers/ata/libahci 0xedcb8498 ahci_start_fis_rx -EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf4d90a4e ahci_dev_classify -EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf9895998 ahci_ops -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00996285 ahci_platform_ops -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x035f42c7 ahci_platform_get_resources -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x12c2f9fe ahci_platform_disable_regulators -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x2a8f8f37 ahci_platform_find_clk -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x3aa814d1 ahci_platform_suspend -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x54235894 ahci_platform_shutdown -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x5aa0b66f ahci_platform_disable_clks -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x6aea1bf8 ahci_platform_disable_phys -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x6b1ce607 ahci_platform_assert_rsts -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x6d9e8e14 ahci_platform_suspend_host -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x80adc2ff ahci_platform_deassert_rsts -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x92e2fc36 ahci_platform_enable_regulators -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x9392fa5b ahci_platform_enable_resources -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xa8154dd3 ahci_platform_resume_host -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xb5ce1e6b ahci_platform_resume -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xc6061553 ahci_platform_enable_phys -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xd6f0f9ce ahci_platform_disable_resources -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xf2fdfb10 ahci_platform_init_host -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xf64cb8c4 ahci_platform_enable_clks -EXPORT_SYMBOL_GPL drivers/ata/pata_parport/pata_parport 0x575093f2 pata_parport_unregister_driver -EXPORT_SYMBOL_GPL drivers/ata/pata_parport/pata_parport 0x81ed57c5 pata_parport_register_driver -EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xa9c9d06f __pata_platform_probe -EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x4c640668 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xfbe0da13 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x08ec730d ahci_platform_resume_host +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x1c5cf42e ahci_platform_enable_regulators +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x2ae83cce ahci_platform_disable_clks +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x2c22638c ahci_platform_suspend +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x2c87692d ahci_platform_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x4d9d87dd ahci_platform_disable_resources +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x4ef92cae ahci_platform_enable_clks +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x5b726922 ahci_platform_suspend_host +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x91051438 ahci_platform_deassert_rsts +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x98c3c0eb ahci_platform_enable_resources +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x9ab11161 ahci_platform_disable_phys +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xb37a9675 ahci_platform_get_resources +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xb6a22071 ahci_platform_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xcf26afdf ahci_platform_assert_rsts +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xd3333ff0 ahci_platform_disable_regulators +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xd3cd0646 ahci_platform_init_host +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xdb95503b ahci_platform_find_clk +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xe1edcb72 ahci_platform_shutdown +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xfea00101 ahci_platform_enable_phys +EXPORT_SYMBOL_GPL drivers/ata/pata_parport/pata_parport 0x89361476 pata_parport_unregister_driver +EXPORT_SYMBOL_GPL drivers/ata/pata_parport/pata_parport 0x90571f2b pata_parport_register_driver +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x764b259f __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xb64808b8 sis_info133_for_sata EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x09917359 charlcd_poke EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x6fd9cc4a charlcd_register EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x8b45326c charlcd_alloc @@ -11686,230 +11687,248 @@ EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address -EXPORT_SYMBOL_GPL drivers/auxdisplay/line-display 0x3de578ef linedisp_register -EXPORT_SYMBOL_GPL drivers/auxdisplay/line-display 0xe6534f5d linedisp_unregister -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-i3c 0x5434f05e __devm_regmap_init_i3c -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0x69ad1536 __devm_regmap_init_sccb -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0xf180a57b __regmap_init_sccb -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0x46dca17c __regmap_init_sdw -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0x79400e4c __devm_regmap_init_sdw -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw-mbq 0x3bc5801f __devm_regmap_init_sdw_mbq -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw-mbq 0x72588ac8 __regmap_init_sdw_mbq -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0x5a99d410 __devm_regmap_init_slimbus -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0x64fdfa71 __regmap_init_slimbus -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spi-avmm 0x460841d8 __devm_regmap_init_spi_avmm -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spi-avmm 0xa60c07ce __regmap_init_spi_avmm -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x1727c93f __regmap_init_spmi_base -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x197973b8 __devm_regmap_init_spmi_ext -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x92d34d54 __regmap_init_spmi_ext -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0xbe10cd52 __devm_regmap_init_spmi_base -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0x07114365 __devm_regmap_init_w1 -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0x74dd79a5 __regmap_init_w1 -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x026ab21c bcma_core_pll_ctl -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1cf23845 bcma_host_pci_up -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x3fb6cb13 bcma_chipco_pll_write -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x440aabe4 bcma_chipco_gpio_control -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x4859cfb5 bcma_core_is_enabled -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x4b036b14 bcma_pmu_get_bus_clock -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x63772aa2 bcma_core_enable -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6ca2156c bcma_chipco_b_mii_write -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7f4452ee bcma_host_pci_down -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x830e9d09 bcma_chipco_gpio_out -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x8550b588 bcma_chipco_regctl_maskset -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x8bb90b5e bcma_chipco_get_alp_clock -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9878b863 bcma_chipco_gpio_outen -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9e0634c1 bcma_pmu_spuravoid_pllupdate -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa68e5ef7 bcma_chipco_pll_read -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb99ef43c __bcma_driver_register -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xba8691f3 bcma_chipco_chipctl_maskset -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xbc3ddf67 bcma_core_disable -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc06dbdc9 bcma_core_set_clockmode -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc3682bbc bcma_driver_unregister -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd49d6c7b bcma_host_pci_irq_ctl -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xda1d71de bcma_chipco_pll_maskset -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xdd7cfbfb bcma_core_pci_power_save -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xefe188d4 bcma_find_core_unit -EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x0a0a4c63 btbcm_set_bdaddr -EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x1ae64693 btbcm_finalize -EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x1e2d8259 btbcm_setup_apple -EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x4d8a71e8 btbcm_setup_patchram -EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x8450d90c btbcm_check_bdaddr -EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xa69f5c40 btbcm_write_pcm_int_params -EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xc93d2c3a btbcm_read_pcm_int_params -EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xe6f890a9 btbcm_initialize -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x002ae6ad btintel_set_diag -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x08320dd0 btintel_download_firmware -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x15b86b08 btintel_configure_setup -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x1b055308 btintel_set_event_mask_mfg -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x58f582af btintel_set_bdaddr -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x5a207ce3 btintel_read_version -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x63f91a0e btintel_exit_mfg -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x71ff3ecf btintel_regmap_init -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x750935b1 btintel_secure_send_result -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xa0b0f348 btintel_send_intel_reset -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xb02b4554 btintel_version_info -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xb7ee88cf btintel_load_ddc_config -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xb9ce96b0 btintel_set_quality_report -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xc02d92d9 btintel_bootup -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xca97d8b5 btintel_check_bdaddr -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xce114f3b btintel_enter_mfg -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xdee62069 btintel_read_boot_params -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x22a7bd0b btmrvl_register_hdev -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x26a992af btmrvl_interrupt -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3aec7491 btmrvl_remove_card -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3bfeadb7 btmrvl_pscan_window_reporting -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4b11f693 btmrvl_enable_ps -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x61dd917b btmrvl_add_card -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x69abc3cf btmrvl_send_hscfg_cmd -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x964202ec btmrvl_enable_hs -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9e72ac9a btmrvl_send_module_cfg_cmd -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc440bdc5 btmrvl_process_event -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf6a9c371 btmrvl_check_evtpkt -EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0x2965e5d4 btmtk_setup_firmware -EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0x35ee17f7 btmtk_set_bdaddr -EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0xb497c502 btmtk_setup_firmware_79xx -EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x5ef6d3c3 qca_read_soc_version -EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0xa506a4a8 qca_set_bdaddr -EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0xcefc1837 qca_set_bdaddr_rome -EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0xe035c919 qca_uart_setup -EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0xe5f180eb qca_send_pre_shutdown_cmd -EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x583ed4b4 btrtl_shutdown_realtek -EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xacf495a2 btrtl_get_uart_settings +EXPORT_SYMBOL_GPL drivers/auxdisplay/line-display 0xc3ec43f4 linedisp_register +EXPORT_SYMBOL_GPL drivers/auxdisplay/line-display 0xda8e619a linedisp_unregister +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-i3c 0x6de8752e __devm_regmap_init_i3c +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0x849e97ce __devm_regmap_init_sccb +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0x9e580951 __regmap_init_sccb +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0x02a3130c __devm_regmap_init_sdw +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0x1364aa31 __regmap_init_sdw +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw-mbq 0x06abe09a __devm_regmap_init_sdw_mbq +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw-mbq 0x206e6402 __regmap_init_sdw_mbq +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0x165fea78 __devm_regmap_init_slimbus +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0xed1c4d0a __regmap_init_slimbus +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spi-avmm 0x5be022c6 __devm_regmap_init_spi_avmm +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spi-avmm 0xde69899c __regmap_init_spi_avmm +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x2ba1c138 __regmap_init_spmi_ext +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x7544d42a __devm_regmap_init_spmi_base +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x7921ac62 __regmap_init_spmi_base +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0xf8c2b1f3 __devm_regmap_init_spmi_ext +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0x24af6edf __regmap_init_w1 +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0x94733547 __devm_regmap_init_w1 +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x0115fd8e bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x04159337 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x092682f8 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x11e7cce0 bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1d4db83e bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x21566c74 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x3fe44e97 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x56fabd32 bcma_host_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x641aa690 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x8284bb85 bcma_chipco_b_mii_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x85e6f2c4 bcma_host_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9660f58e bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9b7bf6db bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9bbc4540 bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9c7e4a72 bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xae5a77e1 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xaf68aae5 bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xaf96c5a6 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb7a2f1c1 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc5c63d4b bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc5d0debe bcma_host_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc7238d54 bcma_find_core_unit +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd4218b8f bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd69e8080 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x01c9e2e4 btbcm_initialize +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x1cc8f673 btbcm_read_pcm_int_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x2b90385b btbcm_write_pcm_int_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x7382d86f btbcm_setup_apple +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x801cb834 btbcm_finalize +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xae4ac781 btbcm_setup_patchram +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xee874ae9 btbcm_check_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xef43d2b6 btbcm_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x07c60754 btintel_configure_setup +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x301776a0 btintel_send_intel_reset +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x48bef047 btintel_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x48d179e0 btintel_set_quality_report +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x64168d06 btintel_set_event_mask_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x82a26dd8 btintel_read_version +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x865072f8 btintel_check_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x8ade2602 btintel_read_boot_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x8c9a4703 btintel_download_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x8eae290f btintel_regmap_init +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x93ed8768 btintel_version_info +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x9712c7c3 btintel_set_diag +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xac75ce0f btintel_enter_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xbffa5b82 btintel_load_ddc_config +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xc5ea70c1 btintel_secure_send_result +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xcdde85c8 btintel_bootup +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xd9821d19 btintel_exit_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x279f32ae btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x508a4b92 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x757e3b21 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x828a89aa btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8ce9bd7a btmrvl_pscan_window_reporting +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc7b80080 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd7f271db btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe3f488a3 btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf1025e28 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf2214e17 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf9b9e5b8 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0x2387fd7e btmtk_setup_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0xb5de5a96 btmtk_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0xe769cbc7 btmtk_setup_firmware_79xx +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x1dbfffc7 qca_set_bdaddr_rome +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x2e653384 qca_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x4dbf7087 qca_uart_setup +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0xcec12c64 qca_send_pre_shutdown_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0xd1d0254f qca_read_soc_version +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x305fd99a btrtl_setup_realtek +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x42c06a35 btrtl_download_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xa2035208 btrtl_initialize EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xaf78f260 btrtl_free -EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xc0125d49 btrtl_setup_realtek -EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xc90c86f0 btrtl_set_quirks -EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xe19e4290 btrtl_initialize -EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xf272d91b btrtl_download_firmware -EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x0585ce3b h4_recv_buf -EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x1e62b1ea hci_uart_tx_wakeup -EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x91d8dd48 hci_uart_unregister_device -EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0xa406bfb3 hci_uart_register_device -EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x234618ab mhi_ep_driver_unregister -EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x43b6594a mhi_ep_queue_is_empty -EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x79308c95 mhi_ep_queue_skb -EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x7f0c2e59 mhi_ep_power_up -EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x8447d2b0 __mhi_ep_driver_register -EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x9fbd6f7b mhi_ep_unregister_controller -EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xb7fa7bb6 mhi_ep_register_controller -EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xf40b6041 mhi_ep_power_down -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x047e29f0 mhi_alloc_controller -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x0ccfb86e mhi_queue_dma -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x12b64633 mhi_prepare_for_transfer_autoqueue -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x12ba3bd9 mhi_pm_resume_force -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x19a50b72 mhi_queue_skb -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x23b050ee mhi_notify -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x2635e9cd mhi_device_get -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x36270a23 mhi_register_controller -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x3f764370 mhi_get_free_desc_count -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x441a2f31 mhi_free_controller -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7466363e mhi_unregister_controller -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7888bc71 mhi_device_put -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x78d02ed9 mhi_power_down -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7bdf2e87 mhi_queue_buf -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x86dff461 mhi_force_rddm_mode -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x9ca6dbf6 mhi_download_rddm_image -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x9eb319e7 mhi_prepare_for_power_up -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xa07a6d4e mhi_soc_reset -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xa60c42ee mhi_device_get_sync -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xa95ffd38 mhi_prepare_for_transfer -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xb340acbe mhi_driver_unregister -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xbb07657b __mhi_driver_register -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xbdb202e3 mhi_pm_suspend -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xc5084c9b mhi_get_mhi_state -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xd0d52e89 mhi_unprepare_from_transfer -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xda3f6fbb mhi_unprepare_after_power_down -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xf3ca217d mhi_queue_is_full -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xf9cc84d7 mhi_get_exec_env -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xfc7fb58b mhi_async_power_up -EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xfd2e4ea1 mhi_pm_resume -EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x180856e5 __moxtet_register_driver -EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x23c9b92d moxtet_device_write -EXPORT_SYMBOL_GPL drivers/bus/moxtet 0xa5e2ec87 moxtet_device_read -EXPORT_SYMBOL_GPL drivers/bus/moxtet 0xda65cb55 moxtet_device_written -EXPORT_SYMBOL_GPL drivers/bus/sunxi-rsb 0x7af6b0ab __devm_regmap_init_sunxi_rsb -EXPORT_SYMBOL_GPL drivers/bus/sunxi-rsb 0xcdbece5b sunxi_rsb_driver_register -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x029daa48 comedi_alloc_subdevices -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x07c42416 comedi_alloc_spriv -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x08566082 comedi_set_hw_dev -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x0c16bdf6 comedi_set_spriv_auto_free +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xba813c3f btrtl_get_uart_settings +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xcc06093a btrtl_set_quirks +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xfc6b3022 btrtl_shutdown_realtek +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x0fdbce40 h4_recv_buf +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x6b57c87d hci_uart_tx_wakeup +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x9bb2f8d0 hci_uart_register_device +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0xea4c60e7 hci_uart_unregister_device +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x200e36fa __mhi_ep_driver_register +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x6d09c4e3 mhi_ep_register_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x73b8ccd3 mhi_ep_unregister_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x7ae01033 mhi_ep_driver_unregister +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x7b7d118d mhi_ep_queue_is_empty +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xa27b2e77 mhi_ep_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xbbfa7520 mhi_ep_queue_skb +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xced017c1 mhi_ep_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x11f95767 mhi_queue_skb +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x17b9c1d4 mhi_unprepare_after_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x20bbc018 mhi_get_exec_env +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x247895d5 mhi_pm_resume +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x410b06ae mhi_notify +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x4e87ef57 mhi_force_rddm_mode +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x57a40564 mhi_get_mhi_state +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x627ae8d4 mhi_async_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x65b63e51 mhi_driver_unregister +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x67f6b735 mhi_device_get +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x6dcc69c8 mhi_queue_dma +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7bb5c8bc mhi_device_put +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7c2cbfae mhi_pm_suspend +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7d5c7279 mhi_device_get_sync +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x8bcb7c20 mhi_alloc_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x8f2a879c mhi_pm_resume_force +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x9df8a4df mhi_queue_is_full +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xad360f4c __mhi_driver_register +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xc3dfe42e mhi_soc_reset +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xc83e82c9 mhi_prepare_for_transfer_autoqueue +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xcdca34e9 mhi_unregister_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xce558292 mhi_prepare_for_transfer +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xda44b2da mhi_prepare_for_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xdd1f9c64 mhi_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xe9ccdf0a mhi_unprepare_from_transfer +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xeaf9c4f8 mhi_download_rddm_image +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xf0299c5d mhi_register_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xf45f9188 mhi_free_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xf980b7ba mhi_queue_buf +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xfcff04bf mhi_get_free_desc_count +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x08fff0e6 moxtet_device_written +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0xa6a2e0f0 moxtet_device_read +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0xde6cf549 moxtet_device_write +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0xfe4768c9 __moxtet_register_driver +EXPORT_SYMBOL_GPL drivers/bus/sunxi-rsb 0x9b9c820a __devm_regmap_init_sunxi_rsb +EXPORT_SYMBOL_GPL drivers/bus/sunxi-rsb 0xc24f7340 sunxi_rsb_driver_register EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x0cd330f4 range_unknown -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x0d907b2a comedi_alloc_devpriv -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x0f19e6eb comedi_buf_write_free -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x1b925dc4 comedi_readback_insn_read -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x1d32d020 comedi_nscans_left -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x1f8b7148 comedi_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x10d818b4 comedi_buf_write_samples +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x146c77f9 comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x1a0fd5b6 comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x1d9ab609 comedi_legacy_detach EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x21102f87 range_0_32mA -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x21bb720e comedi_buf_read_alloc EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x2f0ad9d3 range_bipolar5 -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x2fbcdf3d comedi_auto_config -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x30663fe4 __comedi_request_region -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x327b539c comedi_driver_unregister -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x34ca33e3 comedi_request_region -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x3705b45a comedi_is_subdevice_running -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x3cf5e8d1 comedi_buf_read_n_available -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x3fbc2c04 comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x302b2477 comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x311e7af7 comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x3a318eae comedi_nscans_left EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4236eaaf range_4_20mA EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4fe634f3 range_bipolar2_5 -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x560bcd75 comedi_timeout -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x62944e6d comedi_bytes_per_scan +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x5a35da71 comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x65c2914e __comedi_request_region +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x6a6c1dc3 comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x70b1bfca comedi_handle_events +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x776b9c70 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7dd6f39c comedi_is_subdevice_running EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x8113872c range_unipolar10 -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x862c3673 comedi_handle_events -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x86d7fe57 comedi_dio_insn_config -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xa903696d comedi_dev_get_from_minor -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xabbf510c comedi_check_chanlist -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xae51a5e5 comedi_buf_read_free -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xb1a41f4d comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x85cff52f comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x886cc3c8 comedi_alloc_subdev_readback +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x8d6d930c comedi_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x8ef03c88 comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x93ccd368 comedi_dev_put +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x9477aca7 comedi_readback_insn_read +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x98fcb393 comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xa5f0d049 comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xa6215697 comedi_buf_read_free EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xb679cebc range_0_20mA -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xb6d6500e comedi_nsamples_left +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xb747a2a2 comedi_bytes_per_scan_cmd +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xba3ada06 comedi_nsamples_left EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xbb52fc7f range_bipolar10 -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xbc363fe6 comedi_buf_write_samples EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xbdbe75c6 range_unipolar2_5 -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xbef73777 comedi_inc_scan_progress -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xc55f1416 comedi_event -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xc6a2174a comedi_buf_write_alloc -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xc6fc085b comedi_dev_put -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xcb1b1da2 comedi_alloc_subdev_readback -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xd00f1b7c comedi_bytes_per_scan_cmd -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xd457c402 comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xc3c623e5 comedi_buf_read_samples +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xce2bdc36 comedi_dev_get_from_minor +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xd2e113f2 comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xd84d162a comedi_check_chanlist EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xdb2044b2 range_unipolar5 -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xe4e6d9bf comedi_buf_read_samples -EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xe4f4c326 comedi_auto_unconfig -EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x018f3d42 comedi_pci_enable -EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x2be34093 comedi_pci_disable -EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x2efced8f comedi_pci_driver_unregister -EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x2fdace72 comedi_pci_auto_config -EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x8195e2d6 comedi_pci_auto_unconfig -EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x85f47f58 comedi_pci_detach -EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x8f1e7c71 comedi_pci_driver_register -EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0xec3d9250 comedi_to_pci_dev -EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x2bf939ea comedi_to_usb_dev -EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x5b6e9c92 comedi_usb_auto_config -EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x8643ee53 comedi_usb_driver_unregister -EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0xa186080c comedi_usb_driver_register -EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0xab61ceec comedi_usb_auto_unconfig -EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0xb82d20a6 comedi_to_usb_interface -EXPORT_SYMBOL_GPL drivers/comedi/drivers/addi_watchdog 0x408c45b2 addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xdd391a22 comedi_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xe28b107f comedi_inc_scan_progress +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xe8fe3a2d comedi_set_spriv_auto_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xe925ee94 comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xebb4d6be comedi_event +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xf0024834 comedi_bytes_per_scan +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xf54f9f87 comedi_timeout +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xfbc9d3aa comedi_request_region +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x1257699b comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x160d9d47 comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x17b2711e comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x3b446156 comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x473ee8da comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x77e46c1a comedi_pci_detach +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x88980d72 comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0xc32ccb90 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x01cc2cc0 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x03d76e7a comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x0e54a1ee comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0xaa7e60a7 comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0xb195711a comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0xc1e1315e comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/drivers/addi_watchdog 0x70c4614c addi_watchdog_init EXPORT_SYMBOL_GPL drivers/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset -EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_pc236_common 0x8b7e4973 amplc_pc236_common_attach -EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x42a1e254 subdev_8255_mm_init -EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x8d9bfecf subdev_8255_init -EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0xa7f52be6 subdev_8255_regbase -EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x1ac5c508 mite_release_channel -EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x1f57f6e9 mite_request_channel -EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x225a4fcc mite_ack_linkc -EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x2da8e52d mite_free_ring -EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x34513ac7 mite_sync_dma -EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x57c223ef mite_init_ring_descriptors -EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x58776bb6 mite_bytes_in_transit -EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x5efa2487 mite_detach -EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x79869794 mite_done -EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xa56ee389 mite_dma_disarm -EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xb7abd854 mite_alloc_ring -EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xbd24a8e1 mite_attach -EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xd9742705 mite_request_channel_in_range -EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xdd13b187 mite_dma_arm -EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xdeab35c6 mite_prep_dma -EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xe1dd1178 mite_buf_change +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_dio200_common 0xc9a4a768 amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_dio200_common 0xe0746bc1 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_pc236_common 0xde6b3285 amplc_pc236_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x000204e3 comedi_8254_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x0206cbb2 comedi_8254_cascade_ns_to_timer +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x2466caa4 comedi_8254_load +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x4f9e80aa comedi_8254_mm_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x567380d4 comedi_8254_update_divisors +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x61323e1e comedi_8254_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x613640e8 comedi_8254_pacer_enable +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x91b32363 comedi_8254_ns_to_timer +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xa6d8f282 comedi_8254_subdevice_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xd0bb7a8e comedi_8254_set_busy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xf0edb649 comedi_8254_set_mode +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xf4722a92 comedi_8254_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xf6452b54 comedi_8254_status +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x2ade9dea subdev_8255_mm_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x578d0875 subdev_8255_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0xbcafcf9d subdev_8255_regbase +EXPORT_SYMBOL_GPL drivers/comedi/drivers/das08 0x261f00ec das08_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x09fb274b mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x28571b2f mite_init_ring_descriptors +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x3cda08be mite_buf_change +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x46b8e73a mite_dma_arm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x4cfebfc6 mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x4e2f898e mite_ack_linkc +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x5bb2486e mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x90bc4023 mite_detach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x9592d208 mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x9e483ff2 mite_release_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xaebc7b46 mite_sync_dma +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xb34280ea mite_request_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xb843dfdd mite_free_ring +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xc5755dc2 mite_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xee2bb194 mite_prep_dma +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xf511b0bf mite_done +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_common 0x335c375d labpc_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_common 0x90ec971a labpc_common_detach EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x076bc308 ni_find_route_source EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x0921123e ni_lookup_route_register EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x1facf7f8 ni_is_cmd_dest @@ -11920,241 +11939,240 @@ EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x8ab47ba4 ni_route_set_has_source EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x8f0f0901 ni_find_route_set EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0xb3e302a3 ni_route_to_register -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x1f82dab5 ni_tio_set_gate_src_raw -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x2af59f88 ni_gpct_device_construct -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x4422b50b ni_gpct_device_destroy -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x44fe4456 ni_tio_set_routing -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x4da2ff21 ni_tio_set_bits -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x4f585be9 ni_tio_arm -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x60f36e4a ni_tio_insn_read -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x6108d4cd ni_tio_insn_write -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x83889082 ni_tio_read -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x93062e36 ni_tio_unset_routing -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x9f35f49c ni_tio_get_soft_copy -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xb3cc07b4 ni_tio_insn_config -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xb67012b3 ni_tio_set_gate_src -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xba042b63 ni_tio_get_routing -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xbc416493 ni_tio_init_counter -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xc48901bb ni_tio_write -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x2415863e ni_tio_cancel -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x5f868a60 ni_tio_cmdtest -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0xd8f9da73 ni_tio_acknowledge -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0xe183642a ni_tio_handle_interrupt -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0xf0e99331 ni_tio_set_mite_channel -EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0xf9e854ee ni_tio_cmd -EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x28a27538 comedi_find_subdevice_by_type -EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x4870aab3 comedi_dio_config -EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x57cf7648 comedi_open -EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x6c296069 comedi_dio_bitfield2 -EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0xc1f0d609 comedi_close -EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0xcd34f597 comedi_dio_get_config -EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0xe59168eb comedi_get_n_channels -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x00aaf96a adf_vf2pf_notify_init -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x02b8f186 adf_exit_admin_comms -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x0bb028ca adf_gen2_init_pf_pfvf_ops -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x0cead643 adf_gen4_ring_pair_reset -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x0e232fad adf_gen4_set_ssm_wdtimer -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x11c38cd9 adf_init_admin_comms -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x157470c6 adf_gen2_init_vf_pfvf_ops -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x15c09a9a adf_dev_up -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x19528fd2 adf_cfg_dev_add -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x24d985a5 adf_gen2_get_accel_cap -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x266af5e2 adf_send_admin_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x06d91396 ni_tio_insn_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x142440c9 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x15026eb8 ni_tio_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x1d3b4acd ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x339c2607 ni_tio_insn_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x3e3c0aa9 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7cdd5232 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7e7ee02b ni_tio_unset_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x87a26e01 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x9550708d ni_tio_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xaba4592e ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xabe4b3da ni_tio_get_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xb8576013 ni_tio_get_soft_copy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xc47b7b0a ni_tio_set_gate_src_raw +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xdc2e5fcb ni_tio_set_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xe4d3c68a ni_tio_set_bits +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x28a210b6 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x384c6eef ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x4b7ff2b1 ni_tio_acknowledge +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x53be01ae ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x6ff79713 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0xa5f21c97 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x5243f3ec comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x72a1c281 comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x9e9e4acf comedi_close +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0xc9c6cefd comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0xcf7b48e7 comedi_dio_config +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0xdbcfd511 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0xeb737dbb comedi_open +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x012369a5 adf_exit_arb +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x047e5028 adf_devmgr_rm_dev +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x058b132c adf_gen2_set_ssm_wdtimer +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x073d1eb3 adf_flush_vf_wq +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x093c6d26 adf_gen2_init_pf_pfvf_ops +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x19e737f4 adf_isr_resource_free +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x234ba1c1 adf_enable_vf2pf_comms +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x265762c4 adf_sysfs_init +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x2ae715c2 adf_init_arb EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x2be4e269 adf_gen2_get_arb_info -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x3577e7cb adf_dev_get -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x36de225e adf_cfg_dev_remove -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x397a4a87 adf_init_etr_data -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x3a1d2bd9 adf_gen2_cfg_iov_thds -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x3ae9a804 adf_cfg_add_key_value_param +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x2cc6d535 adf_send_admin_init +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x31c1b1cb adf_gen2_enable_ints +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x39ef319b adf_gen2_cfg_iov_thds +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x3a476e66 adf_sriov_configure EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x3e707f37 adf_gen2_get_admin_info -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x41b9055c adf_dev_down -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x4703450a adf_dev_in_use -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x4c5aa5a1 adf_devmgr_rm_dev -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x4ef3e966 adf_sriov_configure -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x562950e3 adf_cleanup_etr_data -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x5767724c adf_dev_restart -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x6065562f adf_gen2_dev_config -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x6be239e0 adf_cfg_get_param_value -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x6df9df81 adf_isr_resource_alloc -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x712da018 adf_devmgr_in_reset -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x77aec4c5 adf_disable_pf2vf_interrupts -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x7a2b7069 adf_err_handler -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x7a63f619 adf_devmgr_pci_to_accel_dev -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x8046324f adf_reset_sbr -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x809ea693 adf_gen4_init_pf_pfvf_ops -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x8151eb43 adf_vf2pf_notify_shutdown -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x82016668 adf_dbgfs_exit -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x838cbdd0 adf_devmgr_update_class_index -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x850da1f4 adf_gen2_set_ssm_wdtimer -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x8573a8d9 adf_devmgr_add_dev -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x86028395 adf_flush_vf_wq -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x8d3bc12b adf_gen2_enable_ints -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x8e7827fe adf_gen2_enable_error_correction -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x8f8ddfc4 adf_exit_arb -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x953a4f7c adf_gen4_enable_pm -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x95b013c4 adf_dev_put -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x9e32ff15 adf_dev_started -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x9f287eb5 adf_disable_sriov -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xa38a75ae adf_gen2_get_num_accels -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xaaf5ef4c adf_cfg_section_add -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xc1f4ae5c adf_pfvf_comms_disabled +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x427b61e9 adf_dbgfs_exit +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x4480dbe4 adf_reset_sbr +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x48258fab adf_vf2pf_notify_init +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x4e461fc7 adf_devmgr_in_reset +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x4ffb068c adf_gen4_enable_pm +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x52f4c82c adf_dev_up +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x5362ce12 adf_dev_get +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x55beef32 adf_disable_pf2vf_interrupts +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x57481ca1 adf_cfg_add_key_value_param +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x5e5da4f2 adf_err_handler +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x60746a99 adf_gen2_get_accel_cap +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x66e7f2e7 adf_exit_admin_comms +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x6766aef7 adf_reset_flr +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x6a8d76fc adf_devmgr_update_class_index +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x6ba29fd9 adf_vf_isr_resource_free +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x6fead6ce adf_cleanup_etr_data +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x73b107b2 adf_gen4_set_ssm_wdtimer +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x7818feec adf_gen2_get_num_aes +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x7b5219e8 adf_gen4_ring_pair_reset +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x7b7ffc98 adf_gen4_handle_pm_interrupt +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x7f0679b8 adf_gen4_init_pf_pfvf_ops +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x853778b8 adf_devmgr_add_dev +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x88fd5aa2 adf_gen2_enable_error_correction +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x8a2d9ce7 adf_cfg_dev_remove +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x8bbe64e1 adf_vf2pf_notify_shutdown +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x92c5d1cf adf_disable_sriov +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x9ba39d4d adf_cfg_get_param_value +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0x9ce66c9f adf_pfvf_comms_disabled +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xa3c01aa4 adf_dev_started +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xa44c7e01 adf_gen2_get_num_accels +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xa620577e adf_enable_pf2vf_comms +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xb420b809 adf_init_admin_comms +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xb7e124b9 adf_isr_resource_alloc +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xc3bc9916 adf_gen2_dev_config EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xc501ac82 adf_gen4_init_hw_csr_ops -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xc70d413b adf_vf_isr_resource_free +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xc75f1f96 adf_devmgr_pci_to_accel_dev +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xc7b45586 adf_vf_isr_resource_alloc EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xcc3b167a adf_clean_vf_map -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xcd15be43 adf_enable_pf2vf_comms -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xd4e21a88 adf_enable_vf2pf_comms -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xd4ebb363 adf_dbgfs_init +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xcc5fbc96 adf_init_etr_data +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xcd0ef3c1 adf_cfg_dev_add EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xd64519f1 adf_gen2_init_hw_csr_ops +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xdcab2eee adf_dbgfs_init +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xdf2a68e9 adf_dev_in_use EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xe327f1f1 adf_gen4_init_dc_ops -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xe3c8cda5 adf_isr_resource_free EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xe45f3512 adf_gen2_init_dc_ops -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xe8f7c419 adf_reset_flr -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xefe6611e adf_init_arb -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xf0fc4973 adf_sysfs_init -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xf62dd594 adf_gen4_handle_pm_interrupt -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xf8ae0e7c adf_vf_isr_resource_alloc -EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xf8c804b5 adf_gen2_get_num_aes -EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0x227122cd dw_edma_probe -EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0xbb883205 dw_edma_remove -EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x1201a4ad idma32_dma_remove -EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x23107493 dw_dma_filter -EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x65f5659b dw_dma_probe -EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x85e8e649 idma32_dma_probe -EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xa6155c40 do_dw_dma_enable -EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xa81998df dw_dma_remove -EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xccda7f61 dw_dma_acpi_controller_register -EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xe6c8aed2 do_dw_dma_disable -EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xe9931334 dw_dma_acpi_controller_free -EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x0622c778 fsl_edma_slave_config -EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x12102e97 fsl_edma_xfer_desc -EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x1564e807 fsl_edma_tx_status -EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x15ce5052 fsl_edma_setup_regs -EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x15feed5a fsl_edma_free_chan_resources -EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x16348cbb fsl_edma_chan_mux -EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x321ef15e fsl_edma_resume -EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x3d3c36e1 fsl_edma_prep_memcpy -EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x3f26364d fsl_edma_prep_dma_cyclic -EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x430fe6c0 fsl_edma_issue_pending -EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x5c1893bd fsl_edma_cleanup_vchan -EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x9ff39764 fsl_edma_terminate_all -EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xabdeed7d fsl_edma_disable_request -EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xaf6b4b5a fsl_edma_prep_slave_sg -EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xda775d49 fsl_edma_alloc_chan_resources -EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xdd5daa05 fsl_edma_free_desc -EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xfd19426a fsl_edma_pause -EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0x5a23746f hidma_mgmt_setup -EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0xc49f944b hidma_mgmt_init_sys -EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0x42ac2c05 fw_card_read_cycle_time +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xe926d293 adf_dev_down +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xeb069d22 adf_gen2_init_vf_pfvf_ops +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xf9804c30 adf_dev_put +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xfa7633fa adf_cfg_section_add +EXPORT_SYMBOL_GPL drivers/crypto/intel/qat/qat_common/intel_qat 0xfd2ed651 adf_dev_restart +EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0xaa712f89 dw_edma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0xd0d866fe dw_edma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x00d3762a dw_dma_acpi_controller_free +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x0128cb2a dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x07760c07 dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x14f4f6a1 idma32_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x5408160e do_dw_dma_disable +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x6027b536 dw_dma_acpi_controller_register +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x6436db72 dw_dma_filter +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x9c021a79 do_dw_dma_enable +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xa9beccb8 idma32_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x0d925cc4 fsl_edma_resume +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x328124f0 fsl_edma_terminate_all +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x4c3de15f fsl_edma_free_desc +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x4cbbc3a9 fsl_edma_disable_request +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x5043bebd fsl_edma_prep_slave_sg +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x6921a338 fsl_edma_prep_memcpy +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x6bc6ffdc fsl_edma_xfer_desc +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x7afd7c0f fsl_edma_chan_mux +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x9a8734b0 fsl_edma_cleanup_vchan +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x9b9db5c6 fsl_edma_pause +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x9d760b82 fsl_edma_slave_config +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xa3e4ac7e fsl_edma_free_chan_resources +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xae56d7b2 fsl_edma_issue_pending +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xb159fd97 fsl_edma_prep_dma_cyclic +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xdcc50cc3 fsl_edma_alloc_chan_resources +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xdfb9f2f5 fsl_edma_tx_status +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xfe515a23 fsl_edma_setup_regs +EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0x73c0cd73 hidma_mgmt_init_sys +EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0xef1e1139 hidma_mgmt_setup EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xabb5547d fw_request_get_timestamp +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xb02d32d8 __fw_send_request +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xe59d392e fw_card_read_cycle_time EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xe86fb5c7 fw_card_release -EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xff83b8ce __fw_send_request -EXPORT_SYMBOL_GPL drivers/fpga/altera-pr-ip-core 0xcd58856f alt_pr_register -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x02036b13 dfl_fpga_port_ops_del -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x21bd9c99 dfl_fpga_cdev_assign_port -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x269ae209 dfl_fpga_enum_info_alloc -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x31219789 dfl_fpga_port_ops_put -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x33900dc0 dfl_fpga_cdev_release_port -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x4b7acd27 dfl_fpga_enum_info_add_irq -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x6ab6729e dfl_fpga_feature_devs_enumerate -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x6fcef299 dfl_fpga_enum_info_free -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x78d5a009 __dfl_fpga_cdev_find_port -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x79f65437 dfl_feature_ioctl_get_num_irqs -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7b9c9aa7 dfl_fpga_feature_devs_remove -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x813ea039 dfl_fpga_port_ops_get -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x90fe41a9 dfl_fpga_dev_ops_unregister -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xa809af83 dfl_fpga_dev_feature_uinit -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xa860858d dfh_find_param -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xab73d154 dfl_fpga_cdev_config_ports_pf -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xc4b06f0f dfl_feature_ioctl_set_irq -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xc74738a8 dfl_fpga_dev_ops_register -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xcc3e29f4 dfl_fpga_dev_feature_init -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xd1fb5bcb dfl_fpga_cdev_config_ports_vf -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xd871badd dfl_fpga_set_irq_triggers -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xdaf115ef dfl_fpga_enum_info_add_dfl -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xdcb02732 dfl_fpga_port_ops_add -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xef5381ba dfl_fpga_check_port_id +EXPORT_SYMBOL_GPL drivers/fpga/altera-pr-ip-core 0xbf9f8c29 alt_pr_register +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x12e2ca12 dfl_fpga_cdev_config_ports_pf +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x149d5cef dfl_fpga_enum_info_alloc +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x223cb865 dfl_fpga_enum_info_add_dfl +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x2f3a720a dfl_feature_ioctl_get_num_irqs +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x36959e01 dfh_find_param +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x375233bb dfl_fpga_cdev_release_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x493f6672 dfl_fpga_enum_info_free +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x570f3175 dfl_fpga_cdev_assign_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x5f3b12c1 dfl_fpga_port_ops_add +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x6c78d91f dfl_fpga_dev_feature_init +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x77e4da86 dfl_fpga_dev_ops_register +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7e14abd7 dfl_fpga_port_ops_del +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x8a1ea06f dfl_fpga_set_irq_triggers +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x91afceef dfl_fpga_cdev_config_ports_vf +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xa40ca61b dfl_fpga_dev_feature_uinit +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xa7da63c0 dfl_fpga_dev_ops_unregister +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xc7aa7645 dfl_fpga_feature_devs_enumerate +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xcb562ecc __dfl_fpga_cdev_find_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xd5fb4fda dfl_fpga_feature_devs_remove +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xdc248f67 dfl_fpga_port_ops_get +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xea8ce46e dfl_fpga_enum_info_add_irq +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xf18f9c81 dfl_feature_ioctl_set_irq +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xf729e751 dfl_fpga_check_port_id +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xff8095da dfl_fpga_port_ops_put EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x0633c4b9 fpga_bridges_enable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x06e2ab3d fpga_bridge_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x089a845e of_fpga_bridge_get_to_list EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x0b2b884c fpga_bridges_put -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x0cef282c fpga_bridge_disable -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x1942ab94 fpga_bridge_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x12c2dd73 fpga_bridge_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x1487801c fpga_bridge_unregister EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x2c8167cf fpga_bridges_disable -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x5130c6bb fpga_bridge_unregister -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x516918fb fpga_bridge_register -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x535593bf of_fpga_bridge_get_to_list -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x80e3b8f2 fpga_bridge_get -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x8213967d fpga_bridge_get_to_list -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x8fdc4a69 of_fpga_bridge_get -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x9aa941cb fpga_bridge_enable -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x0349461c fpga_image_info_free -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x0aa667fd fpga_mgr_put -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x250a933e fpga_mgr_get -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x2ac77484 fpga_image_info_alloc -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x6a8dcc0d fpga_mgr_unlock -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x917f2f71 devm_fpga_mgr_register -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x97b29a9b devm_fpga_mgr_register_full -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x9fb4da1b fpga_mgr_lock -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xac7f6063 fpga_mgr_register -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xcaf2aa0b of_fpga_mgr_get -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xd1773df3 fpga_mgr_load -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xd2f0e5ad fpga_mgr_unregister -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xfd0cb88a fpga_mgr_register_full -EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x1765cf23 fpga_region_register -EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x7d21bd8a fpga_region_class_find -EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0xc2e58307 fpga_region_register_full -EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0xdf53f172 fpga_region_program_fpga -EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0xe7ca9a08 fpga_region_unregister -EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x083eef50 fsi_bus_type -EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x157b11f0 fsi_cdev_type -EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x1b2428db fsi_driver_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x4d64d2c2 fpga_bridge_get_to_list +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x76cbe2ee fpga_bridge_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x7705332d fpga_bridge_enable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x904cdba7 fpga_bridge_disable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0xaef50e8c of_fpga_bridge_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x22e25638 fpga_image_info_alloc +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x259d770d fpga_mgr_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x357da2ed fpga_mgr_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x363c5a6a of_fpga_mgr_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x58283ec0 devm_fpga_mgr_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x65cf5f78 fpga_mgr_unlock +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x8638b6f6 fpga_mgr_load +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x94cbcfcb fpga_mgr_lock +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x96fd931e fpga_image_info_free +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x9edc02fd fpga_mgr_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xbb8821de fpga_mgr_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xc8837117 fpga_mgr_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xd514d91c devm_fpga_mgr_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x57444f62 fpga_region_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x6bd1ac08 fpga_region_program_fpga +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x7b93d228 fpga_region_class_find +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0xa010d9f3 fpga_region_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0xbc732eec fpga_region_register_full +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x01a859e4 fsi_get_new_minor EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x3a93847e fsi_slave_claim_range -EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x46d79390 fsi_device_write +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x3a9f9f4f fsi_cdev_type +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x5787f313 fsi_device_read EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x5a57d574 fsi_free_minor EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x78060f23 fsi_slave_read -EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x861aeac0 fsi_driver_register -EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x8f9f6c61 fsi_master_unregister -EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xca881095 fsi_get_new_minor -EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xcc81dfcb fsi_device_read +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x88c5eafe fsi_driver_unregister +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x89a7be19 fsi_driver_register +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xa6fac6bd fsi_master_rescan +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xc31fe566 fsi_bus_type +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xcc28e436 fsi_device_write EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xce22aee2 fsi_slave_release_range -EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xcfb74f38 fsi_master_register EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xd942f235 fsi_slave_write -EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xefc6c406 fsi_master_rescan -EXPORT_SYMBOL_GPL drivers/fsi/fsi-occ 0x27f2db7f fsi_occ_submit -EXPORT_SYMBOL_GPL drivers/fsi/fsi-sbefifo 0x1a319e5d sbefifo_parse_status -EXPORT_SYMBOL_GPL drivers/fsi/fsi-sbefifo 0xd4430031 sbefifo_submit -EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x2663eca5 gnss_put_device -EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x29b7cbb1 gnss_register_device -EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x732aa8de gnss_insert_raw -EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x914d6b82 gnss_deregister_device -EXPORT_SYMBOL_GPL drivers/gnss/gnss 0xd90dd114 gnss_allocate_device -EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x00b0289e gnss_serial_free -EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x35bb3143 gnss_serial_allocate -EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x72f81a05 gnss_serial_pm_ops -EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x901b9088 gnss_serial_register -EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0xf465baba gnss_serial_deregister +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xe60362af fsi_master_register +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xf39a0708 fsi_master_unregister +EXPORT_SYMBOL_GPL drivers/fsi/fsi-occ 0x505a49be fsi_occ_submit +EXPORT_SYMBOL_GPL drivers/fsi/fsi-sbefifo 0x99c59a42 sbefifo_submit +EXPORT_SYMBOL_GPL drivers/fsi/fsi-sbefifo 0xbb1d2bc6 sbefifo_parse_status +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x084e94f3 gnss_insert_raw +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x23ceb696 gnss_allocate_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x2a01f380 gnss_register_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0xb6aa27ce gnss_put_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0xee730627 gnss_deregister_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x07270a18 gnss_serial_pm_ops +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0xd8c7560a gnss_serial_deregister +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0xddcb41d9 gnss_serial_register +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0xf3323277 gnss_serial_free +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0xfa58d4f0 gnss_serial_allocate EXPORT_SYMBOL_GPL drivers/gpio/gpio-idio-16 0x1f77a060 idio_16_set EXPORT_SYMBOL_GPL drivers/gpio/gpio-idio-16 0x373a256a idio_16_get EXPORT_SYMBOL_GPL drivers/gpio/gpio-idio-16 0x71550ba7 idio_16_set_multiple EXPORT_SYMBOL_GPL drivers/gpio/gpio-idio-16 0x973e5e0d idio_16_get_multiple EXPORT_SYMBOL_GPL drivers/gpio/gpio-idio-16 0xa0644086 idio_16_state_init -EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x02841a8c __max730x_remove -EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x16ce80ef __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x1e4fee65 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xd77bc57f __max730x_remove EXPORT_SYMBOL_GPL drivers/gpio/gpio-regmap 0x496ce291 gpio_regmap_get_drvdata -EXPORT_SYMBOL_GPL drivers/gpio/gpio-regmap 0x96856460 gpio_regmap_register +EXPORT_SYMBOL_GPL drivers/gpio/gpio-regmap 0x52fe514a gpio_regmap_register +EXPORT_SYMBOL_GPL drivers/gpio/gpio-regmap 0x89fccec5 devm_gpio_regmap_register EXPORT_SYMBOL_GPL drivers/gpio/gpio-regmap 0xb7066570 gpio_regmap_unregister -EXPORT_SYMBOL_GPL drivers/gpio/gpio-regmap 0xd87291dc devm_gpio_regmap_register -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x0719f6f6 analogix_dp_unbind -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x09ec0dcb analogix_dp_start_crc -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x1c4babe3 analogix_dp_remove -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x2497c2ae analogix_dp_bind -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x3c5ed91a analogix_dp_suspend +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x082bc1d2 analogix_dp_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x0ca8d2fc analogix_dp_start_crc EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x3ee0dd60 anx_dp_aux_transfer -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x639b8951 analogix_dp_probe -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x7b4e08cb analogix_dp_stop_crc -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0xb6115a91 analogix_dp_resume -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/samsung-dsim 0x16018dd3 samsung_dsim_pm_ops -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/samsung-dsim 0x6f77c7b7 samsung_dsim_probe -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/samsung-dsim 0xb7307128 samsung_dsim_remove -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x048610e7 dw_hdmi_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x59dc35a2 analogix_dp_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x7ea0c3d1 analogix_dp_resume +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x8cd25dd1 analogix_dp_suspend +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0xa02183bf analogix_dp_bind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0xa125dc45 analogix_dp_unbind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0xc5cd6787 analogix_dp_stop_crc +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/samsung-dsim 0x73d66491 samsung_dsim_pm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/samsung-dsim 0xa211d9c2 samsung_dsim_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/samsung-dsim 0xc4dc7851 samsung_dsim_probe EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x09340e05 dw_hdmi_set_channel_count EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x094f6fc5 dw_hdmi_phy_i2c_set_addr EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x1461e227 dw_hdmi_set_channel_status @@ -12162,13 +12180,12 @@ EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x2d1c0e80 dw_hdmi_setup_rx_sense EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x2fac9436 dw_hdmi_set_channel_allocation EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x316212a8 dw_hdmi_unbind -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x3f3bc184 dw_hdmi_bind EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x42926f4a dw_hdmi_resume EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x4a9b174f dw_hdmi_remove EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x56f72e25 dw_hdmi_set_sample_non_pcm EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x6712b5a7 dw_hdmi_phy_gen2_txpwron EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7d8a3aee dw_hdmi_phy_i2c_write -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x88ac1663 dw_hdmi_set_plugged_cb +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7e35738c dw_hdmi_probe EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x8dcd6f43 dw_hdmi_set_sample_rate EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x96f3e250 dw_hdmi_set_sample_width EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x9b44a60b dw_hdmi_phy_gen2_pddq @@ -12178,468 +12195,470 @@ EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xd6968220 dw_hdmi_phy_setup_hpd EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xd8fe547b dw_hdmi_audio_enable EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xdafa1790 dw_hdmi_phy_read_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xe3f8bb9e dw_hdmi_bind EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xf5922009 dw_hdmi_phy_update_hpd -EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_display_helper 0x1831b872 drm_hdcp_check_ksvs_revoked -EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x2f4b8af4 of_dp_aux_depopulate_bus -EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x3b0d3e54 devm_of_dp_aux_populate_bus -EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x4a774cd9 of_dp_aux_populate_bus -EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x8ec1249f __dp_aux_dp_driver_register -EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0xacce9f78 dp_aux_dp_driver_unregister -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x06b6a73f drmm_kstrdup -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x12232dc0 drm_bridge_hpd_notify -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x13147c62 of_get_drm_panel_display_mode -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1d763086 drm_of_lvds_get_dual_link_pixel_order -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x23314609 drm_of_get_data_lanes_count -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x34b0a420 drm_of_get_data_lanes_count_ep -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x38205845 drm_bridge_detect -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x44e28b0c drm_of_lvds_get_data_mapping -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x48b562cc accel_open +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xfe84b3db dw_hdmi_set_plugged_cb +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_display_helper 0x565dd21d drm_hdcp_check_ksvs_revoked +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x0d3aef1c devm_of_dp_aux_populate_bus +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x32684d89 dp_aux_dp_driver_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x5fa9d13d of_dp_aux_populate_bus +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x63fe7950 __dp_aux_dp_driver_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0xe2c2b3ad of_dp_aux_depopulate_bus +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x389f9921 drm_do_get_edid +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x4381b411 drm_bridge_detect +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x45d8004d drm_of_get_data_lanes_count +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x481849aa drm_bridge_get_modes +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x50ec72b6 drm_of_get_dsi_bus +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x5192047e drm_gem_dumb_map_offset +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x5f14d423 drm_of_get_data_lanes_count_ep EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x66cf2f64 drm_display_mode_from_videomode -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x66f36afc drm_of_find_panel_or_bridge -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x6bbe9b58 drm_class_device_unregister -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x83968953 drm_bridge_hpd_enable -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x85993f2f drm_bridge_get_modes +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x8ec51b38 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x97d13b47 drm_of_lvds_get_dual_link_pixel_order +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xa0d520f9 drm_of_encoder_active_endpoint +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xa11531d5 drm_class_device_register EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xad885165 drm_bus_flags_from_videomode -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xc797ea2c drm_class_device_register -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd0c8da72 drm_bridge_get_edid -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xdc9ef0a3 drm_of_component_match_add -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xe404baf4 drm_do_get_edid -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xe7884b09 drm_bridge_hpd_disable -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xeb756924 drm_of_encoder_active_endpoint -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xecf8a93c drm_gem_dumb_map_offset -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xef6abaca drm_crtc_add_crc_entry -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xf04847e9 drm_of_get_dsi_bus -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xf1d4d92a of_get_drm_display_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xafc4e7b6 accel_open +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xb7b3caf2 drm_of_lvds_get_data_mapping +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xc4ae345c drm_of_component_match_add +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xc5715495 drmm_kstrdup +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd2adf30a drm_bridge_hpd_enable +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd5a0eac9 drm_bridge_hpd_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd5d437b5 drm_crtc_add_crc_entry +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xdd588222 of_get_drm_display_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xe9a6e05c drm_bridge_get_edid +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xefb7386a of_get_drm_panel_display_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xf853d2b1 drm_bridge_hpd_notify EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xfe9f72f3 drm_display_mode_to_videomode -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0x070f35b4 drm_gem_dma_get_sg_table -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0x0d554620 drm_gem_dma_mmap -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0x2983105d drm_fb_dma_get_gem_addr -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0x39a389f9 drm_gem_dma_create -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0x55955bf5 drm_fb_dma_get_gem_obj -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0x734108f9 drm_gem_dma_dumb_create -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0x736b3b2b drm_gem_dma_prime_import_sg_table -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0x8936efe1 drm_gem_dma_vmap -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0x8c33f7fb drm_gem_dma_vm_ops -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0xb6b90b4d drm_gem_dma_free -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0xbdb6f844 drm_fb_dma_sync_non_coherent -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0xd29c0e3c drm_gem_dma_dumb_create_internal -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x5b3498c5 drm_gem_fb_create_with_funcs -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x85981631 drm_gem_fb_create -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x8bd9a952 drm_gem_fb_create_with_dirty -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x91f992b7 drm_gem_fb_init_with_funcs -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x96032321 drm_gem_plane_helper_prepare_fb -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xc9dc64ce drm_gem_fb_afbc_init -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xd805472c drm_bridge_connector_init -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xe10d1ab0 drm_gem_fb_get_obj -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x0181ac85 drm_gem_shmem_mmap -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x0d9c8c7f drm_gem_shmem_get_pages_sgt -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x450a0cc6 drm_gem_shmem_get_sg_table -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x59b4edcb drm_gem_shmem_prime_import_sg_table -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x764f9cc4 drm_gem_shmem_create -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xa8564991 drm_gem_shmem_vm_ops -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xdace86fc drm_gem_shmem_dumb_create -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xfe55f1d0 drm_gem_shmem_free -EXPORT_SYMBOL_GPL drivers/gpu/drm/panel/panel-samsung-s6e63m0 0x02e2c338 s6e63m0_probe -EXPORT_SYMBOL_GPL drivers/gpu/drm/panel/panel-samsung-s6e63m0 0x038bfcd0 s6e63m0_remove -EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x5375284a ssd130x_remove -EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x8a7a1e11 ssd130x_shutdown -EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0xe145b813 ssd130x_probe -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x073fd8c0 gb_connection_enable_tx -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x09666f0b gb_connection_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xfef09bf4 drm_of_find_panel_or_bridge +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0x45d17faf drm_gem_dma_dumb_create_internal +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0x5577b3b2 drm_fb_dma_get_gem_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0x56a14102 drm_gem_dma_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0x82a8fa72 drm_fb_dma_get_gem_addr +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0x85411af1 drm_gem_dma_free +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0x8c17bddc drm_gem_dma_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0x9185a0f8 drm_fb_dma_sync_non_coherent +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0xc576f432 drm_gem_dma_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0xe4caf47d drm_gem_dma_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0xf5f10322 drm_gem_dma_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0xf6bfb762 drm_gem_dma_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_dma_helper 0xf8222c7e drm_gem_dma_vmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x12612e6f drm_gem_fb_init_with_funcs +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x1d87bad7 drm_bridge_connector_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x278de89a drm_gem_fb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x593fcfbb drm_gem_fb_create_with_dirty +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x6d47f5e0 drm_gem_fb_get_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x6dbbc120 drm_gem_fb_afbc_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xb17e1032 drm_gem_plane_helper_prepare_fb +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xb34a6604 drm_gem_fb_create_with_funcs +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x159ed24b drm_gem_shmem_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x315a6ff8 drm_gem_shmem_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x3b7fe9cb drm_gem_shmem_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x3d2adaff drm_gem_shmem_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x957af4bf drm_gem_shmem_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xc8356c9c drm_gem_shmem_free +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xcee4fbfb drm_gem_shmem_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xf63b6cb7 drm_gem_shmem_get_pages_sgt +EXPORT_SYMBOL_GPL drivers/gpu/drm/panel/panel-samsung-s6e63m0 0x016ea84f s6e63m0_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/panel/panel-samsung-s6e63m0 0xa2c547ac s6e63m0_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x13ac4b68 ssd130x_shutdown +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x2a200d86 ssd130x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x4a8bab82 ssd130x_remove +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x0581f0ad gb_connection_destroy +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x07cf3e47 gb_connection_disable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x0f2c54a9 gb_hd_put +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x108d7194 gb_operation_put EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x14028e17 __SCK__tp_func_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x14d956b5 gb_debugfs_get EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x15d1942f greybus_disabled -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x17dce362 gb_operation_sync_timeout -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x1a85490e gb_debugfs_get -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x1e8d48a8 gb_hd_put -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x2259caf1 gb_interface_request_mode_switch -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x2a79d590 gb_connection_create_flags +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x15d6012d gb_operation_unidirectional_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x1f259ed7 gb_operation_request_send_sync_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x21dfb24a gb_operation_result +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x2bbf7b7c gb_operation_request_send EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x2df663a5 __tracepoint_gb_hd_del -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x314fca95 greybus_message_sent -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3515a191 __traceiter_gb_hd_create -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x36e2459c __traceiter_gb_hd_in -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x396b7329 greybus_data_rcvd -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3c4fec46 gb_operation_create_flags -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3cb1e805 gb_operation_request_send_sync_timeout -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3cbfa698 gb_hd_create -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x4b94938d greybus_register_driver -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x5248f874 gb_hd_output -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x52679ec2 gb_hd_cport_reserve -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x550998e3 gb_operation_response_alloc -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x5835e68b gb_operation_get_payload_size_max -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x636425a1 gb_operation_request_send -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x64c19ec1 gb_connection_enable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3210b4c8 gb_connection_enable_tx +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x46dbd7e8 gb_connection_enable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x49a2f18e gb_connection_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x4b4f531b gb_operation_sync_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x52a21c7a gb_operation_response_alloc +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x59216f1d __traceiter_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x61bfac80 gb_interface_request_mode_switch +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x61e80756 __traceiter_gb_hd_create EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x6d3bb9ec __SCK__tp_func_gb_message_submit -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x6d762e00 gb_hd_add EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x6fa01fda __tracepoint_gb_hd_in -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7d777ed5 gb_operation_unidirectional_timeout -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7e9a44ca gb_connection_disable_rx +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7155e7a7 gb_connection_create_offloaded +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x731161c5 gb_operation_get +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7520a9b9 gb_connection_latency_tag_disable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x78ae85de gb_hd_cport_release_reserved +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7ccdc9d0 gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x814a476c gb_hd_create EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x81e221fb __SCK__tp_func_gb_hd_create -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x8214a35e gb_hd_del -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x85737f18 greybus_deregister_driver +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x864a3011 gb_connection_disable_rx EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x89f514a1 __SCK__tp_func_gb_hd_in -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x8b328c50 gb_connection_latency_tag_enable -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x8d2b6c17 __traceiter_gb_hd_release -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x9425ec58 __traceiter_gb_message_submit -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x95a96013 __traceiter_gb_hd_add -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x95e8c57b gb_connection_latency_tag_disable -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x9e4433b5 __traceiter_gb_hd_del -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xa0346bf9 gb_connection_create_offloaded -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xacdd7144 gb_operation_result -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xafdfd38f gb_operation_put -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xb0557744 gb_connection_destroy +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x8a6c78fa gb_hd_output +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x8cde7992 gb_connection_disable_forced +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x9c53a3e3 gb_connection_create_flags +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xa0f4d66a gb_connection_latency_tag_enable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xa1c9e9fb gb_hd_cport_reserve +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xa3d64390 __traceiter_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xa4bbcb6c gb_operation_create_flags +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xb100912a __traceiter_gb_hd_del EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xbf2c07db __tracepoint_gb_hd_create -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xc02666e0 gb_hd_cport_release_reserved +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xc15d95d3 __traceiter_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xc30830a6 gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xc6086671 gb_hd_shutdown EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xca574fcc __tracepoint_gb_hd_release -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xcf623db8 gb_operation_get -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xd29ea78d gb_svc_intf_set_power_mode +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xca6ccfac greybus_deregister_driver EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xd33373a8 __tracepoint_gb_hd_add -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xe06e70d4 gb_connection_create -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xe4644dc6 gb_hd_shutdown +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xd483641a gb_operation_get_payload_size_max +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xd88fa1d0 gb_svc_intf_set_power_mode +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xe690e49f __traceiter_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xe8794888 gb_operation_cancel EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xeac79e1a __SCK__tp_func_gb_hd_del -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xee2ecf66 gb_operation_cancel EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xf107a122 __SCK__tp_func_gb_hd_release EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xf357c63d __tracepoint_gb_message_submit -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xf504a4b0 gb_connection_disable_forced -EXPORT_SYMBOL_GPL drivers/hid/hid 0x01b99e25 hid_hw_output_report -EXPORT_SYMBOL_GPL drivers/hid/hid 0x028f1072 __hid_request -EXPORT_SYMBOL_GPL drivers/hid/hid 0x02c42b57 hid_match_id -EXPORT_SYMBOL_GPL drivers/hid/hid 0x0a396c9e hid_add_device +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xf809dac7 greybus_register_driver +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xf8551f9c greybus_message_sent +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xfdf35978 greybus_data_rcvd +EXPORT_SYMBOL_GPL drivers/hid/hid 0x002b295a hid_match_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x07ca6ba7 hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0x13854c58 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x19b0d100 hidraw_connect EXPORT_SYMBOL_GPL drivers/hid/hid 0x19d52f1f hid_quirks_exit -EXPORT_SYMBOL_GPL drivers/hid/hid 0x1fa05ea0 hid_open_report -EXPORT_SYMBOL_GPL drivers/hid/hid 0x2084e784 hid_compare_device_paths -EXPORT_SYMBOL_GPL drivers/hid/hid 0x23198b87 hid_hw_raw_request -EXPORT_SYMBOL_GPL drivers/hid/hid 0x2760cdc9 hid_parse_report -EXPORT_SYMBOL_GPL drivers/hid/hid 0x2c5a160f hid_disconnect -EXPORT_SYMBOL_GPL drivers/hid/hid 0x3218b247 hidinput_get_led_field -EXPORT_SYMBOL_GPL drivers/hid/hid 0x38eb3644 hid_check_keys_pressed -EXPORT_SYMBOL_GPL drivers/hid/hid 0x3b57b187 hid_field_extract -EXPORT_SYMBOL_GPL drivers/hid/hid 0x3cb12e45 hidraw_connect -EXPORT_SYMBOL_GPL drivers/hid/hid 0x40ec8349 hid_set_field -EXPORT_SYMBOL_GPL drivers/hid/hid 0x411c8f88 hidinput_calc_abs_res -EXPORT_SYMBOL_GPL drivers/hid/hid 0x49178e69 hidinput_disconnect -EXPORT_SYMBOL_GPL drivers/hid/hid 0x4a1d5464 hid_resolv_usage -EXPORT_SYMBOL_GPL drivers/hid/hid 0x53b78f09 __hid_register_driver -EXPORT_SYMBOL_GPL drivers/hid/hid 0x587dedfd hidraw_report_event -EXPORT_SYMBOL_GPL drivers/hid/hid 0x59dcfa61 hid_match_device -EXPORT_SYMBOL_GPL drivers/hid/hid 0x62033186 hid_hw_open -EXPORT_SYMBOL_GPL drivers/hid/hid 0x636d4180 hid_driver_suspend -EXPORT_SYMBOL_GPL drivers/hid/hid 0x6ae4eec8 hid_validate_values -EXPORT_SYMBOL_GPL drivers/hid/hid 0x6cb6d65c hidraw_disconnect -EXPORT_SYMBOL_GPL drivers/hid/hid 0x6f83e646 hidinput_connect -EXPORT_SYMBOL_GPL drivers/hid/hid 0x7ad5cd1b hid_unregister_driver -EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fb63239 hid_dump_field -EXPORT_SYMBOL_GPL drivers/hid/hid 0x894371c1 hid_setup_resolution_multiplier -EXPORT_SYMBOL_GPL drivers/hid/hid 0x895ec2a3 hid_debug_event -EXPORT_SYMBOL_GPL drivers/hid/hid 0x8a50506b hid_hw_start +EXPORT_SYMBOL_GPL drivers/hid/hid 0x23ce817d hid_hw_start +EXPORT_SYMBOL_GPL drivers/hid/hid 0x26cb1264 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2aaa73d7 hid_hw_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2f765a68 hid_hw_open +EXPORT_SYMBOL_GPL drivers/hid/hid 0x30389f73 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x362abc28 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3891047c hid_hw_close +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3be751cc __hid_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3c7d78c9 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3e0b7189 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3f260f23 hid_driver_reset_resume +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3f2aa4fa hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4c135dba hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x51e0aa50 hid_hw_raw_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0x53334f5b hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5794ef4a hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x59f91783 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5b835ace hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6c85fa07 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x76dd8019 hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0x812c87af hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x87b78606 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8976a8cf hidinput_count_leds EXPORT_SYMBOL_GPL drivers/hid/hid 0x8b13a8b8 hid_snto32 -EXPORT_SYMBOL_GPL drivers/hid/hid 0x8d65e825 hid_hw_request -EXPORT_SYMBOL_GPL drivers/hid/hid 0x8e7cde6b hid_register_report -EXPORT_SYMBOL_GPL drivers/hid/hid 0x9613d0ba hid_output_report -EXPORT_SYMBOL_GPL drivers/hid/hid 0x9b797320 hid_driver_resume -EXPORT_SYMBOL_GPL drivers/hid/hid 0x9de83423 hidinput_count_leds -EXPORT_SYMBOL_GPL drivers/hid/hid 0xad7c0e41 hid_dump_report -EXPORT_SYMBOL_GPL drivers/hid/hid 0xb1e90ca1 hid_lookup_quirk -EXPORT_SYMBOL_GPL drivers/hid/hid 0xb2d7674d hid_allocate_device -EXPORT_SYMBOL_GPL drivers/hid/hid 0xb793ee22 hid_destroy_device -EXPORT_SYMBOL_GPL drivers/hid/hid 0xc570bf3f hidinput_report_event -EXPORT_SYMBOL_GPL drivers/hid/hid 0xc86299b7 hid_input_report -EXPORT_SYMBOL_GPL drivers/hid/hid 0xca476044 hid_dump_input -EXPORT_SYMBOL_GPL drivers/hid/hid 0xcf275b88 hid_ignore -EXPORT_SYMBOL_GPL drivers/hid/hid 0xcfa84982 hid_connect -EXPORT_SYMBOL_GPL drivers/hid/hid 0xd72c3df3 hid_dump_device -EXPORT_SYMBOL_GPL drivers/hid/hid 0xe3bb684b hid_driver_reset_resume -EXPORT_SYMBOL_GPL drivers/hid/hid 0xe99e7213 hid_hw_close -EXPORT_SYMBOL_GPL drivers/hid/hid 0xf2b04ec6 hid_report_raw_event -EXPORT_SYMBOL_GPL drivers/hid/hid 0xf43567b4 hid_hw_stop +EXPORT_SYMBOL_GPL drivers/hid/hid 0x943d5737 hid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9494f4ab hid_field_extract +EXPORT_SYMBOL_GPL drivers/hid/hid 0x95209f15 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9d5807ca hid_hw_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa29f265e hid_driver_suspend +EXPORT_SYMBOL_GPL drivers/hid/hid 0xab2e2b1a hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaefac53e hid_match_id +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb50c6827 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbf2c314e hid_setup_resolution_multiplier +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc7dde414 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcd8f68d2 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd1b8f394 hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd2e0a7cc hid_compare_device_paths +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd5e323bd hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd9a8de9b hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdb63de73 hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0xde35adcb hid_hw_stop +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe09eb9f7 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe4857ec7 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe69d59c5 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xeae3aae3 hid_driver_resume +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf29fa24d hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf6f78de2 hid_open_report EXPORT_SYMBOL_GPL drivers/hid/hid 0xfa355613 hid_quirks_init -EXPORT_SYMBOL_GPL drivers/hid/hid 0xfbd9bd4a hid_alloc_report_buf EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x3ab8e3b0 roccat_connect EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x3e4427c8 roccat_report_event -EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x716ae1d2 roccat_connect -EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x0de7db28 roccat_common2_send -EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x3b546d99 roccat_common2_receive -EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x7f0fe69e roccat_common2_send_with_status -EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xc3031a4b roccat_common2_device_init_struct -EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xc399e66a roccat_common2_sysfs_read -EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xeea01b9d roccat_common2_sysfs_write -EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x198fd9bf sensor_hub_input_get_attribute_info -EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x1b071bf1 hid_sensor_get_usage_index -EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x41c5f2ab sensor_hub_register_callback -EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x6dcda863 sensor_hub_remove_callback -EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x84c983ba sensor_hub_set_feature -EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xa71cc6d3 sensor_hub_get_feature -EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xe1f1c288 sensor_hub_device_open -EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xf8c1a996 sensor_hub_input_attr_get_raw_value -EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xfb34ecdd sensor_hub_device_close -EXPORT_SYMBOL_GPL drivers/hid/hid-vivaldi-common 0x5f763d67 vivaldi_attribute_groups -EXPORT_SYMBOL_GPL drivers/hid/hid-vivaldi-common 0x6aabad2b vivaldi_feature_mapping -EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x01a47e12 i2c_hid_core_remove -EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x2855b9d1 i2c_hid_core_shutdown -EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x9608fb2f i2c_hid_core_probe -EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0xc66c3f63 i2c_hid_core_pm -EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xce58e9a3 hiddev_hid_event -EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xe802dfa1 hid_is_usb -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x119e0a84 hsi_new_client -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x2bd09cd7 hsi_put_controller -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x2c126ca7 hsi_claim_port -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x46786e79 hsi_remove_client -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x4939b0ea hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x1d5b4421 roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x4e1196fc roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x6ba7ef44 roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xc59cc26a roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xcaf2e219 roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xe99ab8d6 roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x36541ee4 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x475af0c5 hid_sensor_get_usage_index +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x52bab342 sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x674f21e1 sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x6d949470 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x7d9c4411 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x8600f63a sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xa64b88a6 sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xce437b56 sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/hid-vivaldi-common 0x08033ac6 vivaldi_attribute_groups +EXPORT_SYMBOL_GPL drivers/hid/hid-vivaldi-common 0xdfe528be vivaldi_feature_mapping +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x313df937 i2c_hid_core_shutdown +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x692ccfee i2c_hid_core_remove +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0xa417d375 i2c_hid_core_probe +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0xeeee5b63 i2c_hid_core_pm +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xa6946670 hid_is_usb +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xfeab2a28 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x21e015f9 hsi_add_clients_from_dt +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x2f439cfc hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x2fa55bfb hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x4c6340d0 hsi_release_port EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x5210a5bf hsi_board_list -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x556f181d hsi_free_msg -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x62c5f0b6 hsi_port_unregister_clients -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x6da07cf2 hsi_release_port -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7765a6c6 hsi_register_client_driver -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7b93afa3 hsi_alloc_controller -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x82f64245 hsi_register_controller -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x960c3e8f hsi_unregister_port_event -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xb53ac54d hsi_async -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xbf06099c hsi_alloc_msg -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xe4c55348 hsi_get_channel_id_by_name -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xeba7ff56 hsi_event -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xf677aa87 hsi_unregister_controller -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xfa1750ac hsi_add_clients_from_dt -EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x0425ed47 adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x5a6a3518 hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7dab86e8 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x83a6ac34 hsi_new_client +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x96dabc75 hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x971feccd hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xa208c521 hsi_get_channel_id_by_name +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xada0dee7 hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xaf45353b hsi_remove_client +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xd1c866de hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xd288b970 hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xdde19406 hsi_port_unregister_clients +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xea474a62 hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xf1945b45 hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xfd33f1e6 hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x67bb1f7a adt7x10_probe EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x5cbb5274 ltc2947_core_probe EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0xbc54f93e ltc2947_of_match -EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x4e1dfd48 nct6775_update_device -EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x6072715b nct6775_show_beep -EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x76b5126d nct6775_reg_is_word_sized -EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x77dd65ed nct6775_probe -EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0xbf4b9662 nct6775_show_alarm -EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0xe9d21f4e nct6775_store_beep -EXPORT_SYMBOL_GPL drivers/hwmon/occ/occ-hwmon-common 0x15a4a826 occ_setup -EXPORT_SYMBOL_GPL drivers/hwmon/occ/occ-hwmon-common 0xfd421379 occ_shutdown -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x0a5ecbb9 intel_th_trace_switch -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x0c8e3bd2 intel_th_trace_disable -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x13ecefb1 intel_th_trace_enable -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x23d064dc intel_th_driver_unregister -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x2b7a4ed4 intel_th_free -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x54ed2f91 intel_th_alloc -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xb0b8cab7 intel_th_driver_register -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xe3ca3848 intel_th_output_enable -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xed7efe3d intel_th_set_output -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x2fb604f0 intel_th_msc_window_unlock -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0xc1fabaf1 intel_th_msu_buffer_unregister -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0xf777f1fd intel_th_msu_buffer_register -EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x03400c45 stm_register_device -EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x102010fb stm_register_protocol -EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x14e65ce2 stm_source_write -EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x29a27e1b stm_unregister_device -EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x4ba2b873 stm_unregister_protocol -EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x52c9fda9 to_pdrv_policy_node -EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x72a5d141 stm_data_write -EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xb03e0dce stm_source_unregister_device -EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xdbf11a09 stm_source_register_device -EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-ccgx-ucsi 0x1d798edd i2c_new_ccgx_ucsi -EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x21b29e75 i2c_mux_alloc -EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x5d3477db i2c_mux_add_adapter -EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x763e4ac6 i2c_root_adapter -EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xa794d36e i2c_mux_del_adapters -EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x8356c4c4 i2c_handle_smbus_alert -EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x9948519d i2c_new_slave_host_notify_device -EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xc54442e7 i2c_free_slave_host_notify_device -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x01ad5c1b i3c_device_get_info -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x0a26df29 i3c_master_enec_locked -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x1b459339 i3c_master_get_free_addr -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x22e486f6 i3c_device_request_ibi -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x2e4c45da i3c_master_do_daa -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x352dbd07 i3c_generic_ibi_alloc_pool -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x399110d8 i3c_master_disec_locked -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x3b9f7e82 i3c_device_do_priv_xfers -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x3d65c3b3 i3c_master_defslvs_locked -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x440d7b5b i3c_master_set_info -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x4cba70ea i3c_device_enable_ibi -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x59858aba i3c_master_register -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x5c67b07e i3c_master_entdaa_locked -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x64356ffb i3c_device_disable_ibi -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x6f6ec007 i3cdev_to_dev +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x004f385a nct6775_update_device +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x63cdda44 nct6775_probe +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x8c168c4e nct6775_show_beep +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x950fcf37 nct6775_show_alarm +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x9aae2b40 nct6775_store_beep +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0xf5bdb925 nct6775_reg_is_word_sized +EXPORT_SYMBOL_GPL drivers/hwmon/occ/occ-hwmon-common 0x0b9616be occ_setup +EXPORT_SYMBOL_GPL drivers/hwmon/occ/occ-hwmon-common 0xffbf0a34 occ_shutdown +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x0eff22da intel_th_trace_enable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x2ee3c447 intel_th_trace_disable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x48ae0c5b intel_th_driver_register +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x75ac0a06 intel_th_alloc +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x97c4a325 intel_th_driver_unregister +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xa241188a intel_th_free +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xaea32d31 intel_th_set_output +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xd2cc6382 intel_th_output_enable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xfef9e695 intel_th_trace_switch +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x0bf93f44 intel_th_msc_window_unlock +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x58737ab4 intel_th_msu_buffer_register +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0xe0c9596f intel_th_msu_buffer_unregister +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x07c87ff5 stm_source_register_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x4a145fda stm_data_write +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x60cd7aac stm_register_protocol +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x764fff76 stm_unregister_protocol +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x7734a6af stm_unregister_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x7f113c5e stm_source_write +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x9b573a47 stm_register_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xce7cd16e stm_source_unregister_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xde952af8 to_pdrv_policy_node +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-ccgx-ucsi 0x894a9480 i2c_new_ccgx_ucsi +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x1a22ffbb i2c_mux_del_adapters +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x96af1843 i2c_root_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xa50bb3e5 i2c_mux_alloc +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xcf43fae1 i2c_mux_add_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x6e87d5f2 i2c_free_slave_host_notify_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x6f482b2f i2c_new_slave_host_notify_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x99f3509f i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x010b89fc i3cdev_to_dev +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x0d4ec3dd i3c_master_queue_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x0fca80ea i3c_device_get_info +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x1ac1fc1b i3c_master_disec_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x3afa9a73 i3c_driver_register_with_owner +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x3cdef244 i3c_device_enable_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x40f25ce2 i3c_master_defslvs_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x54ffc9f1 i3c_master_register +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x556f8866 i3c_master_unregister +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x5b43f1dc i3c_device_free_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x5cc0ff65 i3c_generic_ibi_alloc_pool +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x66ac4b4a i3c_device_do_setdasa +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x76cbddf8 i3c_master_set_info EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x76fe3e05 i3c_generic_ibi_free_pool -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x84da6a4e i3c_driver_register_with_owner -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x88566690 i3c_master_add_i3c_dev_locked -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x9711930e i3c_driver_unregister -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x9c1829ce i3c_generic_ibi_get_free_slot -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xb1e305c3 i3c_master_unregister -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xc9efd374 i3c_device_do_setdasa -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xd32ac1d0 i3c_generic_ibi_recycle_slot -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xdaee2f2a i3c_device_free_ibi -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xe88ecdeb i3c_master_queue_ibi -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xf3a8608f i3c_device_match_id -EXPORT_SYMBOL_GPL drivers/i3c/master/dw-i3c-master 0x2cc68a85 dw_i3c_common_remove -EXPORT_SYMBOL_GPL drivers/i3c/master/dw-i3c-master 0xa84f8f1c dw_i3c_common_probe +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7966211b i3c_device_match_id +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7f4d63f6 i3c_driver_unregister +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xa2f0ad46 i3c_master_do_daa +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xa405e8b1 i3c_device_do_priv_xfers +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xa56c23fe i3c_device_request_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xa7d35f97 i3c_device_disable_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xb54209b8 i3c_master_add_i3c_dev_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xb7c84b7e i3c_generic_ibi_get_free_slot +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xd962f6e4 i3c_master_entdaa_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xdcbe75e5 i3c_generic_ibi_recycle_slot +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xdfe2a490 i3c_master_get_free_addr +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xe2eba96e i3c_master_enec_locked +EXPORT_SYMBOL_GPL drivers/i3c/master/dw-i3c-master 0x7eaf8215 dw_i3c_common_probe +EXPORT_SYMBOL_GPL drivers/i3c/master/dw-i3c-master 0xc5fb8335 dw_i3c_common_remove EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x267c0508 iio_channel_release_all_cb EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x2a1fab3c iio_channel_stop_all_cb -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x327f65ef iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x42ca7134 iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x6c7117dd iio_channel_cb_get_iio_dev EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x7a711aef iio_channel_start_all_cb EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x9acf62ab iio_channel_cb_set_buffer_watermark -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0xbc725495 iio_channel_cb_get_iio_dev -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0xc6d6ca75 iio_channel_get_all_cb -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x1d48146a iio_dma_buffer_enable -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x3ab88155 iio_dma_buffer_set_bytes_per_datum -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x61b4737d iio_dma_buffer_disable -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x73285609 iio_dma_buffer_release -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x7bfc724a iio_dma_buffer_block_done -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x7f902a1f iio_dma_buffer_init -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x8eab74f0 iio_dma_buffer_block_list_abort -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xa011d403 iio_dma_buffer_data_available -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xa613843c iio_dma_buffer_exit -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xbdc32410 iio_dma_buffer_read -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xc20cb2a5 iio_dma_buffer_set_length -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xddb38fd7 iio_dma_buffer_request_update -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dmaengine 0x5a952c91 devm_iio_dmaengine_buffer_setup -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x1ab80b64 devm_iio_hw_consumer_alloc +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0xb4679ab5 iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x08e1f187 iio_dma_buffer_set_bytes_per_datum +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x0f62ea9a iio_dma_buffer_read +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x13bb546f iio_dma_buffer_block_list_abort +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x23c11f1d iio_dma_buffer_init +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x65a8e884 iio_dma_buffer_disable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x8535ef00 iio_dma_buffer_enable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x8733a608 iio_dma_buffer_release +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x938ff3e8 iio_dma_buffer_data_available +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xc7e3cc64 iio_dma_buffer_exit +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xca1e4372 iio_dma_buffer_block_done +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xdbf71954 iio_dma_buffer_set_length +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xe260e148 iio_dma_buffer_request_update +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dmaengine 0x597d6fc8 devm_iio_dmaengine_buffer_setup EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x3391543d iio_hw_consumer_disable -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x8030d6ce iio_hw_consumer_alloc +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x4bd26731 iio_hw_consumer_alloc +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x5086dc80 devm_iio_hw_consumer_alloc EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x9671bc15 iio_hw_consumer_free EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0xbf358fa9 iio_hw_consumer_enable -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-triggered-buffer 0xfbc54f98 devm_iio_triggered_buffer_setup_ext -EXPORT_SYMBOL_GPL drivers/iio/buffer/kfifo_buf 0xac2c9a8c devm_iio_kfifo_buffer_setup_ext -EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x171b2b77 bmg160_core_probe -EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0xa040a018 bmg160_core_remove -EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0xe384ad6b bmg160_pm_ops -EXPORT_SYMBOL_GPL drivers/iio/imu/fxos8700_core 0xa84ed7ad fxos8700_core_probe -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00789aa0 iio_dealloc_pollfunc -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0211e878 iio_alloc_pollfunc -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x078a5ab9 iio_get_channel_type -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0f917d3b iio_update_buffers -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x12d07d37 devm_iio_map_array_register -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x133e6f6f iio_convert_raw_to_processed -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x172d0682 iio_device_release_direct_mode -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x19bef762 iio_channel_get -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1aabb96a iio_buffer_get -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x224992ae iio_device_attach_buffer -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x23384efe iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-triggered-buffer 0xe81aacc0 devm_iio_triggered_buffer_setup_ext +EXPORT_SYMBOL_GPL drivers/iio/buffer/kfifo_buf 0x9e4b9fc5 devm_iio_kfifo_buffer_setup_ext +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x8d7720be bmg160_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x94b12fac bmg160_core_probe +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0xe309e34f bmg160_core_remove +EXPORT_SYMBOL_GPL drivers/iio/imu/fxos8700_core 0xec8d30bc fxos8700_core_probe +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x04431462 iio_write_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x04d25721 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x09c542bf devm_iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x104e093b iio_validate_own_trigger +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x108efbbc iio_read_channel_ext_info +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x131514d9 iio_device_release_buffer_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1597fa82 iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x161646f0 iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x16d9de29 iio_read_avail_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1a4f23e6 iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1ce31855 iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x20e0c9bc __devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x22cdacfe iio_read_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2330d4c8 iio_device_claim_direct_mode EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x28731682 iio_validate_own_trigger -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x29dd5c9b iio_map_array_unregister -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3250826d iio_push_to_buffers_with_ts_unaligned -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3295990c iio_write_channel_attribute -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3450dd1c iio_read_channel_processed_scale -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3f79510c iio_read_max_channel_raw -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x438144dc iio_read_channel_average_raw -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4b781d7e iio_read_avail_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x290e2538 iio_read_max_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x348eeb87 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x34d1c7b2 iio_device_id +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x42c90284 iio_buffer_get EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4dce7dd4 iio_format_value -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5c87ac9e iio_map_array_register -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x61da0a90 iio_validate_scan_mask_onehot -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x630ed201 iio_channel_release_all -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x678f62cd iio_write_channel_ext_info -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6cf41723 iio_buffer_put -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6d92d5d9 iio_read_channel_attribute -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x71f423e7 iio_read_channel_raw -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x781b111e iio_device_claim_direct_mode -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x788f17c8 iio_enum_write -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7bab9d23 devm_iio_trigger_register -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7f8d6bc4 iio_push_to_buffers -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x87386280 iio_read_channel_processed -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9a7777be devm_fwnode_iio_channel_get_by_name -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9fcc869d devm_iio_device_alloc -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa2aecd15 iio_channel_release -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa590dc6b __devm_iio_device_register -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa921b183 iio_enum_read -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xad10a28a iio_read_channel_ext_info -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb0f850ea iio_device_id -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb19ac2ab iio_device_claim_buffer_mode -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb460eb65 iio_write_channel_raw -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb95c016c fwnode_iio_channel_get_by_name -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc16763db iio_channel_get_all -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc16d0e17 iio_read_avail_channel_attribute -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xcc7c48ed iio_read_channel_scale -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd0c9fa05 iio_get_debugfs_dentry -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd4fd5aac iio_show_mount_matrix -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd65acb8c iio_device_get_current_mode -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd92a607b iio_get_channel_ext_info_count -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xdce5c3b1 iio_pop_from_buffer -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xdeacd537 iio_device_release_buffer_mode -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe39ec78a __devm_iio_trigger_alloc -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf2211a26 devm_iio_channel_get_all -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf77f5d48 devm_iio_channel_get -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xfd0eb8d3 iio_read_channel_offset -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xfe732e7b iio_buffer_enabled +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x52756fc3 iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x54c459fd devm_iio_trigger_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x554e7055 iio_write_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x63feb106 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x68930443 fwnode_iio_channel_get_by_name +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6904db68 iio_get_debugfs_dentry +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6f4dfc84 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x740a0f23 devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x755fdde2 iio_read_channel_average_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7c115e67 devm_iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x87528234 iio_show_mount_matrix +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x892bddc0 iio_device_release_direct_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8b8b6f72 iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9188a6bf iio_read_channel_offset +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x963fef5b iio_pop_from_buffer +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9a084959 iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9c7a2162 iio_buffer_enabled +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9cc9b126 iio_read_avail_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa3906c2a iio_push_to_buffers_with_ts_unaligned +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xaac2d044 iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xad1d6d64 iio_device_attach_buffer +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xada9d71a devm_iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb5d6f528 iio_read_channel_processed_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb90e1dd1 iio_device_claim_buffer_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc06e7f35 iio_get_channel_ext_info_count +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc3166278 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc4aa3b18 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xcbe731f0 iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xce181f95 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd48bc79c __devm_iio_device_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe43f0c87 iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe45cd38c iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe84902e6 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xeb3e797d iio_device_get_current_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xeba78a0f iio_write_channel_ext_info +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf4f4784b devm_fwnode_iio_channel_get_by_name +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf5718fd1 iio_update_buffers EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq -EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x16f4b102 rtrs_stop_hb -EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x25ee79f8 rtrs_iu_post_rdma_write_imm -EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x3a063609 rtrs_cq_qp_create -EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x52f57948 rtrs_init_hb -EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x71accdae rtrs_iu_post_send -EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x8d8e2066 rtrs_start_hb -EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x99ab1999 rtrs_iu_alloc -EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xa187c436 rtrs_iu_free -EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xb83e6b65 rtrs_cq_qp_destroy -EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xbb57e9f8 rtrs_iu_post_recv -EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xd6494195 rtrs_send_hb_ack -EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xfefc2c1b rtrs_post_recv_empty -EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x43af7da3 input_ff_create_memless -EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0x4dd08b4b matrix_keypad_parse_properties -EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x1905e6ec adxl34x_probe -EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x76f78dc8 adxl34x_pm +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x0c963331 rtrs_stop_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x1c8487d1 rtrs_send_hb_ack +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x3d04484d rtrs_iu_alloc +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x664878a6 rtrs_cq_qp_create +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xab17ab1d rtrs_iu_post_rdma_write_imm +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xac3e7d3c rtrs_cq_qp_destroy +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xbd174fc8 rtrs_start_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xcfeb93f3 rtrs_post_recv_empty +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xd036a648 rtrs_iu_post_recv +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xf15c4b66 rtrs_init_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xfb4afb32 rtrs_iu_free +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xffb194d9 rtrs_iu_post_send +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xe014b0aa input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0xf94576cf matrix_keypad_parse_properties +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x2747803b adxl34x_pm +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x903e91c4 adxl34x_probe EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xec511022 adxl34x_remove -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x0302b67c rmi_driver_resume -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x46c340a2 __rmi_register_function_handler -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x48b271ed rmi_2d_sensor_abs_report -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x5dbd9460 rmi_driver_suspend -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x7c3847ec rmi_register_transport_device -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xa6cc3f80 rmi_unregister_function_handler -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xbd8008f5 rmi_2d_sensor_configure_input -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xc000d1a4 rmi_set_attn_data -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xc7cd28ba rmi_of_property_read_u32 -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xeaedcf87 rmi_2d_sensor_abs_process -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xfc324c2a rmi_dbg -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xfc37f58e rmi_2d_sensor_rel_report -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xfff7902e rmi_2d_sensor_of_probe -EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x7a5e51ca cyttsp4_pm_ops -EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x838da13a cyttsp4_probe -EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xadb28ed2 cyttsp4_remove -EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x539d569b cyttsp_pm_ops -EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x71fe796c cyttsp_probe -EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x58a1d1ad cyttsp_i2c_read_block_data -EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x83d22f7c cyttsp_i2c_write_block_data -EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x676063c4 tsc200x_regmap_config -EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x9259a1a8 tsc200x_remove -EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0xd916b91a tsc200x_pm_ops -EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0xe59e7aef tsc200x_probe -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4bfe4537 wm97xx_config_gpio -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5f4871d0 wm9713_codec -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x61b30e45 wm97xx_set_suspend_mode -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x70cf5bfe wm97xx_read_aux_adc -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x781b2faa wm97xx_get_gpio -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8e5c6c14 wm9705_codec -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x93e2714e wm9712_codec -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x95a63394 wm97xx_unregister_mach_ops -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa826eb3a wm97xx_register_mach_ops -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xaa9ec7ee wm97xx_reg_write -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb023d3b5 wm97xx_set_gpio -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe9bcc148 wm97xx_reg_read -EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x0872f153 ipack_driver_register -EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x114f5fea ipack_put_device -EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x4c367d95 ipack_device_add -EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x6a0ae7bc ipack_bus_register -EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x8fccfd72 ipack_get_device -EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xa244fb5d ipack_device_del -EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xa8a242c9 ipack_bus_unregister -EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xd717610f ipack_device_init -EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xfc2ad30c ipack_driver_unregister -EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x45030424 devm_led_classdev_flash_register_ext -EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x4f5df0be led_update_flash_brightness -EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x650b1a79 led_classdev_flash_unregister -EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x77d8cf30 led_set_flash_timeout -EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x8d82ea82 devm_led_classdev_flash_unregister -EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x97783569 led_set_flash_brightness -EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0xd6a1956e led_classdev_flash_register_ext -EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0xd6bd2d28 led_get_flash_fault -EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x090d83ca led_classdev_multicolor_register_ext -EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x19b8a1af led_mc_calc_color_components -EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x8a2c2b87 devm_led_classdev_multicolor_register_ext -EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0xab90e08c led_classdev_multicolor_unregister -EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0xb3c00ded devm_led_classdev_multicolor_unregister -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x34f772fd lp55xx_read -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x40f4f51d lp55xx_of_populate_pdata -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x95e3a1f6 lp55xx_unregister_sysfs -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x96a4c6e1 lp55xx_update_bits -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xac200330 lp55xx_register_leds -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xafc557cd lp55xx_write -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xb5fc55d5 lp55xx_register_sysfs -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xdf688abe lp55xx_is_extclk_used -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xe4e9dcef lp55xx_init_device -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xef7aa11b lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x0e42b74e __rmi_register_function_handler +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x1a18e916 rmi_unregister_function_handler +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x3388f7eb rmi_2d_sensor_abs_report +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x35337f04 rmi_2d_sensor_abs_process +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x3e429a7c rmi_driver_resume +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x3f1e7226 rmi_of_property_read_u32 +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x5fa7404e rmi_driver_suspend +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x713adbf8 rmi_set_attn_data +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x7fa17c55 rmi_dbg +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x84b5d8d4 rmi_2d_sensor_of_probe +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x8d4516fb rmi_2d_sensor_rel_report +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x93b23dee rmi_2d_sensor_configure_input +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xbec2ba06 rmi_register_transport_device +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x1efcb40a cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x5e01ef35 cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x6a20f602 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x6f044b55 cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xf5170872 cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x59cd3a67 cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x6d528c8f cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x1c7c6e24 tsc200x_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x7611fd6c tsc200x_regmap_config +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0xd1c56f71 tsc200x_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0xebeb6638 tsc200x_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3f63220c wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x479b7b60 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4d4b07ea wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4ff0d6ca wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5a821a1e wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7c59e955 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x81e10774 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9c5f1a2e wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa021c118 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbfb96575 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc16dc60a wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe52635d4 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x0e1f4f87 ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x0f016870 ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x8fcb3970 ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x963a81dd ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xae13db24 ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xc5d64577 ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xd1995db1 ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xdfd40526 ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xf9801d6d ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x19dd433e led_set_flash_brightness +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x3d5db108 devm_led_classdev_flash_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x45ddd3eb devm_led_classdev_flash_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x5ee0dc28 led_classdev_flash_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x68d0596a led_set_flash_timeout +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x8ff5978c led_classdev_flash_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x977edcc8 led_get_flash_fault +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0xa58a2064 led_update_flash_brightness +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x007714e9 led_classdev_multicolor_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x5790d831 led_mc_calc_color_components +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x5daf5df8 devm_led_classdev_multicolor_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x6ad285af led_classdev_multicolor_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0xabb4ff8d devm_led_classdev_multicolor_register_ext +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x402d15d5 lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x58a350fe lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x79e921c6 lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x8161a00f lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x8eab9853 lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x9c493707 lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x9cd6bd16 lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xe778849f lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xf7dcf5fa lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xfa8fb489 lp55xx_unregister_sysfs EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-audio 0x3bd45b0d ledtrig_audio_set EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-audio 0xce593c22 ledtrig_audio_get EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x749e05f2 ledtrig_flash_ctrl @@ -12648,121 +12667,121 @@ EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x05058957 __tracepoint_bcache_cache_insert EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x063306f1 __tracepoint_bcache_btree_node_split EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x06bceaa1 __SCK__tp_func_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x08a2da7d __traceiter_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0b830238 __traceiter_bcache_bypass_sequential EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0bc0be45 __SCK__tp_func_bcache_bypass_sequential -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0bc78ae9 __traceiter_bcache_gc_end EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x15f3de09 __SCK__tp_func_bcache_read_retry EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x17a83e40 __traceiter_bcache_writeback EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x181a1930 __SCK__tp_func_bcache_gc_copy EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1b083369 __SCK__tp_func_bcache_btree_set_root EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c599ebe __traceiter_bcache_btree_gc_coalesce EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c83d5b7 __SCK__tp_func_bcache_journal_entry_full -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1fff476f __traceiter_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x206eeffa __traceiter_bcache_alloc_fail EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x22ae6324 __SCK__tp_func_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x25207e84 __traceiter_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x273949a8 __traceiter_bcache_btree_node_free EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2766fb04 __traceiter_bcache_journal_replay_key EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2af60833 __SCK__tp_func_bcache_writeback_collision -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2b443b14 __traceiter_bcache_request_end EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x362eda19 __tracepoint_bcache_invalidate EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x37808fd7 __tracepoint_bcache_writeback_collision EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x37b31e4f __tracepoint_bcache_journal_replay_key EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x3a3eb678 __tracepoint_bcache_read -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x3c7bc1b3 __traceiter_bcache_btree_insert_key -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x3d8a9aed __traceiter_bcache_journal_full EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x3feb7def __tracepoint_bcache_alloc_fail -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x404b4781 __traceiter_bcache_btree_node_alloc_fail -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x40582be3 __traceiter_bcache_btree_set_root -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x44b781bb __traceiter_bcache_journal_write EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x44bb87a3 __tracepoint_bcache_bypass_congested EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x46c66897 __SCK__tp_func_bcache_btree_read EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x47b2af54 __tracepoint_bcache_btree_node_free -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x490a1602 __traceiter_bcache_btree_node_compact EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4a2d1241 __SCK__tp_func_bcache_btree_node_compact EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4b96c8a0 __tracepoint_bcache_btree_cache_cannibalize EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x51d0e534 __SCK__tp_func_bcache_btree_write EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5d9c8fc8 __SCK__tp_func_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5d9f1fba __traceiter_bcache_btree_node_alloc_fail EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5f9386a1 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5fa45a22 __traceiter_bcache_btree_write EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5fd7c423 __SCK__tp_func_bcache_write EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6026e276 __SCK__tp_func_bcache_bypass_congested EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6119e203 __tracepoint_bcache_write EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x64e39418 __traceiter_bcache_writeback_collision EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x66232cfe __tracepoint_bcache_gc_start EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6697827f __SCK__tp_func_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6b9837f8 __traceiter_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6d973f73 __traceiter_bcache_invalidate EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6e74dca7 __SCK__tp_func_bcache_btree_node_free EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6e7df078 __tracepoint_bcache_writeback -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6f49ebdb __traceiter_bcache_btree_node_alloc EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x71a90620 __tracepoint_bcache_request_end EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x79eeb380 __SCK__tp_func_bcache_gc_copy_collision -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7d2d17bb __traceiter_bcache_bypass_congested EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x80e3881d __SCK__tp_func_bcache_request_end EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x81d4d2d1 __tracepoint_bcache_gc_end -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x879b9bea __traceiter_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x87f62e7f __traceiter_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8a6fd07e __traceiter_bcache_btree_read EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8ad20d61 __SCK__tp_func_bcache_request_start EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8b9fa1d8 __tracepoint_bcache_read_retry EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8bba9251 __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8d46e7ee __traceiter_bcache_btree_set_root EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8f7308be __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9356541e __traceiter_bcache_btree_node_compact EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x93c8c39b __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x99df425f __traceiter_bcache_request_start EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9a6f4d9f __SCK__tp_func_bcache_read -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9bf4c86e __traceiter_bcache_read EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9ce21c84 __SCK__tp_func_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9f103300 __traceiter_bcache_btree_cache_cannibalize EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa09a6b09 __tracepoint_bcache_btree_write EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa187023e __SCK__tp_func_bcache_alloc_fail EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa64134e4 __SCK__tp_func_bcache_journal_full -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa744ab36 __traceiter_bcache_bypass_sequential EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa842a5c8 __SCK__tp_func_bcache_invalidate -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xab644073 __traceiter_bcache_request_start EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xad6440b4 __traceiter_bcache_gc_copy -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb225b42c __traceiter_bcache_write -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb2f9555d __traceiter_bcache_journal_entry_full EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb5a62a8c __traceiter_bcache_cache_insert -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb9230ba5 __traceiter_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb98709ca __traceiter_bcache_btree_node_split EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xba843c3f __SCK__tp_func_bcache_gc_end -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbbd388f9 __traceiter_bcache_alloc_fail -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc3de0ef5 __traceiter_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbc318be2 __traceiter_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc67d523c __traceiter_bcache_write EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc8ae4213 __SCK__tp_func_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd164d7f0 __traceiter_bcache_btree_insert_key EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd8aa1746 __tracepoint_bcache_btree_read EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd9f63855 __tracepoint_bcache_btree_insert_key EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xda06fe86 __SCK__tp_func_bcache_btree_node_alloc_fail -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xda379f33 __traceiter_bcache_btree_write -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdaffe192 __traceiter_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdaeeca67 __traceiter_bcache_gc_end EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdd1455a7 __tracepoint_bcache_journal_entry_full EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe16c06b3 __SCK__tp_func_bcache_gc_start -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe5da5faf __traceiter_bcache_gc_start EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xea3a1ab2 __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xebeb775f __traceiter_bcache_request_end EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xec29e22a __traceiter_bcache_gc_copy_collision EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xec3327c6 __tracepoint_bcache_btree_node_alloc EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xec92a163 __SCK__tp_func_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xefa1d64b __traceiter_bcache_journal_full EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf021519f __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf19158e9 __traceiter_bcache_bypass_congested EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf6249e5f __SCK__tp_func_bcache_journal_replay_key -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf9bd6cdd __traceiter_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf9337ae7 __traceiter_bcache_journal_write EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfc0a0b57 __tracepoint_bcache_journal_write EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfd5d057b __tracepoint_bcache_bypass_sequential EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfd6b5d80 __SCK__tp_func_bcache_btree_insert_key EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfed8327b __tracepoint_bcache_journal_full -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x020601d1 dm_cell_error -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x08a338e2 dm_cell_get_v2 -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x165c9608 dm_cell_visit_release EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x1cc01910 dm_cell_lock_promote_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x1dfdf6b0 dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x228ff415 dm_bio_prison_free_cell_v2 EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x3af8d692 dm_cell_release_no_holder -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x3d7e85f2 dm_cell_lock_v2 -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x43b057e8 dm_get_cell -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x4d889b50 dm_cell_unlock_v2 -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x524b1050 dm_bio_detain -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x5820f0ed dm_cell_release -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x5f1eabf7 dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x362d5dcf dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x3a9e053a dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x41e571c6 dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x5b966871 dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x5d60b210 dm_cell_put_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x60b30999 dm_cell_visit_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x62aa1b53 dm_cell_lock_v2 EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6dc08f4f dm_bio_prison_free_cell_v2 EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x753e20b2 dm_bio_prison_create -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7e82d418 dm_cell_promote_or_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x8d49a4ec dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xa5e485fc dm_cell_promote_or_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xa6be598e dm_cell_quiesce_v2 EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xace9b57b dm_bio_prison_destroy_v2 -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb2dbe8d9 dm_bio_prison_alloc_cell_v2 -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb3b3750b dm_cell_quiesce_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb4aa649b dm_cell_get_v2 EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb6d5c65d dm_deferred_set_add_work EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb70b342a dm_bio_prison_destroy -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xc65f4c94 dm_cell_put_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xbb59b92b dm_cell_unlock_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xbfa5bfbf dm_bio_prison_alloc_cell_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xc3a1d596 dm_cell_release EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xd549f45c dm_bio_prison_alloc_cell EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xd99e003d dm_bio_prison_create_v2 -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xe9d0611c dm_cell_lock_promote_v2 EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x24772bfe dm_bufio_get EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x2e0774dc dm_bufio_get_block_number @@ -12782,8 +12801,8 @@ EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xcd2ba798 dm_bufio_forget EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd991e3b9 dm_bufio_get_device_size -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xdd407149 dm_bufio_client_create EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe6024e59 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe82c3a0d dm_bufio_client_create EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xebcc64a4 dm_bufio_get_block_data EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xeca7949e dm_bufio_client_destroy EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xed3283a4 dm_bufio_set_sector_offset @@ -12791,9 +12810,7 @@ EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x0efbca4c btracker_promotion_already_present EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x1c852cab btracker_nr_demotions_queued EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x23ddc5ab dm_cache_policy_get_version -EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x27f5f2b1 dm_cache_policy_unregister EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x37ef59a5 dm_cache_policy_get_name -EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x441970eb dm_cache_policy_register EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x481a0b15 btracker_create EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x4becb830 dm_cache_policy_get_hint_size EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x50b3c64c dm_cache_policy_create @@ -12802,34 +12819,35 @@ EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x87bee547 btracker_queue EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xa2365f44 btracker_issue EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xa7eadcb5 btracker_complete +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xd873d655 dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xf6afb14d dm_cache_policy_unregister EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xf9f3e74b dm_cache_policy_destroy -EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xb19b6ad3 dm_unregister_path_selector -EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xefd34779 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x19611edf dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x97b8c95c dm_register_path_selector EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x01d2f9ac dm_rh_recovery_start -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x052facc7 dm_region_hash_create -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x336531c2 dm_rh_bio_to_region EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38972f23 dm_rh_region_to_sector EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x57e16c3e dm_rh_get_state EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x5f4a6e61 dm_rh_dec EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x78465419 dm_rh_inc_pending EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d5e1815 dm_rh_get_region_key EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa5b55370 dm_rh_delay EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb9b5770c dm_rh_bio_to_region EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd67cefa6 dm_rh_dirty_log EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe44e27c1 dm_rh_delay -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xeb257fa9 dm_rh_mark_nosync -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf1a9f11b dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe2496d00 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf706ddfb dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf7a20c59 dm_rh_mark_nosync EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf92b8a3d dm_rh_get_region_size EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x01f7c2b0 dm_btree_cursor_begin EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0211c39e dm_tm_with_runs -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x06d04a61 dm_block_manager_create EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x07ed9022 dm_bitset_del EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x088a5b30 dm_btree_find_lowest_key EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0cf7c42f dm_btree_remove @@ -12901,73 +12919,74 @@ EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xedf5036f dm_bitset_flush EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf2b4509a dm_btree_cursor_get_value EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf71f197e dm_btree_cursor_next -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x20a6ec37 cec_transmit_msg -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x3a29e6bb cec_notifier_parse_hdmi_phandle -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x44139ed2 cec_queue_pin_hpd_event -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x4bd0ac7d cec_notifier_cec_adap_register -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x525049b4 cec_unregister_adapter -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x5f8de64f cec_notifier_conn_register -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x6cd64947 cec_queue_pin_5v_event -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x78a632c5 cec_s_conn_info -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x8712b798 cec_fill_conn_info_from_drm -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x8843ea1f cec_allocate_adapter -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x9128cb26 cec_s_phys_addr_from_edid -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x95c680d8 cec_s_phys_addr +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf74d729a dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x0ab90637 cec_fill_conn_info_from_drm +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x1131548a cec_s_log_addrs +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x1d340966 cec_notifier_cec_adap_register +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x2c279363 cec_allocate_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x496d90e1 cec_s_phys_addr_from_edid +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x4d148452 cec_register_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x63e37135 cec_notifier_parse_hdmi_phandle +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x6981b339 cec_queue_pin_hpd_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x74498945 cec_transmit_msg +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x77cf3b20 cec_transmit_done_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x8854bf46 cec_queue_pin_5v_event EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xa01fbb6b cec_notifier_set_phys_addr -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xa94f927a cec_notifier_cec_adap_unregister -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xad215a80 cec_queue_pin_cec_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xa624f531 cec_notifier_cec_adap_unregister EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xaee236c6 cec_notifier_conn_unregister -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xbb1fc757 cec_s_log_addrs EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xbe4de675 cec_get_edid_phys_addr EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xc16f2887 cec_notifier_set_phys_addr_from_edid -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xd4a02569 cec_delete_adapter -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xd4f9a94b cec_register_adapter -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xd7e9aafe cec_transmit_attempt_done_ts -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xe2a582d4 cec_received_msg_ts -EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xf116c3f6 cec_transmit_done_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xc79c5033 cec_queue_pin_cec_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xcdca104b cec_transmit_attempt_done_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xce888922 cec_s_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xd37f824b cec_s_conn_info +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xe1da390d cec_unregister_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xe9bd5202 cec_delete_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xec954341 cec_notifier_conn_register +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xeefff915 cec_received_msg_ts EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x05a0841b saa7146_pgtable_free -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x36f61784 saa7146_vfree_destroy_pgtable -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x4ac60888 saa7146_vmalloc_build_pgtable -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x8ecc07e4 saa7146_pgtable_build_single -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x9b838481 saa7146_wait_for_debi_done -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x9e10bedb saa7146_setgpio -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xa5df2eeb saa7146_unregister_extension -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xb1b73ab4 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x11100385 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x17e08816 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x3d02ee0e saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x63b25b57 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x71abefd7 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7a5a1534 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xa1d86e98 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xdc30495d saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe0b99d5b saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe1e084cd saa7146_i2c_adapter_prepare EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xea7e2b9a saa7146_register_extension -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xf792c05a saa7146_i2c_adapter_prepare -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x03d59557 saa7146_unregister_device -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x1b42b93e saa7146_register_device -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x2892c0aa saa7146_set_hps_source_and_sync -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x3d86ed26 saa7146_vv_init -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xff03b32c saa7146_vv_release -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x0dc10838 sms_board_event -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x179ac930 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x27f71e8a saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x2abb4d5d saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x37ba29e6 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x897045b1 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xf3a81444 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x0506e7f9 sms_board_led_feedback EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e69e96 smscore_start_device -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x32a21ae7 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x34681e4e smscore_start_device EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x34bf0e61 smscore_translate_msg EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x3f750698 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x3e7688f7 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x41502418 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x4478ae5d smscore_unregister_device EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x4ac9181c smscore_getbuffer -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x560f2d2a smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x4ae386d6 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x4ceb597c smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x583d2d49 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x6bf8fc21 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x6e75bff2 smscore_register_device EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c175723 smscore_unregister_hotplug EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x84ceb3c6 smscore_onresponse -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x968492b6 smscore_get_device_mode EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x99a81ab3 smsclient_sendrequest -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb0acc8ba sms_board_led_feedback -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb47cbf46 smscore_register_hotplug -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb9c0fe4d sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xa9ca546c sms_board_event EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xd0bd96a9 smscore_unregister_device -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xdad8e48d sms_board_lna_control -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xf184341f sms_board_setup -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xf919c228 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbf73539d sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xcfb29cf5 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xd9f9b5a0 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xde98ea10 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xeacc6439 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xef83f951 smscore_set_board_id EXPORT_SYMBOL_GPL drivers/media/common/uvc 0x08c5db3e uvc_format_by_guid EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x040dc7cd tpg_aspect_strings EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x21bfae4e tpg_gen_text @@ -12987,446 +13006,446 @@ EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0xf7a5f765 tpg_calc_text_basep EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0xf7ec0949 tpg_reset_source EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x07729fd4 __SCK__tp_func_vb2_buf_queue -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x093eb5c2 vb2_core_streamon -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x0d70be2d vb2_core_streamoff -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x1da83595 vb2_core_queue_release -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x1e124e02 vb2_core_dqbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x226d8bec vb2_read -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x383561eb vb2_request_object_is_buffer +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x0cfa7bdb vb2_discard_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x11aa0453 vb2_core_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x1bdfe0dd vb2_queue_error +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x1c9b4aa3 vb2_core_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x3322e80f vb2_thread_stop +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x36f18841 vb2_read +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x3bdf8724 __traceiter_vb2_dqbuf EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x3c22713a __tracepoint_vb2_buf_queue -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x4ce06a5f vb2_mmap -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x504f556a vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x4f3c8e79 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x5060553b vb2_core_poll EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x50a1bb4a __tracepoint_vb2_qbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x5986fb2e __traceiter_vb2_buf_queue -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x6d0e2a8f vb2_core_create_bufs -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x6f467016 vb2_wait_for_all_buffers -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x6f94fbee vb2_core_queue_init -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7445515b vb2_core_querybuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x51b6f009 vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x5602cfcf vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x56ee3c23 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x5c320a6a vb2_core_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x5d6d5cd6 vb2_core_querybuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x644c5f13 vb2_core_reqbufs EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7ee32286 __tracepoint_vb2_dqbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x89089182 vb2_request_buffer_cnt -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x8a6bfa7b __traceiter_vb2_dqbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x9362e936 vb2_thread_start -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xa2b88cb5 vb2_plane_vaddr -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xa86739ec __traceiter_vb2_qbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xadd6f9df vb2_thread_stop +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x8367053a vb2_thread_start +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x83bc7548 __traceiter_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x896b03c4 vb2_core_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x8a611b2f __traceiter_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x937792fb vb2_request_object_is_buffer +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x96ed5a4e vb2_write EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xb6f4b031 __SCK__tp_func_vb2_qbuf EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xb9d2df39 __SCK__tp_func_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xc2bac21d vb2_core_queue_release EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xc7b45aa4 __SCK__tp_func_vb2_buf_done -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xc85c85b4 vb2_core_expbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xc9176776 vb2_core_prepare_buf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xd0915b63 vb2_queue_error -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xd4d4daa8 vb2_discard_done -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xe15a29bc vb2_core_poll -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xe23d95d2 vb2_buffer_done -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xf1ee14f1 vb2_core_reqbufs -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xf31f06ce __traceiter_vb2_buf_done -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xf4189217 vb2_write -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xf7fd94d3 vb2_core_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xc8eebbfe vb2_core_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xca08476c vb2_request_buffer_cnt +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xd4b9bc33 vb2_core_queue_init +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xe8797d8b vb2_core_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xe95b6ec1 __traceiter_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xed21abab vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xf7b58aee vb2_core_expbuf EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xf97a7c84 __tracepoint_vb2_buf_done -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0x48761260 vb2_dma_contig_set_max_seg_size -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0xbc72dd61 vb2_dma_contig_memops -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-sg 0xd3adcbe8 vb2_dma_sg_memops -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-memops 0x811abcc3 vb2_common_vm_ops -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x02e9bcdf vb2_ioctl_qbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x0b12f1b8 vb2_prepare_buf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x0cb5cc77 vb2_fop_release -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x25b7e0b5 vb2_fop_mmap -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x2a84a546 vb2_ops_wait_prepare -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x4466e49f _vb2_fop_release -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x461ac49f vb2_find_buffer -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x48c613ad vb2_ioctl_streamon -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x4febc105 vb2_streamon -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x6b939b11 vb2_fop_poll -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7a923560 vb2_streamoff -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x82f8cf88 vb2_queue_init -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x89ac1a99 vb2_dqbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x8c6dcf4e vb2_ioctl_streamoff -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x963d4c96 vb2_queue_change_type -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x9655151c vb2_request_validate -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x987df475 vb2_fop_read -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xa4404861 vb2_ioctl_reqbufs -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xa9179014 vb2_queue_release -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xbc24b327 vb2_poll -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xc216ba21 vb2_ioctl_dqbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xc2727c44 vb2_ioctl_prepare_buf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xca5655fd vb2_ioctl_querybuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xcbb80e16 vb2_request_queue -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xcf727bed vb2_qbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xd9b385e6 vb2_video_unregister_device -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xda6f6ed8 vb2_ops_wait_finish -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xdd0ffb67 vb2_fop_write -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xe9bb34e2 vb2_reqbufs -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xec133678 vb2_ioctl_create_bufs -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xed032956 vb2_queue_init_name -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xf1f4616c vb2_ioctl_expbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xf324a5b2 vb2_create_bufs -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xf498ee44 vb2_expbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-vmalloc 0xd7dfbdbc vb2_vmalloc_memops -EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x2443607c dvb_module_probe -EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x4dcaaea0 dvb_module_release -EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x5ad3ddbb dvb_create_media_graph -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/as102_fe 0x27334e56 as102_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/ascot2e 0x80a9f6b8 ascot2e_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/atbm8830 0x1d506e19 atbm8830_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/au8522_dig 0xb53c9a0e au8522_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/bcm3510 0x3e084ace bcm3510_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx22700 0xa1aa2c43 cx22700_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx22702 0x6db38543 cx22702_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24110 0xbaba662c cx24110_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24113 0xd57d06d2 cx24113_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24116 0x339554b4 cx24116_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0x74980675 cx24117_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24120 0x2343b9d6 cx24120_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24123 0x656c0847 cx24123_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cxd2820r 0xa54df13e cxd2820r_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cxd2841er 0x94fd7c0e cxd2841er_attach_t_c -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cxd2841er 0xd0f184b0 cxd2841er_attach_s -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cxd2880/cxd2880 0xe929d8a8 cxd2880_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dib0070 0xa3021dfe dib0070_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dib0090 0x6589e7e7 dib0090_fw_register -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dib0090 0xc88a4e44 dib0090_register -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dib3000mb 0xc302f49b dib3000mb_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dib3000mc 0x1172ac7a dib3000mc_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dib7000m 0x22568e66 dib7000m_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dib7000p 0xad065b35 dib7000p_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dib8000 0x24043abc dib8000_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dib9000 0x502d3423 dib9000_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/drx39xyj/drx39xyj 0xf3f8ad80 drx39xxj_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/drxd 0xb73eacaa drxd_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/drxk 0x5cd42883 drxk_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/ds3000 0x17caa12a ds3000_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dvb-pll 0xa2a6fe8d dvb_pll_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/ec100 0x32fa8bd2 ec100_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/gp8psk-fe 0xfe66d28a gp8psk_fe_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/helene 0x8ec2c479 helene_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/helene 0xa9603c8e helene_attach_s -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/horus3a 0x3f3b9cb3 horus3a_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/isl6405 0x635b5119 isl6405_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/isl6421 0xb82e9df0 isl6421_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/isl6423 0xb082f411 isl6423_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/itd1000 0x27d13ef4 itd1000_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/ix2505v 0x19196655 ix2505v_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/l64781 0x0eb5a16a l64781_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/lg2160 0xab180fe5 lg2160_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/lgdt3305 0x7bbcc1fb lgdt3305_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/lgdt3306a 0x0e1dbbc1 lgdt3306a_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/lgdt330x 0xd70e4cb2 lgdt330x_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/lgs8gxx 0x83a10ffd lgs8gxx_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/lnbh25 0x65bdad0f lnbh25_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/lnbp21 0x8305d5a2 lnbh24_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/lnbp21 0xa77aaab3 lnbp21_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/lnbp22 0xb3cf0380 lnbp22_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/m88ds3103 0x8fa5ce92 m88ds3103_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/m88rs2000 0x9f07131a m88rs2000_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/mb86a16 0xb92e30e7 mb86a16_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/mb86a20s 0xa879625f mb86a20s_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/mt312 0xd11846c3 mt312_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/mt352 0x922d9ecf mt352_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/mxl5xx 0x847e249f mxl5xx_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/nxt200x 0x575f5ebb nxt200x_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/nxt6000 0xde416198 nxt6000_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/or51132 0xb5ec2e67 or51132_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/or51211 0xb6811455 or51211_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/s5h1409 0xde215f05 s5h1409_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/s5h1411 0x70878ca4 s5h1411_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/s5h1420 0x2ce0028b s5h1420_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/s5h1432 0x7e36a178 s5h1432_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/s921 0xbfd43cee s921_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/si21xx 0x635849c9 si21xx_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/sp887x 0xfc369e98 sp887x_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stb0899 0x10d55abc stb0899_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stb6000 0xad508dd1 stb6000_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stb6100 0x84d9f27a stb6100_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0288 0x5e7684d0 stv0288_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0297 0xfcde9b71 stv0297_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0299 0xb6c71aa6 stv0299_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0367 0x1c72e2f6 stv0367ter_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0367 0x2c82fccc stv0367ddb_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0367 0x9d40189b stv0367cab_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0900 0x4311495a stv0900_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv090x 0xf0875acc stv090x_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0910 0xb1c0b399 stv0910_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv6110 0x9af22b5e stv6110_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv6110x 0xa6746362 stv6110x_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv6111 0x831918c7 stv6111_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda10021 0xecd415cc tda10021_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda10023 0x0fcba770 tda10023_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda10048 0x365879fc tda10048_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda1004x 0x05e39173 tda10045_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda1004x 0x3e6e8e07 tda10046_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda10086 0xe4405064 tda10086_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0xca623c64 tda18271c2dd_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda665x 0x0428e836 tda665x_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda8083 0xceabd805 tda8083_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda8261 0xaa6053d2 tda8261_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda826x 0xa5d98567 tda826x_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/ts2020 0xde4fa911 ts2020_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tua6100 0x3f9cbd35 tua6100_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/ves1820 0xde80ba01 ves1820_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/ves1x93 0xbdc65918 ves1x93_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/zl10036 0xf237530a zl10036_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/zl10039 0x45d0b371 zl10039_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/zl10353 0x8238d9cb zl10353_attach -EXPORT_SYMBOL_GPL drivers/media/i2c/aptina-pll 0x431eaa61 aptina_pll_calculate -EXPORT_SYMBOL_GPL drivers/media/i2c/ccs-pll 0x868eaedd ccs_pll_calculate -EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x09ec501b max9271_set_translation -EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x0c46b645 max9271_configure_gmsl_link -EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x191cd1e4 max9271_set_deserializer_address -EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x277d2e6a max9271_wake_up -EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x29c729ef max9271_verify_id -EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x717d1d5d max9271_set_serial_link -EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7c0a63b4 max9271_configure_i2c -EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7f8dc915 max9271_set_high_threshold -EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x87efe77b max9271_disable_gpios -EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x9d2d9684 max9271_enable_gpios -EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xbb99be10 max9271_clear_gpios -EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xe7e180f0 max9271_set_address -EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xfc8c46b0 max9271_set_gpios -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x0307063e __media_entity_setup_link -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x03fe2f99 __media_pipeline_start -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x0643d339 media_device_register_entity -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x08a993a7 media_pad_remote_pad_unique -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x09aa1007 __media_remove_intf_links -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x0ab78c29 media_entity_get_fwnode_pad -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x0ba30a26 media_create_intf_link -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x0ffd4652 media_entity_enum_init -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x12abf495 media_device_delete -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x197c169c media_device_pci_init -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x1d1fb1af media_request_get_by_fd -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x1e9eea0e __media_entity_next_link -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x22ec5b5d __media_remove_intf_link -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x2691bc94 media_pad_pipeline -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x26f31823 media_request_object_put -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x271ccc7b media_device_unregister_entity -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x2d0f6362 media_entity_pipeline -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x365a395b __media_device_register -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x5cfcb8ec media_graph_walk_cleanup -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x61917a26 media_device_register_entity_notify -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x620e3601 media_graph_walk_start +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0x45a76fbe vb2_dma_contig_set_max_seg_size +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0x4d95e8e9 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-sg 0xd1b745bc vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-memops 0xf60520a7 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x01615df5 vb2_queue_init_name +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x16343e84 vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x17c40382 vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x18c3b43c vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x1dbbe9d7 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x26907114 vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x27234449 _vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x2fe3f80c vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x4066a8bf vb2_request_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x57817441 vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x5b6900e1 vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x66a59458 vb2_video_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x6eedaadc vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7af6e38f vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7bef3933 vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fbfe477 vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x855a73e2 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x8ff13776 vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x95039dcf vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x9e48b9aa vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xa3d8cd4e vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xaa15e969 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xaf8caf32 vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xb6cde2a9 vb2_find_buffer +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xb856e8ca vb2_request_validate +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xc09d6e46 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xc79e02b8 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xd1f72572 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xd2481df4 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xd353a761 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xd5c53ad2 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xd7b81724 vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xe302976b vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xf76084a3 vb2_queue_change_type +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-vmalloc 0xbbdb32df vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x27e465f4 dvb_create_media_graph +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0xe8a55bf8 dvb_module_probe +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0xff4df25f dvb_module_release +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/as102_fe 0xb7e6525a as102_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/ascot2e 0xded7d27d ascot2e_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/atbm8830 0x6216dbe0 atbm8830_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/au8522_dig 0x57218177 au8522_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/bcm3510 0x9b40f467 bcm3510_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx22700 0x38053723 cx22700_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx22702 0x7bf7e618 cx22702_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24110 0x23157d4c cx24110_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24113 0xe49ebef0 cx24113_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24116 0xf8690f4f cx24116_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0xed371d15 cx24117_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24120 0xb78f7bc5 cx24120_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24123 0x480f58dd cx24123_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cxd2820r 0xfd4346e7 cxd2820r_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cxd2841er 0x5a403885 cxd2841er_attach_s +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cxd2841er 0xf41bcbae cxd2841er_attach_t_c +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cxd2880/cxd2880 0x5df26257 cxd2880_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dib0070 0xa127483e dib0070_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dib0090 0x055e33c6 dib0090_fw_register +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dib0090 0x7e7a07d5 dib0090_register +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dib3000mb 0x4f0e76b8 dib3000mb_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dib3000mc 0x014321a9 dib3000mc_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dib7000m 0x52c15652 dib7000m_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dib7000p 0x0ce81ca3 dib7000p_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dib8000 0xe4cdc1dc dib8000_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dib9000 0x00115966 dib9000_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/drx39xyj/drx39xyj 0xf67ff33a drx39xxj_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/drxd 0xc1a2474f drxd_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/drxk 0x457d787d drxk_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/ds3000 0xc5d752ff ds3000_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/dvb-pll 0xfd1bb293 dvb_pll_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/ec100 0x1edda2bb ec100_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/gp8psk-fe 0x01cebee9 gp8psk_fe_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/helene 0xded96b2e helene_attach_s +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/helene 0xe2e4d50b helene_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/horus3a 0x6145b876 horus3a_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/isl6405 0x999f5a02 isl6405_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/isl6421 0x427e1ddf isl6421_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/isl6423 0x48e8054d isl6423_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/itd1000 0x0f7d202b itd1000_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/ix2505v 0x1d891487 ix2505v_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/l64781 0xf838c5cf l64781_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/lg2160 0x43ffc6d3 lg2160_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/lgdt3305 0x6cd42edd lgdt3305_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/lgdt3306a 0x465d9e29 lgdt3306a_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/lgdt330x 0x6f972f70 lgdt330x_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/lgs8gxx 0x7f94a246 lgs8gxx_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/lnbh25 0x5b7df610 lnbh25_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/lnbp21 0x4833adbc lnbh24_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/lnbp21 0xb14a2862 lnbp21_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/lnbp22 0x92ac4de5 lnbp22_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/m88ds3103 0x6fa2694a m88ds3103_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/m88rs2000 0x49b15645 m88rs2000_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/mb86a16 0x2213602e mb86a16_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/mb86a20s 0x55d7cfb7 mb86a20s_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/mt312 0xefd81ddc mt312_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/mt352 0x878b0f17 mt352_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/mxl5xx 0xfa0b462e mxl5xx_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/nxt200x 0x0fba7e7d nxt200x_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/nxt6000 0x173af228 nxt6000_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/or51132 0xed090ea1 or51132_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/or51211 0xbf4333d3 or51211_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/s5h1409 0x7325dc2a s5h1409_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/s5h1411 0x10f9666a s5h1411_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/s5h1420 0xe40cc629 s5h1420_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/s5h1432 0x1e484bb6 s5h1432_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/s921 0xdc2df476 s921_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/si21xx 0x751c2a92 si21xx_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/sp887x 0x456cd5b1 sp887x_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stb0899 0x005aa311 stb0899_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stb6000 0x87904049 stb6000_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stb6100 0x8ae78120 stb6100_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0288 0x3e903370 stv0288_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0297 0x71b24c4c stv0297_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0299 0x8ccf5471 stv0299_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0367 0x067d4852 stv0367cab_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0367 0x874fb23f stv0367ter_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0367 0xb7bfac05 stv0367ddb_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0900 0x3c0016ab stv0900_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv090x 0x7e2f7760 stv090x_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0910 0xb635517d stv0910_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv6110 0xfe28e341 stv6110_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv6110x 0xe50bd5ea stv6110x_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv6111 0x2cff143c stv6111_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda10021 0x6120b7f5 tda10021_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda10023 0xd97de22f tda10023_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda10048 0xd70cfd92 tda10048_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda1004x 0x08c2f28a tda10045_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda1004x 0x334fedfe tda10046_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda10086 0xe0d022b6 tda10086_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0x3ba0eea4 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda665x 0x72a3bfc3 tda665x_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda8083 0x5704c365 tda8083_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda8261 0xba974ad8 tda8261_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda826x 0x06fe1013 tda826x_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/ts2020 0xc7e6f9ef ts2020_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tua6100 0x155c70ad tua6100_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/ves1820 0x46a64705 ves1820_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/ves1x93 0x4068f4f0 ves1x93_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/zl10036 0xfb3a401c zl10036_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/zl10039 0xea36bf8a zl10039_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/zl10353 0xf6cab389 zl10353_attach +EXPORT_SYMBOL_GPL drivers/media/i2c/aptina-pll 0x39b8e5c4 aptina_pll_calculate +EXPORT_SYMBOL_GPL drivers/media/i2c/ccs-pll 0xec5e34e6 ccs_pll_calculate +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x339e2abd max9271_wake_up +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x4608ec53 max9271_set_deserializer_address +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x4f82750c max9271_enable_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x70952403 max9271_verify_id +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x715aed0e max9271_set_translation +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x87bd5934 max9271_clear_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xa18817c9 max9271_configure_i2c +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xace1799c max9271_set_address +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xb00df88e max9271_disable_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xb6af404e max9271_set_serial_link +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xb88de974 max9271_set_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xc05a113d max9271_set_high_threshold +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xda66828b max9271_configure_gmsl_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x03e736f2 media_pad_remote_pad_first +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x099d407b media_device_pci_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x0b5ae0ca media_entity_enum_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x0d1e7f47 media_device_unregister_entity +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x11d2597e media_create_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x126f053a media_devnode_create +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x1753794c media_pipeline_entity_iter_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x1a79316b media_graph_walk_next +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x1d62d97e media_graph_walk_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x23ae30d2 media_pad_remote_pad_unique +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x24a46822 media_get_pad_index +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x26c5c156 media_create_pad_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x2773b0d8 media_request_get_by_fd +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x28abbf54 __media_entity_remove_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x2d87eee5 media_device_unregister_entity_notify +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x359e2a24 media_entity_pads_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x3aa18311 media_request_object_complete +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x3b1cb7ab media_device_delete +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x49630b55 media_request_object_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x4992510d media_pad_pipeline +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x4e8c2850 media_entity_setup_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x4ed8a4c8 media_device_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x4f3da88c media_device_register_entity +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x51dd7b78 __media_entity_next_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x54ef2c60 media_devnode_remove +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x5d36edfd media_graph_walk_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x5fc24ad8 media_create_ancillary_link EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x65dd67e0 media_pipeline_entity_iter_cleanup -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x6e756690 __media_device_usb_init -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7194ec29 media_remove_intf_links -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7768a6e1 media_graph_walk_next -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x77b14a9b __media_pipeline_entity_iter_next -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7f1be54c media_get_pad_index -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x81fd3358 media_graph_walk_init -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x88fdb2eb media_create_ancillary_link -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x90198048 media_device_unregister -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x90e54dc3 media_pipeline_entity_iter_init -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x9130a5bf media_entity_pads_init -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xa2dd96bb media_request_object_bind -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xa3c2c88c __media_pipeline_stop -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xa660f609 media_entity_setup_link -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xaa183584 __media_pipeline_pad_iter_next -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xacb65330 media_create_pad_links -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xaea2bb09 media_pipeline_stop -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xb01ed148 media_pad_remote_pad_first -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xb47da423 media_device_init -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xb590dc47 media_remove_intf_link -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xb7033473 media_request_object_complete -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xbe93ec60 media_device_cleanup -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xc17700a8 media_entity_remove_links -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xc840f234 media_request_put -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xcaaa2c89 media_entity_find_link -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xcd462a35 media_devnode_remove -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xcd6a1d8b media_device_usb_allocate -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xd5832ec8 media_create_pad_link -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xd8c066e4 media_pipeline_alloc_start -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xe361dc98 media_devnode_create +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x67144409 media_pipeline_alloc_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x67a6848e media_device_unregister +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x69e40ec7 __media_device_register +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7823e1fb media_entity_remove_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7c5b537f media_entity_remote_pad_unique +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7e504d37 media_pipeline_stop +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x826fee0f media_request_object_put +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x8823269f __media_device_usb_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x8d7393b8 __media_pipeline_pad_iter_next +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x93c7d40e media_device_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x9520f3ff __media_pipeline_stop +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x95ebe157 media_remove_intf_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x961c0474 media_entity_pipeline +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x96255886 media_entity_find_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x996dcb77 media_entity_get_fwnode_pad +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x9d1c3a3f media_device_usb_allocate +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x9e78132a media_pipeline_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xa2f06ca5 __media_pipeline_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xa38b13fb __media_pipeline_entity_iter_next +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xa9378bba media_device_register_entity_notify +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xad356d50 __media_remove_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xb7293d45 media_graph_walk_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xc9eb3aa5 media_remove_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xd0b8c4dd media_request_object_unbind +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xd3d2d770 __media_remove_intf_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xd59b8d66 __media_entity_setup_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xd8d43fcf media_create_pad_links EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xe5ceecd6 media_entity_enum_cleanup -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xe7713341 media_device_unregister_entity_notify -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xedbeb367 media_entity_remote_pad_unique -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xef8f7b4f media_pipeline_start -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xf1ac8866 media_request_object_find -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xf1b5e1ef media_request_object_init -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xf2db3865 media_request_object_unbind -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xf8428ce0 __media_entity_remove_links -EXPORT_SYMBOL_GPL drivers/media/pci/bt8xx/dst 0xb543e66f dst_attach -EXPORT_SYMBOL_GPL drivers/media/pci/bt8xx/dst_ca 0x6d34b849 dst_ca_attach -EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0xb68f9294 cx88_setup_xc3028 -EXPORT_SYMBOL_GPL drivers/media/pci/ddbridge/ddbridge-dummy-fe 0x52a73688 ddbridge_dummy_fe_qam_attach -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x08ede3e7 mantis_frontend_power -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x10c63582 mantis_gpio_set_bits -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x14541e00 mantis_input_init -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x15ff38ff mantis_frontend_soft_reset -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x2809a85b mantis_i2c_init -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x2965babe mantis_dma_exit -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x6a2c80b0 mantis_dma_init -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x6b409255 mantis_i2c_exit -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x6b6a0b5a mantis_ca_exit -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7f33859d mantis_pci_exit -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7f9643fb mantis_pci_init -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x94a7b142 mantis_dvb_exit -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x94fcb5f9 mantis_get_mac -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xad36333c mantis_ca_init -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xaf92a808 mantis_input_exit -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd7ee8b4c mantis_dvb_init -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xddcb259d mantis_stream_control -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xff1570a1 mantis_uart_exit -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xff764f39 mantis_uart_init -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x005a6e5e saa7134_s_tuner -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x01e407d1 saa7134_g_std -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x22947425 saa7134_s_frequency -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x5274ba8d saa7134_enum_input -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x5b06c2bb saa7134_ts_qops -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x643c5826 saa7134_querystd -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x83f1a955 saa7134_g_input -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x98458cb5 saa7134_stop_streaming -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x9e26e095 saa7134_s_std -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xa18f9c3a saa7134_ts_buffer_prepare -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xa53ca3b5 saa7134_s_input -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xc66d0c61 saa7134_ts_queue_setup -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xcdc3fa66 saa7134_querycap -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xe603a9cf saa7134_vb2_buffer_queue -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xe7cc2c17 saa7134_ts_stop_streaming -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xe7d601ce saa7134_ts_buffer_init -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xea1f3be1 saa7134_g_frequency -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xf557b5ef saa7134_g_tuner -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xf58acff5 saa7134_ts_start_streaming -EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x1c51b88e ttpci_budget_init_hooks -EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x1d948045 ttpci_budget_debiwrite -EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x6662314f ttpci_budget_debiread -EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x77601a57 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xe70e9ff3 media_request_object_find +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xebeb4a60 media_request_object_bind +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xf74dce27 media_request_put +EXPORT_SYMBOL_GPL drivers/media/pci/bt8xx/dst 0x0db4fb97 dst_attach +EXPORT_SYMBOL_GPL drivers/media/pci/bt8xx/dst_ca 0xf2de02ca dst_ca_attach +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0x28cd8b57 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/ddbridge/ddbridge-dummy-fe 0x77941de0 ddbridge_dummy_fe_qam_attach +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x027ec71f mantis_input_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x054564f9 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x0dc4e388 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x14b659e9 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x27ae88b6 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x2d7587e3 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x39d469e6 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x43c61ba8 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x4791e003 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x58589d5b mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x610a1ff1 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x6fa10319 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x794f83e1 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x81a78e32 mantis_input_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x9bb4f839 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xb924e7be mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd66d1135 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xfbf06344 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xfd8908d5 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x0f707ab1 saa7134_ts_buffer_prepare +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x156b329f saa7134_s_std +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x17ed3ef7 saa7134_vb2_buffer_queue +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x2a23b93f saa7134_ts_stop_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x2a98fec3 saa7134_s_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x3d008b3b saa7134_g_std +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x42696647 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x44e1aecb saa7134_g_tuner +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x51100d27 saa7134_s_frequency +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x579ff96c saa7134_ts_buffer_init +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x672d9a93 saa7134_ts_start_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x750c20be saa7134_g_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x954b8639 saa7134_enum_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x96bf62ae saa7134_g_frequency +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xb6f80584 saa7134_querycap +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xc4aea888 saa7134_ts_queue_setup +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xcccec3d2 saa7134_stop_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xe674a135 saa7134_querystd +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xe7c243af saa7134_s_tuner +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x01059323 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x14e389c5 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x648f7386 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x6cf246c7 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x6e4c43ac ttpci_budget_set_video_port EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug -EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xb7f09075 ttpci_budget_deinit -EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xc0831a61 ttpci_budget_init -EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xd28edf4f ttpci_budget_set_video_port -EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x1fe0e24f mccic_irq -EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x398213ce mccic_register -EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x3a021110 mccic_suspend -EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x3b68d375 mccic_shutdown -EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x5bada5f2 mccic_resume +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xb85cd440 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xbd68a4aa ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x1c24b5b8 mccic_irq +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x4ff85fcb mccic_resume +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x5938699d mccic_register +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0xaad1d28a mccic_suspend +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0xb7339daf mccic_shutdown EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x3d858696 rcar_fcp_put EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x4ad5d888 rcar_fcp_enable EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x5fe6f6e8 rcar_fcp_disable EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x9877c29f rcar_fcp_get -EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0xea4d1290 rcar_fcp_get_device -EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x100270a0 vsp1_du_atomic_flush -EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x16778f93 vsp1_du_map_sg -EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x54c0ce98 vsp1_du_atomic_update -EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x76c21959 vsp1_du_init -EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x786036eb vsp1_du_atomic_begin -EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x7a17e956 vsp1_du_unmap_sg -EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0xb05ad665 vsp1_du_setup_lif -EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x003b5a49 xvip_clr_or_set +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x9b912c64 rcar_fcp_get_device +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x0042688e vsp1_du_atomic_update +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x5d3c93da vsp1_du_setup_lif +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x72dc1c8f vsp1_du_atomic_flush +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x872ae0bd vsp1_du_unmap_sg +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x9989a22b vsp1_du_init +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0xb022e372 vsp1_du_atomic_begin +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0xee58fa18 vsp1_du_map_sg +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x06a2389c xvip_clr_and_set EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x32a020d5 xvip_set_format_size +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x42c12af0 xvip_clr_or_set +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x554cf5d6 xvip_cleanup_resources +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x5c07e636 xvip_init_resources EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xb67940fb xvip_get_format_by_fourcc -EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xd2a228a4 xvip_enum_mbus_code +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xb75c45a9 xvip_enum_frame_size +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xd1ac9e2c xvip_enum_mbus_code EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xe08e6063 xvip_get_format_by_code -EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xe2dc5281 xvip_cleanup_resources -EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xe87993d3 xvip_init_resources -EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xf52b15fd xvip_clr_and_set -EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xfab48576 xvip_of_get_format -EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xfadeb26c xvip_enum_frame_size -EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-vtc 0x331eee39 xvtc_of_get +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xfc18071e xvip_of_get_format EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-vtc 0x3c16a6b1 xvtc_generator_stop EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-vtc 0x47d7900b xvtc_generator_start +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-vtc 0x95d2221b xvtc_of_get EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-vtc 0xa8a0f912 xvtc_put -EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x843fa9c1 radio_tea5777_exit -EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xffaead80 radio_tea5777_init -EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x1994812a si470x_set_freq -EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x213f6d72 si470x_start -EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x404b0fb4 si470x_viddev_template -EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x4a22ef09 si470x_stop -EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0xdcbaa133 si470x_ctrl_ops +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xe40cc916 radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xe82e2a13 radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x27dfecc2 si470x_viddev_template +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x43741a83 si470x_ctrl_ops +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0xa451099a si470x_stop +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0xe81b07e8 si470x_set_freq +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0xf2b1d270 si470x_start +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x08b81e8f rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0f9b1f6f ir_raw_event_store EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1b5253c5 rc_map_unregister -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1b9894c1 rc_keyup -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2170a6b1 lirc_scancode_event -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x327da59a rc_register_device -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3284e526 ir_raw_event_store_with_timeout -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x32f268e8 rc_free_device -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3a4e6f33 rc_keydown -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3af8f7c4 devm_rc_allocate_device -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x5bcee7fe rc_keydown_notimeout -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6e653818 devm_rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1c6390a5 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3d9f4d38 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4dc2f9e4 devm_rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4ef3170a rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x63d3eeea devm_rc_allocate_device EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x719ae806 rc_map_register -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x71a527cc ir_raw_event_store -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x97d8742f rc_g_keycode_from_table -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb9f41a24 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7bdfa853 ir_raw_event_store_with_timeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7d7f1738 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x88b744e4 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xae857687 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb0bee956 rc_g_keycode_from_table EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbb08e532 rc_map_get -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xcc615749 ir_raw_event_store_edge -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xcd4eac33 rc_allocate_device -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd403e57d ir_raw_event_handle -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd6148dd9 ir_raw_event_store_with_filter -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd6672acc ir_raw_event_set_idle -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfd78d96b rc_repeat -EXPORT_SYMBOL_GPL drivers/media/tuners/fc0011 0x080b6546 fc0011_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/fc0012 0xb2e55054 fc0012_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/fc0013 0x29ec312e fc0013_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/max2165 0x5a90bfa9 max2165_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/mc44s803 0x00ec6c22 mc44s803_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/mt2060 0x3befbe5b mt2060_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0x5e22ba13 mt2063_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x91d0e44d microtune_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/mt2131 0x26732c53 mt2131_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/mt2266 0xd1638225 mt2266_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5005s 0x62e3d1c2 mxl5005s_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0xfcc92b3e mxl5007t_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/qt1010 0x7c75d121 qt1010_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0x4a8e5696 r820t_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/tda18218 0xdfd9e42c tda18218_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0xaeaf880e tda18271_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0x798507ef tda827x_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x060cffc5 tda829x_probe -EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x852c82b0 tda829x_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x518b8620 tda9887_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0xa0323f06 tea5761_autodetection -EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0xf8d696bd tea5761_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x414dad17 tea5767_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0xbe0826a5 tea5767_autodetection -EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0xf4469458 simple_tuner_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/xc2028 0xbe2b88ca xc2028_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/xc4000 0xfaa1354f xc4000_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/xc5000 0x79be274c xc5000_attach +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xcb829066 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xcc3cd4f8 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd8ba7e02 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xdedf6636 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe3d6d2a7 lirc_scancode_event +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe536833c rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/tuners/fc0011 0x578319ec fc0011_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/fc0012 0x01dd489b fc0012_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/fc0013 0x8f2239cb fc0013_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/max2165 0x96c42db3 max2165_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mc44s803 0xaec0a8c5 mc44s803_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2060 0xeebe1c07 mt2060_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0xf00e7ef4 mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x6f2e3ff6 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2131 0xf3228e0f mt2131_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2266 0xa648f0cd mt2266_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5005s 0x7b4a813c mxl5005s_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0xc4e7d34c mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/qt1010 0x0b5ea3c9 qt1010_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0x823b24e3 r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18218 0xbb032c33 tda18218_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0x6fc280e8 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0xd915945a tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x5f605d8d tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x95864d83 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0xfe6d8adb tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x57309a46 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0xb194376d tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x18b961cd tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0xeeaba1ec tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x97bf5cc0 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/xc2028 0x0199bff4 xc2028_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/xc4000 0x9adfdf81 xc4000_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/xc5000 0xb152e3ee xc5000_attach EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x05edea71 cx231xx_init_vbi_isoc -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0729dcff cx231xx_uninit_isoc -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x1391d331 cx231xx_demod_reset -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x22c70b2c cx231xx_get_i2c_adap -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x39918cd5 cx231xx_uninit_bulk -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5501cf85 cx231xx_send_gpio_cmd -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5804ded6 cx231xx_enable656 -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x59302bbf cx231xx_init_isoc -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x6baaa20b cx231xx_init_bulk -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x76c7b76e is_fw_load -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x897655fa cx231xx_dev_uninit -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x96c34e58 cx231xx_set_mode -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xa5b9232e cx231xx_enable_i2c_port_3 -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xa9a4af75 cx231xx_unmute_audio -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xaa30950e cx231xx_capture_start -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xae296a48 cx231xx_set_alt_setting -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xbb3f1c89 cx231xx_dev_init -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xc009978b cx231xx_disable656 -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xe54e351b cx231xx_uninit_vbi_isoc -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xe85e86b9 cx231xx_send_usb_command -EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0xd3201cbc mxl111sf_demod_attach -EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x6616c301 mxl111sf_tuner_attach -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x17639d0c em28xx_init_usb_xfer -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x26877baf em28xx_uninit_usb_xfer -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x4dc13e6c em28xx_read_ac97 -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x508f4254 em28xx_read_reg -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x513b9cd9 em28xx_set_mode -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x56fcf027 em28xx_write_regs -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x69df1772 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0492a5f8 cx231xx_get_i2c_adap +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x06434fa5 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x09795dfa cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0aef9cb9 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x18ac7cf4 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x3048ee63 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x318a7eb1 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x54ccfe07 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5b0fa73f cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x608312d1 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x6b717e3b cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x74b6ffcb cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x84ea2006 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x92ff0b8b cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x9da168cc cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xa43f7b1c cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xa58a1908 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xaa2a0aba cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xc0906ecc is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xfd59afa1 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0xd6c79757 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x407b196a mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x017b44ca em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x1f0e805d em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x4f2a4f9c em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x58a28e05 em28xx_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x5d93e64f em28xx_toggle_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x6016dd17 em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x6f687d44 em28xx_audio_analog_set EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x721f7cc7 em28xx_free_device -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x734f42b0 em28xx_audio_analog_set EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x81a9ee9c em28xx_setup_xc3028 -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x8487d45b em28xx_toggle_reg_bits -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x90db760e em28xx_init_camera +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x80388fa6 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x88b6d8af em28xx_audio_setup EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x921d7c65 em28xx_boards -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x9602fafc em28xx_write_ac97 -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x98a372b0 em28xx_audio_setup -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x9a72c359 em28xx_find_led -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x9d0b203e em28xx_write_reg_bits -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xd63816ce em28xx_gpio_set -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xf33ca11d em28xx_alloc_urbs -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xfc55b15c em28xx_write_reg -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x2c5571c2 __v4l2_async_nf_add_subdev -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x3f1cd2e0 __v4l2_async_nf_add_i2c -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x6e206c8c __v4l2_async_nf_add_fwnode -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x79f1d25c __v4l2_async_nf_add_fwnode_remote -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0xd4b7ce36 v4l2_async_nf_cleanup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x972d666c em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xaf798377 em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xb07a4891 em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xc2bf4b55 em28xx_find_led +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xf31ff959 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xf490b38b em28xx_init_camera +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xfdfb42ff em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xfe9fb0e4 em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xfec940bd em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x027baf1a __v4l2_async_nf_add_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x3b3d274a __v4l2_async_nf_add_fwnode_remote +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x3be227ee __v4l2_async_nf_add_i2c +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x6607407f v4l2_async_nf_cleanup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0xbb9eafa6 __v4l2_async_nf_add_fwnode EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x01612c0b v4l2_detect_gtf EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x08402862 v4l2_print_dv_timings EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x0958448b v4l2_set_edid_phys_addr @@ -13444,70 +13463,70 @@ EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0xd034392d v4l2_match_dv_timings EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0xf56238f4 v4l2_find_dv_timings_cea861_vic EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0xff585440 v4l2_dv_timings_aspect_ratio -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x1cf11f8d v4l2_flash_indicator_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0xbc5e9a14 v4l2_flash_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0xc2ccf89c v4l2_flash_release -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x25391e02 v4l2_fwnode_device_parse -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x30c0566d v4l2_fwnode_parse_link -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x42dde0ce v4l2_fwnode_connector_add_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x80af8ec6 v4l2_flash_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0xa645b13a v4l2_flash_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0xcdcc27f0 v4l2_flash_indicator_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x3daae66d v4l2_async_nf_parse_fwnode_endpoints +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x46298eaf v4l2_fwnode_device_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x4c5d50ed v4l2_fwnode_parse_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x5bab3209 v4l2_fwnode_connector_add_link EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x612ddce5 v4l2_fwnode_connector_free -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x891e5cec v4l2_fwnode_put_link -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x8c9ef6d6 v4l2_fwnode_endpoint_alloc_parse -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x990e819c v4l2_async_register_subdev_sensor -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0xa0577bcd v4l2_fwnode_endpoint_parse -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0xa76272b6 v4l2_fwnode_connector_parse -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0xc68399dc v4l2_fwnode_endpoint_free -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0xcf1f273a v4l2_async_nf_parse_fwnode_endpoints +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x78811abd v4l2_async_register_subdev_sensor +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x78d26558 v4l2_fwnode_endpoint_alloc_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x7b9e1460 v4l2_fwnode_endpoint_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x887e476d v4l2_fwnode_put_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0xadb95c27 v4l2_fwnode_connector_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0xba2e36c5 v4l2_fwnode_endpoint_free EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-h264 0x639ecc68 v4l2_h264_init_reflist_builder EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-h264 0x6a1429ff v4l2_h264_build_p_ref_list EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-h264 0xf568bf81 v4l2_h264_build_b_ref_lists -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x04d8bb1e v4l2_m2m_qbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x04f7c9f7 v4l2_m2m_querybuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0619e135 v4l2_m2m_decoder_cmd -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0d225875 v4l2_m2m_update_start_streaming_state -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x10545f7b v4l2_m2m_ioctl_streamoff -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x13d82b3f v4l2_m2m_expbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x156e4a69 v4l2_m2m_ioctl_create_bufs -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x1582e485 v4l2_m2m_ioctl_try_encoder_cmd -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x1593ca7d v4l2_m2m_next_buf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x1a8243a0 v4l2_m2m_buf_remove_by_idx -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x1a9d5194 v4l2_m2m_last_buffer_done -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x1cdcba0a v4l2_m2m_create_bufs -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x1e590a15 v4l2_m2m_streamoff -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x3407029b v4l2_m2m_fop_mmap -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x34443090 v4l2_m2m_update_stop_streaming_state -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x386c6041 v4l2_m2m_prepare_buf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x3d945f74 v4l2_m2m_buf_remove_by_buf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x4c6ce830 v4l2_m2m_ioctl_qbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x571b2ad4 v4l2_m2m_request_queue -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x592c042c v4l2_m2m_ioctl_reqbufs -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x6da61500 v4l2_m2m_register_media_controller +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0236656e v4l2_m2m_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x04b4dc41 v4l2_m2m_buf_remove_by_idx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x06635ee1 v4l2_m2m_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0de513b6 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0f18172d v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x11b25c23 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x1463d824 v4l2_m2m_register_media_controller +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x170eadf5 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x22e48c6f v4l2_m2m_buf_remove_by_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x241d88e0 v4l2_m2m_ioctl_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x248d13dc v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2821c4da v4l2_m2m_buf_copy_metadata +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2c27251a v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2f06e25d v4l2_m2m_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x3bd327ef v4l2_m2m_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x42dd4b86 v4l2_m2m_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x452b4a0d v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x5051566a v4l2_m2m_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x52005bd1 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x607534ff v4l2_m2m_update_start_streaming_state +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x6295150d v4l2_m2m_qbuf EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae v4l2_m2m_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x78508f69 v4l2_m2m_ioctl_streamon -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7b7e7e4d v4l2_m2m_ioctl_decoder_cmd -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x813e851a v4l2_m2m_reqbufs -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x81756a85 v4l2_m2m_encoder_cmd -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8887dd26 v4l2_m2m_ioctl_stateless_try_decoder_cmd -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8a6228e6 v4l2_m2m_ioctl_encoder_cmd -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa248f0b7 v4l2_m2m_ioctl_prepare_buf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa3c33e9b v4l2_m2m_fop_poll -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa4a7f71f v4l2_m2m_ioctl_expbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xafc05b60 v4l2_m2m_buf_remove -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb11feac7 v4l2_m2m_ctx_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb4ed69d4 v4l2_m2m_buf_queue -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb9a4833e v4l2_m2m_last_buf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc46514cb v4l2_m2m_ioctl_stateless_decoder_cmd -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6c0d2dd v4l2_m2m_try_schedule +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x76f1a4bc v4l2_m2m_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7c3330e4 v4l2_m2m_ioctl_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7c8583c9 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7cd6d19a v4l2_m2m_ioctl_try_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8353668a v4l2_m2m_ioctl_stateless_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8d995776 v4l2_m2m_update_stop_streaming_state +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8f4cbf45 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x96e89870 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9777eae7 v4l2_m2m_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xad796f97 v4l2_m2m_ioctl_stateless_try_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb2f7131b v4l2_m2m_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xbb39e4b6 v4l2_m2m_last_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xbeb74cee v4l2_m2m_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc3d59111 v4l2_m2m_ioctl_querybuf EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xced7cad2 v4l2_m2m_buf_copy_metadata -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xd259c312 v4l2_m2m_streamon -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xdd3704b2 v4l2_m2m_ctx_release -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xee85b1db v4l2_m2m_poll -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xeeea21ff v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc946033b v4l2_m2m_ioctl_try_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xd0f81fea v4l2_m2m_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xd15e38e3 v4l2_m2m_request_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xdfa37b1c v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe20980f3 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe2f7ea34 v4l2_m2m_try_schedule +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xec99b344 v4l2_m2m_last_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xeda5839d v4l2_m2m_encoder_cmd EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d v4l2_m2m_unregister_media_controller -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xf2edc09c v4l2_m2m_ioctl_dqbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xf71d1fb0 v4l2_m2m_ioctl_try_decoder_cmd -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xf86f8266 v4l2_m2m_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xfd4df43f v4l2_m2m_ioctl_streamoff EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x4137d90c v4l2_vp9_adapt_coef_probs EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x8ef1a3dd v4l2_vp9_reset_frame_ctx EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x8ef25d5d v4l2_vp9_seg_feat_enabled @@ -13517,361 +13536,361 @@ EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0xdf6586d2 v4l2_vp9_kf_uv_mode_prob EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0xf5c55c43 v4l2_vp9_default_probs EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0xfbf87a5e v4l2_vp9_kf_y_mode_prob -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x09431c59 videobuf_querybuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x13ec2943 videobuf_mmap_mapper -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x169b2c89 videobuf_streamoff -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x1ea33f17 videobuf_queue_core_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x22ee24c6 __videobuf_mmap_setup -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x34371174 videobuf_queue_cancel -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x3ef0507e videobuf_streamon -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x40e34e87 videobuf_waiton -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x450f86d1 videobuf_read_one -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x49522f5c videobuf_read_start -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4c0db7fc videobuf_mmap_setup -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4ed0593e videobuf_queue_is_busy -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x683fae66 videobuf_read_stop -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x693e0dab videobuf_alloc_vb -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x6c51420f videobuf_stop -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x8ce58643 videobuf_qbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x9a4a6b02 videobuf_mmap_free -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x9e291596 videobuf_reqbufs -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xabf9cfac videobuf_next_field -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xb204f713 videobuf_iolock -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc6dd2aa2 videobuf_queue_to_vaddr -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc789c075 videobuf_dqbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd4f1313a videobuf_poll_stream -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xee335de2 videobuf_read_stream -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x2db42862 videobuf_dma_free -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x2ea60a80 videobuf_queue_sg_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x37f6d496 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x09618879 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x13f37587 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x184508fd __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x32c449f3 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x35957724 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x3dcaa84c videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4b850c12 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x568ffaeb videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x5c00bb97 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x6d4e9f75 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x72de1263 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7a65b626 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x8367e8c0 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x84064194 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x87ed6dbe videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x88be788a videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x8dfba5db videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x91e6ab58 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbada332a videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc088e38e videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xcbfbddd6 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd2a70593 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd7cd6132 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xfa6a2e25 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x0c3f879d videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x249d66bf videobuf_dma_unmap EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0 videobuf_sg_alloc -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x96ba4da6 videobuf_to_dma -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0b8e531c v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xdfa6dc1a videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xe59d79e5 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0679f968 v4l2_subdev_get_privacy_led +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x07063fcc v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0761d2b8 v4l2_subdev_set_routing_with_fmt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0819e47d v4l2_subdev_put_privacy_led +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0856bcee v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x096714be __v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0cf6d348 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0d35e59f v4l2_pipeline_pm_put EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0d52d4ff v4l2_subdev_state_get_stream_compose -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0d65d50a v4l2_subdev_notify_event -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0d757481 video_device_pipeline_alloc_start -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x11e3022b v4l2_subdev_routing_validate +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0fcca9fc __traceiter_vb2_v4l2_dqbuf EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x11f3044c __SCK__tp_func_vb2_v4l2_buf_queue -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x11fed058 __v4l2_ctrl_handler_setup -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1a30ba90 v4l2_spi_subdev_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1e4eed0c v4l2_ctrl_request_hdl_ctrl_find -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1f6c20c6 v4l2_src_change_event_subdev_subscribe -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x20b2ff19 v4l2_subdev_get_fwnode_pad_1_to_1 -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2106db81 __traceiter_vb2_v4l2_qbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x21d30f44 v4l2_subdev_link_validate -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x22e54cad __v4l2_subdev_state_alloc -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x250ce365 v4l2_subdev_set_routing_with_fmt -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x26b81bc1 __traceiter_vb2_v4l2_buf_done -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2a140ce5 v4l2_i2c_subdev_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x12a3acd6 v4l2_src_change_event_subdev_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x14c677f2 v4l2_subdev_s_stream_helper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x199cb0e3 v4l_disable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x213df11b __traceiter_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x23c4f66a v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x252629ea __v4l2_subdev_state_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2566faec v4l2_g_parm_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x26eb40c9 v4l2_subdev_get_fmt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x280890de v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x28814fab v4l2_device_register EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2ae0877b __SCK__tp_func_vb2_v4l2_buf_done EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2b6856cd __tracepoint_vb2_v4l2_dqbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2c0fd040 v4l2_fh_del -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x330d98be __video_device_pipeline_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2e58e9d1 video_device_pipeline_alloc_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x366f7837 v4l2_fh_del EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x37080a71 v4l2_subdev_state_xlate_streams -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x38e8f54f v4l_vb2q_enable_media_source -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x41f2b567 v4l2_device_unregister_subdev -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4233bd50 v4l2_event_unsubscribe -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x43b3cdf4 v4l2_mc_create_media_graph -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x449a21d8 video_device_pipeline_start -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x471c547f v4l2_device_register -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4d80eed0 video_device_pipeline -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4f6d849f v4l2_event_subscribe -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4fbaa999 v4l2_i2c_new_subdev -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x503cdfc0 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x42b14fcb v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4663ffd8 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4799b436 v4l2_create_fwnode_links +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4d430ba3 video_device_pipeline_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4f9cf88b __video_device_pipeline_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4fdc4e2a v4l2_fh_release EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5074e573 v4l2_fraction_to_interval -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5271e4bc v4l2_subdev_link_validate_default -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5407e0c1 v4l2_event_wake_all -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5feee7d3 v4l2_i2c_subdev_addr -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x649b2ae3 v4l_disable_media_source -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6737812c v4l2_src_change_event_subscribe -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x682ff282 v4l2_event_queue -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x69b369ea v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x548bb215 v4l2_subdev_disable_streams +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x549837f2 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x557f837c v4l2_subdev_notify_event +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5d72abce v4l2_get_link_freq +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5d8822cd v4l2_mc_create_media_graph +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5eb1ff90 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5f8f0b88 v4l2_s_parm_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x679b8bea __traceiter_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6863f5aa video_device_pipeline_start EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6ce1c95c __SCK__tp_func_vb2_v4l2_dqbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6d6760ab v4l2_ctrl_request_hdl_find EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6e9acc41 v4l2_fill_pixfmt_mp -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x74c05dd3 v4l2_get_link_freq +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x713e5c95 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x737807d0 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x75f865ad v4l_enable_media_source EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x781fd920 __v4l2_subdev_state_free -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7d2a308e v4l2_i2c_new_subdev_board -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7dcc1084 v4l2_pipeline_link_notify -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7e8c9797 v4l2_event_dequeue -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x832ac563 v4l2_fh_add -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x85155ba0 v4l2_subdev_has_pad_interdep -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x85176f4b v4l2_device_set_name -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x86fc24d6 v4l2_s_parm_cap -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8e4b4b60 v4l2_fh_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8f8139a9 __video_device_pipeline_stop -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x92b1996c v4l2_subdev_disable_streams -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x987baf3f v4l2_fh_exit -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x988e738a v4l2_pipeline_pm_put -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x993dead5 v4l_enable_media_source -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9a14825f v4l2_fh_release -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9e0defcc v4l2_subdev_s_stream_helper -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9ea330da v4l2_subdev_put_privacy_led +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x787a6194 v4l2_ctrl_request_hdl_ctrl_find +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7e39417f v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8629ce27 v4l2_ctrl_request_hdl_find +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x96a015d3 v4l2_create_fwnode_links_to_pad +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x977ae789 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x97f76ba2 v4l_vb2q_enable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9ac56d5e v4l2_subdev_has_pad_interdep EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9fef35ac v4l2_apply_frmsize_constraints -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa2ab0d6c v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa0004749 __video_device_pipeline_stop EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa3939b08 v4l2_subdev_state_get_opposite_stream_format -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa69d766e __v4l2_subdev_init_finalize -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xacf93b40 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa775fd95 __v4l2_ctrl_handler_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa8ea1fee v4l2_subdev_link_validate +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xad31c608 v4l2_event_unsubscribe EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xad5c3c93 v4l2_simplify_fraction EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xae3dd8d6 __v4l2_subdev_next_active_route -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb07aa776 v4l2_pipeline_pm_get +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb0944a9e video_device_pipeline EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb48cf8aa __tracepoint_vb2_v4l2_buf_done -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb76b7f4f v4l2_subdev_set_routing -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xbe5a9f11 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb4a1922e v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb91ae849 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb925730b v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xbf417d25 v4l2_i2c_subdev_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc04142d8 v4l2_subdev_set_routing +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc1367ee1 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc2b669e3 v4l2_device_put EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xcc501597 v4l2_fill_pixfmt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xce618e8f v4l2_event_wake_all EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xcf754c8f v4l2_subdev_routing_find_opposite_end -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd16daaf1 v4l2_subdev_cleanup -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd1f34c62 __v4l2_device_register_subdev_nodes -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xdbb80caf v4l2_create_fwnode_links -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xdde746ad __traceiter_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xcfee9514 __v4l2_subdev_init_finalize +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd31f54a4 v4l2_pipeline_link_notify +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd3e3e5a3 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd535aff1 v4l2_subdev_routing_validate +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd55408b1 v4l2_subdev_get_fwnode_pad_1_to_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd69bc3b4 v4l2_subdev_link_validate_default +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xde5d8f61 v4l2_device_unregister_subdev EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xdef3dffd __tracepoint_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xdf62026c v4l2_fh_open EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe0b98a71 __tracepoint_vb2_v4l2_buf_queue -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe2449559 v4l2_g_parm_cap EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe2822320 __v4l2_find_nearest_size -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe340722c v4l2_subdev_get_fmt -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe4faab84 v4l2_event_subdev_unsubscribe EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe5a33113 __SCK__tp_func_vb2_v4l2_qbuf EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe61b80eb v4l2_subdev_state_get_stream_crop -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xea83418a v4l2_subdev_enable_streams -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xecb5a1be v4l2_spi_new_subdev -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xed2bd7f9 __traceiter_vb2_v4l2_dqbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xedc6f62b video_device_pipeline_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe6478664 __traceiter_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xef945743 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf127cb42 v4l2_src_change_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf1a1b6cf v4l2_spi_new_subdev EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf2a353ac v4l2_i2c_tuner_addrs -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf33c8d99 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf2be4373 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf3c1e59b v4l2_pipeline_pm_get EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf5ef842e v4l_bound_align_image EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf5f25a83 v4l2_subdev_state_get_stream_format -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf8ebb75a v4l2_subdev_get_privacy_led -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf94be210 v4l2_i2c_subdev_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xfc9ec4ab v4l2_event_queue_fh -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xfe55046b v4l2_device_unregister -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xfe5fe805 v4l2_create_fwnode_links_to_pad -EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x43f78480 pm80x_regmap_config -EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x598ded23 pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf9739a54 v4l2_subdev_enable_streams +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xfe8bd796 v4l2_subdev_cleanup +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x32654383 pm80x_pm_ops EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit -EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xf3511a8a pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xe5baff3b pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xeb3d3d51 pm80x_init EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x02b2fecf cs47l24_irq -EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x09e46de3 wm5102_i2c_regmap EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x1949d8fa wm5110_revd_irq -EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x2f18a421 cs47l24_patch -EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x34be2ed5 arizona_dev_exit +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x2977b42d wm8997_patch EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x3501187e wm5110_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x376880aa wm5102_i2c_regmap EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x39419a43 wm8997_irq -EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x3b8a80ba wm5110_patch -EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x4adcacaf wm5102_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x5b2e7a5b wm8998_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7334b5b3 arizona_pm_ops -EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7c5eaf6e wm8997_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x953ca7f9 arizona_clk32k_disable -EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x99f9822a arizona_clk32k_enable -EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x9d99acbd arizona_dev_init -EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xa1b8790d wm8997_patch -EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xb6db3d0f arizona_request_irq -EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xb78ff892 wm5110_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xbc38fba1 cs47l24_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xcb534f26 arizona_set_irq_wake +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x41c96a91 arizona_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x42d24227 wm8997_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x589978ae arizona_clk32k_enable +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x65a29712 wm8998_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x745041e6 wm5102_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7b2d6725 arizona_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7be42f5c cs47l24_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x890315db wm5110_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x8a4dd143 arizona_request_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x8ce1e780 arizona_clk32k_disable +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x95f41773 arizona_dev_init +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xb17f5a40 wm5110_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xb3068e78 cs47l24_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xca3bd497 wm5110_i2c_regmap EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xd3fee6a6 wm5110_aod +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xdc86fb6f arizona_dev_exit EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xdfbe649b wm8997_aod -EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xe121e55c arizona_free_irq -EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xf4b739de wm5110_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/atc260x-core 0xe6ab41b9 atc260x_device_probe -EXPORT_SYMBOL_GPL drivers/mfd/atc260x-core 0xf53ab94e atc260x_match_device -EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x0d603efd da9150_read_qif -EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x24beb170 da9150_set_bits -EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x33336fb0 da9150_bulk_read -EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x898dbfd2 da9150_reg_write -EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0xad8f3005 da9150_reg_read -EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0xf00239e9 da9150_bulk_write -EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0xfd2ce7ed da9150_write_qif +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xe394aa37 arizona_set_irq_wake +EXPORT_SYMBOL_GPL drivers/mfd/atc260x-core 0x5d9dc062 atc260x_device_probe +EXPORT_SYMBOL_GPL drivers/mfd/atc260x-core 0x67ba1559 atc260x_match_device +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x3b5d70b5 da9150_read_qif +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x3fa8204c da9150_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x52ca7b7a da9150_bulk_read +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x627c519a da9150_write_qif +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x7ce40953 da9150_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0xc9768307 da9150_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0xec33b210 da9150_bulk_write EXPORT_SYMBOL_GPL drivers/mfd/gateworks-gsc 0xa142a524 gsc_read EXPORT_SYMBOL_GPL drivers/mfd/gateworks-gsc 0xb7abd1c4 gsc_write EXPORT_SYMBOL_GPL drivers/mfd/iqs62x 0xa436f4de iqs62x_events -EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x0e614cfd kempld_write8 -EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x151a8a9b kempld_read16 -EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x33ac3972 kempld_write32 -EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x42fe6ff4 kempld_read32 -EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x8e62be9f kempld_read8 -EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xa146b473 kempld_write16 -EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xa7184ddd kempld_get_mutex -EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xeab1fdeb kempld_release_mutex -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x237988a4 lm3533_write -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x26231b3c lm3533_update -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x89e46d94 lm3533_read -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x15e25e3f lm3533_ctrlbank_set_max_current -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x285a78e1 lm3533_ctrlbank_get_pwm -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x4f916351 lm3533_ctrlbank_get_brightness -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x8a209829 lm3533_ctrlbank_set_pwm -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x8b787952 lm3533_ctrlbank_set_brightness -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x8ecfda38 lm3533_ctrlbank_disable -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xba3bbd04 lm3533_ctrlbank_enable -EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x04287bdb lp3943_update_bits -EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x29cfe4b3 lp3943_write_byte -EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x55d477fb lp3943_read_byte -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x06519eff cs47l85_32bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x065c42bf cs47l85_16bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0b3bb742 madera_dev_exit -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0f17b905 cs47l15_patch +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x02a63b45 kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x1780693a kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x253d485c kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x6c957dd0 kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x9c279700 kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xdfce3986 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xe1e8f10d kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xeda2be82 kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x04437858 lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xe5aab07f lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xf0132b9c lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x011cadbe lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x21b36ec4 lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x4ec9eeb7 lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x53842d46 lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x7ebd03e4 lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xc09208cc lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xdc209f90 lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x09748c6a lp3943_read_byte +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x575c0d7f lp3943_write_byte +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x59c58875 lp3943_update_bits +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0122dff8 cs47l90_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x012f03b8 cs47l90_32bit_i2c_regmap EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0f379262 madera_of_match -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x1e84e94f cs47l90_32bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x1e89350f cs47l90_16bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x2905f2b2 cs47l92_16bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x29082ef2 cs47l92_32bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x34230587 cs47l35_32bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x342ed9c7 cs47l35_16bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x456483f3 cs47l85_16bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x45695fb3 cs47l85_32bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x576592e4 madera_dev_init -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x5db1f443 cs47l90_16bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x5dbc2803 cs47l90_32bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x6955f09a cs47l92_patch -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x6a30efbe cs47l92_32bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x6a3d33fe cs47l92_16bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7716188b cs47l35_16bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x771bc4cb cs47l35_32bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x96b399b8 cs47l85_patch -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x99bc522a madera_pm_ops -EXPORT_SYMBOL_GPL drivers/mfd/madera 0xbdd5b247 cs47l15_32bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0xbdd86e07 cs47l15_16bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0xcdf8d71a cs47l90_patch -EXPORT_SYMBOL_GPL drivers/mfd/madera 0xe20b9702 cs47l35_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x16f2fb82 madera_dev_init +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x19f7a848 cs47l85_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x19fa7408 cs47l85_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x2b853330 cs47l35_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x2b88ef70 cs47l35_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x36a3c405 cs47l92_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x36ae1845 cs47l92_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x4217c2f4 cs47l90_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x421a1eb4 cs47l90_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x5ac2b544 cs47l85_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x5acf6904 cs47l85_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x68b02e3c cs47l35_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x68bdf27c cs47l35_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x6cff4ea3 cs47l15_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7596d909 cs47l92_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x759b0549 cs47l92_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x78295cd2 cs47l90_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7ff6c49b cs47l85_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x91edd546 cs47l92_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x9b74dd77 cs47l35_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xa27384f0 cs47l15_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xa27e58b0 cs47l15_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xbc0f9306 madera_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xbe0707dd madera_dev_exit +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xe14699fc cs47l15_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xe14b45bc cs47l15_16bit_spi_regmap EXPORT_SYMBOL_GPL drivers/mfd/madera 0xebe384cb madera_name_from_type -EXPORT_SYMBOL_GPL drivers/mfd/madera 0xfee0af4b cs47l15_16bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0xfeed730b cs47l15_32bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x0821630c mc13xxx_variant_mc34708 -EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x1a2e9664 mc13xxx_variant_mc13783 -EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x2699836b mc13xxx_common_init -EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x5a94dd44 mc13xxx_variant_mc13892 -EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xa08f6afa mc13xxx_common_exit -EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xddbca56a mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x798c5123 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x8cb3d89a mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x9ebc2df2 mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xc8cd1c0b mc13xxx_common_exit +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xde0666d2 mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xf6ba4c89 mc13xxx_common_init EXPORT_SYMBOL_GPL drivers/mfd/motorola-cpcap 0xa226dbe8 cpcap_sense_virq -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0129beb7 pcf50633_register_irq -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0241fbf7 pcf50633_irq_mask_get -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x54b5550a pcf50633_free_irq -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x748a5e9d pcf50633_reg_read -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7e4bcdd1 pcf50633_pm -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9283e77a pcf50633_reg_set_bit_mask -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa0a36a54 pcf50633_irq_unmask -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa3eb2891 pcf50633_reg_clear_bits -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcf4e58c8 pcf50633_write_block -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xddc99d91 pcf50633_reg_write -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe6c4aa55 pcf50633_read_block -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xff7bf640 pcf50633_irq_mask -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x2220258e pcf50633_adc_async_read -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xd7cb1d08 pcf50633_adc_sync_read -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x2a1313af pcf50633_gpio_invert_get -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x3cd88719 pcf50633_gpio_get -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xe53c21ae pcf50633_gpio_invert_set -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xf9c2e527 pcf50633_gpio_power_supply_set -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xfa8bbfe2 pcf50633_gpio_set -EXPORT_SYMBOL_GPL drivers/mfd/rave-sp 0x42af393d devm_rave_sp_register_event_notifier +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x133340b0 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2004ea6c pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3fb6eb39 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x61622b57 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x62bbdcc1 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6abd0f8f pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x796b960f pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8986ffbc pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x929defb2 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9a924a7e pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe5df128f pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xfdb49981 pcf50633_pm +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x530c3882 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x6a8b0dd0 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x34e4f6bc pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x61aeb277 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x7a563343 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xa393f5ac pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xaeb773b7 pcf50633_gpio_get EXPORT_SYMBOL_GPL drivers/mfd/rave-sp 0x43e53ef9 rave_sp_exec +EXPORT_SYMBOL_GPL drivers/mfd/rave-sp 0xda5a91e7 devm_rave_sp_register_event_notifier EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x56d1a8c5 retu_read EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0xa074c8b6 retu_write -EXPORT_SYMBOL_GPL drivers/mfd/rk8xx-core 0x2d3fd7d4 rk8xx_suspend -EXPORT_SYMBOL_GPL drivers/mfd/rk8xx-core 0x3d05c707 rk8xx_shutdown -EXPORT_SYMBOL_GPL drivers/mfd/rk8xx-core 0x4906c17f rk8xx_probe -EXPORT_SYMBOL_GPL drivers/mfd/rk8xx-core 0xdc01f0eb rk8xx_resume -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x01b7cc02 si476x_core_i2c_xfer -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0c805a94 si476x_core_cmd_am_rsq_status -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0deba806 si476x_core_cmd_ana_audio_pin_cfg -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0f868a6d si476x_core_is_in_am_receiver_mode -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0f9e28a7 si476x_core_cmd_set_property -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1aef7f49 si476x_core_cmd_get_property -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x212705fa si476x_core_is_a_primary_tuner -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2665d0fd si476x_core_start -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4386a4ae si476x_core_cmd_zif_pin_cfg -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4ce38b1c si476x_core_cmd_dig_audio_pin_cfg -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4ed9c8a3 si476x_core_has_am -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x509bbc63 si476x_core_cmd_am_tune_freq -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x5b454f2a si476x_core_cmd_power_down -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x690b16a1 si476x_core_cmd_fm_seek_start -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x77f5838f si476x_core_cmd_am_acf_status -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x79701c1a si476x_core_cmd_am_seek_start -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7992e06b si476x_core_cmd_agc_status -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7e9cfe02 si476x_core_cmd_func_info -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x861671af si476x_core_cmd_fm_tune_freq -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8f6c16cb si476x_core_cmd_fm_rsq_status -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x90c2564b si476x_core_stop -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x94b6e389 si476x_core_cmd_intb_pin_cfg -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x99587a97 si476x_core_cmd_fm_phase_div_status -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9a9e1a84 si476x_core_cmd_ic_link_gpo_ctl_pin_cfg -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa125d7fa si476x_core_has_diversity -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa4b547cf si476x_core_is_a_secondary_tuner -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xaaf94564 si476x_core_cmd_fm_phase_diversity -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xac6a7cdf si476x_core_cmd_fm_rds_blockcount -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc8640d3d devm_regmap_init_si476x -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xca5f3b70 si476x_core_is_powered_up -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xcae16bb1 si476x_core_cmd_fm_rds_status -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd17f7f93 si476x_core_cmd_fm_acf_status -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe1556ea3 si476x_core_set_power_state -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xea6c7ddc si476x_core_cmd_power_up -EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x53462486 sm501_misc_control -EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x833f7749 sm501_set_clock -EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x9a0d60dc sm501_find_clock -EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xc80d81f1 sm501_unit_power -EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd82ab8e5 sm501_modify_reg -EXPORT_SYMBOL_GPL drivers/mfd/stmfx 0x053d6444 stmfx_function_disable -EXPORT_SYMBOL_GPL drivers/mfd/stmfx 0xc27f0c30 stmfx_function_enable -EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x2f73775d am335x_tsc_se_set_once -EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x32269969 am335x_tsc_se_set_cache -EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0xb94e93ac am335x_tsc_se_adc_done -EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0xb981e8ff am335x_tsc_se_clr -EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x550e0407 tps65217_reg_write -EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x9f79feaf tps65217_set_bits -EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xaca28af9 tps65217_reg_read -EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xbf4cf219 tps65217_clear_bits -EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x2cff0c78 tps65218_set_bits -EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x3c35eaa1 tps65218_clear_bits -EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x8d2c8a38 tps65218_reg_write -EXPORT_SYMBOL_GPL drivers/mfd/tps6594-core 0x84d6aabd tps6594_is_volatile_reg -EXPORT_SYMBOL_GPL drivers/mfd/tps6594-core 0xe33c9896 tps6594_device_init -EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x15a8fd20 alcor_read8 -EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x302ab6bb alcor_write32be -EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x3559b6ea alcor_read32 -EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x4c67bdba alcor_write16 -EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x713b38b3 alcor_write8 -EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0xccdacb4f alcor_read32be -EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0xf802282e alcor_write32 -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x09ca5e9a rtsx_pci_send_cmd -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x1b8b5cc1 rtsx_pci_card_power_on -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x1fc5eac1 rtsx_pci_write_register -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x2c709772 rtsx_pci_card_exclusive_check -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x2d3e92f8 rtsx_pci_dma_transfer -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x434dfa10 rtsx_pci_switch_clock -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x565f6aac rtsx_pci_card_pull_ctl_disable -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x59b67518 rtsx_pci_read_phy_register -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x63b51612 rtsx_pci_write_phy_register -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x6451aae8 rtsx_pci_add_cmd -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x801b5aba rtsx_pci_card_pull_ctl_enable -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x8568cdfe rtsx_pci_dma_unmap_sg -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x85f50678 rtsx_pci_switch_output_voltage -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x8e561df9 rtsx_pci_read_register -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x9f15cc99 rtsx_pci_dma_map_sg -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xa4a4f9ee rtsx_pci_card_power_off -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xa7398087 rtsx_pci_send_cmd_no_wait -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xb7f0eaba rtsx_pci_card_exist -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xe238d98b rtsx_pci_complete_unfinished_transfer -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xe5241245 rtsx_pci_write_ppbuf -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xec38a76f rtsx_pci_read_ppbuf -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xf4c3c6e2 rtsx_pci_start_run -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xf63683a9 rtsx_pci_stop_cmd -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xfd9844c2 rtsx_pci_transfer_data -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x08b84385 rtsx_usb_get_rsp -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x13c8e5d5 rtsx_usb_get_card_status -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x36221795 rtsx_usb_write_register -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x38553e98 rtsx_usb_transfer_data -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x4cd800e0 rtsx_usb_send_cmd -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x4e861100 rtsx_usb_ep0_write_register -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x515441cb rtsx_usb_read_register -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x5e03e2f0 rtsx_usb_write_ppbuf -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x739ecd7c rtsx_usb_add_cmd -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x7583f90e rtsx_usb_ep0_read_register -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x824e576e rtsx_usb_switch_clock -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xca7745a2 rtsx_usb_read_ppbuf -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xf4aa849f rtsx_usb_card_exclusive_check -EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x12c23836 cb710_pci_update_config_reg -EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x4f32b918 cb710_sg_dwiter_read_next_block -EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xa63edae9 cb710_set_irq_handler -EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xeac6d1fa cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/mfd/rk8xx-core 0x1b0d7f9a rk8xx_probe +EXPORT_SYMBOL_GPL drivers/mfd/rk8xx-core 0x1de8b950 rk8xx_resume +EXPORT_SYMBOL_GPL drivers/mfd/rk8xx-core 0xa7f4806a rk8xx_suspend +EXPORT_SYMBOL_GPL drivers/mfd/rk8xx-core 0xc0143b99 rk8xx_shutdown +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x20a42a29 si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x225299b0 si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x24e5bf38 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2505d22a si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x286c2d7b si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2c9d6f72 si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x32409106 si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x32902568 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3895d280 si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x46b47de7 si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x50eb3659 si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x5e8f26ab si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x621ee59e si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x66cda718 si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6b28bffa si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x883d5898 si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x902ae665 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x971d1ac2 si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x98efece3 si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9a3b82ca si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa3318d0e si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb4045d7d si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb6212e33 si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xbb078e20 si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xcc72a66b si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd0dc290a si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd102b4a5 si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd5019333 si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe07c2f2b si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe25198b2 si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe2c69b22 si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf113819a si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf6487318 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf81a2e12 si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x2f6a4631 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x462cbc91 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x686ff435 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xc68577c4 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf2c4542e sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/stmfx 0x93adbfe2 stmfx_function_enable +EXPORT_SYMBOL_GPL drivers/mfd/stmfx 0xc38e60ce stmfx_function_disable +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x02c0e693 am335x_tsc_se_set_once +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x6cc9fccf am335x_tsc_se_set_cache +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x74ba780a am335x_tsc_se_adc_done +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0xeba37cec am335x_tsc_se_clr +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x5b5160e5 tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x6a7f6f8b tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xc5318e29 tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xeb054961 tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x1799e154 tps65218_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x9bf77a08 tps65218_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0xebb71acc tps65218_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps6594-core 0x2b14891f tps6594_device_init +EXPORT_SYMBOL_GPL drivers/mfd/tps6594-core 0xae04e527 tps6594_is_volatile_reg +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x42082f6e alcor_write8 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x7e0f4093 alcor_read32be +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x931906b0 alcor_write32be +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0xbeedd910 alcor_write32 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0xd5d2635d alcor_write16 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0xddf6ad20 alcor_read32 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0xecea87d8 alcor_read8 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x049f5aa2 rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x13ab7a8f rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x13c4e8ca rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x27b22762 rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x33983dfc rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x3db9b569 rtsx_pci_dma_transfer +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x3fd509d3 rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x469fb32e rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x6052a388 rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x697b7b3b rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x72169570 rtsx_pci_dma_map_sg +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x813cf8f5 rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x85b912d3 rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x8fe25f4c rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x930a20d1 rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x9be44fa8 rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xa6fc9fa3 rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xafb3a8f2 rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xb6b70d90 rtsx_pci_dma_unmap_sg +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xc1741737 rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xcdd260ba rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xd612eca7 rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xd81750e4 rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xda0fd9e9 rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x1cd703e0 rtsx_usb_transfer_data +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x27793a93 rtsx_usb_get_rsp +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x342618b0 rtsx_usb_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x3951f229 rtsx_usb_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x3f574c1d rtsx_usb_write_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x4538b1e8 rtsx_usb_ep0_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x561fffb7 rtsx_usb_switch_clock +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x745e54be rtsx_usb_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x913827da rtsx_usb_read_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xd11b8d60 rtsx_usb_send_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xda18be9c rtsx_usb_ep0_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xe87c7784 rtsx_usb_get_card_status +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xf31eee2e rtsx_usb_add_cmd +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x07b7f902 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x0a487bfb cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x3991d050 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x3ba63c49 cb710_sg_dwiter_write_next_block EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x0b008db0 oslec_hpf_tx EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x296a8983 oslec_update EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x3115970d oslec_create @@ -13885,2786 +13904,2787 @@ EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x884deb9d eeprom_93cx6_read EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0xc9c6bb25 eeprom_93cx6_readb EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0xff7a0fdf eeprom_93cx6_multiread -EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x220feb25 enclosure_find -EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x2703cbf8 enclosure_remove_device -EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x5065faba enclosure_component_register -EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x93b50591 enclosure_unregister -EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xd0ff6dbc enclosure_register -EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xd353fd41 enclosure_for_each_device -EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xd5aa5177 enclosure_component_alloc -EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xd7e4e14f enclosure_add_device -EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x58885d2b lis3lv02d_init_dt -EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x5cff0aba lis3_dev -EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x73334403 lis3lv02d_poweron -EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7c0ae753 lis3lv02d_joystick_disable -EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x8f276602 lis3lv02d_remove_fs -EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xc1c52422 lis3lv02d_poweroff -EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xccec468e lis3lv02d_init_device -EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xcd38f747 lis3lv02d_joystick_enable -EXPORT_SYMBOL_GPL drivers/misc/pvpanic/pvpanic 0x8a4bb12f devm_pvpanic_probe +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x06921876 enclosure_component_alloc +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x213510ce enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x2a61e0ff enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x50f69065 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x851bfdc1 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xba5a1f3f enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xc7fc38da enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xf6282326 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x0903bf27 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x25247859 lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xbd2ad81d lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xc5414aef lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xd454fb65 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xe37f1283 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xf0cd4c09 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xf1563ced lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/pvpanic/pvpanic 0xa1dd8fcf devm_pvpanic_probe EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x7a67653c st_register EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xf1f33992 st_unregister -EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0x9cf191f0 uacce_remove -EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0xc60c74bc uacce_alloc -EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0xcaa396dc uacce_register -EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0x4564c01e dw_mci_pltfm_register -EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0x5922fe50 dw_mci_pltfm_pmops -EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0x9d5f4565 dw_mci_pltfm_remove -EXPORT_SYMBOL_GPL drivers/mmc/host/mmc_hsq 0x06f919f3 mmc_hsq_init -EXPORT_SYMBOL_GPL drivers/mmc/host/mmc_hsq 0x47b76a45 mmc_hsq_resume -EXPORT_SYMBOL_GPL drivers/mmc/host/mmc_hsq 0xb162a318 mmc_hsq_finalize_request -EXPORT_SYMBOL_GPL drivers/mmc/host/mmc_hsq 0xf51d3d60 mmc_hsq_suspend -EXPORT_SYMBOL_GPL drivers/mmc/host/renesas_sdhi_core 0xe5fd87e0 renesas_sdhi_remove -EXPORT_SYMBOL_GPL drivers/mmc/host/renesas_sdhi_core 0xecbfbee2 renesas_sdhi_probe -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x0daf15c0 sdhci_enable_v4_mode -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x0f0e2802 sdhci_setup_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x135e4364 sdhci_runtime_resume_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x14b85b69 sdhci_adma_write_desc -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x21646eb3 sdhci_cqe_disable -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2465fa14 sdhci_request -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2d9ec02c sdhci_start_tuning -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2f346836 sdhci_execute_tuning -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x3c4dee26 sdhci_set_data_timeout_irq -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x401d0ea0 sdhci_end_tuning -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x46360cb1 sdhci_abort_tuning -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x480d3e02 __sdhci_add_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x56bdc414 sdhci_reset_tuning -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x60867d08 sdhci_alloc_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x624e282b __sdhci_set_timeout -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x68293f0c sdhci_cleanup_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6a70b2ff sdhci_cqe_enable -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x720257e4 sdhci_request_atomic -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x72bb3b51 sdhci_runtime_suspend_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x75d7fd07 sdhci_enable_sdio_irq -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8b73ce37 sdhci_start_signal_voltage_switch -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x920ea2ad sdhci_get_cd_nogpio -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x96a6c220 sdhci_enable_clk -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9bce2471 sdhci_set_clock -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9e16cd13 sdhci_set_power_noreg -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9ecaad7d sdhci_calc_clk -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9f4fc141 sdhci_remove_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa3c8335b sdhci_add_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa4564c08 sdhci_resume_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb7e1082a sdhci_set_power -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbf2e68c8 sdhci_set_uhs_signaling -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd06fcda8 sdhci_switch_external_dma -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd0d8bd5d sdhci_cqe_irq -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd1fe3235 __sdhci_read_caps -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd8349648 sdhci_set_bus_width -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe0edfe4d sdhci_set_power_and_bus_voltage -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe2759241 sdhci_set_ios -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe66b4134 sdhci_send_tuning -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xee36ae46 sdhci_free_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf12b4a6d sdhci_reset -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf460e93c sdhci_suspend_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf83a699d sdhci_dumpregs -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x43f97b1a sdhci_pltfm_unregister -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x91f064ad sdhci_pltfm_pmops -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xa0864dc7 sdhci_pltfm_resume -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xac92019f sdhci_pltfm_suspend -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xc6c00d9c sdhci_pltfm_register -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xea441562 sdhci_pltfm_free -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xeb2c9360 sdhci_pltfm_clk_get_max_clock -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xf4c3dde4 sdhci_get_property -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xff2321fa sdhci_pltfm_init -EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x0e3a2151 tmio_mmc_host_remove +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0x105f5570 uacce_alloc +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0x5e386693 uacce_register +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0xd24d1434 uacce_remove +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0x26f95cd2 dw_mci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0x392cea31 dw_mci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0x61606d5c dw_mci_pltfm_remove +EXPORT_SYMBOL_GPL drivers/mmc/host/mmc_hsq 0xa57f48da mmc_hsq_init +EXPORT_SYMBOL_GPL drivers/mmc/host/mmc_hsq 0xb0093fe3 mmc_hsq_suspend +EXPORT_SYMBOL_GPL drivers/mmc/host/mmc_hsq 0xde258fed mmc_hsq_resume +EXPORT_SYMBOL_GPL drivers/mmc/host/mmc_hsq 0xf5e69a0e mmc_hsq_finalize_request +EXPORT_SYMBOL_GPL drivers/mmc/host/renesas_sdhi_core 0x731f281a renesas_sdhi_remove +EXPORT_SYMBOL_GPL drivers/mmc/host/renesas_sdhi_core 0xa8331d53 renesas_sdhi_probe +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x009f4e04 sdhci_cqe_enable +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x0d37104b sdhci_abort_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x0fc138c8 sdhci_set_ios +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x152bc8b2 sdhci_send_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x19ac099c sdhci_get_cd_nogpio +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1bcf836f sdhci_switch_external_dma +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x22c77c0a sdhci_adma_write_desc +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2998b06d sdhci_start_signal_voltage_switch +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2c2fb8d0 sdhci_enable_v4_mode +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x310a524c sdhci_set_bus_width +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x349bd7a3 sdhci_cleanup_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x384272b6 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x3b78dc58 sdhci_cqe_disable +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5bd045a9 __sdhci_set_timeout +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5c7382a9 sdhci_reset +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5e9be4c3 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6215147b sdhci_execute_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x62fb71b3 __sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6501c554 sdhci_cqe_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6f071a3b sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6faaa86d sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x7774105a sdhci_request_atomic +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x78b8d0e7 sdhci_start_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x7e0a9975 sdhci_set_power_noreg +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8b01c785 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x93d29f70 sdhci_dumpregs +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x95bc2da9 sdhci_set_power_and_bus_voltage +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9960ecb3 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xadfdbd94 sdhci_set_uhs_signaling +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb31b7137 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb38ce69d sdhci_set_power +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb7913909 sdhci_enable_clk +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xba4e9b47 sdhci_set_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc7db6673 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xcdbf9de2 __sdhci_read_caps +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd3e5efcf sdhci_request +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xdce71124 sdhci_end_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe43ec57f sdhci_setup_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xef08336b sdhci_set_data_timeout_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf001768c sdhci_enable_sdio_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xfcba5f4c sdhci_calc_clk +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xfd73d50f sdhci_reset_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x01440522 sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x0d4fc848 sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x149c8c43 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x1501f03a sdhci_get_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x2f6ad032 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x650ab523 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x669932f4 sdhci_pltfm_resume +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x91693deb sdhci_pltfm_suspend +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xdd4f5ab4 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x0686e3cb tmio_mmc_host_alloc +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x367a957c tmio_mmc_enable_mmc_irqs EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x378f2335 tmio_mmc_irq -EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x384a35ce tmio_mmc_host_alloc -EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x497d5cf7 tmio_mmc_host_probe -EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x6167a02d tmio_mmc_host_free -EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x65c7a701 tmio_mmc_do_data_irq -EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x74b8157c tmio_mmc_host_runtime_suspend -EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0xa64ffbf4 tmio_mmc_enable_mmc_irqs -EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0xbb7d246b tmio_mmc_disable_mmc_irqs -EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0xda620f57 tmio_mmc_host_runtime_resume -EXPORT_SYMBOL_GPL drivers/most/most_core 0x0e068504 most_resume_enqueue -EXPORT_SYMBOL_GPL drivers/most/most_core 0x1b103f49 most_submit_mbo -EXPORT_SYMBOL_GPL drivers/most/most_core 0x23877349 most_start_channel -EXPORT_SYMBOL_GPL drivers/most/most_core 0x3196ce99 most_stop_channel -EXPORT_SYMBOL_GPL drivers/most/most_core 0x3273db9d most_stop_enqueue -EXPORT_SYMBOL_GPL drivers/most/most_core 0x484d743d most_register_configfs_subsys -EXPORT_SYMBOL_GPL drivers/most/most_core 0x5d95e3d5 most_register_interface -EXPORT_SYMBOL_GPL drivers/most/most_core 0x5f337aad most_put_mbo -EXPORT_SYMBOL_GPL drivers/most/most_core 0xa307f4e7 channel_has_mbo -EXPORT_SYMBOL_GPL drivers/most/most_core 0xa31b0aa9 most_register_component -EXPORT_SYMBOL_GPL drivers/most/most_core 0xa9804352 most_get_mbo -EXPORT_SYMBOL_GPL drivers/most/most_core 0xadb58d78 most_deregister_component -EXPORT_SYMBOL_GPL drivers/most/most_core 0xb590fc0a most_deregister_interface -EXPORT_SYMBOL_GPL drivers/most/most_core 0xbf94c47c most_deregister_configfs_subsys -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x1e558e2d cfi_cmdset_0001 -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x217cabc5 cfi_cmdset_0003 -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xdc628e53 cfi_cmdset_0200 -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x3ee83931 cfi_cmdset_0002 -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x40ba72e1 cfi_cmdset_0006 -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xcd11f6b7 cfi_cmdset_0701 -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xaf2f5fb6 cfi_cmdset_0020 -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x09bba20c cfi_qry_mode_on -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x3584466f cfi_qry_mode_off -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x62606517 cfi_qry_present -EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0x223d15fc hyperbus_unregister_device -EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0x6b844b0c hyperbus_register_device -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0673dc56 get_tree_mtd -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x07868737 unregister_mtd_user -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x07b2b15e get_mtd_device -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x11f3273d mtd_get_user_prot_info -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x17af3ab8 mtd_ooblayout_get_databytes -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x183ff5d4 mtd_lock_user_prot_reg -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1a2b5e4b mtd_ooblayout_count_freebytes -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1cff96a4 of_get_mtd_device_by_node -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1e262a56 __mtd_next_device -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x222bc41b mtd_write -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x22b3350d __put_mtd_device -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x247ca907 __register_mtd_parser -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x285eaedf mtd_block_isbad -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2a64e294 mtd_is_locked -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2f2d3dd9 register_mtd_user -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3caf2f7d mtd_writev -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3e08b8ce mtd_read_fact_prot_reg -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x47fbf013 mtd_ooblayout_count_eccbytes -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4a4c8f85 mtd_erase -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4cca04a0 mtd_kmalloc_up_to -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4f98ce9c mtd_read -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x527212a4 mtd_pairing_info_to_wunit -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x52e5cbf4 mtd_point -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x571b2622 mtd_ooblayout_get_eccbytes -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x67dc6b45 kill_mtd_super -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x72e5afd7 mtd_get_unmapped_area -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x775eb3d1 get_mtd_device_nm -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x77d75280 mtd_lock -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7d5fd2f6 mtd_erase_user_prot_reg -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7e8f08ec mtd_pairing_groups -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7fb67544 mtd_device_unregister -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x83c54cbc mtd_get_device_size -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x88cd31f8 mtd_ooblayout_set_databytes -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8c0c392e mtd_read_user_prot_reg -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8fcddc59 mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x4a3f5d32 tmio_mmc_host_probe +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x64de9312 tmio_mmc_host_remove +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x995ad795 tmio_mmc_host_free +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0xa817f9d8 tmio_mmc_host_runtime_suspend +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0xd6bc0640 tmio_mmc_host_runtime_resume +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0xf4fde486 tmio_mmc_do_data_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0xfc4d3f1b tmio_mmc_disable_mmc_irqs +EXPORT_SYMBOL_GPL drivers/most/most_core 0x0a8fd462 most_register_interface +EXPORT_SYMBOL_GPL drivers/most/most_core 0x0cf7d3d3 most_submit_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x17f71405 most_stop_channel +EXPORT_SYMBOL_GPL drivers/most/most_core 0x295a8e53 most_resume_enqueue +EXPORT_SYMBOL_GPL drivers/most/most_core 0x4230c5ad channel_has_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x521fadd0 most_put_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x758de9d4 most_deregister_interface +EXPORT_SYMBOL_GPL drivers/most/most_core 0x97a95b91 most_register_configfs_subsys +EXPORT_SYMBOL_GPL drivers/most/most_core 0xa0c4d49d most_register_component +EXPORT_SYMBOL_GPL drivers/most/most_core 0xc97bdfce most_start_channel +EXPORT_SYMBOL_GPL drivers/most/most_core 0xdeb9cf99 most_stop_enqueue +EXPORT_SYMBOL_GPL drivers/most/most_core 0xe0c75d15 most_deregister_component +EXPORT_SYMBOL_GPL drivers/most/most_core 0xf5ee89d8 most_get_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0xfd48d606 most_deregister_configfs_subsys +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x12f78028 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xd0c08056 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xefe9a5be cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x0384f8cc cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x8e2f7c9a cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xf07d374a cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x61ba51cd cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x85d4c628 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x9b6d3faa cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xae153ea6 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0x063bfa24 hyperbus_register_device +EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0xaaa600ce hyperbus_unregister_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x01fcbbf9 mtd_write_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x04896519 mtd_pairing_info_to_wunit +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x08076485 mtd_ooblayout_get_eccbytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0cf15ecd mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x10cdef4d deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x19d5d5cc mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1ab4a39c mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x22f387b3 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x23ae099f mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2ea9749b get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2fac8cc9 mtd_ooblayout_find_eccregion +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x308cae22 mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x33733b29 mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x35c5a86a mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x35e02bc2 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4733419f mtd_ooblayout_get_databytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x473a3c86 mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x48098c29 mtd_pairing_groups +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4a236cbd mtd_erase_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4a4ee60b __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x518fc0b2 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5b764d55 mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5b819550 of_get_mtd_device_by_node +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x68d55033 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6f4a6dab mtd_ooblayout_set_eccbytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x78c88352 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7d24d594 mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x81d73573 mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x843943c9 mtd_wunit_to_pairing_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x882696a6 mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x895fa543 mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8bc14a65 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x90619c0d mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9bc93968 mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9c632ed3 mtd_add_partition EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9cab128b mtd_table_mutex -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xac300970 put_mtd_device -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xae8f5bf7 mtd_write_oob -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb14bc1c4 mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa1cd5256 mtd_block_isreserved +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa247dfa5 mtd_ooblayout_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa3ab3f4d register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa5c8597f mtd_ooblayout_free +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa8965cda unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xaa4d35ad mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xad6f94fb kill_mtd_super EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb7075882 mtd_check_expert_analysis_mode -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc22ab678 mtd_unlock -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc94a8c96 mtd_ooblayout_find_eccregion -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcaabe954 mtd_ooblayout_set_eccbytes -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcd915f72 mtd_unpoint -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd477e56e mtd_add_partition -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd6d14417 mtd_block_markbad -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd6df6a15 mtd_ooblayout_free -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd95f87af mtd_write_user_prot_reg -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd9ab4383 mtd_ooblayout_ecc -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xda893ea8 __get_mtd_device -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdc4f2443 mtd_del_partition -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe17996bf mtd_panic_write -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xee5ba09b deregister_mtd_parser -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf28b124d mtd_device_parse_register -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfaeec1cd mtd_wunit_to_pairing_info -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfe4c8a1f mtd_block_isreserved -EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x887a03d3 register_mtd_blktrans -EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x9737bae2 mtd_blktrans_cease_background -EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x98419373 add_mtd_blktrans_dev -EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd8374476 deregister_mtd_blktrans -EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xe737bb59 del_mtd_blktrans_dev -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x017066bf nand_get_large_page_hamming_ooblayout -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x1e2dcd06 nanddev_cleanup -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x2dee48bf nand_ecc_cleanup_req_tweaking -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x4b6a6774 nanddev_ecc_engine_cleanup -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x52945d90 nanddev_markbad -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x60e841c7 mxic_ecc_put_pipelined_engine -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x68638f03 nanddev_isreserved -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x73636197 nanddev_bbt_set_block_status -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x7d7a0a18 nand_get_small_page_ooblayout -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x81c80327 mxic_ecc_process_data_pipelined -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x81e4cbad nanddev_bbt_get_block_status -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x96fd87bd nanddev_bbt_init -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xa3d380c5 nand_get_large_page_ooblayout -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xb533cf89 mxic_ecc_get_pipelined_ops -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xb55da691 mxic_ecc_get_pipelined_engine -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xb6126af0 nanddev_ecc_engine_init -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xbc31b5c7 nand_ecc_init_req_tweaking -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xd19d03eb nanddev_init -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xd9b04501 nanddev_bbt_update -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xda2dc557 nanddev_bbt_cleanup -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xdb734f46 nand_ecc_tweak_req -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xdb9bbcd9 nand_ecc_restore_req -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xdf185ec2 nanddev_isbad -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xe64767cf nanddev_mtd_max_bad_blocks -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xf8d77109 nanddev_mtd_erase -EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0x28ec9d3d onenand_release -EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0x8d807468 onenand_scan -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/denali 0x3912f0b8 denali_chip_init -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x0e6faf62 nand_write_data_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x0f743b88 nand_read_oob_op +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbc9fe836 mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbd058b7d __register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbd1b6edf mtd_ooblayout_set_databytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcd2ecbf7 mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd4762fe1 mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdd423b4a mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe05d900f put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe3e8ad18 mtd_ooblayout_count_eccbytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe62be1a7 mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe6622567 mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfdae761f get_tree_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfff6f021 mtd_ooblayout_count_freebytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x7c57735f deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xac7e23b2 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xaf65bb7b del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xbef562a9 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd5d92bf4 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x1e3e02fc nanddev_bbt_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x1fe5a7c7 mxic_ecc_put_pipelined_engine +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x3b4d6c77 mxic_ecc_get_pipelined_ops +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x3be0f10c nanddev_isbad +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x4592cf7c nanddev_isreserved +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x50bd5df2 nanddev_bbt_update +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x50e5468b nanddev_bbt_get_block_status +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x519ad992 nand_ecc_init_req_tweaking +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x5266e73b nanddev_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x5284f969 mxic_ecc_process_data_pipelined +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x5c2c9865 nand_get_small_page_ooblayout +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x680468b5 nand_get_large_page_hamming_ooblayout +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x7f189290 nanddev_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x7f27c41c mxic_ecc_get_pipelined_engine +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x828512b8 nand_get_large_page_ooblayout +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x9ab58436 nanddev_bbt_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xa022d9a9 nanddev_ecc_engine_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xa3a39b6f nanddev_markbad +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xa6d26f66 nand_ecc_tweak_req +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xc5b357f5 nanddev_bbt_set_block_status +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xc8c3464a nand_ecc_cleanup_req_tweaking +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xca82b935 nanddev_ecc_engine_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xcd692068 nanddev_mtd_max_bad_blocks +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xcd92af36 nand_ecc_restore_req +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xfb34090b nanddev_mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0x20d0df0d onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0xd3a3c158 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/denali 0xef3d046e denali_chip_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x09a33218 nand_read_page_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x0e9d5863 nand_read_page_hwecc_oob_first EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x11091291 nand_extract_bits -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x18164b62 nand_select_target +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x11e63843 nand_erase_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x15db274e nand_deselect_target +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x19152c1d nand_prog_page_op EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x2d368c4c nand_subop_get_addr_start_off -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x33cf04d3 nand_status_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x4ad873fd nand_change_write_column_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x2d44f518 nand_gpio_waitrdy +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x32c84ede nand_read_oob_op EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x5632e63d nand_subop_get_num_addr_cyc -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x6380873d nand_ecc_choose_conf -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x6a191a93 nand_cleanup -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x6f38b1a1 nand_wait_ready -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x74f0f9ec nand_decode_ext_id -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x7ccf5704 nand_change_read_column_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x8445ea04 nand_op_parser_exec_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x8d0e9af9 nand_read_data_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x8da39b22 nand_deselect_target -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x94e132ea nand_erase_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x958a3820 nand_soft_waitrdy -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x99e36916 nand_read_page_hwecc_oob_first -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xaa278051 nand_prog_page_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xba940789 nand_readid_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xc44e35f9 nand_reset -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xd1bfde89 nand_prog_page_begin_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x69f89a9a nand_readid_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x75bf3705 nand_status_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x76e0c2dd nand_prog_page_begin_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x7c6c73a3 nand_prog_page_end_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x801ebc7f nand_select_target +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x84356401 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x9aa0eea3 nand_op_parser_exec_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xb8d32c82 nand_change_write_column_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xc23278f6 nand_read_data_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xc35172bc nand_reset_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xd1a67f12 nand_ecc_choose_conf EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xd3c672b8 nand_subop_get_data_len EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xd41ff2ac nand_subop_get_data_start_off -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xd93499bf nand_prog_page_end_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xdde629ca nand_read_page_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xe03ecac9 nand_gpio_waitrdy -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xe357cc33 nand_reset_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/sm_common 0x6a475197 sm_register_device -EXPORT_SYMBOL_GPL drivers/mtd/spi-nor/spi-nor 0x24d52704 spi_nor_scan -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1d352041 ubi_open_volume_nm -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x31d2b0ce ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xdcfb5ee2 nand_decode_ext_id +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xed692f6f nand_reset +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xef273079 nand_soft_waitrdy +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xf78b445b nand_write_data_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xf7f2eba0 nand_change_read_column_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xffade2a4 nand_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/sm_common 0x7c8a126d sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/spi-nor/spi-nor 0xb7a3011d spi_nor_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x03203fff ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x29a9dd33 ubi_close_volume EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5528933e ubi_get_volume_info -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x58f58d87 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x51407b08 ubi_leb_read EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x66011ab6 ubi_get_device_info -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x69f0711d ubi_leb_map -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6b2ae4ec ubi_leb_read_sg -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6d7c580c ubi_leb_change -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7215ff14 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7783bf52 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x84a17373 ubi_open_volume_nm EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8b88e1a2 ubi_is_mapped -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8e7ec586 ubi_leb_write -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa890f117 ubi_close_volume -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc9422f33 ubi_leb_erase -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd348c506 ubi_leb_read -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe6541b53 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8b5cfb0b ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8fd0c6e5 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9aa285e4 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa22a2387 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb38796dc ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdcf7d00d ubi_leb_read_sg +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe76769cd ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xeed3b256 ubi_get_volume_info EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf7a0dfee ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x0236af52 devm_mux_state_get EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x0a65c89f mux_state_try_select_delay -EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x14da20fe devm_mux_control_get -EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x1e218b62 mux_control_select_delay -EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x23f007c9 devm_mux_state_get -EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x251f7996 devm_mux_chip_register -EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x367a0492 mux_control_get -EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x3ed850cc mux_chip_alloc -EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x4feb8d49 mux_chip_register -EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x6493e7d0 mux_chip_free -EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7b2f2b7b mux_control_deselect +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x0ad3d1e5 mux_control_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x109ef280 mux_chip_free +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x1cde03f0 mux_chip_alloc +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x20fda9e7 mux_control_deselect +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x35fe9a36 devm_mux_chip_register EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7cf08396 mux_state_deselect -EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xa93e575a mux_control_states -EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xbda6d37d mux_control_put -EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xef15aba3 mux_control_try_select_delay -EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xef5be9b3 devm_mux_chip_alloc -EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xf0095416 mux_chip_unregister +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x8ac4d1cf mux_control_try_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xbb5bfb75 devm_mux_control_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xc665c0f7 mux_chip_register +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xeb117dea mux_control_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xeb840cdd mux_control_states +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xf10d26ea devm_mux_chip_alloc +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xf19632b6 mux_chip_unregister EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xfa76e911 mux_state_select_delay -EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0x23bd3371 devm_arcnet_led_init -EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0xd987823f arcnet_led_event -EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x21e40bf7 unregister_c_can_dev -EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x59e15b8a alloc_c_can_dev -EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x5a6a3f22 c_can_power_down -EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x6cbc9e36 register_c_can_dev -EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x8f19214e c_can_power_up -EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x999071df free_c_can_dev -EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x1963d160 alloc_cc770dev -EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x3c6b0c64 free_cc770dev -EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x86933748 register_cc770dev -EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xc3074fb4 unregister_cc770dev -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x04c4471d open_candev -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x0678dc7d register_candev -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x09ef1b2a can_rx_offload_irq_finish -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x0bc7aca2 can_put_echo_skb -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x0d563353 can_bus_off -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x0f24b833 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xfe051a8b mux_control_put +EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0x00ff3cee arcnet_led_event +EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0x8845e61a devm_arcnet_led_init +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x06054631 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x11e9f988 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x5636fc94 c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x729f1eaa alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xaa0a90d4 register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xc7097d83 c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x37550cd6 unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x4b77dd2f register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x551b1b5b free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xd5635aff alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x08c2b4b8 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x0bb75cdc can_free_echo_skb EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x10d892eb can_get_state_str -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x2410e7d0 of_can_transceiver -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x342ed780 unregister_candev -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x37e214ec can_change_state -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x3bda5c26 can_rx_offload_add_manual -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x4b1a76e3 can_rx_offload_add_fifo -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x5c19f74e alloc_can_skb -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x5c3a31ed alloc_candev_mqs +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x19bed96a safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x2050a936 can_rx_offload_threaded_irq_finish +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x26186f29 can_rx_offload_del +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x2fc00c81 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x34577a36 can_rx_offload_add_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x3eabeea8 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x3fc3e337 can_rx_offload_queue_tail +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x45a6131d alloc_canxl_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x4981d2a0 can_rx_offload_irq_offload_fifo +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x547d15d1 of_can_transceiver +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x57d03e2d unregister_candev EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x6047ede6 can_fd_len2dlc -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x6460e583 can_change_mtu -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x85e8110b can_get_echo_skb -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x907e85dd alloc_canfd_skb -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xa04ad5a3 can_rx_offload_enable -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xa1834196 can_rx_offload_get_echo_skb -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xa1f31acd close_candev -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xa3d1832a can_rx_offload_queue_tail -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xabc8df40 can_rx_offload_irq_offload_timestamp -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xb811a704 alloc_can_err_skb -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xb9465c11 free_candev -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xbde73a4e can_rx_offload_threaded_irq_finish -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xc54d3ccc can_rx_offload_queue_timestamp -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xc5807d13 alloc_canxl_skb -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xc99f3b3f can_rx_offload_irq_offload_fifo -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xca910f96 can_dropped_invalid_skb -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xe2534740 can_rx_offload_add_timestamp -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xee3c3b30 can_rx_offload_del +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x6473deaa can_rx_offload_queue_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x68a661b6 can_rx_offload_add_manual +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7a5a51cb alloc_candev_mqs +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x84655a02 can_rx_offload_enable +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x86ee9671 can_rx_offload_irq_finish +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x9c3f03a5 can_rx_offload_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xa2d889af can_change_mtu +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xae4be6e0 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xaf49a12a can_change_state +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xb0b9ca13 can_rx_offload_add_fifo +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xb1a2fe60 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xb7a147ec open_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xc7554d48 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xcb28852a can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xcb9afaf1 can_skb_get_frame_len +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xd2cbcf98 can_rx_offload_irq_offload_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xd37fac93 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xe1d5e463 can_dropped_invalid_skb EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xf12d9387 can_fd_dlc2len -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xf9cc4c49 safe_candev_priv -EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xfc322c07 can_skb_get_frame_len -EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x26ff4b1d m_can_class_resume -EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x9895d793 m_can_class_unregister -EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0xa6cc6c24 m_can_class_allocate_dev -EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0xca0c68f3 m_can_init_ram -EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0xcb34e066 m_can_class_register -EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0xdc1c8d21 m_can_class_suspend -EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0xe7347c14 m_can_class_get_clocks -EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0xf9d6b3ae m_can_class_free_dev -EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x25973370 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xf325c1ae alloc_canfd_skb +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x3fdb16c9 m_can_class_suspend +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x486c70b4 m_can_class_unregister +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x54c8b9ce m_can_class_get_clocks +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x7012f5de m_can_init_ram +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x88207525 m_can_class_register +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x9153e4d7 m_can_class_allocate_dev +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x9e825cba m_can_class_free_dev +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0xf20888a7 m_can_class_resume +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x29946031 alloc_sja1000dev EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt -EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x4b7a1929 free_sja1000dev -EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xa527604c alloc_sja1000dev -EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xc340215b register_sja1000dev -EXPORT_SYMBOL_GPL drivers/net/dsa/lan9303-core 0xf56912a7 lan9303_indirect_phy_ops -EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_switch 0x71a4494d ksz_switch_chips -EXPORT_SYMBOL_GPL drivers/net/dsa/mt7530 0x0417465d mt7530_switch_ops -EXPORT_SYMBOL_GPL drivers/net/dsa/mt7530 0x24832277 mt7530_remove_common -EXPORT_SYMBOL_GPL drivers/net/dsa/mt7530 0xc5215a18 mt7530_probe_common -EXPORT_SYMBOL_GPL drivers/net/dsa/mt7530 0xec2e9860 mt753x_table -EXPORT_SYMBOL_GPL drivers/net/dsa/ocelot/mscc_felix_dsa_lib 0x1fe8eee7 felix_netdev_to_port -EXPORT_SYMBOL_GPL drivers/net/dsa/ocelot/mscc_felix_dsa_lib 0x2ed013cc felix_switch_ops -EXPORT_SYMBOL_GPL drivers/net/dsa/ocelot/mscc_felix_dsa_lib 0x820e8de0 felix_port_to_netdev -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8365mb 0xac4caad9 rtl8365mb_variant -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x0416693b rtl8366_mc_is_used -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x2f26f57b rtl8366_vlan_del -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x4bd6a4f7 rtl8366_get_strings -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x4cb98ea5 rtl8366_enable_vlan4k -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x697c5aac rtl8366_reset_vlan -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x8f89c609 rtl8366_get_sset_count -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x9907c5dc rtl8366_vlan_add -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x9f5786d1 rtl8366_set_pvid -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xa13c9791 rtl8366_enable_vlan -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xa72868c6 rtl8366_set_vlan -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xd208f459 rtl8366_get_ethtool_stats -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xe6dc4824 rtl8366rb_variant -EXPORT_SYMBOL_GPL drivers/net/ethernet/amd/pds_core/pds_core 0x40204e97 pds_client_unregister +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x907cc112 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x9d82c09d free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xa4d60586 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/dsa/lan9303-core 0x7d63458a lan9303_indirect_phy_ops +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_switch 0xad8e6ef8 ksz_switch_chips +EXPORT_SYMBOL_GPL drivers/net/dsa/mt7530 0x23b3b0d2 mt7530_probe_common +EXPORT_SYMBOL_GPL drivers/net/dsa/mt7530 0x26abea0c mt753x_table +EXPORT_SYMBOL_GPL drivers/net/dsa/mt7530 0xd481f718 mt7530_remove_common +EXPORT_SYMBOL_GPL drivers/net/dsa/mt7530 0xe6a2be6f mt7530_switch_ops +EXPORT_SYMBOL_GPL drivers/net/dsa/ocelot/mscc_felix_dsa_lib 0x19c6dc35 felix_netdev_to_port +EXPORT_SYMBOL_GPL drivers/net/dsa/ocelot/mscc_felix_dsa_lib 0x9aa06cd4 felix_port_to_netdev +EXPORT_SYMBOL_GPL drivers/net/dsa/ocelot/mscc_felix_dsa_lib 0xcaa32726 felix_switch_ops +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8365mb 0x7f2c1ab9 rtl8365mb_variant +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x15cdd32d rtl8366_reset_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x18da8dd0 rtl8366_vlan_add +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x1f1de83f rtl8366_enable_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x2bde8ad3 rtl8366_enable_vlan4k +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x35bcf844 rtl8366rb_variant +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x4aaf2360 rtl8366_vlan_del +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x4b818c07 rtl8366_get_sset_count +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x59ff32e7 rtl8366_get_ethtool_stats +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x82193eda rtl8366_get_strings +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xa2a3971c rtl8366_set_pvid +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xbd95bd55 rtl8366_set_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xf3e8722b rtl8366_mc_is_used +EXPORT_SYMBOL_GPL drivers/net/ethernet/amd/pds_core/pds_core 0x16637cee pdsc_get_pf_struct +EXPORT_SYMBOL_GPL drivers/net/ethernet/amd/pds_core/pds_core 0x394a620a pds_client_register EXPORT_SYMBOL_GPL drivers/net/ethernet/amd/pds_core/pds_core 0x45b87b4f pdsc_register_notify -EXPORT_SYMBOL_GPL drivers/net/ethernet/amd/pds_core/pds_core 0x8f62a94f pdsc_get_pf_struct -EXPORT_SYMBOL_GPL drivers/net/ethernet/amd/pds_core/pds_core 0x9c529300 pdsc_adminq_post -EXPORT_SYMBOL_GPL drivers/net/ethernet/amd/pds_core/pds_core 0x9f0c0d9d pds_client_register -EXPORT_SYMBOL_GPL drivers/net/ethernet/amd/pds_core/pds_core 0xac333662 pds_client_adminq_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/amd/pds_core/pds_core 0xb1d643ca pds_client_adminq_cmd EXPORT_SYMBOL_GPL drivers/net/ethernet/amd/pds_core/pds_core 0xce714617 pdsc_unregister_notify -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x018f4bac liquidio_setup_io_queues -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x0e23ae15 octeon_setup_sc_buffer_pool -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x0e6ada82 octeon_free_sc_done_list -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x0f5aaf8a octeon_get_rx_qsize -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x13b3eb8a octnet_send_nic_data_pkt -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x15678176 octeon_allocate_device -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x1833825b octeon_pci_write_core_mem +EXPORT_SYMBOL_GPL drivers/net/ethernet/amd/pds_core/pds_core 0xe7eb011f pds_client_unregister +EXPORT_SYMBOL_GPL drivers/net/ethernet/amd/pds_core/pds_core 0xefbd58e8 pdsc_adminq_post +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x00cc699a liquidio_set_feature +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x0f78f99a octeon_free_device_mem +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x1578841b liquidio_set_ethtool_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x16d1a780 octeon_register_dispatch_fn +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x17837f22 octeon_get_tx_qsize EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x19cb4e69 liquidio_link_ctrl_cmd_completion -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x1d678250 octeon_get_tx_qsize -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x1f807bc7 octeon_droq_check_hw_for_pkts -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x1f8e6626 octeon_setup_output_queues -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x22f692cb lio_wait_for_clean_oq +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x1bc9f725 octeon_init_dispatch_list EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x241a2a6c lio_fetch_stats -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x2693b0fb octeon_send_command -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x2c22355a lio_enable_irq -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x2c983c58 liquidio_set_ethtool_ops -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x381b3e62 octeon_setup_response_list -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x39fcbc3e octeon_send_soft_command -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x42905551 octeon_unregister_droq_ops -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x48feff36 octeon_deregister_device -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x4b67ebf0 octeon_free_device_mem -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x58340bac lio_get_device -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x5a1105f5 octeon_register_reqtype_free_fn -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x5dd56aa1 octeon_set_io_queues_off -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x6167919b cn23xx_setup_octeon_vf_device -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x62249b3c octeon_register_device +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x25a5a15c lio_process_iq_request_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x28c69624 octeon_free_soft_command +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x2c125b11 octeon_read_device_mem64 +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x2ca8a2a6 octeon_free_sc_done_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x36ab3391 octeon_send_command +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x38927843 cn23xx_setup_octeon_vf_device +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x3e0bf7da octeon_alloc_soft_command +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x3f80c843 octeon_free_ioq_vector +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x4010fad8 octeon_setup_output_queues +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x4662967e octnet_send_nic_data_pkt +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x48a81ac2 cn23xx_vf_ask_pf_to_do_flr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x4bff85cb lio_enable_irq +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x4cccd727 octeon_register_device +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x5c785ce2 lio_get_device +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x68a98bcb octeon_allocate_ioq_vector +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x69be0f1a cn23xx_tell_vf_its_macaddr_changed EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x6d0d28ef octeon_init_device_list -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x6f412b7e octeon_delete_droq -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x6f6a08d6 octeon_init_dispatch_list -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x6ff01e1b octeon_read_device_mem64 -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x70f1612e octeon_setup_instr_queues -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x7af457c4 octeon_delete_dispatch_list -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x7fe5e0de lio_setup_glists -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x82a1c427 lio_delete_glists -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x830dbfcf octeon_get_conf -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x837d4b7e lio_process_ordered_list -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x84c518dd octeon_delete_instr_queue -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x84cc8134 octeon_mem_access_ok -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x863f4e72 lio_pci_readq -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x86b20a90 octeon_setup_interrupt -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x886d7571 cn23xx_fw_loaded -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x89f5234c liquidio_get_fec -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x8f21cfb3 octeon_free_sc_zombie_list -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x906e0ea5 octeon_prepare_soft_command -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x91bec894 cleanup_rx_oom_poll_fn -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xa0a8b28f cn23xx_octeon_pfvf_handshake -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xa18652f1 cn23xx_vf_ask_pf_to_do_flr -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xa1869762 octnet_send_nic_ctrl_pkt -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xa308a0be octeon_register_dispatch_fn -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xa8ffc4b5 lio_setup_cn66xx_octeon_device -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xad5354a4 octeon_delete_response_list -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xaeb2a570 setup_rx_oom_poll_fn -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xaf24937b liquidio_set_feature -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xb67832b3 octeon_free_ioq_vector -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xb9eb505f cn23xx_tell_vf_its_macaddr_changed -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xbe7efa27 octeon_wait_for_ddr_init -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xc14e55f7 setup_cn23xx_octeon_pf_device -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xc1f1b6f7 octeon_read_device_mem32 -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xc3dae5e8 octeon_free_sc_buffer_pool +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x6dad186e liquidio_setup_io_queues +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x6e0c9bdd octeon_allocate_device +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x6f29b369 octeon_register_reqtype_free_fn +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x733f5bf0 octeon_droq_check_hw_for_pkts +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x77f8ca01 octeon_mem_access_ok +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x798a2e7e setup_rx_oom_poll_fn +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x799ab81c octeon_setup_sc_buffer_pool +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x7dc24531 octeon_ring_doorbell_locked +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x83e77d89 octeon_get_rx_qsize +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x86441d65 octeon_set_io_queues_off +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x87bfc328 octeon_wait_for_ddr_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x88f5a030 lio_setup_glists +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x8f461d57 octeon_free_sc_buffer_pool +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x9118a832 lio_delete_glists +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x91cdf8e2 liquidio_change_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x9631363b octeon_prepare_soft_command +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x9afd6c77 octeon_pci_read_core_mem +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0x9ce1246d cn23xx_octeon_pfvf_handshake +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xa22647b3 octeon_delete_response_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xa3a0b744 octeon_alloc_soft_command_resp +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xba3c2202 octeon_deregister_device +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xba46df57 octeon_pci_write_core_mem +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xbc43bcf3 lio_wait_for_clean_oq +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xbd173d50 octnet_send_nic_ctrl_pkt +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xc63b0bc7 lio_pci_writeq EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xc6abc5b1 octeon_core_drv_init -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xc828ce89 octeon_alloc_soft_command -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xc8c65290 octeon_alloc_soft_command_resp -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xc9b98033 lio_process_iq_request_list -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xd2388e9d liquidio_get_speed -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xd3bf64fa octeon_droq_process_packets -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xd42b2b59 octeon_pci_read_core_mem -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xd7537652 octeon_free_soft_command -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xd7fb5f1b cn23xx_get_vf_stats -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xd8e42c82 octeon_write_device_mem32 -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xe2653608 octeon_allocate_ioq_vector +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xca19c3c1 lio_pci_readq +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xca53b530 cn23xx_get_vf_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xcba164e5 octeon_delete_dispatch_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xcd90ccf8 lio_setup_cn68xx_octeon_device +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xd54abe42 lio_process_ordered_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xd6d8dc95 octeon_setup_interrupt +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xd70e006a cn23xx_fw_loaded +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xdc8e8d94 lio_wait_for_instr_fetch +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xdec60183 liquidio_get_speed +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xe3170b34 octeon_setup_response_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xe6d2560d liquidio_get_fec +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xe74d2ba9 octeon_setup_instr_queues +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xe8d8fc17 octeon_send_soft_command EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xec7f00a5 lio_get_state_string -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xedc98dc8 liquidio_change_mtu -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xf385407d lio_wait_for_instr_fetch -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xf888939e lio_setup_cn68xx_octeon_device -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xf9b08626 lio_pci_writeq -EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xfbb5ed65 octeon_ring_doorbell_locked -EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x022fb201 fun_cq_create -EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x1bcaeeb4 fun_get_res_count -EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x39854ed8 fun_res_destroy -EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x68a8f495 fun_sq_create -EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x691e893b fun_serv_restart -EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x83bcdf20 fun_serv_stop -EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x9fa14161 fun_free_ring_mem -EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xb4d0d385 fun_bind -EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xcde99ae7 fun_submit_admin_sync_cmd -EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xd08e3c61 fun_serv_sched -EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xf3957106 fun_alloc_ring_mem -EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/i40e/i40e 0x3cc0932c i40e_client_device_unregister -EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/i40e/i40e 0xe6343adb i40e_client_device_register -EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x0cbf9622 ice_rdma_request_reset -EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x35bf6f24 ice_add_rdma_qset -EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x847bcb60 ice_get_qos_params -EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x94c9cae1 ice_rdma_update_vsi_filter -EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0xb78fba7f ice_del_rdma_qset -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00396edb mlx4_mtt_init -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00649a98 mlx4_replace_zero_macs -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x01199e44 mlx4_cq_modify -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x033c9d2f mlx4_CLOSE_PORT -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x038638bf mlx4_wol_read -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x07c2a4fc mlx4_set_vf_rate -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0829fc1f mlx4_uar_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x08ad0896 mlx4_phys_to_slave_port -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x08ecf5b5 mlx4_srq_query -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0b243104 mlx4_vf_set_enable_smi_admin -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0b4785d4 mlx4_vf_smi_enabled -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0db6a809 mlx4_unregister_mac -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x108cd86e mlx4_hw_rule_sz -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13ea336c mlx4_mtt_addr -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18adb63d mlx4_register_vlan -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1bff4eb8 mlx4_vf_get_enable_smi_admin -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c2a5b24 mlx4_get_counter_stats -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1da84e78 mlx4_db_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f404623 mlx4_unicast_detach -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2004c8c7 mlx4_register_interface -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x203a0c37 mlx4_get_internal_clock_params -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x20a2025b mlx4_port_map_set -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x20c93091 mlx4_FLOW_STEERING_IB_UC_QP_RANGE -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x211d1ff1 mlx4_bond -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x242f31a2 mlx4_free_cmd_mailbox -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x27153e95 mlx4_counter_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ace9d0d mlx4_uar_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2e853308 mlx4_update_qp -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3039d3a1 mlx4_srq_arm -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x35c7d8ae mlx4_multicast_detach -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x36f06698 mlx4_mr_hw_change_access -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3770137a mlx4_qp_query -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a940d8a mlx4_slave_convert_port -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a98ac2e mlx4_mr_hw_put_mpt -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f18d9df mlx4_unregister_vlan -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x431ea01a mlx4_get_default_counter_index -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x43a69372 mlx4_set_vf_vlan -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x43dbfdb4 mlx4_flow_steer_promisc_remove -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x48e31a8a mlx4_qp_modify -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49c4409f mlx4_unregister_interface -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4af93654 mlx4_srq_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4c03dc4a mlx4_phys_to_slaves_pport_actv -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4c23a8e3 mlx4_flow_attach -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5292b3a2 mlx4_free_hwq_res -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x580b0fb9 mlx4_mw_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x584225ae __mlx4_cmd -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5ca814a6 mlx4_srq_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5d69490f __mlx4_unregister_mac -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5fd87706 mlx4_alloc_cmd_mailbox -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x632118e5 mlx4_get_protocol_dev -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6463b9f5 mlx4_bf_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x67460fe0 mlx4_get_slave_default_vlan -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x67bebf20 mlx4_mr_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x72e191c7 mlx4_qp_reserve_range -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x732b6404 mlx4_set_vf_mac -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7347b8c2 __mlx4_replace_mac -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x770b5c92 mlx4_qp_to_ready -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7becd5c6 mlx4_counter_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7c1b3a0e mlx4_cq_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7e1ee5e1 mlx4_unbond -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fa1a517 mlx4_mr_hw_change_pd -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8152802f mlx4_SYNC_TPT -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x848b2126 mlx4_set_vf_link_state -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8663c639 mlx4_mw_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x86b17fbb mlx4_get_base_qpn -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x87ed62c3 mlx4_mr_rereg_mem_write -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x888e4cfb mlx4_flow_detach -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8c0b3a46 mlx4_qp_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8c774bbe mlx4_buf_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e1037d1 mlx4_config_roce_v2_port -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e53a25c mlx4_qp_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x923f2068 mlx4_mr_enable -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a58c78c mlx4_find_cached_vlan -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9aae5a81 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xedb3a26e octeon_delete_instr_queue +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xee189b1a octeon_unregister_droq_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xee5de150 octeon_get_conf +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xf13286c8 setup_cn23xx_octeon_pf_device +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xf1e92c2c cleanup_rx_oom_poll_fn +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xf30bca09 octeon_droq_process_packets +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xf5dbb48e lio_setup_cn66xx_octeon_device +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xf71d2365 octeon_delete_droq +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xf9a82c4d octeon_write_device_mem32 +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xfa542738 octeon_read_device_mem32 +EXPORT_SYMBOL_GPL drivers/net/ethernet/cavium/liquidio/liquidio-core 0xfe86e8e7 octeon_free_sc_zombie_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x05664b08 fun_free_ring_mem +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x0c03f0a3 fun_cq_create +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x151d28ea fun_bind +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x159867c3 fun_get_res_count +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x2c3b6225 fun_sq_create +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x2c7aff4a fun_serv_restart +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x6d232eb7 fun_serv_stop +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x804e3a60 fun_submit_admin_sync_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x878286a2 fun_serv_sched +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x9fb88b24 fun_res_destroy +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xda84c8a6 fun_alloc_ring_mem +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/i40e/i40e 0x5e85e3ce i40e_client_device_register +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/i40e/i40e 0xf0674337 i40e_client_device_unregister +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x0ce1e33b ice_rdma_request_reset +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x40ce8a5f ice_del_rdma_qset +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x533b7320 ice_add_rdma_qset +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x7449204a ice_get_qos_params +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0xb9f7ed6c ice_rdma_update_vsi_filter +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x001937a1 mlx4_set_vf_rate +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0065604b mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x009dcbc7 __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x057bcfa4 mlx4_mr_hw_change_access +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a690f3c mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0b38a49f mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f0bc38c mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f97fb35 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x14133b0d mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x146ae6f6 mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x161f5afa mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1629b2fa mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1adbc2fa mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f659714 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2037d9a9 mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x21e90d23 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b6efc56 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c2cb6bf mlx4_mr_hw_get_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31d2477b mlx4_get_counter_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x32380a1b mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3330ec8c mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x35744dfa mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x368ea720 mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x36c71ead mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x37944d47 mlx4_get_admin_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x37d1e006 mlx4_get_devlink_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x395eb355 mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3b2063f7 mlx4_mr_rereg_mem_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3d2ff0c4 mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f7222c0 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3fb77d2f mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x417b6ab2 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4262e40d mlx4_mr_rereg_mem_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x43ce4103 mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x44a6308f mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4583eee7 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x46bab6b1 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49290ffe mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4c7a2437 mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4e94e3a9 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f17c162 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5065cb4e mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x529116d3 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x53cd0cae mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5620160b mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5a040a07 mlx4_get_internal_clock_params +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5a53d6f0 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5b5423e3 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f1ca59e mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6110269a mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x612462cd mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x61df56f8 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x63a405b9 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x63fa17a6 mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x674aa56c mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x68624552 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6c37ff58 mlx4_get_default_counter_index +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6cc20bba mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d54843a mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x73e6c8ab mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78c0f8d0 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x814b8bd6 mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x82eadbc4 __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x84f314af mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x85eb667a mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x89795960 mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x89ce37a3 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92a09070 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9425eb83 mlx4_vf_get_enable_smi_admin +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x95a2b92f mlx4_vf_set_enable_smi_admin +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x96ae6b00 mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x96c493f3 mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x991c1bea mlx4_mr_hw_put_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a456d15 mlx4_slave_convert_port EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9d08e1c8 mlx4_put_qp -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9e3cbfe7 mlx4_set_vf_spoofchk -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa60f8933 mlx4_get_vf_stats -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa7444796 mlx4_qp_release_range -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xab252810 mlx4_flow_steer_promisc_add -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xad1b7703 mlx4_srq_lookup -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaf8d5460 mlx4_buf_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xafc9e4ed mlx4_ACCESS_PTYS_REG -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb398f2bd mlx4_read_clock -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb63f0268 mlx4_map_sw_to_hw_steering_id -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb7cf4edb mlx4_phys_to_slaves_pport -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb83ab2d2 __mlx4_register_mac -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb94fc607 mlx4_get_base_gid_ix -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb98964f4 mlx4_mr_hw_get_mpt -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd742681 mlx4_get_admin_guid -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc046a34a mlx4_pd_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc2994416 mlx4_multicast_promisc_add -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4c4a732 mlx4_write_mtt -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4dc73ec mlx4_cq_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc50bb0b7 mlx4_pd_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc762f3f2 mlx4_set_admin_guid -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc81a4367 mlx4_get_devlink_port -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc8efc6c4 mlx4_register_mac -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc8d1081 mlx4_multicast_promisc_remove -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd223cefc mlx4_mr_rereg_mem_cleanup -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd23bd326 mlx4_alloc_hwq_res -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3e5f00a mlx4_map_sw_to_hw_steering_mode -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd423ce86 mlx4_INIT_PORT -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd64beee6 mlx4_cq_resize -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdb3a07a2 mlx4_mw_enable -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdc6dd728 mlx4_find_cached_mac -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdca6d9a8 mlx4_bf_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe72fa076 mlx4_get_vf_config -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe92a12e0 mlx4_mr_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xea832c0d mlx4_db_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf11f822c mlx4_xrcd_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf22abc84 mlx4_mr_hw_write_mpt -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf405162f mlx4_xrcd_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf53c09ed mlx4_config_vxlan_port -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf5b7a5fa mlx4_config_dev_retrieval -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf754921b mlx4_unicast_attach -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf976f302 mlx4_get_active_ports -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf999765c mlx4_multicast_attach -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf9dd7287 mlx4_buf_write_mtt -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfca7c683 mlx4_unicast_promisc_add -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfe551f4e mlx4_mtt_cleanup -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfefacda5 mlx4_wol_write -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff818dc6 mlx4_unicast_promisc_remove -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x01f8121c mlx5_set_port_tc_group -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x031a1b6d mlx5_query_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9f28f9d5 mlx4_replace_zero_macs +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9f767bcc mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa12062c3 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa41d0a3d mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa669dfee mlx4_config_roce_v2_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa7111068 __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaca6716f mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4f63879 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb755ee6a mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb79e5b11 mlx4_get_vf_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb7fd094c mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbb6fb9dd mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbbeee516 mlx4_port_map_set +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbda12f71 mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbef7b30f mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc1cd28db mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc2c220f4 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc55068d5 mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc63557e0 mlx4_mr_hw_write_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcd62ee68 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3e92a6d mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd9f65b0d mlx4_bond +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xda6fd78c mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdbea670b mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdf8be2d1 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdff95688 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2196fc4 mlx4_set_admin_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2da46a9 mlx4_config_dev_retrieval +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe313a8da mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6d2cbe6 mlx4_unbond +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe9d224b1 mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xec1ffe69 mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xec3c092a mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xed5ab98b mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xedf2f722 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf1c9ea91 mlx4_vf_smi_enabled +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf39683e1 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf412ba3b mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf58b0df4 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf80f814c mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf9034713 mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf9b37963 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfa61c10c mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfc17c94a mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd706ae7 mlx4_mr_hw_change_pd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfed364ee mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff8ba643 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0029c51a mlx5_db_alloc_node +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x03dfe960 mlx5_set_port_pause EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x072460c4 mlx5_fill_page_frag_array -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0ed1244f mlx5_frag_buf_alloc_node -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x12f92cad mlx5_frag_buf_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a63dea1 mlx5_set_port_caps -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1f0a8b65 mlx5_db_alloc_node -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x236b9198 mlx5_query_nic_vport_mac_list -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2be871be mlx5_set_port_admin_status -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2da36caf mlx5_dm_sw_icm_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x309f7666 mlx5_query_port_admin_status -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3d77e8fc mlx5_vport_get_other_func_cap -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e9d395b mlx5_core_access_reg -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x421a34d5 mlx5_core_query_sq_state -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4347fd0a mlx5_core_modify_hca_vport_context -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x436a0c1e mlx5_query_nic_vport_promisc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x438fbfb5 mlx5_query_nic_vport_qkey_viol_cntr -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x439918bf mlx5_ipsec_device_caps -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x48973633 mlx5_modify_nic_vport_vlans -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x49b87f03 mlx5_modify_port_ets_rate_limit -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4cc113ea mlx5_query_hca_vport_system_image_guid -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4fc9eb8e mlx5_query_port_ets_rate_limit -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5421456a mlx5_query_port_vl_hw_cap -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x57f1e37d mlx5_modify_nic_vport_mtu -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ec95cb8 mlx5_query_module_eeprom -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ff08add mlx5_set_port_tc_bw_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6384ba5d mlx5_query_nic_vport_mtu -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x64ea6d17 mlx5_query_nic_system_image_guid -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x760001c9 mlx5_modify_nic_vport_mac_list -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7848c88f mlx5_query_hca_vport_node_guid -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7efb0ad0 mlx5_set_port_pause +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x095ae047 mlx5_query_hca_vport_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x104756aa mlx5_query_port_prio_tc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x11d7326f mlx5_nic_vport_update_local_lb +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1304873b mlx5_query_port_oper_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1b455669 mlx5_query_port_ptys +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1cce9fb1 mlx5_query_port_admin_status +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1e44c2ea mlx5_core_query_vport_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2acca64f mlx5_eswitch_get_total_vports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e4c0d7e mlx5_query_nic_vport_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x334dfd7f mlx5_core_query_sq_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x35a2a000 mlx5_query_port_vl_hw_cap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3cfc3f6e mlx5_nic_vport_affiliate_multiport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x41eb0f48 mlx5_modify_nic_vport_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4a42ec15 mlx5_query_port_wol +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ba0b624 mlx5_frag_buf_alloc_node +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4cb345f6 mlx5_query_nic_vport_mac_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d536314 mlx5_core_reserved_gids_count +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4db741ea mlx5_modify_nic_vport_mac_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c74ebff mlx5_set_port_tc_bw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x61eced3a mlx5_query_hca_vport_node_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x64386ab2 mlx5_query_port_ets_rate_limit +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x65371037 mlx5_modify_nic_vport_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x67fed218 mlx5_set_port_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6b150554 mlx5_vport_get_other_func_cap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6c7e1016 mlx5_query_nic_vport_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6f1525b8 mlx5_set_port_tc_group +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ffcf923 mlx5_query_port_max_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7445a55a mlx5_query_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7716b94e mlx5_set_port_wol +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7c757e16 mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7dd68095 mlx5_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7f80c12d mlx5_nic_vport_enable_roce EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81aadc6a mlx5_fill_page_frag_array_perm -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8be0fd57 mlx5_query_port_tc_group -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8ea74050 mlx5_query_port_pause -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x90189b44 mlx5_nic_vport_update_local_lb -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x92c83234 mlx5_eswitch_get_total_vports -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9a13a0d4 mlx5_set_port_pfc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d7ca9d0 mlx5_eswitch_mode -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa8ad7a99 mlx5_nic_vport_enable_roce -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa96dc463 mlx5_query_nic_vport_system_image_guid -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab506a0a mlx5_query_port_pfc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xac17c41e mlx5_core_reserved_gids_count -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb28a19a5 mlx5_query_min_inline -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbe99fb7f mlx5_nic_vport_query_local_lb -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc0ca62c0 mlx5_query_port_max_mtu -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc2800d1c mlx5_query_hca_vport_context -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc300537f mlx5_query_port_tc_bw_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc6adb568 mlx5_query_nic_vport_mac_address -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcaca5f53 mlx5_modify_nic_vport_mac_address -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xceee578e mlx5_query_hca_vport_gid -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd2ca2876 mlx5_set_port_mtu -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd72168d4 mlx5_query_nic_vport_min_inline -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd9a054db mlx5_nic_vport_unaffiliate_multiport -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdeeb5745 mlx5_set_port_wol -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdf14257a mlx5_query_port_wol -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe27f14b2 mlx5_db_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe349d621 mlx5_query_nic_vport_node_guid -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe3851643 mlx5_nic_vport_affiliate_multiport -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe432842c mlx5_set_port_prio_tc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xee7430c9 mlx5_toggle_port_link -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeeaa59d0 mlx5_query_module_eeprom_by_page -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef64b4ed mlx5_modify_nic_vport_promisc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf201f6dd mlx5_query_port_ptys -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf2222b59 mlx5_query_port_oper_mtu -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf22b308c mlx5_core_query_vport_counter -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf4437420 mlx5_query_hca_vport_pkey -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfd1deb94 mlx5_query_port_prio_tc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfd26353c mlx5_access_reg -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe7c9496 mlx5_dm_sw_icm_dealloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x5ba31e1d ks8851_resume -EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x5e671212 ks8851_remove_common -EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x642b5772 ks8851_probe_common -EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x655823e6 ks8851_suspend +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8284fb4f mlx5_set_port_pfc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84d9514c mlx5_modify_port_ets_rate_limit +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8aaa57c6 mlx5_query_port_tc_group +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x95484042 mlx5_query_module_eeprom +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x97f42dcd mlx5_query_port_pause +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa513fcae mlx5_query_nic_vport_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb35d5e29 mlx5_ipsec_device_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb43efdeb mlx5_core_modify_hca_vport_context +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbc2b0fbc mlx5_query_nic_vport_qkey_viol_cntr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbe1b3d22 mlx5_query_hca_vport_gid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbe3637d3 mlx5_query_hca_vport_pkey +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbfac6918 mlx5_set_port_prio_tc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc1daaf6f mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc6146e3d mlx5_dm_sw_icm_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc7a1c213 mlx5_query_port_tc_bw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xca0a9c88 mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd09ad0a0 mlx5_query_hca_vport_context +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd2219407 mlx5_dm_sw_icm_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd38061d6 mlx5_query_nic_vport_promisc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd5c73192 mlx5_nic_vport_query_local_lb +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd5f5a349 mlx5_query_port_pfc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd750f7b4 mlx5_frag_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdfe47341 mlx5_query_nic_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe0403ef2 mlx5_modify_nic_vport_vlans +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe1a8cabf mlx5_nic_vport_unaffiliate_multiport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe51a114a mlx5_toggle_port_link +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe64b20d0 mlx5_eswitch_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeaa6485e mlx5_query_nic_vport_min_inline +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf2463cb4 mlx5_query_nic_vport_node_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf7d7b9e4 mlx5_set_port_admin_status +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfcfbcfe3 mlx5_modify_nic_vport_promisc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfd8cf4d1 mlx5_query_min_inline +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff21a936 mlx5_query_module_eeprom_by_page +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x240639cf ks8851_probe_common +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x73f370f5 ks8851_remove_common +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x84608628 ks8851_resume +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x9f31a60c ks8851_suspend +EXPORT_SYMBOL_GPL drivers/net/ethernet/microchip/encx24j600-regmap 0xbee9067c devm_regmap_init_encx24j600 EXPORT_SYMBOL_GPL drivers/net/ethernet/microchip/encx24j600-regmap 0xcc4fa41a regmap_encx24j600_spi_write EXPORT_SYMBOL_GPL drivers/net/ethernet/microchip/encx24j600-regmap 0xe8c8c6c2 regmap_encx24j600_spi_read -EXPORT_SYMBOL_GPL drivers/net/ethernet/microchip/encx24j600-regmap 0xef003dbd devm_regmap_init_encx24j600 -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x04a69de4 ocelot_port_rmwl -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x06567a36 ocelot_bond_get_id -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x06c5d7b4 ocelot_port_get_mm_stats -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x09292833 ocelot_port_mirror_add -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0fbe4f02 ocelot_mm_irq -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x118d3c98 ocelot_port_unassign_dsa_8021q_cpu -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1aa124a0 __ocelot_bulk_read_ix -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x27961cd6 ocelot_port_get_dscp_prio -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2885739f ocelot_phylink_mac_link_up -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2890a612 ocelot_port_get_eth_mac_stats -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x34bc77e5 __ocelot_write_ix -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x35a7451d ocelot_regmap_init -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3bb42eeb ocelot_port_get_eth_phy_stats -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x51a308d0 ocelot_phylink_mac_config -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x52473617 ocelot_port_get_eth_ctrl_stats -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5bef7d81 ocelot_mact_flush -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5fdc4319 ocelot_port_assigned_dsa_8021q_cpu_mask -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x64e87b58 ocelot_migrate_mdbs -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x71a9d990 ocelot_regfields_init -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x752e97e5 ocelot_lag_fdb_del -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x88ef2a31 ocelot_port_add_dscp_prio -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x891b330b ocelot_port_mirror_del -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x8984b039 ocelot_port_configure_serdes -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9a7b8062 ocelot_port_readl -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa07912a3 ocelot_lag_fdb_add -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa2f80664 ocelot_get_bridge_fwd_mask -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa3b62c2c ocelot_port_get_default_prio -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa897e263 ocelot_port_get_rmon_stats -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa9b0bc89 ocelot_cls_flower_stats -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xac022b0d ocelot_port_teardown_dsa_8021q_cpu -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xad13b127 ocelot_cls_flower_destroy -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb406cb62 ocelot_port_get_pause_stats -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbd11f55b ocelot_port_set_default_prio -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbe4e8421 ocelot_cls_flower_replace -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc4b3ea07 ocelot_port_set_mm -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xca789f94 ocelot_bridge_num_find -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xcba896ea ocelot_port_writel -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd2a54193 __ocelot_read_ix -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe2d08d95 ocelot_port_del_dscp_prio -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe3b50d3e ocelot_phylink_mac_link_down -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe728dd8b ocelot_port_setup_dsa_8021q_cpu -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xf240dd4d ocelot_port_mqprio -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xfb413a94 ocelot_port_get_mm -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xfc0c87b7 __ocelot_rmw_ix -EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xfc1ef81a ocelot_port_assign_dsa_8021q_cpu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x00d855fb ocelot_lag_fdb_del +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x048fdfec ocelot_cls_flower_replace +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x05923595 ocelot_port_mqprio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x099ca9ac ocelot_regfields_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0c8d30b6 ocelot_regmap_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0cdaa08b ocelot_phylink_mac_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0ed5fc59 ocelot_phylink_mac_link_up +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x155b0c14 ocelot_lag_fdb_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x16962c2c ocelot_port_get_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1849d068 ocelot_port_get_default_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x22ac31fc ocelot_bond_get_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x24f0089b ocelot_port_setup_dsa_8021q_cpu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3368e924 ocelot_port_teardown_dsa_8021q_cpu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3a678b92 ocelot_port_get_mm_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3aa10ed8 ocelot_phylink_mac_link_down +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3ad75ce4 ocelot_port_get_eth_phy_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x49b95b03 ocelot_port_set_default_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4a66b873 __ocelot_bulk_read_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4ae57865 ocelot_port_assigned_dsa_8021q_cpu_mask +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4b1f6e05 ocelot_port_add_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4bb0ad9a ocelot_port_del_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4c1fd968 ocelot_mact_flush +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x58429292 ocelot_port_mirror_del +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5a0e0f9c ocelot_port_writel +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5fe4eb7d ocelot_port_configure_serdes +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x662e6836 ocelot_port_rmwl +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x735ffc27 ocelot_port_get_eth_ctrl_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7ac48b63 ocelot_port_get_eth_mac_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x8475b3de ocelot_port_readl +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x93acfd66 __ocelot_rmw_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9b8b155b __ocelot_write_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9f96fd2b ocelot_cls_flower_destroy +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa151e64f ocelot_get_bridge_fwd_mask +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa25e1b8d ocelot_bridge_num_find +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa93007d8 ocelot_mm_irq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xad44382d ocelot_port_unassign_dsa_8021q_cpu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xad635af7 ocelot_port_get_rmon_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xae73bb46 ocelot_migrate_mdbs +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xaee34a16 ocelot_port_set_mm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb7db7762 ocelot_port_get_mm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd4d55fbe ocelot_port_assign_dsa_8021q_cpu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xde3f9904 __ocelot_read_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe7e49b09 ocelot_port_get_pause_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xec9fba81 ocelot_cls_flower_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xf627699b ocelot_port_mirror_add EXPORT_SYMBOL_GPL drivers/net/ethernet/qualcomm/qca_7k_common 0x0b28a9ad qcafrm_create_footer EXPORT_SYMBOL_GPL drivers/net/ethernet/qualcomm/qca_7k_common 0x2b6ddf3f qcafrm_fsm_decode EXPORT_SYMBOL_GPL drivers/net/ethernet/qualcomm/qca_7k_common 0x41da0375 qcafrm_create_header -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x35fcb1c7 stmmac_suspend -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x3aecc0d6 stmmac_dvr_probe -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x4f5d0aa7 stmmac_resume +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x04b03d1c stmmac_suspend +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x325adfe8 stmmac_dvr_probe EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x545572d4 stmmac_set_mac_addr -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x54c9a2ec stmmac_init_tstamp_counter -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x5b54128a stmmac_dvr_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x607f28d1 stmmac_init_tstamp_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x61e5a5f4 stmmac_resume EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb stmmac_get_mac_addr -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0xd031b2a8 stmmac_bus_clks_config -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x13a3d6b4 stmmac_pltfr_pm_ops -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x24953111 devm_stmmac_probe_config_dt -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x2898595d stmmac_pltfr_remove_no_dt -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x2c69c9d1 stmmac_probe_config_dt -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x3ad3aa7a stmmac_pltfr_probe -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x5aca5472 stmmac_remove_config_dt -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x98c79e69 devm_stmmac_pltfr_probe -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xa323e24e stmmac_pltfr_init -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xb61e843b stmmac_get_platform_resources -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xc9a5dccd stmmac_pltfr_remove -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xca99a92f stmmac_pltfr_exit -EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x543d1d64 w5100_remove -EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0xaab74821 w5100_ops_priv -EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0xbc599562 w5100_probe -EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0xe427f101 w5100_pm_ops -EXPORT_SYMBOL_GPL drivers/net/geneve 0x3d98b2a1 geneve_dev_create_fb -EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x1dfc7e6b ipvlan_count_rx -EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x2ca5e161 ipvlan_link_new -EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x5c6b66c5 ipvlan_link_setup -EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0xa57a90bd ipvlan_link_delete -EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0xed49454f ipvlan_link_register -EXPORT_SYMBOL_GPL drivers/net/macsec 0x76cbbaa8 macsec_pn_wrapped -EXPORT_SYMBOL_GPL drivers/net/macvlan 0x47d0c392 macvlan_common_newlink -EXPORT_SYMBOL_GPL drivers/net/macvlan 0x596694db macvlan_dellink -EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc43f81d9 macvlan_common_setup -EXPORT_SYMBOL_GPL drivers/net/macvlan 0xca0ffff1 macvlan_link_register -EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-i2c 0xbb5280c2 mdio_i2c_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x9c7ed767 stmmac_dvr_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0xe293fde7 stmmac_bus_clks_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x163b57ba devm_stmmac_pltfr_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x1c02d114 stmmac_pltfr_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x25d306c9 devm_stmmac_probe_config_dt +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x447d8313 stmmac_pltfr_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x46e03612 stmmac_probe_config_dt +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x877150c0 stmmac_pltfr_exit +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x964ae44b stmmac_get_platform_resources +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xaad9f068 stmmac_pltfr_remove_no_dt +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xdb39d242 stmmac_remove_config_dt +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xe1e49a55 stmmac_pltfr_pm_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xf6dc8f7f stmmac_pltfr_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x19792a05 w5100_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0xb0d5a732 w5100_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0xb7c61ab0 w5100_pm_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0xc23b245a w5100_ops_priv +EXPORT_SYMBOL_GPL drivers/net/geneve 0x5c1f684f geneve_dev_create_fb +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x4fa56018 ipvlan_link_delete +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x52a9a7d9 ipvlan_count_rx +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0xb9e73593 ipvlan_link_setup +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0xdce7b93b ipvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0xfafba3af ipvlan_link_new +EXPORT_SYMBOL_GPL drivers/net/macsec 0xe31909f6 macsec_pn_wrapped +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x0557222c macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x403bc88e macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x66c7ade3 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x76faf7bc macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-i2c 0x23047533 mdio_i2c_alloc EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-mux 0x6318757f mdio_mux_uninit -EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-mux 0xff80bd33 mdio_mux_init -EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-regmap 0x5a43bffd devm_mdio_regmap_register -EXPORT_SYMBOL_GPL drivers/net/pcs/pcs-lynx 0x896dbbb3 lynx_pcs_create_fwnode -EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x374746ee xpcs_get_interfaces -EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x48fd1cbb xpcs_create_mdiodev +EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-mux 0xf0b15b20 mdio_mux_init +EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-regmap 0xdf67a1bd devm_mdio_regmap_register +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs-lynx 0xc6398ea7 lynx_pcs_create_fwnode +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x86c21e7a xpcs_do_config EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x9b430bc5 xpcs_link_up -EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x9c3f9b63 xpcs_config_eee -EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0xab162a9e xpcs_destroy -EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0xb6bf4007 xpcs_get_an_mode -EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0xf3a9e6e0 xpcs_do_config -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x046ac132 bcm_phy_handle_interrupt -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x0a9e7e9a __bcm_phy_read_exp -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x19786540 __bcm_phy_modify_rdb -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x269a3733 bcm_phy_write_shadow -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x2a8016c8 bcm_phy_get_sset_count -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x32caeeb5 bcm_phy_enable_jumbo -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x331587da bcm_phy_config_intr -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x33bcb9fd bcm_phy_modify_exp -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x354f6bb8 bcm_phy_read_exp -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x3adf662d bcm_phy_cable_test_get_status_rdb -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x3ba058af bcm_phy_cable_test_start -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x429e4d7d bcm_phy_r_rc_cal_reset -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x501bacdf bcm_phy_ack_intr -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x529f44f3 bcm_phy_28nm_a0b0_afe_config_init -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x53be339c bcm_phy_enable_apd -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x54e359bb bcm_phy_read_shadow -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x660b68e5 bcm_phy_cable_test_get_status -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x6d5c1149 bcm_phy_write_rdb -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7ab814ca __bcm_phy_write_rdb -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7c065aae bcm_phy_cable_test_start_rdb -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x80f1feea bcm_phy_get_strings -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x84764252 bcm54xx_auxctl_read -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x8e417871 bcm_phy_get_wol +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0xb3d41f7e xpcs_config_eee +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0xb4820dd7 xpcs_destroy +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0xcbd9597f xpcs_create_mdiodev +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0xd2e5d2dc xpcs_get_an_mode +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0xe12918a5 xpcs_get_interfaces +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x0143219c bcm_phy_read_misc +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x031597aa bcm_phy_get_sset_count +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x063d1d15 bcm_phy_handle_interrupt +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x083a13a3 bcm_phy_set_wol +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x10afa571 bcm_phy_28nm_a0b0_afe_config_init +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x1176aaf0 bcm_phy_cable_test_get_status +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x122594fa bcm_phy_cable_test_start +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x1b492374 bcm_phy_write_shadow +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x219db756 bcm_phy_led_brightness_set +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x3207eb7f __bcm_phy_write_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x41c281e7 bcm_phy_config_intr +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x4289a7a9 bcm_phy_get_wol +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x453c6d14 bcm_phy_write_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x50703b52 bcm_phy_read_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x530130ae bcm_phy_get_strings +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x59697c40 bcm_phy_get_stats +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x6bee450c __bcm_phy_read_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x79ea9beb bcm_phy_cable_test_start_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7db35846 bcm_phy_downshift_get +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x80bb71aa bcm_phy_read_shadow +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x83556ca1 bcm_phy_write_misc +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x86523c50 __bcm_phy_modify_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x9294eb51 __bcm_phy_write_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x94b59e25 bcm_phy_set_eee EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xa0f0ddfd bcm_phy_wol_isr -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xaec6503b bcm_phy_write_misc -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xb1ea9e14 bcm_phy_downshift_set -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xb6bcd710 bcm_phy_downshift_get -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xbdf2a997 bcm_phy_set_wol -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xc907bbe3 bcm_phy_read_misc -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xca15d618 __bcm_phy_modify_exp -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xcb70e766 bcm_phy_set_eee -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xd1328daf bcm_phy_read_rdb -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xdb633d0c bcm_phy_led_brightness_set -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xe0d10aa5 bcm_phy_modify_rdb -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xe3a51128 bcm_phy_write_exp -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xe494d92b bcm_phy_get_stats -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xeee3988d __bcm_phy_read_rdb -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xf44114ab __bcm_phy_write_exp -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-ptp 0x0031ac48 bcm_ptp_probe -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-ptp 0xb7dee00d bcm_ptp_config_init +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xa35cc43c bcm_phy_modify_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xb003718d bcm_phy_enable_jumbo +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xcd794b3c __bcm_phy_modify_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xd9f29c8f bcm_phy_cable_test_get_status_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xdcd60ac8 bcm_phy_read_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xe5af6d3a bcm_phy_write_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xe6c52912 bcm_phy_ack_intr +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xe7487496 __bcm_phy_read_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xe79ac92e bcm54xx_auxctl_read +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xe877b350 bcm_phy_modify_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xedf95a3e bcm_phy_downshift_set +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xf23b3dac bcm_phy_enable_apd +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xfea408df bcm_phy_r_rc_cal_reset +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-ptp 0x3908d590 bcm_ptp_config_init +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-ptp 0x43c1102c bcm_ptp_probe EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-ptp 0xe54c4503 bcm_ptp_stop EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x08213956 phylink_ethtool_get_wol EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x12135396 phylink_mac_change EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x15c4e3e2 phylink_ethtool_set_pauseparam EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x16ca1a8a phylink_suspend +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x243044f9 phylink_of_phy_connect EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x2c8e28ee phylink_ethtool_get_eee -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x35498b31 phylink_create +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x2d31823e phylink_connect_phy EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x3abe6fe5 phylink_validate_mask_caps EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x4278d56a phylink_expects_phy -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x47747202 phylink_mii_c22_pcs_an_restart -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x4e596acc phylink_fwnode_phy_connect EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x57727285 phylink_ethtool_set_eee EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x59e0695d phylink_speed_down EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x5d0c4dcc phylink_speed_up +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x5d840dbe phylink_mii_c45_pcs_get_state EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x5dc19747 phylink_mii_c22_pcs_encode_advertisement -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x5f906f3e phylink_mii_c22_pcs_get_state EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x62104126 phylink_ethtool_set_wol +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x63127ad4 phylink_generic_validate EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x66e8b5b0 phylink_caps_to_linkmodes +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x6c5baf36 phylink_create EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x6fa426d2 phylink_ethtool_nway_reset EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x825c7340 phylink_get_eee_err +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x8546b9c0 phylink_fwnode_phy_connect EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x911fcd6c phylink_start +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x93834afd phylink_mii_c22_pcs_get_state EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x94299178 phylink_decode_usxgmii_word EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x9616a255 phylink_ethtool_ksettings_get EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x983276da phylink_disconnect_phy EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x9b652b6e phylink_resolve_c73 +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x9c4799f1 phylink_mii_c22_pcs_an_restart EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xa16449b4 phylink_ethtool_ksettings_set EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xb1b3f6ed phylink_mii_c22_pcs_decode_state +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xb5144aa9 phylink_mii_c22_pcs_config EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xc0a8f4be phylink_resume EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xc1d15a4c phylink_set_port_modes -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xca8c6d7d phylink_connect_phy EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xd2ef6a40 phylink_mii_ioctl EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xd903f419 phylink_get_capabilities EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xdcb0a2c0 phylink_stop -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xe81788d8 phylink_of_phy_connect EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xec02ebe0 phylink_init_eee -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xf1e21c18 phylink_mii_c45_pcs_get_state EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xf3083a1d phylink_destroy -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xf644f0f9 phylink_generic_validate EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xf8fe5642 phylink_ethtool_get_pauseparam -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xfe03c838 phylink_mii_c22_pcs_config -EXPORT_SYMBOL_GPL drivers/net/phy/smsc 0x26c0332d smsc_phy_set_tunable -EXPORT_SYMBOL_GPL drivers/net/phy/smsc 0x318a19c6 smsc_phy_config_intr -EXPORT_SYMBOL_GPL drivers/net/phy/smsc 0x3aead139 smsc_phy_config_init -EXPORT_SYMBOL_GPL drivers/net/phy/smsc 0x7eb62fe4 smsc_phy_get_tunable -EXPORT_SYMBOL_GPL drivers/net/phy/smsc 0x9b3edb6e lan87xx_read_status -EXPORT_SYMBOL_GPL drivers/net/phy/smsc 0xacba7cc6 smsc_phy_probe -EXPORT_SYMBOL_GPL drivers/net/phy/smsc 0xfa1e85f8 smsc_phy_handle_interrupt -EXPORT_SYMBOL_GPL drivers/net/tap 0x26e3f8aa tap_get_minor -EXPORT_SYMBOL_GPL drivers/net/tap 0x314cdb5a tap_get_socket -EXPORT_SYMBOL_GPL drivers/net/tap 0x3a9a71ab tap_create_cdev -EXPORT_SYMBOL_GPL drivers/net/tap 0x4f80be8e tap_destroy_cdev -EXPORT_SYMBOL_GPL drivers/net/tap 0x8636b4e2 tap_queue_resize -EXPORT_SYMBOL_GPL drivers/net/tap 0x93be5629 tap_get_ptr_ring -EXPORT_SYMBOL_GPL drivers/net/tap 0xaa49c30c tap_handle_frame -EXPORT_SYMBOL_GPL drivers/net/tap 0xc026d2d0 tap_del_queues -EXPORT_SYMBOL_GPL drivers/net/tap 0xc38aa282 tap_free_minor -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x2166e12b usbnet_cdc_unbind -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x24f64575 usbnet_cdc_status -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x92e6ebb4 usbnet_cdc_zte_rx_fixup -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xa3f26cf4 usbnet_ether_cdc_bind -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xbc44de9e usbnet_generic_cdc_bind -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xe4b09893 usbnet_cdc_bind -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xe8403c1f usbnet_cdc_update_filter -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x1086e105 cdc_ncm_select_altsetting -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x1807cb61 cdc_ncm_tx_fixup -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x1d780873 cdc_ncm_unbind -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x1d865a30 cdc_ncm_rx_fixup -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x203b5d8f cdc_ncm_rx_verify_ndp16 -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x4629f391 cdc_ncm_bind_common -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x46984e42 cdc_ncm_fill_tx_frame -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x6fb1b487 cdc_ncm_change_mtu -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x8abf2233 cdc_ncm_rx_verify_nth16 -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xace81ece cdc_ncm_rx_verify_nth32 -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xe57ad925 cdc_ncm_rx_verify_ndp32 -EXPORT_SYMBOL_GPL drivers/net/usb/r8152 0x60d95d83 rtl8152_get_version -EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x66de5a49 rndis_tx_fixup -EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x8082f075 generic_rndis_bind -EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x80f62641 rndis_rx_fixup -EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x8ee52d01 rndis_unbind -EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xaf5a02b9 rndis_status -EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xe7fd3c67 rndis_command -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00f0a618 usbnet_read_cmd -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x01bd2f26 usbnet_write_cmd -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x05d39c31 usbnet_status_stop -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x064157d3 usbnet_purge_paused_rxq -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x09bbf7e4 usbnet_probe -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0c72bb88 usbnet_open -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3047ec96 usbnet_stop -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x31135bc2 usbnet_unlink_rx_urbs -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x315fce4f usbnet_get_drvinfo -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3328ad91 usbnet_start_xmit -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x39bf96d1 usbnet_status_start -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x413ed8b7 usbnet_pause_rx -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4c007947 usbnet_suspend -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5a31dff5 usbnet_update_max_qlen -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5d7d9edd usbnet_read_cmd_nopm -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x70a61be6 usbnet_set_link_ksettings_mii -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8f342eeb usbnet_write_cmd_nopm -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x93d126e4 usbnet_get_link -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9614ea2b usbnet_get_ethernet_addr -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x97276246 usbnet_nway_reset -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x98354203 usbnet_get_msglevel -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa056a9f0 usbnet_defer_kevent -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb27d2608 usbnet_disconnect -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb6239976 usbnet_change_mtu -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc04776d8 usbnet_get_link_ksettings_internal -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc5a38c2c usbnet_write_cmd_async -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc9338ff6 usbnet_get_link_ksettings_mii -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcaf9f22a usbnet_set_rx_mode -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcc0ce10c usbnet_resume_rx -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe0f02c3d usbnet_skb_return -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe41f10db usbnet_get_endpoints -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe68f58ed usbnet_set_msglevel -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf3ff8ac2 usbnet_tx_timeout -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf65c94db usbnet_resume -EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x4ad15170 vxlan_dev_create -EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x526dcfe9 vxlan_fdb_replay -EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x7ff1ce9a vxlan_fdb_find_uc -EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0xbef481d6 vxlan_fdb_clear_offload -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/ipw2x00/libipw 0x9b8e0771 libipw_rx_any -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x688342f3 il_remove_station -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7b06c4bc il_mac_tx_last_beacon -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb9edf9df _il_grab_nic_access -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd46ce18a il_prep_station -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd9ef76b2 il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/phy/smsc 0x129f053f smsc_phy_get_tunable +EXPORT_SYMBOL_GPL drivers/net/phy/smsc 0x1da06b82 smsc_phy_set_tunable +EXPORT_SYMBOL_GPL drivers/net/phy/smsc 0x1fe94a11 smsc_phy_config_init +EXPORT_SYMBOL_GPL drivers/net/phy/smsc 0x6e1f8cd6 smsc_phy_config_intr +EXPORT_SYMBOL_GPL drivers/net/phy/smsc 0x81a9eac7 smsc_phy_handle_interrupt +EXPORT_SYMBOL_GPL drivers/net/phy/smsc 0xc8729e49 lan87xx_read_status +EXPORT_SYMBOL_GPL drivers/net/phy/smsc 0xcc5eb1e7 smsc_phy_probe +EXPORT_SYMBOL_GPL drivers/net/tap 0x0548006d tap_queue_resize +EXPORT_SYMBOL_GPL drivers/net/tap 0x29766518 tap_get_socket +EXPORT_SYMBOL_GPL drivers/net/tap 0x325c8f25 tap_handle_frame +EXPORT_SYMBOL_GPL drivers/net/tap 0x4b97078f tap_get_minor +EXPORT_SYMBOL_GPL drivers/net/tap 0x7abe3eb0 tap_destroy_cdev +EXPORT_SYMBOL_GPL drivers/net/tap 0x83fcb5e7 tap_create_cdev +EXPORT_SYMBOL_GPL drivers/net/tap 0x9a3bc863 tap_get_ptr_ring +EXPORT_SYMBOL_GPL drivers/net/tap 0xb10198f9 tap_del_queues +EXPORT_SYMBOL_GPL drivers/net/tap 0xb3e8f4ad tap_free_minor +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x505cac00 usbnet_cdc_update_filter +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x8553f355 usbnet_ether_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x85710b15 usbnet_cdc_zte_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x8e44ee57 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x98884ea5 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x9ad2113a usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xd8f6a01b usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x2cbaafc4 cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x50a841df cdc_ncm_rx_verify_ndp32 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x64c319ba cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x6ba80e8a cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x9464e27b cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x9a0ff121 cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xa23cc9da cdc_ncm_rx_verify_nth32 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xa2e0cbb3 cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xc4e0560b cdc_ncm_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xf2d75150 cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xf33630fe cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/r8152 0x188ab76b rtl8152_get_version +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x128d9e7b generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x88325ea2 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xbd6cceaa rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xc2eb5061 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf77b699c rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf7b0f3d0 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x012e63b6 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x014af0fd usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x050b8e73 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0795d50f usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x11685add usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1944d93c usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1b24ba84 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x29967e08 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2fd56f47 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2ffa4194 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x47b0927a usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4ca202d6 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5da1c339 usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6f67b596 usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7d4e5bc4 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7e80b49d usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x81533047 usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x979806e4 usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9afdff0c usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9d9d5e17 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa0c10ef4 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa7923b56 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb77a81c8 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbd1e39a3 usbnet_get_link_ksettings_mii +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbf0d50fc usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc5fb43fd usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc83701cc usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcc8a2ee2 usbnet_get_link_ksettings_internal +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xde7789f1 usbnet_set_link_ksettings_mii +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdf11d7f8 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdfefb537 usbnet_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe48ce509 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe90a60c8 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf07ea5b5 usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x38095bb0 vxlan_fdb_find_uc +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x5573f9bc vxlan_dev_create +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x7920cf5f vxlan_fdb_clear_offload +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0xe8495e1b vxlan_fdb_replay +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/ipw2x00/libipw 0x99bfee2b libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1a4e4391 il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2906f808 _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x322a53cc il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xafafe851 il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd47cecd4 il_mac_tx_last_beacon EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x13863121 iwl_fw_lookup_cmd_ver EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x443a0ac3 iwl_fw_lookup_notif_ver EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5987fe45 iwl_fw_lookup_assert_desc -EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x256fd29a p54_init_common -EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x87317376 p54_parse_firmware -EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xa6ee18de p54_free_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xaf73c5be p54_register_common -EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xb218ab68 p54_parse_eeprom -EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xd6897666 p54_free_common -EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xdc89202d p54_read_eeprom -EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xe6b6b808 p54_unregister_common -EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xfa4004ff p54_rx -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x1a559d98 lbs_remove_card -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x1e1be84a lbs_cmd_copyback -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x1e2826b4 lbs_get_firmware_async -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x1e39d6c9 lbs_process_rxed_packet -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x257b7c8b lbs_send_tx_feedback -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x485a7b68 lbs_add_card -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xa7840473 lbs_host_to_card_done -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xa91a2bbb lbs_start_card -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xad288bf2 __lbs_cmd -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xccf3b262 lbs_suspend -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xd047ed8f lbs_host_sleep_cfg -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xd151a680 lbs_get_firmware -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xd82ba26d lbs_stop_card -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xd8bcd5b8 lbs_notify_command_response -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xf03925fa lbs_queue_event -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xf1b819ba lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x02f633aa p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x3fce7070 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x4ee22a96 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x755a7452 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xa7face39 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xbb33309b p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xcf91a336 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xd2e3265d p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xf2f8cf7e p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x05ec4b32 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x100f8ca1 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x294d5ab4 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x320c8ecc lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x38432b61 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x4ad54624 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x52e86f5a __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x607ae06f lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x771be474 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x85af4e4f lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x95a9f765 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x9b5748b4 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xbf9ac986 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xc0f85e0b lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xc2ec0c42 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xe16857a3 lbs_stop_card EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xf64277de lbs_debug -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x0f370158 lbtf_send_tx_feedback -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x18e29137 lbtf_cmd_response_rx -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x368dc606 lbtf_rx -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x4b5cfa61 lbtf_add_card -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xc50b6157 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x003d9f86 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x1b02451d lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x29a265ee lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x4634d2f1 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x588ffab2 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x9a29b5c2 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xaa2e2d97 lbtf_cmd_response_rx EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xdb2f3c80 lbtf_cmd_copyback -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xfa484325 lbtf_remove_card -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xfafdfae8 __lbtf_cmd -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x0ebce947 mwifiex_process_hs_config -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x1a6433c9 mwifiex_add_virtual_intf -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x46f27fed mwifiex_remove_card -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x4f7a7efc mwifiex_shutdown_sw -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x549715a6 mwifiex_fw_dump_event -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x6859f5aa mwifiex_deauthenticate_all -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x6cc468e0 mwifiex_del_virtual_intf -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x6dd4f685 mwifiex_init_shutdown_fw -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x75b41429 mwifiex_disable_auto_ds -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x869e55be mwifiex_reinit_sw -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x87b3c310 mwifiex_enable_hs -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x9588ebb6 mwifiex_prepare_fw_dump_info -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xa369cbb2 mwifiex_dnld_fw -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xa383b5bc _mwifiex_dbg -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xab0a2278 mwifiex_handle_rx_packet -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xb388201f mwifiex_cancel_hs -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xb5532705 mwifiex_main_process -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xbcc2cbc2 mwifiex_drv_info_dump -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xbdf876e6 mwifiex_upload_device_dump -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xce74bbcd mwifiex_queue_main_work +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xddb2ec3c lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x01454c8e mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x01ea8a6b _mwifiex_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x27a4fe62 mwifiex_drv_info_dump +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x282cbd52 mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x2e9e3f65 mwifiex_multi_chan_resync +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x33c9b0b1 mwifiex_queue_main_work +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x3e000330 mwifiex_deauthenticate_all +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x465b768b mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x568fd152 mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x5acb0770 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x67f35141 mwifiex_reinit_sw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x83833f0a mwifiex_shutdown_sw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x95fc3b24 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x9be20204 mwifiex_dnld_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xacc85d17 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xad03be35 mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xb651223d mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xba23f12e mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xc2a4f09b mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xcc12d4bb mwifiex_add_virtual_intf EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4dad9f3 mwifiex_alloc_dma_align_buf -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xd513a29d mwifiex_write_data_complete -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xd603120f mwifiex_multi_chan_resync -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xdbb4e078 mwifiex_add_card -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xff589558 mwifiex_process_sleep_confirm_resp -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x058a7629 __traceiter_dev_irq -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x06aebb6d mt76_insert_ccmp_hdr -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x07f52ef4 mt76_mmio_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0a404153 __mt76_tx_complete_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0bcff6c3 mt76_wake_tx_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0bd8f279 mt76_set_channel -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0d95b228 mt76_put_txwi -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x10be2a63 mt76_tx_check_agg_ssn -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x11827ac5 mt76_ethtool_page_pool_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xd6ee4688 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xeb44dfaf mwifiex_fw_dump_event +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xeb6c153a mwifiex_prepare_fw_dump_info +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xf5d8a44e mwifiex_upload_device_dump +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00d2c1a4 mt76_free_pending_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x078239b5 mt76_set_stream_caps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x08418533 mt76_dma_attach +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x11f6336d __mt76_mcu_send_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1236ea71 mt76_csa_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x12698c5c mt76_set_irq_mask +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1300ac32 mt76_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x137bf39d mt76_set_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x138eb9ce mt76_txq_schedule_all EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x17f568e9 mt76_rates -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x19edca4b mt76_dma_wed_setup -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1a2a2c81 mt76_get_rate -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1b842568 mt76_stop_tx_queues -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1e5ec28f mt76_register_debugfs_fops -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1e8eda6b mt76_pci_disable_aspm +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x180086cb mt76_skb_adjust_pad +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x19e86b4b mt76_dma_wed_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1a66cb8c mt76_dma_rx_poll EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1ec57b4f __mt76_worker_fn -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1fdc4f9f mt76_phy_dfs_state -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x24df66dd mt76_mcu_get_response -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x2792d505 __mt76_mcu_msg_alloc -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3a7bfa3e mt76_tx_status_skb_get -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3aa06c3d mt76_set_irq_mask -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x436c4357 mt76_get_of_eeprom -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x45ffe2d0 mt76_dma_attach -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x49d5c2d0 mt76_put_rxwi -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4f61ce84 mt76_sw_scan_complete -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5316ad82 mt76_skb_adjust_pad -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x53ae8853 mt76_tx_status_skb_done -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5bc67afe mt76_get_rxwi -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5f4160e1 mt76_txq_schedule_all -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6a19f5d6 mt76_seq_puts_array -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6f5dae01 mt76_register_phy -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x70774888 mt76_rx_token_consume -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x709e55b6 mt76_unregister_phy -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x718dd069 mt76_tx_status_lock -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x73ababf4 mt76_init_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x765d6cdd mt76_sta_state -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x76714903 mt76_set_stream_caps -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x79a46297 ____mt76_poll_msec -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7c11f88e mt76_txq_schedule -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7c305b09 mt76_free_device -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7d001a6b mt76_csa_finish -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7e50e997 mt76_get_rate_power_limits +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x2452ea9e mt76_update_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x279d57ad mt76_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x2a7ea73d mt76_tx_status_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x2f02e992 mt76_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3371bfb1 mt76_alloc_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x344a1e32 mt76_update_survey_active_time +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x35010349 mt76_tx_status_skb_get +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x37fedc0b mt76_unregister_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3ae166a8 mt76_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x447b3c4b mt76_unregister_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x488df071 mt76_register_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4b026309 mt76_get_sar_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4c2feacc mt76_put_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5434d6f8 mt76_ethtool_page_pool_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x590d5b1c mt76_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5a1b3655 mt76_tx_status_skb_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x62449c96 mt76_pci_disable_aspm +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x62ef05fa ____mt76_poll_msec +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x63d07cc0 mt76_mcu_skb_send_and_get_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x672a6260 mt76_eeprom_override +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x68924709 mt76_alloc_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x68ca0ef9 mt76_tx_check_agg_ssn +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x68dc5c45 mt76_wake_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6a426d86 __traceiter_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6cd69ecd mt76_tx_status_skb_done +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x70d0c360 mt76_rx_token_consume +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x715f15d3 mt76_rx_token_release +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x72d3c0e1 mt76_rx_aggr_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x74e797a0 mt76_mmio_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x768aa0c1 mt76_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7788611b mt76_free_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7836dc0f mt76_rx_poll_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7894d717 mt76_has_tx_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7932c905 mt76_init_sar_power EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x805fc13a __SCK__tp_func_dev_irq -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x80af5f6e __traceiter_mac_txdone -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8342cbbd mt76_rx_aggr_start -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x839109ea mt76_update_survey_active_time -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x889450e3 mt76_has_tx_pending -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x89d47536 mt76_queue_tx_complete -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8abc8fc8 mt76_eeprom_override -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8acec4e5 mt76_init_sar_power -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8ccf8b25 mt76_sta_pre_rcu_remove -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x91481e89 mt76_get_min_avg_rssi -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x916d293d mt76_token_consume -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x9175cd07 mt76_eeprom_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x93f48d1f __mt76_set_tx_blocked -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x97404018 mt76_calculate_default_rate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x80cb1b62 mt76_tx_status_unlock +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x81cd51ff mt76_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8343fd09 mt76_get_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x87dacb33 mt76_token_release +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x883ec9ae mt76_dma_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8847a15c mt76_tx_worker_run +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x909615ce mt76_insert_ccmp_hdr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x91f3a9de mt76_tx_status_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x96b9065b mt76_seq_puts_array +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x9c20e8e8 __traceiter_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x9d132e2d mt76_put_txwi EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x9d28c26e __tracepoint_mac_txdone -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x9d7cc04a mt76_alloc_device -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xa6aef07a mt76_rx_aggr_stop -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xa7860b21 mt76_tx_status_unlock -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xa9587c3f mt76_rx -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xaa074dcd mt76_mcu_skb_send_and_get_msg -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xaa19eee5 mt76_mcu_send_and_get_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x9fecf411 mt76_release_buffered_frames +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xa27cd212 mt76_get_rate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xa86918c2 mt76_register_debugfs_fops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xaa8c1335 mt76_csa_finish EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xab9d88b8 mt76_ethtool_worker -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xaee444d5 mt76_alloc_phy -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb01723fe mt76_tx_status_skb_add -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb456111e mt76_tx -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb49e3b04 mt76_tx_status_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xaf2549eb __mt76_set_tx_blocked +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb2e6840d mt76_sw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb42e8bc7 mt76_mcu_get_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb49371f5 mt76_init_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb4ceff16 __mt76_tx_complete_skb EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb608bb75 __tracepoint_dev_irq -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb76953a5 mt76_queues_read -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xba42a012 mt76_get_txpower -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xbabfdb39 mt76_dma_cleanup -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xbed852af mt76_rx_token_release -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xbf479041 mt76_rx_poll_complete -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc10174e5 mt76_sw_scan -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc16f77d1 __mt76_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb7146ead mt76_get_rate_power_limits +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb7d5a4e3 __mt76_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc02af9b5 mt76_phy_dfs_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc5b7473c mt76_token_consume EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc6315d8e __SCK__tp_func_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc641f8a5 mt76_rx_aggr_stop EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc6634315 mt76_ac_to_hwq -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc98520bb __mt76_mcu_send_firmware -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xd13cd455 mt76_create_page_pool -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xd5c26c7f mt76_set_tim -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xd9896185 mt76_unregister_device -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xdf91eb33 mt76_csa_check -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe005bc6c mt76_dma_rx_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xcbba86fe mt76_get_of_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xccf94e53 mt76_create_page_pool +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xda6cb453 mt76_get_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xdc77ca82 mt76_sta_pre_rcu_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe035ee25 mt76_mcu_rx_event +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe0b2420f mt76_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe2933ea4 mt76_mcu_send_and_get_msg EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe40b66ef mt76_wcid_alloc -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe459ee26 mt76_mcu_rx_event -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe7551522 mt76_free_pending_rxwi -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xea99aec1 mt76_get_survey -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xee7a6341 mt76_tx_worker_run -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf05ee1ed mt76_release_buffered_frames -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf1ef3bfb __mt76_sta_remove -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf61b00a2 mt76_get_antenna -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf76f5c75 mt76_get_sar_power -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf859cfdc mt76_update_survey -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xfb94dd2f mt76_token_release -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xff2b67dd mt76_register_device -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0097fe4b mt76_connac_pm_queue_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x07b7984a mt76_connac_mcu_alloc_wtbl_req -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x08e60336 mt76_connac_mcu_uni_add_bss +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe42bf337 mt76_sta_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe6acaeca mt76_queue_tx_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe775d3ee __mt76_mcu_msg_alloc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe9e16f93 mt76_stop_tx_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf4bc38ca mt76_queues_read +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf4d2a1a8 mt76_calculate_default_rate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf52e5bdc __mt76_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xfd4c57df mt76_get_min_avg_rssi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xfe58d63d mt76_txq_schedule +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x00709b2a mt76_connac_mcu_alloc_wtbl_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x08005deb mt76_connac_pm_wake EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0a25337f mt76_connac_gen_ppe_thresh -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0b1ecebc mt76_connac_mcu_sta_basic_tlv -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0f883729 mt76_connac2_mac_fill_rx_rate -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x104b585b mt76_connac2_mac_tx_rate_val -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x154abf35 mt76_connac_mcu_add_key -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x178449ae mt76_connac_pm_wake -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x1c7a5872 mt76_connac2_mac_add_txs_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x200f632a mt76_connac_mcu_uni_set_chctx -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x20f36f4a mt76_connac_mcu_set_pm -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x2e2f7513 mt76_connac_mcu_wtbl_hdr_trans_tlv -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3134dffa mt76_connac_mcu_bss_omac_tlv -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x331888cc mt76_connac_mcu_update_arp_filter -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x364c8e94 mt76_connac_mcu_reg_rr -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x38a6277c mt76_connac_mcu_rdd_cmd -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x38dbf0cd mt76_connac_mcu_set_deep_sleep -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x38fb6df3 mt76_connac_get_phy_mode -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3a414fe0 mt76_connac_tx_complete_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3dceef8c mt76_connac_mcu_add_nested_tlv -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x44f6ce0f mt76_connac_mcu_bss_basic_tlv -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x46911b73 mt76_connac_get_eht_phy_cap -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x475b5c7c mt76_connac_free_pending_tx_skbs -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x47f784f4 mt76_connac_mcu_set_hif_suspend -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x4844d33b mt76_connac_mcu_set_suspend_iter -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x48f54b10 mt76_connac_mcu_update_gtk_rekey -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x4a7240d5 mt76_connac_get_he_phy_cap -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x4aa17f2c mt76_connac_txp_skb_unmap -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x4d7573bd mt76_connac2_mac_decode_he_radiotap -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x503b6bf0 mt76_connac_mcu_wtbl_ba_tlv -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x51013ab9 mt76_connac_mcu_cancel_hw_scan -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x547fa001 mt76_connac_mcu_sta_wed_update -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x55db64c0 mt76_connac_init_tx_queues -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x6a07ad19 mt76_connac_mcu_reg_wr -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x6a1c0fbc mt76_connac_mcu_sta_update_hdr_trans -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x6f30b790 mt76_connac_sta_state_dp -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x726f0136 mt76_connac_mcu_bss_ext_tlv -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7567bc17 mt76_connac_mcu_sta_uapsd -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x759535bd mt76_connac_power_save_sched -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x75db5c37 mt76_connac_mcu_set_rts_thresh -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x777d8efe mt76_connac2_mcu_fill_message -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x78259157 mt76_connac_mcu_sched_scan_enable -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7b70eba5 mt76_connac2_mac_fill_txs -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7ede3edd mt76_connac2_load_patch -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x817cd578 mt76_connac_mcu_wtbl_ht_tlv -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x83d67e59 mt76_connac_get_phy_mode_ext -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x8c547743 mt76_connac_mcu_sta_ba +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x111e9273 mt76_connac_get_he_phy_cap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x126235fe mt76_connac_pm_queue_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x1275fd72 mt76_connac2_mac_tx_rate_val +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x14812697 mt76_connac_mcu_set_mac_enable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x1ae0c983 mt76_connac_get_phy_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x1ca3a289 mt76_connac_mcu_set_vif_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x2261e4dd mt76_connac_mcu_cancel_hw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x23618fe1 mt76_connac_mcu_add_nested_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x23f1b5ce mt76_connac2_load_patch +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x26ed3d2d mt76_connac2_load_ram +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x27408f7c mt76_connac_mcu_hw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x27ae6b39 mt76_connac_mcu_restart +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x27d906bd mt76_connac_mcu_set_channel_domain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x2dfe67ed mt76_connac_pm_dequeue_skbs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x2efffbae mt76_connac_mcu_wtbl_update_hdr_trans +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x345f4384 mt76_connac_txp_skb_unmap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3716043d mt76_connac_mcu_update_arp_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x393217c3 mt76_connac_mcu_sched_scan_enable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x39a827ea mt76_connac_init_tx_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x39d54e97 mt76_connac_mcu_sta_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3b2452fb mt76_connac_mcu_wtbl_ba_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3e6b9642 mt76_connac2_mac_fill_rx_rate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x40bc7c06 mt76_connac_mcu_bss_omac_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x4112116a mt76_connac_power_save_sched +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x438f612f mt76_connac_sta_state_dp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x47950dd0 mt76_connac_mcu_sta_ba +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x4ed149c1 mt76_connac_get_phy_mode_ext +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x54cf7d57 mt76_connac_mcu_sta_basic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x54d86909 mt76_connac2_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x55838a72 mt76_connac_mcu_set_deep_sleep +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x56288337 mt76_connac_mcu_wtbl_generic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x56aa6aeb mt76_connac_mcu_sta_ba_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x57fbc22c mt76_connac_mcu_set_rate_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x58830b1e mt76_connac_mcu_chip_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x5d42c376 mt76_connac_mcu_uni_add_bss +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x6081f233 mt76_connac_mcu_sched_scan_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x642b9856 mt76_connac_mcu_add_key +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x684490ab mt76_connac_mcu_start_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x68b6efa4 mt76_connac_mcu_beacon_loss_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x6e1f8198 mt76_connac2_mac_decode_he_radiotap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x6eef6425 mt76_connac2_mac_add_txs_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x6f3ccc81 mt76_connac_mcu_set_suspend_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x709db67a mt76_connac2_reverse_frag0_hdr_trans +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x74dd1ba9 mt76_connac_mcu_uni_add_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x76bfefeb mt76_connac_mcu_bss_ext_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x77fdc914 __mt76_connac_mcu_alloc_sta_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x798f722e mt76_connac_free_pending_tx_skbs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x8089ec4c mt76_connac2_mac_fill_txs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x8d1b0d45 mt76_connac_mcu_get_nic_capability EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x908ca40c mt76_connac_wowlan_support -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x997632ef mt76_connac_mcu_wtbl_smps_tlv -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x99871642 mt76_connac_mcu_start_patch -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x9c1253d7 mt76_connac_mcu_beacon_loss_iter -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x9cd6b194 mt76_connac_mcu_sta_ba_tlv -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x9d6ebc29 mt76_connac_mcu_get_nic_capability -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xa9b6c49c __mt76_connac_mcu_alloc_sta_req -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xb172509f mt76_connac_write_hw_txp -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xb183d92c mt76_connac_mcu_sched_scan_req -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xb659bd25 mt76_connac_mcu_restart -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xb963ad30 mt76_connac_pm_dequeue_skbs -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xba6de957 mt76_connac_mcu_wtbl_update_hdr_trans -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xbaa21742 mt76_connac_mcu_init_download -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xbd9a70b7 mt76_connac_mcu_wtbl_generic_tlv -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xbff65d5a mt76_connac_mcu_sta_tlv -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xc140fff5 mt76_connac_mcu_sta_cmd -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xc47c4d48 mt76_connac2_mac_write_txwi -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xc61c179b mt76_connac_mcu_hw_scan -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xcf6dd918 mt76_connac_mcu_coredump_event -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xd47ac960 mt76_connac_mcu_patch_sem_ctrl -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xd6c7beea mt76_connac_mcu_set_rate_txpower -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xdf82251c mt76_connac_mcu_set_channel_domain -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xe05be520 mt76_connac2_load_ram -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xe493837c mt76_connac_mcu_set_vif_ps -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xeb0a47e7 mt76_connac_mcu_set_p2p_oppps -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xedf1e088 mt76_connac2_reverse_frag0_hdr_trans -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xee3ebde9 mt76_connac_mcu_set_mac_enable -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xf570a0e5 mt76_connac_mcu_uni_add_dev -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xfa81d5ec mt76_connac_mcu_chip_config -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xfd129317 mt76_connac_mcu_start_firmware -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x16692484 mt76s_read_pcr -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x36ed121f mt76s_wr -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x3f067809 mt76s_read_copy -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x43a9d344 mt76s_rd_rp -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x4a558496 mt76s_deinit -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x571eca85 mt76s_rr -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x5c0121d5 mt76s_txrx_worker -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x5fa460ca mt76s_alloc_rx_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x6d8271b8 mt76s_sdio_irq -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x876a43c2 mt76s_txqs_empty -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xc1dfe43a mt76s_hw_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xce1cc7ac mt76s_wr_rp -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xd637cc91 mt76s_write_copy -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xd9251a07 mt76s_alloc_tx -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xde566833 mt76s_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xf4a2a976 mt76s_rmw -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x217c644d mt76u_single_wr -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x291f1da5 mt76u_resume_rx -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x31376680 mt76u_alloc_mcu_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x3181ac3b mt76u_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x39df96da mt76u_vendor_request -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x3a6254e9 __mt76u_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x810870cd ___mt76u_rr -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x999e1b90 mt76u_stop_tx -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xb023233a mt76u_queues_deinit -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xba4902d9 mt76u_stop_rx -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xc6d287ab __mt76u_vendor_request -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xcd9a0c92 mt76u_read_copy -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xe7127749 ___mt76u_wr -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xfc6d4800 mt76u_alloc_queues -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x01916b59 mt7615_init_debugfs -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x051dc4a4 mt7615_register_ext_phy -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x1dd37616 mt7615_mac_sta_remove -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x24b09251 mt7615_mcu_exit -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x3696b146 mt7615_mac_sta_add -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x44b0341d mt7615_rx_check -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x4557bde6 mt7615_mac_sta_poll -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x4c7a48b9 mt7615_update_channel -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x4c8c677c mt7615_eeprom_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x532dcbb5 mt7615_mac_enable_rtscts -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x56ff1098 mt7615_led_set_brightness -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x59d17c2c mt7615_mac_set_rates -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x607bc911 mt7615_led_set_blink -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x63362e1d mt7615_init_device -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x67dc5fb7 mt7615_mcu_parse_response -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x714bec50 mt7615_thermal_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x75e69c86 mt7615_mcu_restart -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x784fadd1 mt7615_unregister_ext_phy -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x79452e6d mt7615_ops -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7ba25335 mt7615_mcu_fill_msg -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xa7139b64 mt7615_queue_rx_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xb792c437 __mt7663_load_firmware -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xb8e0e747 mt7622_trigger_hif_int -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xc29f63f4 mt7615_mcu_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xcb843e2e mt7615_reg_map -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xcebe5a28 mt7615_mac_write_txwi -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xd2a18176 mt7615_init_work -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xdbed8781 mt7615_wait_for_mcu_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xeab94bcf mt7615_init_txpower -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xf5666d58 mt7615_tx_token_put -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615e 0x44fad332 mt7615_dma_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x913349bf mt76_connac_mcu_reg_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x9282612d mt76_connac_mcu_init_download +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x92ca1c25 mt76_connac_mcu_set_rts_thresh +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x9fc0eee0 mt76_connac_mcu_wtbl_ht_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xa4562601 mt76_connac_write_hw_txp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xa9754338 mt76_connac_mcu_wtbl_hdr_trans_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xad118835 mt76_connac_mcu_bss_basic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xb0e9dc4d mt76_connac_mcu_set_hif_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xb1284db6 mt76_connac_mcu_rdd_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xb9cfce3a mt76_connac_mcu_uni_set_chctx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xc0217273 mt76_connac_mcu_patch_sem_ctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xc1c9b218 mt76_connac_mcu_set_pm +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xc61cdbe6 mt76_connac_mcu_sta_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xc8157870 mt76_connac_mcu_sta_wed_update +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xc87defa9 mt76_connac_mcu_set_p2p_oppps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xd1438d1c mt76_connac2_mcu_fill_message +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xd8e0c8c0 mt76_connac_mcu_sta_update_hdr_trans +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xd9923270 mt76_connac_mcu_reg_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xdf196628 mt76_connac_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xe41ab980 mt76_connac_mcu_coredump_event +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xe808e7db mt76_connac_get_eht_phy_cap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xeccdc560 mt76_connac_mcu_sta_uapsd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xf8560fc3 mt76_connac_mcu_start_patch +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xfee1c2e2 mt76_connac_mcu_update_gtk_rekey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xff356196 mt76_connac_mcu_wtbl_smps_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x00680be5 mt76s_write_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x02da979b mt76s_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x108f4590 mt76s_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x1db05401 mt76s_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x3590f87a mt76s_read_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x478c7816 mt76s_txqs_empty +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x6aaee961 mt76s_txrx_worker +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x6daf9eca mt76s_hw_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x715a64dc mt76s_wr_rp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x79b0649e mt76s_read_pcr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7c88f3ff mt76s_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x899f533c mt76s_alloc_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x9070751d mt76s_rd_rp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xb2c3e168 mt76s_alloc_rx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xf5216015 mt76s_rmw +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xf785f9ad mt76s_sdio_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x062cf033 mt76u_stop_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x1cb828cf mt76u_queues_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x2c4e3d70 ___mt76u_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x40cbd54b __mt76u_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x414cdd31 ___mt76u_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x4564e25b mt76u_alloc_mcu_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x665aa8a9 mt76u_read_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x76af4006 mt76u_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x99105603 mt76u_alloc_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xaa6d5c80 __mt76u_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xb8ec8c1c mt76u_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xd26e56b2 mt76u_single_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xde56f355 mt76u_stop_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xdea9fa4d mt76u_resume_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x0385adf9 mt7615_mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x09dfc6df mt7615_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x10ac87de mt7615_thermal_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x169b9964 mt7615_reg_map +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x1bf8d13e mt7615_rx_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x1e41642b __mt7663_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x254740e8 mt7615_mac_set_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x2c40733b mt7615_tx_token_put +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x2d15b87d mt7615_mcu_restart +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x37c95c44 mt7615_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x38b8c9f3 mt7615_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x3e8bea56 mt7615_init_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x45ce39d0 mt7615_mac_sta_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x59155b01 mt7615_register_ext_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x61b2edc1 mt7622_trigger_hif_int +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7043e801 mt7615_init_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7feaaeab mt7615_mac_enable_rtscts +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x84e336dc mt7615_init_work +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x93ef2c8a mt7615_unregister_ext_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x99cbe201 mt7615_init_debugfs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x9c583983 mt7615_led_set_blink +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x9d57424e mt7615_mcu_exit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x9eb2b880 mt7615_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xa96edb88 mt7615_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xb50fafed mt7615_mcu_fill_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xc5c15615 mt7615_mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xd1f51e13 mt7615_wait_for_mcu_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xd2c8ec8d mt7615_mcu_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xf20a1390 mt7615_led_set_brightness +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xf264b6cc mt7615_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615e 0x0bfd5f71 mt7615_dma_reset EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x1506ffca mt7663_usb_sdio_reg_map -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x7aeab3c5 mt7663_usb_sdio_tx_complete_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x83bc55c4 mt7663_usb_sdio_register_device -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0xd92da325 mt7663_usb_sdio_tx_prepare_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0xf140d6ec mt7663_usb_sdio_tx_status_data -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x0275be06 mt76x0_init_hardware -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x1297b952 mt76x0_mac_stop -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x3654dc9b mt76x0_chip_onoff -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xbf65bbc2 mt76x0_config -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xc7058321 mt76x0_register_device -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xe0e9eb88 mt76x0_set_sar_specs -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xe79b35ba mt76x0_phy_calibrate -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0e4b6059 mt76x02_mcu_msg_send -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0f9746ca mt76x02_phy_set_rxpath -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1099fbdb mt76x02e_init_beacon_config -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1299e35a mt76x02_phy_set_txpower -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x12bfbf7f mt76x02_resync_beacon_timer -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x15a7d0d4 mt76x02_update_beacon_iter -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x185b9adf mt76x02_remove_hdr_pad -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1dd32838 mt76x02_ext_pa_enabled -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1f6bd559 mt76x02_init_debugfs -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1fcbca27 mt76x02_get_efuse_data -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x20263776 mt76x02_phy_set_bw -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x217599f7 mt76x02_configure_filter -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x228bfafb mt76x02_eeprom_parse_hw_cap -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2efedb37 mt76x02_mcu_cleanup -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x32170b2c mt76x02_enqueue_buffered_bc -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3b32460b mt76x02_eeprom_copy -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3d84dc98 mt76x02_add_interface -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3edd29ea mt76x02_mcu_function_select -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x41a058f4 mt76x02_sw_scan_complete -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x436bf835 mt76x02_get_rx_gain -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x459ba8c4 mt76x02_mac_wcid_setup -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x47072a55 mt76x02_init_beacon_config -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4e2747f9 mt76x02_dma_disable -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4fed3c71 mt76x02_mac_start -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4ff3f7c7 mt76x02_init_device -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5193e3fa mt76x02_mac_shared_key_setup -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x545433ae mt76x02_tx_complete_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5a7f3e0c mt76x02_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x4a1b466c mt7663_usb_sdio_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0xb3b5b2b8 mt7663_usb_sdio_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0xe8f55289 mt7663_usb_sdio_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0xedb224c0 mt7663_usb_sdio_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x23613eee mt76x0_phy_calibrate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x31493c0a mt76x0_chip_onoff +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x3c2d4ed2 mt76x0_mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x41845c7b mt76x0_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xa4d404c4 mt76x0_set_sar_specs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xd0351591 mt76x0_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xea86dd68 mt76x0_init_hardware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x032e5191 mt76x02_mcu_msg_send +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x034ecb75 mt76x02_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0371ad96 mt76x02_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x084feeac mt76x02_tx_set_txpwr_auto +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x08df2d5e mt76x02_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0a200272 mt76x02_mcu_set_radio_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0df70db4 mt76x02_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1242619b mt76x02_dma_disable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x201fdf6b mt76x02_eeprom_parse_hw_cap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x24dc8956 mt76x02_phy_set_band +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x256e59e4 mt76x02e_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2bc9b556 mt76x02_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2c68d325 mt76x02_phy_set_bw +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x30225368 mt76x02_mac_shared_key_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x327f8097 mt76x02_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x372254d8 mt76x02_get_rx_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x381ba426 mt76x02_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x44b6a85c mt76x02_mcu_calibrate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x47e34a27 mt76x02_init_agc_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x48640597 mt76x02_dfs_init_params +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4cc9066a mt76x02_mcu_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x55e283fd mt76x02_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x59282869 mt76x02_add_interface EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5 mt76x02_rates -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5cc40e64 mt76x02_update_channel -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5edff2e9 mt76x02_sta_ps -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x63429b17 mt76x02_phy_adjust_vga_gain -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6be48b60 mt76x02_mcu_parse_response -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6e250e23 mt76x02_mac_reset_counters -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x70ce606b mt76x02_tx -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x73593bd3 mt76x02_sta_rate_tbl_update +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x66eee39e mt76x02_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6c0cb305 mt76x02_phy_adjust_vga_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x727648fa mt76x02_mac_reset_counters +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7530b6a1 mt76x02_remove_interface EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x75fef85d mt76x02_add_rate_power_offset -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7857cd7a mt76x02_set_ethtool_fwver -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7b12094d mt76x02_init_agc_gain -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8093f8c6 mt76x02_mac_write_txwi -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x80fef26b mt76x02_mac_set_beacon -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x83b6880a mt76x02_tx_prepare_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x865b0302 mt76x02_tx_status_data -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8ff4fde8 mt76x02_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x76889357 mt76x02_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7bb62e11 mt76x02_mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7c18b696 mt76x02_get_efuse_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7e99edfe mt76x02_dma_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x82b844f6 mt76x02_phy_set_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x84002096 mt76x02_eeprom_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x84619c0a mt76x02_mac_set_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x89436375 mt76x02_init_debugfs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8e2c94ca mt76x02_edcca_init EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee mt76x02_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x939ba260 mt76x02_set_ethtool_fwver EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x93c479bc mt76x02_limit_rate_power -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x93dca57e mt76x02_set_coverage_class -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x94c5f1de mt76x02_sta_remove -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x96fc07e4 mt76x02_sta_add -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa26d802f mt76x02_get_lna_gain -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa59a3d0d mt76x02_tx_set_txpwr_auto -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xac5f1574 mt76x02_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x93df8351 mt76x02_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x95cba6a7 mt76x02_rx_poll_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9aa9de35 mt76x02_mac_wcid_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9ceeac2d mt76x02_mcu_function_select +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa42005f2 mt76x02_update_beacon_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa4be36b9 mt76x02_config_mac_addr_list +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa52482e3 mt76x02_ext_pa_enabled +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xaa390fa1 mt76x02_set_coverage_class +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xacf8f20b mt76x02_phy_set_rxpath EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xad5d3ba8 mt76x02_get_max_rate_power -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbbca6e51 mt76x02_bss_info_changed -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc60d555b mt76x02_reconfig_complete -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd508e61a mt76x02_set_tx_ackto -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd91adac7 mt76x02_mac_cc_reset -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xda6d7e61 mt76x02_conf_tx -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdb2ecf72 mt76x02_dfs_init_params -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdf82dbc1 mt76x02_ampdu_action -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe1e53533 mt76x02_config_mac_addr_list -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe303b242 mt76x02_phy_dfs_adjust_agc -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe653dae1 mt76x02_phy_set_band -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xec78ee02 mt76x02_dma_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf197dc4f mt76x02_queue_rx_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf7364a22 mt76x02_phy_set_txdac -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfb3da02b mt76x02_mcu_set_radio_state -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfb4a4e1f mt76x02_mcu_calibrate -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfb6b5e6b mt76x02_mac_setaddr -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfbcebc44 mt76x02_edcca_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfeb6f6af mt76x02_rx_poll_complete -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x2e1e8b0c mt76x02u_tx_complete_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x31e1997a mt76x02u_init_beacon_config -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x78147fff mt76x02u_mcu_fw_reset -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x7ac408ae mt76x02u_exit_beacon_config -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x853d5c40 mt76x02u_mcu_fw_send_data -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x8856ae6c mt76x02u_mac_start -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xbae294e9 mt76x02u_init_mcu -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xf5f95604 mt76x02u_tx_prepare_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x0583140d mt76x2_mcu_tssi_comp -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x12fd952b mt76x2_set_sar_specs -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x146b5e42 mt76x2_read_rx_gain -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x208287ba mt76x2_reset_wlan -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x27332ef5 mt76x2_apply_gain_adj -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x35ba3820 mt76x2_mcu_set_channel -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x67317660 mt76x2_mac_stop -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x76e939e6 mt76x2_phy_set_txpower -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x83e54ba5 mt76x2_mcu_init_gain -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x89151fc0 mt76x2_eeprom_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x94328328 mt76_write_mac_initvals -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x971dcd5c mt76x2_phy_tssi_compensate -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa27b8d0a mt76x2_get_temp_comp -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa6151387 mt76x2_get_power_info -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa82dafbb mt76x2_phy_set_txpower_regs -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xc233ef37 mt76x2_init_txpower -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xd9303738 mt76x2_mcu_load_cr -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xe058adde mt76x2_configure_tx_delay -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xfaa3a59f mt76x2_phy_update_channel_gain -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xfbc9a1ee mt76x2_get_rate_power -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x077d0b3a mt7921_usb_sdio_tx_status_data -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x0a79b6bb mt7921_update_channel -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x1659d64b mt7921_mac_sta_assoc -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x18cce432 mt7921_run_firmware -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x193e7c0d mt7921_mac_sta_add -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x2d95edef mt7921_rx_check -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x47a444c2 mt7921_get_mac80211_ops -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x4ee51541 mt7921_mac_sta_remove -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x50a25808 mt7921_usb_sdio_tx_complete_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x63684b44 mt7921_mac_sta_poll -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x68c82037 mt7921_mcu_parse_response -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x69da2631 mt7921_mcu_fw_pmctrl -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x85e31f03 mt7921_queue_rx_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x8ad03f56 mt7921_stop -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x8d6f90c5 mt7921_mcu_set_eeprom -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x931d2192 mt7921_mac_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x99055344 mt7921_ops -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xafd88258 mt7921_register_device -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xc1822cde mt7921_usb_sdio_tx_prepare_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xdd3040eb __mt7921_start -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xe4b3af37 mt7921_txwi_free -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xf8b324d0 mt7921_reset -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xfafb63e7 mt7921_mcu_drv_pmctrl -EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x36052ca2 wilc_handle_isr -EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x847cd88e wilc_cfg80211_init -EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x9504c26c chip_wakeup -EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x9c3f77d4 wilc_netdev_cleanup -EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x9f70e87a chip_allow_sleep -EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x9f7f1771 host_sleep_notify -EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0xc2a14814 host_wakeup_notify -EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x1ae63041 qtnf_trans_handle_rx_ctl_packet -EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x2a167a0f qtnf_classify_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xae638a2a mt76x02_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xae8adedd mt76x02_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xaebde15c mt76x02_phy_dfs_adjust_agc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb07ca5f8 mt76x02_set_tx_ackto +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb1a1ed49 mt76x02_phy_set_txdac +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb9de731d mt76x02_get_lna_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbc05b976 mt76x02_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc5365572 mt76x02_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc68553ab mt76x02_enqueue_buffered_bc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc7de895d mt76x02_mac_setaddr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xce401e52 mt76x02_resync_beacon_timer +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd2dca2e1 mt76x02_reconfig_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd3216e31 mt76x02_mac_cc_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd33818b7 mt76x02_remove_hdr_pad +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd397c93a mt76x02_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd3f17144 mt76x02_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xde0de47a mt76x02_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf4e1b426 mt76x02_sta_rate_tbl_update +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf950bf06 mt76x02_init_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfb052035 mt76x02_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x56b205e8 mt76x02u_mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x83316193 mt76x02u_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xb217c459 mt76x02u_mcu_fw_send_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xb368e681 mt76x02u_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xb55beac0 mt76x02u_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xd172c8d3 mt76x02u_init_mcu +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xe15fc43c mt76x02u_exit_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xe46254e0 mt76x02u_mcu_fw_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x21f2e5bc mt76x2_set_sar_specs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x2e5abdd6 mt76x2_mcu_tssi_comp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x33164653 mt76x2_read_rx_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x3cc57cc1 mt76x2_phy_set_txpower_regs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x3f90e227 mt76x2_configure_tx_delay +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x4ee8525a mt76x2_get_power_info +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x5b415d17 mt76x2_mcu_init_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x65586dc0 mt76x2_phy_tssi_compensate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x6b599492 mt76x2_mcu_set_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x73508e43 mt76x2_mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7d15f801 mt76x2_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fe64205 mt76x2_phy_update_channel_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xba018e89 mt76_write_mac_initvals +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xe145e1e7 mt76x2_apply_gain_adj +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xe65ed7b3 mt76x2_reset_wlan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xe82c6397 mt76x2_mcu_load_cr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xeb8aab2b mt76x2_init_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xefa8c752 mt76x2_phy_set_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xf25c1b56 mt76x2_get_rate_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xfceaee7e mt76x2_get_temp_comp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x02c8be54 mt7921_txwi_free +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x061c4845 mt7921_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x09dfee2b mt7921_usb_sdio_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x0ac7e914 mt7921_mac_sta_assoc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x119e8e94 mt7921_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x11ef0e06 mt7921_mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x15ad21c9 mt7921_mcu_set_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x29d4791f __mt7921_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x2a321e96 mt7921_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x3283b5e7 mt7921_usb_sdio_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x3b05824a mt7921_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x3b0d617f mt7921_mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x3c640746 mt7921_rx_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x5cf94afa mt7921_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x63cda9df mt7921_mac_sta_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x64725f65 mt7921_mac_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7bea4c7c mt7921_usb_sdio_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xbad1cc76 mt7921_get_mac80211_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xbc5715c4 mt7921_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xc213d16e mt7921_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xcf861d8b mt7921_mcu_drv_pmctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xd2decf4c mt7921_mcu_fw_pmctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xf283e48d mt7921_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x23ce5030 wilc_netdev_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x71c3ee84 host_sleep_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x7979cda8 host_wakeup_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0xc449d3bf chip_allow_sleep +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0xd3fc6609 chip_wakeup +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0xd854e2e4 wilc_handle_isr +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0xf883eb73 wilc_cfg80211_init +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x28292165 qtnf_core_attach EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x31fab83c qtnf_chipid_to_string -EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x4739c33f qtnf_wake_all_queues -EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x623cc3ae qtnf_core_attach -EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x8cefb510 qtnf_get_debugfs_dir -EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xff5f2be5 qtnf_core_detach -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x01d40e64 rt2800_get_txwi_rxwi_size -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0befe509 rt2800_sta_add -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1bf4b4dd rt2800_txdone -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x20883cc2 rt2800_config_ant -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x35deeb8f rt2800_probe_hw -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3f70fdfe rt2800_reset_tuner -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4ca7e5eb rt2800_check_firmware -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x56734b5f rt2800_watchdog -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5aa4404c rt2800_txstatus_timeout -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5e1ccf32 rt2800_txdone_nostatus -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x60bb124b rt2800_config_pairwise_key -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x67998c0a rt2800_disable_wpdma -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6a59f5bc rt2800_clear_beacon -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x703cf248 rt2800_load_firmware -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7a91b853 rt2800_wait_wpdma_ready -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7cb866f0 rt2800_get_tsf -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8220aaf4 rt2800_get_key_seq -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x82d7152e rt2800_enable_radio -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x839329a8 rt2800_disable_radio -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x864fa453 rt2800_config_shared_key -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x875158bc rt2800_process_rxwi -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8c38fd2d rt2800_write_tx_data -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8e47659e rt2800_gain_calibration -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x90bd0f23 rt2800_txdone_entry -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa0e7930a rt2800_conf_tx -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb2c9fb63 rt2800_vco_calibration -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb4e60599 rt2800_config_filter -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb5be7274 rt2800_ampdu_action -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb878050b rt2800_rfkill_poll -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbc04b435 rt2800_efuse_detect -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbc8e89d1 rt2800_link_tuner -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbcb90936 rt2800_wait_csr_ready -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc4086914 rt2800_config_erp -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc74c5ca3 rt2800_sta_remove -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xca690406 rt2800_link_stats -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdb591499 rt2800_txstatus_pending -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdbbf2bc0 rt2800_read_eeprom_efuse -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdfca9056 rt2800_write_beacon -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe5c8db32 rt2800_pre_reset_hw -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe8d4e1d7 rt2800_mcu_request -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xeef1ec38 rt2800_get_survey -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xfad0d54b rt2800_config -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xfc3a42b7 rt2800_set_rts_threshold -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xfcd16b4c rt2800_config_intf -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0edea313 rt2800mmio_toggle_irq -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x11efeb09 rt2800mmio_flush_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x21744327 rt2800mmio_init_queues -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x227f62aa rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x7116e582 qtnf_core_detach +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x738a7114 qtnf_get_debugfs_dir +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x7cb5d788 qtnf_wake_all_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xc86f220f qtnf_trans_handle_rx_ctl_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xf69e7de8 qtnf_classify_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x04e556a8 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x09726c42 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0e5c7a07 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x10309566 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1254412e rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x15c7ca8f rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x22a5093f rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x25600e91 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2714a49b rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2e059495 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x36f0f606 rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x39239823 rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x39661079 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3d6da42f rt2800_txdone_nostatus +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3ee401a3 rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x44a7c9a9 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5ad70195 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x65e932f7 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6b312232 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6df82aa0 rt2800_txstatus_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7f935d5e rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x858b38c8 rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x99ec5634 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9b9101be rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa2b14831 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa4e16af7 rt2800_pre_reset_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa5925342 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb191556c rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbbbe724a rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbe3e59d9 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc24894c7 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc4ca272a rt2800_get_key_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd086f65f rt2800_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd22093bf rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd89e7783 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd93af387 rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdb1aa734 rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdc675654 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdd66dc8a rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xef8836f3 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf0348a20 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf2ef1932 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf47dfc9c rt2800_txstatus_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xfdbc3d55 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x061767aa rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x0f728bd9 rt2800mmio_init_registers EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x32ac3645 rt2800mmio_rxdone_tasklet EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3d741c87 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x452b4ee7 rt2800mmio_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x4e1e7aae rt2800mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x4f021fe2 rt2800mmio_init_queues EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5028bbb2 rt2800mmio_tbtt_tasklet -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x599f9321 rt2800mmio_fill_rxdone EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fe36603 rt2800mmio_clear_entry -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x750f3403 rt2800mmio_stop_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x874d1b48 rt2800mmio_probe_hw -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x8da7d530 rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x6095bca9 rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x6def3fb7 rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x803adee7 rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x89337c9f rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x8ff70589 rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x96744023 rt2800mmio_start_queue EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x97e3c029 rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x986704f4 rt2800mmio_get_dma_done +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x99a194f3 rt2800mmio_get_txwi EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x9f3c8921 rt2800mmio_txstatus_tasklet -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xa32668a0 rt2800mmio_init_registers -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xa38abb38 rt2800mmio_enable_radio -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xa9423c5e rt2800mmio_get_entry_state -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xb8b92359 rt2800mmio_write_tx_desc -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xd3f890a6 rt2800mmio_start_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xd6d67c1f rt2800mmio_kick_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xdcca7396 rt2800mmio_get_dma_done -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x01651320 rt2x00lib_suspend -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x068c8d57 rt2x00mac_rfkill_poll -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0d6f43a3 rt2x00mac_set_antenna -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1344e826 rt2x00mac_set_key -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2759c25d rt2x00queue_map_txskb -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2f69dcae rt2x00lib_dmadone -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x32eae1a4 rt2x00mac_flush -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3ca8d4b5 rt2x00lib_set_mac_address -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3d4a0007 rt2x00lib_get_bssidx -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3de0af54 rt2x00mac_bss_info_changed -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3f41a4bb rt2x00queue_unpause_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x42cd4c19 rt2x00mac_get_antenna -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x489ae447 rt2x00mac_sw_scan_start -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4bcbb278 rt2x00mac_add_interface -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4e33fb35 rt2x00lib_resume -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x541f6627 rt2x00lib_remove_dev -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x565e201c rt2x00lib_beacondone -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x59c1bfb5 rt2x00mac_configure_filter -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5a3ad067 rt2x00mac_config -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6147c3a4 rt2x00lib_probe_dev -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x65ab9664 rt2x00lib_pretbtt -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x720b039c rt2x00lib_txdone -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x75c0d077 rt2x00queue_flush_queues -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x79c4ac7a rt2x00queue_get_entry -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7b95997f rt2x00mac_start -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8210ade1 rt2x00mac_remove_interface -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x830bfe82 rt2x00mac_get_stats -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x85b227be rt2x00queue_stop_queues -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8b235b58 rt2x00lib_rxdone -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8f360afe rt2x00mac_set_tim -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8f3cdf80 rt2x00queue_pause_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9bf1363d rt2x00lib_txdone_noinfo -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9f177c1a rt2x00queue_start_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xac051db7 rt2x00queue_for_each_entry -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xaddc7b8a rt2x00queue_start_queues -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb9ec2327 rt2x00mac_conf_tx -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xceaa6822 rt2x00mac_tx -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xdd54d395 rt2x00queue_unmap_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe1e70ba0 rt2x00mac_stop -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe746f3ab rt2x00mac_sw_scan_complete -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xecfaa2af rt2x00queue_flush_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xef76672a rt2x00mac_get_ringparam -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf1b6260f rt2x00mac_reconfig_complete -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf3f3d622 rt2x00queue_stop_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf66f3e71 rt2x00lib_txdone_nomatch -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf6af0601 rt2x00mac_tx_frames_pending -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfcd27a47 rt2x00lib_dmastart -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x61a7f4b0 rt2x00mmio_regbusy_read -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x7bc7b5c5 rt2x00mmio_flush_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xcd9a903e rt2x00mmio_initialize -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xe69f236f rt2x00mmio_rxdone -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xeefe5d1b rt2x00mmio_uninitialize -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x546e0634 rt2x00pci_remove -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xbd706312 rt2x00pci_probe -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xd04466da rt2x00pci_pm_ops -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x206adba7 rt2x00usb_register_read_async -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x2134339f rt2x00usb_vendor_req_buff_lock -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x6c548486 rt2x00usb_uninitialize -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x6da97924 rt2x00usb_probe -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x74f3c254 rt2x00usb_suspend -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x933cfa19 rt2x00usb_disable_radio -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x934a775c rt2x00usb_disconnect -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x93d67aac rt2x00usb_regbusy_read -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x9ebd9bff rt2x00usb_flush_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xa0adf1ec rt2x00usb_kick_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xa55c173d rt2x00usb_vendor_request -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xcb81d401 rt2x00usb_watchdog -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xcf849839 rt2x00usb_vendor_request_buff -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xd675e355 rt2x00usb_initialize -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xeed5eec8 rt2x00usb_resume -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xf37b5d9b rt2x00usb_clear_entry -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x62a1e7c7 dm_restorepowerindex -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x88407031 dm_savepowerindex -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8f6c31b6 dm_writepowerindex -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xdaa41b93 rtl92c_set_p2p_ps_offload_cmd -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1364a8d1 rtl8723_phy_txpwr_idx_to_dbm -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1453e359 rtl8723_dm_init_dynamic_bb_powersaving -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1cdd31a5 rtl8723_download_fw -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1d2335d2 rtl8723_enable_fw_download -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1fcbdb4a rtl8723_phy_path_a_fill_iqk_matrix -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x28dfb3f3 rtl8723_phy_reload_adda_registers -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x300703cb rtl8723be_firmware_selfreset -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x34474dd3 rtl8723_dm_init_dynamic_txpower -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3a22530f rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xd5865f99 rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xd58d1479 rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xdd950893 rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1591fb2c rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1778c0b2 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1a78d6e8 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x226f642a rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2f60ede2 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x31055019 rt2x00lib_set_mac_address +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3319c257 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x33c88e39 rt2x00mac_reconfig_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x44914831 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x470cd26a rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4ad0d76c rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4db4b6fe rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4fade8bc rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x59868734 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5a9e8441 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5ad87847 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x63277dcd rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x66170b0d rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x696e534b rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6b62c2f6 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x70b7bc8b rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7128ef81 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x79bd6a9c rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x79c238f2 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7a422d10 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8229aecb rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x87df86b4 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8948cdc7 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8a9790d8 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8fee0a1e rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x91289f3a rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xabd46f64 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xae13ed60 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb619f31f rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb84f885d rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xba56597b rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbadaf09d rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbbda00c7 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xcb2879f2 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xcd7b3640 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd464a50b rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd998a412 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe758b52d rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xecb09440 rt2x00lib_txdone_nomatch +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xef396e5a rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfac474ec rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfae90048 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x53b63533 rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x5759d7d8 rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x8c9eda82 rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xc749444c rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xdbc7831a rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x01600b11 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x2e8ac824 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xc4621ded rt2x00pci_pm_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x0ae253de rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x0fc29d5c rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x1686b0a8 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x1b5bb80f rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x36dfb531 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x5d30c55f rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x67966458 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7b886fdf rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x8f7736c6 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x90b1a644 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x93a3484d rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x9fdf7fce rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xc082dcb6 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xc906828d rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xe127d75c rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xeca74828 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3094eabe rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6c1fa9ac dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbadbac4e dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf9013925 dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0c7f2ccd rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x27c23384 rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x28a47bc0 rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x2acc43fe rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3c3b169f rtl8723_phy_path_a_standby EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3f5bf9c0 rtl8723_phy_calculate_bit_shift -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x41a24bfb rtl8723_phy_reload_mac_registers -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4c610d2a rtl8723_phy_init_bb_rf_reg_def -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x587fdc69 rtl8723_phy_set_bb_reg -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x5aa7a0c9 rtl8723_phy_save_mac_registers -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7b77f1f1 rtl8723_phy_rf_serial_read -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x8311a8d4 rtl8723_phy_path_a_standby -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x888f58a2 rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3fc8ad6d rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4cac6c0b rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4edf55c3 rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x63e68152 rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x683a6bf1 rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x719a4ed6 rtl8723_dm_init_dynamic_txpower EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x8baf8913 rtl8723_phy_set_sw_chnl_cmdarray -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x9071c9c4 rtl8723_phy_mac_setting_calibration -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x9a23cd7e rtl8723ae_firmware_selfreset -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xb840a816 rtl8723_phy_query_bb_reg -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xdaf02cbf rtl8723_cmd_send_packet -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xdb668978 rtl8723_phy_path_adda_on -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xddf01079 rtl8723_write_fw -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xde31eeaf rtl8723_dm_init_edca_turbo -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xeae92648 rtl8723_phy_rf_serial_write -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xeffff4f1 rtl8723_fw_free_to_go -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x09777060 rtl_fw_page_write -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0a61ec47 rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x912392dc rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x94fc08ec rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x98931ea0 rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x9fea4d6d rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xa48e9458 rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xa499cc23 rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xb3efc09f rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xbbfcb770 rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xc6e77c8e rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xcc931082 rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xda488653 rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xdf3ddb78 rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xe530daaf rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf3a0b7dd rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x04467526 rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x04c17c98 rtl_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0764e46d rtl_lps_leave +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x11e644fe rtl_efuse_ops_init +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x19873796 rtl_action_proc EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2853a5ef rtl_global_var EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2921a4d4 rtl_btc_status_false EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2d32cdfc rtl_lps_change_work_callback EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e5382f9 rtl_fill_dummy -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x34ee4c71 rtl_tx_ackqueue -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4098a38a rtl_fw_block_write -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x47c4d170 rtl_recognize_peer -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4cf73260 rtl_beacon_statistic -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x500246d2 rtl_lps_leave -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x614c0ebd read_efuse_byte -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x66abd1f7 rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3ac90c71 rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3b3a80c8 rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3e3dd0dd rtl_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4f7e42c9 read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x66db277e rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x67fd74cb rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x68084218 rtl_deinit_rfkill EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6db3ba37 rtl_update_beacon_work_callback -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6ffc6061 rtl_efuse_ops_init -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8f1222a2 rtl_deinit_core -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x933e25d7 rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x721b3f64 rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7481a44e rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8120e145 rtl_get_hwinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9395c875 rtl_tx_report_handler EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663 rtl_tid_to_ac -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x99e3eb5e rtl_tx_report_handler -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa0526903 rtl_is_special_data -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa2d36c30 rtl_p2p_info -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbff60c38 rtl_deinit_deferred_work -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc3a09022 rtl_lps_enter -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc7f7f3bb rtl_set_tx_report -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc99a5ff3 rtl_ips_nic_on -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xca85a8b2 rtl_swlps_beacon -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xce8511f1 rtl_deinit_rfkill -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd68ef989 rtl_ops -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe3283199 rtl_get_hal_edca_param -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xee1a54c2 rtl_get_hwinfo -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfc01903d rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa557e8bf rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xadaefb5e rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb8e691a5 rtl_lps_enter +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc327334c rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xca1eacb5 rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd09f2350 rtl_tx_ackqueue +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe553bc68 rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe9e5b0ed rtl_set_tx_report +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf07f7c6e rtl_get_hal_edca_param +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x05c676a6 rsi_91x_deinit EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9 rsi_zone_enabled -EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x1e08a2e8 rsi_hal_device_init -EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x47e58df3 rsi_91x_deinit -EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x9e3627ed rsi_91x_init -EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0xc415dcd8 rsi_read_pkt +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x3ddd4292 rsi_91x_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x5bf686ae rsi_hal_device_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0xc091f0ff rsi_mac80211_detach EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0xcd173710 rsi_dbg -EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0xed433dc3 rsi_mac80211_detach -EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x38304da7 cw1200_core_probe -EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x680a43a9 cw1200_core_release -EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x894aeffc cw1200_irq_handler -EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0xf3e61f24 cw1200_can_suspend -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x330da8da wl1251_free_hw -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x6bf46aa9 wl1251_alloc_hw -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xc15e9bdc wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0xdb3bbb34 rsi_read_pkt +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x587a3995 cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x6b1a22cd cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0xd4939bad cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0xe67d0984 cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x1c4446cc wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xa9953069 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xe93b7c13 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x01d72c5b wl1271_cmd_data_path EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e wl12xx_debug_level -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0b5602fa wlcore_set_partition -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0d5f5287 wl1271_acx_set_ht_capabilities -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1644378f wl1271_cmd_configure -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1a578a1c wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x09a478b1 wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x11f1eb00 wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x149fbe00 wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x18c6ba7c wl1271_cmd_test EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x20351125 wlcore_get_native_channel_type -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x20ad32d4 wlcore_disable_interrupts_nosync -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2d3a9917 wl1271_tx_flush -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2f1656aa wl1271_acx_init_mem_config -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x331c3c71 wl1271_cmd_send -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x487fd5ec wlcore_boot_upload_nvs -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x50c2e438 wlcore_alloc_hw -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x547b3208 wl1271_acx_pm_config -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5a169d84 wlcore_probe -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5b267f79 wlcore_event_soft_gemini_sense -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6fbe8e6d wlcore_event_roc_complete -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x73fff787 wlcore_event_channel_switch -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x79d34694 wlcore_event_max_tx_failure -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7c9cd012 wl12xx_acx_mem_cfg -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x82a19318 wlcore_boot_run_firmware -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x82b7bf4d wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x260a8a55 wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2b566bda wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2d985b8c wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2ee8f534 wlcore_event_fw_logger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x37bb48b0 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x39e896d1 wlcore_cmd_generic_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3bedde62 wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x409ef1bc wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4814d490 wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4e38b68e wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4ef11b22 wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x56e30460 wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6111380a wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6ceea8ce wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6e04d50b wl1271_cmd_configure EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x85498cd1 wl1271_format_buffer -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8623cfdd wl1271_debugfs_update_stats -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8722e9bc wlcore_enable_interrupts -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8acc328f wlcore_set_scan_chan_params -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8d431d3b wlcore_event_sched_scan_completed -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8f3a8d24 wlcore_event_ba_rx_constraint -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9291d494 wl1271_cmd_test -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xad7e978e wlcore_event_inactive_sta -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb5a3acdf wlcore_event_fw_logger -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xbbc2e5e0 wlcore_event_rssi_trigger -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xbe863b25 wl1271_cmd_data_path -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc34785bf wlcore_cmd_wait_for_event_or_timeout -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc5f06e84 wlcore_free_hw -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc8da3e5a wlcore_cmd_generic_cfg -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc9f0610a wlcore_event_beacon_loss -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd4ed0ea5 wlcore_set_key -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd5cb0e36 wlcore_synchronize_interrupts -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd5de195a wlcore_scan_sched_scan_ssid_list -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xdc70b9be wlcore_remove -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xdd302d9e wlcore_boot_upload_firmware -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe86d188e wl1271_tx_min_rate_get -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xecea44b4 wlcore_disable_interrupts -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xed777924 wlcore_translate_addr -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf460f8fd wl1271_acx_sleep_auth -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xff06f4c8 wlcore_scan_sched_scan_results -EXPORT_SYMBOL_GPL drivers/net/wwan/wwan 0x39eacd0c wwan_port_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x886bc9ed wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9cc9fc3b wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa0968e8b wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb1a00bdf wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb30f27cd wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb7b7b735 wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xbd4d88eb wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc2ab3954 wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc3700392 wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc419f026 wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc7e0c2c3 wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xcf8f0691 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd0c6146c wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd71dc5ed wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe0d801d2 wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe2b8c978 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe4c08c55 wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe4e7c0d6 wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xeda75ede wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf427e399 wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf54e17a2 wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf8db888d wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfd01d6f1 wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wwan/wwan 0x11134a89 wwan_unregister_ops +EXPORT_SYMBOL_GPL drivers/net/wwan/wwan 0x3b788743 wwan_put_debugfs_dir EXPORT_SYMBOL_GPL drivers/net/wwan/wwan 0x3d9bbf75 wwan_port_txon EXPORT_SYMBOL_GPL drivers/net/wwan/wwan 0x4dff61e5 wwan_port_txoff EXPORT_SYMBOL_GPL drivers/net/wwan/wwan 0x526bcf2a wwan_port_get_drvdata -EXPORT_SYMBOL_GPL drivers/net/wwan/wwan 0x8759ed5e wwan_register_ops -EXPORT_SYMBOL_GPL drivers/net/wwan/wwan 0x919e5bcc wwan_unregister_ops -EXPORT_SYMBOL_GPL drivers/net/wwan/wwan 0x9a925f55 wwan_put_debugfs_dir EXPORT_SYMBOL_GPL drivers/net/wwan/wwan 0xb74c31cd wwan_remove_port -EXPORT_SYMBOL_GPL drivers/net/wwan/wwan 0xc523e7dd wwan_get_debugfs_dir -EXPORT_SYMBOL_GPL drivers/net/wwan/wwan 0xc7ed456f wwan_create_port -EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x0884d53a nfcmrvl_nci_unregister_dev -EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0xacb62c90 nfcmrvl_nci_recv_frame -EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0xb98df22f nfcmrvl_parse_dt -EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0xe5a17632 nfcmrvl_nci_register_dev -EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x328e7259 pn533_finalize_setup -EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x9b3c48b7 pn533_rx_frame_is_cmd_response -EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x9eecc008 pn53x_common_init -EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xa4ac2919 pn53x_common_clean -EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xb0fefbeb pn532_i2c_nfc_alloc -EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xc3401f13 pn53x_register_nfc +EXPORT_SYMBOL_GPL drivers/net/wwan/wwan 0xc9267c2e wwan_create_port +EXPORT_SYMBOL_GPL drivers/net/wwan/wwan 0xe6f639c5 wwan_port_rx +EXPORT_SYMBOL_GPL drivers/net/wwan/wwan 0xf597b9fd wwan_register_ops +EXPORT_SYMBOL_GPL drivers/net/wwan/wwan 0xf5bb27c0 wwan_get_debugfs_dir +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x421fecd2 nfcmrvl_parse_dt +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x431d874a nfcmrvl_nci_register_dev +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x60fc66bf nfcmrvl_nci_recv_frame +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x7e769986 nfcmrvl_nci_unregister_dev +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x26ab9bf5 pn532_i2c_nfc_alloc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x57f6de31 pn533_rx_frame_is_cmd_response +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x77a3f470 pn53x_register_nfc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x8b6480ae pn533_finalize_setup +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x8d78fc32 pn53x_common_init +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x9ec4fc26 pn53x_common_clean +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xd86b2524 pn53x_unregister_nfc EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xdecfd339 pn533_rx_frame_is_ack -EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xf0276a39 pn53x_unregister_nfc -EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x03552377 st_nci_remove -EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x04050eb4 st_nci_disable_se -EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x13d2bbc8 st_nci_discover_se -EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x1420d42e st_nci_hci_cmd_received -EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x5566cc10 st_nci_enable_se -EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x6c4c4eeb st_nci_probe -EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x8a1e4932 st_nci_hci_event_received -EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xa5e9a89a st_nci_hci_load_session -EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x1ee0b506 st95hf_spi_recv_response -EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x8c96b444 st95hf_spi_send -EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0xc16e987b st95hf_spi_recv_echo_res +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x16a335e7 st_nci_probe +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x3486b366 st_nci_hci_load_session +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x4552ad6b st_nci_disable_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x5f98a3e8 st_nci_remove +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xc58ea744 st_nci_hci_event_received +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xd2eaa349 st_nci_discover_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xf62f2345 st_nci_hci_cmd_received +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xf97cfe4b st_nci_enable_se +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x8af15b8a st95hf_spi_send +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0xa90ec6b7 st95hf_spi_recv_response +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0xc794647a st95hf_spi_recv_echo_res EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x0862001f ntb_transport_tx_free_entry +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x0aa1d3bf ntb_transport_unregister_client EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x30934216 ntb_transport_max_size EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x32537aca ntb_transport_link_query EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x3d54dbfc ntb_transport_tx_enqueue EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x436098aa ntb_transport_link_down -EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x4bf4e008 ntb_transport_create_queue -EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x759938e7 ntb_transport_register_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x5bc004f5 ntb_transport_register_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x78577db7 ntb_transport_create_queue EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x82e6c13d ntb_transport_qp_num EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x9c992c8f ntb_transport_link_up EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0xc270dc24 ntb_transport_free_queue EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0xc37d9036 ntb_transport_rx_remove EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0xd40e7a02 ntb_transport_rx_enqueue -EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0xe4962693 ntb_transport_unregister_client EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0xf55d6313 ntb_transport_register_client_dev EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0xf9eb813f ntb_transport_unregister_client_dev -EXPORT_SYMBOL_GPL drivers/nvdimm/nd_virtio 0x2d94da48 virtio_pmem_host_ack -EXPORT_SYMBOL_GPL drivers/nvdimm/nd_virtio 0xfb4b268e async_pmem_flush +EXPORT_SYMBOL_GPL drivers/nvdimm/nd_virtio 0x626ad55a virtio_pmem_host_ack +EXPORT_SYMBOL_GPL drivers/nvdimm/nd_virtio 0xe09a59b2 async_pmem_flush EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0x01850555 nvme_auth_generate_key EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0x1d3b270f nvme_auth_transform_key EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0x22e5d1de nvme_auth_augmented_challenge -EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0x395bddb9 nvme_auth_gen_shared_secret +EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0x2a81acb9 nvme_auth_gen_privkey EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0x399d9ac8 nvme_auth_hmac_hash_len EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0x51873876 nvme_auth_get_seqnum EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0x674c5bc1 nvme_auth_hmac_name EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0x6adadbb4 nvme_auth_free_key EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0x6e91ee1b nvme_auth_digest_name EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0x780989d1 nvme_auth_dhgroup_id +EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0x85cdd379 nvme_auth_gen_shared_secret EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0x9070925e nvme_auth_extract_key -EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0xb4610473 nvme_auth_gen_privkey EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0xc9bb48ac nvme_auth_dhgroup_name EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0xcb39603c nvme_auth_hmac_id -EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0xf009028d nvme_auth_gen_pubkey +EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0xe2bba1de nvme_auth_gen_pubkey EXPORT_SYMBOL_GPL drivers/nvme/common/nvme-common 0xf0ccf2d4 nvme_auth_dhgroup_kpp -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x04a2c866 __nvme_check_ready -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x072c13e8 nvme_unquiesce_io_queues -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x09cdb5f2 nvme_cancel_request -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0ab6de30 nvme_fail_nonready_command -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x115542d2 nvme_reset_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0ae5e221 nvme_alloc_io_tag_set +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0ed1f32b nvme_auth_free EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x11abc494 __SCK__tp_func_nvme_sq -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x18eff76c nvme_init_ctrl -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x197c3a1f nvme_stop_keep_alive -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x1f553b53 nvme_get_features -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x2101f6f5 nvme_host_path_error -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x22ae150a nvme_wait_reset -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x24cb3072 nvme_stop_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x126b0b7a nvme_dev_attrs_group +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x1387bded nvme_auth_negotiate +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x14f45c55 nvme_cancel_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x15b7a5d9 nvme_stop_keep_alive +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x17f8e9ba nvme_auth_init_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x1fbb1b14 __nvme_submit_sync_cmd EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x27fcbedb __tracepoint_nvme_sq -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x2a7431a9 nvme_wait_freeze -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x2cacd607 nvme_dev_attrs_group -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x38851dd7 nvme_complete_batch_req -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x3b8e1e40 nvme_start_freeze -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x4190899f nvme_mark_namespaces_dead -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x43c7e310 nvme_start_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x2d9e4b76 nvme_sync_io_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x31bf64cf nvme_disable_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x341b376c nvme_init_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x3a319d8e nvme_init_ctrl_finish +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x3baf1a5e nvme_auth_wait +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x4837e0da nvme_submit_sync_cmd EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x49224181 nvme_reset_wq -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x51fbdc26 nvme_unfreeze -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x571c3299 nvme_init_ctrl_finish -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x5a6fa2d2 nvme_remove_namespaces -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x5c47d3f7 __traceiter_nvme_sq -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x5c7dd54f nvme_cancel_admin_tagset -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x5d438dd5 nvme_quiesce_io_queues -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x6266a747 nvme_cleanup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x49d28aa8 nvme_quiesce_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x530575d0 nvme_stop_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x5e93a59d nvme_change_ctrl_state EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x64b62862 nvme_wq -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x6d851d03 nvme_submit_sync_cmd -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x71c232dc nvme_uninit_ctrl -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7546a717 nvme_sync_queues -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7638877e nvme_mpath_start_request -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x78776d26 nvme_auth_wait -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7ac2388a nvme_enable_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x6515dfe0 nvme_set_queue_count +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x6841687f nvme_quiesce_io_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x6dc5e4f1 nvme_start_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x6ee38802 nvme_alloc_admin_tag_set +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x73f99d76 nvme_cancel_tagset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x744d3a06 nvme_wait_freeze_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x76ac042b nvme_mark_namespaces_dead +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x79a6f478 nvme_setup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x805117f2 nvme_unquiesce_admin_queue EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x813cf212 nvme_io_timeout -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x87e71032 nvme_alloc_admin_tag_set -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8ad3bd33 nvme_complete_async_event -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x9375ec2d nvme_unquiesce_admin_queue -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x977825ad nvme_auth_free -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x98031aba nvme_wait_freeze_timeout -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x9b13cd9d nvme_auth_stop -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xa31668e9 nvme_sync_io_queues -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xb028d3b6 nvme_auth_init_ctrl -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xb95cee96 nvme_set_queue_count -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xba9c4954 nvme_remove_io_tag_set -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xc57ef524 nvme_alloc_io_tag_set -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xc796eb24 nvme_complete_rq -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd278981a nvme_auth_negotiate +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x814a83ed nvme_start_freeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x872e102a __traceiter_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8af85454 nvme_cleanup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8b9482aa nvme_wait_reset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8e1059d7 nvme_remove_admin_tag_set +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8f78c730 nvme_delete_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x97d8f66a nvme_get_features +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x9830bd65 nvme_set_features +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xa1e2ced8 nvme_uninit_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xa8968db1 nvme_complete_rq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xabbdd2c7 nvme_sync_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xac382344 nvme_host_path_error +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xacecabf3 nvme_try_sched_reset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xaedb3e15 nvme_complete_async_event +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xb003e4a3 nvme_unquiesce_io_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xb81dd844 nvme_remove_namespaces +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xca42d966 __nvme_check_ready +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xce9819a6 nvme_enable_ctrl EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd45434ee admin_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd45f8b91 nvme_reset_ctrl EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd58bbbcb nvme_delete_wq -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xda039d7b nvme_set_features -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xe0118fdb nvme_setup_cmd -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xe439c5ef nvme_init_request -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xeac245ae nvme_change_ctrl_state -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xee2a40bf nvme_quiesce_admin_queue -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xeea14b4f nvme_cancel_tagset -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xf62d626c nvme_delete_ctrl -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xf9925a59 nvme_remove_admin_tag_set -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xfa464266 __nvme_submit_sync_cmd -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xfb63c8db nvme_disable_ctrl -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xfd33dde2 nvme_try_sched_reset -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x061971f3 nvmf_ip_options_match -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x142eeffe nvmf_unregister_transport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd6163e3f nvme_unfreeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xe12e138c nvme_fail_nonready_command +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xe2c222a3 nvme_remove_io_tag_set +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xecb26f75 nvme_wait_freeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xed21a767 nvme_cancel_admin_tagset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xf9aba82d nvme_init_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xf9e4514d nvme_mpath_start_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xfbff9941 nvme_complete_batch_req +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xfcf79b88 nvme_auth_stop +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x0548f195 nvmf_ip_options_match EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x1e328d22 nvmf_set_io_queues -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x213ed31d nvmf_reg_read64 -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x245cb787 nvmf_get_address -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x2e5aca4f nvmf_register_transport -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x2fec72fb nvmf_reg_write32 -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x5c35f5fb nvmf_connect_io_queue -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x8c5adc5f nvmf_should_reconnect -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x9f28bcb0 nvmf_connect_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x2027f4a7 nvmf_connect_io_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x2ca95498 nvmf_should_reconnect +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x3ffbe7f0 nvmf_unregister_transport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x45424235 nvmf_get_address +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x66f91fec nvmf_reg_read64 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x7ed7962b nvmf_register_transport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xa0163d9d nvmf_reg_read32 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xc967b6e1 nvmf_map_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xd048f4a4 nvmf_connect_admin_queue EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xdd8af66e nvmf_free_options -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xeb6c68c5 nvmf_reg_read32 -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xec6bb21e nvmf_map_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xeb2de3e5 nvmf_reg_write32 EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x0d12e564 nvme_fc_register_remoteport -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x284f268a nvme_fc_register_localport EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x3884f8b8 nvme_fc_unregister_localport EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x3e33ac54 nvme_fc_rescan_remoteport EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x8a9cf5a7 nvme_fc_set_remoteport_devloss +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x96c38c4e nvme_fc_register_localport EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0xbb0e18a6 nvme_fc_rcv_ls_req EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0xcc8a2d78 nvme_fc_io_getuuid EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0xfca9dc99 nvme_fc_unregister_remoteport -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x16f1d97c nvmet_req_complete -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x355385ef nvmet_register_transport -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x3d22ed51 nvmet_req_uninit +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x0738ea43 nvmet_unregister_transport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x0c69f10a nvmet_sq_init EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x3e0ef07a nvmet_wq -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x5e2835d4 nvmet_req_init -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x911ff666 nvmet_check_transfer_len -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x957c7340 nvmet_sq_destroy -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xc63ef817 nvmet_unregister_transport -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xd2472004 nvmet_ctrl_fatal_error -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xd410786c nvmet_req_free_sgls -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xf1607ef3 nvmet_req_alloc_sgls -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xf29d68ce nvmet_sq_init +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x4217f768 nvmet_req_alloc_sgls +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x4f4ca46a nvmet_check_transfer_len +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x71f0a842 nvmet_ctrl_fatal_error +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x76654354 nvmet_req_complete +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x8965f26d nvmet_req_init +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x91d25d55 nvmet_sq_destroy +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xb468ce17 nvmet_register_transport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xf02fd781 nvmet_req_free_sgls +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xf9bbfc79 nvmet_req_uninit EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x0b98123d nvmet_fc_rcv_ls_req EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x4a013682 nvmet_fc_invalidate_host EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x6ff62dab nvmet_fc_rcv_fcp_abort EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x7bfa9497 nvmet_fc_rcv_fcp_req EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x9ef76d99 nvmet_fc_unregister_targetport -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0xd7ca0ca9 nvmet_fc_register_targetport -EXPORT_SYMBOL_GPL drivers/pci/switch/switchtec 0x58f42bff switchtec_class -EXPORT_SYMBOL_GPL drivers/phy/allwinner/phy-sun4i-usb 0x792986fe sun4i_usb_phy_set_squelch_detect -EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0x0c90a00d mcp23x17_regmap -EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0x3ceb04e2 mcp23x08_regmap -EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0xf714c2bb mcp23s08_probe_one -EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x0c5a849a reboot_mode_register -EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x59e94980 reboot_mode_unregister -EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0xcff44c5d devm_reboot_mode_unregister -EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0xe6b6e8b5 devm_reboot_mode_register -EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x3c5ffbb9 bq27xxx_battery_setup -EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x5c340c12 bq27xxx_battery_update -EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0xa244a24c bq27xxx_battery_teardown -EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x4080cc1f pcf50633_mbc_usb_curlim_set -EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0xc79f1d2e pcf50633_mbc_get_usb_online_status -EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0xd0933a67 pcf50633_mbc_get_status -EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x0ddbba19 mc13xxx_get_num_regulators_dt -EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x8252830a mc13xxx_fixed_regulator_set_voltage -EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x96f9b11e mc13xxx_fixed_regulator_ops -EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x9a28c319 mc13xxx_parse_regulators_dt -EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xc2358187 mc13xxx_regulator_ops -EXPORT_SYMBOL_GPL drivers/regulator/rohm-regulator 0x930ac0ef rohm_regulator_set_voltage_sel_restricted -EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x11fbc992 wm8350_dcdc25_set_mode -EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x18dcc8f6 wm8350_isink_set_flash -EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x3fd6719d wm8350_ldo_set_slot -EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x6b0e6b59 wm8350_register_regulator -EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa5b6e41e wm8350_register_led -EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xce476767 wm8350_dcdc_set_slot -EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x32146f0c wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0xe59a03ae nvmet_fc_register_targetport +EXPORT_SYMBOL_GPL drivers/pci/switch/switchtec 0xdca721a2 switchtec_class +EXPORT_SYMBOL_GPL drivers/phy/allwinner/phy-sun4i-usb 0x8014f7fe sun4i_usb_phy_set_squelch_detect +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0x5527480d mcp23x17_regmap +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0x655cece2 mcp23x08_regmap +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0x7e66b337 mcp23s08_probe_one +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x00679e7e devm_reboot_mode_unregister +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x381a8782 devm_reboot_mode_register +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x45690430 reboot_mode_unregister +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0xc821252b reboot_mode_register +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x652b98d5 bq27xxx_battery_teardown +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x712ced12 bq27xxx_battery_setup +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x9eec0431 bq27xxx_battery_update +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x346d2a18 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x39203de8 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0xd435885a pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x4a049c0e mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x57266235 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x908772c1 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xd3bf0659 mc13xxx_get_num_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xe4a1d9e6 mc13xxx_parse_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/rohm-regulator 0x70865456 rohm_regulator_set_voltage_sel_restricted +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x44f44df4 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x7aae49c3 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x872227de wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x98ed1321 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa211f9f2 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xf9a66686 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x81e91e76 wm8400_register_regulator EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0x149236da qcom_glink_native_remove -EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0x4e682a09 qcom_glink_native_probe +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0x56a78442 qcom_glink_native_probe EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0xf14f5684 qcom_glink_ssr_notify -EXPORT_SYMBOL_GPL drivers/rtc/rtc-ds1685 0xb657c3d6 ds1685_rtc_poweroff -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x01239221 cxgbi_device_find_by_netdev -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0f1a006b cxgbi_device_register -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x10cc3966 cxgbi_device_find_by_netdev_rcu -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x11408eb4 cxgbi_ep_connect -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x143db604 cxgbi_sock_rcv_wr_ack -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1eff0bf2 cxgbi_get_host_param -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x23a4750d cxgbi_device_unregister -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x23c2a4ee cxgbi_sock_free_cpl_skbs -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2d90f49f cxgbi_conn_tx_open -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2eac6eea cxgbi_device_find_by_lldev -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3dc7167c cxgbi_iscsi_init -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3ef8c7a5 cxgbi_parse_pdu_itt -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4d2b80e5 cxgbi_hbas_remove -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5183d20f cxgbi_iscsi_cleanup -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x574a5a5a cxgbi_sock_rcv_peer_close -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x60607532 cxgbi_destroy_session -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6da7af4f cxgbi_ep_disconnect -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7da60fce cxgbi_sock_closed -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7dd0a88d cxgbi_sock_skb_entail -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7ef1143a cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/rtc/rtc-ds1685 0xe8b360e6 ds1685_rtc_poweroff +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x070e28f6 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x082abe96 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x167aa90e cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x27e48212 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2a879ed9 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2e6b9491 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x36c6cba9 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x38d5ca6c cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3af698ef cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x470243de cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5c81598f cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5c9d91e3 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5f32c260 cxgbi_ddp_ppm_setup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x630cf48f cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x68e42165 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6a18d2e4 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6bb8ff50 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6ec24cd0 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7066bf94 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7ec9e235 cxgbi_ep_poll EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x80cc8ddb cxgbi_sock_established -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x820f8000 cxgbi_conn_xmit_pdu -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x822e2db0 cxgbi_ddp_ppm_setup EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8319f739 cxgbi_ddp_set_one_ppod -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x847ed9ea cxgbi_hbas_add -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x85601de3 cxgbi_sock_check_wr_invariants -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x87190c50 cxgbi_sock_select_mss -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8d9c9b05 cxgbi_get_conn_stats -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x904df2f3 cxgbi_ep_poll -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x90668a95 cxgbi_conn_alloc_pdu -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa15add38 cxgbi_set_host_param -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb561a497 cxgbi_create_session -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb5ab38cf cxgbi_get_ep_param -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb9b03008 cxgbi_conn_pdu_ready -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbc9acb1b cxgbi_sock_fail_act_open -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcf37685c cxgbi_cleanup_task -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd0158881 cxgbi_create_conn -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd34b172c cxgbi_device_portmap_create -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdaf30186 cxgbi_sock_rcv_abort_rpl -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe60011be cxgbi_conn_init_pdu -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xec095712 cxgbi_sock_purge_wr_queue -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xed688f59 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x846d5e6a cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9194110a cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x98df50e0 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9d2d93da cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa05a6062 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa0ee3709 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa68c38cf cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xae24146b cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xba1aa369 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbd71ceb2 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbfae7ed3 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc3b45d85 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xce07a209 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xce8c687b cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd2064091 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd2975a12 cxgbi_device_find_by_netdev_rcu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd6dbbe24 cxgbi_device_find_by_netdev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xddf7cff0 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdf6a444f cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe3f71212 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe41a59ff cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xec945d71 cxgbi_sock_skb_entail EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf96553ef cxgbi_sock_rcv_close_conn_rpl -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfad90d15 cxgbi_sock_act_open_req_arp_failure -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xffa3cab8 cxgbi_bind_conn -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x07c1eb04 fcoe_ctlr_device_delete -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0d217e9b fcoe_check_wait_queue -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x10ef9c89 fcoe_ctlr_get_lesb -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x11e4b8d6 fcoe_clean_pending_queue -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x14ada00f fcoe_get_wwn -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x3cc96547 fcoe_link_speed_update -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4ac07d33 fcoe_fc_crc -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x63a1d27b fcoe_fcf_device_add -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9022a4ee __fcoe_get_lesb -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xb4430f01 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf0c7d6ce cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf281b35f cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0d3e7fbc fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x151abb67 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x300104cf fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x332d06c0 fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x375f63b7 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x45724364 fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x53259f2c fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5942c97d fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5c2a58a6 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x681e23ec fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x74e64f71 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8deb92a3 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x968c683b fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xaa214161 fcoe_libfc_config EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xbac58840 fcoe_queue_timer -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xbd4ba819 fcoe_fcf_device_delete EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc3f30cc0 fcoe_wwn_from_mac -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xdad030bf fcoe_get_lesb -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe2e65c13 fcoe_start_io -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xeda444c1 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xcda11229 fcoe_link_speed_update EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf167cb7a fcoe_wwn_to_str -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf3a6e6d9 fcoe_validate_vport_create -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf8ad0d43 fcoe_libfc_config -EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0x8b9ad3ac fdomain_create -EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0xc4f34d6b fdomain_destroy -EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x0af7f448 iscsi_boot_create_target -EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x2b864cd9 iscsi_boot_destroy_kset -EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x3be6ae0d iscsi_boot_create_ethernet -EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x88078852 iscsi_boot_create_host_kset -EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xcb717e1b iscsi_boot_create_initiator -EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xce436dc7 iscsi_boot_create_kset -EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xe9feb6aa iscsi_boot_create_acpitbl +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xfb80a253 fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0x13311c0e fdomain_destroy +EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0x813d89e0 fdomain_create +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x001df74c iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x7c873f8a iscsi_boot_create_acpitbl +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x89a57feb iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x991db06e iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xca91f444 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xcc345680 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xd920d30d iscsi_boot_create_kset EXPORT_SYMBOL_GPL drivers/scsi/libfc/libfc 0x6635b0f7 fc_seq_els_rsp_send -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x062296ae iscsi_conn_send_pdu -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0a5c7484 iscsi_conn_queue_recv -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0db38f6e iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x07455d86 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x089340e2 iscsi_host_get_max_scsi_cmds +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0cd3b428 iscsi_session_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1224f458 iscsi_conn_queue_xmit EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x167cc8e0 iscsi_eh_device_reset -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1ac1fcb3 iscsi_requeue_task -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1c0cbe7c iscsi_suspend_rx -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3583b6b0 iscsi_conn_bind -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3ae37b57 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x140ab481 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1529f40a iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1594cb40 iscsi_eh_cmd_timed_out +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x15d15f6d iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x165e84a9 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1b80a844 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1b818774 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2d194455 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x36177214 iscsi_conn_unbind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3a4883e3 iscsi_update_cmdsn EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x40de4a74 iscsi_target_alloc -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4af99afc iscsi_conn_get_param -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x58540305 iscsi_eh_session_reset -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5a737921 iscsi_get_task -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x67dc9a0f __iscsi_put_task -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x680ce0b7 iscsi_conn_failure -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x68af9566 iscsi_conn_queue_xmit -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x69ad242b iscsi_host_set_param -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6c1a3ac5 iscsi_conn_setup -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6c55a97c iscsi_itt_to_ctask -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6d16b2fd __iscsi_complete_pdu -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7011a1c6 iscsi_put_task -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x73d06dbf iscsi_eh_cmd_timed_out -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8cee52ad iscsi_conn_unbind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3d0c12a0 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3d4f5d8e iscsi_suspend_rx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x47ebffa3 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b32da21 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4f532547 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x51997c47 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x52665c4d iscsi_conn_queue_recv +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x66210068 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x677bab36 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6d3458dd iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x772a5c94 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x78b4d7fa iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7de0c7e9 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x81487283 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x87433690 iscsi_session_free EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8f2c8f1b iscsi_host_free -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x900a2ab1 iscsi_session_teardown -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x90a0236b iscsi_conn_stop -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x91d02b84 iscsi_update_cmdsn -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa17125a7 iscsi_host_remove -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4adf04a iscsi_session_setup -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaebc93da iscsi_prep_data_out_pdu -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbea1bcd0 iscsi_complete_scsi_task -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc3027506 iscsi_complete_pdu -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcb81c09e iscsi_host_alloc -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcc423320 iscsi_queuecommand -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd38242ca iscsi_conn_start -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe0b00ca6 iscsi_eh_abort -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe0f593c9 iscsi_suspend_queue -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe132a96b iscsi_session_free -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe2a2117c iscsi_session_failure -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe5e92fd0 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8dba6fe4 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9050debb iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x91315bb1 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9162862d iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x940f5556 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xacf052ca iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc05ed22a iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc47d7bdc iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc8c69975 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xce1a8a17 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd23f4b2f iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd7d142fb iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd996a736 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdc442c1e iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe01023e9 iscsi_verify_itt EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeab9cbd5 iscsi_conn_get_addr_param -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xec5a0c32 iscsi_set_param -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf1bf44e2 iscsi_host_get_max_scsi_cmds -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf427dfea iscsi_itt_to_task -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf4a324bc iscsi_session_get_param -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf57b6ccc iscsi_suspend_tx -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf856f86d iscsi_host_get_param -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfafc3b31 iscsi_eh_recover_target -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfdb3b2ad iscsi_session_recovery_timedout -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xff3c2c0d iscsi_session_remove -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0ed0751a iscsi_tcp_hdr_recv_prep -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2bb740be iscsi_tcp_r2tpool_free -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3f16e680 iscsi_tcp_dgst_header -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x42a8b2aa iscsi_tcp_task_init -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x522dde64 iscsi_tcp_segment_done -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x56d1a9ca iscsi_tcp_recv_segment_is_hdr -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6116f838 iscsi_tcp_set_max_r2t -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7db2e221 iscsi_segment_seek_sg -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xac1bf563 iscsi_tcp_segment_unmap -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb7b6cd08 iscsi_segment_init_linear -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbb146135 iscsi_tcp_conn_get_stats -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc99efbbc iscsi_tcp_cleanup_task -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcfe200b1 iscsi_tcp_conn_setup -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd789d7a2 iscsi_tcp_r2tpool_alloc -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd8da2530 iscsi_tcp_conn_teardown -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe135f7ba iscsi_tcp_task_xmit -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xff6a919b iscsi_tcp_recv_skb -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0fb841c8 sas_find_attached_phy_id -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1757ab51 sas_task_abort -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x25934793 sas_phy_reset -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2619345c sas_eh_device_reset_handler -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x31eb8743 sas_request_addr -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x32c903de sas_query_task -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3417c355 sas_abort_task_set -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3713f8df sas_change_queue_depth -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3cc0a7e7 sas_ioctl -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4ba12a33 sas_domain_attach_transport -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x65337501 sas_eh_target_reset_handler -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6cf22a16 sas_target_alloc -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6fbea5b9 sas_notify_phy_event -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7e3cca47 sas_clear_task_set -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8772331d sas_register_ha -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8eba9987 sas_execute_internal_abort_single -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x955900f3 dev_attr_phy_event_threshold -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9851d885 sas_eh_abort_handler -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9a077e6d sas_queuecommand -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa541b9d5 sas_notify_port_event -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa5a3df21 sas_execute_ata_cmd -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa98ad513 sas_slave_configure -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xae1b127b sas_ata_device_link_abort -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb83b1471 sas_target_destroy -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc2b7b8bf sas_ata_schedule_reset -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc7f1d5f0 sas_ssp_task_response -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcce5c8ab sas_lu_reset -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcd0b7d69 sas_phy_enable -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xde55cc22 smp_ata_check_ready_type -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe0646906 sas_unregister_ha -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe3de86fe sas_slave_alloc -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xee537472 sas_abort_task -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xef61364a sas_bios_param -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xefcfaf9a sas_execute_internal_abort_dev -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf1c4126f sas_get_local_phy -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfbe448fe sas_drain_work -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_fc 0x8d00cfcd fc_eh_should_retry_cmd -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0650310c iscsi_remove_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0934cd4a iscsi_flashnode_bus_match -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0ae94a7d iscsi_register_transport -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0e5f52d6 iscsi_lookup_endpoint -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0fa289c9 iscsi_destroy_endpoint -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x187382e7 iscsi_create_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1eb87baa iscsi_ping_comp_event -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x22d9cef2 iscsi_alloc_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x27a87de1 iscsi_dbg_trace -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2b7511ff iscsi_offload_mesg -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2fa86b2f iscsi_find_flashnode_sess -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2faa58e5 iscsi_put_conn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xebb0c495 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf15e1901 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf495618e iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfd652ca8 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0154cd5c iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0715d2e8 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x093692d6 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x13b8277c iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1639f0a5 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x19be8042 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x30a612d8 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x51852141 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x57fa54a4 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7b07db02 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa5381f89 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc0e45a93 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc8f539de iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd29dc019 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd7544d8d iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xeb591ff6 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf3d55402 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x01e6f3d1 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2175c931 sas_execute_ata_cmd +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2e0974fd sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2f11c06d sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3053194f sas_clear_task_set +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x36772b08 sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x45795896 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x45f726ac sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4be2ebf0 sas_execute_internal_abort_dev +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5568f1ef sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5a35b7bd sas_ata_device_link_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5e616b54 sas_abort_task_set +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6ace12f0 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x74d1c574 sas_notify_phy_event +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7abe9955 dev_attr_phy_event_threshold +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fdf506f sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8d023457 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8eaf242f sas_lu_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8f16ab30 sas_abort_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x932ec3ac sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x958a11e0 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x98a6065a sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa1829a37 sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa265863b sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa6583032 sas_eh_target_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaaee590e sas_find_attached_phy_id +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc78f368d smp_ata_check_ready_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc7935e81 sas_execute_internal_abort_single +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcf8ef7bc sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd0d0a137 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe2e23ecc sas_notify_port_event +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe5977444 sas_query_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe6f6f167 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf14d87eb sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf570c637 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfd5dce69 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_fc 0xc38770dd fc_eh_should_retry_cmd +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00832468 iscsi_dbg_trace +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0ac68cb5 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0bab04d3 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0e8535a9 iscsi_add_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x135901a9 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1cc44ee5 iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x24819e9b iscsi_force_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2cb9ac50 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2e4f2273 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x32415395 iscsi_create_flashnode_sess EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x363ef721 __tracepoint_iscsi_dbg_conn -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4d3a1dc0 __traceiter_iscsi_dbg_tcp -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4e8e257b iscsi_get_port_speed_name -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x51a4a1ef iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x374ee13d iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x40948d75 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4124704f iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4838f789 __traceiter_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4e9f9fde iscsi_put_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x54224a0f iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x57029a7d iscsi_host_for_each_session EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x584a31ab __SCK__tp_func_iscsi_dbg_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x60f7ce9a iscsi_create_iface -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x61b69e25 iscsi_session_chkready -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6496c48b iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5db1dfcd iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5f10ed3b iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x67adde4c __traceiter_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6877ea7a iscsi_free_session EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6c6970e1 iscsi_free_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6d9ecc6f iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6d1b8377 iscsi_find_flashnode_conn EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x71b768b0 __SCK__tp_func_iscsi_dbg_conn -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x780ee16b iscsi_destroy_all_flashnode -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x794400cc iscsi_session_event -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x81fa822c iscsi_create_flashnode_conn -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8259c90d iscsi_remove_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x780c7a1b iscsi_remove_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x794a205c iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x798c52eb iscsi_destroy_endpoint EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x84a005f1 iscsi_get_router_state_name -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x86e72503 iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8852ef48 iscsi_destroy_all_flashnode EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x88768c48 __SCK__tp_func_iscsi_dbg_tcp -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8ab57a64 iscsi_unblock_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8e47a398 iscsi_create_endpoint -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x901bc61c iscsi_host_for_each_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9582293e iscsi_get_port_state_name -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9af8e207 iscsi_put_endpoint -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9e628830 iscsi_force_destroy_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9f3e72ed iscsi_recv_pdu -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa0f40aad iscsi_alloc_conn -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa21928d8 iscsi_get_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8f805a5d __traceiter_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x910db382 iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa17e9a40 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa388bc9a iscsi_destroy_flashnode_sess EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa3ac06cf __tracepoint_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaa84ff0d iscsi_alloc_session EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xab4674c8 __SCK__tp_func_iscsi_dbg_sw_tcp -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xac19e663 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xad2ab0c4 iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb02301ad iscsi_get_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb0ef0f25 iscsi_post_host_event EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb32662a6 __tracepoint_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb85b886f iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb8ffcc68 iscsi_find_flashnode_sess EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbc071179 iscsi_get_ipaddress_state_name -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc2997508 iscsi_conn_login_event -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc4037f2e __traceiter_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbd1a178c iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbdfd0787 iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc13c8101 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc29fa3ea __traceiter_iscsi_dbg_conn EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc6264e7a __tracepoint_iscsi_dbg_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc9b72f46 iscsi_post_host_event -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcc6eda20 __traceiter_iscsi_dbg_eh -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcc9da7f1 __traceiter_iscsi_dbg_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xce8dac2a iscsi_add_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd5d368ca iscsi_add_conn -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd6d029ff iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcd16143e iscsi_is_session_online EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xda09b986 __tracepoint_iscsi_dbg_eh -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdca4cd3b iscsi_unregister_transport -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe0ba80e4 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe19c09af iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe36bdbd0 __traceiter_iscsi_dbg_eh EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe4c79fa6 __SCK__tp_func_iscsi_dbg_eh -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xecc5ba5b iscsi_conn_error_event -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf9fe2016 __traceiter_iscsi_dbg_sw_tcp -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfe587ff3 iscsi_destroy_flashnode_sess -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x1130878b sas_enable_tlr -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x53a45bb2 sas_disable_tlr -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x6588a0bd sas_tlr_supported -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x9875e513 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe564801b iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf14c0c09 iscsi_alloc_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf32f82df iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf8105906 iscsi_put_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xff3738f7 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x54820424 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xcad79804 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xce591c1b sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xdf1c2ff6 sas_is_tlr_enabled EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa30c7eb4 spi_populate_tag_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xaab182a7 spi_populate_tag_msg EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1902178a srp_tmo_valid -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x2e015311 srp_rport_del -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x51b75eaa srp_stop_rport_timers -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x59dba035 srp_attach_transport -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x78bd9555 srp_release_transport -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x9b85d912 srp_remove_host -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xdda52992 srp_rport_add -EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x18163ee9 siox_master_alloc -EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x228dee17 siox_device_synced -EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x25a298fd siox_master_register -EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x547b1f48 siox_device_connected -EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x86d2d9ed siox_master_unregister -EXPORT_SYMBOL_GPL drivers/siox/siox-core 0xd5b23b97 __siox_driver_register -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x223ceaad slim_unregister_controller -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x2569f6cf slimbus_bus -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x2eb429c0 slim_write -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x309eb059 slim_msg_response -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x35074530 slim_read -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x353f3ebb slim_stream_unprepare -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x4bb97f86 slim_xfer_msg -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x637042e6 slim_do_transfer -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7a1e6c21 slim_readb -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x8216d27a slim_alloc_txn_tid -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x85bfe1eb slim_stream_allocate -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x865e7ed6 of_slim_get_device -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x8af9ec4f slim_stream_prepare -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x8f73b7a6 slim_device_report_present -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x9f15f145 slim_register_controller -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x9fad1098 __slim_driver_register -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xa1eeeb01 slim_stream_disable -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xab1877eb slim_report_absent -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xb5dab6ce slim_driver_unregister -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xbe2182e3 slim_writeb -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xc20a72ce slim_stream_enable -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xce709e55 slim_get_logical_addr -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xd0de27e9 slim_stream_free -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xdbdc90f8 slim_ctrl_clk_pause -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xe0fedbec slim_get_device -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xfd1446d7 slim_free_txn_tid -EXPORT_SYMBOL_GPL drivers/soc/qcom/pmic_glink 0x28963461 devm_pmic_glink_register_client +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1dd4c808 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x5a1491e9 srp_stop_rport_timers +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8ba66e61 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc85378ac srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xe423e3c5 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xedfcfe3c srp_rport_del +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x328a0634 siox_master_register +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x3344585a siox_device_connected +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x6bc7f44e __siox_driver_register +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0xa46d3a3e siox_device_synced +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0xf1960dec siox_master_unregister +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0xffefc1cb siox_master_alloc +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x24a74f05 slim_stream_free +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x2e2d64fb slimbus_bus +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x31f2f903 slim_get_device +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x3411d417 slim_read +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x353fc1a7 slim_free_txn_tid +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x35682eac slim_alloc_txn_tid +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x4710a331 slim_unregister_controller +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x6eea1078 of_slim_get_device +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x6f9221bb slim_ctrl_clk_pause +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x73559bfd slim_driver_unregister +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x75021720 slim_writeb +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7a3375e4 slim_xfer_msg +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x88332624 slim_device_report_present +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x8d4b23f1 slim_register_controller +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x9233dd17 slim_write +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x928f0a55 slim_stream_allocate +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x976bf6f7 slim_do_transfer +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x9a733e94 slim_report_absent +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x9a824869 slim_readb +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xa2f8ed83 slim_stream_unprepare +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xa840315a slim_stream_disable +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xbce5339a slim_stream_enable +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xe16d161b slim_get_logical_addr +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xe39a1b8a slim_stream_prepare +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xf55d0229 slim_msg_response +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xf6ef64bf __slim_driver_register +EXPORT_SYMBOL_GPL drivers/soc/qcom/pmic_glink 0x12b183ba devm_pmic_glink_register_client EXPORT_SYMBOL_GPL drivers/soc/qcom/pmic_glink 0xc161d729 pmic_glink_send -EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x50f32437 sdw_unregister_driver -EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0xa4ca3484 __sdw_register_driver -EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0xe785ce0b sdw_bus_type -EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-cadence 0x61e1ce22 sdw_cdns_debugfs_init -EXPORT_SYMBOL_GPL drivers/spi/spi-altera-core 0x174ea850 altera_spi_init_host +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x1a06bc1f __sdw_register_driver +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x23e1d1be sdw_unregister_driver +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0xda5a7e3d sdw_bus_type +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-cadence 0x58821d66 sdw_cdns_debugfs_init +EXPORT_SYMBOL_GPL drivers/spi/spi-altera-core 0xb2089577 altera_spi_init_host EXPORT_SYMBOL_GPL drivers/spi/spi-altera-core 0xb9edd149 altera_spi_irq -EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x0d469d14 spi_bitbang_setup_transfer -EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x743eb8e4 spi_bitbang_setup -EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x7b63c70f spi_bitbang_stop -EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x7db614b5 spi_bitbang_init -EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x81ea8943 spi_bitbang_cleanup -EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xcbd7e63b spi_bitbang_start -EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0xa08a9a50 spi_test_run_test -EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0xae4e012e spi_test_execute_msg -EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0xdf71fdb9 spi_test_run_tests -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x211cbcaa spmi_controller_remove -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x649f18d4 spmi_command_sleep -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7eff529a __spmi_driver_register -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x805c380b spmi_controller_add -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x866b148d spmi_ext_register_writel -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x8a0c4f91 spmi_ext_register_readl -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x8fcfa30d spmi_command_reset -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x948adc93 spmi_device_alloc -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xa9cac09c spmi_ext_register_read -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xb477973a spmi_ext_register_write -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xbf01a805 spmi_register_zero_write -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xbff311ac spmi_command_shutdown -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xc876ae11 spmi_device_from_of -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xe772954f spmi_register_write -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xec378bb2 spmi_controller_alloc -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xf09d7a00 spmi_register_read -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xf3f02c53 spmi_device_add -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xf55d3299 spmi_device_remove -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xf9972de9 spmi_command_wakeup -EXPORT_SYMBOL_GPL drivers/ssb/ssb 0xfb86c814 ssb_pmu_spuravoid_pllupdate -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x0425d984 anybuss_client_driver_unregister -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x21afed8a anybuss_finish_init -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x2e41a59f anybuss_read_fbctrl -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x2e88c254 anybuss_send_ext -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x55add4ed anybuss_host_common_probe -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x59ecc025 anybuss_start_init -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x6304269c anybuss_set_power -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x7904ad03 anybuss_send_msg -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x82c75094 anybuss_write_input -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x857d4f03 devm_anybuss_host_common_probe -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x9fdcdfa0 anybuss_read_output -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xac490395 anybuss_recv_msg -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xf2f7a293 anybuss_client_driver_register +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x09c19349 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x23854e07 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x863d527a spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xc6d9ae04 spi_bitbang_init +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xcbbb5b08 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xd8afe9b3 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x66eb6502 spi_test_run_tests +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x95186408 spi_test_run_test +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0xc87c7500 spi_test_execute_msg +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x079bf60b spmi_device_add +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x1c4fcfb9 spmi_controller_remove +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x1da08769 spmi_controller_alloc +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x28f2638b spmi_ext_register_read +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x4113e33e spmi_command_sleep +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x42e930f8 spmi_command_shutdown +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x4edf77ca spmi_device_remove +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x5b5415d3 spmi_controller_add +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x5b74d0c4 __spmi_driver_register +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x728ee28a spmi_register_read +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7d495430 spmi_device_alloc +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xaefa66ac spmi_command_reset +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xba2952dc spmi_command_wakeup +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xbc359d3f spmi_ext_register_readl +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xc3dd500f spmi_register_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xce5a96ec spmi_register_zero_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xcf667bcf spmi_ext_register_writel +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xe96b50f4 spmi_ext_register_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xef02d0f1 spmi_device_from_of +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0xde228f35 ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x12fa481b anybuss_read_output +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x2335bce6 anybuss_client_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x32a32e13 anybuss_set_power +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x81df8c1d anybuss_recv_msg +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x97677884 anybuss_finish_init +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x9d5a2133 anybuss_start_init +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x9d84582b anybuss_send_msg +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xb97040ab devm_anybuss_host_common_probe +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xd843c5c6 anybuss_write_input +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xdd4ade8d anybuss_client_driver_register +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xde29c36d anybuss_read_fbctrl +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xf632b817 anybuss_host_common_probe +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xf8071964 anybuss_send_ext EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xfce879ad anybuss_host_common_remove -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x17f74828 fieldbus_dev_online_changed -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x194c04c4 fieldbus_dev_unregister -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x2850f72c fieldbus_dev_area_updated -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x89e8958c fieldbus_dev_register -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x178e5392 gb_audio_apbridgea_register_cport -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x1b262349 gb_audio_apbridgea_shutdown_tx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x26d6826c gb_audio_apbridgea_prepare_rx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x322b541a gb_audio_apbridgea_set_rx_data_size -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x4dc79b93 gb_audio_apbridgea_stop_tx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x9c78d807 gb_audio_apbridgea_stop_rx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xa20f99eb gb_audio_apbridgea_set_config -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xb932e0bc gb_audio_apbridgea_start_rx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xc08ea0e2 gb_audio_apbridgea_start_tx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xca9960dd gb_audio_apbridgea_shutdown_rx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xd999d2c3 gb_audio_apbridgea_unregister_cport -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xed7d07b9 gb_audio_apbridgea_set_tx_data_size -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xf769c1f8 gb_audio_apbridgea_prepare_tx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x02c1a4a3 gb_audio_gb_set_tx_data_size -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x1fa18258 gb_audio_gb_disable_widget -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x2532a5ef gb_audio_gb_deactivate_rx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x3640f4bd gb_audio_gb_set_rx_data_size -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x4070811a gb_audio_gb_get_pcm -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x44c5a4b3 gb_audio_gb_set_pcm -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x50e7b7c9 gb_audio_gb_activate_rx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x9b0c83a4 gb_audio_gb_get_control -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xa263976e gb_audio_gb_set_control -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xa73896c7 gb_audio_gb_get_topology -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xafa4064f gb_audio_gb_activate_tx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xb9b0bb65 gb_audio_gb_enable_widget -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xda711469 gb_audio_gb_deactivate_tx +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x45599837 fieldbus_dev_area_updated +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x765f0113 fieldbus_dev_online_changed +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0xdf071f06 fieldbus_dev_unregister +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0xf37ec70f fieldbus_dev_register +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x1e7f06ff gb_audio_apbridgea_set_tx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x22e66ba9 gb_audio_apbridgea_unregister_cport +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x44329806 gb_audio_apbridgea_set_config +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x5cb26e01 gb_audio_apbridgea_stop_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x5e260f32 gb_audio_apbridgea_stop_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x8bb9728f gb_audio_apbridgea_start_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x8c1d3789 gb_audio_apbridgea_register_cport +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x95be9c84 gb_audio_apbridgea_start_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xa16a9174 gb_audio_apbridgea_prepare_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xa3fef047 gb_audio_apbridgea_prepare_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xb5328d84 gb_audio_apbridgea_set_rx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xc0dda7d6 gb_audio_apbridgea_shutdown_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xc249c6e5 gb_audio_apbridgea_shutdown_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x140cd081 gb_audio_gb_set_rx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x1bb7e241 gb_audio_gb_get_topology +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x276bb297 gb_audio_gb_set_tx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x2ac6e08e gb_audio_gb_disable_widget +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x3ce31aeb gb_audio_gb_get_control +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x3f009b27 gb_audio_gb_deactivate_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x61db1971 gb_audio_gb_enable_widget +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x6d47c731 gb_audio_gb_set_pcm +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x71b3221e gb_audio_gb_get_pcm +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x74e637bb gb_audio_gb_deactivate_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xb2aa7d79 gb_audio_gb_activate_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xd5605fcd gb_audio_gb_set_control +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xf94cd1e5 gb_audio_gb_activate_tx EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x19e9e6b1 gb_audio_manager_remove_all +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x20b78995 gb_audio_manager_get_module EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x32e6391e gb_audio_manager_remove +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x43439e84 gb_audio_manager_put_module EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x5a108b0f gb_audio_manager_add EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x79eef2f8 gb_audio_manager_dump_all -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x85eb2c8f gb_audio_manager_get_module EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0xaeac8ca2 gb_audio_manager_dump_module -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0xbb236877 gb_audio_manager_put_module -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0x57794755 gb_gbphy_deregister_driver -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0xa1dff255 gb_gbphy_register_driver -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0x412c84de gb_spilib_master_exit -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0x97872da7 gb_spilib_master_init -EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x39e8811b adt7316_pm_ops -EXPORT_SYMBOL_GPL drivers/staging/media/av7110/sp8870 0x240d955b sp8870_attach -EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x15f715c2 target_init_cmd -EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x1d3609ed target_submit +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0xf7b636bc gb_gbphy_register_driver +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0xfe3428c9 gb_gbphy_deregister_driver +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0x42c0f418 gb_spilib_master_exit +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0xaedeb914 gb_spilib_master_init +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x4847b8dd adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/media/av7110/sp8870 0x9d57de72 sp8870_attach EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x24f56309 target_free_cmd_counter +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x43470fa5 target_submit EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x4d0acbf4 target_stop_cmd_counter EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x62fa6dbd target_alloc_cmd_counter +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x6b0e54d0 target_submit_prep +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x7bba16fd target_init_cmd +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0xae329a7f target_queue_submission EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0xae44fddc target_wait_for_cmds -EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0xc55ffc74 target_submit_prep -EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0xcf75e4ec target_queue_submission EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x01d23ee1 tb_property_create_dir -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x06520aaa tb_xdomain_alloc_out_hopid -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x09453083 tb_xdomain_find_by_route -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x2736f639 tb_register_service_driver -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x313ae9b4 tb_xdomain_type -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x32e5daf9 tb_ring_poll +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x0a62f6c8 tb_xdomain_alloc_in_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x0b5241ef tb_xdomain_lane_bonding_enable +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x215a040a tb_register_service_driver +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x296eafd7 tb_xdomain_find_by_route EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x393b4f2f tb_property_free_dir -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x45c24c8a tb_xdomain_lane_bonding_enable -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x49f85dd5 tb_xdomain_release_in_hopid -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x4bc195e3 tb_xdomain_release_out_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x3efaefed tb_ring_free +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x4231a6e1 tb_ring_start +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x4cc18ca2 tb_ring_alloc_tx EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x4e5064a7 tb_property_find EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x4e64bdfd tb_register_protocol_handler -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x58b592c6 tb_ring_stop +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x55c4f141 tb_xdomain_find_by_uuid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x58045e5e tb_ring_stop EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x603249ed tb_unregister_property_dir EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x658e3d97 tb_property_add_immediate -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x6751bca6 tb_ring_start -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x68064cb5 tb_xdomain_alloc_in_hopid EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x73ad2acb tb_property_get_next +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x785a0947 tb_xdomain_type EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x785eb82c tb_property_remove -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x8333692f tb_xdomain_enable_paths -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x83b09195 tb_xdomain_disable_paths +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x79d95de6 tb_xdomain_release_in_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7e94f5a0 tb_xdomain_release_out_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x8a052f56 tb_xdomain_lane_bonding_disable EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x8b62f95e tb_property_add_dir -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x94125fb1 tb_ring_free -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x98c27b1c tb_xdomain_response -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x9bb61d00 tb_xdomain_find_by_uuid -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x9f39fc1b tb_ring_poll_complete +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x8d375d61 tb_unregister_service_driver +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x9605e372 tb_service_type +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x9aae1eb8 tb_ring_poll +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xa23143c4 tb_xdomain_alloc_out_hopid EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xa3d2b403 tb_property_add_data EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xb7c7cdce tb_property_add_text -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xc032e0b9 tb_ring_alloc_tx -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xd6560039 tb_ring_alloc_rx -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xdbb1d074 tb_unregister_service_driver -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xdf650381 tb_service_type -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xdf70c295 tb_xdomain_request -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xe8c56c40 tb_xdomain_lane_bonding_disable +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xbe833440 tb_xdomain_response +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xc510e1b4 tb_xdomain_request +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xd2652888 tb_ring_poll_complete +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xe2e47e2f tb_xdomain_disable_paths +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xe3c8c196 tb_xdomain_enable_paths +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xebd644ec __tb_ring_enqueue EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xf1cfd1ff tb_register_property_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xf261c784 tb_ring_alloc_rx EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xf76028c7 tb_unregister_protocol_handler -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xfdb5897d __tb_ring_enqueue -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x0870cd54 ufshcd_hba_stop -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x1656ec0f ufshcd_link_recovery -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x1ff38d61 ufshcd_dump_regs -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x22235499 ufshcd_uic_change_pwr_mode -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x250a3813 ufshcd_dme_set_attr -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x294fb601 ufshcd_auto_hibern8_update -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x2ba0fbee ufshcd_mcq_poll_cqe_lock -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x32403131 ufshcd_update_evt_hist -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x40e693f5 ufshcd_init -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x5d4e1bba ufshcd_hold -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x6413b78f ufshcd_suspend_prepare -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x695a0971 ufshcd_fixup_dev_quirks -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x6e395ddf ufshcd_release +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x03c8fcb3 ufshcd_uic_hibern8_enter +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x10f8eba7 ufshcd_system_restore +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x11942415 ufshcd_hba_enable +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x21894993 ufshcd_uic_hibern8_exit +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x385e2f62 ufshcd_dump_regs +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x3bc5a0f7 ufshcd_mcq_config_esi +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x453663e8 ufshcd_config_pwr_mode +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x58d3e192 ufshcd_system_freeze +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x5fa637a9 ufshcd_get_vreg +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x6406a531 ufshcd_remove +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x6c604ede ufshcd_suspend_prepare EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x723b1abf ufshcd_delay_us -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x775b704b ufshcd_hba_enable -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7c16d36e ufshcd_clkgate_delay_set -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x932a3938 __ufshcd_suspend_prepare -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x97618e53 ufshcd_dme_get_attr -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xa34b15a3 ufshcd_system_restore -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xa916fec7 ufshcd_uic_hibern8_enter -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xab785adb ufshcd_dealloc_host -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xad56e856 ufshcd_remove -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xae9a8340 ufshcd_mcq_write_cqis -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xb5b07265 ufshcd_config_pwr_mode -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xb6b2a5ef ufshcd_dme_configure_adapt -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xc961658d ufshcd_resume_complete -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xc9698bae ufshcd_make_hba_operational -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xd1411414 ufshcd_system_thaw -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xd7c5d113 ufshcd_get_vreg -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xdea9275b ufshcd_system_freeze -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xf7f69fa4 ufshcd_mcq_enable_esi -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xf9e9d2cd ufshcd_uic_hibern8_exit -EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xfdd95f50 ufshcd_mcq_config_esi -EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x08f0ef89 ufshcd_populate_vreg -EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x32c21af5 ufshcd_pltfrm_init +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7b58de3b ufshcd_system_thaw +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x8175c60f ufshcd_hold +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x86482143 ufshcd_update_evt_hist +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x87997944 ufshcd_init +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x8e3fc80b ufshcd_resume_complete +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xaa8b7d3a ufshcd_mcq_enable_esi +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xab7e9e42 ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xac8e4732 ufshcd_mcq_write_cqis +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xad612f7a ufshcd_dme_configure_adapt +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xade83f3c ufshcd_hba_stop +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xaec2386d ufshcd_uic_change_pwr_mode +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xb415389b ufshcd_release +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xbba7fcd8 __ufshcd_suspend_prepare +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xc2b00f50 ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xca5af9db ufshcd_make_hba_operational +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xcea9e074 ufshcd_dealloc_host +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xe414f970 ufshcd_fixup_dev_quirks +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xe4c056af ufshcd_link_recovery +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xeacf9b7c ufshcd_clkgate_delay_set +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xf96c8e7c ufshcd_mcq_poll_cqe_lock +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xff8f5ff5 ufshcd_auto_hibern8_update +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x23edd1e6 ufshcd_pltfrm_init EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x54c946de ufshcd_init_pwr_dev_param EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x7a0460ff ufshcd_get_pwr_dev_param -EXPORT_SYMBOL_GPL drivers/uio/uio 0x45cccdb0 __uio_register_device -EXPORT_SYMBOL_GPL drivers/uio/uio 0x4ea55c1f uio_unregister_device -EXPORT_SYMBOL_GPL drivers/uio/uio 0xe2c7e14e __devm_uio_register_device -EXPORT_SYMBOL_GPL drivers/uio/uio 0xf77b774d uio_event_notify -EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x380f398a usbatm_usb_probe -EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x79b61337 usbatm_usb_disconnect -EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x026276de cdns_resume -EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x1b28a0ec cdns_power_is_lost -EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x32099100 cdns_set_vbus -EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x4dc9f11e cdns_clear_vbus -EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x917cc534 cdns_drd_gadget_off -EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xb6777807 cdns_remove -EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xbdbfd81d cdns_suspend -EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xd1880a74 cdns_drd_gadget_on -EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xf69259ba cdns_init -EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x2ffefe89 ci_hdrc_query_available_role -EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x685c57c2 hw_phymode_configure -EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x8c08d0ce ci_hdrc_remove_device -EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0xe0db5be6 ci_hdrc_add_device -EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x313be52c imx_usbmisc_init -EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x652571ce imx_usbmisc_init_post -EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x6ed7c550 imx_usbmisc_resume -EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x7ece1198 imx_usbmisc_suspend -EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0xcb3df335 imx_usbmisc_hsic_set_connect -EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0xfd8a474f imx_usbmisc_charger_detection -EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x05e3654a ulpi_read -EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x214c1e74 ulpi_write -EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x6942cede ulpi_register_interface -EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0xaf356d98 ulpi_unregister_interface -EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0xc72d7bb6 __ulpi_register_driver -EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0xed23bc48 ulpi_unregister_driver -EXPORT_SYMBOL_GPL drivers/usb/common/usb-otg-fsm 0x76829844 otg_statemachine -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x1e89e6ea g_audio_cleanup -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x2c6dc064 u_audio_stop_playback -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x4189382a u_audio_suspend -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x49a1da3b u_audio_stop_capture -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x55df4bd3 u_audio_set_playback_srate -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x90cd85a3 u_audio_get_volume -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x9939890e u_audio_start_playback -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xa11e3f2d u_audio_set_volume -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xa8e83222 g_audio_setup -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xc43174f5 u_audio_get_playback_srate -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xcd278186 u_audio_start_capture -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xd3d6e134 u_audio_get_capture_srate -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xe0b61ff3 u_audio_set_mute -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xee58f961 u_audio_get_mute -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xfb937105 u_audio_set_capture_srate -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x147374e1 gether_set_ifname -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x2c53aa5b gether_get_ifname -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x3ac0d63c gether_setup_name -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x3c87afc1 gether_suspend -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x3ce80c09 gether_disconnect -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x4a0329ab gether_get_host_addr -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x6f5ab3d6 gether_resume -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x731c66ba gether_setup_name_default -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7f2dc5fa gether_get_host_addr_u8 -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x832bab07 gether_set_host_addr -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x872b0321 gether_set_dev_addr +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0xc3b9742e ufshcd_populate_vreg +EXPORT_SYMBOL_GPL drivers/uio/uio 0x881f2270 __devm_uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x91011960 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xcb196015 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xf83f109e uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x29c06938 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xd3ecb590 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x12529507 cdns_clear_vbus +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x1dc3d1c8 cdns_resume +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x2bbcfa9e cdns_drd_gadget_on +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x5d3d0803 cdns_suspend +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x94a64213 cdns_drd_gadget_off +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x9965e8f6 cdns_init +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xc7b844c4 cdns_set_vbus +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xdb6552f1 cdns_remove +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xde3d15af cdns_power_is_lost +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xe2c51e34 cdns_set_active +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x2b808782 ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x30c0d31c ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x325b1097 ci_hdrc_query_available_role +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x3a8c95e0 hw_phymode_configure +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x2dfcffb6 imx_usbmisc_hsic_set_connect +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x662f20d1 imx_usbmisc_charger_detection +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0xa99b894c imx_usbmisc_suspend +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0xc4c2be86 imx_usbmisc_init_post +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0xcbc387c5 imx_usbmisc_resume +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0xfb4990d4 imx_usbmisc_init +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x222aed02 ulpi_register_interface +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x42970f79 __ulpi_register_driver +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x7436378b ulpi_unregister_interface +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x947af539 ulpi_read +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0xcc36b3d0 ulpi_write +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0xfc5221c0 ulpi_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/common/usb-otg-fsm 0x4cdd18cf otg_statemachine +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x160af25d u_audio_set_mute +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x168ea45f u_audio_start_playback +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x3c0810b3 u_audio_start_capture +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x4093fe4f u_audio_set_playback_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x43f74b9b g_audio_cleanup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x4d0477a5 u_audio_stop_capture +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x6d489b97 u_audio_set_volume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x7307b8b6 g_audio_setup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x8d647ee1 u_audio_set_capture_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x95366d32 u_audio_suspend +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xad692119 u_audio_get_capture_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xe22b1d69 u_audio_stop_playback +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xedc50363 u_audio_get_playback_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xee5cb0a4 u_audio_get_mute +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xf6f12955 u_audio_get_volume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x0a06854c gether_get_host_addr_cdc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x237db0da gether_set_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x28b458ac gether_set_qmult +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x2cfb0754 gether_set_ifname +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x3cd86f80 gether_suspend +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x3f1085da gether_get_ifname +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x5e1293d9 gether_resume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x682adaa4 gether_get_host_addr_u8 +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x69044b40 gether_register_netdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x6b346f31 gether_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x73b9b00a gether_set_host_addr EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x8878cfa6 gether_cleanup -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x95afe9ca gether_connect -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x9a53e891 gether_get_dev_addr -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xe08e9576 gether_set_qmult -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xe282ac37 gether_get_host_addr_cdc -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xe8dd2624 gether_get_qmult -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xf7fb0f2d gether_set_gadget -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xfa678b3f gether_register_netdev -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x0423460a gserial_resume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x9a21eb7f gether_get_qmult +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xac8f2cb9 gether_get_host_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xbb057fe8 gether_setup_name_default +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xbb6e3833 gether_set_dev_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xd05b2f98 gether_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xd4c7895c gether_get_dev_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xd54a30e3 gether_setup_name EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x5b3eb974 gserial_suspend EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x60db48f5 gserial_get_console -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x60e3d135 gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x69f335ec gserial_disconnect EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x77268a68 gs_free_req -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x839eaac6 gserial_disconnect -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x88659107 gserial_suspend EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xb9a03a3c gserial_resume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xba089e61 gserial_connect EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xc0a01527 gserial_set_console EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xe89dc424 gserial_alloc_line_no_console EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xfb78a286 gs_alloc_req EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x0fd8f233 ffs_lock -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x19629163 ffs_single_dev -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x1fd432c0 ffs_name_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0xbe5ba79c ffs_name_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0xbf3d5e42 ffs_single_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x09a08dcd fsg_show_inquiry_string EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x141fce2a fsg_common_remove_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x145c8880 fsg_show_cdrom EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x1710b539 fsg_fs_bulk_out_desc EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x1ccb58f7 fsg_common_set_num_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x27b23f33 fsg_store_cdrom EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x2933ee1d fsg_ss_bulk_in_desc -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x3933ec00 fsg_show_cdrom EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x398778e1 fsg_ss_function EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x3c6a07d0 fsg_common_create_lun -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x3eb7d027 fsg_lun_open EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x423845e4 fsg_ss_bulk_in_comp_desc -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x42d1ee3a fsg_store_removable -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x469daeb5 fsg_lun_fsync_sub -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x539412b6 fsg_lun_close +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x429764a2 fsg_show_ro EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x56344daf fsg_hs_bulk_out_desc -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x567cb7a5 fsg_show_nofua -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x60467dc7 fsg_show_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x5b4fb961 fsg_show_removable +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x5fc104e0 fsg_common_set_cdev EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x6acb4179 fsg_common_set_inquiry_string -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x72ff3229 fsg_store_cdrom -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x74a5a74f fsg_store_file -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x78a56dfb fsg_store_ro +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x6aec58af fsg_lun_open +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x6be5696c fsg_store_inquiry_string EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7e26d4a5 fsg_common_set_sysfs -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7ea664a1 fsg_show_file -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x807cd044 fsg_common_remove_lun -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x84bda1ea fsg_show_ro EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x857b6dc2 fsg_hs_function -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x90a7cc6b fsg_common_set_cdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x8ce0f1aa fsg_lun_fsync_sub +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x91ee2051 fsg_show_file EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x95cffb3e fsg_hs_bulk_in_desc EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x9a0221c7 fsg_common_free_buffers -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xa20abf7f fsg_show_removable +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x9a55680c fsg_store_ro +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x9c0b3e81 fsg_store_nofua EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xa5cae92f fsg_ss_bulk_out_comp_desc EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xa5f99b69 fsg_fs_function EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xab6c68ac fsg_config_from_params +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xb115b530 fsg_store_file EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xb3adf38d store_cdrom_address EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xb52ba28a fsg_intf_desc EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xb54d0d95 fsg_fs_bulk_in_desc -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xcf0ee6b9 fsg_store_nofua +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xc57e3595 fsg_store_removable +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xcb526b43 fsg_show_nofua +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xce3d8e6d fsg_common_remove_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xd005897f fsg_store_forced_eject EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xd1a3e8e0 fsg_common_create_luns -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xd56cf1bc fsg_store_forced_eject +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xe7d93f65 fsg_lun_close EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xf4efc0c8 fsg_ss_bulk_out_desc -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xfeae674e fsg_store_inquiry_string -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x0a900cb5 rndis_deregister -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x1382a337 rndis_borrow_net -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x17d78793 rndis_set_param_dev -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x2e709b69 rndis_add_hdr -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x58068f35 rndis_set_host_mac -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x7d510125 rndis_free_response -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xa3555001 rndis_rm_hdr -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xa8955601 rndis_set_param_vendor -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xc644ba20 rndis_set_param_medium -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xd46acc25 rndis_register -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xe2285309 rndis_get_next_response -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xe32c94b1 rndis_signal_disconnect -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xe8ebe806 rndis_msg_parser -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xe944125b rndis_signal_connect -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xf6942382 rndis_uninit +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x07b62a06 rndis_set_param_medium +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x0e3e3b81 rndis_signal_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x41640a24 rndis_msg_parser +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x544d7a2e rndis_signal_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x6c52be03 rndis_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x7fdb1ec8 rndis_uninit +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x85af852b rndis_add_hdr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x8a65fd9d rndis_set_param_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x945ec58d rndis_get_next_response +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xadc91306 rndis_rm_hdr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xe11f13f1 rndis_set_param_vendor +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xe84ed5a5 rndis_set_host_mac +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xf930d4f9 rndis_free_response +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xfd9781c6 rndis_borrow_net +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xff84850d rndis_deregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x01bb5c86 usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x07cd4087 usb_assign_descriptors EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0c589aba usb_validate_langid -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1caca619 usb_string_ids_tab -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1e4fc35e usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2362f8e5 usb_otg_descriptor_init +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x293782c8 usb_free_all_descriptors EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2a5ab010 alloc_ep_req -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2dfbc923 usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2a8a0e0f unregister_gadget_item EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3a212695 usb_function_deactivate -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3af5e2c1 usb_add_function -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3c8da350 usb_function_register -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4ad7f07d config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e61ec86 usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2ff1871f usb_func_wakeup +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x30252c59 usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3510dbaa usb_otg_descriptor_alloc +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x40067eea usb_remove_function EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4beb505d usb_gadget_get_string -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4f907eaa usb_remove_function -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x54a7e191 usb_string_ids_n -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5e1056c6 usb_get_function -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x66bbca19 usb_gstrings_attach -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x6732bb10 usb_function_unregister -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x68b40a5f usb_composite_unregister -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x68bcdfef usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4bf4ee1d usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5c241de2 usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x638aa7de usb_string_ids_n EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7148ceb2 usb_ep_autoconfig_release -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x845f589b usb_interface_id -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x90304a4d usb_ep_autoconfig_ss -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x90889307 usb_composite_overwrite_options -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x9245c871 usb_add_config_only -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x9c036e76 config_ep_by_speed_and_alt -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x9c5cde1a usb_composite_probe -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa5046ad5 usb_assign_descriptors -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa571302c usb_function_activate -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa7a997f0 unregister_gadget_item -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb164124e usb_free_all_descriptors -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xbc78f92a usb_put_function_instance -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc1f9b428 usb_otg_descriptor_alloc +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x74a6a058 usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7880bb07 usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x78872cb5 usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7c52f564 usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x833c410c usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x8a707c08 usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x8bca4ca2 usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x950f93b2 usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x9810d6b0 config_ep_by_speed_and_alt +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa86f5a22 config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa97177d9 usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xbe29fb60 usb_composite_unregister EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd6c38ba8 usb_ep_autoconfig_reset -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe245b921 usb_string_id -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf0dbbbc8 usb_func_wakeup +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xda7b87c7 usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xdf02177c usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe143dae3 usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe42fe47b usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe86c170d usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf0488f3b usb_function_unregister EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf528e7df usb_ep_autoconfig -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf6f6178e usb_composite_setup_continue -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xfec3d059 usb_otg_descriptor_init -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x10ee7b37 empty_req_queue -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x130fe7b0 udc_remove -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x1a6b7105 udc_mask_unused_interrupts +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf676fe34 usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x15a54996 udc_basic_init EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x5d01d078 udc_irq -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x7e101171 free_dma_pools -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xb56ed7ef udc_basic_init -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xb89e74f2 udc_enable_dev_setup_interrupts -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xcd1c2fca gadget_release -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xd4e95507 udc_probe -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xec577ef8 init_dma_pools +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x926e4f37 udc_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x9784e6d0 udc_remove +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xa860d9b0 udc_mask_unused_interrupts +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xada4aff8 free_dma_pools +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xb85f68a3 gadget_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xcd3111f3 udc_enable_dev_setup_interrupts +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xe57ae85e init_dma_pools +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xf35847ae empty_req_queue EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x004c6380 usb_ep_fifo_flush -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x0b639658 usb_del_gadget_udc -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x2a24b955 usb_gadget_unmap_request_by_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x0c5d2147 usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x1275ec1f usb_gadget_ep_match_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x138d0576 usb_gadget_register_driver_owner +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x248e29ac usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x24a14548 usb_initialize_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x2660fcfb usb_gadget_frame_number EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x2af38e5f usb_ep_free_request EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x2c53cadb usb_ep_disable -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x346dfb93 gadget_find_ep_by_name -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x35fa9ebb usb_gadget_set_state -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x376ecaeb usb_gadget_vbus_disconnect -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x3b402d8a usb_gadget_unmap_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x3179ef86 usb_add_gadget_udc_release EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x3ea59b5d usb_ep_alloc_request EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x405d007d usb_ep_set_wedge -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x498ff2a2 usb_gadget_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x408b8990 gadget_find_ep_by_name +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x44dab0ed usb_gadget_activate EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x4fa2450c usb_ep_dequeue -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x4fb04286 usb_gadget_vbus_draw EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x50b88f41 usb_get_gadget_udc_name -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x576b6c96 usb_add_gadget_udc -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x583c9920 usb_gadget_activate -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x5b39fbf6 usb_gadget_ep_match_desc -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x612f1294 usb_gadget_frame_number -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x65c8a755 usb_add_gadget_udc_release -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x66759d94 usb_gadget_udc_reset -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x77d525ff usb_add_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x5c7cf169 usb_gadget_vbus_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x5c82a709 usb_gadget_map_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x6558cb19 usb_gadget_vbus_draw +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x70faf0f8 usb_gadget_wakeup +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x777e906d usb_gadget_clear_selfpowered EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x784d9a58 usb_ep_enable -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x79146c1d usb_gadget_map_request EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x79c3b872 usb_ep_fifo_status -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x7f1cd5a9 usb_gadget_set_selfpowered -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x8b596fb6 usb_del_gadget -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x8fd9b663 usb_gadget_check_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x80ba4d06 usb_del_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x84c2b116 usb_gadget_unmap_request EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x93d5fdc4 usb_gadget_giveback_request -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x9beae90d usb_gadget_set_remote_wakeup +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x9908ba5f usb_gadget_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xa41d47f1 usb_gadget_check_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xa7f21a9b usb_gadget_unmap_request_by_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xa90ecc86 usb_gadget_disconnect EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xac5667d9 usb_ep_queue +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xadf8c8c5 usb_udc_vbus_handler +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xb36e4df8 usb_gadget_set_state EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xbee6af28 usb_ep_set_halt +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xc0b0dcc7 usb_gadget_map_request_by_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xc2fb6697 usb_gadget_udc_reset EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xc3d4d06b usb_ep_set_maxpacket_limit EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xc8ac2c4f usb_ep_clear_halt -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xcfaf12f3 usb_gadget_clear_selfpowered -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xd24aa0ea usb_udc_vbus_handler -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xd3fdfe5f usb_gadget_disconnect -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xe09b5cba usb_gadget_wakeup -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xe39c991d usb_gadget_map_request_by_dev -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xee990f25 usb_gadget_connect -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xfc4ae8df usb_gadget_unregister_driver -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xfe9fccb3 usb_initialize_gadget -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xff73125c usb_gadget_vbus_connect -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xff83d21e usb_gadget_register_driver_owner -EXPORT_SYMBOL_GPL drivers/usb/host/xhci-pci-renesas 0xfa72d001 renesas_xhci_check_request_fw -EXPORT_SYMBOL_GPL drivers/usb/host/xhci-plat-hcd 0x8669dbb8 xhci_plat_remove -EXPORT_SYMBOL_GPL drivers/usb/host/xhci-plat-hcd 0x97cc938c xhci_plat_pm_ops -EXPORT_SYMBOL_GPL drivers/usb/host/xhci-plat-hcd 0xc7aadaef xhci_plat_probe -EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x4d2021b5 ezusb_fx1_set_reset -EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0xe9539e1c ezusb_fx1_ihex_firmware_download -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x03bf7eee musb_set_host +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xcc6569ba usb_gadget_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xd5009d12 usb_gadget_set_remote_wakeup +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xdf8207e6 usb_gadget_set_selfpowered +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xee0a7949 usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xf87a514d usb_add_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xfb32efad usb_gadget_vbus_disconnect +EXPORT_SYMBOL_GPL drivers/usb/host/xhci-pci-renesas 0x2cf7c626 renesas_xhci_check_request_fw +EXPORT_SYMBOL_GPL drivers/usb/host/xhci-plat-hcd 0x0608c89c xhci_plat_probe +EXPORT_SYMBOL_GPL drivers/usb/host/xhci-plat-hcd 0x26122814 xhci_plat_pm_ops +EXPORT_SYMBOL_GPL drivers/usb/host/xhci-plat-hcd 0x2ef3d3f7 xhci_plat_remove +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x699d2903 ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0xd20829f5 ezusb_fx1_set_reset EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x09492220 musb_mailbox EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x0b4a8834 musb_writeb -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x20b5c994 musb_queue_resume_work -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x265f2eff musb_root_disconnect +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x16031107 musb_root_disconnect +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x26d06aaf musb_interrupt EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x2734197f musb_readb -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x2fccfc0e musb_interrupt -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x63bffdf0 musb_get_mode EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x669594ad musb_clearw EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x6af8c6dc musb_writel +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x6ccb2ac8 musb_set_host EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x719a5e41 musb_readw -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xa4a7bde6 musb_set_peripheral +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x9c9f627b musb_queue_resume_work +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x9d48c411 musb_get_mode EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xade3e56c musb_writew +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xd3323d9f musb_set_peripheral EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xe59efb0e musb_clearb EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xf0f95e51 musb_readl -EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x021ae064 usb_phy_gen_create_phy -EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x60454287 usb_gen_phy_shutdown -EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x6d2c2979 usb_gen_phy_init -EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x80491d90 usb_phy_generic_register -EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xcb269f11 usb_phy_generic_unregister -EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0x645d77fd isp1301_get_client -EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0x2a72dda1 usb_wwan_port_probe -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0272f0ca usb_serial_generic_throttle -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1508df74 usb_serial_generic_process_read_urb -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1770b5ce usb_serial_generic_wait_until_sent -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2180d5ad usb_serial_generic_write_bulk_callback -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x25501a95 usb_serial_generic_tiocmiwait -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2c4453da usb_serial_generic_unthrottle -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3073982a usb_serial_generic_write -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x348bdf83 usb_serial_deregister_drivers -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3f13feeb usb_serial_generic_chars_in_buffer -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5fe0fee0 usb_serial_generic_get_icount -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x90c013d0 usb_serial_generic_write_start -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9b44d8e7 usb_serial_generic_resume -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa7f3f484 usb_serial_generic_submit_read_urbs -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xaf0bb98f usb_serial_handle_dcd_change -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb69c39c0 usb_serial_generic_open -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbe53b61f usb_serial_port_softint -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbf546ef2 usb_serial_register_drivers -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdd9379d9 usb_serial_generic_close -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe7e83d9d usb_serial_claim_interface -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfa02adc6 usb_serial_generic_read_bulk_callback -EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0x18e69228 dp_altmode_probe -EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0xbe6f4fec dp_altmode_remove -EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x0b128436 tcpci_register_port +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x1bc6a58e usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x33fa6f48 usb_gen_phy_init +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x88b4d364 usb_phy_generic_register +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xb3689e6b usb_phy_generic_unregister +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xc117664f usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0x640ead63 isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0x9b4181a1 usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1baac3ae usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1d50b3b2 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2a838d96 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x31f5383b usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x39688155 usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3db75c82 usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x43845491 usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4913a35c usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x64c22215 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x860955d3 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x90604a3d usb_serial_claim_interface +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9eb7767e usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xac3b1028 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb4ee2a6c usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb75d043f usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc3ae41c5 usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe491ff48 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xecf2a3b3 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf39196dd usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf9feb756 usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0x59272bb5 dp_altmode_remove +EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0xefa71359 dp_altmode_probe +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x4066b60e tcpci_register_port EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x6f497a3c tcpci_irq EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0xbe111953 tcpci_get_tcpm_port EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0xc529e32e tcpci_unregister_port EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x10ec6d2d tcpm_sink_frs EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x3b84657b tcpm_pd_transmit_complete EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x76eeda4b tcpm_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x9a6e85dc tcpm_register_port EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x9e0bd753 tcpm_pd_hard_reset EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0xb655342c tcpm_pd_receive EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0xc37b9769 tcpm_cc_change EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0xceb50012 tcpm_vbus_change EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0xd680581d tcpm_port_clean EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0xda86a83d tcpm_port_is_toggling -EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0xe2529ba4 tcpm_register_port EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0xea220941 tcpm_tcpc_reset EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0xeb779665 tcpm_sourcing_vbus -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x0019f7c8 __typec_altmode_register_driver -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x01c4a1cb typec_set_pwr_role -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x0aad6908 typec_set_orientation -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x0bdb8e1e typec_retimer_register -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x0f8cd342 typec_altmode_get_plug -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x11769b0c typec_register_partner -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x126eae54 typec_cable_is_active -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x12c86576 typec_unregister_partner -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x1467199e typec_unregister_plug -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x14c4dc74 typec_get_fw_cap -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x1561354c typec_set_mode -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x1bdf4972 typec_unregister_cable -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x205d2867 typec_partner_set_num_altmodes -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2420441c typec_retimer_get_drvdata -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x26e59afa typec_mux_register -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x29cdc692 typec_port_register_altmode -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x29df3e1d typec_altmode_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x0058d148 typec_get_fw_cap +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x01a6b3cf fwnode_typec_switch_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x0435095c typec_mux_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x05881c9c typec_plug_set_num_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x07a45a6e typec_set_pwr_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x0f588b4b typec_partner_set_svdm_version +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x13afda38 typec_altmode_notify +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x14917928 typec_partner_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x1ca03cc9 typec_set_mode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x1ea73802 __typec_altmode_register_driver +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x1f677427 typec_altmode_exit +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x214e5253 typec_unregister_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x259d938f typec_get_negotiated_svdm_version +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x25aa7291 typec_cable_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x25ac4382 typec_port_set_usb_power_delivery +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2a3b2454 typec_set_pwr_opmode EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2d1e301d typec_find_power_role -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x35720816 typec_set_data_role -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x38456018 typec_retimer_set -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x388b28bb typec_mux_get_drvdata -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3c849941 typec_altmode_put_plug -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x44f9e6ab typec_get_drvdata -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x486ce8ab typec_retimer_put -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x48ee205e typec_retimer_unregister -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x4f4d6005 typec_partner_set_pd_revision -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x59cfa8dc typec_match_altmode -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x5c608dd2 typec_altmode_get_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3385d3b7 typec_cable_set_identity +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x33f89d83 typec_set_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3b603116 usb_power_delivery_unlink_device +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3e149c87 typec_altmode_put_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x40601493 typec_retimer_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x419e751f typec_mux_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x41e1a54f fwnode_typec_retimer_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x4e4898d2 usb_power_delivery_unregister_capabilities +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x50be9c37 typec_port_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x54ae5a77 typec_register_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x55d22ffa typec_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x589f1012 typec_altmode_enter +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x6a2f422d typec_switch_get_drvdata EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x6b3d9465 typec_mux_set -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x75be0ca6 typec_switch_get_drvdata -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x78b8a0b3 typec_set_vconn_role -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7a2ce513 fwnode_typec_retimer_get -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7c345eb3 typec_cable_put -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7c47b4c5 typec_altmode2port -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7ef90e35 typec_plug_register_altmode -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x80ec0bef typec_switch_set_drvdata -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x81ca7d02 fwnode_typec_mux_get -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x81d22d37 typec_mux_unregister -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x81fd98b4 typec_altmode_enter -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x82d6056c typec_altmode_vdm -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x84ad3d9d usb_power_delivery_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x6c18d00a typec_retimer_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x6e27d224 typec_match_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x6f37a868 typec_unregister_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fdfc8b6 typec_partner_set_num_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x82794041 typec_altmode_update_active EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x86521d45 typec_switch_put -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x8a8c2891 typec_unregister_port -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x9014d9f4 typec_partner_set_identity +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x8a0b6ab6 typec_altmode_vdm +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x8f82167d typec_altmode_attention EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x9049491e typec_find_port_data_role -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x9501c66a typec_altmode_exit -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x95a6f255 usb_power_delivery_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x9c0b0bb1 typec_port_register_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa21cfaee usb_power_delivery_link_device EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa254de98 typec_find_orientation -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa3bfc7f9 typec_switch_unregister -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa3d509e7 typec_unregister_altmode -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa673df9d typec_partner_usb_power_delivery_register -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xb249a28b typec_mux_set_drvdata -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xb850d79f typec_get_orientation -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xbbb2d9cb typec_altmode_update_active -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xbd05fa4a typec_altmode_attention -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xc2fe02ec typec_register_port -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xca95ec79 usb_power_delivery_link_device -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xcb58c044 usb_power_delivery_unregister_capabilities -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xcd72ad3b usb_power_delivery_unlink_device -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xcea89fd5 typec_partner_set_usb_power_delivery -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd23fb7a0 typec_register_cable +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa2a6c749 typec_partner_set_pd_revision +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa67151fa typec_retimer_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa83f76d2 typec_altmode2port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xabf7acfd typec_switch_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xac33ffa6 typec_cable_is_active +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xacced347 typec_altmode_get_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xb30eca47 typec_mux_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xb5577453 typec_set_data_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xb67a1f63 typec_plug_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xb6d2f60b typec_partner_set_usb_power_delivery +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xb765ee94 typec_cable_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xba213d10 typec_mux_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xbc555ac2 typec_register_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xbd29628a typec_altmode_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xc96ac453 typec_get_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xcd0a8ca2 typec_switch_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xcd7a4040 typec_register_cable +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xcd8d91ed usb_power_delivery_register_capabilities +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xce42c2b5 typec_retimer_register EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd2fa1286 typec_switch_set -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd60bc787 typec_partner_register_altmode -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xdf7778dd typec_register_plug -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xe07125fe usb_power_delivery_register_capabilities -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xe282c52f typec_plug_set_num_altmodes -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xe502bdf7 fwnode_typec_switch_get -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xe503bc19 typec_get_negotiated_svdm_version -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xe6742366 typec_altmode_notify -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xe6968b79 typec_port_register_altmodes -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xe896f943 typec_cable_get -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xe9ec7a05 typec_partner_set_svdm_version -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xea7d7510 typec_set_pwr_opmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd524c244 typec_switch_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd88c3d26 typec_unregister_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd8a6963f typec_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xda53c139 typec_altmode_get_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xdb7c2fbf typec_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xdc657694 usb_power_delivery_unregister EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xeafc1eb8 typec_find_port_power_role -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xec4c8d2b typec_cable_set_identity -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xee39d12c typec_switch_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xeb23cfbb typec_retimer_set +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xed418ca9 typec_unregister_cable +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xee02a151 fwnode_typec_mux_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xeebdae29 usb_power_delivery_register EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xf1234a8b typec_find_pwr_opmode -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xf87099dc typec_port_set_usb_power_delivery +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xf1df0f0b typec_partner_usb_power_delivery_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xf2fdeae6 typec_partner_set_identity +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xfc27a89a typec_set_vconn_role EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xfc8df340 typec_mux_put -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x0588a443 ucsi_register -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x0a3899fa ucsi_send_command -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x27627594 ucsi_create -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x2cee292c ucsi_connector_change -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x6def836c ucsi_unregister -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x73e96711 ucsi_get_drvdata -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0xbb4b7b8a ucsi_set_drvdata -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0xd4a07c13 ucsi_destroy -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0xd636286a ucsi_resume -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x05fa6940 usbip_pad_iso -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x17dc7fc3 usbip_start_eh -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x28c69c54 dev_attr_usbip_debug -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x2afd01a8 usbip_event_happened -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x3e268f97 usbip_pack_pdu -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x58a0a376 usbip_recv -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x5f4890c5 usbip_alloc_iso_desc_pdu -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x69db12c1 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x1ad2390c ucsi_send_command +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x2f984ec0 ucsi_resume +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x5a35a222 ucsi_destroy +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x6efa553e ucsi_connector_change +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x73c64972 ucsi_register +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x8c5a05f3 ucsi_create +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0xa3797f15 ucsi_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0xbe031181 ucsi_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0xd6b9494f ucsi_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x404ed0e2 usbip_event_add +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x5f610210 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x6ba16509 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x6d87ba16 usbip_stop_eh EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x78b72f44 usbip_debug_flag -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xac9e15b0 usbip_recv_xbuff -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xc5f4bc49 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x833a8fc8 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x99b863d0 usbip_dump_urb EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xd02753dc usbip_header_correct_endian -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xe114faaa usbip_event_add +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xd47e5c15 usbip_alloc_iso_desc_pdu EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xe1ea0586 usbip_dump_header -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xe7d477c9 usbip_in_eh -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xf1c7251c usbip_stop_eh -EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x1221e790 vdpa_set_config -EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x3259204a vdpa_get_config -EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x580f4582 _vdpa_register_device -EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x5f7766df __vdpa_register_driver -EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x6362e8f5 vdpa_unregister_driver -EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x70709adb vdpa_mgmtdev_unregister -EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x7aeab893 _vdpa_unregister_device -EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x84022093 vdpa_register_device -EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xab23c1cb __vdpa_alloc_device -EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xb8d974f0 vdpa_unregister_device -EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xe88460d7 vdpa_mgmtdev_register -EXPORT_SYMBOL_GPL drivers/vdpa/vdpa_sim/vdpa_sim 0x32e1d5ff vdpasim_create -EXPORT_SYMBOL_GPL drivers/vdpa/vdpa_sim/vdpa_sim 0xfc15fbe7 vdpasim_schedule_work -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x00acc7d8 vfio_pci_core_match -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x0ae147b3 vfio_pci_core_init_dev -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x1d74461f vfio_pci_core_unregister_device -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x20f8e0a3 vfio_pci_core_request -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x28ff29e1 vfio_pci_core_ioctl -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x3009cdf7 vfio_pci_core_read -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x36a36984 vfio_pci_core_enable -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x372c10e6 vfio_pci_core_sriov_configure +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xe20fc2af usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xe9001845 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xea175b8d usbip_in_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xee8ea84e usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xf380ebf7 usbip_recv +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xf8fbb921 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x006f9c86 __vdpa_register_driver +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x5a8f58c5 vdpa_mgmtdev_register +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x8a6e8be9 vdpa_mgmtdev_unregister +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x96413592 _vdpa_unregister_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x96562f4b __vdpa_alloc_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xa1039657 vdpa_unregister_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xd8d5f212 vdpa_get_config +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xecdd6bd0 _vdpa_register_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xeffb607a vdpa_unregister_driver +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xf663def4 vdpa_set_config +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xfca35942 vdpa_register_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa_sim/vdpa_sim 0x1a1a59e4 vdpasim_create +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa_sim/vdpa_sim 0xc5bd48d2 vdpasim_schedule_work +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x2d508aaa vfio_pci_core_err_handlers +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x2dc1fd45 vfio_pci_core_match +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x311a4126 vfio_pci_core_disable +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x398e0872 vfio_pci_core_aer_err_detected +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x3be0557d vfio_pci_core_finish_enable +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x3e35a0b4 vfio_pci_core_mmap EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x4cf699b8 vfio_pci_core_set_params -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x5cbb980d vfio_pci_core_write -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x665977ab vfio_pci_core_aer_err_detected -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x68320b17 vfio_pci_core_disable -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x6c056ef4 vfio_pci_core_mmap -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x6dec9977 vfio_pci_core_ioctl_feature -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x806d3ab8 vfio_pci_core_finish_enable -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x80d37c09 vfio_pci_core_release_dev -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xb05a1468 vfio_pci_core_register_dev_region -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xbdddf40f vfio_pci_core_err_handlers -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xe1040f1f vfio_pci_core_register_device -EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xfe114b1a vfio_pci_core_close_device -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x0251ab81 vfio_file_iommu_group -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x0625b35a vfio_iommufd_emulated_unbind -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x0d1f9ec7 vfio_iommufd_emulated_bind -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x13382ff8 vfio_iommufd_physical_bind -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x20095ab1 _vfio_alloc_device -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x25318b02 vfio_register_group_dev -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x31dc52c5 vfio_file_is_group -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x363f2a62 vfio_iommufd_emulated_attach_ioas -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x38219dad vfio_file_enforced_coherent -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x435e1ff1 vfio_register_emulated_iommu_dev -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x437e9c77 vfio_file_has_dev -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x609a6b2c vfio_iommufd_physical_attach_ioas +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7ce99783 vfio_pci_core_ioctl +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x913377a4 vfio_pci_core_close_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x92f68099 vfio_pci_core_register_dev_region +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x99aa091d vfio_pci_core_unregister_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xa699e746 vfio_pci_core_request +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xac09c408 vfio_pci_core_ioctl_feature +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xac968c68 vfio_pci_core_release_dev +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xb1e203d7 vfio_pci_core_write +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xb9a99e89 vfio_pci_core_enable +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xbbd05522 vfio_pci_core_register_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xd4e575af vfio_pci_core_read +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xd85f587a vfio_pci_core_sriov_configure +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xf656b1b9 vfio_pci_core_init_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x00b25c29 vfio_file_set_kvm +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x30464399 vfio_file_enforced_coherent +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x36ed42fc vfio_iommufd_physical_unbind +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x3b9f2864 vfio_iommufd_emulated_attach_ioas +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x3dc6adef vfio_iommufd_emulated_unbind +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x48c073dd vfio_virqfd_enable +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x4b0ba011 vfio_unregister_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x550e8d8d vfio_iommufd_physical_attach_ioas EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x60a634c4 vfio_info_cap_add -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x68b876fd vfio_virqfd_disable -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x6bc3cbae vfio_assign_device_set -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x74486d4f vfio_mig_get_next_state -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x79a4300a vfio_file_set_kvm +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x6106abe5 _vfio_alloc_device +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x6c607781 vfio_register_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x741cca21 vfio_file_has_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x76ddfd16 vfio_iommufd_physical_bind +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x7c605211 vfio_file_is_group EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x7d2ed4c3 iova_bitmap_set -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x8dd68c5d vfio_unregister_iommu_driver -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xa593bcb3 vfio_register_iommu_driver -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xb4ad7b57 vfio_iommufd_physical_unbind -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xe790553f vfio_virqfd_enable -EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xee000762 vfio_unregister_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x87f197d5 vfio_register_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x913722ed vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xab9657bf vfio_virqfd_disable +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xb7040703 vfio_iommufd_emulated_bind +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xd32d8fa4 vfio_file_iommu_group +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xe9db4688 vfio_register_emulated_iommu_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xf8d9b82d vfio_mig_get_next_state +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xf9839d0a vfio_assign_device_set EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xfb0261a1 vfio_device_set_open_count -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x025a8971 vhost_dev_cleanup -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0db65f9c vhost_set_backend_features -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x10b25940 vhost_dev_stop -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x200bcb78 vhost_init_device_iotlb -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2b683116 vhost_poll_init -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x30bdfa54 vhost_vq_init_access -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x353c7c6f vhost_dev_ioctl -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3b12a76e vhost_add_used_n -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3bae6caf vhost_log_access_ok -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x40f441d0 vhost_vq_has_work -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4203bb57 vhost_poll_queue -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x48f944df vhost_add_used -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x49e779bf vhost_signal -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x52dd7bb6 vhost_vring_ioctl -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x57e1254b vhost_vq_is_setup -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5e4267b5 vhost_log_write -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5f37bd34 vhost_dev_set_owner -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x67cf16fe vhost_vq_flush -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6b58b9e3 vhost_poll_start -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x700deea5 vhost_get_vq_desc -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x71c03156 vhost_dev_reset_owner -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7781d9ea vhost_dequeue_msg -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x8052eff7 vhost_worker_ioctl -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x849945ec vhost_new_msg -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x89dbee44 vhost_discard_vq_desc -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x8c321fed vhost_dev_init -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x8ed7412b vhost_dev_flush -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9579d4e1 vhost_add_used_and_signal_n -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9f225612 vhost_exceeds_weight -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9f91e6e9 vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0ae8304c vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0dd60c9f vhost_worker_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x171f91bf vhost_vq_has_work +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x233bac51 vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x262ad063 vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2f3324d0 vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x34f63472 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x35c2226d vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3c6eb000 vhost_exceeds_weight +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3cf487f0 vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4056f54c vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x40ac41c7 vhost_vq_is_setup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4344ea7e vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4cd19b26 vhost_vq_avail_empty +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x622645c6 vhost_vq_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6b2bfb8e vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6b81e9e3 vhost_dequeue_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7304a3d9 vhost_set_backend_features +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7789d7fc vq_meta_prefetch +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x821e7bf7 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x87616467 vhost_new_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x897ab3f6 vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x8f8c245c vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x92dfa20b vhost_init_device_iotlb +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9615319c vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9a6cb767 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9bb7b967 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa6bc7f81 vhost_dev_init EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa909cfc5 vhost_work_init -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xaf2629ee vhost_clear_msg -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb94fac5c vhost_enable_notify -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd13a3781 vhost_vq_access_ok -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd8804046 vhost_enqueue_msg -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xdd6d570e vhost_vq_avail_empty -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xdee56151 vhost_poll_stop -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe9bcde96 vhost_dev_has_owner -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xeafdf5b4 vq_meta_prefetch -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xedbd7bd1 vhost_add_used_and_signal -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf47d08dd vhost_vq_work_queue -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf8f17ccd vhost_dev_check_owner -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfb30015e vhost_chr_read_iter +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xabc612a5 vhost_vq_init_access +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbc7795a7 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbf45bdd2 vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbfaca583 vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc29c4889 vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc4ad902a vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc544e7d7 vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xcf28d232 vhost_chr_read_iter +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd25319a0 vhost_vq_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd5bfbfe2 vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd785f915 vhost_dev_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xdfb9449a vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xeb0cfeca vhost_enqueue_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf989f374 vhost_clear_msg EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfd2b3e45 vhost_dev_reset_owner_prepare EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x38ff875f vhost_iotlb_add_range EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x5f4e5249 vhost_iotlb_reset @@ -16676,390 +16696,390 @@ EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0xa24517eb vhost_iotlb_free EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0xc577832d vhost_iotlb_alloc EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0xf9deb0db vhost_iotlb_map_free -EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x02b95181 ili9320_write -EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x235a60e9 ili9320_probe_spi -EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x2e12384d ili9320_suspend -EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x79061dc2 ili9320_shutdown -EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xa611dbac ili9320_resume -EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xaa175998 ili9320_write_regs -EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xb1f933ea ili9320_remove -EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_ddc 0xfec05b15 fb_ddc_read -EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0x78be9ccc sis_malloc_new -EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0xa7b49265 sis_free_new -EXPORT_SYMBOL_GPL drivers/w1/wire 0x0281b893 w1_write_block -EXPORT_SYMBOL_GPL drivers/w1/wire 0x0fed3359 w1_read_block -EXPORT_SYMBOL_GPL drivers/w1/wire 0x132534a5 w1_touch_block -EXPORT_SYMBOL_GPL drivers/w1/wire 0x21da3e78 w1_next_pullup -EXPORT_SYMBOL_GPL drivers/w1/wire 0x39bde7a6 w1_reset_select_slave -EXPORT_SYMBOL_GPL drivers/w1/wire 0x49bde7d7 w1_write_8 +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x03cf1471 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x28d247ea ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x47391688 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x4df81172 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x5ac07e53 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xf80217dd ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xfc6c1116 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_ddc 0x366dd941 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0x78be53d0 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0xa6dba31d sis_malloc_new +EXPORT_SYMBOL_GPL drivers/w1/wire 0x1ca62999 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x3a9987cd w1_triplet +EXPORT_SYMBOL_GPL drivers/w1/wire 0x546c1db7 w1_write_block EXPORT_SYMBOL_GPL drivers/w1/wire 0x63757e92 w1_calc_crc8 -EXPORT_SYMBOL_GPL drivers/w1/wire 0x77861a06 w1_reset_bus -EXPORT_SYMBOL_GPL drivers/w1/wire 0x8bf06c6b w1_touch_bit -EXPORT_SYMBOL_GPL drivers/w1/wire 0xb42c9604 w1_triplet -EXPORT_SYMBOL_GPL drivers/w1/wire 0xd7f3e79b w1_read_8 -EXPORT_SYMBOL_GPL drivers/w1/wire 0xfabbc435 w1_reset_resume_command -EXPORT_SYMBOL_GPL fs/dlm/dlm 0x1e71e235 dlm_posix_unlock +EXPORT_SYMBOL_GPL drivers/w1/wire 0x79033008 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x8618fd89 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x9d6b6c5b w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc7945311 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe10e717e w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe158a0ea w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe578a612 w1_touch_bit +EXPORT_SYMBOL_GPL drivers/w1/wire 0xef2ec69e w1_reset_resume_command +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x12355605 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x2cacbb8f dlm_posix_unlock EXPORT_SYMBOL_GPL fs/dlm/dlm 0x4b62826c dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x5d5b6636 dlm_posix_get EXPORT_SYMBOL_GPL fs/dlm/dlm 0x8a6c5f1b dlm_lock -EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc7222387 dlm_posix_get EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcd224e1d dlm_new_lockspace EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace -EXPORT_SYMBOL_GPL fs/dlm/dlm 0xd3209cbc dlm_posix_lock -EXPORT_SYMBOL_GPL fs/lockd/lockd 0x295ba271 nlmclnt_proc -EXPORT_SYMBOL_GPL fs/lockd/lockd 0x3115e705 nlmclnt_init -EXPORT_SYMBOL_GPL fs/lockd/lockd 0x4a4d77e4 nlmsvc_ops -EXPORT_SYMBOL_GPL fs/lockd/lockd 0x50236bd6 lockd_down -EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7743787d nlmsvc_unlock_all_by_sb -EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9883c1f5 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x06da7a13 nlmclnt_rpc_clnt +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x4aa942f0 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8767f174 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x960c9ba5 lockd_up EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9cbde0a0 nlmsvc_unlock_all_by_ip -EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb1df400c nlmclnt_done -EXPORT_SYMBOL_GPL fs/lockd/lockd 0xd37be290 nlmclnt_rpc_clnt -EXPORT_SYMBOL_GPL fs/netfs/netfs 0xaf932671 netfs_extract_user_iter -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0061d576 __traceiter_nfs_fsync_exit -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0131535e get_nfs_open_context +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb6dfcf0c lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xbe046a34 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xca215fcf nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xeb5b388e nlmclnt_proc +EXPORT_SYMBOL_GPL fs/netfs/netfs 0x380df9fa netfs_extract_user_iter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x01c514a1 nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x02170a32 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x028d0693 nfs_set_verifier EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0294c6a2 nfs_callback_nr_threads EXPORT_SYMBOL_GPL fs/nfs/nfs 0x03eacb8c nfs_fattr_init -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0661fd62 nfs4_label_alloc -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x07784abd nfs_file_write -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x07e78a69 nfs_pageio_reset_read_mds -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x099544d7 nfs_inode_attach_open_context -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0baeef49 nfs_flock -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0e5bbcb3 nfs_client_for_each_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x064a19ba put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x070400a6 nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x082479f5 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0c141996 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0e02de22 nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1013e099 nfs_access_zap_cache EXPORT_SYMBOL_GPL fs/nfs/nfs 0x10962bc2 nfs_auth_info_match -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x12c44841 nfs_get_client -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x12f6dcbd nfs_free_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x131e65d9 nfs_try_get_tree -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x137af813 nfs_invalidate_atime -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x15742bc9 nfs_server_copy_userdata -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x17e34d68 nfs_statfs -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x20e5896e nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x110c74fa nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x115ffaf1 register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1265b4e8 nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x127f99b0 nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x12ec5b18 nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x14b983be nfs_get_lock_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x14c67da9 nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x167ec01f nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1a52ad5d nfs_free_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1e6420cb nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x21c9eb7a nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x22a28afc nfs_get_client EXPORT_SYMBOL_GPL fs/nfs/nfs 0x22d795a8 _nfs_display_fhandle_hash -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2348b22c nfs_setattr_update_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x246b1236 nfs_do_submount -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x259caca0 nfs_scan_commit_list -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x262686c0 nfs_set_verifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x24c8361d nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x257ddfc4 nfs_show_options EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x284480cc nfs_put_lock_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x28788436 nfs_sysfs_add_server EXPORT_SYMBOL_GPL fs/nfs/nfs 0x29086fa3 __tracepoint_nfs_fsync_exit -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x29ca93ff __traceiter_nfs_xdr_bad_filehandle -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2a388ea9 __traceiter_nfs_xdr_status -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2df96220 nfs_show_stats -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2eb3e590 nfs_client_init_status -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2ec2ee86 nfs_generic_pgio -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2f9ff487 nfs_check_cache_invalid -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2fb247b7 nfs4_dentry_operations -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x30dadb26 nfs_fs_type -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x33a61158 nfs_pageio_resend -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x340e33a0 nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2a55ed25 nfs_pgio_header_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2b96565d nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2c0bf70f nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2e0d8f42 nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2f43e46b nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2ffc2d2e nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x304f04f9 nfs_client_for_each_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x30a1b2a2 nfs_rename EXPORT_SYMBOL_GPL fs/nfs/nfs 0x34566b51 __tracepoint_nfs_xdr_status -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x355dbe23 nfs_file_fsync -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36147257 nfs_revalidate_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x37fa7f7e nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36ca2448 nfs_free_client EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3cae1e4b nfs_async_iocounter_wait +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3a94d678 nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3abd0e71 __traceiter_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3bee815d nfs_force_lookup_revalidate EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags EXPORT_SYMBOL_GPL fs/nfs/nfs 0x40739385 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x422d5e39 nfs_refresh_inode EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x45116f53 nfs_probe_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x435fca11 nfs_initiate_pgio +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x438e62e7 nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x44266fd5 nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x44aa4dff nfs_try_get_tree +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x45e64074 nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x490e288d nfs_post_op_update_inode EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4e268ef5 nfs_rename -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4e7b3576 nfs_init_cinfo -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x509a572f nfs_server_remove_lists -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5113ef42 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4ec7e32d nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4facda94 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5183975f nfs_read_alloc_scratch EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x54b4a144 nfs_client_init_is_complete -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x55a4b051 nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x523acd97 nfs_file_fsync +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x567519d3 nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x57022169 nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x57fd32ad nfs_link EXPORT_SYMBOL_GPL fs/nfs/nfs 0x584b8482 nfs_inc_attr_generation_counter -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5a4e354d nfs_close_context -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5b085691 nfs_show_path -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5cbe1a5c nfs_file_operations -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5d2ebe23 nfs_init_server_rpcclient -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e976f1b nfs_reconfigure -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x60272cda nfs_alloc_client -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6225a2ec nfs_create_rpc_client -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x66ae4e47 nfs_clear_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x69684d36 nfs_file_read -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6b7b2407 nfs_initiate_pgio -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6c799b9a nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x59116d88 __traceiter_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5ad630c4 nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5dad24df nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5dd85c37 nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e98a271 nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x600bc0a6 nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6573016f nfs_check_cache_invalid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x66e7742c nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x67cfe3ca nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6811b602 nfs_wait_on_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6a02fdcd nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6be10ea4 nfs_pageio_reset_read_mds EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6e81f032 __SCK__tp_func_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x70e662dc nfs_pgio_current_mirror +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x71d827fa nfs_writeback_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7213cc08 nfs_commitdata_release EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73dff4c0 __SCK__tp_func_nfs_xdr_status -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7577fe6f nfs_mkdir -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x76482a1a nfs_release_request -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x77ea5220 nfs_access_get_cached -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7b74f1b8 nfs_server_insert_lists -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7beeddb3 nfs_file_splice_read -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c4233ce nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x76372d99 nfs_add_or_obtain +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7cb1ba48 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7cf7540a nfs_fs_type EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7e202e89 __tracepoint_nfs_fsync_enter -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7e46188d nfs_sync_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x816cde04 nfs_instantiate -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x818ec587 nfs_post_op_update_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x82809006 nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7e326692 nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7ed0febe nfs_set_cache_invalid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7f04aa28 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7f3a66ce nfs_access_get_cached +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x800ebd12 nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x83e110fd nfs_flock EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8499de4f nfs_alloc_fattr -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x892c806a nfs_post_op_update_inode_force_wcc -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8a13c52d nfs_commit_free -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8a153a60 nfs_sb_active -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8c3a0a1f nfs_sysfs_add_server -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8c42fb83 nfs_dreq_bytes_left -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8e1762dc alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8695043f nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x88528e00 nfs_filemap_write_and_wait_range +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x893f8592 nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89f894a3 nfs_release_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8bb0f9dd nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8c617eb6 nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8c9794cf nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8dc7e9a0 alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8ea0e82a nfs_clear_verifier_delegated +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8ef0c008 nfs_reconfigure EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x914a4d2f nfs_init_commit EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9361a427 nfs_free_server -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x93fec10c nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x92c6e153 nfs_client_init_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9321ef37 nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x94649a3e unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x946dafb7 nfs_sb_active EXPORT_SYMBOL_GPL fs/nfs/nfs 0x95007f7e __SCK__tp_func_nfs_xdr_bad_filehandle -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x95fcb123 nfs_file_mmap -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x96e5f285 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x958dce8f nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x96ab16b9 nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9709edc8 nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x976c2998 nfs_file_splice_read EXPORT_SYMBOL_GPL fs/nfs/nfs 0x98b0ece8 nfs_init_timeout_values -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9a93b384 nfs_set_cache_invalid -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9e431328 nfs_generic_pg_test -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9e7bd7e1 nfs_request_add_commit_list -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa444569e put_nfs_open_context -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa6dac752 nfs_unlink -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa7040068 nfs_free_client -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8cd3cdf nfs_pgio_header_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9979acea __traceiter_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x99abb4f4 nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9a3864fd nfs_request_add_commit_list_locked +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9a8c1a87 nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9ac3a69f nfs_async_iocounter_wait +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9cd20210 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa153ff4d nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa18763d6 nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa479fa55 nfs_sysfs_link_rpc_client EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa9a41b4b nfs_commit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa90685bd nfs_atomic_open EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaafd4acc max_session_cb_slots -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xab195597 nfs_zap_acl_cache -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xab8e741a nfs_access_add_cache -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb11978cb nfs_alloc_fattr_with_label -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb1c65ae1 nfs_sysfs_link_rpc_client -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb1e16dec nfs_writeback_update_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb2094250 nfs_sops -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb43928b8 nfs_setsecurity -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb48d5f6c nfs_setattr -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb6d69c61 nfs_sb_deactive -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb792b62d __traceiter_nfs_fsync_enter -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb8083931 nfs_clear_verifier_delegated -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb86401fb nfs_request_add_commit_list_locked -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb86866d1 nfs_refresh_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb95fc80a nfs_file_set_open_context -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb963baec nfs_wb_all -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xba7d5abc nfs_submount -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbbfa4462 nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xad046372 nfs_d_prune_case_insensitive_aliases +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xae51568c nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaf4f601d nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb0563609 nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb1505ec9 nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb1b7c096 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb315a6b6 nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb57766be nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbcb48d05 nfs_setsecurity EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbcc60c8d __tracepoint_nfs_xdr_bad_filehandle -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbedb1091 nfs_initiate_commit -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbf92a781 nfs_d_prune_case_insensitive_aliases -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbfb249c8 nfs_add_or_obtain -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbfceee9c nfs_filemap_write_and_wait_range -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc1281980 nfs_drop_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc1313470 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbe648eed nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc2e7991b nfs_unlink EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc3a2be67 nfs_net_id -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4de10a3 nfs_read_alloc_scratch -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc6813c86 nfs_pgio_header_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4ed91df nfs_probe_server EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc6c8b8f1 nfs_access_set_mask -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc7968a56 nfs_pgio_current_mirror -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc9276b7c nfs_fscache_open_file -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc9cb0edb nfs_show_options -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xca18ef79 nfs_put_lock_context -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xccc85fc3 nfs_atomic_open -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd1707017 nfs_umount_begin -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd23e652a nfs_clone_server -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd23fa636 nfs_commitdata_alloc -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd25d8f0f unregister_nfs_version -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd392d1df nfs4_fs_type -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd856a166 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xce6c410a nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcffe21ea nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd06a864d nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd09b6d5f nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2e44b21 nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd3938e7a nfs_generic_pgio +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd41040c0 nfs_scan_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd44c703b nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd62f890a nfs_pageio_resend +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd8ccbc8d nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd9c6bde9 __traceiter_nfs_fsync_exit EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdf1c080b nfs_file_release -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdfadaf4f nfs_path -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe18566da nfs_write_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe5dc477c nfs_rmdir -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe8b6c4d4 nfs_pageio_init_write -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeaedcee0 nfs_permission -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeb3568d1 nfs_lookup -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xebbed778 register_nfs_version -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xec7b066a nfs_get_lock_context -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xedb01e4f nfs_mark_client_ready -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xedf94af3 nfs_put_client -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xee877167 nfs_alloc_server -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf02c7b67 nfs_wait_on_request -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf03572ed nfs_access_zap_cache -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf0aa18b9 nfs_file_llseek -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf2e6a2b2 nfs_create -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf4e04040 nfs_request_remove_commit_list -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf6cfee4a nfs_init_client -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf7e8a6ab nfs_commitdata_release -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf8b6df18 nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdb909123 nfs_alloc_fattr_with_label +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe10690b3 nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe147a25d nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe1bda131 nfs_sync_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe1d15de1 get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe22707e3 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe3cf0eb7 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe9263a5d nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe95899a1 nfs_pgio_header_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe97b6454 nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xec36fe7a nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeec2d620 nfs_commit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf7010dbb nfs_client_init_is_complete EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf96f04c4 __SCK__tp_func_nfs_fsync_enter -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfa82dbf8 nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc3eb6df nfs_inode_attach_open_context EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc619abd _nfs_display_fhandle -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfd1c11c9 nfs_wait_client_init_complete -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xff916a08 nfs_fhget -EXPORT_SYMBOL_GPL fs/nfs/nfs 0xffd742dd nfs_kill_super -EXPORT_SYMBOL_GPL fs/nfs/nfsv3 0x7baa8fa6 nfs3_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv3 0x95c82053 nfs3_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x01d43ca3 pnfs_error_mark_layout_for_return EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x02da1276 __tracepoint_nfs4_pnfs_commit_ds EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x054bef45 layoutstats_timer +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x06dbbe10 pnfs_set_lo_fail EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x08b2c467 __SCK__tp_func_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0b55ded6 nfs4_decode_mp_ds_addr EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0bd06bd1 __tracepoint_pnfs_mds_fallback_write_pagelist EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0d381e90 __tracepoint_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0f3bb1d1 pnfs_generic_search_commit_reqs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0fe962d7 pnfs_layout_mark_request_commit EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0ff289f3 __SCK__tp_func_pnfs_mds_fallback_pg_init_write -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x173a4941 pnfs_free_commit_array EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x18b41178 __tracepoint_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x19b77734 pnfs_generic_recover_commit_reqs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1a48d7c4 nfs42_proc_layouterror EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1d57c82c __tracepoint_pnfs_mds_fallback_pg_init_read -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1e40c915 __traceiter_nfs4_pnfs_read -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1ec4156e pnfs_generic_search_commit_reqs -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1ed6727f pnfs_report_layoutstat +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1fd726ea nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x212df806 nfs4_mark_deviceid_available EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2174b794 __tracepoint_ff_layout_commit_error -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x228d1864 pnfs_generic_ds_cinfo_release_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x23665ca9 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x24974b55 nfs41_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x256de7e0 pnfs_generic_layout_insert_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x25cd8313 pnfs_generic_write_commit_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x25ffd11d __traceiter_nfs4_pnfs_commit_ds EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x27ad47ea __SCK__tp_func_pnfs_mds_fallback_write_done -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2834cdf4 pnfs_generic_pg_init_read -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2c89e88e pnfs_generic_pg_check_range +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2d469d79 __traceiter_ff_layout_commit_error EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2f1e21ba __tracepoint_ff_layout_write_error -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3098b418 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2fdde2b0 pnfs_generic_scan_commit_lists EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x30a44ac3 __SCK__tp_func_ff_layout_write_error -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x34c13be8 nfs4_test_session_trunk -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x351a0f00 pnfs_generic_pg_init_write -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3cd8bf97 nfs4_schedule_stateid_recovery -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3d874884 nfs4_setup_sequence -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3f23a491 __traceiter_nfs4_pnfs_write -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x40262768 __traceiter_pnfs_mds_fallback_write_done -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x42b01cf3 __traceiter_ff_layout_write_error -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x46f1b72c pnfs_generic_pg_writepages -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4706d6ca nfs_remove_bad_delegation -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4a9e533a pnfs_ld_write_done -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4bd1b406 pnfs_read_done_resend_to_mds -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x504021fd pnfs_generic_sync -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x50b6eb55 __traceiter_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x36979e5a pnfs_layoutcommit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x390dc78e pnfs_generic_pg_check_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3c080b80 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x42129371 pnfs_add_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x43b2f615 nfs4_test_session_trunk +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x47497338 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x499a1006 pnfs_generic_pg_cleanup +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4b2dba69 pnfs_generic_ds_cinfo_destroy +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4e87d763 __traceiter_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x51391bf7 pnfs_nfs_generic_sync EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x533c198f __SCK__tp_func_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5536fb49 nfs4_schedule_session_recovery EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x555bb1db __tracepoint_pnfs_mds_fallback_read_pagelist -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x560191b1 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x568c2c22 pnfs_generic_sync +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x569d2280 nfs4_pnfs_ds_connect EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x579126b8 __SCK__tp_func_pnfs_mds_fallback_read_pagelist -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5855603c __traceiter_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x599f3113 nfs4_mark_deviceid_unavailable EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5a4314e9 __SCK__tp_func_nfs4_pnfs_commit_ds -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5b8c8fcb nfs4_pnfs_ds_connect -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5ba982be nfs4_delete_deviceid -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5bdab7a7 pnfs_generic_pg_readpages -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5c8f807f nfs41_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5fd49811 pnfs_ld_read_done EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6085edbd nfs_map_string_to_numeric -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x614b960d __traceiter_pnfs_mds_fallback_pg_init_write -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x61700164 pnfs_generic_clear_request_commit -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x618208b2 nfs4_set_ds_client -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x632f06b4 pnfs_unregister_layoutdriver -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x63c7e377 nfs4_mark_deviceid_available -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x64210097 pnfs_destroy_layout -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x675c6ecd pnfs_generic_commit_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x66ff41b8 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x68f86b24 pnfs_generic_commit_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x69b1da5d pnfs_generic_pg_writepages EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x69d3558d pnfs_generic_rw_release -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6bc35718 nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x69d69a76 pnfs_free_commit_array EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6e637af7 __tracepoint_pnfs_mds_fallback_write_done -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6e7a3187 pnfs_generic_pg_cleanup -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x76dae6c3 nfs4_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6e94554f __traceiter_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x72d12241 __traceiter_nfs4_pnfs_read EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x785c06ab __SCK__tp_func_ff_layout_read_error EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7a4e7f4e __SCK__tp_func_pnfs_mds_fallback_read_done EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7cd013a8 __SCK__tp_func_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7d08608e __traceiter_pnfs_mds_fallback_pg_init_write EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x802046c5 __tracepoint_nfs4_pnfs_read -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x827afa98 __traceiter_ff_layout_read_error -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x88918927 pnfs_generic_write_commit_done -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8ac686f5 pnfs_nfs_generic_sync +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x81d3300b pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x832326c9 pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x847d6e23 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x862bd02f __traceiter_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8a623dd1 nfs4_pnfs_ds_add EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8be24f50 __tracepoint_pnfs_mds_fallback_pg_get_mirror_count -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8e928847 nfs4_pnfs_ds_put -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x92b642fa nfs4_schedule_session_recovery -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x941e4ed2 pnfs_read_resend_pnfs -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x94276a5d pnfs_ld_read_done -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9d759925 nfs4_decode_mp_ds_addr -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa712900d nfs42_proc_layouterror -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xac0ac758 pnfs_register_layoutdriver -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xaee86fef pnfs_alloc_commit_array -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb1bf15e6 pnfs_generic_prepare_to_resend_writes +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8c460757 pnfs_generic_clear_request_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8d7925df nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x90192aa1 nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9ab44733 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9ec57e8e nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9fc1c0f7 pnfs_alloc_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa0723e8d pnfs_generic_ds_cinfo_release_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa1e8d0a5 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa4468757 nfs4_pnfs_ds_put +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa5ff4875 __traceiter_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xadfedccb pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xafad3b24 pnfs_report_layoutstat +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb5f4f4d9 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb875c9fb nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb975b002 __traceiter_nfs4_pnfs_write EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xba53a1ef __SCK__tp_func_pnfs_mds_fallback_pg_init_read -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbbb7ae61 __traceiter_nfs4_pnfs_commit_ds -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbe5021fe __traceiter_pnfs_mds_fallback_pg_get_mirror_count -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbf50b0c3 nfs4_schedule_lease_recovery -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc34b6b3b pnfs_add_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbdca6e06 pnfs_generic_pg_check_range +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbe41ed27 __traceiter_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc4f90346 nfs4_sequence_done EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc7a9d954 __SCK__tp_func_nfs4_pnfs_read -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc903a6dc nfs4_mark_deviceid_unavailable -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc95e9774 pnfs_put_lseg -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcb8903c4 __traceiter_pnfs_mds_fallback_write_pagelist -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xce4ab19b pnfs_set_layoutcommit -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd0f568a5 nfs4_init_ds_session -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd177bb65 pnfs_set_lo_fail -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd2ee53ac pnfs_generic_layout_insert_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc82a0954 __traceiter_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc8cd35cd __traceiter_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcb290b07 pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd117d1aa pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd190b7f7 nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd1c723f9 pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd3c39cc2 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd4437192 nfs_remove_bad_delegation EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd47333c2 __tracepoint_nfs4_pnfs_write -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd5f3ae5b nfs4_test_deviceid_unavailable -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd6359cf5 pnfs_layoutcommit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd6fb7485 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xda38af9d pnfs_destroy_layout EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdd342fa8 __tracepoint_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xde41586e pnfs_read_resend_pnfs EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdf6991a4 __SCK__tp_func_pnfs_mds_fallback_write_pagelist -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe2fea247 nfs4_schedule_lease_moved_recovery -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe459a655 nfs4_init_deviceid_node -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe4c9e1ad pnfs_generic_pg_check_layout -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe54dbdbe pnfs_write_done_resend_to_mds -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe6031010 nfs4_put_deviceid_node -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe68354f6 pnfs_error_mark_layout_for_return -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe6992699 pnfs_generic_scan_commit_lists +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe237d94a pnfs_generic_prepare_to_resend_writes +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe386c153 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe87a27dc nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe9ca55c2 __traceiter_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xea95ac1a nfs4_set_ds_client EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xed15fb41 nfs4_print_deviceid -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xef0be194 pnfs_generic_recover_commit_reqs -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf029bd4a __traceiter_pnfs_mds_fallback_pg_init_read -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf0f60cbb nfs4_set_rw_stateid -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf38cafc4 nfs4_pnfs_ds_add -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf402b2d8 nfs4_schedule_migration_recovery -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf6662cd7 __traceiter_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf6b6ceb0 pnfs_generic_pg_readpages EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf7801360 nfs41_maxgetdevinfo_overhead EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf999267e pnfs_generic_commit_release -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfa0e161b nfs4_find_get_deviceid -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfa5a2be5 nfs4_proc_getdeviceinfo -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfc418241 pnfs_generic_ds_cinfo_destroy -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xff3429f4 pnfs_layout_mark_request_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfe00ca97 nfs4_setup_sequence EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x1d9f75e2 locks_in_grace EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x1fe1e1ad locks_end_grace EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x5d3360e0 opens_in_grace EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x5effa6db locks_start_grace -EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x149bfb03 nfsacl_decode -EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x290936c9 nfs_stream_encode_acl -EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xe8fa3a2e nfs_stream_decode_acl -EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xf1cb620e nfsacl_encode -EXPORT_SYMBOL_GPL fs/nfsd/nfsd 0x4363ac59 nfsd4_ssc_init_umount_work -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x2c74287d o2hb_setup_callback -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x30b94869 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x3dddd9ea nfs_stream_decode_acl +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x5b1120c8 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x724c3b01 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x76dca9e6 nfs_stream_encode_acl +EXPORT_SYMBOL_GPL fs/nfsd/nfsd 0x7b4ca9b2 nfsd4_ssc_init_umount_work +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x3e136e45 o2hb_unregister_callback EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5073b65f o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5623b198 o2nm_node_put EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x58c88ff2 o2hb_get_all_regions EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5e95a4b2 o2net_send_message_vec EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847 __mlog_printk -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x805786b8 o2nm_node_get EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9f010781 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa45ca75b o2hb_register_callback EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa941cb47 o2hb_fill_node_map EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb6ebf62a o2nm_this_node EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbd13ee5d o2hb_check_node_heartbeating_no_sem EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc4d99852 o2hb_check_node_heartbeating_from_callback -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd13fa70e o2nm_node_put EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c o2net_fill_node_map -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe9f9cb6f o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe8c82a5d o2nm_node_get EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf23054eb o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf44bdbae o2hb_setup_callback EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf8c55ef0 o2nm_get_node_by_num EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db o2net_send_message EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xfe1298f3 o2net_register_handler -EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0e0285f3 dlm_register_domain -EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x59defab6 dlm_unregister_domain -EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x72079882 dlm_print_one_lock -EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x72d49522 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0a3f9a1f dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x16bd5fd1 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3496fe48 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6d4f43d0 dlmlock EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb -EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7c371b26 dlm_register_eviction_cb -EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xcaba44e0 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x87bd28c9 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa9e0dfab dlm_register_eviction_cb EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0a726931 ocfs2_cluster_this_node EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0cfd3fc5 ocfs2_cluster_connect_agnostic EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x1475f64b ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x24e603ce ocfs2_stack_glue_register EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4e52a8a8 ocfs2_plock EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x76f40744 ocfs2_dlm_lvb -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x911b8789 ocfs2_stack_glue_unregister EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x9507547f ocfs2_cluster_disconnect -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x95f114cc ocfs2_plock EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xaf969565 ocfs2_dlm_lock -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb34250da ocfs2_kset EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xc5196999 ocfs2_dlm_unlock EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xc9fae756 ocfs2_cluster_connect EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xcafdd707 ocfs2_dlm_lock_status EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xd344e4ee ocfs2_stack_glue_set_max_proto_version EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xd806a273 ocfs2_dlm_dump_lksb -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xfc9fbb4b ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdd19f4d7 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xf0e1b098 ocfs2_kset +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x0cdb7baa register_pstore_device EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x43cc3d4b pstore_blk_get_config -EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x5a733fbd register_pstore_device -EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0xc4f0a0fa unregister_pstore_device -EXPORT_SYMBOL_GPL fs/pstore/pstore_zone 0x2cf9fca8 register_pstore_zone -EXPORT_SYMBOL_GPL fs/pstore/pstore_zone 0xfe79ec14 unregister_pstore_zone +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x6a9ebb46 unregister_pstore_device +EXPORT_SYMBOL_GPL fs/pstore/pstore_zone 0x77ad87eb unregister_pstore_zone +EXPORT_SYMBOL_GPL fs/pstore/pstore_zone 0xf6689b33 register_pstore_zone EXPORT_SYMBOL_GPL fs/smb/common/cifs_arc4 0xabd9af6d cifs_arc4_crypt EXPORT_SYMBOL_GPL fs/smb/common/cifs_arc4 0xc4c73891 cifs_arc4_setkey EXPORT_SYMBOL_GPL fs/smb/common/cifs_md4 0x798f3830 cifs_md4_init @@ -17081,8 +17101,8 @@ EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0x31d4e581 poly1305_init_generic EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0xd7219de2 poly1305_update_generic EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0xf3945fcd poly1305_final_generic -EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x2df1d2b4 notifier_err_inject_dir -EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x3764ce8e notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x16cea2b1 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0xe0360250 notifier_err_inject_init EXPORT_SYMBOL_GPL lib/polynomial 0xb8b44e50 polynomial_calc EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x1803a6ed raid6_2data_recov EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x804a5b70 raid6_call @@ -17093,1071 +17113,1071 @@ EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xa32f3d9e decode_rs16 EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xeb2f825c init_rs_gfp EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xfd581da1 free_rs -EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0x0a979a16 lowpan_header_decompress -EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0xf63de05e lowpan_header_compress -EXPORT_SYMBOL_GPL net/802/garp 0x0e905df1 garp_request_join -EXPORT_SYMBOL_GPL net/802/garp 0x45d57efe garp_init_applicant -EXPORT_SYMBOL_GPL net/802/garp 0x476a7c22 garp_uninit_applicant -EXPORT_SYMBOL_GPL net/802/garp 0xb6b09681 garp_request_leave -EXPORT_SYMBOL_GPL net/802/garp 0xd9f3783d garp_register_application -EXPORT_SYMBOL_GPL net/802/garp 0xe66e398c garp_unregister_application -EXPORT_SYMBOL_GPL net/802/mrp 0x32ed5d6e mrp_init_applicant -EXPORT_SYMBOL_GPL net/802/mrp 0x74a44b71 mrp_register_application -EXPORT_SYMBOL_GPL net/802/mrp 0x90d6f034 mrp_request_leave -EXPORT_SYMBOL_GPL net/802/mrp 0xc2447557 mrp_request_join -EXPORT_SYMBOL_GPL net/802/mrp 0xcd6f354a mrp_unregister_application -EXPORT_SYMBOL_GPL net/802/mrp 0xdf7510c7 mrp_uninit_applicant -EXPORT_SYMBOL_GPL net/802/stp 0x57996dd9 stp_proto_unregister -EXPORT_SYMBOL_GPL net/802/stp 0xaad82b80 stp_proto_register -EXPORT_SYMBOL_GPL net/9p/9pnet 0x60f3fbd8 p9_client_xattrwalk -EXPORT_SYMBOL_GPL net/9p/9pnet 0x9ec003d7 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0x03497097 lowpan_header_decompress +EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0x071c6c0b lowpan_header_compress +EXPORT_SYMBOL_GPL net/802/garp 0x058d962b garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x080bb789 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x331669e3 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x8171dd5e garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xcdb70955 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xefa57319 garp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x12df1a72 mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x53976975 mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0x8ce74a81 mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0xb158cd72 mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xe39616a0 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xea627ee3 mrp_request_leave +EXPORT_SYMBOL_GPL net/802/stp 0x1377915e stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0xa6a0cfa5 stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x8f2da707 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0xde47c989 p9_client_xattrcreate EXPORT_SYMBOL_GPL net/atm/atm 0xb09faf79 register_atmdevice_notifier EXPORT_SYMBOL_GPL net/atm/atm 0xcfb6a3da unregister_atmdevice_notifier -EXPORT_SYMBOL_GPL net/ax25/ax25 0x38529403 ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0x286ab869 ax25_register_pid EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr -EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x01026849 l2cap_chan_create -EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x13dd2193 l2cap_chan_connect -EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x18711410 bt_debugfs -EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x2fb0232b l2cap_chan_del -EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x47f00b03 l2cap_chan_list -EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x5356abaa l2cap_add_psm -EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x88a3e2f8 l2cap_chan_set_defaults -EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x9853afd3 l2cap_chan_put -EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xc6a90fe4 l2cap_chan_send -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00fb2424 br_vlan_get_info_rcu -EXPORT_SYMBOL_GPL net/bridge/bridge 0x06d060d8 br_port_get_stp_state -EXPORT_SYMBOL_GPL net/bridge/bridge 0x138a9695 br_multicast_has_router_adjacent -EXPORT_SYMBOL_GPL net/bridge/bridge 0x17f17e42 br_forward -EXPORT_SYMBOL_GPL net/bridge/bridge 0x1f96ba35 br_handle_frame_finish -EXPORT_SYMBOL_GPL net/bridge/bridge 0x24b1eeee br_mst_get_info -EXPORT_SYMBOL_GPL net/bridge/bridge 0x2aa2fda1 br_multicast_router -EXPORT_SYMBOL_GPL net/bridge/bridge 0x301949e0 br_mst_enabled -EXPORT_SYMBOL_GPL net/bridge/bridge 0x3668e475 br_fdb_clear_offload -EXPORT_SYMBOL_GPL net/bridge/bridge 0x4a81e02f br_forward_finish -EXPORT_SYMBOL_GPL net/bridge/bridge 0x502c18b4 br_vlan_get_info -EXPORT_SYMBOL_GPL net/bridge/bridge 0x6d7f52d7 br_multicast_enabled -EXPORT_SYMBOL_GPL net/bridge/bridge 0x7f12cf52 br_fdb_find_port -EXPORT_SYMBOL_GPL net/bridge/bridge 0x8c6d2d12 br_mst_get_state -EXPORT_SYMBOL_GPL net/bridge/bridge 0x96677cdb br_multicast_has_querier_anywhere -EXPORT_SYMBOL_GPL net/bridge/bridge 0x9bad91bd br_multicast_has_querier_adjacent -EXPORT_SYMBOL_GPL net/bridge/bridge 0x9ec2c0b3 br_vlan_get_proto -EXPORT_SYMBOL_GPL net/bridge/bridge 0x9f3693f9 nf_br_ops -EXPORT_SYMBOL_GPL net/bridge/bridge 0xb305c783 br_vlan_get_pvid -EXPORT_SYMBOL_GPL net/bridge/bridge 0xc00ff453 br_port_flag_is_set -EXPORT_SYMBOL_GPL net/bridge/bridge 0xd53df6bf br_multicast_list_adjacent -EXPORT_SYMBOL_GPL net/bridge/bridge 0xde7d09e1 br_vlan_enabled -EXPORT_SYMBOL_GPL net/bridge/bridge 0xe30ca984 br_vlan_get_pvid_rcu -EXPORT_SYMBOL_GPL net/bridge/bridge 0xe38c120b br_dev_queue_push_xmit -EXPORT_SYMBOL_GPL net/bridge/bridge 0xfb23857f br_get_ageing_time -EXPORT_SYMBOL_GPL net/dccp/dccp 0x03b4f6f3 inet_dccp_listen -EXPORT_SYMBOL_GPL net/dccp/dccp 0x0990e001 dccp_close +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x2889b0c2 l2cap_chan_connect +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x400b20ac l2cap_chan_del +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x5b17b267 l2cap_add_psm +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x64dc33df l2cap_chan_list +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x6c6bbdd8 bt_debugfs +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x8ca1dede l2cap_chan_create +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xa38c3d7c l2cap_chan_send +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xb1a06214 l2cap_chan_set_defaults +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xbb5cd7e8 l2cap_chan_put +EXPORT_SYMBOL_GPL net/bridge/bridge 0x0380a36e br_mst_get_state +EXPORT_SYMBOL_GPL net/bridge/bridge 0x13650ba9 br_forward +EXPORT_SYMBOL_GPL net/bridge/bridge 0x182a029e br_vlan_get_proto +EXPORT_SYMBOL_GPL net/bridge/bridge 0x26c10f24 br_vlan_get_pvid +EXPORT_SYMBOL_GPL net/bridge/bridge 0x2edbdf9e br_multicast_has_querier_anywhere +EXPORT_SYMBOL_GPL net/bridge/bridge 0x3e693f3c br_get_ageing_time +EXPORT_SYMBOL_GPL net/bridge/bridge 0x3f9d723a br_vlan_get_info +EXPORT_SYMBOL_GPL net/bridge/bridge 0x5b89590e br_mst_get_info +EXPORT_SYMBOL_GPL net/bridge/bridge 0x67c447ac br_port_get_stp_state +EXPORT_SYMBOL_GPL net/bridge/bridge 0x6825d47f br_handle_frame_finish +EXPORT_SYMBOL_GPL net/bridge/bridge 0x687fa940 br_forward_finish +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7ad42aa0 br_dev_queue_push_xmit +EXPORT_SYMBOL_GPL net/bridge/bridge 0x86b7035e br_vlan_get_info_rcu +EXPORT_SYMBOL_GPL net/bridge/bridge 0xa7d44ae1 br_multicast_router +EXPORT_SYMBOL_GPL net/bridge/bridge 0xac8b4944 br_mst_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0xb2247362 br_multicast_list_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0xb469cfd9 br_multicast_has_router_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0xb7146c41 br_multicast_has_querier_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0xb7e37c2e nf_br_ops +EXPORT_SYMBOL_GPL net/bridge/bridge 0xcd9b5f20 br_vlan_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0xcdd837fe br_fdb_clear_offload +EXPORT_SYMBOL_GPL net/bridge/bridge 0xd17de98f br_fdb_find_port +EXPORT_SYMBOL_GPL net/bridge/bridge 0xe8248bd9 br_multicast_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0xeaf05301 br_port_flag_is_set +EXPORT_SYMBOL_GPL net/bridge/bridge 0xef53a9d9 br_vlan_get_pvid_rcu +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0a01d88a dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0ff710fc dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1000a24f dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x14eaa5f9 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1774f3ab dccp_create_openreq_child EXPORT_SYMBOL_GPL net/dccp/dccp 0x182ec2bf dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x18c02c9a dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x191c240b dccp_setsockopt EXPORT_SYMBOL_GPL net/dccp/dccp 0x1be64eda dccp_death_row EXPORT_SYMBOL_GPL net/dccp/dccp 0x27a2966a dccp_hashinfo -EXPORT_SYMBOL_GPL net/dccp/dccp 0x2b0d4ab3 dccp_insert_option -EXPORT_SYMBOL_GPL net/dccp/dccp 0x32c6de5f dccp_make_response -EXPORT_SYMBOL_GPL net/dccp/dccp 0x34937e8c dccp_poll -EXPORT_SYMBOL_GPL net/dccp/dccp 0x3edeed80 dccp_create_openreq_child -EXPORT_SYMBOL_GPL net/dccp/dccp 0x469971f9 dccp_sync_mss -EXPORT_SYMBOL_GPL net/dccp/dccp 0x477083e2 dccp_set_state -EXPORT_SYMBOL_GPL net/dccp/dccp 0x4b196805 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x28ac940d dccp_check_req EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4e8a6bef dccp_destruct_common +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4f39c6f4 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x596dcadc dccp_rcv_established EXPORT_SYMBOL_GPL net/dccp/dccp 0x59814a84 dccp_statistics -EXPORT_SYMBOL_GPL net/dccp/dccp 0x6e15e705 dccp_parse_options -EXPORT_SYMBOL_GPL net/dccp/dccp 0x75a49617 dccp_ioctl -EXPORT_SYMBOL_GPL net/dccp/dccp 0x76725c12 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x603de16d dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x63d15244 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x664de42f dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6a60ad14 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7140afd0 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7683f9cc dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x776fcae8 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x79c52b9b dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7b0d7312 dccp_insert_option EXPORT_SYMBOL_GPL net/dccp/dccp 0x80993155 dccp_timestamp -EXPORT_SYMBOL_GPL net/dccp/dccp 0x811f251c dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x82fb9ceb dccp_parse_options EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name -EXPORT_SYMBOL_GPL net/dccp/dccp 0x8ca515de dccp_connect -EXPORT_SYMBOL_GPL net/dccp/dccp 0x94fdba66 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8ac02399 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8cb680b2 dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x939e9675 dccp_close EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup -EXPORT_SYMBOL_GPL net/dccp/dccp 0xa0f5d4ea dccp_shutdown -EXPORT_SYMBOL_GPL net/dccp/dccp 0xa7403cd9 dccp_destroy_sock -EXPORT_SYMBOL_GPL net/dccp/dccp 0xae8a88c8 dccp_child_process -EXPORT_SYMBOL_GPL net/dccp/dccp 0xb4b840a7 dccp_setsockopt -EXPORT_SYMBOL_GPL net/dccp/dccp 0xc3ad1815 dccp_check_req -EXPORT_SYMBOL_GPL net/dccp/dccp 0xc406391d dccp_feat_nn_get -EXPORT_SYMBOL_GPL net/dccp/dccp 0xd2d307da dccp_recvmsg -EXPORT_SYMBOL_GPL net/dccp/dccp 0xd5778ccd dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaeea633c inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb81cc33b dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc9f6cc6a dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xca9fbafd dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcd0915f2 dccp_init_sock EXPORT_SYMBOL_GPL net/dccp/dccp 0xd75b7072 dccp_orphan_count -EXPORT_SYMBOL_GPL net/dccp/dccp 0xe3ab509f dccp_rcv_established -EXPORT_SYMBOL_GPL net/dccp/dccp 0xe5a24069 dccp_done -EXPORT_SYMBOL_GPL net/dccp/dccp 0xe8de7887 dccp_sendmsg -EXPORT_SYMBOL_GPL net/dccp/dccp 0xf2da78a1 dccp_getsockopt -EXPORT_SYMBOL_GPL net/dccp/dccp 0xf32f667b dccp_send_ack -EXPORT_SYMBOL_GPL net/dccp/dccp 0xf4d419b1 dccp_destruct_common -EXPORT_SYMBOL_GPL net/dccp/dccp 0xf62eaf0a dccp_send_sync -EXPORT_SYMBOL_GPL net/dccp/dccp 0xfb2760d5 dccp_feat_signal_nn_change -EXPORT_SYMBOL_GPL net/dccp/dccp 0xfbff2569 dccp_disconnect -EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6b380144 dccp_v4_request_recv_sock -EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6b8ca12e dccp_v4_conn_request -EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x71b43c26 dccp_v4_connect -EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9fceea3c dccp_v4_send_check -EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa19fa2bc dccp_invalid_packet -EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xc74cc1ec dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp 0xea497e5b dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xedd350cf dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf028273f dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1781e7ca dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x29f98c7a dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2dcd2f9f dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5ce1c0c0 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x64fd9d58 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xc889a6a1 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00bb518c dsa_switch_shutdown +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x03e3d0b3 dsa_8021q_rcv +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x086aed27 dsa_port_from_netdev EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x0c6039ac dsa_flush_workqueue -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x169020fc dsa_enqueue_skb -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x21c453ee dsa_port_phylink_mac_change -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x2bed6d8a dsa_tag_drivers_register -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x33c10a1a dsa_devlink_params_register -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x39e70656 dsa_tag_8021q_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x0fcb39e4 dsa_enqueue_skb +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x24f38dbe dsa_slave_dev_check +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x26a48b80 dsa_devlink_resource_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x2707b240 dsa_tag_8021q_bridge_join EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x417d1fed dsa_8021q_rx_switch_id -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x43ab3971 dsa_tag_8021q_register EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x45ca5090 dsa_tag_8021q_bridge_vid -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x4ded7758 dsa_tag_8021q_bridge_join -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x54417775 dsa_devlink_params_unregister -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x5810be22 dsa_switch_resume -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x663ebedf dsa_switch_find -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x682603e6 dsa_tag_8021q_bridge_leave -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x6fb41074 dsa_switch_suspend -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7dc26a61 dsa_8021q_xmit -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x852ad6c6 dsa_unregister_switch -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x884ed3f3 dsa_mdb_present_in_other_db -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x8dcbc765 dsa_8021q_rcv -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x8e56a86e dsa_fdb_present_in_other_db -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x909dcae0 dsa_register_switch -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x91f99a91 dsa_devlink_port_region_create -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x94e65232 dsa_tag_8021q_standalone_vid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x46989350 dsa_devlink_resource_occ_get_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x4a9577b2 dsa_port_phylink_mac_change +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x6add3fc4 dsa_tag_8021q_find_port_by_vbid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x6d4b418b dsa_fdb_present_in_other_db +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7e35a97b dsa_switch_resume +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x86c3efaf dsa_switch_suspend +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x88a7b694 dsa_devlink_port_region_create +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x99f325e1 dsa_tag_8021q_standalone_vid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x9c8c3504 dsa_devlink_resource_occ_get_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x9d338e13 dsa_devlink_params_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x9e2c241b dsa_tag_8021q_bridge_leave EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x9e59271d dsa_8021q_rx_source_port -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xa020a7ef dsa_devlink_region_create -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xb0293039 dsa_devlink_resource_register -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xb8263ab5 dsa_slave_dev_check +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xada5ed15 dsa_tag_drivers_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xb47f9899 dsa_tag_drivers_register EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xc23e8d5f dsa_devlink_region_destroy -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xc3de99ef dsa_tag_drivers_unregister -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xcc4b2ba7 dsa_switch_shutdown +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xc5dca6f7 dsa_tag_8021q_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xd042ea1c dsa_tag_8021q_unregister EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xd077e855 dsa_devlink_param_get -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xd85de0d1 dsa_devlink_resource_occ_get_register -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xe243fd18 dsa_port_from_netdev -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xec91171d dsa_devlink_resource_occ_get_unregister -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf0fcc15f dsa_devlink_resources_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xd412ce40 dsa_mdb_present_in_other_db +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xd4f9b858 dsa_devlink_resources_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xea0cbab3 dsa_switch_find +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xede61578 dsa_register_switch +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xee52110f dsa_devlink_params_register EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf13e1803 vid_is_dsa_8021q -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf46c7794 dsa_tag_8021q_find_port_by_vbid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf301b990 dsa_unregister_switch +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf7dbd6bc dsa_8021q_xmit +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xfcc9ff0e dsa_devlink_region_create EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xfd3e2b67 dsa_devlink_param_set -EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x0b9e6f60 ieee802154_beacon_push -EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x30666d33 nl802154_scan_event -EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x365e246f ieee802154_hdr_push -EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x47f80b07 ieee802154_hdr_peek -EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x6740e02b ieee802154_mac_cmd_push -EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x67ce073b ieee802154_hdr_peek_addrs -EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x80f59f64 nl802154_scan_done +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x071465cb nl802154_scan_started +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x132db71d ieee802154_hdr_pull +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x32affc54 ieee802154_hdr_push +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x4100913b ieee802154_beacon_push +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x4a391f84 ieee802154_hdr_peek +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x74b436cc nl802154_scan_done +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x7ead47af ieee802154_mac_cmd_push EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x87e2553b ieee802154_max_payload -EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x9db7b9e2 ieee802154_mac_cmd_pl_pull -EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0xb0e73bce nl802154_beaconing_done -EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0xb81aa03b ieee802154_hdr_pull -EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0xef107065 nl802154_scan_started -EXPORT_SYMBOL_GPL net/ife/ife 0x52f23f4a ife_decode +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0xd044acd6 ieee802154_mac_cmd_pl_pull +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0xf6b320b0 nl802154_scan_event +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0xf82b27e1 nl802154_beaconing_done +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0xff15144f ieee802154_hdr_peek_addrs EXPORT_SYMBOL_GPL net/ife/ife 0x6210e871 ife_tlv_meta_next EXPORT_SYMBOL_GPL net/ife/ife 0x67db2029 ife_tlv_meta_decode -EXPORT_SYMBOL_GPL net/ife/ife 0x846a4933 ife_encode +EXPORT_SYMBOL_GPL net/ife/ife 0xd5c631d1 ife_encode +EXPORT_SYMBOL_GPL net/ife/ife 0xe1e6ee4b ife_decode EXPORT_SYMBOL_GPL net/ife/ife 0xe7888e98 ife_tlv_meta_encode -EXPORT_SYMBOL_GPL net/ipv4/esp4 0x124e2e5e esp_input_done2 -EXPORT_SYMBOL_GPL net/ipv4/esp4 0x7acce6e9 esp_output_head -EXPORT_SYMBOL_GPL net/ipv4/esp4 0xfc5d616b esp_output_tail -EXPORT_SYMBOL_GPL net/ipv4/gre 0x0c160a2b gre_del_protocol -EXPORT_SYMBOL_GPL net/ipv4/gre 0x9a992cd3 gre_add_protocol -EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x32505297 inet_diag_dump_icsk -EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x397ab006 inet_diag_register -EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x4640a43d inet_diag_bc_sk -EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x75232dc2 inet_diag_msg_common_fill -EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x7571d0f8 inet_diag_dump_one_icsk -EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x811b69a2 inet_sk_diag_fill -EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x8f7ed208 inet_diag_unregister -EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xa34098b1 inet_diag_msg_attrs_fill -EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xe74f997b inet_diag_find_one_icsk -EXPORT_SYMBOL_GPL net/ipv4/ip_gre 0x81526b0b gretap_fb_dev_create -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x09d6a649 ip_tunnel_change_mtu -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x1796eb7a ip_tunnel_setup -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x20c6243a ip_tunnel_dellink -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x2987e41c ip_tunnel_delete_nets -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x2dd22375 ip_tunnel_siocdevprivate -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x5b25be80 __ip_tunnel_change_mtu -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x741f24d0 ip_tunnel_ctl -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x84038320 ip_tunnel_lookup -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x9a8d8b38 ip_tunnel_changelink -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xb15ee7e8 ip_tunnel_rcv -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xb8bb80ad ip_tunnel_uninit -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xb8d892fd ip_tunnel_xmit -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xb9e4b502 ip_tunnel_init_net -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xcc8f7788 ip_tunnel_newlink -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xd48121d9 ip_md_tunnel_xmit -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xdceb3d6d ip_tunnel_encap_setup -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xf1c0a9a0 ip_tunnel_init -EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x601eeb69 arpt_alloc_initial_table -EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x196eba56 ipt_alloc_initial_table -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0xbc86ead0 nf_defrag_ipv4_disable -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0xedd128a1 nf_defrag_ipv4_enable -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_dup_ipv4 0xf2b11fc9 nf_dup_ipv4 -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x183a8182 nf_send_unreach -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x3945372d nf_reject_skb_v4_unreach -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x872c7a1d nf_reject_iphdr_put -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x99808ea8 nf_reject_skb_v4_tcp_reset -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0xa717f315 nf_reject_ip_tcphdr_get -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0xc37758ae nf_reject_ip_tcphdr_put -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0xdda02d32 nf_send_reset -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_socket_ipv4 0x21ca9b98 nf_sk_lookup_slow_v4 -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x9e12f2fa nf_tproxy_laddr4 -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0xa7c230cb nf_tproxy_handle_time_wait4 -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0xd830b579 nf_tproxy_get_sock_v4 -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x14481758 nft_fib4_eval_type -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x612a6a84 nft_fib4_eval -EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x11b6cb7b tcp_vegas_pkts_acked -EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x927c9adb tcp_vegas_cwnd_event -EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xba020931 tcp_vegas_state -EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe81ba418 tcp_vegas_get_info -EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xfe1f140a tcp_vegas_init -EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x09bb0d35 udp_tun_rx_dst -EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x103354de udp_tunnel_drop_rx_port -EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x1c1c2962 udp_tunnel_sock_release -EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x32e3ba3d udp_tunnel_notify_del_rx_port -EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x4336246f udp_tunnel_xmit_skb -EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x5cab555e udp_tunnel_push_rx_port -EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x8598348e udp_tunnel_notify_add_rx_port -EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x9e826ffc setup_udp_tunnel_sock -EXPORT_SYMBOL_GPL net/ipv6/esp6 0x461048ef esp6_output_tail -EXPORT_SYMBOL_GPL net/ipv6/esp6 0xb61c0f08 esp6_input_done2 -EXPORT_SYMBOL_GPL net/ipv6/esp6 0xe9171927 esp6_output_head -EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x4c0ae297 ip6_tnl_rcv_ctl -EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x5a7454ba ip6_tnl_encap_setup -EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x7ece18aa ip6_tnl_xmit_ctl -EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0x5f9cae65 udp_sock_create6 -EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0x65f59c06 udp_tunnel6_xmit_skb -EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xe7301897 ip6t_alloc_initial_table -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x2d65acc2 nf_defrag_ipv6_disable -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0xb723c57f nf_ct_frag6_gather -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0xb89cb47c nf_defrag_ipv6_enable -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_dup_ipv6 0x15da2b0a nf_dup_ipv6 -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x2bff531e nf_send_unreach6 -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x856d9df5 nf_reject_ip6_tcphdr_get -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x978aa262 nf_reject_skb_v6_unreach -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x9efde775 nf_send_reset6 -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xa452fa97 nf_reject_ip6hdr_put -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xba1b6a30 nf_reject_skb_v6_tcp_reset -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xe573b96a nf_reject_ip6_tcphdr_put -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_socket_ipv6 0xa6ad3af1 nf_sk_lookup_slow_v6 -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x09c2bbd5 nf_tproxy_get_sock_v6 -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x50f8c0f0 nf_tproxy_handle_time_wait6 -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0xc7a67380 nf_tproxy_laddr6 -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0xb400746a nft_fib6_eval_type -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0xfaaba858 nft_fib6_eval -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x04942e55 l2tp_tunnel_get_nth -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0dfe4fc2 l2tp_xmit_skb -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1cdfd9aa l2tp_session_delete -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x29162620 l2tp_tunnel_register -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2ad33137 l2tp_session_register -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4c2fade6 l2tp_recv_common -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5941cbd2 l2tp_tunnel_inc_refcount -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x59b055e1 l2tp_tunnel_get -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5ee69165 l2tp_sk_to_tunnel -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x61c69037 l2tp_session_inc_refcount -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x71fbf238 l2tp_session_dec_refcount -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7461790a l2tp_tunnel_get_session -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7c5d2ccf l2tp_udp_encap_recv -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8d09d1f7 l2tp_tunnel_dec_refcount -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9d3e5745 l2tp_session_get -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9f535cb3 l2tp_session_get_by_ifname -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd1792128 l2tp_tunnel_create -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdac0accc l2tp_session_get_nth -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xec072d54 l2tp_tunnel_delete -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xeceb081f l2tp_session_set_header_len -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf55df5d3 l2tp_session_create -EXPORT_SYMBOL_GPL net/l2tp/l2tp_ip 0x11345182 l2tp_ioctl +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x0e6931a3 esp_output_tail +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x41f0fca2 esp_input_done2 +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x4f1efc42 esp_output_head +EXPORT_SYMBOL_GPL net/ipv4/gre 0x0e1025b6 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xfc5914aa gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x000a6fc4 inet_diag_find_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x0aa5b9fb inet_diag_msg_attrs_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x224a3f1f inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x944f152b inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xc0356a59 inet_diag_msg_common_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xc3e814d5 inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xc888054f inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xcdd1e42c inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xe4791c72 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/ip_gre 0xa20ef97f gretap_fb_dev_create +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x048578c0 ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x182ea994 ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x342f2d86 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x50ae1241 ip_tunnel_encap_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x5abba129 __ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x6ccd027d ip_tunnel_siocdevprivate +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7dd06fc3 ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x86abd46b ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x963347e9 ip_tunnel_ctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xb6eb3d9b ip_md_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xbbfd6260 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xc097d078 ip_tunnel_delete_nets +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xcb8531ce ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xd31dd526 ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xe0f3dd36 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xe7ce7af8 ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xe7f62e4f ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x3c257840 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x1b9714cc ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x3033c1a0 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x33d2d58c nf_defrag_ipv4_disable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_dup_ipv4 0x2caf49fe nf_dup_ipv4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x30a53be2 nf_reject_skb_v4_tcp_reset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x5b0a7b8f nf_reject_iphdr_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x96feb128 nf_reject_skb_v4_unreach +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0xba7c614d nf_send_unreach +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0xd72fff76 nf_send_reset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0xf3eb395f nf_reject_ip_tcphdr_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0xfad8b0d4 nf_reject_ip_tcphdr_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_socket_ipv4 0x1782dccb nf_sk_lookup_slow_v4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x11530005 nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0xcee6e3b3 nf_tproxy_laddr4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0xf8713261 nf_tproxy_handle_time_wait4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x201b5c7e nft_fib4_eval +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x681c67f6 nft_fib4_eval_type +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x70b15d6c tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x826c2c53 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x8d589bf4 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xce5da4c1 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xdc05e258 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x07b7e5cb udp_tunnel_xmit_skb +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x12303b8b udp_tunnel_notify_del_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x13190852 udp_tunnel_notify_add_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x48672ac1 udp_tunnel_sock_release +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x6e9994dc udp_tun_rx_dst +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xad9a3c04 udp_tunnel_push_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xeb791285 setup_udp_tunnel_sock +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xfc4adfdd udp_tunnel_drop_rx_port +EXPORT_SYMBOL_GPL net/ipv6/esp6 0x1f639cb7 esp6_output_head +EXPORT_SYMBOL_GPL net/ipv6/esp6 0x40f0fad4 esp6_output_tail +EXPORT_SYMBOL_GPL net/ipv6/esp6 0xcf24570b esp6_input_done2 +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x23bfb4b8 ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x8bffb96a ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xde37bf5e ip6_tnl_encap_setup +EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0x251bbbd9 udp_tunnel6_xmit_skb +EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0xdc37ec5e udp_sock_create6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x2efb6547 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x18a95421 nf_ct_frag6_gather +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x5d7bb187 nf_defrag_ipv6_disable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0xf4cbdbb5 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_dup_ipv6 0x13db74c3 nf_dup_ipv6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x4be06935 nf_reject_ip6_tcphdr_get +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x54be5e47 nf_reject_ip6_tcphdr_put +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x7025a2d1 nf_send_unreach6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x7a704948 nf_reject_skb_v6_tcp_reset +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x9014437c nf_send_reset6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xa9a154fb nf_reject_skb_v6_unreach +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xd098e3e8 nf_reject_ip6hdr_put +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_socket_ipv6 0x90e57da2 nf_sk_lookup_slow_v6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x3c968cca nf_tproxy_handle_time_wait6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x439a937f nf_tproxy_laddr6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0xd13ea7bc nf_tproxy_get_sock_v6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0x2783adf7 nft_fib6_eval +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0x69750475 nft_fib6_eval_type +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x100252f1 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1751b29e l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x22930aa0 l2tp_session_get_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x266029ef l2tp_tunnel_dec_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x383714a6 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3f935097 l2tp_tunnel_get_session +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4aa414d8 l2tp_session_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x52c1b166 l2tp_session_dec_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x63d5fb34 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x73c88597 l2tp_tunnel_get +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7e1659a6 l2tp_session_get_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7e2c3efc l2tp_session_get +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x880db336 l2tp_tunnel_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x94738ecd l2tp_recv_common +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa57a99a3 l2tp_session_inc_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xafe96263 l2tp_sk_to_tunnel +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc29d1330 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe21e2d21 l2tp_tunnel_inc_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf8d5586b l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfb14de0d l2tp_tunnel_get_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfc5f8090 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_ip 0x6ec6abba l2tp_ioctl +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x09b02b2d l2tp_nl_register_ops EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops -EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0xaceac85f l2tp_nl_register_ops -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x02dc5fa3 ieee80211_update_mu_groups -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x0977290a ieee80211_iterate_interfaces -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x11b0f7f2 ieee80211_ready_on_channel -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1205d7fb ieee80211_find_sta_by_link_addrs +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x007d25b9 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1242ad99 ieee80211_obss_color_collision_notify EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x16ad7c5f ieee80211_tkip_add_iv +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1b6c0521 ieee80211_request_smps EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1dab0efe ieee80211_set_key_rx_seq -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1eba4845 ieee80211_vif_to_wdev -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x425c86f5 ieee80211_iterate_active_interfaces_mtx -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x49667b3d wdev_to_ieee80211_vif -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4ee7d1a0 ieee80211_calc_tx_airtime -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x67bfc24d ieee80211_remain_on_channel_expired -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x79585486 ieee80211_set_active_links -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7d3a39f6 ieee80211_request_smps -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x8b75d0a2 ieee80211_obss_color_collision_notify -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x93008241 ieee80211_color_change_finish -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x937f4791 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x2abd7527 ieee80211_iterate_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x38429db7 ieee80211_calc_tx_airtime +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5b6c8b4f ieee80211_iterate_active_interfaces_mtx +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6564ec12 ieee80211_find_sta_by_link_addrs +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6abffbf3 ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x748cd61e ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7a9c2ee9 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7dcdf289 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x92072cdb ieee80211_set_active_links +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x99c235e6 ieee80211_color_change_finish +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9b0d8fc2 ieee80211_update_mu_groups EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9e1c1431 ieee80211_key_replay -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa04d4666 ieee80211_iter_chan_contexts_atomic -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb1e9cf87 ieee80211_iterate_stations_atomic -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb23ce3a4 ieee80211_ave_rssi -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb8801f93 ieee80211_hw_restart_disconnect -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xcc2bdfe5 ieee80211_set_active_links_async +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9e1cae6a ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa7ee7f0f ieee80211_iterate_stations_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc0572594 ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc23172fc ieee80211_set_active_links_async +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc8fd8e0b ieee80211_hw_restart_disconnect EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd004ea88 ieee80211_key_mic_failure -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd1900b04 ieee80211_gtk_rekey_notify -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd2e5192d ieee80211_find_sta_by_ifaddr -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd992a31c ieee80211_gtk_rekey_add -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe8e86845 ieee80211_calc_rx_airtime +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd3e2a2d4 ieee80211_calc_rx_airtime +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd584b520 wdev_to_ieee80211_vif EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xea792270 ieee80211_remove_key -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf11ad7a8 ieee80211_resume_disconnect -EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x07f94853 mpls_stats_inc_outucastpkts -EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x61abe0fe mpls_dev_mtu -EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x733cce01 mpls_output_possible -EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x7aa5a882 mpls_pkt_too_big +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfb0041fd ieee80211_vif_to_wdev +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfb128cd2 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfb4a5e95 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x877df691 mpls_pkt_too_big +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x8dd04a07 mpls_output_possible EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x8ee316eb nla_get_labels -EXPORT_SYMBOL_GPL net/mpls/mpls_router 0xf043664e nla_put_labels -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x054375ba ip_set_elem_len -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0d7fd670 ip_set_put_byindex -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x10506712 ip_set_get_byname -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x1fe7a4a2 ip_set_type_register +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0xa20f3716 mpls_dev_mtu +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0xa5476fc7 mpls_stats_inc_outucastpkts +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0xdf5cadca nla_put_labels +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x09e7b434 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x18a00de5 ip_set_match_extensions EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x22d966c6 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x2694a7cd ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x277c9e6e ip_set_put_extensions EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4b19ed01 ip_set_init_comment -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x5753bba3 ip_set_name_byindex -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x5c8353b8 ip_set_get_ip4_port -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x5c98ba35 ip_set_nfnl_put -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x63b8191b ip_set_put_flags -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x65b8e6e7 ip_set_put_extensions -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x73f519f8 ip_set_get_ip6_port -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x74c73d60 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3dd4597f ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4c5d3bcc ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x56bac204 ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x5d2916e0 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6cbca77c ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6ebfb0b6 ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x788e849e ip_set_get_extensions EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81660600 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x807e13b5 ip_set_get_byname EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8811cafb ip_set_match_extensions -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x893362c2 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8493df5b ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x985b0972 ip_set_name_byindex EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xaf624cf0 ip_set_get_extensions -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb8eda75c ip_set_del -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc3cca1d8 ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb8aa26fb ip_set_put_flags +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xd1cb7ea7 ip_set_get_ip4_port EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf3b4d4ae ip_set_alloc -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf426b280 ip_set_extensions -EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x2787a558 unregister_ip_vs_pe -EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x3bdc28c7 ip_vs_conn_out_get_proto -EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x9ccd59d1 ip_vs_conn_in_get_proto -EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xa86caa43 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf595c1c6 ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf9703851 ip_set_init_comment +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xffcfa186 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x35912302 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x4f3da028 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x5963b98f register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xcc972c52 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x0fdc426b nf_conncount_count EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x14ef8dc4 nf_conncount_cache_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x3bf122fd nf_conncount_gc_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x6c7a8a04 nf_conncount_add EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xa8c13367 nf_conncount_list_init -EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xaef04358 nf_conncount_init -EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xc4045f72 nf_conncount_gc_list -EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xcc3c94da nf_conncount_destroy -EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xda014a85 nf_conncount_add -EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xe2498400 nf_conncount_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xcf5b843e nf_conncount_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xf7e6bdb4 nf_conncount_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x017c654b nf_connlabels_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01de8d17 nf_ct_set_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x02ab9d47 nf_ct_get_id +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0415d29b nf_conntrack_free EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0460ec0f nf_ct_invert_tuple EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0bc00f80 nf_nat_helper_try_module_get -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1114cd5b nf_ct_add_helper -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x115f2cb9 nf_ct_tmpl_free -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x12adb6bf nf_conntrack_helper_put -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x17fcbd48 nf_ct_helper_ext_add -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x197abab2 nf_ct_helper -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a23d5c6 nf_conntrack_helper_try_module_get -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1e088e9e nf_connlabels_get -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1f43e0d9 nf_ct_helper_expectfn_find_by_symbol -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1f59eaf5 nf_ct_netns_get -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20ab02cc nf_ct_gre_keymap_add -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22289556 __nf_ct_refresh_acct -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x23f39b35 nf_ct_untimeout -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2446482e nf_confirm -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x26466ca8 nf_ct_get_id -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x26852de0 nf_conntrack_helper_register -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x26a23224 nf_ct_helper_log -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x276a90e2 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0ce31fd2 nf_ct_timeout_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0eebea3b nf_conntrack_eventmask_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x11c80c87 nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1797c233 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1967c3c0 nf_conntrack_helpers_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x21bfb097 nf_conntrack_helper_put EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x28eff409 nf_conntrack_hash -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x29c97fc1 nf_ct_expect_iterate_net -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34cdf622 nf_ct_seqadj_init -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x351c8984 nf_l4proto_log_invalid -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x387e0b0b nf_conntrack_in -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3b0009f4 __nf_conntrack_confirm -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4475fd3c nf_ct_ecache_ext_add -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x49290b94 nf_conntrack_alloc -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x554e7a2b nf_ct_helper_expectfn_register -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x565f177b nf_ct_expect_init -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b7be99c nf_nat_helper_register -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b85ca5d __nf_ct_change_status -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5dda6f27 nf_nat_helper_unregister -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x66ccd8db nf_ct_destroy_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2c2fb12c nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2cbbe8a6 nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2d29845a nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30f65ca3 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x381d1b62 nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x394d5363 nf_conn_pernet_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3dce4817 nf_ct_ecache_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3ea3afdd nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x41d91cc9 nf_ct_tmpl_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4261bc1b nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x442b8ca0 nf_connlabels_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44c2f457 nf_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x45a49f21 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4754b112 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x57203da8 nf_ct_remove_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x57bcd49d __nf_ct_refresh_acct EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x69534db4 nf_ct_expect_alloc -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6b274ab5 nf_ct_helper_expectfn_find_by_name -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7012a613 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6cafcb9f nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6d8c2ae2 nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6d95672b nf_ct_netns_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x70fbe4d5 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x710ee2e6 nf_ct_seq_adjust EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x752f0aa2 nf_ct_port_nlattr_to_tuple -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x77777992 nf_ct_change_status_common -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x77b7e010 nf_conntrack_helper_unregister -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78224b94 nf_nat_helper_put -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x79db5711 nf_connlabels_put -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7af521d8 nf_conntrack_free -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c2147c1 nf_conntrack_alter_reply -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7cac95fb nf_ct_gre_keymap_destroy -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7ccbee00 nf_ct_delete -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d13751f nf_ct_expect_related_report -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8227c156 nf_ct_set_timeout -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x859aae44 nf_ct_acct_add -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8768cb18 nf_ct_get_tuplepr -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e598eba nf_ct_iterate_cleanup_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x75e8002e nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x769a202c nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x77e70711 nf_ct_l4proto_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7cafd1a5 nf_ct_netns_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x804926b2 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x811589d0 nf_nat_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8937dce8 nf_ct_destroy_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8b14f1a0 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ba7b30b nf_l4proto_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c949e15 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8caa40b7 nf_conntrack_register_notifier EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x901281f9 nf_ct_bridge_unregister EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ed2a04 nf_conntrack_expect_lock -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x915ec95b nf_ct_expect_put -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x959bf7ea nf_conntrack_count -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x97c41758 nf_ct_helper_init -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x99a2aea0 nf_ct_iterate_destroy -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa508da29 nf_ct_remove_expect -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa66d2d9 nf_connlabels_replace -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaab90c47 nf_ct_l4proto_find -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaaef1a95 nf_ct_expect_find_get -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaeee208a __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9128c00e nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x99340104 nf_ct_expect_iterate_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9bb007a7 nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9c257327 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9df12584 nf_ct_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9e888075 nf_conntrack_helpers_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa0316acc nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa4623ed3 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa4691b97 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa68181bd __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xacd722e4 nf_ct_untimeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaf121279 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaf5ede42 nf_ct_add_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2c57b19 nf_ct_expect_alloc EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb39356f5 nf_ct_port_nla_policy -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb5067556 __nf_ct_try_assign_helper -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb81e83ae nf_ct_bridge_register -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc7c6384 nf_ct_tcp_seqadj_set -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbf9be222 nf_ct_tmpl_alloc -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbfffad12 nf_ct_l4proto_log_invalid -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0ba007c nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb47d0f02 nf_ct_tmpl_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb493f2e3 nf_ct_acct_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb57d5df9 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb79c6fc3 nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb7f4289a nf_nat_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xba4ea724 nf_ct_bridge_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbaebe843 nf_ct_iterate_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc5bdb90 nf_ct_iterate_cleanup_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbf167bfc nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc1482f3c nf_ct_helper_init EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc22843de nf_ct_seq_offset -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc3f50557 nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc2ec01f7 nf_ct_kill_acct EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc499a25e nf_conn_pernet_ecache -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc519bb24 nf_conntrack_register_notifier -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcb3ec34f nf_conntrack_unregister_notifier -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd046a149 nf_ct_timeout_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4bb029d nf_conntrack_helpers_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8802e51 nf_ct_handle_fragments +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc9fe8984 nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf8da18e nf_ct_expect_iterate_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd0364c1d nf_nat_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd2801b0d __nf_ct_change_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4854d37 nf_ct_skb_network_trim EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd505c3e0 nf_ct_port_nlattr_tuple_size -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd5577ee4 nf_ct_deliver_cached_events -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd67b0847 nf_ct_netns_put -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6cdbdf6 nf_conntrack_helpers_unregister -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdab964ac nf_ct_expect_iterate_destroy -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdace0bba nf_ct_skb_network_trim -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdadc22e1 __nf_ct_change_timeout -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdd25d535 nf_ct_handle_fragments +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6968b32 nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd90c7658 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd95ef958 nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdbbf645b __nf_ct_change_status +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe349fa8e nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe536badf nf_ct_get_tuplepr EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe66c7316 nf_conntrack_lock -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe717113a nf_conntrack_hash_check_insert -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec0b613c nf_ct_bridge_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeb6e01ed nf_ct_change_status_common EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xefa509a1 nf_ct_seqadj_set -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf1827233 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf2d364fc nf_ct_expect_related_report EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf6601ab0 nf_ct_helper_expectfn_unregister -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf74590a9 __nf_conntrack_helper_find -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf93df74f nf_ct_port_tuple_to_nlattr -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfaba43cb nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf88a12ad nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfc6f3984 nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfcc893de nf_ct_unexpect_related EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe001fdd nf_conntrack_locks -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe7db10d nf_ct_unlink_expect_report -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xffc81fe2 nf_conntrack_eventmask_report -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xcf23a102 nf_nat_amanda_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x143542fe nf_conntrack_broadcast_help -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x8be0bd52 nf_nat_ftp_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4ba0f9b2 nfct_h323_nat_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd3142486 get_h225_addr -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x1ffe4ff4 nf_nat_irc_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xd65bbd33 nf_nat_pptp_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0ff98739 ct_sip_parse_numerical_param -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1d6a72c5 ct_sip_get_header -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x30af8e0b ct_sip_parse_header_uri -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3e684b27 ct_sip_get_sdp_header -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3f845218 ct_sip_parse_address_param -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x464acb95 nf_nat_sip_hooks -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x76a594af ct_sip_parse_request -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xc3fbd709 nf_nat_snmp_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x8a9f8810 nf_nat_tftp_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x68b635c6 nft_fwd_dup_netdev_offload -EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x7362ff80 nf_fwd_netdev_egress -EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x8ffbc05d nf_dup_netdev_egress -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x024f9bb6 nf_flow_dnat_port -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x1075abea nf_flow_rule_route_ipv4 -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x2687db12 nf_flow_offload_ipv6_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x2901988a nf_flow_offload_ip_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x2eb88bfe flow_offload_free -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x382250a6 nf_flow_table_init -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x4c6b5cdb flow_offload_lookup -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x56129b1a nf_flow_table_cleanup -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x6776b2a7 flow_offload_refresh -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x9a3d5c73 nf_flow_table_offload_setup -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xb3371276 nf_flow_snat_port -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xbb1cdbb7 flow_offload_add -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xbce251b9 flow_offload_teardown -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xec78fc07 nf_flow_table_free -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xedb12eaa nf_flow_rule_route_ipv6 -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xf465e09a flow_offload_alloc -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xf4a003ca flow_offload_route_init -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x140b1e74 nf_nat_inet_fn -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x35f7bfa0 nf_nat_redirect_ipv6 -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x362c7637 nf_nat_inet_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xa50d2763 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x8f217340 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x99db788a nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7b4643da get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe3757084 nfct_h323_nat_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x99924940 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xd22b7e4c nf_nat_pptp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0b8fb6e4 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2db52cb9 nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3272bce8 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x34c6807a ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x39b81ceb ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x59be29be ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfff86f65 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xd28d8e49 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x3728d8ae nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x7ccea8a4 nft_fwd_dup_netdev_offload +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0xbd9a1d6b nf_fwd_netdev_egress +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0xf164203e nf_dup_netdev_egress +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x1ffb004f nf_flow_table_offload_setup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x2eaafa3d flow_offload_refresh +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x374ed538 nf_flow_table_init +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x3b096116 flow_offload_route_init +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x529ed79c nf_flow_dnat_port +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x6f1072d6 nf_flow_snat_port +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7e7c6c16 flow_offload_free +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x879f1db8 nf_flow_rule_route_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x8e9de40a flow_offload_teardown +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x8f007642 flow_offload_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xb08ac174 nf_flow_rule_route_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xb203c021 nf_flow_offload_ipv6_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xc84b6a8d nf_flow_offload_ip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xd6c0f53c nf_flow_table_free +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xe7ff768d flow_offload_add +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xf1af0ebb nf_flow_table_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xf8cfb845 flow_offload_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x093829b9 nf_ct_nat EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x3bc17c49 nf_nat_masquerade_inet_register_notifiers -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x5480917e nf_nat_masquerade_ipv6 -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x55c9c04c nf_nat_ipv4_unregister_fn -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x56e830f9 nf_nat_icmp_reply_translation -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x5b86a00b nf_nat_inet_register_fn -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x628f5129 nf_nat_icmpv6_reply_translation -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x6c0c90cb nf_nat_packet -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x88ee29fa nf_ct_nat -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xadadf2e9 nf_nat_ipv6_unregister_fn -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xaf3f3088 nf_nat_masquerade_ipv4 -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xbb911604 nf_ct_nat_ext_add -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xc5d10a6f nf_nat_exp_find_port -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xc8566dc6 nf_nat_ipv6_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x402b29ef nf_ct_nat_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x4f7b9b3e nf_nat_inet_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x53c61fd4 nf_nat_inet_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x64898877 nf_nat_exp_find_port +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x70148254 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7050f353 nf_nat_masquerade_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7c9aa676 nf_nat_masquerade_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x81ea8e5a nf_nat_redirect_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x8790067b nf_nat_ipv6_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x97e3f0dc nf_nat_ipv4_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x98882e2f nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x9ce7fcf0 nf_nat_ipv6_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xa133da0c nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xacb4351c nf_nat_ipv4_register_fn EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xd9c25654 nf_nat_masquerade_inet_unregister_notifiers -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xe22faf83 nf_nat_ipv4_register_fn -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xfc9db091 nf_nat_redirect_ipv4 -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xfd60aa0d nf_nat_alloc_null_binding -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x11328e9a ipv4_synproxy_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x18a96e90 synproxy_send_client_synack +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xf53b91e7 nf_nat_inet_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xf7082b97 nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xf825cc38 nf_nat_redirect_ipv4 EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x1f099794 synproxy_init_timestamp_cookie -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x2f7340eb nf_synproxy_ipv4_init -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x4aab67ce synproxy_recv_client_ack_ipv6 -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x55b90567 nf_synproxy_ipv4_fini -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x6debf751 synproxy_recv_client_ack -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x8e9b9a25 synproxy_send_client_synack_ipv6 -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x8f38c4d4 nf_synproxy_ipv6_init -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x99edec18 ipv6_synproxy_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xacaf263b synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x3bb17b83 synproxy_recv_client_ack_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x47868b21 nf_synproxy_ipv4_fini +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x6a4beabd synproxy_recv_client_ack +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x6ad69632 synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x6d8f7245 nf_synproxy_ipv6_init +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7556ffaa ipv6_synproxy_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7afc1105 synproxy_send_client_synack +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xae6932ca synproxy_send_client_synack_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xc54a9ad5 nf_synproxy_ipv4_init EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xca9fc082 synproxy_net_id -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xf5f28158 nf_synproxy_ipv6_fini -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x03513446 nft_meta_get_eval -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x08dc59b4 nft_meta_set_validate -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x11434c77 __nft_release_basechain -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x16ccf1ff nft_unregister_flowtable_type -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x1928715f nft_meta_get_dump -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x29444019 nft_meta_set_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xdbc7eca1 ipv4_synproxy_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xef4363b1 nf_synproxy_ipv6_fini +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0893c8f3 nft_obj_notify +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x09e32d96 nft_meta_set_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0d79a3e4 nft_dump_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x137a1566 nft_set_lookup_global +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x2197d27c nf_tables_deactivate_flowtable +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x2ab299e8 nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x2f86574e nft_reg_track_update +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x2fc2487b nft_flowtable_lookup EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3251d762 nf_tables_trans_destroy_flush_work -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3667c24a nft_do_chain -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x378e0a15 nft_unregister_chain_type -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x38405ade nf_tables_deactivate_flowtable -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3b6df835 nft_data_dump -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3c7cf797 nft_set_elem_destroy -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3e43f70b nft_request_module +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3d7b4c56 nft_meta_get_reduce +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x40b6603e nf_tables_destroy_set EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x41b71e65 nft_trace_enabled -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x482d1b94 nft_meta_get_reduce -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x4cc072a1 nf_tables_deactivate_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x48982e24 nft_meta_set_destroy EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x4cecbb60 nft_meta_policy -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x51be91d4 nft_register_expr -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x531d0888 nft_register_chain_type -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x549209eb nft_chain_validate -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5ec8eda4 nft_meta_set_dump -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5f794a2c __nft_reg_track_cancel -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x670f4f68 nf_tables_bind_set -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x685bfece nft_meta_get_init -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x79980c60 nft_flowtable_lookup -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7b0fa8fc nft_unregister_obj -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7c0d24e8 nft_expr_reduce_bitwise -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x84a2eb27 nf_tables_destroy_set -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8eab1081 nft_reg_track_update -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x98433beb nft_obj_lookup -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x99400fed nft_unregister_expr -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x99edf183 nft_meta_set_init -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9d7dd4e3 nft_reg_track_cancel -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xa4387075 nft_obj_notify -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xa6658a9c nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x4d5f9def nft_parse_register_store +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x4eb0fe58 nft_set_catchall_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x54885101 nft_meta_set_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x55c6bb0a nft_obj_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x58e8b03f nf_tables_bind_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x598cb522 __nft_reg_track_cancel +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5da75846 nft_meta_get_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x6d6201d7 nft_chain_validate +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x724fcbb4 nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8bcb2749 nft_set_elem_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8d167229 nft_unregister_obj +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9354b56a nft_meta_get_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x95e0fc6c nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9a7255f3 nft_expr_reduce_bitwise +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9bc567b4 nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xa2182319 nft_register_obj +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xa83c8e4f nft_meta_get_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xaf79bf20 nft_meta_inner_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xb03d7344 nf_tables_deactivate_set EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xb355972b nft_chain_validate_dependency -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xb5f27899 nf_tables_activate_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xb5d132c6 nf_tables_activate_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xbad7f696 nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xbbc19185 nft_reg_track_cancel EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xc591b5a1 nft_chain_validate_hooks -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xc9db24d0 nft_dump_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xc7d0ba93 nft_request_module +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xcd3711e4 nft_meta_set_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xdc2c1691 nft_unregister_flowtable_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xdc86adba nft_register_chain_type EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xde57b5f5 nft_parse_u32_check EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe0a28eb4 nft_data_release EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe2b8cc13 nft_parse_register_load -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe50dd47a nft_meta_inner_eval -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe64956de nft_set_catchall_lookup -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf1e1b9ef nft_register_obj -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf3ee57a4 nft_register_flowtable_type -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf45b6b63 nft_parse_register_store -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf647c6b9 nft_set_lookup_global -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xfe1aa258 nft_meta_set_eval -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1cee1024 nfnetlink_broadcast -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x356834e4 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe36b8b4d nft_register_flowtable_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe82ab4fd nft_do_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf0f23ef8 __nft_release_basechain +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf8992c45 nft_meta_set_validate +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x012939f7 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1b79f5a0 nfnetlink_subsys_unregister EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc1ef0dd4 nfnetlink_subsys_unregister -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc56025ee nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x6f445f4b nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa87cb8b9 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xaaa961a7 nfnetlink_broadcast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xae7afec1 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd5922851 nfnetlink_set_err EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf2fd7c65 nfnetlink_unicast -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf63ed4c8 nfnetlink_has_listeners -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf7e48a76 nfnetlink_set_err -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x547a58ed nfnl_acct_find_get -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x585a536b nfnl_acct_overquota -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xb041b03e nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x298a88ce nfnl_acct_overquota +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x43582f69 nfnl_acct_find_get EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x21ba59ce nf_osf_find +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xc309acb9 nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x18f9b01b nf_osf_find EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x35eff5e0 nf_osf_fingers -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0xa7ae312a nf_osf_match -EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x35073a6d nft_fib_store_result -EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x5628dc2f nft_fib_init -EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x7f12d57c nft_fib_dump -EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x9a3d4667 nft_fib_validate -EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0xd415af07 nft_fib_reduce -EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x149dfb8c nft_reject_init +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x630954e9 nf_osf_match +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x4f1b415c nft_fib_validate +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x56456fc1 nft_fib_reduce +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x814bc7fd nft_fib_dump +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x9d16e27e nft_fib_store_result +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0xf6e4a051 nft_fib_init EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x1de558c1 nft_reject_icmpv6_code -EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x1eda8c6d nft_reject_dump -EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x41b3ccbf nft_reject_validate +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x3c48924f nft_reject_dump +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x8904a691 nft_reject_validate EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x9d46ccf8 nft_reject_policy +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0xb2ee0292 nft_reject_init EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0xe2c84666 nft_reject_icmp_code -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x12287b69 xt_register_table -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x287d5418 xt_table_unlock -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4bc36346 xt_check_match -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6781d0f8 xt_proto_fini -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x788320a3 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x18be3f14 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1e726f1f xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x39b3c77a xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3cdd7a6c xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x54888d9c xt_hook_ops_alloc +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5bc0059e xt_register_template +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6aaa0e04 xt_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x796b1e7d xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7a65202e xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7b4c76d8 xt_request_find_target EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7bce4603 xt_data_to_user -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7d44cf23 xt_find_table_lock EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x85438d6f xt_proto_init -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9bc7b6a8 xt_register_template +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8792cd33 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9009e6e5 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9a5739a9 xt_unregister_template EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9c995c69 xt_percpu_counter_alloc -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa59ac026 xt_target_to_user -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb0560c48 xt_request_find_target -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb5052caa xt_request_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb4780bee xt_find_table_lock EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbfacb837 xt_percpu_counter_free -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc9d3d84b xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc355a91e xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcc78764e xt_match_to_user EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd3fcc511 xt_tee_enabled EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xddf68fc6 xt_find_revision -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf2552c4c xt_check_target -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf2d97c2a xt_request_find_match -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf4603db1 xt_unregister_template EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf6abeb06 xt_copy_counters -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf839b9cd xt_hook_ops_alloc -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfc40cb37 xt_match_to_user -EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x8c8059ff xt_rateest_put -EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xbcdbfa83 xt_rateest_lookup -EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x4acb676a nci_spi_allocate_spi -EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x7f975e4f nci_spi_send -EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0xf259fd10 nci_spi_read -EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x419bc6f3 nci_uart_set_config -EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0xac04aac3 nci_uart_unregister -EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0xb727175f nci_uart_register -EXPORT_SYMBOL_GPL net/nsh/nsh 0x49e2ff43 nsh_push -EXPORT_SYMBOL_GPL net/nsh/nsh 0xd275b168 nsh_pop -EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x13e99f2b ovs_netdev_link -EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x82a75add ovs_netdev_tunnel_destroy -EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x9cb6dad2 __ovs_vport_ops_register -EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xc22ca511 ovs_vport_free -EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xd298203b ovs_vport_ops_unregister -EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xe603ba23 ovs_vport_alloc -EXPORT_SYMBOL_GPL net/psample/psample 0x33a107c9 psample_group_get -EXPORT_SYMBOL_GPL net/psample/psample 0x3b1d9373 psample_group_take -EXPORT_SYMBOL_GPL net/psample/psample 0x6b40ea1f psample_group_put -EXPORT_SYMBOL_GPL net/psample/psample 0xc2887ed8 psample_sample_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfb4988a8 xt_request_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x1b9438a7 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xabd7312c xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x616ee483 nci_spi_read +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x802fa578 nci_spi_send +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0xdac6479e nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x52d612a6 nci_uart_set_config +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x822b7e37 nci_uart_register +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0xfe52707e nci_uart_unregister +EXPORT_SYMBOL_GPL net/nsh/nsh 0x04b25892 nsh_pop +EXPORT_SYMBOL_GPL net/nsh/nsh 0x326ce291 nsh_push +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x0c61b730 ovs_netdev_tunnel_destroy +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x3738f4c7 ovs_vport_free +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x43aa3a2b ovs_netdev_link +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x6b34e25b __ovs_vport_ops_register +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x7a9e2014 ovs_vport_alloc +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xd0dd074d ovs_vport_ops_unregister +EXPORT_SYMBOL_GPL net/psample/psample 0x58d0c1a8 psample_group_get +EXPORT_SYMBOL_GPL net/psample/psample 0x981a12e2 psample_sample_packet +EXPORT_SYMBOL_GPL net/psample/psample 0x9e31a09e psample_group_put +EXPORT_SYMBOL_GPL net/psample/psample 0xc542850b psample_group_take +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x5911e81a qrtr_endpoint_register EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x8d25501f qrtr_ns_remove EXPORT_SYMBOL_GPL net/qrtr/qrtr 0xa47e91ba qrtr_ns_init -EXPORT_SYMBOL_GPL net/qrtr/qrtr 0xc520ccb0 qrtr_endpoint_post -EXPORT_SYMBOL_GPL net/qrtr/qrtr 0xccd52d30 qrtr_endpoint_register -EXPORT_SYMBOL_GPL net/qrtr/qrtr 0xfc0543fd qrtr_endpoint_unregister +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0xb6e72b26 qrtr_endpoint_unregister +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0xf7e0068c qrtr_endpoint_post EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq -EXPORT_SYMBOL_GPL net/rds/rds 0x0a60fcf4 rds_conn_destroy -EXPORT_SYMBOL_GPL net/rds/rds 0x1ce98169 rds_send_path_reset +EXPORT_SYMBOL_GPL net/rds/rds 0x027e97c5 rds_connect_path_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x1ff84d41 rds_send_path_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x239aca6f rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x29889aea rds_send_xmit EXPORT_SYMBOL_GPL net/rds/rds 0x2b0d543c rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x31b140c7 rds_for_each_conn_info EXPORT_SYMBOL_GPL net/rds/rds 0x36087aa4 rds_stats -EXPORT_SYMBOL_GPL net/rds/rds 0x402bf8c4 rds_connect_path_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x3b980349 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x431857d4 rds_message_put EXPORT_SYMBOL_GPL net/rds/rds 0x45a4781e rds_addr_cmp -EXPORT_SYMBOL_GPL net/rds/rds 0x4ce54fed rds_connect_complete -EXPORT_SYMBOL_GPL net/rds/rds 0x51703250 rds_message_put -EXPORT_SYMBOL_GPL net/rds/rds 0x55a5e496 rds_send_ping +EXPORT_SYMBOL_GPL net/rds/rds 0x4c89facf rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x50d1f100 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x51ad4488 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x57a21df1 rds_rdma_send_complete EXPORT_SYMBOL_GPL net/rds/rds 0x582fe5cf rds_message_add_rdma_dest_extension EXPORT_SYMBOL_GPL net/rds/rds 0x585f567b rds_message_populate_header -EXPORT_SYMBOL_GPL net/rds/rds 0x6651aaad rds_send_drop_acked -EXPORT_SYMBOL_GPL net/rds/rds 0x68178d14 rds_conn_connect_if_down -EXPORT_SYMBOL_GPL net/rds/rds 0x68a22c67 rds_conn_path_connect_if_down -EXPORT_SYMBOL_GPL net/rds/rds 0x6924f402 rds_recv_incoming -EXPORT_SYMBOL_GPL net/rds/rds 0x76b9641d rds_trans_unregister -EXPORT_SYMBOL_GPL net/rds/rds 0x85394839 rds_message_addref -EXPORT_SYMBOL_GPL net/rds/rds 0x85732f30 rds_send_path_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x6180d456 rds_inc_path_init +EXPORT_SYMBOL_GPL net/rds/rds 0x65f5ed1c rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x77cd8ca9 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x7a304cb7 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x85bd9a79 rds_trans_unregister EXPORT_SYMBOL_GPL net/rds/rds 0x85e4e520 rds_stats_info_copy -EXPORT_SYMBOL_GPL net/rds/rds 0x9204b3e0 rds_atomic_send_complete -EXPORT_SYMBOL_GPL net/rds/rds 0x9701a9a6 rds_inc_init -EXPORT_SYMBOL_GPL net/rds/rds 0x9b3c926d rds_message_unmapped -EXPORT_SYMBOL_GPL net/rds/rds 0x9c39ec12 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x89281c08 rds_conn_path_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x8cee145c rds_conn_create EXPORT_SYMBOL_GPL net/rds/rds 0x9dcbbbf0 rds_page_remainder_alloc -EXPORT_SYMBOL_GPL net/rds/rds 0x9ed6f6b8 rds_conn_create_outgoing -EXPORT_SYMBOL_GPL net/rds/rds 0xa31b8009 rds_conn_drop -EXPORT_SYMBOL_GPL net/rds/rds 0xa5c21469 rds_inc_path_init -EXPORT_SYMBOL_GPL net/rds/rds 0xa8338ebc rds_conn_create -EXPORT_SYMBOL_GPL net/rds/rds 0xae293eff rds_info_register_func -EXPORT_SYMBOL_GPL net/rds/rds 0xaf5a4ae2 rds_rdma_send_complete -EXPORT_SYMBOL_GPL net/rds/rds 0xb1cdc78b rds_trans_register -EXPORT_SYMBOL_GPL net/rds/rds 0xb9900183 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xa1821a3e rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xb895c88f rds_connect_complete EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy -EXPORT_SYMBOL_GPL net/rds/rds 0xcadb334d rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0xc3312b33 rds_send_path_reset +EXPORT_SYMBOL_GPL net/rds/rds 0xdaf1e953 rds_conn_connect_if_down EXPORT_SYMBOL_GPL net/rds/rds 0xdf12e869 rds_cong_map_updated -EXPORT_SYMBOL_GPL net/rds/rds 0xf36b4f66 rds_send_xmit -EXPORT_SYMBOL_GPL net/rds/rds 0xfd944483 rds_conn_path_drop -EXPORT_SYMBOL_GPL net/sched/sch_mqprio_lib 0x20f8e058 mqprio_qopt_reconstruct -EXPORT_SYMBOL_GPL net/sched/sch_mqprio_lib 0x4d01062f mqprio_validate_qopt +EXPORT_SYMBOL_GPL net/rds/rds 0xe02e15d5 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xe2d4a44b rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0xe467a305 rds_send_ping +EXPORT_SYMBOL_GPL net/rds/rds 0xef99a8de rds_conn_path_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xf2ac5816 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xfec67dbe rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/sched/sch_mqprio_lib 0x2006b7e3 mqprio_validate_qopt EXPORT_SYMBOL_GPL net/sched/sch_mqprio_lib 0xcede419b mqprio_fp_to_offload -EXPORT_SYMBOL_GPL net/sched/sch_pie 0x1114030f pie_process_dequeue -EXPORT_SYMBOL_GPL net/sched/sch_pie 0x1bb5d866 pie_drop_early +EXPORT_SYMBOL_GPL net/sched/sch_mqprio_lib 0xdf63d9d4 mqprio_qopt_reconstruct +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x59ad0acd pie_process_dequeue EXPORT_SYMBOL_GPL net/sched/sch_pie 0x6ce9b467 pie_calculate_probability +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x8221df62 pie_drop_early EXPORT_SYMBOL_GPL net/sched/sch_taprio 0x16f8ba5d taprio_offload_get EXPORT_SYMBOL_GPL net/sched/sch_taprio 0x6a6b1c12 taprio_offload_free -EXPORT_SYMBOL_GPL net/sctp/sctp 0x50e6a7d7 sctp_transport_traverse_process -EXPORT_SYMBOL_GPL net/sctp/sctp 0x5a70702a sctp_transport_lookup_process -EXPORT_SYMBOL_GPL net/sctp/sctp 0x611e5dc5 sctp_for_each_endpoint -EXPORT_SYMBOL_GPL net/sctp/sctp 0xe945ca5f sctp_get_sctp_info -EXPORT_SYMBOL_GPL net/smc/smc 0x4b8d7f65 smc_hash_sk -EXPORT_SYMBOL_GPL net/smc/smc 0x5337c90d smc_proto -EXPORT_SYMBOL_GPL net/smc/smc 0x8b1631e6 smc_proto6 -EXPORT_SYMBOL_GPL net/smc/smc 0xfe4807d8 smc_unhash_sk +EXPORT_SYMBOL_GPL net/sctp/sctp 0x4af3acf2 sctp_transport_traverse_process +EXPORT_SYMBOL_GPL net/sctp/sctp 0x9268613b sctp_get_sctp_info +EXPORT_SYMBOL_GPL net/sctp/sctp 0xc769f7a4 sctp_for_each_endpoint +EXPORT_SYMBOL_GPL net/sctp/sctp 0xe31633f5 sctp_transport_lookup_process +EXPORT_SYMBOL_GPL net/smc/smc 0xa1feb2ab smc_proto +EXPORT_SYMBOL_GPL net/smc/smc 0xb451fe40 smc_proto6 +EXPORT_SYMBOL_GPL net/smc/smc 0xd4344f42 smc_hash_sk +EXPORT_SYMBOL_GPL net/smc/smc 0xd94f7a2c smc_unhash_sk +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x21ae553c gss_mech_unregister EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4502c1c4 svcauth_gss_flavor EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4 g_token_size -EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x567758f3 svcauth_gss_register_pseudoflavor -EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x69a702a4 svcauth_gss_flavor -EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x83a78acb gss_mech_unregister -EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x879d24d0 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4d854ca4 svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5289db2e gss_mech_register EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd7673035 g_verify_token_header -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00386fb8 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0226caae rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x022dace1 xdr_stream_encode_opaque_auth EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02863868 rpc_machine_cred -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0293f403 cache_create_net -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02fc7301 xprt_wait_for_buffer_space -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04ba5dfd rpc_clnt_swap_activate -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x054d7963 xdr_set_pagelen +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x032f77b7 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04b75d92 rpcauth_stringify_acceptor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05832c32 rpc_switch_client_transport EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0628cf22 rpc_init_wait_queue EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x080be8ef xprt_release_xprt_cong -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08da022d xdr_stream_move_subsegment -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09d23f4c svc_rpcbind_set_version -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a639f8d rpcauth_lookup_credcache -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0afef0fe xdr_read_pages -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b1bbf4e rpc_clnt_xprt_switch_has_addr -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c078c7d rpc_wait_for_completion_task -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0da4dafa rpc_set_connect_timeout -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e331bd7 rpc_put_sb_net -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0fdf18a3 rpc_count_iostats_metrics -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x105b22bc rpcauth_unregister -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x111fbc14 rpc_call_async -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12a902fb svc_xprt_close -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13bab4ce xdr_stream_decode_opaque -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14c4e4be svc_generic_init_request -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1545da4a rpc_put_task_async -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15f4891b svc_rpcb_setup -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x174f20c5 rpc_net_ns -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a7fd9eb csum_partial_copy_to_xdr -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a81bd7a svc_recv -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c124794 xdr_init_decode_pages -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1cf21fe4 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0811c6e7 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a9ea225 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c96540c rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d21224c svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ec3d6a6 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x101d91f4 xdr_stream_move_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11a32d06 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12273046 cache_seq_stop_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12afe6b2 rpc_clnt_test_and_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x147d4efb xdr_page_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14bf2c14 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14f0890b rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1545e408 xdr_set_pagelen +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16eaf3a8 rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19ff5bce svc_generic_rpcbind_set +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1adccf15 xdr_stream_decode_opaque_dup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b3b8521 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1be061f2 svc_generic_init_request +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1be22df7 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1cda56ff rpc_destroy_pipe_data EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e119a79 rpcauth_get_pseudoflavor -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f658476 rpc_clnt_test_and_add_xprt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x233d5dec rpcauth_stringify_acceptor -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x273fbe0e bc_svc_process -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2802594d sunrpc_cache_lookup_rcu -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2851349b xdr_stream_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e626f12 rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20391e34 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2146e3f0 xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x215e977e xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23409c05 rpc_clnt_xprt_switch_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x235cec21 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23a7e72f svc_encode_result_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23b68b65 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26c96151 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2860588b svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x288ae47a rpcauth_init_cred EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x295223dc rpc_peeraddr -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29b1b1ea rpc_clnt_probe_trunked_xprts -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a7f4314 xdr_stream_decode_opaque_auth -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2aa56d29 rpc_queue_upcall -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2abae975 svc_set_num_threads -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2af422e3 rpc_localaddr -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2da2b8ab rpc_max_payload -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e6fdfa9 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c35cd30 xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d244859 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d50dbcb rpc_clnt_manage_trunked_xprts +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e2ebb40 xdr_init_encode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ea82e98 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x307aeb67 rpc_clnt_add_xprt EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x326d6274 rpc_put_task -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3372876d rpc_restart_call -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3479f1d2 read_bytes_from_xdr_buf -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x357b5643 svc_addsock -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x365ed95a svc_max_payload -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36e3f044 xdr_page_pos -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3767e5f9 svc_xprt_deferred_close +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31e3806b sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32423c24 rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32680518 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3278b0b5 xdr_stream_zero +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32d68ee5 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32d91366 xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3351c5f5 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35132472 rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x368d86c3 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x376676ed xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x379c0d59 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37a55d9d rpc_clnt_probe_trunked_xprts EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a51b988 svc_rpcb_cleanup -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3eeab9b7 rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38d9b752 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3bed6e0f svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c948cd4 xprt_add_backlog +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c9d0753 rpc_prepare_reply_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d2c3d29 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e1a8ad6 rpc_run_task EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f9a2b0b rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40d27834 rpc_net_ns EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40e193a9 rpc_wake_up_status -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43c5921d rpc_sleep_on_priority -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43e7ae36 xdr_reserve_space_vec -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45a63780 xprt_destroy_backchannel -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x462df453 xprt_wake_up_backlog -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x464da411 xdr_buf_from_iov -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x487a66da xdr_stream_decode_string -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x490400f4 rpc_restart_call_prepare -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4966af90 xprt_unregister_transport -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49cfa526 sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x417f920c rpc_sleep_on_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x422eaf0c rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44277189 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x443b6c5b rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44e5f7e1 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x460a31c0 sunrpc_cache_unhash +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x465c4cc3 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46a63683 rpc_task_release_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47555b2f rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4996657d xdr_stream_decode_opaque_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49e0c711 rpc_clnt_disconnect EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4afedab1 xprtiod_workqueue -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b3529a5 xprt_release_rqst_cong -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d4818e1 xdr_buf_subsegment -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4da75d49 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b701a3e xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c6f9a98 xprt_request_get_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c8e8051 rpc_clnt_show_stats EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4dac77f0 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e20b8ef sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e22bf27 svc_rqst_alloc EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e8f6ca7 sunrpc_net_id -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f3acdf9 xprt_wait_for_reply_request_rtt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50a7b858 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4efd17b6 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f9d5425 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x508eef5c svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x519d585d svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5254ebbf xprt_unpin_rqst EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x549c0738 rpc_ntop -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54f7dfdb xprt_force_disconnect -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55077eb6 xprt_unpin_rqst -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55adb1fe svc_proc_register -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58b46647 rpc_remove_pipe_dir_object -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58e526ea rpc_num_bc_slots -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x596f52f2 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5526eecf xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55f1ef93 cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x583041c5 cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58e546fb rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5988b3b2 xdr_stream_decode_opaque EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a45ba31 svc_auth_unregister -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b335284 svc_seq_show -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bde5df1 cache_seq_start_rcu -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d3e8e07 svc_xprt_put -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d43a4fb rpc_init_pipe_dir_head -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e1bb607 xprt_update_rtt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e496aa3 rpc_alloc_iostats -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f4d01b7 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c3a2741 xprt_free_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d8d8d89 svc_rpcbind_set_version +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f72e0eb rpc_count_iostats_metrics +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x604a9dd0 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60624a08 svc_rqst_free EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x609202f9 rpc_task_gfp_mask -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x618c2901 rpcauth_destroy_credcache -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x622b9b20 xdr_inline_pages -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63d301de rpc_max_bc_payload -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6493d0a4 xdr_init_decode -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x650fd0bf svc_reserve -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x662bb6f0 rpc_shutdown_client -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66c26a19 rpc_clnt_disconnect -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68e5d429 svc_wake_up -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6963d81e xprt_reconnect_backoff -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69dd9ad0 xdr_write_pages -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a57cc41 svc_encode_result_payload -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ad16428 svc_rqst_free -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b4c16d7 rpc_uaddr2sockaddr -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d2e7141 svc_rqst_replace_page -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f0bfa82 rpcb_getport_async -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70196556 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60982c86 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x609a1da5 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x614ddc06 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63b64c38 rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65373186 rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66dce697 rpc_clnt_iterate_for_each_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66df952b rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x674e66e2 rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a44e0cc xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b39a096 xdr_reserve_space_vec +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bb76fa9 __xdr_commit_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bfd1877 rpc_set_connect_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d3e1047 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d88a203 xprt_reconnect_delay EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x702248e9 rpc_wake_up -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x707112c1 xprt_alloc_slot -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7116c438 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70c35822 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71d8a998 read_bytes_from_xdr_buf EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x733178a7 xdr_process_buf -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74249d5f rpcauth_init_cred -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74528cd8 xdr_encode_array2 -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74f26987 xprt_add_backlog -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75ae5b98 rpc_task_timeout -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75afa4a1 rpc_sleep_on_timeout -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x767c96b3 rpc_mkpipe_dentry -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x774c7751 svc_create -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77cdd656 svc_drop -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79473f52 xdr_stream_decode_string_dup -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7bbd9644 rpc_clnt_swap_deactivate -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7cbb1e49 rpc_clnt_xprt_switch_add_xprt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d7d33b8 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72226770 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74a50cf6 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x771c2e48 xprt_wait_for_reply_request_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79dba858 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79edab11 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ab3b116 xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c89aa0c xdr_stream_decode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d06df3b xprt_lock_connect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7da699bf cache_create_net EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f91d8c2 rpc_run_task -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8012845d rpc_killall_tasks -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x825ace68 xprt_put -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82769355 rpc_clone_client_set_auth -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84278b79 xprt_wait_for_reply_request_def -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x847355f2 rpc_release_client -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84be6b5e rpc_prepare_reply_pages -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x852a4ff8 cache_seq_next_rcu -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x88453c02 rpc_cancel_tasks -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89273804 rpc_clnt_xprt_switch_put -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89c223e8 sunrpc_cache_unhash -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b4e4c9b rpc_d_lookup_sb -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8bd678ac xprt_reserve_xprt_cong -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8bf7e922 xdr_inline_decode -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e1fff30 rpc_sleep_on -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8fa9a83e svc_age_temp_xprts_now -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90c7ae81 rpc_wake_up_queued_task -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9144eb86 xdr_stream_zero -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92b425ff svc_sock_update_bufs -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92d27009 svc_xprt_destroy_all -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x964b4bc3 sunrpc_cache_register_pipefs -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96d836ac xdr_reserve_space -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97267b4c rpc_pipe_generic_upcall -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x972f5966 sunrpc_cache_unregister_pipefs -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9818337f sunrpc_destroy_cache_detail -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98aa7590 _copy_from_pages -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99a2ed6d rpcauth_wrap_req_encode -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a5c034f rpc_call_sync -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c8f753a rpc_clnt_iterate_for_each_xprt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d8e94f8 svc_set_client -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e7108d4 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7febb6cf rpc_clnt_xprt_switch_remove_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8177cd15 rpc_clnt_xprt_switch_has_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8556ef95 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8648c0de rpc_clnt_xprt_switch_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x873b6b3b write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x878b9958 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8811fd8c svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x890a5551 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x893ff51e svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b05a160 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ddbefb3 xdr_truncate_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x91c0be25 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9262dfe1 rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92eb7893 svc_xprt_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x936312bb rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x941709de rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9472a283 xdr_stream_decode_string_dup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95a18191 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9738db93 xprt_wake_up_backlog +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98d016a0 rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98d10e70 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99884365 rpc_task_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a3fa7b3 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a4f3ac9 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a7d2693 svc_xprt_deferred_close +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b6e168b svc_xprt_close +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c5d1d13 rpc_clnt_swap_deactivate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c708a81 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c87946b rpc_sleep_on_priority_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cd4b4f0 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e8ca46c rpcauth_unregister EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f110df1 rpc_free_iostats -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f254c9c __xdr_commit_encode -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa08245e9 svc_unreg_xprt_class -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa198e8ca rpc_switch_client_transport -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3c965ae auth_domain_find -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6262e99 rpc_clnt_manage_trunked_xprts -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7379308 rpc_get_sb_net -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa825d777 rpc_exit -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa89cd7f1 rpc_proc_unregister -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa97a5cb5 svc_fill_symlink_pathname -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa21e983 rpc_proc_register -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa74610f svc_rqst_alloc -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa8da4d8 rpc_call_null -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaad16a1b rpc_wake_up_first -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac05dc6a rpc_delay -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae687f09 svc_generic_rpcbind_set -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaee47b50 rpc_create -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf2cc6b8 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0950f3f rpc_clnt_swap_activate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0b523d8 rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa17afcba rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4cce206 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6c5998a xprt_wait_for_reply_request_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa72209a5 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7a91d37 svc_age_temp_xprts_now +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8dc5251 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab1d7f24 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab1f94d0 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab68499b rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac21e75a rpc_clnt_setup_test_and_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac32ae41 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xada9b267 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadb9e982 svc_fill_write_vector +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadcf0d16 cache_seq_next_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae940d9e xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf50a431 svc_xprt_put EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf87d87a rpc_clnt_add_xprt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xafdbd119 svcauth_unix_set_client -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb09493bc write_bytes_to_xdr_buf -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0f1e74e rpc_force_rebind -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb175b540 svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb00e2dca svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb069c837 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1b6b5b8 rpc_max_bc_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2907cd2 rpc_mkpipe_data EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3b6e7a0 rpc_init_priority_wait_queue -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4224d04 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5171efa svc_rpcb_setup EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb78d6e6e rpc_setbufsize -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8745eb3 svc_xprt_enqueue -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb91f0bdf rpc_free -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb96c694c svcauth_unix_purge -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbbb8bc8 svc_authenticate -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd7311f7 svc_reg_xprt_class -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf160663 put_rpccred -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf641cf1 rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5475108 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6c06293 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb77ecf22 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb0ff2ae svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbde4df68 svc_fill_symlink_pathname EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbfdd9a56 svc_process -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbffb817d xprt_reconnect_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbfb596dc bc_svc_process EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0908dd0 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc09f246e sunrpc_cache_lookup_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0a70eeb svc_xprt_destroy_all EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc236285f svc_xprt_received -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2540204 cache_unregister_net -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2604316 xprt_pin_rqst -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc372889f svc_xprt_copy_addrs -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3c37bdd xprt_reserve_xprt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc44bc994 sunrpc_cache_update -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc639f68d rpc_clnt_show_stats -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc7574153 xprt_register_transport -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc75b8732 xprt_lock_connect -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc847981c auth_domain_lookup -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8a9a705 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc190af3c xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2485c92 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5aac19c rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc646c790 rpc_wait_for_completion_task EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9e3afe7 svc_xprt_init -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca074346 xprt_request_get_cong -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd8e76e2 rpc_bind_new_program -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcdf88b27 unix_domain_find -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce0ef831 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc90062d5 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc95a32e6 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca700165 sunrpc_cache_pipe_upcall_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca70382f svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca907899 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca90d36c gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb2a5166 xdr_stream_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb40cd42 svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce1149cc rpc_queue_upcall EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce678a59 xdr_decode_netobj -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0e1b44b rpcauth_create -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd23f63df rpc_count_iostats -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd28d4681 rpcauth_register -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd384dd0f xdr_init_encode -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4cb4ba6 rpcauth_init_credcache -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4d09962 rpcauth_lookupcred -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd59322e7 xprt_free -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5b2a66f xdr_truncate_decode -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd70e1d57 xdr_init_encode_pages -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd75d3020 cache_register_net -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd78d52f3 rpc_sleep_on_priority_timeout -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd792cb7d xprt_get -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7a11855 rpc_init_pipe_dir_object -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda77cada rpc_call_start -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdbdc5ebc xprt_complete_rqst -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc3e0c8c xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce6ecfaf _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcefeb787 cache_seq_start_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd001f97f svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd053f35d xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd53c2f78 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7068a8e rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9042592 rpcauth_lookupcred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd94144b9 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda63e711 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb522798 rpcauth_wrap_req_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdbc6e248 rpc_cancel_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc1f3c7f xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd3b6a2d rpc_killall_tasks EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd691402 xprt_find_transport_ident -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde1406db rpc_pton -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdeba86a3 rpcauth_unwrap_resp_decode -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1acaeb4 xdr_stream_encode_opaque_auth -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2a746d8 rpc_clnt_setup_test_and_add_xprt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe306e602 svc_fill_write_vector -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe32f6b1f rpc_clnt_xprt_switch_remove_xprt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe39f199e gssd_running -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe461a263 xprt_adjust_cwnd -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4fa7cc4 xprt_setup_backchannel -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe525958f cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde922343 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1def0b2 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe281b34c xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2c027ae svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe48659c3 rpc_count_iostats EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe609ed3a xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6385a86 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8d12fe9 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8f94173 svc_set_client EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb0bb952 rpc_task_release_transport -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec3b0089 auth_domain_put -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec785638 svc_xprt_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9c78988 xprt_pin_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9fad1eb svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb3f1414 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xebd6b4e2 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeccdb9a7 cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xed3e6a50 rpcauth_init_credcache EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee12638f xdr_buf_trim EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef7167b0 svc_create_pooled -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf16f8ca0 cache_check -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1d3c337 xprt_free_slot -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1eb80e8 cache_seq_stop_rcu -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf26b2093 rpc_add_pipe_dir_object -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2852edb xprt_alloc -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2960473 xdr_decode_array2 -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf669f2bc xdr_enter_page -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6b2f9f0 xdr_stream_decode_opaque_dup -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf708677a sunrpc_cache_pipe_upcall_timeout -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf75f42fb xprt_unlock_connect -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8ce1df8 svc_print_addr -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8d80f8a svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef581dfb xprt_unlock_connect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf08a4a86 rpc_num_bc_slots +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf14b23a4 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf17ec89f rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1dad6b8 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4622628 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5220947 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5327963 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5c7fdb1 xprt_force_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6282e25 xprt_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf82c8962 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf87175ed rpcauth_unwrap_resp_decode EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf92d0fd4 rpc_destroy_wait_queue -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf942b6f9 rpc_destroy_pipe_data -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfcebfa64 xdr_terminate_string -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe12bca1 rpc_wake_up_next -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfecc1267 xdr_stream_pos -EXPORT_SYMBOL_GPL net/tls/tls 0x5ae4df35 tls_offload_tx_resync_request -EXPORT_SYMBOL_GPL net/tls/tls 0x64616eda tls_device_sk_destruct -EXPORT_SYMBOL_GPL net/tls/tls 0xac0626ed tls_encrypt_skb -EXPORT_SYMBOL_GPL net/tls/tls 0xdacc720c tls_validate_xmit_skb -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x01b1e6d7 virtio_transport_notify_recv_init -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x01da12a7 virtio_transport_notify_poll_out +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa4d472e rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfdc45c33 svc_rqst_replace_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff287002 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff5a6fc1 xprt_reconnect_backoff +EXPORT_SYMBOL_GPL net/tls/tls 0x448b3763 tls_encrypt_skb +EXPORT_SYMBOL_GPL net/tls/tls 0x5c631ed6 tls_device_sk_destruct +EXPORT_SYMBOL_GPL net/tls/tls 0x990710c1 tls_offload_tx_resync_request +EXPORT_SYMBOL_GPL net/tls/tls 0xc566f0cd tls_validate_xmit_skb EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x03a81e69 virtio_transport_stream_allow -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x064557c2 virtio_transport_stream_rcvhiwat -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0710f48b virtio_transport_notify_send_pre_enqueue -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0ae6cc25 virtio_transport_dgram_bind -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x17cfe512 virtio_transport_seqpacket_enqueue -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1d2ba536 virtio_transport_deliver_tap_pkt -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x25817950 virtio_transport_get_credit -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2655ea61 virtio_transport_inc_tx_pkt -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2c7e9e43 virtio_transport_notify_recv_post_dequeue -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x365c7b43 virtio_transport_notify_buffer_size -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x36d0434f virtio_transport_stream_enqueue -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5780fec8 virtio_transport_notify_poll_in -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x59015cc6 virtio_transport_notify_send_pre_block -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5a1ebe4f virtio_transport_seqpacket_dequeue -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5cdb03b7 virtio_transport_put_credit -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x60e1f08d virtio_transport_dgram_dequeue -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x66cf3bed virtio_transport_notify_send_post_enqueue -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6ce9e7ca virtio_transport_stream_has_data -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x719d939a virtio_transport_stream_has_space -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7ff58318 virtio_transport_destruct -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x806c8cf6 virtio_transport_do_socket_init -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x840304f5 virtio_transport_purge_skbs -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8f4216c8 virtio_transport_notify_send_init -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa5ae51ac virtio_transport_stream_is_active -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb782dd23 virtio_transport_seqpacket_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x09be4c20 virtio_transport_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1046cbd9 virtio_transport_connect +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2c9970a5 virtio_transport_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x30503970 virtio_transport_notify_poll_in +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x307d7a12 virtio_transport_dgram_bind +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x386be65b virtio_transport_inc_tx_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x48c3879b virtio_transport_destruct +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4b8a5e08 virtio_transport_notify_recv_pre_block +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4cd47bb9 virtio_transport_stream_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4d5d2b2b virtio_transport_get_credit +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x500e173b virtio_transport_seqpacket_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x63a4ea59 virtio_transport_notify_buffer_size +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x641c84f7 virtio_transport_recv_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x77b33096 virtio_transport_dgram_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x846d1b6d virtio_transport_notify_send_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8543fed5 virtio_transport_seqpacket_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x867f6bc7 virtio_transport_dgram_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x90771af0 virtio_transport_stream_rcvhiwat +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xaba4489d virtio_transport_notify_recv_post_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xade345a0 virtio_transport_notify_send_post_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb24f3fba virtio_transport_deliver_tap_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb61eea38 virtio_transport_stream_is_active +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb742ef2e virtio_transport_notify_recv_pre_dequeue EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbabd30f5 virtio_transport_dgram_allow -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd2065f3e virtio_transport_shutdown -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd3996a51 virtio_transport_stream_dequeue -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd3ee5caf virtio_transport_recv_pkt -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd66fa849 virtio_transport_notify_recv_pre_dequeue -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd81f5b90 virtio_transport_release -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xdd1fab43 virtio_transport_read_skb -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xef5e2c65 virtio_transport_dgram_enqueue -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfcd98368 virtio_transport_connect -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfd57aa34 virtio_transport_notify_recv_pre_block -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0217a480 vsock_enqueue_accept -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x05f9f2a5 vsock_core_unregister +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbbd9446e virtio_transport_release +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbefb2d42 virtio_transport_do_socket_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc9be8914 virtio_transport_shutdown +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xcedf0b29 virtio_transport_purge_skbs +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd3304afd virtio_transport_put_credit +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd84772ba virtio_transport_notify_recv_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xdf04c654 virtio_transport_notify_send_pre_block +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe4dd7171 virtio_transport_notify_poll_out +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xecb2abc3 virtio_transport_seqpacket_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xed42c82b virtio_transport_read_skb +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf1f55e71 virtio_transport_notify_send_pre_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfcc13bf9 virtio_transport_stream_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x03e5cf6d vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0514c297 vsock_add_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0e0025ec vsock_connectible_has_data EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0e9bc9b6 vsock_addr_unbind -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x1d316c9b vsock_remove_sock +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x1339ea02 vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x1d653a54 vsock_dgram_recvmsg +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x1e6d4595 vsock_stream_has_space EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x284e07d8 vsock_bind_table -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2e22a965 vsock_add_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2c77e88f vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2d4179a4 vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x31f155f5 vsock_deliver_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3ce9fc18 vsock_core_register EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3d4b0fca vsock_addr_init -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3f6f44cf vsock_add_pending -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x48c3f12a vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3df3f9bc vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x411ab238 vsock_remove_sock +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x49d78849 vsock_core_unregister EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x4b99648c vsock_addr_bound -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x57634c21 vsock_remove_connected EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x59f5cf55 vsock_table_lock -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x5f7ee53c vsock_core_register -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x758990a3 vsock_stream_has_space -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x855ab299 vsock_for_each_connected_socket -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x861f2ced vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x762bb951 vsock_data_ready +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x780b652c vsock_remove_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7b90f7aa vsock_enqueue_accept EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x90aa8549 vsock_find_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x97e2c6ac vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x98b44cba vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x99013fac vsock_remove_connected EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x9bb6fd09 vsock_connected_table -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xa1947586 vsock_core_get_transport -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xa875e0a2 vsock_connectible_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xaa3079a2 vsock_assign_transport EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xaf2674b5 vsock_addr_equals_addr EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xb0d7bda7 vsock_addr_cast -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc1f5d489 vsock_remove_tap -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc700767b vsock_assign_transport -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd0a02090 vsock_find_connected_socket -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd57c124f vsock_deliver_tap -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd84866fb vsock_data_ready -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xdb2be5e0 vsock_dgram_recvmsg -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xe86aecbb vsock_remove_bound -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xea77de78 vsock_create_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xb41582d8 vsock_create_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbb5aab1a vsock_core_get_transport +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xcb082bce vsock_find_connected_socket EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xec96eadf vsock_addr_validate -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xefc6bc22 vsock_connectible_recvmsg -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xfba7eba5 vsock_insert_connected -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xfe05ed8f vsock_find_bound_socket -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0630216f cfg80211_vendor_cmd_reply -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x10264667 cfg80211_wext_giwmode -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x28ef0c25 wiphy_delayed_work_cancel -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x29ab1449 cfg80211_wext_giwname -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2b488504 cfg80211_pmsr_report -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2cfe5df1 cfg80211_vendor_cmd_get_sender -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4f3baa58 cfg80211_wext_giwrts -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x763ffa74 cfg80211_wext_giwrange -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7d455f55 cfg80211_wext_siwmode -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa95327b9 cfg80211_wext_siwscan -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xacc394c2 wiphy_work_queue -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb9ab669b cfg80211_wext_giwfrag -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc377be9d wiphy_delayed_work_queue -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcd0ba596 cfg80211_shutdown_all_interfaces -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd4c87fa9 cfg80211_wext_siwfrag -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd794d671 wiphy_work_cancel -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd953ead3 cfg80211_wext_giwretry -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe4fa5efd cfg80211_pmsr_complete -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf1c6734d cfg80211_wext_siwrts -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfce305e8 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xef9d737c vsock_connectible_recvmsg +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0520040a cfg80211_pmsr_report +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0c1109af cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x10100540 wiphy_work_queue +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x12115590 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1f967a80 cfg80211_pmsr_complete +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2cd24f67 cfg80211_vendor_cmd_reply +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x48f77800 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5498498c cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6f3ff582 wiphy_delayed_work_queue +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8883066a cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x93eb925b cfg80211_vendor_cmd_get_sender +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x956cfaee wiphy_work_cancel +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xab24e8fd cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb7043e53 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb9b4c940 wiphy_delayed_work_cancel +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc4ee50c9 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcbc019c3 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xceae5e62 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe6193e62 cfg80211_shutdown_all_interfaces +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf129665b cfg80211_wext_siwfrag EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0049ca83 xfrm_aead_get_byname EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00c80741 xfrm_ealg_get_byid EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0a575945 xfrm_count_pfkey_auth_supported @@ -18170,7349 +18190,7353 @@ EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xb73be794 xfrm_ealg_get_byidx EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xc6b1fdbe xfrm_aalg_get_byidx EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xd6f50cf7 xfrm_ealg_get_byname -EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x66e7ffa5 ipcomp_destroy -EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x9db78e3c ipcomp_init_state -EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xe86ce71f ipcomp_input -EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xf8611175 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x1421e2ab ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x5243c3c6 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xbf66090e ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xf3aed260 ipcomp_input EXPORT_SYMBOL_GPL net/xfrm/xfrm_user 0x4a0c7516 xfrm_msg_min EXPORT_SYMBOL_GPL net/xfrm/xfrm_user 0xa294bed8 xfrma_policy -EXPORT_SYMBOL_GPL sound/ac97_bus 0xb2b0f2af snd_ac97_reset -EXPORT_SYMBOL_GPL sound/core/seq/snd-seq 0x7d43d6d4 snd_seq_kernel_client_get -EXPORT_SYMBOL_GPL sound/core/seq/snd-seq 0xa6df597c snd_seq_kernel_client_put +EXPORT_SYMBOL_GPL sound/ac97_bus 0x88f4bb4e snd_ac97_reset +EXPORT_SYMBOL_GPL sound/core/seq/snd-seq 0x7a1d0302 snd_seq_kernel_client_get +EXPORT_SYMBOL_GPL sound/core/seq/snd-seq 0x882e358b snd_seq_kernel_client_put EXPORT_SYMBOL_GPL sound/core/seq/snd-seq 0xadb51cff snd_seq_client_ioctl_unlock EXPORT_SYMBOL_GPL sound/core/seq/snd-seq 0xcbf9166f snd_seq_system_broadcast EXPORT_SYMBOL_GPL sound/core/seq/snd-seq 0xe50413d7 snd_seq_client_ioctl_lock EXPORT_SYMBOL_GPL sound/core/seq/snd-seq 0xf0c8f9fa snd_seq_expand_var_event_at -EXPORT_SYMBOL_GPL sound/core/snd 0x0ebf1c32 snd_device_initialize -EXPORT_SYMBOL_GPL sound/core/snd 0x23402d1b snd_card_ref -EXPORT_SYMBOL_GPL sound/core/snd 0x38998216 snd_ctl_sync_vmaster -EXPORT_SYMBOL_GPL sound/core/snd 0x3d53d5d3 snd_devm_card_new -EXPORT_SYMBOL_GPL sound/core/snd 0x5a3b7572 snd_device_disconnect +EXPORT_SYMBOL_GPL sound/core/snd 0x01a2897e snd_devm_card_new +EXPORT_SYMBOL_GPL sound/core/snd 0x0c5fe0f6 snd_power_ref_and_wait +EXPORT_SYMBOL_GPL sound/core/snd 0x1e345125 snd_card_add_dev_attr +EXPORT_SYMBOL_GPL sound/core/snd 0x2503a927 snd_card_ref +EXPORT_SYMBOL_GPL sound/core/snd 0x2e3e10da snd_fasync_helper +EXPORT_SYMBOL_GPL sound/core/snd 0x301533e5 snd_card_disconnect_sync +EXPORT_SYMBOL_GPL sound/core/snd 0x424f2a3c snd_ctl_apply_vmaster_followers +EXPORT_SYMBOL_GPL sound/core/snd 0x4c0e7488 snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/core/snd 0x527ee7ae snd_card_rw_proc_new EXPORT_SYMBOL_GPL sound/core/snd 0x5af762f1 snd_fasync_free -EXPORT_SYMBOL_GPL sound/core/snd 0x66250b5b snd_ctl_register_layer -EXPORT_SYMBOL_GPL sound/core/snd 0x7e0bf345 snd_power_ref_and_wait -EXPORT_SYMBOL_GPL sound/core/snd 0x8341e07f snd_card_rw_proc_new -EXPORT_SYMBOL_GPL sound/core/snd 0x86181e82 snd_card_disconnect_sync -EXPORT_SYMBOL_GPL sound/core/snd 0x86a7063d snd_ctl_get_preferred_subdevice -EXPORT_SYMBOL_GPL sound/core/snd 0x89553f2e snd_ctl_activate_id -EXPORT_SYMBOL_GPL sound/core/snd 0x89dd2f42 snd_card_add_dev_attr -EXPORT_SYMBOL_GPL sound/core/snd 0x8a57bad9 snd_ctl_disconnect_layer -EXPORT_SYMBOL_GPL sound/core/snd 0x974fa209 snd_fasync_helper -EXPORT_SYMBOL_GPL sound/core/snd 0xa347f59a snd_ctl_apply_vmaster_followers -EXPORT_SYMBOL_GPL sound/core/snd 0xdfd98af4 snd_device_get_state -EXPORT_SYMBOL_GPL sound/core/snd 0xe2c9111f snd_card_free_on_error -EXPORT_SYMBOL_GPL sound/core/snd 0xeeab866f snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/core/snd 0x75d3d0bb snd_card_free_on_error +EXPORT_SYMBOL_GPL sound/core/snd 0x97a749d7 snd_device_disconnect +EXPORT_SYMBOL_GPL sound/core/snd 0xb4be0d4d snd_ctl_get_preferred_subdevice +EXPORT_SYMBOL_GPL sound/core/snd 0xc2e74a03 snd_device_initialize +EXPORT_SYMBOL_GPL sound/core/snd 0xcafac016 snd_ctl_disconnect_layer +EXPORT_SYMBOL_GPL sound/core/snd 0xccae9bc6 snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL sound/core/snd 0xd64187b9 snd_device_get_state +EXPORT_SYMBOL_GPL sound/core/snd 0xd93cfee0 snd_ctl_register_layer EXPORT_SYMBOL_GPL sound/core/snd 0xf8f2a4eb snd_kill_fasync EXPORT_SYMBOL_GPL sound/core/snd 0xfaf598c6 snd_ctl_request_layer -EXPORT_SYMBOL_GPL sound/core/snd-compress 0x69c8e161 snd_compress_new -EXPORT_SYMBOL_GPL sound/core/snd-compress 0xb9d577ce snd_compr_stop_error +EXPORT_SYMBOL_GPL sound/core/snd 0xfbf72a9c snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x1d9e9d42 snd_compress_new +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x22fd9b72 snd_compr_stop_error EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x04e1b99f snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x093f1f3e snd_pcm_stream_lock EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x09e913c1 snd_pcm_alt_chmaps -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x1ad87803 snd_pcm_add_chmap_ctls -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x34d687eb snd_pcm_stream_unlock_irqrestore -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x4978d316 snd_pcm_stream_unlock +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x0c8e3438 snd_pcm_stop_xrun +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x26f545cb snd_pcm_hw_constraint_eld +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x2cbb2793 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x327a5f07 _snd_pcm_stream_lock_irqsave_nested +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x3b70eac2 snd_pcm_fill_iec958_consumer EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x5c407196 snd_pcm_fill_iec958_consumer_hw_params -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x5c8454a7 snd_pcm_hw_constraint_eld -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x5e8fa766 snd_pcm_stop_xrun -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x5f79085d snd_pcm_stream_lock +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x5e59a7a7 snd_devm_alloc_dir_pages EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x649892e8 snd_pcm_create_iec958_consumer_default -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x7f26c476 _snd_pcm_stream_lock_irqsave_nested -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x8244c038 snd_pcm_stream_lock_irq -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x89da7199 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x65262cba snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x78678268 snd_pcm_stream_lock_irq EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x8d864069 snd_pcm_rate_range_to_bits -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x952d7233 snd_dma_buffer_sync -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa24241c5 snd_pcm_stream_unlock_irq EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xab8bc1a2 snd_pcm_rate_mask_intersect -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xaf5ef24d snd_pcm_fill_iec958_consumer -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xbb11fd4b _snd_pcm_stream_lock_irqsave -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xfeecf135 snd_devm_alloc_dir_pages -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x09055c34 snd_dmaengine_pcm_pointer_no_residue -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x0bf0c10c snd_dmaengine_pcm_get_chan -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x3ef13397 snd_dmaengine_pcm_open_request_chan -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x499e2a32 snd_dmaengine_pcm_close -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x4c3e2f12 snd_dmaengine_pcm_set_config_from_dai_data -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x59f9fcd9 snd_dmaengine_pcm_open -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x67766fb8 snd_dmaengine_pcm_refine_runtime_hwparams -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x74fe4d83 snd_dmaengine_pcm_pointer -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x991e304d snd_dmaengine_pcm_trigger -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xa5aa35e9 snd_dmaengine_pcm_close_release_chan -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xa5e90b92 snd_hwparams_to_dma_slave_config -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xe2873d7b snd_dmaengine_pcm_request_channel -EXPORT_SYMBOL_GPL sound/core/snd-rawmidi 0xaa1868fb snd_rawmidi_free -EXPORT_SYMBOL_GPL sound/core/snd-rawmidi 0xbe286336 snd_rawmidi_init -EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0x875798f8 snd_seq_driver_unregister -EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0x8eec0aea __snd_seq_driver_register -EXPORT_SYMBOL_GPL sound/core/snd-ump 0x32526eb6 snd_ump_switch_protocol -EXPORT_SYMBOL_GPL sound/core/snd-ump 0x4c2f9769 snd_ump_parse_endpoint +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xabd9070d _snd_pcm_stream_lock_irqsave +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xc4bf367b snd_pcm_stream_unlock_irqrestore +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xce7e9cec snd_dma_buffer_sync +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xe44c3a15 snd_pcm_stream_unlock +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xeb7b9aac snd_pcm_stream_unlock_irq +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x1552144e snd_dmaengine_pcm_open_request_chan +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x155ab91e snd_dmaengine_pcm_refine_runtime_hwparams +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x1f52cbe1 snd_dmaengine_pcm_pointer +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x26623853 snd_dmaengine_pcm_trigger +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x3e69c1a8 snd_dmaengine_pcm_pointer_no_residue +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x413eed6c snd_hwparams_to_dma_slave_config +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x4aee2758 snd_dmaengine_pcm_set_config_from_dai_data +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x4f5b7b6d snd_dmaengine_pcm_close +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x72394d6d snd_dmaengine_pcm_get_chan +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xaee06692 snd_dmaengine_pcm_open +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xdaf3eee4 snd_dmaengine_pcm_request_channel +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xeaacc937 snd_dmaengine_pcm_close_release_chan +EXPORT_SYMBOL_GPL sound/core/snd-rawmidi 0xb2197895 snd_rawmidi_free +EXPORT_SYMBOL_GPL sound/core/snd-rawmidi 0xfa7d535b snd_rawmidi_init +EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0x0aba3c5b __snd_seq_driver_register +EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0x1ba84d0a snd_seq_driver_unregister +EXPORT_SYMBOL_GPL sound/core/snd-ump 0x2b11a5cc snd_ump_parse_endpoint +EXPORT_SYMBOL_GPL sound/core/snd-ump 0x33574098 snd_ump_transmit +EXPORT_SYMBOL_GPL sound/core/snd-ump 0x39cca4c4 snd_ump_endpoint_new +EXPORT_SYMBOL_GPL sound/core/snd-ump 0x522f4e6d snd_ump_receive_ump_val EXPORT_SYMBOL_GPL sound/core/snd-ump 0x5b39d06f snd_ump_convert_from_ump -EXPORT_SYMBOL_GPL sound/core/snd-ump 0x65df3d6c snd_ump_endpoint_new -EXPORT_SYMBOL_GPL sound/core/snd-ump 0x833a64fa snd_ump_receive_ump_val -EXPORT_SYMBOL_GPL sound/core/snd-ump 0x92feebd9 snd_ump_attach_legacy_rawmidi -EXPORT_SYMBOL_GPL sound/core/snd-ump 0x947595df snd_ump_block_new +EXPORT_SYMBOL_GPL sound/core/snd-ump 0x6bdc2c00 snd_ump_receive +EXPORT_SYMBOL_GPL sound/core/snd-ump 0x90812cfe snd_ump_attach_legacy_rawmidi +EXPORT_SYMBOL_GPL sound/core/snd-ump 0x9c75a188 snd_ump_switch_protocol EXPORT_SYMBOL_GPL sound/core/snd-ump 0xe3590e5b snd_ump_convert_to_ump -EXPORT_SYMBOL_GPL sound/core/snd-ump 0xf1ce3502 snd_ump_transmit -EXPORT_SYMBOL_GPL sound/core/snd-ump 0xf782b224 snd_ump_receive -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x44f5e465 amdtp_am824_set_pcm_position -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x50d37801 amdtp_am824_set_midi_position -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x652bba90 amdtp_domain_stream_pcm_pointer -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x69bece22 amdtp_domain_init -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x71ff44cc amdtp_domain_destroy -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x75723d3c amdtp_am824_init -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x7855e37c amdtp_domain_stream_pcm_ack -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x7b37454d amdtp_domain_stop -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x92134508 amdtp_domain_start -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xb96e767f amdtp_domain_add_stream -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xdff31c4f amdtp_am824_add_pcm_hw_constraints -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xfb16d21c amdtp_am824_midi_trigger -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xfda0d453 amdtp_am824_set_parameters -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x0bdf78c3 snd_hdac_ext_bus_link_power -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x0fe44397 snd_hda_ext_driver_register -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x1ffe421f snd_hda_ext_driver_unregister -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x28162206 snd_hdac_ext_bus_ppcap_int_enable -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x2a1c4687 snd_hdac_ext_stream_release -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x2db453c6 snd_hdac_ext_link_free_all -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x2e07dfd3 snd_hdac_ext_bus_link_power_up -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x2ec4eee7 snd_hdac_ext_stream_setup -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x3dfbd3c6 snd_hdac_ext_bus_get_ml_capabilities -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x4650d4c6 snd_hdac_ext_stream_start -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x4848807b snd_hdac_ext_bus_init -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x4e37ff93 snd_hdac_ext_bus_exit -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x53c18bba snd_hdac_ext_bus_ppcap_enable -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x602f8fe8 snd_hdac_ext_bus_get_hlink_by_name -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x66843105 snd_hdac_ext_bus_link_put -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x77834835 snd_hdac_ext_bus_link_power_up_all -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x7ed3c7cf snd_hdac_ext_bus_device_remove -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x85c32420 snd_hdac_ext_stream_assign -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x8e33294a snd_hdac_ext_stream_decouple_locked -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x92839d4d snd_hdac_ext_stream_reset -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x99d79a99 snd_hdac_ext_stream_init_all -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xa1aca0ee snd_hdac_ext_bus_link_power_down -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xafbea10e snd_hdac_ext_stream_clear -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xb0cc3252 snd_hdac_ext_bus_link_get -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xcac9c530 snd_hdac_ext_bus_link_clear_stream_id -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xdd435fb2 snd_hdac_ext_stream_decouple -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xe37cbee3 snd_hdac_ext_cstream_assign -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xe667a078 snd_hdac_ext_bus_link_power_down_all -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xe7dea027 snd_hdac_ext_bus_get_hlink_by_addr -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xf468245e snd_hdac_ext_stream_free_all -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xfa2e603d snd_hdac_ext_bus_link_set_stream_id -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0311840e snd_hdac_bus_parse_capabilities -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x069b9d56 snd_hdac_power_up_pm -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x06a02c94 snd_hdac_get_stream -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0ca930c6 snd_hdac_bus_init -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0cfa3a79 snd_hdac_stream_set_lpib -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0d563c94 snd_hdac_stop_streams -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0edf2c47 snd_hdac_codec_write -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0f51e1c3 snd_hdac_device_register -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x11377b7f snd_hdac_is_supported_format -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x12b3361b snd_hdac_bus_enter_link_reset -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x18cb7b96 snd_hdac_acomp_register_notifier -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1b47f8fb snd_hdac_device_unregister -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1c8e6165 snd_hdac_bus_init_chip -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2005250e snd_hdac_regmap_add_vendor_verb -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2136335d snd_hdac_stream_setup_periods -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x269ec8a2 snd_hdac_stream_release -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2af17f71 snd_hdac_stream_wait_drsm -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2c854c44 snd_hdac_bus_handle_stream_irq -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2e05fd94 snd_hdac_bus_stop_cmd_io -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2e0962d1 snd_hdac_stream_spbcap_enable -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2fe3d10d snd_hdac_stream_timecounter_init -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x326caec3 snd_hdac_stream_assign -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x34788845 snd_hdac_bus_reset_link -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3661158e snd_hdac_codec_link_down -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x37622671 snd_hdac_regmap_update_raw -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x37abb87d snd_hdac_regmap_sync -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x37ead47e snd_hdac_set_codec_wakeup +EXPORT_SYMBOL_GPL sound/core/snd-ump 0xe3634d75 snd_ump_block_new +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x006714fe amdtp_domain_stop +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x05d62835 amdtp_domain_add_stream +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x0baa2ca5 amdtp_am824_init +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x682e13ba amdtp_am824_add_pcm_hw_constraints +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x6865bdfc amdtp_am824_set_midi_position +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x7176d1fd amdtp_domain_stream_pcm_ack +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x87ce86b5 amdtp_domain_init +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x8ff31519 amdtp_domain_start +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x978e336a amdtp_domain_stream_pcm_pointer +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xa71c5323 amdtp_domain_destroy +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xad1c1579 amdtp_am824_set_pcm_position +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xc2898f9f amdtp_am824_set_parameters +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xd31c3300 amdtp_am824_midi_trigger +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x0470dc9f snd_hdac_ext_bus_get_ml_capabilities +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x06bfa671 snd_hdac_ext_bus_ppcap_enable +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x07cdc70b snd_hdac_ext_stream_decouple_locked +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x0fdf2606 snd_hdac_ext_stream_decouple +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x1b35d42e snd_hdac_ext_bus_link_power_up +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x22320296 snd_hdac_ext_stream_release +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x284c69ea snd_hdac_ext_bus_link_power_down_all +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x2af1cf1a snd_hdac_ext_stream_setup +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x44055646 snd_hdac_ext_stream_assign +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x48e70953 snd_hdac_ext_bus_link_get +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x49f2df79 snd_hdac_ext_cstream_assign +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x5b065d15 snd_hdac_ext_link_free_all +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x5d38f796 snd_hdac_ext_bus_ppcap_int_enable +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x62c7b192 snd_hdac_ext_bus_exit +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x62e12853 snd_hdac_ext_bus_link_power_up_all +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x6f7e0af8 snd_hdac_ext_stream_free_all +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x86cfa629 snd_hdac_ext_bus_link_set_stream_id +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x9476a773 snd_hdac_ext_stream_start +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x96fde6bc snd_hdac_ext_stream_reset +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xa398a6b4 snd_hdac_ext_bus_init +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xad90673c snd_hdac_ext_bus_link_clear_stream_id +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xb964781b snd_hdac_ext_bus_link_power +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xbbc8e9f8 snd_hdac_ext_bus_get_hlink_by_name +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xbf4431ba snd_hdac_ext_stream_clear +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xc2afcb46 snd_hdac_ext_bus_get_hlink_by_addr +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xd0dcec8f snd_hda_ext_driver_unregister +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xd676e4b2 snd_hdac_ext_bus_link_put +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xe38058c1 snd_hdac_ext_bus_link_power_down +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xf5ee8892 snd_hda_ext_driver_register +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xfa34876e snd_hdac_ext_stream_init_all +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xfdd6bdba snd_hdac_ext_bus_device_remove +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x002c7fcf snd_hdac_register_chmap_ops +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x04fd19c5 snd_hdac_bus_init_cmd_io +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x10114006 snd_hdac_bus_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x13f6344e snd_hdac_set_codec_wakeup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x152f82dd snd_hdac_bus_handle_stream_irq +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x167ae0e5 snd_hdac_regmap_write_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1ff3e9d9 snd_hdac_stream_set_lpib +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2e36dec7 snd_hdac_stream_spbcap_enable +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x31b6b216 snd_hdac_device_unregister +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x36207969 snd_hdac_codec_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3b36f03f snd_hdac_acomp_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3b4151cb snd_hdac_stream_reset EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3bd544c2 snd_hdac_get_active_channels -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3da88299 snd_hdac_sync_audio_rate -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x471e1b08 snd_hdac_stream_init -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4996d215 snd_hdac_bus_exit -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4b159039 snd_hdac_stream_set_params -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4bf4af58 snd_hdac_read_parm_uncached +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x41c1526b hdac_get_device_id +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x47b701ab snd_hdac_dsp_cleanup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x482e03af snd_hdac_stream_cleanup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x48948af2 snd_hdac_codec_modalias +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4c36e619 snd_hdac_stream_sync EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4c7ec4b6 snd_hdac_get_ch_alloc_from_ca -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4f212de6 snd_hdac_stream_release_locked -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5157bb0f snd_hdac_device_set_chip_name -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x587e0e09 snd_hdac_stream_sync -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5afbda6a snd_hdac_query_supported_pcm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4d592d5e snd_hdac_get_connections +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4d68b2e7 snd_hdac_bus_free_stream_pages +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4f53b059 snd_hdac_channel_allocation +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4f8d16f7 snd_hdac_query_supported_pcm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4f99fc1f snd_hdac_stream_sync_trigger +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4fb987e9 snd_hdac_bus_stop_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5070196c _snd_hdac_read_parm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x53a9de45 snd_hdac_stream_drsm_enable +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x582fd3fa snd_hdac_stream_release +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5b485fd0 snd_hdac_device_set_chip_name EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5c07cb49 snd_hdac_calc_stream_format -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6018cef6 snd_hdac_regmap_update_raw_once -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x62b41152 snd_hdac_acomp_exit -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x667d4284 snd_hdac_get_sub_nodes +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5ec8b522 snd_hdac_bus_alloc_stream_pages +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x60240b0e snd_hdac_stream_start +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x62d644bf snd_hdac_stream_set_params +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x64542873 snd_hdac_stream_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6570b239 snd_hdac_regmap_update_raw EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x67bfe791 snd_hdac_spk_to_chmap -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x70a0d287 snd_hdac_codec_link_up +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x715c436a snd_hdac_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x71aa0678 snd_hdac_get_stream_stripe_ctl +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x71d9a422 snd_hdac_regmap_update_raw_once +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x75705476 snd_hdac_power_up_pm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x766d5a9e snd_hdac_bus_enter_link_reset EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x77c754a8 snd_hdac_chmap_to_spk_mask -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x78151d67 snd_hdac_power_down -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x79364916 snd_hdac_power_down_pm -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7ad86e38 snd_hdac_regmap_exit -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7ef9bfe0 snd_hdac_device_exit -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x81eb17bd snd_hdac_acomp_init -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x8334fa8d snd_hdac_regmap_read_raw -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x83f95a5c snd_hdac_dsp_cleanup -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x8520a381 snd_hdac_bus_alloc_stream_pages -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x86d403b4 snd_hdac_stop_streams_and_chip -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x87d1e4fd snd_hdac_bus_exec_verb_unlocked -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x8b7c4346 snd_hdac_bus_stop_chip -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x8f5af743 snd_hdac_stream_get_spbmaxfifo -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x91abe7df snd_hdac_bus_update_rirb +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7a654b18 snd_hdac_power_down +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x83b2a9e7 snd_hdac_regmap_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x86f38697 snd_hdac_stream_timecounter_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x8a542a01 snd_hdac_stream_assign +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x8b2570fa snd_hdac_codec_link_up +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x8beb5986 snd_hdac_stream_setup_periods +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x8c1a3b43 snd_hdac_bus_update_rirb +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x8db454b3 snd_hdac_power_up +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x914c35ae snd_hdac_get_stream +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x94450f54 snd_hdac_bus_init_chip EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x9a8e1877 snd_array_free -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xa3217f17 snd_hdac_bus_link_power -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xa82cdd15 snd_hdac_sync_power_state -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xabce9b57 snd_hdac_device_init -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb0305bd6 _snd_hdac_read_parm -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb1950651 snd_hdac_display_power -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb1de5c69 snd_hdac_stream_reset -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb436fa3b snd_hdac_stream_set_dpibr -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb477b051 snd_hdac_get_connections -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb769e650 snd_hdac_acomp_get_eld -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb9a8bf98 snd_hdac_codec_read -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb9e26deb snd_hdac_bus_init_cmd_io -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb9ed0dc3 snd_hdac_channel_allocation -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xba81511a snd_hdac_stream_cleanup -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xbdc6811d snd_hdac_dsp_trigger +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x9cd30adc snd_hdac_power_down_pm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x9fbcdfec snd_hdac_acomp_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xa3a5ce5c snd_hdac_device_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xa590551f snd_hdac_bus_parse_capabilities +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xa62d2e26 snd_hdac_display_power +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xa6ffbc2e snd_hdac_stream_wait_drsm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xa998b47c snd_hdac_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xaa532b8b snd_hdac_codec_write +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xacae2913 snd_hdac_stop_streams_and_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xadf58290 snd_hdac_get_sub_nodes +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xafd8845f snd_hdac_bus_stop_cmd_io +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb1bbf302 snd_hdac_sync_audio_rate +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb3b30a2b snd_hdac_override_parm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb4332927 snd_hdac_bus_link_power +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb520dc7b snd_hdac_bus_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb68f8add snd_hdac_stop_streams +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb7594205 snd_hdac_is_supported_format +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xba17367b snd_hdac_device_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xbb2acbc9 snd_hdac_bus_reset_link +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xbb9473d9 snd_hdac_bus_get_response EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xbe7dd7dc snd_array_new -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc1625381 hdac_get_device_id -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc54cb44b snd_hdac_stream_setup -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc7a09acb snd_hdac_stream_drsm_enable -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc84d5452 snd_hdac_stream_start -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xcc610615 snd_hdac_bus_free_stream_pages -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xcce1a793 snd_hda_bus_type -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xcf5f8298 snd_hdac_regmap_init -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xd1cb56c3 snd_hdac_codec_modalias -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xd3eccc21 snd_hdac_setup_channel_mapping -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xd691f6a7 snd_hdac_refresh_widgets -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xd7d57f3a snd_hdac_regmap_write_raw -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xd974a24a snd_hdac_stream_sync_trigger -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xdd388a77 snd_hdac_override_parm -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xdf683c3b snd_hdac_add_chmap_ctls -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe088b314 snd_hdac_check_power_state +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc122b4be snd_hdac_stream_set_spib +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc6807e3d snd_hdac_regmap_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc6a799b1 snd_hdac_bus_send_cmd +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc710cffd snd_hdac_device_register +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc95e3fd0 snd_hdac_stream_release_locked +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xcab058c3 snd_hdac_read_parm_uncached +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xccd8c91a snd_hda_bus_type +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xd3ecb9e4 snd_hdac_stream_stop +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xd93f0083 snd_hdac_stream_set_dpibr +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xda9778bd snd_hdac_acomp_get_eld +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xdbcf6fb7 snd_hdac_bus_exit_link_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xdf83fa3b snd_hdac_regmap_read_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe1a03f90 snd_hdac_dsp_prepare +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe2644bef snd_hdac_setup_channel_mapping +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe32f67f0 snd_hdac_acomp_register_notifier EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe4e07754 snd_hdac_print_channel_allocation -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe5433d37 snd_hdac_dsp_prepare -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe84cd1e1 snd_hdac_get_stream_stripe_ctl -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe8557b61 snd_hdac_stream_set_spib -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xec63a0e4 snd_hdac_stream_stop -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf065546f snd_hdac_power_up -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf462ac33 snd_hdac_bus_send_cmd -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf4673651 snd_hdac_bus_exit_link_reset -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf902591e snd_hdac_read -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xfbe464db snd_hdac_bus_get_response -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xfe77ea39 snd_hdac_register_chmap_ops -EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x2b6bdda0 intel_nhlt_get_dmic_geo +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xea6c26d6 snd_hdac_bus_exec_verb_unlocked +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xef834bd9 snd_hdac_regmap_sync +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xefab6ddc snd_hdac_dsp_trigger +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf2f222cd snd_hdac_stream_setup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf342f9f6 snd_hdac_check_power_state +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf5702aa8 snd_hdac_sync_power_state +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf5fe69e0 snd_hdac_codec_link_down +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf9d38541 snd_hdac_stream_get_spbmaxfifo +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xfd07ffe4 snd_hdac_regmap_add_vendor_verb +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xfd8167c3 snd_hdac_refresh_widgets +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x1886a05e snd_intel_dsp_driver_probe EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x4e859456 intel_nhlt_free -EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x78859a55 snd_intel_acpi_dsp_driver_probe -EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0xbfde36b0 intel_nhlt_init -EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0xe1e9542e snd_intel_dsp_driver_probe -EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x392579d9 snd_ak4113_build -EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x4898a28f snd_ak4113_external_rate -EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x8c90a450 snd_ak4113_create -EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x97724ea4 snd_ak4113_check_rate_and_errors -EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xbaa1bdb9 snd_ak4113_reg_write -EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xe4973e72 snd_ak4113_reinit -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00b9494c is_jack_detectable +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x5d079c42 intel_nhlt_get_dmic_geo +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0xa7214549 intel_nhlt_init +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0xf9205373 snd_intel_acpi_dsp_driver_probe +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x00897b02 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x16f4117b snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x26a8c943 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x2d56f568 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x8988b0d7 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xdb30247b snd_ak4113_create +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x024e2a44 snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x059e4419 snd_hda_codec_update_widgets EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x069fc0d6 __snd_hda_apply_fixup -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x07fe6eaa snd_hda_get_conn_index -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x08a50703 snd_hda_lock_devices -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0935fbc9 snd_hda_get_dev_select -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e187f1c azx_get_position -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x122a2ed7 azx_init_streams -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12bbf7ef snd_hda_codec_configure -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14bb8ddf snd_hda_enum_helper_info -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x18607f9c snd_hda_unlock_devices -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d2981e3 snd_hda_codec_load_dsp_trigger -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ef3c709 snd_hda_codec_set_pincfg -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x203298ce snd_hda_multi_out_analog_cleanup -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x23b510cb snd_hda_codec_load_dsp_prepare -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2449d4be snd_hda_mixer_amp_switch_get -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x26871582 snd_hda_load_patch -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x268bcf68 snd_hda_create_spdif_share_sw -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27377fed snd_hda_get_hint -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2759f88c snd_hda_correct_pin_ctl -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x289be91a snd_hda_mixer_amp_volume_get -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x29791147 snd_hda_codec_device_init -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2f19041e snd_hda_add_vmaster_hook -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2f50c476 __hda_codec_driver_register -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2fd6ce88 snd_hda_shutup_pins -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x30c0fa51 snd_hda_jack_tbl_get_mst -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x350b49c1 snd_hda_get_connections -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x369cb07d snd_hda_jack_add_kctl_mst -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x36d86bc5 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x08f1cb8a snd_hda_set_dev_select +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x097d3f66 snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0af150ac snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e5be650 snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x104f5f3a snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1096be36 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12946085 snd_hda_codec_pcm_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14e16326 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x179e9278 snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x18a3fec8 snd_hda_pick_pin_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c284e49 snd_hda_codec_cleanup_for_unbind +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1e644fd4 snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x232d723b snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x23fd5cc0 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2425d073 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2760df8a __hda_codec_driver_register +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2b4fcdf9 snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2b5145dd snd_hda_codec_parse_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x345bfbf8 snd_hda_codec_load_dsp_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x35b22ab4 snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x35df863b snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38944583 azx_codec_configure EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38ce402b azx_interrupt -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a351318 snd_hda_codec_pcm_new -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c5ae942 snd_hda_spdif_ctls_unassign -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3da23618 snd_hda_codec_build_controls -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ec3c343 snd_hda_apply_fixup -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x40c1a939 snd_hda_codec_eapd_power_filter -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x41451df0 snd_hda_jack_tbl_get_from_tag -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4195871b snd_hda_multi_out_dig_cleanup -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x423de550 snd_hda_mixer_amp_switch_put_beep -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x42a6fa7e snd_hda_add_nid -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x450947dd snd_hda_mixer_amp_volume_info -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49ab1b47 snd_hda_multi_out_dig_prepare -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49db7a79 snd_hda_mixer_amp_switch_info -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f7a270 snd_hda_find_mixer_ctl -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4a7d565e snd_hda_jack_add_kctls -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4bdf0cf7 snd_hda_override_conn_list -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ccc3853 snd_hda_jack_bind_keymap -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d606ca1 snd_hda_codec_get_pincfg -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x53b825ec snd_hda_apply_pincfgs -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x53c3b28f snd_hda_spdif_ctls_assign -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5592a700 snd_hda_codec_pcm_put -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5763b5d3 snd_hda_detach_beep_device -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x576b246c snd_hda_mixer_amp_tlv -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x576b9e52 snd_hda_mixer_amp_switch_get_beep -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x576d4432 snd_hda_codec_device_new -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a7f7ec5 snd_hda_jack_report_sync -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x623597ee snd_hda_set_dev_select -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6431bfd7 snd_hda_codec_prepare -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x64ac48eb azx_bus_init -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x68177f75 snd_hda_add_imux_item -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x68831d1d snd_hda_get_bool_hint -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x696e63d5 snd_hda_create_spdif_in_ctls -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b00e11c snd_hda_codec_set_pin_target -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6bfb97aa snd_hda_codec_amp_init_stereo -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6d7660b4 snd_hda_codec_amp_init -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6ec8efb2 azx_get_pos_posbuf -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x719c5568 snd_hda_pick_pin_fixup -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7213b741 azx_codec_configure -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74458c79 snd_hda_jack_unsol_event -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x79d590dd snd_hda_codec_setup_stream -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7acb635e snd_hda_codec_cleanup -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d7365a8 __snd_hda_codec_cleanup_stream -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7dc55403 snd_hda_spdif_out_of_nid -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x816e0750 snd_hda_codec_set_power_to_all -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x83850df3 snd_hda_codec_get_pin_target -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8416677e snd_hda_multi_out_analog_prepare -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86312cbf snd_hda_check_amp_caps -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86560d00 snd_hda_ctl_add -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8816cf61 snd_hda_multi_out_dig_close -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c116cec snd_hda_add_verbs -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8ef7e218 _snd_hda_set_pin_ctl -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x999c0130 azx_free_streams -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9cab8f87 snd_hda_get_conn_list -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d3f5de1 azx_probe_codecs -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9f30ba88 snd_hda_codec_unregister -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa4a80f2c snd_hda_create_dig_out_ctls -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa541c6b7 azx_stop_chip -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa58185bd snd_hda_apply_verbs -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6fed906 snd_hda_sequence_write -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa94eeb83 snd_hda_override_amp_caps -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xab676f1c azx_get_pos_lpib -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad087654 snd_hda_jack_set_gating_jack -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad765cc8 snd_hda_codec_amp_stereo -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xae08b7f2 snd_hda_multi_out_analog_open -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xae316107 snd_hda_codec_parse_pcms -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xae3aee8d snd_hda_codec_set_name -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf2a4393 snd_hda_get_pin_label -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf4b97a1 snd_hda_parse_pin_defcfg -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xafde5ea6 snd_hda_jack_set_dirty_all -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb3dd0380 snd_hda_jack_set_button_state -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb42530d2 snd_hda_codec_set_power_save -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb774028d snd_hda_jack_pin_sense -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb2c94b4 snd_hda_pick_fixup -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd30b49f snd_hda_jack_detect_enable_callback_mst -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf104697 snd_hda_jack_detect_state_mst -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbfecb225 snd_hda_codec_register -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc0833699 snd_hda_get_int_hint -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc2f766f0 snd_hda_multi_out_dig_open -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc9ad3607 query_amp_caps -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca36c1ba snd_hda_get_default_vref -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd5ced91 snd_hda_enable_beep_device -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd0273129 hda_codec_driver_unregister -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd061927f snd_hda_set_vmaster_tlv -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd06e2380 snd_hda_get_num_devices -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd09e2773 snd_hda_attach_beep_device -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd0b630d0 snd_hda_input_mux_put -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd2af09f1 snd_hda_codec_cleanup_for_unbind -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdfa55be0 snd_hda_codec_load_dsp_cleanup -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdfaea5da snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3b3b70f5 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3def9edc snd_hda_jack_add_kctl_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e4cc3a8 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3f64d1f7 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x447f96dc snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4529c6d9 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x483188b8 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4b32c069 azx_init_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c0e158d snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4e63f792 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x50d3e9af snd_hda_get_num_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x52250cdf snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x524bcc98 snd_hda_codec_set_name +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x524ff723 snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x52a646fe hda_codec_driver_unregister +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x54f09c99 azx_get_position +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x557906cf snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x572858a8 azx_probe_codecs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x594dfb00 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a68205c snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5d5caf75 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x602f9e4c snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x61a647b8 snd_hda_jack_bind_keymap +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x61c10e56 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x61f3d961 snd_hda_jack_set_button_state +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x62da0455 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x650209bf snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x650dd469 azx_stop_all_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6739687b snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6a92a2b8 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b486d7e snd_hda_codec_unregister +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6dd9319b snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e13ea93 snd_hda_jack_detect_state_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e8b6e8c snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f3cd52b snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7065c8e3 azx_get_pos_lpib +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x708ac4f0 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x772d0bf1 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7828120f snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7952052c snd_hda_codec_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7b90f68d snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8423f583 snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x848916cf snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x851e480c snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b14e3aa snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8bef6b60 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e436be1 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x91b01329 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95efee17 snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9aa4b389 __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b0a888b snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d9dc722 snd_hda_check_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ee74903 snd_hda_jack_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa1787bdb snd_hda_codec_load_dsp_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa3dc72f0 is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa41d863c snd_hda_codec_pcm_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5017539 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa9181e19 snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa98dc553 snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xac9eaf63 azx_free_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad2aa545 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xadd1fd81 snd_hda_codec_device_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb265b1a7 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb39e4b25 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb5ab2d6f __snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb6b9da9d snd_hda_jack_detect_enable_callback_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb78c87b5 snd_hda_codec_set_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbc401ff0 azx_get_pos_posbuf +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd177e85 snd_hda_codec_load_dsp_trigger +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd9287c9 azx_stop_chip +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc349b102 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc4127e19 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc77350c1 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc91fea02 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcf11f39a snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcf2e8d44 snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcff10d10 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd0c4dbd8 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd3ca935f snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6edff38 snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd7458e68 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd8c19267 snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9648a04 snd_hda_set_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb1d4bc8 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb7dfd5e snd_hda_jack_tbl_get_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdf92037b snd_hda_jack_poll_all EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe118de5d snd_pcm_2_1_chmaps -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe413d4c3 snd_hda_set_power_save -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe4c552b1 snd_hda_sync_vmaster_hook -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe52ae39e azx_init_chip -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe64ff33d azx_stop_all_streams -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xea5f8e24 snd_hda_codec_update_widgets -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xea891999 snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe3109992 snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe32cfccd snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe4a18ce1 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xea1e52d7 azx_init_chip +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xec29e4b0 azx_bus_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xec2eabc0 snd_hda_codec_register +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xec90eacd snd_hda_get_hint EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee275d88 snd_hda_jack_poll_all -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf29ad4f3 snd_hda_codec_amp_update -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf5d901cf snd_hda_mixer_amp_volume_put -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf6962f11 __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee01d4fe snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee64130b snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf2759bb9 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf451a689 snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf5a4fd9d snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf71d1a99 snd_hda_codec_device_init EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf8dc35ac snd_hda_input_mux_info -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf90b3c6b snd_hda_mixer_amp_switch_put -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfab6254d hda_get_autocfg_input_label -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd6da5df snd_hda_check_amp_list_power -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x001d5879 snd_hda_gen_add_micmute_led_cdev -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x08c01eae snd_hda_get_path_idx -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x0b7ed4e6 snd_hda_gen_update_outputs -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x1c33b323 snd_hda_add_new_path -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x2103b497 snd_hda_gen_init -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x29334e22 snd_hda_gen_free -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x2ea9594e snd_hda_gen_stream_pm -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x3d8d93f7 snd_hda_gen_spec_init -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x50937a61 snd_hda_gen_add_kctl -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x5d035b85 snd_hda_gen_add_mute_led_cdev -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x71355621 snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf8ea4130 _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf99951cf snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfaa1e47d snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfaba6a28 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfafbe88b snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfe119352 snd_hda_get_dev_select +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x1597b16b snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x1f05f4c7 snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x220fffc1 snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x241c4861 snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x2a3cb7e1 snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x341ce1fc snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x529745f1 snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x6a0aa2a8 snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x715d6172 snd_hda_gen_add_micmute_led_cdev EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x76dc6871 hda_main_out_badness EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x871a6e44 hda_extra_out_badness -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x8f1df512 snd_hda_gen_build_controls -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x903238a4 snd_hda_gen_hp_automute -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x9a503712 snd_hda_gen_fix_pin_power -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xe213b88f snd_hda_gen_build_pcms -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xe893c1ef snd_hda_gen_parse_auto_config -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xf09083cf snd_hda_gen_path_power_filter -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xf2748f4a snd_hda_activate_path -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xf3435647 snd_hda_gen_line_automute -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xf728e126 snd_hda_gen_mic_autoswitch -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xff5c5da0 snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x8866355d snd_hda_gen_path_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x88dfe321 snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x8e1e1ec6 snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x8f0eeea0 snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xab58020a snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xb1ab3da9 snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xba1f00dd snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xbc32ee24 snd_hda_gen_add_mute_led_cdev +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xe7afedff snd_hda_gen_fix_pin_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xeab9dbe0 snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xec51cc55 snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xf1d14b83 snd_hda_gen_stream_pm EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau-utils 0xae620be9 adau_calc_pll_cfg -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1372 0x7854f9b9 adau1372_regmap_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0x7c0cff1c adau1761_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0xa1474d48 adau1761_regmap_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x04b030c1 adau17x1_volatile_register -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x14193f73 adau17x1_remove -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x24b86f93 adau17x1_resume -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x2da4f705 adau17x1_add_widgets -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x47eb5c9c adau17x1_readable_register -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x67a49220 adau17x1_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x754f0fb2 adau17x1_add_routes -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x82200d6d adau17x1_set_micbias_voltage -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x89a468ad adau17x1_precious_register -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0xe258026a adau17x1_dai_ops -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau7118 0x9484a85e adau7118_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0x32444bd5 aw88395_dev_stop -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0x41fd4744 aw88395_dev_fw_update -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0x4a574fcc aw88395_dev_set_profile_index -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0x517b3bee aw88395_dev_get_profile_index -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0x5fdc9db7 aw88395_dev_mute -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0x64ffc8bd aw88395_dev_start -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0x6ddb080f aw88395_dev_set_volume -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0x6f03908a aw88395_dev_get_prof_data -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0xcf43b38c aw88395_dev_get_prof_name -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0xed7b7933 aw88395_dev_init -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0xf2bc7c18 aw88395_init -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0xfce23081 aw88395_dev_get_profile_count -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395-lib 0xbac2133e aw88395_dev_load_acf_check -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395-lib 0xf8f09b21 aw88395_dev_cfg_load -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0x48ed2445 cs35l41_pm_ops -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0xbf23df24 cs35l41_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0xe9e30093 cs35l41_remove -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x0e1abe80 cs35l41_set_cspl_mbox_cmd -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x1a3a0928 cs35l41_regmap_spi +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1372 0x1e299e7e adau1372_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0x31826aa9 adau1761_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0x79aab6ce adau1761_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x120f29d6 adau17x1_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x22ee7fcd adau17x1_resume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x31c27ac6 adau17x1_add_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x39113087 adau17x1_precious_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x3af55a6b adau17x1_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x78168f95 adau17x1_set_micbias_voltage +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x81eed793 adau17x1_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0xc35f3076 adau17x1_readable_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0xd641b31a adau17x1_volatile_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0xf5949e79 adau17x1_add_widgets +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau7118 0xd3415083 adau7118_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0x0492910e aw88395_dev_get_profile_count +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0x4443cb5f aw88395_dev_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0x4f4a6c92 aw88395_dev_get_prof_name +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0x5d93cac5 aw88395_dev_set_volume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0x86dd501f aw88395_dev_get_prof_data +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0x8d95f46a aw88395_dev_stop +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0xa427186e aw88395_dev_mute +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0xa8c5a995 aw88395_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0xa9b188b1 aw88395_dev_fw_update +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0xcb9ee944 aw88395_dev_set_profile_index +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0xd553868d aw88395_dev_get_profile_index +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395 0xd5903962 aw88395_dev_start +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395-lib 0x5679ac6d aw88395_dev_load_acf_check +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-aw88395-lib 0x61b82161 aw88395_dev_cfg_load +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0x379f5ccf cs35l41_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0x6379bc03 cs35l41_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0x67c3cb43 cs35l41_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x083dc5b6 cs35l41_set_cspl_mbox_cmd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x133906ff cs35l41_register_errata_patch +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x2e848382 cs35l41_test_key_lock EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x389e86c7 cs35l41_safe_reset -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x4f0bc8a1 cs35l41_exit_hibernate -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x8eb8c511 cs35l41_write_fs_errata -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x90bddff2 cs35l41_global_enable -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xa1c62103 cs35l41_set_channels -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xa59df0c2 cs35l41_otp_unpack -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xac6f0ff7 cs35l41_regmap_i2c -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xc72b1dbe cs35l41_register_errata_patch -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xd3035522 cs35l41_test_key_lock -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xd8afe76e cs35l41_test_key_unlock -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xd9f9f5c7 cs35l41_init_boost -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xe3f1e1a8 cs35l41_enter_hibernate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x47d2568b cs35l41_test_key_unlock +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x71195570 cs35l41_regmap_i2c +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x73ba79ea cs35l41_set_channels +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x989aea53 cs35l41_exit_hibernate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xac450dc1 cs35l41_init_boost +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xb36fd621 cs35l41_otp_unpack +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xc74c53af cs35l41_regmap_spi +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xcc780ed3 cs35l41_write_fs_errata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xd62a4a63 cs35l41_global_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xd9523d72 cs35l41_configure_cs_dsp EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xe92ff6ad cs35l41_gpio_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xf754de8a cs35l41_configure_cs_dsp -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l56 0x211b1278 cs35l56_system_resume -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l56 0x21b1f149 cs35l56_system_suspend -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l56 0x275a74bb cs35l56_system_resume_early -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l56 0x318bc4fc cs35l56_system_suspend_no_irq -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l56 0x95d88401 cs35l56_system_resume_no_irq -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l56 0xdb5176a8 cs35l56_system_suspend_late +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xedf482b4 cs35l41_enter_hibernate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l56 0x0e7f1615 cs35l56_system_resume_no_irq +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l56 0x253607f8 cs35l56_system_suspend_late +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l56 0x5a0d663b cs35l56_system_resume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l56 0x8efeba48 cs35l56_system_suspend_no_irq +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l56 0xc414fc01 cs35l56_system_suspend +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l56 0xc588ff4f cs35l56_system_resume_early EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0x7d05786f cs4271_dt_ids -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0x8661afe4 cs4271_regmap_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0x8b31d77f cs4271_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x0a87ead2 cs42l51_remove -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x58a56f31 cs42l51_suspend -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x8f4c0f4e cs42l51_regmap -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0xd383921e cs42l51_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0xe93dce71 cs42l51_resume -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x0df34599 cs42xx8_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x7a5b139a cs42xx8_pm +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0x83d419ee cs4271_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0xae86b1fc cs4271_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x1dd5e259 cs42l51_resume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x2b3ae335 cs42l51_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x41ae4edf cs42l51_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x67ef24f1 cs42l51_suspend +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x8edc8bc0 cs42l51_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x26b180e3 cs42xx8_pm +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x6ead7544 cs42xx8_probe EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292 cs42888_data -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0xbfa817b3 cs42xx8_regmap_config EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9 cs42448_data -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0x9bfee348 es8328_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0xb78c6805 es8328_regmap_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-hda-codec 0x16377007 hda_codec_probe_complete -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-hda-codec 0x5a5396a2 snd_soc_hda_codec_dai_ops -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-hda-codec 0x8350bd12 soc_hda_ext_bus_ops -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-lpass-macro-common 0x43b06a0b lpass_macro_pds_init -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-lpass-macro-common 0x9c3036c7 lpass_macro_pds_exit -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98090 0xb6484574 max98090_mic_detect -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x1342f2e7 soc_codec_dev_max98373_sdw -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x188bd3da max98373_reset -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0xdfda95c2 max98373_slot_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0xe768f647 soc_codec_dev_max98373 -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x414b3c51 mt6358_mtkaif_calibration_disable -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x89856e1b mt6358_set_mtkaif_protocol -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x8e695fb6 mt6358_mtkaif_calibration_enable -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0xbf7c4869 mt6358_set_mtkaif_calibration_phase -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8821 0x73b6f82e nau8821_enable_jack_detect -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8824 0x8bceae4b nau8824_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0xf695be78 cs42xx8_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0xc3061dab es8328_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0xe362eee3 es8328_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-hda-codec 0x1c197597 soc_hda_ext_bus_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-hda-codec 0x8deb68c9 hda_codec_probe_complete +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-hda-codec 0xdca50b44 snd_soc_hda_codec_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-lpass-macro-common 0x27d9dbb9 lpass_macro_pds_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-lpass-macro-common 0xb079de3e lpass_macro_pds_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98090 0xc84630fd max98090_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x1312eb20 max98373_slot_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x3fed0233 max98373_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x57deef7f soc_codec_dev_max98373_sdw +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x9128bcc0 soc_codec_dev_max98373 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x3ae245a8 mt6358_set_mtkaif_calibration_phase +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x595b2ce3 mt6358_set_mtkaif_protocol +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0xacb548c8 mt6358_mtkaif_calibration_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0xc362e776 mt6358_mtkaif_calibration_disable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8821 0xb83427cc nau8821_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8824 0x311e8e68 nau8824_enable_jack_detect EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8824 0xbf55f96a nau8824_components -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x786d6eb3 pcm1789_regmap_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0xb39f9b1d pcm1789_common_exit -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0xe117939c pcm1789_common_init -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0x7fddc29b pcm179x_regmap_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0xe3a0010b pcm179x_common_init -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0x14018984 pcm186x_regmap -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0xf6a80fbc pcm186x_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x6197d0ac pcm3168a_remove -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x98356b2c pcm3168a_regmap -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0xab98026b pcm3168a_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0xc8784349 pcm3168a_pm_ops -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x0d4d547c pcm512x_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x442983e6 pcm512x_pm_ops -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x4f625328 pcm512x_remove -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x65a12c04 pcm512x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x03316369 pcm1789_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x267eba31 pcm1789_common_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0xeffaf322 pcm1789_common_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0x0481cf41 pcm179x_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0x8039d917 pcm179x_common_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0x3409b03e pcm186x_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0xdae3c815 pcm186x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x23c12dd9 pcm3168a_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x54d2a23d pcm3168a_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0xd2ddda63 pcm3168a_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0xd5afe294 pcm3168a_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x219da993 pcm512x_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x6b076ce0 pcm512x_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0xab436d95 pcm512x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0xd74afc69 pcm512x_probe EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x5dc92cdf rl6231_pll_calc EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x70617a04 rl6231_get_clk_info EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x8d7fa148 rl6231_get_pre_div EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0xdba4502f rl6231_calc_dmic_clk -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x212ed5f0 rt5640_set_ovcd_params -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x2826787e rt5640_disable_micbias1_for_ovcd -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x36015c7e rt5640_sel_asrc_clk_src -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x618f038c rt5640_dmic_enable -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x6c8e2c44 rt5640_enable_micbias1_for_ovcd -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x89510a3a rt5640_detect_headset -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0x0648809d rt5645_sel_asrc_clk_src -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0x8e94aeb3 rt5645_set_jack_detect -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5659 0x4fdca25a rt5659_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x4c7491b1 rt5640_disable_micbias1_for_ovcd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x6e79c461 rt5640_detect_headset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x70b1af70 rt5640_set_ovcd_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x96a6c682 rt5640_enable_micbias1_for_ovcd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0xb879e505 rt5640_dmic_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0xcaa8f2f0 rt5640_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0x2507ede1 rt5645_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0x500c5264 rt5645_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5659 0xb78b50cb rt5659_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x0b2f31fd rt5682_readable_register EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x0d18594a rt5682_supply_names -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x129ae313 rt5682_volatile_register -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x3dce8054 rt5682_aif1_dai_ops -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x51c18f4e rt5682_readable_register -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x53a15ac6 rt5682_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x1e31b291 rt5682_volatile_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x34dd06d6 rt5682_parse_dt EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x59d3d967 rt5682_jack_detect_handler -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x5aab6273 rt5682_calibrate -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x63f20eea rt5682_parse_dt -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x90ef7254 rt5682_register_dai_clks -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xaef47542 rt5682_sel_asrc_clk_src -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xb3ba1206 rt5682_apply_patch_list +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x621b2568 rt5682_apply_patch_list +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7773515b rt5682_aif1_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x82b9fcd8 rt5682_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x88221066 rt5682_register_dai_clks +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x884143a9 rt5682_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x9c44ea58 rt5682_aif2_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xa8ab9a51 rt5682_soc_component_dev EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xb897de56 rt5682_reg -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xcca6ed80 rt5682_soc_component_dev -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xd6f93b57 rt5682_aif2_dai_ops -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x15908c70 devm_sigmadsp_init -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x1de0df09 sigmadsp_attach -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x44e8f9db sigmadsp_reset -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0xb02388d7 sigmadsp_setup -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0xbb93cce5 sigmadsp_restrict_params -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-i2c 0x9fa0f920 devm_sigmadsp_init_i2c -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-regmap 0xa6efd7ae devm_sigmadsp_init_regmap -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-src4xxx 0x23fb42cb src4xxx_regmap_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-src4xxx 0xa2a1a25b src4xxx_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x04d1eb96 ssm2602_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xfa3e8574 ssm2602_regmap_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0x0325a3b2 tasdevice_kzalloc -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0x03cc3f90 tasdevice_dev_bulk_write -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0x09ae268c tasdevice_amp_getvol -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0x19c4d041 tas2781_reset -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0x22024946 tasdevice_dev_write -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0x29c1df22 tasdevice_dev_update_bits -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0x458b0bc0 tasdevice_dev_read -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0x4fee0ab4 tasdevice_remove -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0x54e33324 tasdevice_amp_putvol -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0x7bebea76 tascodec_init -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0x9b8497df tasdevice_digital_putvol -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0xb140efb8 tasdevice_dev_bulk_read -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0xc6c98277 tasdevice_digital_getvol +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xbf434086 rt5682_calibrate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x11e45308 devm_sigmadsp_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x6b3b701c sigmadsp_restrict_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x799b63e1 sigmadsp_attach +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0xea37e219 sigmadsp_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0xeaf00c9b sigmadsp_setup +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-i2c 0xdc9c9c83 devm_sigmadsp_init_i2c +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-regmap 0x6150d020 devm_sigmadsp_init_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-src4xxx 0x58a74f11 src4xxx_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-src4xxx 0xed799cd2 src4xxx_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x816288ae ssm2602_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xa049e04e ssm2602_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0x0e8bc787 tasdevice_amp_getvol +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0x20e16d8c tascodec_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0x2928e76b tasdevice_dev_bulk_read +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0x396a6a4c tasdevice_amp_putvol +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0x4837c667 tasdevice_dev_read +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0x5a8f6574 tasdevice_digital_putvol +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0x6d6ec8bf tasdevice_digital_getvol +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0xa70e0f7a tasdevice_dev_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0xaa8920a8 tas2781_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0xca9ec3bd tasdevice_dev_update_bits +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0xd20b6712 tasdevice_remove EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0xd60d28da tasdevice_dsp_remove -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0xdf30f4d6 tasdevice_init -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic32x4 0x93a83e42 aic32x4_register_clocks -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xdca69031 aic3x_regmap -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ts3a227e 0x619ef931 ts3a227e_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0xe2b0b302 tasdevice_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0xe495ca16 tasdevice_kzalloc +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tas2781-comlib 0xec99520b tasdevice_dev_bulk_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic32x4 0xcef69fa3 aic32x4_register_clocks +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x511f91b5 aic3x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ts3a227e 0xcc4280cc ts3a227e_enable_jack_detect EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd-mbhc 0x936c1623 wcd_mbhc_event_notify -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x2e000a1d wcd938x_swr_get_current_bank -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x378288cb wcd938x_sdw_hw_params -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x50612449 wcd938x_sdw_set_sdw_stream -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x859036f1 wcd938x_sdw_device_get -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0xb9daedaa wcd938x_sdw_free -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x08096769 wm_adsp2_init -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x0c2e0f6f wm_adsp1_init -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x1c5992c0 wm_adsp2_remove -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x3025c2ad wm_adsp2_component_remove -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x3288368d wm_adsp2_component_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x3cf4e118 wm_adsp_compr_copy -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x406a00da wm_adsp_early_event -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x4f640b57 wm_adsp_compr_free +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x0200faa7 wcd938x_sdw_set_sdw_stream +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x22935dad wcd938x_swr_get_current_bank +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x8a4021df wcd938x_sdw_free +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x9e4d9c4f wcd938x_sdw_device_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0xcca9b1aa wcd938x_sdw_hw_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x1089ec49 wm_adsp_compr_free +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x193bd7c0 wm_adsp1_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x24907855 wm_adsp2_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x2a7090e4 wm_adsp_early_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x340a3eba wm_adsp2_preloader_put +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x36ee629d wm_adsp1_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x4fc3b6e1 wm_adsp_write_ctl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x51078193 wm_adsp_compr_trigger EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x52c16479 wm_halo_wdt_expire -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x57e69a75 wm_adsp_write_ctl -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x5dde5ea8 wm_adsp1_event -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x632954d4 wm_adsp_compr_trigger -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x758ee369 wm_adsp_read_ctl -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7a3a28bf wm_adsp_compr_handle_irq -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7e3e928e wm_adsp_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x55da1a77 wm_adsp_compr_get_caps +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x6c1fcded wm_halo_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x6ec9d261 wm_adsp_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x73ab59b0 wm_adsp_fw_put EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x894458f3 wm_adsp_fw_enum -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x8d24525c wm_adsp_compr_pointer -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x9616b737 wm_adsp_fw_put -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x98220c3a wm_adsp2_set_dspclk -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xa291fd7b wm_adsp_compr_get_caps -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xb76d3150 wm_adsp2_preloader_put -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xcc89695c wm_adsp_power_up -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xdbf40150 wm_adsp_fw_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x8d56df0a wm_adsp_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x92951d99 wm_adsp_power_up +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x94449758 wm_adsp_read_ctl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x9b47dc01 wm_adsp_compr_pointer +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xa366a0ab wm_adsp2_preloader_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xa51207ce wm_adsp2_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xb68fc23a wm_adsp_compr_handle_irq +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xca9db6b1 wm_adsp2_component_probe EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xdd3c79ef wm_adsp2_bus_error -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xddf323f6 wm_adsp_compr_open -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xe9329650 wm_halo_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xe4c7c7a1 wm_adsp_fw_get EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xea38ee07 wm_halo_bus_error -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xf5573674 wm_adsp_compr_set_params -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xfa8f8737 wm_adsp2_preloader_get -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x27a755bf wm8731_regmap -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x76175153 wm8731_init -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x6f5babb7 wm8804_regmap_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x9b5212e2 wm8804_pm -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0xf456b3df wm8804_remove -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0xff11ae5e wm8804_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x161ecdc8 wm8903_mic_detect -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x4455a7ea wm8962_mic_detect -EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-fsl-asrc 0x19ac7db7 fsl_asrc_component +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xec313225 wm_adsp2_set_dspclk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xf659c7e0 wm_adsp2_component_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xfdd4f705 wm_adsp_compr_copy +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xfe8afbb1 wm_adsp_compr_open +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x708a6e40 wm8731_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xa4025bc8 wm8731_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x3bb52d51 wm8804_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x89a7a802 wm8804_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0xc2ab6f59 wm8804_pm +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0xe3e48113 wm8804_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x59f4d760 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x7b5819dc wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-fsl-asrc 0xcbf2918e fsl_asrc_component EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-imx-audmux 0x30693bb7 imx_audmux_v1_configure_port EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-imx-audmux 0x58631dab imx_audmux_v2_configure_port -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card 0x338c7f46 audio_graph_parse_of -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x1ce321ae audio_graph2_parse_of -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x8d18fda1 audio_graph2_link_dpcm -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x8dfa70fa audio_graph2_link_c2c -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0xf15e53a1 audio_graph2_link_normal +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card 0xcd59a543 audio_graph_parse_of +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x36146545 audio_graph2_parse_of +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0xb62f94b3 audio_graph2_link_c2c +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0xde6793f9 audio_graph2_link_normal +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0xf6476c13 audio_graph2_link_dpcm EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00e1d1ff asoc_simple_is_convert_required -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x067afd78 asoc_simple_clean_reference -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x13b69ec7 asoc_simple_parse_daifmt -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x1421a145 asoc_simple_parse_widgets -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x19f8abbf asoc_simple_set_dailink_name -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x1f49cc10 asoc_simple_parse_convert -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x295a56d0 asoc_simple_init_priv -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x2b275d01 asoc_simple_init_jack -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x2c0ad8bd asoc_simple_remove -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x634e3019 asoc_simple_shutdown -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x6f8702fb asoc_simple_parse_tdm_width_map -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x76045128 asoc_simple_init_aux_jacks -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7688475a asoc_graph_card_probe -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x77598116 asoc_simple_parse_card_name -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x82f8e5d1 asoc_simple_be_hw_params_fixup -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x991a42d8 asoc_simple_canonicalize_platform -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x9eaddf0b asoc_simple_dai_init -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xa2eaebd5 asoc_graph_parse_dai -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xa4bacd1e asoc_simple_hw_params -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xb2736e4f asoc_simple_parse_clk -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xb8e1c23c asoc_simple_parse_routing -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xbb0e7da8 asoc_graph_is_ports0 -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xd1940fb9 asoc_simple_parse_pin_switches -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xd7e5e27c asoc_simple_canonicalize_cpu -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xef74dfdd asoc_simple_startup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x071e8e2c asoc_simple_canonicalize_cpu +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x1330339e asoc_simple_init_jack +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x183d12e1 asoc_graph_card_probe +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x21d5d02a asoc_simple_parse_convert +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x2349ab9a asoc_simple_be_hw_params_fixup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x483b81ce asoc_simple_init_priv +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x56662bb9 asoc_simple_shutdown +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x57ef9edf asoc_simple_parse_widgets +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x5fa35389 asoc_simple_remove +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x68be9dd6 asoc_simple_clean_reference +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x6c2f5866 asoc_graph_parse_dai +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fc6b0ad asoc_graph_is_ports0 +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x8849af66 asoc_simple_hw_params +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x909d15e1 asoc_simple_startup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x96fbb232 asoc_simple_parse_tdm_width_map +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x9c9bb9c3 asoc_simple_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xc238d821 asoc_simple_dai_init +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xc8268c43 asoc_simple_init_aux_jacks +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xd1ecee65 asoc_simple_parse_pin_switches +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xd2ef1e95 asoc_simple_set_dailink_name +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xda514f9a asoc_simple_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xec658b98 asoc_simple_canonicalize_platform +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xee380165 asoc_simple_parse_clk +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xffac48a4 asoc_simple_parse_routing EXPORT_SYMBOL_GPL sound/soc/snd-soc-acpi 0x2ad85b63 snd_soc_acpi_find_machine EXPORT_SYMBOL_GPL sound/soc/snd-soc-acpi 0x48c4d20c snd_soc_acpi_codec_list EXPORT_SYMBOL_GPL sound/soc/snd-soc-acpi 0x5c512782 snd_soc_acpi_find_package_from_hid -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x007d4052 snd_soc_pm_ops -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x03f31df2 snd_soc_dai_set_sysclk -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x04eb6df5 snd_soc_link_compr_set_params -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x09a5e16f snd_soc_daifmt_parse_clock_provider_raw -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0aec1dac snd_soc_get_volsw_range -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0cd84ca4 snd_soc_dai_compr_pointer -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d838f2c snd_soc_info_volsw_range -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d893354 snd_soc_jack_add_pins -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0f59bb52 snd_soc_dapm_dai_free_widgets -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0ff32450 snd_soc_dai_compr_set_metadata -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0ffde9d7 snd_soc_get_volsw -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x107b7306 snd_soc_link_compr_startup -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x116c220a snd_soc_dai_set_tristate -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x11b3c6f1 snd_soc_put_volsw_range -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x122e3c7e snd_soc_of_get_slot_mask -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x137e3083 snd_soc_card_jack_new -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1429cc52 snd_soc_dai_compr_startup -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x14aff477 snd_soc_dai_set_clkdiv -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x14bfcbe9 snd_soc_of_get_dai_link_codecs -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x189186af snd_soc_find_dai -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x18f4479e snd_soc_runtime_calc_hw -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1a7d25d8 dpcm_end_walk_at_be -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ac21b0c snd_soc_card_get_kcontrol -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1bdc186c snd_soc_dapm_enable_pin_unlocked -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1bf2534e snd_soc_dpcm_be_can_update -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1d842019 snd_soc_component_compr_set_metadata -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1eb26576 snd_soc_put_volsw_sx -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x210c1609 snd_soc_add_component -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x21f925ab snd_soc_dpcm_can_be_prepared -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x22a3bb61 snd_soc_dapm_get_enum_double -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x246d4752 snd_soc_component_force_enable_pin_unlocked -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x247f504d snd_soc_close_delayed_work -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24c1ae39 dapm_pinctrl_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00a83c23 snd_soc_remove_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0119d4f4 snd_soc_dapm_init +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x013ef723 snd_soc_add_pcm_runtimes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x05f65380 snd_soc_component_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06209ba4 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x069526a7 snd_soc_component_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x07186391 snd_soc_component_set_jack +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0ccca94d widget_in_list +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x123a14b5 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x135e4f27 snd_soc_dai_compr_shutdown +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x139e9bef snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x15307abf snd_soc_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1682ddd4 snd_soc_link_compr_startup +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x18c064ab snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1a802a8f snd_soc_dapm_nc_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1b98b1c1 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1bc0d4f1 snd_soc_bytes_info +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1c380e78 snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1c41de53 snd_soc_dai_compr_startup +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1e36188d snd_soc_lookup_component_nolocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f8cd147 snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x22fa6ac3 snd_soc_component_compr_set_metadata EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x26c1687a snd_soc_jack_get_type -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2702ac5f snd_soc_component_compr_get_codec_caps -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x27bdd1a2 snd_soc_component_compr_get_caps -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29443652 snd_soc_dapm_kcontrol_widget -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a7a4176 snd_soc_component_compr_get_params -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2be12418 snd_soc_rtdcom_lookup -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2d0fe44d snd_soc_bytes_info_ext -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f3d9232 snd_soc_register_component -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31e6f2ab dapm_regulator_event -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x32261903 snd_soc_put_xr_sx -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x327bc210 snd_soc_component_write_field -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x329cf646 snd_soc_info_enum_double -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3358aa8c snd_soc_component_compr_free -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x33946b49 snd_soc_poweroff -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x34b514ee snd_soc_component_compr_open -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x368d5390 snd_soc_dai_set_channel_map -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x399c4d78 snd_soc_card_jack_new_pins -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3bdcf8f7 snd_soc_of_parse_tdm_slot -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c69d7b8 snd_soc_dai_compr_get_params -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c98dcb5 dapm_mark_endpoints_dirty -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3cd023de snd_soc_dai_set_bclk_ratio -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3d3495c2 snd_soc_component_read_field -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3f073959 snd_soc_dapm_info_pin_switch -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x40db03ba snd_soc_card_remove_dai_link -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x426db03a snd_soc_dapm_mixer_update_power -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x427d53f1 snd_soc_dai_action -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x42b17ede snd_soc_get_dlc -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43205215 snd_soc_component_compr_copy -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43404246 snd_soc_jack_notifier_register -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43d55329 devm_snd_dmaengine_pcm_register -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x447e3f23 snd_soc_component_compr_ack -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49d7270e snd_soc_bytes_tlv_callback -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4b62d814 snd_soc_bytes_info -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4ba68012 snd_soc_dapm_new_controls -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4cb52205 snd_soc_info_xr_sx -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d39f9d8 snd_soc_dpcm_runtime_update -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d9ea205 snd_soc_dapm_force_enable_pin_unlocked -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4e69fad6 snd_soc_info_volsw_sx -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4e92c566 snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x26c982a3 snd_soc_of_get_slot_mask +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x278fd283 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x282a5090 snd_soc_dapm_dai_get_connected_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2893dabf snd_soc_component_compr_get_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2917c535 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29487a82 snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29800ae6 snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29e89a82 snd_soc_jack_add_gpiods +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2abb10de snd_soc_bytes_put +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f05097a snd_soc_component_compr_get_caps +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x312c7cc4 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x324648ca snd_soc_dapm_stream_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x341960fe snd_soc_find_dai_with_mutex +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x34d507ca snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x36dbfd62 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x37114075 snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3822d054 snd_soc_component_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38684a3a snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3ac1f0c4 snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b628e6f snd_dmaengine_pcm_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4140af3c snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x41e94be7 snd_soc_component_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x423c5aaa null_dailink_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43dfcc0e snd_soc_of_parse_aux_devs +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x45a65718 snd_soc_component_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x469f3f2b snd_soc_dapm_kcontrol_widget +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x46b74801 snd_soc_dai_is_dummy +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x470cdc19 snd_soc_component_initialize +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4851db89 snd_soc_component_async_complete +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x493a0851 snd_soc_dapm_force_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49c2148d snd_soc_runtime_action +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4bbc71a4 snd_soc_component_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4c8a142e snd_soc_component_write_field +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f0a695f snd_soc_dapm_dai_free_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f3ec86a snd_soc_card_add_dai_link EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4fa1782d snd_soc_tdm_params_to_bclk -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x51465351 snd_soc_dapm_kcontrol_dapm -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5311f299 snd_soc_runtime_set_dai_fmt -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54501492 snd_soc_dai_compr_shutdown -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x55aac578 snd_soc_set_ac97_ops_of_reset -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x56048042 snd_soc_dai_set_tdm_slot -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x567b558b snd_dmaengine_pcm_unregister -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5763ba97 snd_soc_add_dai_controls -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x57755f37 snd_soc_dapm_ignore_suspend -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x57f08ce8 snd_soc_dapm_disable_pin -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x58f09906 snd_soc_jack_add_gpios -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x59f61620 snd_soc_get_dai_name -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a4be4e3 snd_soc_runtime_action -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a700790 snd_soc_dai_compr_ack -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ae18c54 dapm_clock_event -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5bf521be snd_soc_dapm_get_volsw -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5bfa969b snd_soc_component_init_regmap -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5cbdd61a snd_soc_add_component_controls -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e180ead snd_soc_register_dai -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5f3af23c snd_soc_component_nc_pin_unlocked -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x60dcd7ad snd_soc_component_disable_pin -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x63bab045 snd_soc_dai_digital_mute -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x640dd2a6 snd_soc_component_compr_set_params -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6418d5f1 snd_soc_unregister_component_by_driver -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x64f04496 snd_soc_dapm_get_pin_status -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x652b34a0 snd_soc_bytes_get -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65437d6b snd_soc_dapm_update_dai -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6614f736 snd_soc_dpcm_can_be_free_stop -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x693fe72f snd_soc_dpcm_can_be_params -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6abc735f snd_soc_dai_compr_set_params -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6f9e388b snd_soc_of_get_dai_link_cpus -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6fc50740 snd_soc_add_pcm_runtimes -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x70ed2927 snd_soc_dapm_put_volsw -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7138e8ec snd_soc_unregister_card -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71836bf8 snd_soc_unregister_component -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x727b0ccc snd_soc_dapm_stream_stop -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x72933d06 snd_soc_dai_active -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x72ad51b4 snd_soc_component_set_sysclk -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x73144d77 snd_soc_get_strobe -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x736cc547 snd_soc_component_enable_pin -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x74f228da snd_soc_jack_add_gpiods -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x775a0632 snd_soc_find_dai_with_mutex -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78475567 snd_soc_card_add_dai_link -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x79051b4e snd_soc_new_compress -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7a8cdc5d snd_soc_of_parse_aux_devs -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7daf8fde snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5064ca5e snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x509320ff snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x517b0a2b snd_soc_component_read_field +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52fafbf8 snd_soc_add_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x543ec641 snd_soc_get_dai_id +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x55a4de7a snd_soc_dai_get_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x58880159 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x589184b6 snd_soc_component_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5926d2fb snd_soc_free_ac97_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5beece41 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x603b8737 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x610134ce snd_soc_dai_compr_get_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x614e9c9b snd_soc_component_compr_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x62293f71 snd_soc_component_compr_get_codec_caps +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x63c1afcc devm_snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x63e97fb7 snd_soc_component_compr_open +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65d1b80f snd_dmaengine_pcm_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x66125240 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x671836ee snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x67f33a69 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6876d79c snd_soc_of_put_dai_link_codecs +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x69b9320d snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a75d693 devm_snd_dmaengine_pcm_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6b89934b snd_soc_dai_link_set_capabilities +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ba69026 snd_soc_runtime_set_dai_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6dd3e4df snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ded6b5a snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6e66eaa2 snd_soc_component_compr_copy +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6eec15e7 snd_soc_dai_compr_set_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ff6ad18 snd_soc_dai_compr_pointer +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71c4b887 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x72680285 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x75df03d2 snd_soc_dapm_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x76745226 snd_soc_component_init_regmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7a767173 snd_soc_lookup_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7b4dd1bb snd_soc_add_card_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7c1ebb24 snd_soc_card_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7c3a126b snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7c707e26 snd_soc_dai_action +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ccb9910 snd_soc_component_compr_free EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7f8f9e0b soc_ac97_ops -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80dc62b1 snd_soc_get_dai_id -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80f65ca5 snd_soc_dai_link_set_capabilities -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x83689db3 snd_soc_component_initialize -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8372dbe9 snd_soc_of_put_dai_link_cpus -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x83da88dc snd_soc_put_volsw -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87921ce6 snd_soc_dapm_free -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87d755d2 snd_soc_dai_set_pll -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x890f615a snd_soc_dapm_put_enum_double -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8911c1ba snd_soc_dapm_add_routes -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x89f0e915 snd_soc_component_test_bits -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8c4e98eb snd_soc_cnew -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ce501dc snd_soc_component_compr_pointer -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8d6bac25 snd_soc_debugfs_root -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8d8ef12c snd_soc_limit_volume -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e731092 snd_soc_set_ac97_ops -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8f41e040 snd_soc_dapm_sync_unlocked -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8f6b6442 null_dailink_component -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8f82b792 snd_soc_jack_notifier_unregister -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9040cdb3 snd_soc_dpcm_fe_can_update -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x908e14fb snd_soc_dai_set_fmt -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9232e56f snd_soc_jack_add_zones -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x98246495 snd_soc_component_compr_trigger -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9cdfaed5 snd_soc_component_nc_pin -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9ed5903f snd_dmaengine_pcm_register -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa1d694c9 snd_soc_free_ac97_component -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa2c152b4 snd_soc_dai_get_channel_map -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa4ccd470 snd_soc_of_put_dai_link_codecs -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa739d514 snd_soc_daifmt_parse_format -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa7b48a93 snd_soc_get_enum_double -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa7f84835 snd_soc_get_pcm_runtime -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa8bbcd63 snd_soc_dapm_nc_pin_unlocked -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xabe21349 snd_soc_unregister_dai -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xabfbb3f7 devm_snd_soc_register_card -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac038c44 snd_soc_dapm_weak_routes -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb1de7c2c snd_soc_component_write -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb33489d2 snd_soc_component_set_pll -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb4b2944a snd_soc_dapm_disable_pin_unlocked -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6ced65c snd_soc_component_get_pin_status -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb79a8cf6 snd_dmaengine_pcm_prepare_slave_config -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb8fff472 snd_soc_dai_compr_trigger -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb90d33cc snd_soc_dapm_force_enable_pin -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb9ab862b snd_soc_dapm_get_pin_switch -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbaaff9af dapm_kcontrol_get_value -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbbcdd93e snd_soc_info_volsw -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbcd92028 snd_soc_of_get_dlc -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbceb51ce snd_soc_put_enum_double -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbdd3d1bd snd_soc_of_get_dai_name -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe017808 snd_soc_get_xr_sx -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc057d803 snd_soc_component_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80afb0b6 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x830ae5f7 soc_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x83699302 devm_snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x84549bf1 snd_soc_bytes_get +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x84990a68 snd_soc_component_get_jack_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8535799d snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x862c79dc snd_soc_of_parse_audio_simple_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x869c91cd snd_soc_get_stream_cpu +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87afe862 snd_soc_dpcm_runtime_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8b305679 snd_soc_unregister_component_by_driver +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8b75e3b8 snd_soc_of_get_dai_link_codecs +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e345b1e snd_soc_dai_active +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ecf0e72 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8f851db0 snd_dmaengine_pcm_prepare_slave_config +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x901360be snd_soc_component_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x915be1da snd_soc_new_ac97_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x923201b0 snd_soc_daifmt_parse_clock_provider_raw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94553bc0 snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94b98870 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94ebfccb snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x95aa9b82 snd_soc_component_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9947fc49 snd_soc_dai_compr_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9958a437 snd_soc_runtime_calc_hw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9999b47e snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9c277c97 snd_soc_dpcm_can_be_prepared +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9cc3d048 snd_soc_link_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9cdbc7b6 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d6c35b6 snd_soc_component_force_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa0517a64 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa1102cf4 snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa19516f4 snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa1a7d677 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa2e6383d snd_soc_get_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa37cc7fa snd_soc_dai_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa7503708 snd_soc_dapm_disable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa81eae99 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa867bcc1 snd_soc_of_get_dai_link_cpus +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa86a90fe snd_soc_dapm_kcontrol_dapm +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa8d7139d snd_soc_rtdcom_lookup +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa9607331 snd_soc_component_disable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa9a7cd72 snd_soc_component_compr_get_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xab5a4447 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac347075 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xadabea0d snd_soc_dapm_sync_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xae490279 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaf5cc494 snd_soc_component_update_bits_async +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb189bd9a snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb319c3b9 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb3c8b55c snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb4d17ee7 snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb4e86d98 snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb57a9c82 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb5992f18 snd_soc_component_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb69e5868 snd_soc_dapm_new_dai_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb7d88cf6 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb823ce66 snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb862bc63 snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb916dfe5 snd_soc_of_parse_pin_switches +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb9d37672 dapm_pinctrl_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd228d51 snd_soc_of_get_dlc +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbdc51fef snd_soc_add_component_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe2d4854 snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbeeb9524 asoc_dummy_dlc +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc0bd2f40 snd_soc_bytes_tlv_callback +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc0ece581 snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc12b3b08 snd_soc_component_compr_pointer +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc18d8999 snd_soc_component_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc2d08c1e dapm_regulator_event EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc317a15e snd_soc_daifmt_clock_provider_flipped -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc338b84d snd_soc_new_ac97_component -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc38d70b7 snd_soc_component_compr_get_metadata -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc44ce404 snd_soc_dapm_put_pin_switch -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc4c35e5b snd_soc_dapm_force_bias_level -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc73acc4a snd_soc_of_parse_node_prefix -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc745a8d1 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc4a7dda2 snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc551a170 snd_soc_resume EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8f35f27 snd_soc_component_read -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xca615a69 snd_soc_resume -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xca63bff3 snd_soc_dapm_dai_get_connected_widgets -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xca645a1a snd_soc_component_update_bits -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb0b6596 snd_soc_get_volsw_sx -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcd3f1814 snd_soc_component_force_enable_pin -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xce607621 snd_soc_dapm_enable_pin -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcf41aa97 snd_soc_dapm_free_widget -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd78d4c56 snd_soc_dapm_new_dai_widgets -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda713fdb snd_soc_component_exit_regmap -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc990891 snd_soc_component_update_bits_async -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe0065d5b snd_soc_component_get_jack_type -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe0a61e85 snd_soc_remove_pcm_runtime -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe0f08e04 snd_soc_lookup_component -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe1c25d59 snd_soc_dapm_sync -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe44ab39e snd_soc_put_strobe -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5e4e23e snd_soc_get_stream_cpu -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe681dbeb asoc_dummy_dlc -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe866f61c snd_soc_component_async_complete -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe8cc0996 snd_soc_link_compr_shutdown -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe8f8bd74 snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc92f1c85 snd_soc_component_exit_regmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc98bea91 snd_soc_get_dlc +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc9f3414d snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcbdcc583 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcd8568af snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcdb4d469 snd_soc_dapm_update_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcdd78a08 snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcf6f7028 snd_soc_daifmt_parse_format +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd21bbd5f dpcm_end_walk_at_be +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd37ba5d6 snd_soc_new_compress +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd4a4760b snd_soc_dapm_force_bias_level +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd78c60b5 snd_soc_component_notify_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd84c8be6 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd8734db2 dapm_clock_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd8c33a7a snd_soc_of_parse_node_prefix +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd8ff1322 snd_soc_component_nc_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd927976c snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd92c0e9b snd_soc_bytes_info_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdb640e44 snd_soc_of_put_dai_link_cpus +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc9a03e4 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdd980da0 snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xddcad48e snd_soc_link_compr_shutdown +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe0990b99 snd_soc_unregister_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe0d7ef96 snd_soc_close_delayed_work +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe36f4575 dapm_kcontrol_get_value +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4936471 snd_soc_dai_compr_get_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe58f6559 snd_soc_dapm_free_widget +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe7d7a425 snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe854ab6b snd_soc_put_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe9cc385b snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeaa5ce4b snd_soc_card_remove_dai_link EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xed41cac5 snd_soc_jack_free_gpios -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xed48183a snd_soc_set_runtime_hwparams -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xed85affa dpcm_be_dai_trigger -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeea5ef7c snd_soc_jack_report -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeef0ec57 snd_soc_component_notify_control -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xefe439e6 snd_soc_of_parse_audio_routing -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf0cfe3cf snd_soc_dapm_mux_update_power -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf1275f23 devm_snd_soc_register_component -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf133c502 snd_soc_component_set_jack -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf1a001dd snd_soc_add_card_controls -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf28376d6 snd_soc_dapm_nc_pin -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf2eb80d8 snd_soc_bytes_put -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf2eddebb widget_in_list -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf4e6dab5 snd_soc_component_disable_pin_unlocked -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf512481b snd_soc_dapm_init -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf81ecf80 snd_soc_of_parse_pin_switches -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf8bb11ba snd_soc_dai_compr_get_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb84086f snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xebc4c8ea snd_soc_component_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec4e1bab snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec572b2c snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xed7351e8 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf22c6815 snd_soc_of_parse_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf240c804 snd_soc_find_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf335a46f snd_soc_card_jack_new_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf4afa31a snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5a3e0be snd_soc_dai_compr_ack +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf71ec71e dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf76bb9cb dapm_mark_endpoints_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf84816a6 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf8fe7c69 snd_soc_component_compr_ack EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9622dd1 snd_soc_daifmt_clock_provider_from_bitmap -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfb00037e devm_snd_soc_register_dai -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfb845a9a snd_soc_lookup_component_nolocked -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfc30f8d0 snd_soc_register_card -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfca487e2 snd_soc_of_parse_audio_simple_widgets -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfccc28e3 snd_soc_dapm_del_routes -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfdb1564d snd_soc_suspend -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x10277869 line6_read_serial_number +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfb21658f snd_soc_component_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd358613 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfdadffbd snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xffc78de5 devm_snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xffd2cad3 snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xffd62507 snd_soc_info_volsw_sx +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x1b0faf60 line6_send_raw_message_async EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x202a1b1b line6_midi_id -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x3045ab8f line6_init_pcm -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x3361f131 line6_pcm_acquire -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x44c95158 line6_resume -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x4e3e1607 line6_send_raw_message_async -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x57a86b73 line6_pcm_release -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x78fbe63b line6_send_sysex_message -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x7aa506dd line6_alloc_sysex_buffer -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xad5e1dea line6_read_data -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xaf41f277 line6_probe -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xc16c6438 line6_init_midi -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xc29b0ef8 line6_write_data -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xc8d88547 line6_suspend -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xd0aa3b1e line6_version_request_async -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xed0f1015 line6_disconnect -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xf67b4bca line6_send_raw_message +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x2b687a7c line6_send_sysex_message +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x3f76e729 line6_resume +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x4299b9a8 line6_init_midi +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x69c74260 line6_read_data +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x80f38431 line6_disconnect +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x9a818acf line6_pcm_release +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xaa533dec line6_send_raw_message +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xb5cd36a2 line6_write_data +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xbc384049 line6_read_serial_number +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xbf0881bd line6_init_pcm +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xc6b80227 line6_alloc_sysex_buffer +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xe090304f line6_suspend +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xe5428a18 line6_version_request_async +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xe780020f line6_pcm_acquire +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xeb80c88f line6_probe EXPORT_SYMBOL_GPL virt/lib/irqbypass 0x3fe35aea irq_bypass_unregister_consumer EXPORT_SYMBOL_GPL virt/lib/irqbypass 0x418873cc irq_bypass_register_producer EXPORT_SYMBOL_GPL virt/lib/irqbypass 0x888c5be5 irq_bypass_register_consumer EXPORT_SYMBOL_GPL virt/lib/irqbypass 0xf6e772c3 irq_bypass_unregister_producer -EXPORT_SYMBOL_GPL vmlinux 0x000e31a6 xdp_set_features_flag -EXPORT_SYMBOL_GPL vmlinux 0x002a7e39 genphy_c45_baset1_read_status -EXPORT_SYMBOL_GPL vmlinux 0x0033573a dma_free_noncontiguous -EXPORT_SYMBOL_GPL vmlinux 0x00435da3 request_firmware_direct +EXPORT_SYMBOL_GPL vmlinux 0x00008824 vfs_remove_acl +EXPORT_SYMBOL_GPL vmlinux 0x000365c6 security_kernel_post_read_file +EXPORT_SYMBOL_GPL vmlinux 0x00059514 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x001ba0e6 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x003d7faf spi_take_timestamp_post +EXPORT_SYMBOL_GPL vmlinux 0x0040b3bf rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x0041627c ethnl_cable_test_fault_length +EXPORT_SYMBOL_GPL vmlinux 0x004f8988 i2c_adapter_type EXPORT_SYMBOL_GPL vmlinux 0x00513f58 get_timespec64 -EXPORT_SYMBOL_GPL vmlinux 0x00606349 mmc_cmdq_enable -EXPORT_SYMBOL_GPL vmlinux 0x00733816 crypto_unregister_ahashes -EXPORT_SYMBOL_GPL vmlinux 0x0076c14f kthread_use_mm -EXPORT_SYMBOL_GPL vmlinux 0x0076cf80 led_sysfs_disable -EXPORT_SYMBOL_GPL vmlinux 0x007d7a4d ata_host_detach -EXPORT_SYMBOL_GPL vmlinux 0x008811fe sysfs_create_file_ns -EXPORT_SYMBOL_GPL vmlinux 0x0092d9cd device_create_file -EXPORT_SYMBOL_GPL vmlinux 0x009e25e2 raw_v4_match -EXPORT_SYMBOL_GPL vmlinux 0x00a73464 eventfd_ctx_fileget -EXPORT_SYMBOL_GPL vmlinux 0x00a99110 skcipher_walk_async -EXPORT_SYMBOL_GPL vmlinux 0x00ad69ae class_dev_iter_next -EXPORT_SYMBOL_GPL vmlinux 0x00bd109b pinctrl_parse_index_with_args -EXPORT_SYMBOL_GPL vmlinux 0x00cc7962 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x00527607 bpf_offload_dev_match +EXPORT_SYMBOL_GPL vmlinux 0x0052d535 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x0059f549 of_clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x005c3f49 amba_device_put +EXPORT_SYMBOL_GPL vmlinux 0x006962bf ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x007072df spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x00767915 sysfs_file_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x009b6a40 devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x00b28321 devm_nvmem_device_get EXPORT_SYMBOL_GPL vmlinux 0x00d4c500 usb_decode_interval -EXPORT_SYMBOL_GPL vmlinux 0x00d7e8e5 crypto_shash_tfm_digest EXPORT_SYMBOL_GPL vmlinux 0x00ee09a8 usb_show_dynids -EXPORT_SYMBOL_GPL vmlinux 0x010a687d driver_remove_file -EXPORT_SYMBOL_GPL vmlinux 0x010e2ae1 __spi_register_driver -EXPORT_SYMBOL_GPL vmlinux 0x0132c90f crypto_alloc_acomp +EXPORT_SYMBOL_GPL vmlinux 0x00f68ee1 dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0x00fd072a spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x010707e4 of_reset_control_array_get +EXPORT_SYMBOL_GPL vmlinux 0x0125614d fsl_mc_device_group +EXPORT_SYMBOL_GPL vmlinux 0x01460e45 devm_regulator_bulk_get_exclusive EXPORT_SYMBOL_GPL vmlinux 0x014e8186 cpu_scale -EXPORT_SYMBOL_GPL vmlinux 0x01597340 ncsi_unregister_dev -EXPORT_SYMBOL_GPL vmlinux 0x01610f81 fib_add_nexthop -EXPORT_SYMBOL_GPL vmlinux 0x016c43ce crypto_register_alg -EXPORT_SYMBOL_GPL vmlinux 0x01823153 of_icc_get +EXPORT_SYMBOL_GPL vmlinux 0x014e9039 regulator_bulk_set_supply_names +EXPORT_SYMBOL_GPL vmlinux 0x014ebcdb mmc_crypto_prepare_req +EXPORT_SYMBOL_GPL vmlinux 0x01593d94 clk_hw_register_fractional_divider +EXPORT_SYMBOL_GPL vmlinux 0x0176167b pci_dev_run_wake EXPORT_SYMBOL_GPL vmlinux 0x01866a57 ezx_pcap_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x018b458e find_mci_by_dev EXPORT_SYMBOL_GPL vmlinux 0x019d1d57 blocking_notifier_chain_register -EXPORT_SYMBOL_GPL vmlinux 0x01a09aab lwtunnel_input +EXPORT_SYMBOL_GPL vmlinux 0x019e03cc spi_write_then_read EXPORT_SYMBOL_GPL vmlinux 0x01a0cb78 property_entries_free EXPORT_SYMBOL_GPL vmlinux 0x01a20dfe spi_delay_to_ns -EXPORT_SYMBOL_GPL vmlinux 0x01a69978 kthread_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x01a920a8 swapcache_mapping +EXPORT_SYMBOL_GPL vmlinux 0x01acabce serdev_device_set_tiocm +EXPORT_SYMBOL_GPL vmlinux 0x01ba6ac8 dev_pm_opp_get_voltage EXPORT_SYMBOL_GPL vmlinux 0x01c28910 mm_account_pinned_pages EXPORT_SYMBOL_GPL vmlinux 0x01c6cb0c cpu_cluster_pm_enter -EXPORT_SYMBOL_GPL vmlinux 0x01d4f112 of_clk_hw_simple_get -EXPORT_SYMBOL_GPL vmlinux 0x01db1a82 __page_file_index -EXPORT_SYMBOL_GPL vmlinux 0x01df87b6 icc_provider_init +EXPORT_SYMBOL_GPL vmlinux 0x01c6d66a mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x01c99f78 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x01cc1a75 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x01d6b66a usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x01d6d616 serdev_controller_add EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint -EXPORT_SYMBOL_GPL vmlinux 0x01ea3b24 root_device_unregister -EXPORT_SYMBOL_GPL vmlinux 0x01f710ff crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x020667a1 acpi_gpiochip_free_interrupts EXPORT_SYMBOL_GPL vmlinux 0x0207a6c6 reset_control_bulk_acquire -EXPORT_SYMBOL_GPL vmlinux 0x02132051 nf_queue_nf_hook_drop -EXPORT_SYMBOL_GPL vmlinux 0x0213422b __clk_mux_determine_rate_closest +EXPORT_SYMBOL_GPL vmlinux 0x020d4105 of_pci_get_max_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x020fa596 led_set_brightness_nopm +EXPORT_SYMBOL_GPL vmlinux 0x021450ce access_process_vm +EXPORT_SYMBOL_GPL vmlinux 0x022230ba ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0x0223e6e6 ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0x02242e86 edac_device_add_device +EXPORT_SYMBOL_GPL vmlinux 0x022b8c24 pci_ats_supported +EXPORT_SYMBOL_GPL vmlinux 0x0232af14 ip_icmp_error_rfc4884 +EXPORT_SYMBOL_GPL vmlinux 0x0235e93b usb_deregister_dev EXPORT_SYMBOL_GPL vmlinux 0x02394899 play_idle_precise +EXPORT_SYMBOL_GPL vmlinux 0x0246b041 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x024ac037 phy_package_join EXPORT_SYMBOL_GPL vmlinux 0x024d13dd request_free_mem_region -EXPORT_SYMBOL_GPL vmlinux 0x02538a5e __regmap_init_spi -EXPORT_SYMBOL_GPL vmlinux 0x026e3cdf pci_enable_rom -EXPORT_SYMBOL_GPL vmlinux 0x02724106 fscrypt_ioctl_remove_key_all_users -EXPORT_SYMBOL_GPL vmlinux 0x02757413 folio_test_hugetlb -EXPORT_SYMBOL_GPL vmlinux 0x02a2d378 extcon_dev_free -EXPORT_SYMBOL_GPL vmlinux 0x02a7bc2f dpm_for_each_dev -EXPORT_SYMBOL_GPL vmlinux 0x02bd320d devm_nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x0269316b crypto_register_acomp +EXPORT_SYMBOL_GPL vmlinux 0x026d2859 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x027cbda2 sched_set_fifo_low +EXPORT_SYMBOL_GPL vmlinux 0x02811363 regmap_attach_dev +EXPORT_SYMBOL_GPL vmlinux 0x028312b6 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x02970894 phy_calibrate +EXPORT_SYMBOL_GPL vmlinux 0x02979383 bpf_prog_add +EXPORT_SYMBOL_GPL vmlinux 0x02a1aa1d perf_aux_output_skip +EXPORT_SYMBOL_GPL vmlinux 0x02a681db inet6_sock_destruct +EXPORT_SYMBOL_GPL vmlinux 0x02abcf61 devm_phy_create +EXPORT_SYMBOL_GPL vmlinux 0x02af6165 devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x02b6a587 regulator_set_ramp_delay_regmap EXPORT_SYMBOL_GPL vmlinux 0x02c5c501 power_supply_find_ocv2cap_table -EXPORT_SYMBOL_GPL vmlinux 0x02fdd653 simple_attr_write_signed +EXPORT_SYMBOL_GPL vmlinux 0x02d956f6 sk_set_peek_off +EXPORT_SYMBOL_GPL vmlinux 0x02e14d41 iomap_truncate_page +EXPORT_SYMBOL_GPL vmlinux 0x02e85b32 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x02fce44a blkg_conf_init +EXPORT_SYMBOL_GPL vmlinux 0x0301ce36 fib_nh_common_release +EXPORT_SYMBOL_GPL vmlinux 0x0308ae1f iomap_file_buffered_write_punch_delalloc EXPORT_SYMBOL_GPL vmlinux 0x030cbca2 ata_id_xfermask EXPORT_SYMBOL_GPL vmlinux 0x0312b3b0 reset_controller_add_lookup -EXPORT_SYMBOL_GPL vmlinux 0x0315fc0e usb_reset_endpoint -EXPORT_SYMBOL_GPL vmlinux 0x031fa9b3 regmap_get_max_register +EXPORT_SYMBOL_GPL vmlinux 0x031613ee ata_ncq_sdev_groups +EXPORT_SYMBOL_GPL vmlinux 0x031a46d7 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x03212732 kthread_queue_delayed_work EXPORT_SYMBOL_GPL vmlinux 0x0321cdbf of_alias_get_highest_id +EXPORT_SYMBOL_GPL vmlinux 0x032406ff regmap_field_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x032bfe2c od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x032e7516 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x032f7f8b of_request_module EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk -EXPORT_SYMBOL_GPL vmlinux 0x033d872b iomap_get_folio -EXPORT_SYMBOL_GPL vmlinux 0x0340f7f7 dma_get_required_mask EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list EXPORT_SYMBOL_GPL vmlinux 0x03473884 phy_basic_t1s_p2mp_features -EXPORT_SYMBOL_GPL vmlinux 0x03481e4b pci_find_next_capability -EXPORT_SYMBOL_GPL vmlinux 0x034825d5 of_get_fb_videomode -EXPORT_SYMBOL_GPL vmlinux 0x0369ffd8 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x03515461 devl_resource_register +EXPORT_SYMBOL_GPL vmlinux 0x036309e3 msi_unlock_descs EXPORT_SYMBOL_GPL vmlinux 0x036de383 perf_event_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0x0371c216 regulator_register_supply_alias -EXPORT_SYMBOL_GPL vmlinux 0x037db6c4 sbitmap_show +EXPORT_SYMBOL_GPL vmlinux 0x037de4e7 mmc_send_status +EXPORT_SYMBOL_GPL vmlinux 0x0380d7df ip6_dst_lookup EXPORT_SYMBOL_GPL vmlinux 0x038d63d5 rhashtable_init EXPORT_SYMBOL_GPL vmlinux 0x03952887 ktime_add_safe -EXPORT_SYMBOL_GPL vmlinux 0x0397babf xfrm_state_afinfo_get_rcu +EXPORT_SYMBOL_GPL vmlinux 0x0399621b __dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x039e2e86 fb_bl_default_curve EXPORT_SYMBOL_GPL vmlinux 0x03a20a41 topology_clear_scale_freq_source -EXPORT_SYMBOL_GPL vmlinux 0x03a2fe6b usb_intf_get_dma_device +EXPORT_SYMBOL_GPL vmlinux 0x03a9eefe fat_add_entries EXPORT_SYMBOL_GPL vmlinux 0x03c12dfe cancel_work_sync -EXPORT_SYMBOL_GPL vmlinux 0x03d5a9e4 dev_pm_genpd_resume -EXPORT_SYMBOL_GPL vmlinux 0x03df19ef irq_setup_generic_chip -EXPORT_SYMBOL_GPL vmlinux 0x03f6c241 xhci_shutdown -EXPORT_SYMBOL_GPL vmlinux 0x03fcaabb iov_iter_extract_pages +EXPORT_SYMBOL_GPL vmlinux 0x03d9334c perf_event_sysfs_show +EXPORT_SYMBOL_GPL vmlinux 0x03ecfe2a gpiod_direction_output_raw EXPORT_SYMBOL_GPL vmlinux 0x0402cbbf preempt_notifier_inc +EXPORT_SYMBOL_GPL vmlinux 0x040c0952 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0x0424cf38 syscon_node_to_regmap EXPORT_SYMBOL_GPL vmlinux 0x0431e7e6 trace_seq_to_user -EXPORT_SYMBOL_GPL vmlinux 0x043b22a2 sysfs_add_file_to_group -EXPORT_SYMBOL_GPL vmlinux 0x0442cda3 xhci_reset_bandwidth -EXPORT_SYMBOL_GPL vmlinux 0x044b9064 gpiochip_irq_domain_deactivate -EXPORT_SYMBOL_GPL vmlinux 0x04571ef2 regmap_noinc_read -EXPORT_SYMBOL_GPL vmlinux 0x04655b16 devm_clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x0431ebd5 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x0444a356 pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x044ac648 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x04523a07 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x04573600 nvdimm_in_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x045d9f5a divider_recalc_rate EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x046f0b04 scsi_free_sgtables EXPORT_SYMBOL_GPL vmlinux 0x046f359e of_overlay_notifier_register -EXPORT_SYMBOL_GPL vmlinux 0x0477529a usb_hcd_pci_pm_ops EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk -EXPORT_SYMBOL_GPL vmlinux 0x048e725b auxiliary_device_init -EXPORT_SYMBOL_GPL vmlinux 0x048f742e invalidate_inode_pages2_range -EXPORT_SYMBOL_GPL vmlinux 0x0497257c folio_add_wait_queue EXPORT_SYMBOL_GPL vmlinux 0x0499ade7 __wake_up_sync -EXPORT_SYMBOL_GPL vmlinux 0x049ca2f4 pskb_put -EXPORT_SYMBOL_GPL vmlinux 0x04a9035f thermal_zone_device -EXPORT_SYMBOL_GPL vmlinux 0x04a9755f vcap_is_next_lookup -EXPORT_SYMBOL_GPL vmlinux 0x04aa8ac4 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x04a25966 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x04a6131f ata_ehi_clear_desc EXPORT_SYMBOL_GPL vmlinux 0x04ab9687 __dma_fence_unwrap_merge -EXPORT_SYMBOL_GPL vmlinux 0x04b1cc1a __get_task_ioprio -EXPORT_SYMBOL_GPL vmlinux 0x04b243e0 gpiod_set_transitory -EXPORT_SYMBOL_GPL vmlinux 0x04b896fa virtio_max_dma_size +EXPORT_SYMBOL_GPL vmlinux 0x04b499c9 iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0x04b5c6e0 platform_device_register_full EXPORT_SYMBOL_GPL vmlinux 0x04bf0092 io_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x04c1a8f9 bpf_prog_destroy EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer EXPORT_SYMBOL_GPL vmlinux 0x04c8aebf console_verbose +EXPORT_SYMBOL_GPL vmlinux 0x04dba53e wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x04df1c4e md_do_sync EXPORT_SYMBOL_GPL vmlinux 0x04df8fbc lzo1x_decompress_safe -EXPORT_SYMBOL_GPL vmlinux 0x04e6b5a3 serdev_device_set_baudrate -EXPORT_SYMBOL_GPL vmlinux 0x04ef2512 dev_pm_opp_get_max_clock_latency -EXPORT_SYMBOL_GPL vmlinux 0x04ef4ac2 pciserial_init_ports -EXPORT_SYMBOL_GPL vmlinux 0x04f4a689 tcp_unregister_congestion_control -EXPORT_SYMBOL_GPL vmlinux 0x04fa02f5 stmpe_block_write -EXPORT_SYMBOL_GPL vmlinux 0x050461b2 sk_msg_free_nocharge +EXPORT_SYMBOL_GPL vmlinux 0x04e0455d devlink_priv +EXPORT_SYMBOL_GPL vmlinux 0x05079d61 virtio_add_status +EXPORT_SYMBOL_GPL vmlinux 0x05081ff3 __phy_modify_mmd_changed EXPORT_SYMBOL_GPL vmlinux 0x051085e3 lock_system_sleep -EXPORT_SYMBOL_GPL vmlinux 0x0519e437 show_class_attr_string EXPORT_SYMBOL_GPL vmlinux 0x051a0bc1 stack_depot_fetch -EXPORT_SYMBOL_GPL vmlinux 0x0523ec6f sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x051dbf72 clockevents_unbind_device +EXPORT_SYMBOL_GPL vmlinux 0x052054b7 vcap_addr_keysets EXPORT_SYMBOL_GPL vmlinux 0x0527b154 alloc_dax EXPORT_SYMBOL_GPL vmlinux 0x052b4013 register_vmcore_cb EXPORT_SYMBOL_GPL vmlinux 0x052c9aed ktime_get_real_fast_ns -EXPORT_SYMBOL_GPL vmlinux 0x052f0fbb led_stop_software_blink -EXPORT_SYMBOL_GPL vmlinux 0x05307680 fat_search_long EXPORT_SYMBOL_GPL vmlinux 0x053d738a __SCK__tp_func_br_fdb_update EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt -EXPORT_SYMBOL_GPL vmlinux 0x054e6bec led_classdev_unregister -EXPORT_SYMBOL_GPL vmlinux 0x05511307 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x0558c637 devl_resources_unregister EXPORT_SYMBOL_GPL vmlinux 0x05610897 of_changeset_destroy -EXPORT_SYMBOL_GPL vmlinux 0x057ca109 rio_mport_class -EXPORT_SYMBOL_GPL vmlinux 0x057e898c rio_del_mport_pw_handler -EXPORT_SYMBOL_GPL vmlinux 0x0586f631 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x05662b35 device_property_read_u64_array +EXPORT_SYMBOL_GPL vmlinux 0x056732cc powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0x05677399 lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0x05694464 umd_unload_blob EXPORT_SYMBOL_GPL vmlinux 0x05883efb __traceiter_suspend_resume -EXPORT_SYMBOL_GPL vmlinux 0x05a20f01 rtnl_af_register -EXPORT_SYMBOL_GPL vmlinux 0x05b39350 wm8350_clear_bits -EXPORT_SYMBOL_GPL vmlinux 0x05c176df devlink_port_attrs_pci_pf_set +EXPORT_SYMBOL_GPL vmlinux 0x058a9dbb ip_icmp_error +EXPORT_SYMBOL_GPL vmlinux 0x0593c5fd irq_domain_create_legacy +EXPORT_SYMBOL_GPL vmlinux 0x059aa530 ata_pci_bmdma_init EXPORT_SYMBOL_GPL vmlinux 0x05cd1dd4 vcap_rule_add_key_bit -EXPORT_SYMBOL_GPL vmlinux 0x05dda592 serdev_controller_add -EXPORT_SYMBOL_GPL vmlinux 0x0600944b __strp_unpause -EXPORT_SYMBOL_GPL vmlinux 0x0607a7ef dma_vunmap_noncontiguous -EXPORT_SYMBOL_GPL vmlinux 0x06137a7d nvmem_cell_read_variable_le_u64 +EXPORT_SYMBOL_GPL vmlinux 0x05db09b9 tpm2_get_cc_attrs_tbl +EXPORT_SYMBOL_GPL vmlinux 0x05fcfbab em_pd_get +EXPORT_SYMBOL_GPL vmlinux 0x0600edef sysfs_remove_mount_point +EXPORT_SYMBOL_GPL vmlinux 0x0619dbc5 genphy_c45_an_disable_aneg EXPORT_SYMBOL_GPL vmlinux 0x06209f49 phy_lookup_setting -EXPORT_SYMBOL_GPL vmlinux 0x0625233a ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x0623ffb7 usb_control_msg_recv EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler -EXPORT_SYMBOL_GPL vmlinux 0x062cbbed wm831x_bulk_read EXPORT_SYMBOL_GPL vmlinux 0x062d117f __tracepoint_neigh_timer_handler -EXPORT_SYMBOL_GPL vmlinux 0x0636673f device_store_int -EXPORT_SYMBOL_GPL vmlinux 0x063cc704 clockevents_register_device -EXPORT_SYMBOL_GPL vmlinux 0x06412057 __platform_driver_register -EXPORT_SYMBOL_GPL vmlinux 0x06428974 raw_v6_match -EXPORT_SYMBOL_GPL vmlinux 0x0645fce5 crypto_clone_tfm -EXPORT_SYMBOL_GPL vmlinux 0x064a4422 validate_xmit_xfrm -EXPORT_SYMBOL_GPL vmlinux 0x064af5e5 of_clk_get_from_provider +EXPORT_SYMBOL_GPL vmlinux 0x063d892c do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x0649cae5 kill_pid_usb_asyncio EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry -EXPORT_SYMBOL_GPL vmlinux 0x064e164b riscv_set_cacheinfo_ops -EXPORT_SYMBOL_GPL vmlinux 0x065a1f61 debugfs_attr_read -EXPORT_SYMBOL_GPL vmlinux 0x065abc8f fuse_sync_release -EXPORT_SYMBOL_GPL vmlinux 0x06917111 bpf_prog_get_type_dev -EXPORT_SYMBOL_GPL vmlinux 0x06ba22e3 mbox_controller_unregister -EXPORT_SYMBOL_GPL vmlinux 0x06c7946d pci_epc_linkup +EXPORT_SYMBOL_GPL vmlinux 0x0651778d serdev_device_open +EXPORT_SYMBOL_GPL vmlinux 0x0662b43a skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x066cf6ef usb_hub_claim_port +EXPORT_SYMBOL_GPL vmlinux 0x066da630 bpf_warn_invalid_xdp_action +EXPORT_SYMBOL_GPL vmlinux 0x06c31b00 device_match_devt EXPORT_SYMBOL_GPL vmlinux 0x06cca30b ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0x06d34275 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x06dcacfe usb_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x06dd4b47 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x06dddbae auxiliary_device_init +EXPORT_SYMBOL_GPL vmlinux 0x06e40fc6 kernfs_get EXPORT_SYMBOL_GPL vmlinux 0x06e415bc __tracepoint_block_split EXPORT_SYMBOL_GPL vmlinux 0x06e4433e sunxi_ccu_set_mmc_timing_mode -EXPORT_SYMBOL_GPL vmlinux 0x06e6769f iomap_seek_hole -EXPORT_SYMBOL_GPL vmlinux 0x06f2c4d2 __pneigh_lookup -EXPORT_SYMBOL_GPL vmlinux 0x06fe2251 regulator_get_drvdata -EXPORT_SYMBOL_GPL vmlinux 0x07166fe6 phy_package_leave -EXPORT_SYMBOL_GPL vmlinux 0x071aec34 __pci_hp_initialize -EXPORT_SYMBOL_GPL vmlinux 0x0720eff4 netlink_has_listeners -EXPORT_SYMBOL_GPL vmlinux 0x072254d2 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x06eb7da2 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x06f03367 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x06f18775 of_regulator_bulk_get_all +EXPORT_SYMBOL_GPL vmlinux 0x0700bbb8 mpc8xxx_spi_tx_buf_u16 +EXPORT_SYMBOL_GPL vmlinux 0x070f8a77 of_genpd_del_provider +EXPORT_SYMBOL_GPL vmlinux 0x071113f8 pinctrl_dev_get_name +EXPORT_SYMBOL_GPL vmlinux 0x0711fbda phy_exit EXPORT_SYMBOL_GPL vmlinux 0x07242d92 put_dax -EXPORT_SYMBOL_GPL vmlinux 0x07281127 rio_map_inb_region -EXPORT_SYMBOL_GPL vmlinux 0x07312c50 i2c_dw_acpi_configure EXPORT_SYMBOL_GPL vmlinux 0x073205e7 vcap_filter_rule_keys -EXPORT_SYMBOL_GPL vmlinux 0x07483812 debugfs_lookup_and_remove +EXPORT_SYMBOL_GPL vmlinux 0x0736203d devm_nvmem_device_put EXPORT_SYMBOL_GPL vmlinux 0x07483e13 cn_del_callback -EXPORT_SYMBOL_GPL vmlinux 0x074ca605 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x0749cf01 of_reserved_mem_device_init_by_idx EXPORT_SYMBOL_GPL vmlinux 0x074f98db synth_event_add_field +EXPORT_SYMBOL_GPL vmlinux 0x0752d72a extcon_unregister_notifier_all EXPORT_SYMBOL_GPL vmlinux 0x0756a31c register_platform_power_off +EXPORT_SYMBOL_GPL vmlinux 0x075a64bc gpiod_set_array_value +EXPORT_SYMBOL_GPL vmlinux 0x076246ab nf_hook_entries_insert_raw EXPORT_SYMBOL_GPL vmlinux 0x076356e7 sfp_may_have_phy +EXPORT_SYMBOL_GPL vmlinux 0x07669d00 dw8250_do_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x0767b71d sdio_disable_func EXPORT_SYMBOL_GPL vmlinux 0x076a450c ftrace_set_filter_ip -EXPORT_SYMBOL_GPL vmlinux 0x0771e005 irq_gc_ack_set_bit -EXPORT_SYMBOL_GPL vmlinux 0x07858199 acpi_pm_set_device_wakeup -EXPORT_SYMBOL_GPL vmlinux 0x078695f0 crypto_wait_for_test -EXPORT_SYMBOL_GPL vmlinux 0x0790a2a2 ata_sff_prereset -EXPORT_SYMBOL_GPL vmlinux 0x07920aa1 rio_request_dma -EXPORT_SYMBOL_GPL vmlinux 0x0793ad97 inet_hash_connect -EXPORT_SYMBOL_GPL vmlinux 0x079478ae verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x07818b89 pci_epc_linkdown +EXPORT_SYMBOL_GPL vmlinux 0x07831f69 pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0x078547aa inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x0788f782 dax_inode +EXPORT_SYMBOL_GPL vmlinux 0x078eb4a2 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x078f56df rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x0793e788 rcu_trc_cmpxchg_need_qs +EXPORT_SYMBOL_GPL vmlinux 0x079c264e irq_domain_free_irqs_common +EXPORT_SYMBOL_GPL vmlinux 0x079ea712 udp6_lib_lookup EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister EXPORT_SYMBOL_GPL vmlinux 0x07be6905 net_inc_egress_queue -EXPORT_SYMBOL_GPL vmlinux 0x07d67d90 proc_create_net_data_write -EXPORT_SYMBOL_GPL vmlinux 0x07d73aa0 get_net_ns -EXPORT_SYMBOL_GPL vmlinux 0x07dc2d9d ping_unhash -EXPORT_SYMBOL_GPL vmlinux 0x07f680c4 sk_msg_free -EXPORT_SYMBOL_GPL vmlinux 0x080b0775 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x07d1fab3 usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x07d78265 page_cache_sync_ra +EXPORT_SYMBOL_GPL vmlinux 0x07d7fd96 devm_extcon_dev_allocate +EXPORT_SYMBOL_GPL vmlinux 0x07da245e fsnotify_find_mark +EXPORT_SYMBOL_GPL vmlinux 0x07dbc275 trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x07e13dfd pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x07f27943 blk_mq_alloc_sq_tag_set +EXPORT_SYMBOL_GPL vmlinux 0x08054448 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x0805b38b regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0x080bced1 pm_clk_suspend EXPORT_SYMBOL_GPL vmlinux 0x08135613 dax_write_cache -EXPORT_SYMBOL_GPL vmlinux 0x081f211c crypto_default_rng -EXPORT_SYMBOL_GPL vmlinux 0x082c7efb devm_pm_clk_create -EXPORT_SYMBOL_GPL vmlinux 0x0839cb98 fscrypt_parse_test_dummy_encryption -EXPORT_SYMBOL_GPL vmlinux 0x0848c8bb ping_recvmsg -EXPORT_SYMBOL_GPL vmlinux 0x0858992b __rio_local_read_config_32 -EXPORT_SYMBOL_GPL vmlinux 0x087094e0 sk_setup_caps -EXPORT_SYMBOL_GPL vmlinux 0x087ca891 pci_epc_get_msix +EXPORT_SYMBOL_GPL vmlinux 0x08245354 sch_frag_xmit_hook +EXPORT_SYMBOL_GPL vmlinux 0x082c0cfe wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x08425f3a uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x0851155b blk_next_bio EXPORT_SYMBOL_GPL vmlinux 0x087f5dc5 wm831x_of_match +EXPORT_SYMBOL_GPL vmlinux 0x0885ddbc __devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x0886f20d regmap_get_raw_read_max +EXPORT_SYMBOL_GPL vmlinux 0x08896cf8 dw_pcie_link_up +EXPORT_SYMBOL_GPL vmlinux 0x089742b4 fwnode_property_read_u64_array EXPORT_SYMBOL_GPL vmlinux 0x089a33c6 inet_peer_base_init -EXPORT_SYMBOL_GPL vmlinux 0x08a256a7 dev_pm_genpd_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x089e96c4 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x08a17fab __traceiter_wbc_writepage EXPORT_SYMBOL_GPL vmlinux 0x08a88a9f __SCK__tp_func_ata_tf_load -EXPORT_SYMBOL_GPL vmlinux 0x08adb3dc dev_pm_opp_free_cpufreq_table -EXPORT_SYMBOL_GPL vmlinux 0x08bc58cd power_supply_charge_behaviour_show -EXPORT_SYMBOL_GPL vmlinux 0x08be3fe0 device_get_named_child_node -EXPORT_SYMBOL_GPL vmlinux 0x08d4c946 pinctrl_find_gpio_range_from_pin_nolock -EXPORT_SYMBOL_GPL vmlinux 0x08d6b6f6 netdev_set_default_ethtool_ops -EXPORT_SYMBOL_GPL vmlinux 0x08e4a5f9 kill_pid_usb_asyncio -EXPORT_SYMBOL_GPL vmlinux 0x08e99df8 fw_devlink_purge_absent_suppliers -EXPORT_SYMBOL_GPL vmlinux 0x08f5508e sysfs_change_owner -EXPORT_SYMBOL_GPL vmlinux 0x08f63211 platform_get_irq -EXPORT_SYMBOL_GPL vmlinux 0x09062529 syscon_regmap_lookup_by_phandle -EXPORT_SYMBOL_GPL vmlinux 0x0913a776 ncsi_stop_dev -EXPORT_SYMBOL_GPL vmlinux 0x091c4a3c shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x08ad802f devm_gpiod_get_index_optional +EXPORT_SYMBOL_GPL vmlinux 0x08b22fe0 spi_mem_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x08c06d00 backing_file_open +EXPORT_SYMBOL_GPL vmlinux 0x08d428dc do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x08d6eb61 nvdimm_bus_register +EXPORT_SYMBOL_GPL vmlinux 0x08ecbc7b msi_device_has_isolated_msi +EXPORT_SYMBOL_GPL vmlinux 0x090d1883 inode_dax +EXPORT_SYMBOL_GPL vmlinux 0x091651a5 folio_test_hugetlb EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies -EXPORT_SYMBOL_GPL vmlinux 0x09276afe fwnode_property_read_u8_array -EXPORT_SYMBOL_GPL vmlinux 0x0930c84c __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0x092e9b5a devl_region_create EXPORT_SYMBOL_GPL vmlinux 0x093786cf synth_event_add_field_str -EXPORT_SYMBOL_GPL vmlinux 0x0939e4b8 pm_clk_add_clk -EXPORT_SYMBOL_GPL vmlinux 0x093b704d acpi_kobj -EXPORT_SYMBOL_GPL vmlinux 0x093dbf24 tty_buffer_request_room -EXPORT_SYMBOL_GPL vmlinux 0x0942f370 int_active_memcg -EXPORT_SYMBOL_GPL vmlinux 0x09519e26 set_secondary_fwnode -EXPORT_SYMBOL_GPL vmlinux 0x09577f6f soc_device_match +EXPORT_SYMBOL_GPL vmlinux 0x0939f678 bpf_map_inc +EXPORT_SYMBOL_GPL vmlinux 0x094031b1 sdio_retune_hold_now +EXPORT_SYMBOL_GPL vmlinux 0x094f303e skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x0951dd49 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x096a042d iommu_unmap EXPORT_SYMBOL_GPL vmlinux 0x0976822d sfp_get_module_eeprom_by_page -EXPORT_SYMBOL_GPL vmlinux 0x098ba97c find_pid_ns -EXPORT_SYMBOL_GPL vmlinux 0x09a4e1b3 sysfs_create_bin_file -EXPORT_SYMBOL_GPL vmlinux 0x09ac1770 ip6_pol_route +EXPORT_SYMBOL_GPL vmlinux 0x0978c938 devm_pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x0982f790 ioc_find_get_icq EXPORT_SYMBOL_GPL vmlinux 0x09b53e14 interval_tree_remove -EXPORT_SYMBOL_GPL vmlinux 0x09bcf2db nvmem_device_get -EXPORT_SYMBOL_GPL vmlinux 0x09beb9e6 serial8250_do_startup -EXPORT_SYMBOL_GPL vmlinux 0x09bfe26f metadata_dst_alloc -EXPORT_SYMBOL_GPL vmlinux 0x09c4b44c amba_bustype -EXPORT_SYMBOL_GPL vmlinux 0x09c756f4 ata_sff_dev_select -EXPORT_SYMBOL_GPL vmlinux 0x09cc469e dev_pm_qos_update_request -EXPORT_SYMBOL_GPL vmlinux 0x09dab275 sock_diag_save_cookie -EXPORT_SYMBOL_GPL vmlinux 0x0a1688be fsverity_verify_blocks +EXPORT_SYMBOL_GPL vmlinux 0x09da680f __traceiter_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x09dda59a __devm_reset_control_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x09eb4e97 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x09ec2b26 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x09f3c3a4 dev_pm_opp_set_config +EXPORT_SYMBOL_GPL vmlinux 0x09f3daa9 acpi_unbind_one +EXPORT_SYMBOL_GPL vmlinux 0x0a0a5026 cpufreq_cpu_get_raw EXPORT_SYMBOL_GPL vmlinux 0x0a1e0f7d free_iova -EXPORT_SYMBOL_GPL vmlinux 0x0a1efbe6 devm_regmap_field_free -EXPORT_SYMBOL_GPL vmlinux 0x0a23e111 i2c_slave_unregister -EXPORT_SYMBOL_GPL vmlinux 0x0a2a98c9 metadata_dst_free_percpu -EXPORT_SYMBOL_GPL vmlinux 0x0a304263 __rio_local_write_config_16 -EXPORT_SYMBOL_GPL vmlinux 0x0a354c06 extcon_set_property_sync -EXPORT_SYMBOL_GPL vmlinux 0x0a3615ce rio_local_get_device_id -EXPORT_SYMBOL_GPL vmlinux 0x0a4b76a1 inet6_csk_update_pmtu -EXPORT_SYMBOL_GPL vmlinux 0x0a5ca498 rtnl_get_net_ns_capable -EXPORT_SYMBOL_GPL vmlinux 0x0a5eb842 cpufreq_dbs_governor_limits -EXPORT_SYMBOL_GPL vmlinux 0x0a731168 inode_dax -EXPORT_SYMBOL_GPL vmlinux 0x0a79ce59 led_set_brightness_nosleep -EXPORT_SYMBOL_GPL vmlinux 0x0a7a210a kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x0a3c5a6f irq_domain_remove_sim +EXPORT_SYMBOL_GPL vmlinux 0x0a4299b1 device_get_match_data +EXPORT_SYMBOL_GPL vmlinux 0x0a58059d unmap_mapping_pages +EXPORT_SYMBOL_GPL vmlinux 0x0a59d95a tpm2_flush_context +EXPORT_SYMBOL_GPL vmlinux 0x0a734fa9 blk_mq_freeze_queue_wait EXPORT_SYMBOL_GPL vmlinux 0x0a7d89ff xas_nomem +EXPORT_SYMBOL_GPL vmlinux 0x0a83f310 devfreq_event_get_edev_by_phandle EXPORT_SYMBOL_GPL vmlinux 0x0a8e458b crypto_req_done -EXPORT_SYMBOL_GPL vmlinux 0x0a927cf6 perf_event_update_userpage -EXPORT_SYMBOL_GPL vmlinux 0x0a962438 __get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x0a95fece serial8250_tx_chars EXPORT_SYMBOL_GPL vmlinux 0x0a9df53d for_each_kernel_tracepoint -EXPORT_SYMBOL_GPL vmlinux 0x0aac4426 nfs42_ssc_register -EXPORT_SYMBOL_GPL vmlinux 0x0aaeace7 synth_event_trace -EXPORT_SYMBOL_GPL vmlinux 0x0ab3b3cd folio_wait_stable -EXPORT_SYMBOL_GPL vmlinux 0x0ad2b91f __mnt_is_readonly -EXPORT_SYMBOL_GPL vmlinux 0x0ade7146 __reset_control_get -EXPORT_SYMBOL_GPL vmlinux 0x0adf0e24 irq_domain_update_bus_token -EXPORT_SYMBOL_GPL vmlinux 0x0ae199eb of_get_named_gpio +EXPORT_SYMBOL_GPL vmlinux 0x0ad6b730 pci_aer_clear_nonfatal_status +EXPORT_SYMBOL_GPL vmlinux 0x0adfb3ae pid_nr_ns EXPORT_SYMBOL_GPL vmlinux 0x0ae66d7b vcap_admin_rule_count +EXPORT_SYMBOL_GPL vmlinux 0x0ae69eda regulator_get_current_limit EXPORT_SYMBOL_GPL vmlinux 0x0afb8584 register_sifive_ccache_error_notifier -EXPORT_SYMBOL_GPL vmlinux 0x0b079310 usb_remove_phy EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct -EXPORT_SYMBOL_GPL vmlinux 0x0b09a8b5 dev_pm_qos_update_user_latency_tolerance -EXPORT_SYMBOL_GPL vmlinux 0x0b122271 bdev_discard_alignment -EXPORT_SYMBOL_GPL vmlinux 0x0b1704a5 usb_get_intf EXPORT_SYMBOL_GPL vmlinux 0x0b1b1298 riscv_timebase -EXPORT_SYMBOL_GPL vmlinux 0x0b1cc923 usb_get_dev -EXPORT_SYMBOL_GPL vmlinux 0x0b1e3611 ata_bmdma_status -EXPORT_SYMBOL_GPL vmlinux 0x0b21c16b clk_gate_restore_context +EXPORT_SYMBOL_GPL vmlinux 0x0b20d1aa skcipher_walk_aead_encrypt EXPORT_SYMBOL_GPL vmlinux 0x0b2db2d5 remove_resource -EXPORT_SYMBOL_GPL vmlinux 0x0b33e402 fwnode_get_next_child_node -EXPORT_SYMBOL_GPL vmlinux 0x0b4886da rdev_get_drvdata -EXPORT_SYMBOL_GPL vmlinux 0x0b4cd43e clk_register_composite +EXPORT_SYMBOL_GPL vmlinux 0x0b3e8d0c __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0b4d1559 devfreq_event_remove_edev +EXPORT_SYMBOL_GPL vmlinux 0x0b633547 crypto_sig_maxsize EXPORT_SYMBOL_GPL vmlinux 0x0b69e104 pse_ethtool_get_status -EXPORT_SYMBOL_GPL vmlinux 0x0b7677db vchan_tx_desc_free -EXPORT_SYMBOL_GPL vmlinux 0x0b88c09f page_cache_sync_ra +EXPORT_SYMBOL_GPL vmlinux 0x0b6bbbc9 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x0b798db5 bpf_offload_dev_create EXPORT_SYMBOL_GPL vmlinux 0x0b8c8a23 static_key_fast_inc_not_disabled -EXPORT_SYMBOL_GPL vmlinux 0x0b96d893 serdev_device_write -EXPORT_SYMBOL_GPL vmlinux 0x0b9a96b7 of_mpc8xxx_spi_probe -EXPORT_SYMBOL_GPL vmlinux 0x0ba4112f tcp_bpf_sendmsg_redir -EXPORT_SYMBOL_GPL vmlinux 0x0ba462b6 __traceiter_devlink_hwerr -EXPORT_SYMBOL_GPL vmlinux 0x0bac5fb7 devm_free_pages -EXPORT_SYMBOL_GPL vmlinux 0x0bb32091 pci_generic_config_write -EXPORT_SYMBOL_GPL vmlinux 0x0bb7c7aa relay_reset -EXPORT_SYMBOL_GPL vmlinux 0x0bbde678 fsnotify_find_mark -EXPORT_SYMBOL_GPL vmlinux 0x0bcdce2d bdev_alignment_offset -EXPORT_SYMBOL_GPL vmlinux 0x0beb5515 clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x0b8ea69f blk_steal_bios +EXPORT_SYMBOL_GPL vmlinux 0x0b9d5a73 debugfs_create_file_unsafe +EXPORT_SYMBOL_GPL vmlinux 0x0bafb17d tty_port_register_device_attr_serdev +EXPORT_SYMBOL_GPL vmlinux 0x0bc25f68 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x0bc45a63 __clk_mux_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x0bd0a83a trace_array_put +EXPORT_SYMBOL_GPL vmlinux 0x0bd7ad50 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x0be1c1ae skcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x0befef34 blkcg_policy_unregister EXPORT_SYMBOL_GPL vmlinux 0x0bf32478 __SCK__tp_func_pelt_rt_tp -EXPORT_SYMBOL_GPL vmlinux 0x0bf8a617 devm_hwspin_lock_request_specific -EXPORT_SYMBOL_GPL vmlinux 0x0c0ac660 dev_pm_opp_get_sharing_cpus -EXPORT_SYMBOL_GPL vmlinux 0x0c2229be device_driver_attach -EXPORT_SYMBOL_GPL vmlinux 0x0c26f034 pinctrl_add_gpio_range -EXPORT_SYMBOL_GPL vmlinux 0x0c2acc92 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x0bfca7d6 regulator_get_hardware_vsel_register +EXPORT_SYMBOL_GPL vmlinux 0x0c0d3743 __scsi_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x0c1ae48a fw_devlink_purge_absent_suppliers EXPORT_SYMBOL_GPL vmlinux 0x0c2c5802 work_busy EXPORT_SYMBOL_GPL vmlinux 0x0c32ff8a edac_pci_alloc_index EXPORT_SYMBOL_GPL vmlinux 0x0c3a635c free_uid -EXPORT_SYMBOL_GPL vmlinux 0x0c43dfd7 led_blink_set_nosleep +EXPORT_SYMBOL_GPL vmlinux 0x0c411ce3 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x0c433f92 preempt_notifier_register EXPORT_SYMBOL_GPL vmlinux 0x0c47cc56 key_type_trusted -EXPORT_SYMBOL_GPL vmlinux 0x0c5ba535 trace_define_field -EXPORT_SYMBOL_GPL vmlinux 0x0c6fce99 mmc_send_abort_tuning +EXPORT_SYMBOL_GPL vmlinux 0x0c595289 plda_pcie_map_bus +EXPORT_SYMBOL_GPL vmlinux 0x0c6675b7 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x0c87fb53 dm_path_uevent EXPORT_SYMBOL_GPL vmlinux 0x0c88c1c3 pci_vpd_find_id_string -EXPORT_SYMBOL_GPL vmlinux 0x0c8c2485 devm_regmap_add_irq_chip -EXPORT_SYMBOL_GPL vmlinux 0x0c9fe388 fib_table_lookup -EXPORT_SYMBOL_GPL vmlinux 0x0ca9a7b5 phy_select_page -EXPORT_SYMBOL_GPL vmlinux 0x0cb13975 blk_mark_disk_dead -EXPORT_SYMBOL_GPL vmlinux 0x0cb67b39 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x0ca2722f input_device_enabled +EXPORT_SYMBOL_GPL vmlinux 0x0ca40683 sysfs_remove_file_self +EXPORT_SYMBOL_GPL vmlinux 0x0ca4c7b1 regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x0cb247ad led_classdev_notify_brightness_hw_changed +EXPORT_SYMBOL_GPL vmlinux 0x0cb3854c _proc_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x0cb46ddc cpufreq_dbs_governor_start +EXPORT_SYMBOL_GPL vmlinux 0x0cb5a2c0 gpiochip_populate_parent_fwspec_fourcell +EXPORT_SYMBOL_GPL vmlinux 0x0cb90acd phy_modify +EXPORT_SYMBOL_GPL vmlinux 0x0cbda725 mpc8xxx_spi_probe EXPORT_SYMBOL_GPL vmlinux 0x0cbe3ee2 software_node_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0cc1af53 virtqueue_add_sgs EXPORT_SYMBOL_GPL vmlinux 0x0cc9d36c iommu_group_claim_dma_owner -EXPORT_SYMBOL_GPL vmlinux 0x0cdbfcf7 tpm1_getcap -EXPORT_SYMBOL_GPL vmlinux 0x0cfd5fb9 dst_cache_set_ip6 -EXPORT_SYMBOL_GPL vmlinux 0x0d02619f vp_modern_config_vector -EXPORT_SYMBOL_GPL vmlinux 0x0d03066e generic_handle_domain_irq -EXPORT_SYMBOL_GPL vmlinux 0x0d1062da efivars_register -EXPORT_SYMBOL_GPL vmlinux 0x0d149eaa scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x0cd5cd25 gpiochip_request_own_desc +EXPORT_SYMBOL_GPL vmlinux 0x0cdbd803 of_map_id +EXPORT_SYMBOL_GPL vmlinux 0x0d09c46a devlink_traps_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0d0b090e phy_modify_mmd +EXPORT_SYMBOL_GPL vmlinux 0x0d13a864 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0x0d1d7d8a __traceiter_devlink_hwerr EXPORT_SYMBOL_GPL vmlinux 0x0d2511c2 inet_pernet_hashinfo_free -EXPORT_SYMBOL_GPL vmlinux 0x0d2ef4fb usb_amd_pt_check_port -EXPORT_SYMBOL_GPL vmlinux 0x0d3180f8 inet_twsk_hashdance -EXPORT_SYMBOL_GPL vmlinux 0x0d39c136 mmu_interval_notifier_insert_locked +EXPORT_SYMBOL_GPL vmlinux 0x0d296683 devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x0d398a6d fib6_new_table EXPORT_SYMBOL_GPL vmlinux 0x0d3fb7d4 phy_interface_num_ports EXPORT_SYMBOL_GPL vmlinux 0x0d435bd5 __tracepoint_udp_fail_queue_rcv_skb -EXPORT_SYMBOL_GPL vmlinux 0x0d44099f gpiod_set_raw_value EXPORT_SYMBOL_GPL vmlinux 0x0d459213 work_on_cpu_safe EXPORT_SYMBOL_GPL vmlinux 0x0d4961de nf_log_buf_open -EXPORT_SYMBOL_GPL vmlinux 0x0d4c0286 blk_rq_unprep_clone -EXPORT_SYMBOL_GPL vmlinux 0x0d4f199a of_pci_get_slot_power_limit -EXPORT_SYMBOL_GPL vmlinux 0x0d533ffb class_create +EXPORT_SYMBOL_GPL vmlinux 0x0d5473ba phy_set_speed +EXPORT_SYMBOL_GPL vmlinux 0x0d57eec5 debugfs_create_blob EXPORT_SYMBOL_GPL vmlinux 0x0d5cecc6 ima_measure_critical_data EXPORT_SYMBOL_GPL vmlinux 0x0d6a49d4 tcp_memory_per_cpu_fw_alloc -EXPORT_SYMBOL_GPL vmlinux 0x0d887cd4 trace_event_buffer_commit -EXPORT_SYMBOL_GPL vmlinux 0x0d8f509d devfreq_event_get_edev_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x0d7e2eba dm_bio_from_per_bio_data +EXPORT_SYMBOL_GPL vmlinux 0x0d939e30 bpf_trace_run1 +EXPORT_SYMBOL_GPL vmlinux 0x0da2d26a ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x0db60b99 clk_hw_init_rate_request +EXPORT_SYMBOL_GPL vmlinux 0x0dbc500a sk_msg_is_readable +EXPORT_SYMBOL_GPL vmlinux 0x0dcb6c3e __rio_local_write_config_16 EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order -EXPORT_SYMBOL_GPL vmlinux 0x0dec95c5 debugfs_create_size_t -EXPORT_SYMBOL_GPL vmlinux 0x0df58bc4 irq_domain_set_hwirq_and_chip -EXPORT_SYMBOL_GPL vmlinux 0x0e06dd36 device_rename -EXPORT_SYMBOL_GPL vmlinux 0x0e0b454f dev_pm_opp_put_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x0de51a9d ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x0df4942b wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x0dff5d66 device_create +EXPORT_SYMBOL_GPL vmlinux 0x0e02012b devlink_trap_groups_register EXPORT_SYMBOL_GPL vmlinux 0x0e0c6a7d crypto_dh_encode_key -EXPORT_SYMBOL_GPL vmlinux 0x0e127594 blk_crypto_register -EXPORT_SYMBOL_GPL vmlinux 0x0e132f64 i2c_get_device_id -EXPORT_SYMBOL_GPL vmlinux 0x0e14a465 inet_send_prepare -EXPORT_SYMBOL_GPL vmlinux 0x0e19654a mmu_notifier_get_locked -EXPORT_SYMBOL_GPL vmlinux 0x0e1af36b tcp_plb_update_state -EXPORT_SYMBOL_GPL vmlinux 0x0e285154 spi_controller_dma_unmap_mem_op_data -EXPORT_SYMBOL_GPL vmlinux 0x0e28a205 nfs42_ssc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0e2865a1 rz_mtu3_shared_reg_write EXPORT_SYMBOL_GPL vmlinux 0x0e350af0 srcu_batches_completed -EXPORT_SYMBOL_GPL vmlinux 0x0e49abc9 battery_hook_unregister -EXPORT_SYMBOL_GPL vmlinux 0x0e515ec5 nexthop_select_path +EXPORT_SYMBOL_GPL vmlinux 0x0e4be05b pci_iomap_wc_range +EXPORT_SYMBOL_GPL vmlinux 0x0e4cc543 plda_pcie_host_init +EXPORT_SYMBOL_GPL vmlinux 0x0e516691 bpf_prog_get_type_dev +EXPORT_SYMBOL_GPL vmlinux 0x0e537ac2 cpufreq_unregister_governor EXPORT_SYMBOL_GPL vmlinux 0x0e59a563 alarm_start_relative -EXPORT_SYMBOL_GPL vmlinux 0x0e59a824 devm_hwspin_lock_register +EXPORT_SYMBOL_GPL vmlinux 0x0e5c3671 sysfs_add_link_to_group EXPORT_SYMBOL_GPL vmlinux 0x0e5cc9d7 xdp_unreg_mem_model -EXPORT_SYMBOL_GPL vmlinux 0x0e5fc4bb crypto_mod_put -EXPORT_SYMBOL_GPL vmlinux 0x0e63f7cf nvmem_del_cell_table EXPORT_SYMBOL_GPL vmlinux 0x0e6b79af static_key_disable_cpuslocked -EXPORT_SYMBOL_GPL vmlinux 0x0e7c17d0 pci_add_dynid -EXPORT_SYMBOL_GPL vmlinux 0x0e7f09b7 __rt_mutex_init -EXPORT_SYMBOL_GPL vmlinux 0x0e8507ed gpiod_set_debounce -EXPORT_SYMBOL_GPL vmlinux 0x0e873e99 rio_unmap_outb_region -EXPORT_SYMBOL_GPL vmlinux 0x0e8ab620 ata_cable_ignore -EXPORT_SYMBOL_GPL vmlinux 0x0e90945f put_pid_ns -EXPORT_SYMBOL_GPL vmlinux 0x0e99da73 sysfs_unbreak_active_protection -EXPORT_SYMBOL_GPL vmlinux 0x0ea25538 regmap_get_raw_write_max -EXPORT_SYMBOL_GPL vmlinux 0x0eb35a65 irq_domain_associate_many -EXPORT_SYMBOL_GPL vmlinux 0x0eb48bc2 xhci_init_driver -EXPORT_SYMBOL_GPL vmlinux 0x0eb79c65 fwnode_count_parents -EXPORT_SYMBOL_GPL vmlinux 0x0eb86f70 dev_xdp_prog_count -EXPORT_SYMBOL_GPL vmlinux 0x0ebe5da8 dw_pcie_ep_init +EXPORT_SYMBOL_GPL vmlinux 0x0e8a20f9 rio_del_device +EXPORT_SYMBOL_GPL vmlinux 0x0e99d7c5 devm_rtc_allocate_device +EXPORT_SYMBOL_GPL vmlinux 0x0e9eb25e dma_resv_get_fences +EXPORT_SYMBOL_GPL vmlinux 0x0ea535a7 rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x0ea620d2 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x0eadcd58 __serdev_device_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x0eb54b9a perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x0ec08002 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x0ec3480b irq_find_matching_fwspec +EXPORT_SYMBOL_GPL vmlinux 0x0eccbd8f blk_crypto_profile_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0ecf072e crypto_alloc_skcipher EXPORT_SYMBOL_GPL vmlinux 0x0ecfea88 btf_type_by_id -EXPORT_SYMBOL_GPL vmlinux 0x0ed927ea clkdev_hw_create -EXPORT_SYMBOL_GPL vmlinux 0x0edaf858 __fscrypt_inode_uses_inline_crypto -EXPORT_SYMBOL_GPL vmlinux 0x0edf6dd6 fsverity_ioctl_read_metadata -EXPORT_SYMBOL_GPL vmlinux 0x0eead22f pm_runtime_force_resume -EXPORT_SYMBOL_GPL vmlinux 0x0eebab6b bdev_disk_changed -EXPORT_SYMBOL_GPL vmlinux 0x0ef41c4b pinctrl_unregister -EXPORT_SYMBOL_GPL vmlinux 0x0f03a0b9 tty_save_termios -EXPORT_SYMBOL_GPL vmlinux 0x0f10dedf acpi_dev_pm_attach +EXPORT_SYMBOL_GPL vmlinux 0x0ed2c22b i2c_client_type +EXPORT_SYMBOL_GPL vmlinux 0x0ed519e2 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x0ed7728e akcipher_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x0ed86be1 pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0x0efdecde screen_pos +EXPORT_SYMBOL_GPL vmlinux 0x0f039589 watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0x0f0dda3d bpf_trace_run9 +EXPORT_SYMBOL_GPL vmlinux 0x0f17c9ff fsstack_copy_attr_all EXPORT_SYMBOL_GPL vmlinux 0x0f180070 ring_buffer_free_read_page -EXPORT_SYMBOL_GPL vmlinux 0x0f23e3a6 skcipher_walk_complete -EXPORT_SYMBOL_GPL vmlinux 0x0f276c2e nl_table -EXPORT_SYMBOL_GPL vmlinux 0x0f440825 tcp_plb_check_rehash +EXPORT_SYMBOL_GPL vmlinux 0x0f4d4ad8 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x0f50af35 virtqueue_get_desc_addr +EXPORT_SYMBOL_GPL vmlinux 0x0f53f8d2 of_pci_range_parser_one EXPORT_SYMBOL_GPL vmlinux 0x0f63ce94 trace_print_bitmask_seq -EXPORT_SYMBOL_GPL vmlinux 0x0f690a8a mctrl_gpio_init -EXPORT_SYMBOL_GPL vmlinux 0x0f711623 acpi_device_update_power -EXPORT_SYMBOL_GPL vmlinux 0x0f909575 bpf_prog_destroy -EXPORT_SYMBOL_GPL vmlinux 0x0f922c9d xfrm_audit_policy_delete -EXPORT_SYMBOL_GPL vmlinux 0x0fa3b38b genphy_c45_pma_read_abilities -EXPORT_SYMBOL_GPL vmlinux 0x0fa8cc87 spi_controller_resume -EXPORT_SYMBOL_GPL vmlinux 0x0fabef47 da903x_register_notifier -EXPORT_SYMBOL_GPL vmlinux 0x0fb2d13c ata_host_alloc_pinfo -EXPORT_SYMBOL_GPL vmlinux 0x0fbe7887 ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0f6a0fe4 gpiod_get_array +EXPORT_SYMBOL_GPL vmlinux 0x0f78f609 devlink_sb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0f92ad9f fsnotify_init_mark +EXPORT_SYMBOL_GPL vmlinux 0x0f9466cf aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0f9b9e10 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x0f9ccd12 dst_cache_get_ip4 +EXPORT_SYMBOL_GPL vmlinux 0x0fa0493d fwnode_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x0fa6f152 phy_resolve_aneg_linkmode +EXPORT_SYMBOL_GPL vmlinux 0x0fcecc9d sk_psock_init +EXPORT_SYMBOL_GPL vmlinux 0x0fcfe55b dev_pm_qos_flags EXPORT_SYMBOL_GPL vmlinux 0x0fd4610e kmem_dump_obj -EXPORT_SYMBOL_GPL vmlinux 0x0ffb9ba7 devm_regmap_add_irq_chip_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x0fd641e1 dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x0fe9f286 percpu_up_write +EXPORT_SYMBOL_GPL vmlinux 0x0ff69e86 rz_mtu3_8bit_ch_write +EXPORT_SYMBOL_GPL vmlinux 0x0ffb21a0 dw_pcie_own_conf_map_bus EXPORT_SYMBOL_GPL vmlinux 0x1000ff31 irq_force_affinity +EXPORT_SYMBOL_GPL vmlinux 0x1009616a __crypto_alloc_tfmgfp EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x1017910f inverse_translate EXPORT_SYMBOL_GPL vmlinux 0x10185973 __tracepoint_pelt_irq_tp -EXPORT_SYMBOL_GPL vmlinux 0x10368694 irq_domain_translate_onecell -EXPORT_SYMBOL_GPL vmlinux 0x103fbf9b gpiod_get_array_value -EXPORT_SYMBOL_GPL vmlinux 0x1041415e devm_usb_put_phy -EXPORT_SYMBOL_GPL vmlinux 0x1047874c kernfs_path_from_node +EXPORT_SYMBOL_GPL vmlinux 0x101a7763 devlink_linecard_nested_dl_set +EXPORT_SYMBOL_GPL vmlinux 0x101b090d spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x1023fd12 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x1032a454 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x1035c2d0 ata_host_put EXPORT_SYMBOL_GPL vmlinux 0x104b2b7d vcap_rule_get_key_u32 -EXPORT_SYMBOL_GPL vmlinux 0x105ea418 extcon_get_edev_by_phandle -EXPORT_SYMBOL_GPL vmlinux 0x107bc67d i2c_new_scanned_device -EXPORT_SYMBOL_GPL vmlinux 0x107c3669 stmpe_set_bits -EXPORT_SYMBOL_GPL vmlinux 0x108574e9 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x105d36ba of_genpd_add_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x106072bd scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x1062f60a vp_modern_generation EXPORT_SYMBOL_GPL vmlinux 0x108a0acd bstr_printf -EXPORT_SYMBOL_GPL vmlinux 0x1095be86 __inet_inherit_port -EXPORT_SYMBOL_GPL vmlinux 0x109eafbf clk_fixed_factor_ops -EXPORT_SYMBOL_GPL vmlinux 0x10a1b782 sysfs_add_link_to_group -EXPORT_SYMBOL_GPL vmlinux 0x10ad4b6e __traceiter_neigh_update -EXPORT_SYMBOL_GPL vmlinux 0x10b29f10 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0x108dca41 edac_pci_add_device +EXPORT_SYMBOL_GPL vmlinux 0x10912d81 acpi_dev_get_resources +EXPORT_SYMBOL_GPL vmlinux 0x10a2be1b trace_output_call +EXPORT_SYMBOL_GPL vmlinux 0x10ad90e8 tty_get_icount EXPORT_SYMBOL_GPL vmlinux 0x10b89330 crypto_has_shash -EXPORT_SYMBOL_GPL vmlinux 0x10bb2311 usb_phy_set_charger_state -EXPORT_SYMBOL_GPL vmlinux 0x10d091f3 dev_coredumpsg -EXPORT_SYMBOL_GPL vmlinux 0x10d4e8e6 clk_hw_forward_rate_request -EXPORT_SYMBOL_GPL vmlinux 0x10d6302f pinmux_generic_get_function_name +EXPORT_SYMBOL_GPL vmlinux 0x10bcdfc5 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x10cae661 phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0x10cd3c40 vcap_del_rules +EXPORT_SYMBOL_GPL vmlinux 0x10d1692d iommu_group_get EXPORT_SYMBOL_GPL vmlinux 0x10d9f317 stack_depot_init -EXPORT_SYMBOL_GPL vmlinux 0x10dc6950 trace_array_init_printk -EXPORT_SYMBOL_GPL vmlinux 0x10e8d800 virtio_check_mem_acc_cb +EXPORT_SYMBOL_GPL vmlinux 0x10e952b1 genphy_c45_read_lpa EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable -EXPORT_SYMBOL_GPL vmlinux 0x10fdb5bf virtqueue_is_broken +EXPORT_SYMBOL_GPL vmlinux 0x10edf9ff efivars_unregister +EXPORT_SYMBOL_GPL vmlinux 0x10f8de48 crypto_akcipher_sync_post +EXPORT_SYMBOL_GPL vmlinux 0x1100e250 devm_of_platform_depopulate EXPORT_SYMBOL_GPL vmlinux 0x1101fb8d __wait_rcu_gp -EXPORT_SYMBOL_GPL vmlinux 0x110fb173 regulator_get_linear_step -EXPORT_SYMBOL_GPL vmlinux 0x112a19f9 blk_queue_flag_test_and_set -EXPORT_SYMBOL_GPL vmlinux 0x113a6b58 sdio_writeb_readb -EXPORT_SYMBOL_GPL vmlinux 0x113b1d2e i2c_client_get_device_id -EXPORT_SYMBOL_GPL vmlinux 0x11409b21 regulator_enable_regmap -EXPORT_SYMBOL_GPL vmlinux 0x11480c69 tps6586x_clr_bits -EXPORT_SYMBOL_GPL vmlinux 0x115e1afc usb_get_hcd -EXPORT_SYMBOL_GPL vmlinux 0x1188c7de find_vpid -EXPORT_SYMBOL_GPL vmlinux 0x118c96e9 pm_runtime_allow -EXPORT_SYMBOL_GPL vmlinux 0x1190b06a cpuidle_unregister -EXPORT_SYMBOL_GPL vmlinux 0x1198f50d serdev_device_add -EXPORT_SYMBOL_GPL vmlinux 0x119e5b41 thermal_zone_bind_cooling_device -EXPORT_SYMBOL_GPL vmlinux 0x11b060ea trace_event_reg -EXPORT_SYMBOL_GPL vmlinux 0x11b56c58 pci_msi_unmask_irq +EXPORT_SYMBOL_GPL vmlinux 0x1107f0db device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0x11118af4 pinctrl_utils_add_config +EXPORT_SYMBOL_GPL vmlinux 0x1123b0ea rcu_read_unlock_trace_special +EXPORT_SYMBOL_GPL vmlinux 0x11262ec9 __traceiter_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x1143da5e crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x114c099a serdev_controller_remove +EXPORT_SYMBOL_GPL vmlinux 0x114edc34 led_sysfs_enable +EXPORT_SYMBOL_GPL vmlinux 0x1150dc02 of_platform_default_populate +EXPORT_SYMBOL_GPL vmlinux 0x115fe825 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x1161ac4a of_property_read_variable_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x1165d2e6 phy_set_media +EXPORT_SYMBOL_GPL vmlinux 0x116805e7 rz_mtu3_32bit_ch_read +EXPORT_SYMBOL_GPL vmlinux 0x1176f1ef platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x119828c8 relay_reset EXPORT_SYMBOL_GPL vmlinux 0x11b68a56 __tracepoint_pelt_thermal_tp -EXPORT_SYMBOL_GPL vmlinux 0x11bbd484 of_genpd_add_provider_onecell -EXPORT_SYMBOL_GPL vmlinux 0x11c306bf sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x11ba5ec4 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x11bfb0bd fwnode_graph_get_next_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x11c03f68 of_i2c_get_board_info +EXPORT_SYMBOL_GPL vmlinux 0x11c07ad3 phy_save_page +EXPORT_SYMBOL_GPL vmlinux 0x11c3c465 icc_std_aggregate +EXPORT_SYMBOL_GPL vmlinux 0x11d71225 ptp_parse_header EXPORT_SYMBOL_GPL vmlinux 0x11df0e75 devlink_fmsg_binary_pair_nest_start EXPORT_SYMBOL_GPL vmlinux 0x11f21ddd riscv_pmu_get_hpm_info -EXPORT_SYMBOL_GPL vmlinux 0x11f6fe63 devl_health_reporter_create -EXPORT_SYMBOL_GPL vmlinux 0x1211ccca __blkg_prfill_rwstat -EXPORT_SYMBOL_GPL vmlinux 0x12142381 debugfs_create_atomic_t -EXPORT_SYMBOL_GPL vmlinux 0x121c71d1 power_supply_get_battery_info +EXPORT_SYMBOL_GPL vmlinux 0x11fca728 irq_domain_update_bus_token +EXPORT_SYMBOL_GPL vmlinux 0x120ae3be devm_i2c_add_adapter EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier -EXPORT_SYMBOL_GPL vmlinux 0x122eff4f pci_status_get_and_clear_errors -EXPORT_SYMBOL_GPL vmlinux 0x1231c8e9 of_genpd_remove_subdomain -EXPORT_SYMBOL_GPL vmlinux 0x1233d2a7 wbt_enable_default EXPORT_SYMBOL_GPL vmlinux 0x1234e483 get_cpu_iowait_time_us -EXPORT_SYMBOL_GPL vmlinux 0x124f64ba tcp_unregister_ulp -EXPORT_SYMBOL_GPL vmlinux 0x1251a605 phy_validate -EXPORT_SYMBOL_GPL vmlinux 0x125b25eb tpm_chip_alloc -EXPORT_SYMBOL_GPL vmlinux 0x12640208 rio_request_inb_pwrite -EXPORT_SYMBOL_GPL vmlinux 0x127c5683 relay_close -EXPORT_SYMBOL_GPL vmlinux 0x12951fba devlink_dpipe_entry_ctx_append -EXPORT_SYMBOL_GPL vmlinux 0x129a1677 ehci_init_driver -EXPORT_SYMBOL_GPL vmlinux 0x12a7282a rz_mtu3_32bit_ch_write -EXPORT_SYMBOL_GPL vmlinux 0x12aa467e dev_pm_domain_set -EXPORT_SYMBOL_GPL vmlinux 0x12b994e1 pci_epc_raise_irq -EXPORT_SYMBOL_GPL vmlinux 0x12c18f5c pci_acpi_set_companion_lookup_hook -EXPORT_SYMBOL_GPL vmlinux 0x12d8211c nvmem_cell_read_u8 -EXPORT_SYMBOL_GPL vmlinux 0x12e5fcdc md_stop +EXPORT_SYMBOL_GPL vmlinux 0x12391d95 clk_hw_get_rate +EXPORT_SYMBOL_GPL vmlinux 0x12394da0 usb_acpi_power_manageable +EXPORT_SYMBOL_GPL vmlinux 0x123952e8 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x124ce355 devl_params_register +EXPORT_SYMBOL_GPL vmlinux 0x1273f08e icc_provider_register +EXPORT_SYMBOL_GPL vmlinux 0x12bb02bd cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0x12bd2eac sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x12c7979b uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0x12cc0cbc ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x12d9c8ca pinmux_generic_get_function +EXPORT_SYMBOL_GPL vmlinux 0x12dddffb nvdimm_bus_add_badrange +EXPORT_SYMBOL_GPL vmlinux 0x12e03c8b devm_phy_put +EXPORT_SYMBOL_GPL vmlinux 0x12e788f1 component_release_of +EXPORT_SYMBOL_GPL vmlinux 0x1303075d crypto_unregister_shashes EXPORT_SYMBOL_GPL vmlinux 0x13090724 add_vmfork_randomness -EXPORT_SYMBOL_GPL vmlinux 0x130d174a vp_modern_set_queue_size EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131c2293 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x131dab2c rtc_read_alarm EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq -EXPORT_SYMBOL_GPL vmlinux 0x132bcd89 pinctrl_find_gpio_range_from_pin +EXPORT_SYMBOL_GPL vmlinux 0x132e77ba ip6_sk_redirect EXPORT_SYMBOL_GPL vmlinux 0x133969d7 __trace_printk -EXPORT_SYMBOL_GPL vmlinux 0x13432c90 blk_steal_bios -EXPORT_SYMBOL_GPL vmlinux 0x134eaeab usb_phy_roothub_suspend +EXPORT_SYMBOL_GPL vmlinux 0x13514ec7 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x13528989 proc_create_net_data_write EXPORT_SYMBOL_GPL vmlinux 0x135e366e irq_set_affinity EXPORT_SYMBOL_GPL vmlinux 0x136209db power_supply_reg_notifier EXPORT_SYMBOL_GPL vmlinux 0x13640660 get_cached_msi_msg -EXPORT_SYMBOL_GPL vmlinux 0x13730da4 bgpio_init -EXPORT_SYMBOL_GPL vmlinux 0x1388e78e usb_set_device_state -EXPORT_SYMBOL_GPL vmlinux 0x138a4c6d do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x136a4d5c pin_get_name EXPORT_SYMBOL_GPL vmlinux 0x138e0957 dax_write_cache_enabled -EXPORT_SYMBOL_GPL vmlinux 0x139e3e7f of_dma_request_slave_channel -EXPORT_SYMBOL_GPL vmlinux 0x13b625c0 pinmux_generic_add_function +EXPORT_SYMBOL_GPL vmlinux 0x13a70d5f dev_pm_genpd_resume +EXPORT_SYMBOL_GPL vmlinux 0x13a7a5fe tpm_chip_start +EXPORT_SYMBOL_GPL vmlinux 0x13ab0214 regmap_fields_update_bits_base EXPORT_SYMBOL_GPL vmlinux 0x13b9e193 acpi_dev_resource_interrupt -EXPORT_SYMBOL_GPL vmlinux 0x13bb1805 fuse_file_poll -EXPORT_SYMBOL_GPL vmlinux 0x13bb50a8 sysfs_remove_file_self -EXPORT_SYMBOL_GPL vmlinux 0x13bc9d70 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x13ca301a ipv6_icmp_error EXPORT_SYMBOL_GPL vmlinux 0x13ce87e8 asn1_ber_decoder -EXPORT_SYMBOL_GPL vmlinux 0x13d0e8ef rio_unregister_driver -EXPORT_SYMBOL_GPL vmlinux 0x13d791f3 ip6_dst_lookup -EXPORT_SYMBOL_GPL vmlinux 0x13df0309 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x13d33041 serial8250_set_defaults +EXPORT_SYMBOL_GPL vmlinux 0x13ddc683 unix_peer_get EXPORT_SYMBOL_GPL vmlinux 0x13ed8784 sdev_evt_alloc -EXPORT_SYMBOL_GPL vmlinux 0x13f3014c cpufreq_driver_target -EXPORT_SYMBOL_GPL vmlinux 0x13fa1572 kstrdup_quotable_file +EXPORT_SYMBOL_GPL vmlinux 0x13f63101 of_pci_get_devfn EXPORT_SYMBOL_GPL vmlinux 0x13fab921 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x13fc10ac pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x13fcb5fc regulator_set_voltage_rdev +EXPORT_SYMBOL_GPL vmlinux 0x14024e1e serial8250_rpm_put EXPORT_SYMBOL_GPL vmlinux 0x1403ad09 cpufreq_add_update_util_hook -EXPORT_SYMBOL_GPL vmlinux 0x1415b306 acpi_dev_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x140d4073 br_ip6_fragment +EXPORT_SYMBOL_GPL vmlinux 0x140f60ef sk_msg_return_zero +EXPORT_SYMBOL_GPL vmlinux 0x141d88ff nvdimm_clear_poison EXPORT_SYMBOL_GPL vmlinux 0x141f38bf ktime_get_raw_fast_ns -EXPORT_SYMBOL_GPL vmlinux 0x14272b6e regmap_reinit_cache -EXPORT_SYMBOL_GPL vmlinux 0x14339933 devm_thermal_of_cooling_device_register -EXPORT_SYMBOL_GPL vmlinux 0x1435f886 cpufreq_policy_transition_delay_us -EXPORT_SYMBOL_GPL vmlinux 0x143caeda platform_bus_type -EXPORT_SYMBOL_GPL vmlinux 0x14543035 sdio_retune_crc_enable -EXPORT_SYMBOL_GPL vmlinux 0x145d526b devlink_port_type_clear +EXPORT_SYMBOL_GPL vmlinux 0x1439a6e8 em_dev_register_perf_domain +EXPORT_SYMBOL_GPL vmlinux 0x1441e1bb iomap_invalidate_folio +EXPORT_SYMBOL_GPL vmlinux 0x144cb8d6 __blk_req_zone_write_lock +EXPORT_SYMBOL_GPL vmlinux 0x1454b248 xhci_shutdown EXPORT_SYMBOL_GPL vmlinux 0x145e8951 sbitmap_queue_get_shallow -EXPORT_SYMBOL_GPL vmlinux 0x1461a7c2 crypto_shash_final -EXPORT_SYMBOL_GPL vmlinux 0x14675db9 compat_only_sysfs_link_entry_to_kobj +EXPORT_SYMBOL_GPL vmlinux 0x14638fe5 gpiochip_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x14659faf generic_fh_to_parent EXPORT_SYMBOL_GPL vmlinux 0x146cc88f bpf_master_redirect_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x14714194 devm_bitmap_zalloc +EXPORT_SYMBOL_GPL vmlinux 0x147a040b serdev_device_add +EXPORT_SYMBOL_GPL vmlinux 0x1482b709 user_read EXPORT_SYMBOL_GPL vmlinux 0x14841ae4 unregister_ftrace_function -EXPORT_SYMBOL_GPL vmlinux 0x14918d6f cpufreq_unregister_driver -EXPORT_SYMBOL_GPL vmlinux 0x14b75c22 pci_host_probe -EXPORT_SYMBOL_GPL vmlinux 0x14b939c6 regulator_notifier_call_chain -EXPORT_SYMBOL_GPL vmlinux 0x14bfb131 led_sysfs_enable -EXPORT_SYMBOL_GPL vmlinux 0x14e30b85 sdio_memcpy_fromio -EXPORT_SYMBOL_GPL vmlinux 0x14ebf74e powercap_register_zone -EXPORT_SYMBOL_GPL vmlinux 0x14f41581 ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0x1489851f of_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x14933e62 iomap_writepages +EXPORT_SYMBOL_GPL vmlinux 0x14a05252 bdev_discard_alignment +EXPORT_SYMBOL_GPL vmlinux 0x14acd3da tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x14b56214 pm_clk_add_clk +EXPORT_SYMBOL_GPL vmlinux 0x14bcce80 devlink_register +EXPORT_SYMBOL_GPL vmlinux 0x14c925a5 __reset_control_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x14e21dbf of_css +EXPORT_SYMBOL_GPL vmlinux 0x14e2d2b6 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x14e5aacc blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x14ed1246 devm_of_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x14f1e262 of_clk_src_simple_get EXPORT_SYMBOL_GPL vmlinux 0x14fbcd5e __tracepoint_rpm_return_int -EXPORT_SYMBOL_GPL vmlinux 0x14fcd0bb spi_mem_dirmap_write +EXPORT_SYMBOL_GPL vmlinux 0x14fc4cc5 crypto_alloc_acomp EXPORT_SYMBOL_GPL vmlinux 0x150af8e0 acpi_ec_add_query_handler EXPORT_SYMBOL_GPL vmlinux 0x153b60a6 klist_del EXPORT_SYMBOL_GPL vmlinux 0x15510a89 devlink_fmsg_binary_put -EXPORT_SYMBOL_GPL vmlinux 0x15570c54 thermal_cooling_device_update -EXPORT_SYMBOL_GPL vmlinux 0x155d5fbc __platform_driver_probe -EXPORT_SYMBOL_GPL vmlinux 0x156ac9be ata_std_prereset -EXPORT_SYMBOL_GPL vmlinux 0x156f11af disk_update_readahead -EXPORT_SYMBOL_GPL vmlinux 0x1570ad13 wm8350_set_bits -EXPORT_SYMBOL_GPL vmlinux 0x157e8c45 devm_fwnode_gpiod_get_index -EXPORT_SYMBOL_GPL vmlinux 0x157f3b01 usb_asmedia_modifyflowcontrol -EXPORT_SYMBOL_GPL vmlinux 0x15855c28 __traceiter_block_bio_complete -EXPORT_SYMBOL_GPL vmlinux 0x1589174a devlink_remote_reload_actions_performed -EXPORT_SYMBOL_GPL vmlinux 0x158c7706 devm_gpiod_get_optional -EXPORT_SYMBOL_GPL vmlinux 0x159060c5 fib6_get_table -EXPORT_SYMBOL_GPL vmlinux 0x1593d19f regmap_attach_dev -EXPORT_SYMBOL_GPL vmlinux 0x1596c4a3 of_clk_add_provider -EXPORT_SYMBOL_GPL vmlinux 0x15a260e0 __sock_recv_timestamp -EXPORT_SYMBOL_GPL vmlinux 0x15ac7624 serdev_device_get_tiocm +EXPORT_SYMBOL_GPL vmlinux 0x15511bf7 fib6_rule_default +EXPORT_SYMBOL_GPL vmlinux 0x1554c295 tty_kopen_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x1559ed39 clkdev_hw_create +EXPORT_SYMBOL_GPL vmlinux 0x15747f1c usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x157dc9b2 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x157f9d7f sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x1584e168 device_for_each_child_reverse EXPORT_SYMBOL_GPL vmlinux 0x15ade1cc filter_irq_stacks +EXPORT_SYMBOL_GPL vmlinux 0x15aefe36 __bio_add_page EXPORT_SYMBOL_GPL vmlinux 0x15bd7435 psi_memstall_leave -EXPORT_SYMBOL_GPL vmlinux 0x15c2c2c2 sk_msg_recvmsg -EXPORT_SYMBOL_GPL vmlinux 0x15d07531 bio_start_io_acct -EXPORT_SYMBOL_GPL vmlinux 0x15dc0670 of_mm_gpiochip_add_data -EXPORT_SYMBOL_GPL vmlinux 0x15f30d72 pci_epc_mem_free_addr -EXPORT_SYMBOL_GPL vmlinux 0x1617bb73 gen10g_config_aneg -EXPORT_SYMBOL_GPL vmlinux 0x161eb7de phy_led_triggers_register -EXPORT_SYMBOL_GPL vmlinux 0x162f22c0 acpi_gpiochip_free_interrupts -EXPORT_SYMBOL_GPL vmlinux 0x163c65c5 device_create +EXPORT_SYMBOL_GPL vmlinux 0x15da4813 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x15e3bba5 tcp_ca_openreq_child +EXPORT_SYMBOL_GPL vmlinux 0x15e59905 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x15f7c28d do_xdp_generic +EXPORT_SYMBOL_GPL vmlinux 0x16039996 bpf_prog_put +EXPORT_SYMBOL_GPL vmlinux 0x1607d699 fwnode_property_present +EXPORT_SYMBOL_GPL vmlinux 0x16169b34 nvmem_cell_read_u16 +EXPORT_SYMBOL_GPL vmlinux 0x1625f818 devm_power_supply_register_no_ws +EXPORT_SYMBOL_GPL vmlinux 0x1632156d spi_controller_resume EXPORT_SYMBOL_GPL vmlinux 0x16422a6e xdp_reg_mem_model -EXPORT_SYMBOL_GPL vmlinux 0x1644ac44 usb_autopm_put_interface_no_suspend -EXPORT_SYMBOL_GPL vmlinux 0x164973d0 vcap_tc_flower_handler_tcp_usage -EXPORT_SYMBOL_GPL vmlinux 0x164ac240 class_destroy -EXPORT_SYMBOL_GPL vmlinux 0x164d0e12 devm_of_phy_provider_unregister EXPORT_SYMBOL_GPL vmlinux 0x16516798 osc_pc_lpi_support_confirmed -EXPORT_SYMBOL_GPL vmlinux 0x1653b41e usb_control_msg -EXPORT_SYMBOL_GPL vmlinux 0x1653d853 thermal_zone_get_offset -EXPORT_SYMBOL_GPL vmlinux 0x165b4308 vcap_del_rules -EXPORT_SYMBOL_GPL vmlinux 0x165f6a2a ptp_classify_raw -EXPORT_SYMBOL_GPL vmlinux 0x16680e86 of_reserved_mem_device_release -EXPORT_SYMBOL_GPL vmlinux 0x166a02f4 genphy_c45_pma_setup_forced -EXPORT_SYMBOL_GPL vmlinux 0x166b50b3 l3mdev_master_upper_ifindex_by_index_rcu +EXPORT_SYMBOL_GPL vmlinux 0x16633424 to_nvdimm +EXPORT_SYMBOL_GPL vmlinux 0x16670ec6 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0x166d0d5b ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x166d5f35 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x1676b84f led_classdev_resume EXPORT_SYMBOL_GPL vmlinux 0x167d7113 acpi_bus_register_early_device EXPORT_SYMBOL_GPL vmlinux 0x1687ec20 tty_get_frame_size -EXPORT_SYMBOL_GPL vmlinux 0x168d28c0 devm_regulator_put EXPORT_SYMBOL_GPL vmlinux 0x1690b503 usb_role_switch_get_drvdata -EXPORT_SYMBOL_GPL vmlinux 0x16ae4829 acpi_dev_gpio_irq_wake_get_by -EXPORT_SYMBOL_GPL vmlinux 0x16afe91d sbitmap_queue_show -EXPORT_SYMBOL_GPL vmlinux 0x16babf63 disk_force_media_change -EXPORT_SYMBOL_GPL vmlinux 0x16bf0551 xfrm_audit_state_notfound -EXPORT_SYMBOL_GPL vmlinux 0x16bfa6cb iommu_unregister_device_fault_handler -EXPORT_SYMBOL_GPL vmlinux 0x16c4be62 ehci_handshake -EXPORT_SYMBOL_GPL vmlinux 0x16ca9e89 nfs_ssc_client_tbl +EXPORT_SYMBOL_GPL vmlinux 0x169ac375 i2c_slave_unregister +EXPORT_SYMBOL_GPL vmlinux 0x16a3b0e6 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x16a9018e usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x16ae03b5 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x16aeb3d2 phy_driver_is_genphy +EXPORT_SYMBOL_GPL vmlinux 0x16b1f841 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x16bcabba tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x16c1b647 fb_deferred_io_mmap +EXPORT_SYMBOL_GPL vmlinux 0x16c8b84f devm_devfreq_event_remove_edev EXPORT_SYMBOL_GPL vmlinux 0x16da1f88 devlink_fmsg_u32_put +EXPORT_SYMBOL_GPL vmlinux 0x16dabc3e sdev_evt_send_simple EXPORT_SYMBOL_GPL vmlinux 0x16dfbf36 add_interrupt_randomness -EXPORT_SYMBOL_GPL vmlinux 0x16e13a97 __nvmem_layout_register -EXPORT_SYMBOL_GPL vmlinux 0x16e6aae8 gpiod_get_array -EXPORT_SYMBOL_GPL vmlinux 0x16fcdc27 proc_get_parent_data -EXPORT_SYMBOL_GPL vmlinux 0x16fd5261 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x16fd7358 spi_mem_poll_status +EXPORT_SYMBOL_GPL vmlinux 0x1706064e input_ff_destroy EXPORT_SYMBOL_GPL vmlinux 0x170cc36c put_timespec64 -EXPORT_SYMBOL_GPL vmlinux 0x170cf353 rio_mport_get_feature -EXPORT_SYMBOL_GPL vmlinux 0x172195ca of_get_pci_domain_nr -EXPORT_SYMBOL_GPL vmlinux 0x17255151 virtqueue_get_buf_ctx -EXPORT_SYMBOL_GPL vmlinux 0x1726791d fuse_dev_operations -EXPORT_SYMBOL_GPL vmlinux 0x172aea58 vfs_lock_file -EXPORT_SYMBOL_GPL vmlinux 0x172c98cd skcipher_walk_virt -EXPORT_SYMBOL_GPL vmlinux 0x1736b19a pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x171f1f77 vchan_tx_submit +EXPORT_SYMBOL_GPL vmlinux 0x1720bf72 ip_route_output_tunnel +EXPORT_SYMBOL_GPL vmlinux 0x17267f23 vp_modern_get_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x1730b6a0 dev_pm_opp_get_max_volt_latency +EXPORT_SYMBOL_GPL vmlinux 0x17325b81 tcp_bpf_update_proto EXPORT_SYMBOL_GPL vmlinux 0x174c6274 ring_buffer_time_stamp -EXPORT_SYMBOL_GPL vmlinux 0x1759ad35 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x175b90d5 __io_uring_cmd_do_in_task EXPORT_SYMBOL_GPL vmlinux 0x176031a7 devlink_fmsg_string_put -EXPORT_SYMBOL_GPL vmlinux 0x176154b6 ata_sff_tf_load -EXPORT_SYMBOL_GPL vmlinux 0x1769bc88 task_active_pid_ns -EXPORT_SYMBOL_GPL vmlinux 0x177707e7 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x176458db devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x17653943 of_pse_control_get +EXPORT_SYMBOL_GPL vmlinux 0x1774edd2 fscrypt_ioctl_get_nonce EXPORT_SYMBOL_GPL vmlinux 0x177b1042 __tracepoint_arm_event EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version -EXPORT_SYMBOL_GPL vmlinux 0x178d28bb sk_msg_memcopy_from_iter -EXPORT_SYMBOL_GPL vmlinux 0x17a602b4 gpiochip_irq_unmap -EXPORT_SYMBOL_GPL vmlinux 0x17aea8d0 dm_set_target_max_io_len -EXPORT_SYMBOL_GPL vmlinux 0x17b2ef19 fwnode_property_get_reference_args +EXPORT_SYMBOL_GPL vmlinux 0x177cb311 pinctrl_dev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x17897865 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x178ad710 pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x178ba8ca locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x17900948 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x17a3ac6d fwnode_graph_get_endpoint_count +EXPORT_SYMBOL_GPL vmlinux 0x17ab601b ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x17ae9503 dma_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x17b40466 netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0x17bba430 acpi_debugfs_dir EXPORT_SYMBOL_GPL vmlinux 0x17bc6189 plda_pcie_setup_window -EXPORT_SYMBOL_GPL vmlinux 0x17bebca3 proc_create_net_single -EXPORT_SYMBOL_GPL vmlinux 0x17cbce88 devm_devfreq_event_add_edev -EXPORT_SYMBOL_GPL vmlinux 0x17cd5b82 gpiochip_generic_free -EXPORT_SYMBOL_GPL vmlinux 0x17d58ec6 devlink_resource_occ_get_register -EXPORT_SYMBOL_GPL vmlinux 0x17e196da of_pci_parse_bus_range +EXPORT_SYMBOL_GPL vmlinux 0x17d57e2b mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x17e3d9b5 power_supply_put +EXPORT_SYMBOL_GPL vmlinux 0x17ebd298 __traceiter_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x17f7ce50 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x17f8200a plda_pcie_setup_iomems +EXPORT_SYMBOL_GPL vmlinux 0x17fa5e37 acomp_request_alloc EXPORT_SYMBOL_GPL vmlinux 0x18008c59 ring_buffer_resize -EXPORT_SYMBOL_GPL vmlinux 0x1805e13e devm_devfreq_event_remove_edev -EXPORT_SYMBOL_GPL vmlinux 0x1809bc71 kthread_func -EXPORT_SYMBOL_GPL vmlinux 0x180c530d edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL vmlinux 0x181c4639 __virtqueue_break +EXPORT_SYMBOL_GPL vmlinux 0x18299c1d add_disk_randomness EXPORT_SYMBOL_GPL vmlinux 0x182e2f09 cn_netlink_send_mult -EXPORT_SYMBOL_GPL vmlinux 0x1837197a dst_blackhole_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x1835c10e of_phy_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x183b4754 nl_table EXPORT_SYMBOL_GPL vmlinux 0x18428692 __cookie_v6_init_sequence -EXPORT_SYMBOL_GPL vmlinux 0x185134a6 dw_pcie_host_deinit EXPORT_SYMBOL_GPL vmlinux 0x185a39a9 unregister_fprobe -EXPORT_SYMBOL_GPL vmlinux 0x186687a5 spi_new_device -EXPORT_SYMBOL_GPL vmlinux 0x18711fe6 irq_set_default_host -EXPORT_SYMBOL_GPL vmlinux 0x18869d0f devm_usb_get_phy -EXPORT_SYMBOL_GPL vmlinux 0x188c81e3 __netpoll_setup -EXPORT_SYMBOL_GPL vmlinux 0x18961900 edac_device_free_ctl_info -EXPORT_SYMBOL_GPL vmlinux 0x18970c36 devm_led_classdev_unregister -EXPORT_SYMBOL_GPL vmlinux 0x18a849fe irq_domain_xlate_twocell -EXPORT_SYMBOL_GPL vmlinux 0x18ce78f7 ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0x185b2d0b of_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x1872f805 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x188dea9c powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0x188ea6bc tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x18952da5 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x1898bf52 cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0x18a210ed devm_hwmon_device_register_with_info +EXPORT_SYMBOL_GPL vmlinux 0x18c27577 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x18c73013 da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x18d2aeb4 __trace_trigger_soft_disabled +EXPORT_SYMBOL_GPL vmlinux 0x18dc23a1 metadata_dst_free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x18de0c19 gpiod_get_array_optional EXPORT_SYMBOL_GPL vmlinux 0x18e12211 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x18e4ca86 ipv6_bpf_stub EXPORT_SYMBOL_GPL vmlinux 0x18e4f8aa swphy_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x18e5e0c5 pci_cfg_access_trylock EXPORT_SYMBOL_GPL vmlinux 0x18e8c440 arch_freq_scale -EXPORT_SYMBOL_GPL vmlinux 0x18f7e262 dev_pm_qos_hide_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0x18e97087 ethnl_cable_test_result +EXPORT_SYMBOL_GPL vmlinux 0x18f7e400 au_platform_setup EXPORT_SYMBOL_GPL vmlinux 0x18fb2caf cpus_read_unlock -EXPORT_SYMBOL_GPL vmlinux 0x192b8187 rio_route_clr_table -EXPORT_SYMBOL_GPL vmlinux 0x192beafd vp_legacy_get_driver_features +EXPORT_SYMBOL_GPL vmlinux 0x190e37f7 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x191c880f scsi_host_complete_all_commands EXPORT_SYMBOL_GPL vmlinux 0x193282ae acpi_dev_resource_ext_address_space -EXPORT_SYMBOL_GPL vmlinux 0x1946dfec irq_find_matching_fwspec -EXPORT_SYMBOL_GPL vmlinux 0x195610d9 devlink_linecard_nested_dl_set +EXPORT_SYMBOL_GPL vmlinux 0x1952032b pse_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x195ad762 dev_pm_qos_remove_notifier EXPORT_SYMBOL_GPL vmlinux 0x1963f993 start_poll_synchronize_srcu -EXPORT_SYMBOL_GPL vmlinux 0x1964780b skb_mpls_pop -EXPORT_SYMBOL_GPL vmlinux 0x196627c0 usb_register_device_driver -EXPORT_SYMBOL_GPL vmlinux 0x1977aad6 perf_event_create_kernel_counter -EXPORT_SYMBOL_GPL vmlinux 0x197b96cd mptcp_subflow_init_cookie_req -EXPORT_SYMBOL_GPL vmlinux 0x197d53d8 genphy_c45_aneg_done -EXPORT_SYMBOL_GPL vmlinux 0x19880369 netdev_walk_all_lower_dev -EXPORT_SYMBOL_GPL vmlinux 0x1992de39 serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0x198ab689 sk_msg_alloc +EXPORT_SYMBOL_GPL vmlinux 0x198dcb29 disk_alloc_independent_access_ranges +EXPORT_SYMBOL_GPL vmlinux 0x198f0326 pci_remove_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x1991c9a9 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x19933b2a of_msi_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x199af3b6 usb_enable_intel_xhci_ports EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled -EXPORT_SYMBOL_GPL vmlinux 0x19bec246 em_dev_unregister_perf_domain -EXPORT_SYMBOL_GPL vmlinux 0x19c02459 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x19a68076 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x19abba1e usb_amd_pt_check_port +EXPORT_SYMBOL_GPL vmlinux 0x19b11af2 posix_acl_create +EXPORT_SYMBOL_GPL vmlinux 0x19b9e00d pci_iov_virtfn_devfn +EXPORT_SYMBOL_GPL vmlinux 0x19c1c696 cpufreq_unregister_driver EXPORT_SYMBOL_GPL vmlinux 0x19c20269 soc_device_unregister EXPORT_SYMBOL_GPL vmlinux 0x19c42957 blk_op_str -EXPORT_SYMBOL_GPL vmlinux 0x19d0ce16 acpi_get_first_physical_node +EXPORT_SYMBOL_GPL vmlinux 0x19d09996 thermal_cooling_device_update +EXPORT_SYMBOL_GPL vmlinux 0x19d24d91 bsg_job_get +EXPORT_SYMBOL_GPL vmlinux 0x19d4eb54 vcap_tc_flower_handler_ethaddr_usage +EXPORT_SYMBOL_GPL vmlinux 0x19d9af46 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x19db383e gpiochip_line_is_irq EXPORT_SYMBOL_GPL vmlinux 0x19dbe0c8 destroy_memory_type EXPORT_SYMBOL_GPL vmlinux 0x19e81304 btree_alloc -EXPORT_SYMBOL_GPL vmlinux 0x19f30bb9 pci_stop_root_bus EXPORT_SYMBOL_GPL vmlinux 0x19f33626 nf_ctnetlink_has_listener -EXPORT_SYMBOL_GPL vmlinux 0x1a042d60 perf_event_pause -EXPORT_SYMBOL_GPL vmlinux 0x1a0fd424 spi_mem_driver_register_with_owner EXPORT_SYMBOL_GPL vmlinux 0x1a10c32b crypto_ft_tab EXPORT_SYMBOL_GPL vmlinux 0x1a146ec3 usb_ep_type_string -EXPORT_SYMBOL_GPL vmlinux 0x1a24116f get_device -EXPORT_SYMBOL_GPL vmlinux 0x1a367432 devm_bitmap_alloc -EXPORT_SYMBOL_GPL vmlinux 0x1a38ef83 ethnl_cable_test_result -EXPORT_SYMBOL_GPL vmlinux 0x1a66f9c5 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x1a14a75c class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x1a2b77e7 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x1a4f75b3 netdev_is_rx_handler_busy +EXPORT_SYMBOL_GPL vmlinux 0x1a51a069 pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0x1a5d99c4 tracing_snapshot_cond +EXPORT_SYMBOL_GPL vmlinux 0x1a5e7225 synth_event_gen_cmd_array_start EXPORT_SYMBOL_GPL vmlinux 0x1a6bf28f fsnotify_get_cookie -EXPORT_SYMBOL_GPL vmlinux 0x1a7ed63f unregister_trace_event +EXPORT_SYMBOL_GPL vmlinux 0x1a6d5f94 pci_iov_vf_id +EXPORT_SYMBOL_GPL vmlinux 0x1a763244 device_match_of_node EXPORT_SYMBOL_GPL vmlinux 0x1a82368d ZSTD_customCalloc -EXPORT_SYMBOL_GPL vmlinux 0x1a8e767c paste_selection -EXPORT_SYMBOL_GPL vmlinux 0x1a9eeee3 pci_aer_clear_nonfatal_status -EXPORT_SYMBOL_GPL vmlinux 0x1aa0c70e clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x1a832835 dw_pcie_upconfig_setup +EXPORT_SYMBOL_GPL vmlinux 0x1aa2eedb clk_hw_determine_rate_no_reparent +EXPORT_SYMBOL_GPL vmlinux 0x1aa5552f firmware_request_cache EXPORT_SYMBOL_GPL vmlinux 0x1aa7a185 __tracepoint_ata_bmdma_start -EXPORT_SYMBOL_GPL vmlinux 0x1aac5e96 sysfs_update_group -EXPORT_SYMBOL_GPL vmlinux 0x1abccc87 bd_unlink_disk_holder -EXPORT_SYMBOL_GPL vmlinux 0x1abfd4e6 driver_find -EXPORT_SYMBOL_GPL vmlinux 0x1ac2e1e7 pinctrl_pm_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0x1aa85fa2 l3mdev_fib_table_by_index +EXPORT_SYMBOL_GPL vmlinux 0x1abd2d74 inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x1ac177be crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x1ac3e7f5 regmap_get_raw_write_max EXPORT_SYMBOL_GPL vmlinux 0x1acd18c8 cpuset_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0x1ad3eda0 class_unregister -EXPORT_SYMBOL_GPL vmlinux 0x1adddc9c devlink_region_create +EXPORT_SYMBOL_GPL vmlinux 0x1ad98f5c do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x1add58f0 xhci_resume +EXPORT_SYMBOL_GPL vmlinux 0x1ae25ebd fixed_phy_unregister EXPORT_SYMBOL_GPL vmlinux 0x1ae84350 arch_smp_send_reschedule -EXPORT_SYMBOL_GPL vmlinux 0x1af18ac6 devm_thermal_of_zone_register +EXPORT_SYMBOL_GPL vmlinux 0x1ae9c8ac acpi_subsys_runtime_resume EXPORT_SYMBOL_GPL vmlinux 0x1af267f8 int_pow -EXPORT_SYMBOL_GPL vmlinux 0x1af40bda __inet_lookup_established -EXPORT_SYMBOL_GPL vmlinux 0x1af8da35 mpc8xxx_spi_tx_buf_u8 +EXPORT_SYMBOL_GPL vmlinux 0x1b021692 clk_hw_register_fixed_factor_parent_hw EXPORT_SYMBOL_GPL vmlinux 0x1b0602c1 cond_synchronize_rcu_full -EXPORT_SYMBOL_GPL vmlinux 0x1b13e4a9 clk_divider_ro_ops -EXPORT_SYMBOL_GPL vmlinux 0x1b291def mmc_pwrseq_register -EXPORT_SYMBOL_GPL vmlinux 0x1b4120f5 iomap_invalidate_folio -EXPORT_SYMBOL_GPL vmlinux 0x1b482666 usb_choose_configuration -EXPORT_SYMBOL_GPL vmlinux 0x1b6e84dc devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0x1b088043 regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x1b1a486b acpi_dma_request_slave_chan_by_name +EXPORT_SYMBOL_GPL vmlinux 0x1b1f3bb7 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x1b267bc1 irq_chip_disable_parent +EXPORT_SYMBOL_GPL vmlinux 0x1b42837f of_clk_set_defaults +EXPORT_SYMBOL_GPL vmlinux 0x1b544687 pci_pri_supported +EXPORT_SYMBOL_GPL vmlinux 0x1b5f8219 regulator_list_voltage_pickable_linear_range EXPORT_SYMBOL_GPL vmlinux 0x1b739ef5 __tracepoint_fib6_table_lookup -EXPORT_SYMBOL_GPL vmlinux 0x1b7626f5 md_bitmap_copy_from_slot -EXPORT_SYMBOL_GPL vmlinux 0x1b77438f gpiod_get_raw_value_cansleep -EXPORT_SYMBOL_GPL vmlinux 0x1b866c7e blk_crypto_profile_init +EXPORT_SYMBOL_GPL vmlinux 0x1b7aabca usb_bus_start_enum +EXPORT_SYMBOL_GPL vmlinux 0x1b82c1d7 ata_sas_queuecmd EXPORT_SYMBOL_GPL vmlinux 0x1b8822d8 pinctrl_gpio_direction_output -EXPORT_SYMBOL_GPL vmlinux 0x1b890db9 of_device_uevent_modalias -EXPORT_SYMBOL_GPL vmlinux 0x1b8a484d serdev_device_open EXPORT_SYMBOL_GPL vmlinux 0x1b92e41d inet_putpeer -EXPORT_SYMBOL_GPL vmlinux 0x1ba5d03d dev_pm_genpd_set_next_wakeup -EXPORT_SYMBOL_GPL vmlinux 0x1bc2a69c thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1bab0ec4 request_firmware_direct +EXPORT_SYMBOL_GPL vmlinux 0x1bbc3a7a devm_regulator_get_enable_optional EXPORT_SYMBOL_GPL vmlinux 0x1bc46053 mt_prev EXPORT_SYMBOL_GPL vmlinux 0x1bc5eebe pinctrl_gpio_direction_input -EXPORT_SYMBOL_GPL vmlinux 0x1bc9593b fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x1bcaddf1 io_uring_cmd_sock EXPORT_SYMBOL_GPL vmlinux 0x1bd4715c from_vfsgid -EXPORT_SYMBOL_GPL vmlinux 0x1be6a8b9 synth_event_add_val -EXPORT_SYMBOL_GPL vmlinux 0x1be9db7b pci_epf_remove_vepf +EXPORT_SYMBOL_GPL vmlinux 0x1be59b58 pm_runtime_autosuspend_expiration EXPORT_SYMBOL_GPL vmlinux 0x1bf9c191 __traceiter_ipi_send_cpumask -EXPORT_SYMBOL_GPL vmlinux 0x1bfd765f __traceiter_xdp_bulk_tx -EXPORT_SYMBOL_GPL vmlinux 0x1c0d4f47 wm831x_set_bits -EXPORT_SYMBOL_GPL vmlinux 0x1c10bc5c devm_mipi_dsi_device_register_full -EXPORT_SYMBOL_GPL vmlinux 0x1c1cb7f5 sock_diag_check_cookie -EXPORT_SYMBOL_GPL vmlinux 0x1c3b0387 acpi_unbind_one -EXPORT_SYMBOL_GPL vmlinux 0x1c3f6f0b l3mdev_update_flow +EXPORT_SYMBOL_GPL vmlinux 0x1c138d7d dev_pm_opp_get_level +EXPORT_SYMBOL_GPL vmlinux 0x1c170304 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x1c18eb1c devl_port_register_with_ops +EXPORT_SYMBOL_GPL vmlinux 0x1c2b895e fsverity_verify_bio +EXPORT_SYMBOL_GPL vmlinux 0x1c2d06b8 dev_pm_opp_set_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0x1c41f821 pinctrl_find_gpio_range_from_pin_nolock EXPORT_SYMBOL_GPL vmlinux 0x1c45c513 mas_store_gfp -EXPORT_SYMBOL_GPL vmlinux 0x1c50fe94 vp_modern_set_queue_reset EXPORT_SYMBOL_GPL vmlinux 0x1c5541bd cpufreq_boost_enabled EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs EXPORT_SYMBOL_GPL vmlinux 0x1c5ff742 clk_get_phase -EXPORT_SYMBOL_GPL vmlinux 0x1c6265a7 bpf_prog_inc EXPORT_SYMBOL_GPL vmlinux 0x1c7169dc ZSTD_customFree -EXPORT_SYMBOL_GPL vmlinux 0x1c731600 fwnode_get_name EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c86c807 devm_phy_optional_get EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up -EXPORT_SYMBOL_GPL vmlinux 0x1c8cea0a dev_pm_genpd_synced_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x1c89dca9 devl_health_reporter_create +EXPORT_SYMBOL_GPL vmlinux 0x1c8ab1f5 lwtunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x1c98e168 regmap_field_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x1c9beac1 pm_runtime_no_callbacks EXPORT_SYMBOL_GPL vmlinux 0x1ca1952d nl_table_lock -EXPORT_SYMBOL_GPL vmlinux 0x1ca6341f phy_speed_up -EXPORT_SYMBOL_GPL vmlinux 0x1cb2ef07 dma_async_device_channel_register -EXPORT_SYMBOL_GPL vmlinux 0x1cb91ab4 usb_set_wireless_status +EXPORT_SYMBOL_GPL vmlinux 0x1ca54194 dev_pm_opp_xlate_required_opp +EXPORT_SYMBOL_GPL vmlinux 0x1cb3c3ef bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x1cb4362a of_platform_populate EXPORT_SYMBOL_GPL vmlinux 0x1cbd92b0 cpu_mitigations_off -EXPORT_SYMBOL_GPL vmlinux 0x1cd3320c devm_gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x1ccd658c __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x1ccd7e4e vp_modern_get_queue_enable EXPORT_SYMBOL_GPL vmlinux 0x1cdd0605 xhci_port_state_to_neutral -EXPORT_SYMBOL_GPL vmlinux 0x1ceac0a0 da903x_update -EXPORT_SYMBOL_GPL vmlinux 0x1cf21400 is_skb_forwardable -EXPORT_SYMBOL_GPL vmlinux 0x1cf31f32 mnt_drop_write -EXPORT_SYMBOL_GPL vmlinux 0x1cf72b45 devm_namespace_disable -EXPORT_SYMBOL_GPL vmlinux 0x1cfce5db tracing_cond_snapshot_data -EXPORT_SYMBOL_GPL vmlinux 0x1d051f2d regulator_get_error_flags -EXPORT_SYMBOL_GPL vmlinux 0x1d07be1b input_ff_flush -EXPORT_SYMBOL_GPL vmlinux 0x1d07e94c fat_time_unix2fat -EXPORT_SYMBOL_GPL vmlinux 0x1d08e16c crypto_sig_set_privkey -EXPORT_SYMBOL_GPL vmlinux 0x1d107adb irq_create_mapping_affinity -EXPORT_SYMBOL_GPL vmlinux 0x1d129983 usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x1cf1bf0b pinctrl_utils_add_map_mux +EXPORT_SYMBOL_GPL vmlinux 0x1d0bccbb key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1d126da4 of_pm_clk_add_clks EXPORT_SYMBOL_GPL vmlinux 0x1d222ced irq_get_irqchip_state -EXPORT_SYMBOL_GPL vmlinux 0x1d428c46 __traceiter_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0x1d31558e stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x1d37508b fib_alias_hw_flags_set +EXPORT_SYMBOL_GPL vmlinux 0x1d43338f clk_mux_val_to_index +EXPORT_SYMBOL_GPL vmlinux 0x1d452583 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x1d4831e5 mmc_pwrseq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1d4c67e2 __traceiter_rpm_idle EXPORT_SYMBOL_GPL vmlinux 0x1d512fa3 srcutorture_get_gp_data -EXPORT_SYMBOL_GPL vmlinux 0x1d526bc3 power_supply_external_power_changed -EXPORT_SYMBOL_GPL vmlinux 0x1d65a50e ohci_hub_status_data +EXPORT_SYMBOL_GPL vmlinux 0x1d584a39 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x1d64448e irq_domain_create_simple +EXPORT_SYMBOL_GPL vmlinux 0x1d72315c ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x1d7ad0b2 switchdev_handle_port_attr_set EXPORT_SYMBOL_GPL vmlinux 0x1d7de340 idr_alloc -EXPORT_SYMBOL_GPL vmlinux 0x1d7e9be2 crypto_akcipher_sync_encrypt -EXPORT_SYMBOL_GPL vmlinux 0x1d83f64d pci_hp_destroy -EXPORT_SYMBOL_GPL vmlinux 0x1d8bc222 bpf_trace_run7 -EXPORT_SYMBOL_GPL vmlinux 0x1da94c07 irq_chip_enable_parent -EXPORT_SYMBOL_GPL vmlinux 0x1dcab9f3 vp_legacy_set_status -EXPORT_SYMBOL_GPL vmlinux 0x1dce3375 vcap_addr_keysets -EXPORT_SYMBOL_GPL vmlinux 0x1dd21e6b fixed_phy_set_link_update -EXPORT_SYMBOL_GPL vmlinux 0x1dd4b0e7 ata_port_desc -EXPORT_SYMBOL_GPL vmlinux 0x1dd6717e ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x1d8cfc20 pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0x1d94bbf3 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x1d9b5945 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1d9dc69b wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x1db20449 fwnode_graph_get_remote_port_parent +EXPORT_SYMBOL_GPL vmlinux 0x1db45782 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x1dbf3587 pci_epf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x1dc5667c linear_hugepage_index +EXPORT_SYMBOL_GPL vmlinux 0x1dd3c33d xfrm_audit_state_replay EXPORT_SYMBOL_GPL vmlinux 0x1ddc05fe riscv_v_vsize -EXPORT_SYMBOL_GPL vmlinux 0x1de1279a is_nvdimm_sync -EXPORT_SYMBOL_GPL vmlinux 0x1dea25d8 xhci_hub_control -EXPORT_SYMBOL_GPL vmlinux 0x1ded26b5 component_compare_dev -EXPORT_SYMBOL_GPL vmlinux 0x1df122b4 fat_fill_super -EXPORT_SYMBOL_GPL vmlinux 0x1df16918 pci_walk_bus -EXPORT_SYMBOL_GPL vmlinux 0x1df6f7b7 i2c_acpi_new_device_by_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x1ddfc3cc irq_domain_disconnect_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x1deb8a08 ncsi_vlan_rx_kill_vid +EXPORT_SYMBOL_GPL vmlinux 0x1df29325 xdp_return_buff EXPORT_SYMBOL_GPL vmlinux 0x1dfa5dbd mpi_invm EXPORT_SYMBOL_GPL vmlinux 0x1e0670c6 reset_control_release -EXPORT_SYMBOL_GPL vmlinux 0x1e07c5a0 edac_device_handle_ce_count -EXPORT_SYMBOL_GPL vmlinux 0x1e18e10e devl_resources_unregister -EXPORT_SYMBOL_GPL vmlinux 0x1e2cc03e __sock_recv_cmsgs +EXPORT_SYMBOL_GPL vmlinux 0x1e12a539 __auxiliary_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x1e376119 iomap_seek_data EXPORT_SYMBOL_GPL vmlinux 0x1e39de80 perf_trace_buf_alloc -EXPORT_SYMBOL_GPL vmlinux 0x1e3bf714 sock_map_unhash -EXPORT_SYMBOL_GPL vmlinux 0x1e3e2797 devm_regulator_get_enable +EXPORT_SYMBOL_GPL vmlinux 0x1e41633d device_remove_file_self EXPORT_SYMBOL_GPL vmlinux 0x1e424d61 user_preparse -EXPORT_SYMBOL_GPL vmlinux 0x1e53c631 __pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0x1e5001f9 __nvdimm_create EXPORT_SYMBOL_GPL vmlinux 0x1e53f827 stack_depot_print -EXPORT_SYMBOL_GPL vmlinux 0x1e614bff spi_mem_driver_unregister -EXPORT_SYMBOL_GPL vmlinux 0x1e61eb46 acpi_dev_add_driver_gpios -EXPORT_SYMBOL_GPL vmlinux 0x1e678984 unregister_virtio_driver EXPORT_SYMBOL_GPL vmlinux 0x1e777895 btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1e7ba4cb battery_hook_register EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart EXPORT_SYMBOL_GPL vmlinux 0x1e8fac8e wireless_nlevent_flush -EXPORT_SYMBOL_GPL vmlinux 0x1e8fc516 blk_clear_pm_only EXPORT_SYMBOL_GPL vmlinux 0x1e9c590a usb_find_common_endpoints_reverse EXPORT_SYMBOL_GPL vmlinux 0x1e9d4a52 mas_prev -EXPORT_SYMBOL_GPL vmlinux 0x1ea58bf0 devm_usb_get_phy_by_node +EXPORT_SYMBOL_GPL vmlinux 0x1ea8cc74 vp_modern_set_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x1eaf5233 usb_phy_get_charger_current +EXPORT_SYMBOL_GPL vmlinux 0x1eb76039 of_icc_get_from_provider EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names -EXPORT_SYMBOL_GPL vmlinux 0x1ec1e169 regulator_set_drvdata -EXPORT_SYMBOL_GPL vmlinux 0x1ec5b6a1 gpiochip_free_own_desc -EXPORT_SYMBOL_GPL vmlinux 0x1ed22c01 usb_phy_set_charger_current +EXPORT_SYMBOL_GPL vmlinux 0x1ed32c81 devlink_remote_reload_actions_performed EXPORT_SYMBOL_GPL vmlinux 0x1ed4d2eb percpu_ref_kill_and_confirm EXPORT_SYMBOL_GPL vmlinux 0x1ee47e00 is_vmalloc_or_module_addr -EXPORT_SYMBOL_GPL vmlinux 0x1ef278d1 phy_get -EXPORT_SYMBOL_GPL vmlinux 0x1efd56af dm_disk -EXPORT_SYMBOL_GPL vmlinux 0x1f17a4cc regmap_test_bits -EXPORT_SYMBOL_GPL vmlinux 0x1f189e5b of_clk_hw_onecell_get -EXPORT_SYMBOL_GPL vmlinux 0x1f250625 clean_acked_data_enable -EXPORT_SYMBOL_GPL vmlinux 0x1f266539 security_inode_setattr -EXPORT_SYMBOL_GPL vmlinux 0x1f2eba23 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x1eee7ee2 skb_send_sock_locked +EXPORT_SYMBOL_GPL vmlinux 0x1eef588b d_same_name +EXPORT_SYMBOL_GPL vmlinux 0x1f0894c9 __sk_flush_backlog +EXPORT_SYMBOL_GPL vmlinux 0x1f12937b device_get_next_child_node +EXPORT_SYMBOL_GPL vmlinux 0x1f24baac sdio_retune_crc_enable +EXPORT_SYMBOL_GPL vmlinux 0x1f24e245 cpufreq_table_index_unsorted +EXPORT_SYMBOL_GPL vmlinux 0x1f266217 tcp_twsk_destructor EXPORT_SYMBOL_GPL vmlinux 0x1f38a4f6 mpi_set_highbit -EXPORT_SYMBOL_GPL vmlinux 0x1f43df70 vcap_keyfieldset +EXPORT_SYMBOL_GPL vmlinux 0x1f404a5c serdev_device_close EXPORT_SYMBOL_GPL vmlinux 0x1f449588 mctrl_gpio_disable_ms +EXPORT_SYMBOL_GPL vmlinux 0x1f5193d7 tty_port_link_device EXPORT_SYMBOL_GPL vmlinux 0x1f563160 bpf_offload_dev_priv -EXPORT_SYMBOL_GPL vmlinux 0x1f5c2ad2 cn_add_callback -EXPORT_SYMBOL_GPL vmlinux 0x1f5cf309 __blkg_prfill_u64 -EXPORT_SYMBOL_GPL vmlinux 0x1f72aabf shmem_file_setup_with_mnt +EXPORT_SYMBOL_GPL vmlinux 0x1f6bc51d pm_generic_poweroff_noirq EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout -EXPORT_SYMBOL_GPL vmlinux 0x1f8ebf5e inet_splice_eof -EXPORT_SYMBOL_GPL vmlinux 0x1f926b83 pinmux_generic_get_function_groups -EXPORT_SYMBOL_GPL vmlinux 0x1f957290 spi_finalize_current_message -EXPORT_SYMBOL_GPL vmlinux 0x1f95e855 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x1f9551ef report_iommu_fault EXPORT_SYMBOL_GPL vmlinux 0x1fa1d95c sha256_zero_message_hash -EXPORT_SYMBOL_GPL vmlinux 0x1fa3a679 __irq_resolve_mapping EXPORT_SYMBOL_GPL vmlinux 0x1fa48995 efivar_supports_writes -EXPORT_SYMBOL_GPL vmlinux 0x1fa4ba23 regulator_get_hardware_vsel_register +EXPORT_SYMBOL_GPL vmlinux 0x1fb54f5d usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x1fba0b15 fib4_rule_default EXPORT_SYMBOL_GPL vmlinux 0x1fba706d mas_erase -EXPORT_SYMBOL_GPL vmlinux 0x1fcc3f0d fsnotify_add_mark -EXPORT_SYMBOL_GPL vmlinux 0x1fd7ee9d nf_queue_entry_free -EXPORT_SYMBOL_GPL vmlinux 0x1fdcd89f ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0x1fc90ca7 debugfs_attr_write EXPORT_SYMBOL_GPL vmlinux 0x1fe6e504 gpiod_add_hogs EXPORT_SYMBOL_GPL vmlinux 0x1fe8ac45 xas_find_marked -EXPORT_SYMBOL_GPL vmlinux 0x1fedf336 dm_post_suspending -EXPORT_SYMBOL_GPL vmlinux 0x1ff368d6 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x1ff0ff71 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x1ff43668 dev_fill_forward_path EXPORT_SYMBOL_GPL vmlinux 0x2009e400 devlink_info_board_serial_number_put +EXPORT_SYMBOL_GPL vmlinux 0x200b4d40 ima_inode_hash +EXPORT_SYMBOL_GPL vmlinux 0x20228493 __dma_request_channel EXPORT_SYMBOL_GPL vmlinux 0x202d4ed6 nvmem_cell_write -EXPORT_SYMBOL_GPL vmlinux 0x2048a658 dev_pm_opp_put -EXPORT_SYMBOL_GPL vmlinux 0x20546ec5 get_net_ns_by_id -EXPORT_SYMBOL_GPL vmlinux 0x205e96cd blk_mq_debugfs_rq_show -EXPORT_SYMBOL_GPL vmlinux 0x206321f7 tcp_done -EXPORT_SYMBOL_GPL vmlinux 0x2087c4f0 iomap_readahead -EXPORT_SYMBOL_GPL vmlinux 0x20957576 fscrypt_fname_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x2036d554 vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x203ed739 devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x206e4899 ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0x2070c080 hwspin_lock_register +EXPORT_SYMBOL_GPL vmlinux 0x207843cd i2c_of_match_device +EXPORT_SYMBOL_GPL vmlinux 0x208c3064 pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x2095b89b rz_mtu3_16bit_ch_write EXPORT_SYMBOL_GPL vmlinux 0x20a4e01a HUF_readStats_wksp EXPORT_SYMBOL_GPL vmlinux 0x20b103dd freq_qos_add_notifier -EXPORT_SYMBOL_GPL vmlinux 0x210b3358 of_dma_xlate_by_chan_id +EXPORT_SYMBOL_GPL vmlinux 0x20b5e681 acpi_dev_state_d0 +EXPORT_SYMBOL_GPL vmlinux 0x20b8fb44 crypto_unregister_aead +EXPORT_SYMBOL_GPL vmlinux 0x20bb5859 __kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x20d23382 md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x20ded355 sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x20e8c0aa rio_free_net +EXPORT_SYMBOL_GPL vmlinux 0x20f9edb1 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x21046370 pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x2106d536 usb_cache_string +EXPORT_SYMBOL_GPL vmlinux 0x210b0ad4 lochnagar_update_config +EXPORT_SYMBOL_GPL vmlinux 0x21195167 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2123a594 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x2125ccce inet_bhash2_reset_saddr EXPORT_SYMBOL_GPL vmlinux 0x212734c5 vcap_netbytes_copy -EXPORT_SYMBOL_GPL vmlinux 0x213a5db7 led_get -EXPORT_SYMBOL_GPL vmlinux 0x214621be platform_msi_domain_alloc_irqs -EXPORT_SYMBOL_GPL vmlinux 0x2149d250 led_trigger_unregister -EXPORT_SYMBOL_GPL vmlinux 0x214b4c9a tpm_chip_unregister +EXPORT_SYMBOL_GPL vmlinux 0x212de321 ohci_hub_control +EXPORT_SYMBOL_GPL vmlinux 0x214208e4 __reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x2150b9d5 icc_set_tag +EXPORT_SYMBOL_GPL vmlinux 0x2156b2d9 nd_region_provider_data +EXPORT_SYMBOL_GPL vmlinux 0x2169fab5 of_clk_hw_simple_get +EXPORT_SYMBOL_GPL vmlinux 0x216a8721 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x216d4aa0 iommu_page_response EXPORT_SYMBOL_GPL vmlinux 0x216de4e1 rcu_get_gp_kthreads_prio -EXPORT_SYMBOL_GPL vmlinux 0x21837e9d pwm_capture -EXPORT_SYMBOL_GPL vmlinux 0x21855d9a serdev_device_wait_until_sent +EXPORT_SYMBOL_GPL vmlinux 0x217160e6 genphy_c45_pma_baset1_read_master_slave +EXPORT_SYMBOL_GPL vmlinux 0x217ab25d clk_hw_rate_is_protected +EXPORT_SYMBOL_GPL vmlinux 0x217ca32c __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x2181cfbc lwtunnel_encap_del_ops EXPORT_SYMBOL_GPL vmlinux 0x21949aa4 poll_state_synchronize_srcu -EXPORT_SYMBOL_GPL vmlinux 0x219c2a13 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x21a55425 blk_stat_enable_accounting EXPORT_SYMBOL_GPL vmlinux 0x21a563da clk_get_accuracy -EXPORT_SYMBOL_GPL vmlinux 0x21a5ec32 ata_sff_dev_classify -EXPORT_SYMBOL_GPL vmlinux 0x21b10669 sata_scr_write_flush -EXPORT_SYMBOL_GPL vmlinux 0x21b112ca irq_domain_free_fwnode -EXPORT_SYMBOL_GPL vmlinux 0x21b4e286 ata_host_register -EXPORT_SYMBOL_GPL vmlinux 0x21bc9fd5 devm_irq_domain_create_sim -EXPORT_SYMBOL_GPL vmlinux 0x21c5bad7 firmware_upload_register +EXPORT_SYMBOL_GPL vmlinux 0x21aee3ab usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x21c38a93 mmc_pwrseq_register EXPORT_SYMBOL_GPL vmlinux 0x21cd536a crypto_put_default_null_skcipher -EXPORT_SYMBOL_GPL vmlinux 0x21cea215 cpufreq_dbs_governor_start -EXPORT_SYMBOL_GPL vmlinux 0x21e5e910 intel_pmic_install_opregion_handler -EXPORT_SYMBOL_GPL vmlinux 0x21e9278b __bio_add_page -EXPORT_SYMBOL_GPL vmlinux 0x21ff2f12 irq_domain_create_simple -EXPORT_SYMBOL_GPL vmlinux 0x221774ca crypto_register_ahashes -EXPORT_SYMBOL_GPL vmlinux 0x22218163 gpiod_get_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x21cfd167 regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x21dc59ee sysfs_create_link_nowarn +EXPORT_SYMBOL_GPL vmlinux 0x21e45029 pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x21ee366d ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x21f77ba6 screen_glyph_unicode +EXPORT_SYMBOL_GPL vmlinux 0x22070591 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x22096cb2 __devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x221b16a6 watchdog_notify_pretimeout +EXPORT_SYMBOL_GPL vmlinux 0x2225185e rcuwait_wake_up EXPORT_SYMBOL_GPL vmlinux 0x222cde01 hrtimer_forward -EXPORT_SYMBOL_GPL vmlinux 0x222d841e usb_get_descriptor -EXPORT_SYMBOL_GPL vmlinux 0x222d9a2b kobject_uevent_env -EXPORT_SYMBOL_GPL vmlinux 0x224f2e87 generic_handle_domain_irq_safe -EXPORT_SYMBOL_GPL vmlinux 0x22831da2 ima_inode_hash -EXPORT_SYMBOL_GPL vmlinux 0x229bfcac dt_init_idle_driver -EXPORT_SYMBOL_GPL vmlinux 0x22a1567b nd_tbl -EXPORT_SYMBOL_GPL vmlinux 0x22a8e42f phy_modify_mmd -EXPORT_SYMBOL_GPL vmlinux 0x22af1b0f vp_legacy_probe +EXPORT_SYMBOL_GPL vmlinux 0x2234f2d1 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x223b94ae pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x226f79ca usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x22807be5 regmap_field_bulk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x22afb9b9 nd_tbl +EXPORT_SYMBOL_GPL vmlinux 0x22bd8862 phy_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0x22be43a9 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x22c243cd pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x22c6f268 device_dma_supported EXPORT_SYMBOL_GPL vmlinux 0x22d60537 tcf_frag_xmit_count -EXPORT_SYMBOL_GPL vmlinux 0x22d8714e fib_nl_newrule +EXPORT_SYMBOL_GPL vmlinux 0x22d6f2ae acpi_fetch_acpi_dev EXPORT_SYMBOL_GPL vmlinux 0x22d9409b iomap_sort_ioends EXPORT_SYMBOL_GPL vmlinux 0x22df9a9e atomic_notifier_chain_register -EXPORT_SYMBOL_GPL vmlinux 0x22e220a5 device_wakeup_enable -EXPORT_SYMBOL_GPL vmlinux 0x22e7a80f tty_port_register_device_attr -EXPORT_SYMBOL_GPL vmlinux 0x22ea3cd4 gpiochip_generic_request -EXPORT_SYMBOL_GPL vmlinux 0x22f67abc debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x22e7651a tpm_tis_remove +EXPORT_SYMBOL_GPL vmlinux 0x22e9c348 thermal_zone_device_register_with_trips +EXPORT_SYMBOL_GPL vmlinux 0x22efe734 component_master_del +EXPORT_SYMBOL_GPL vmlinux 0x22f281d2 uprobe_register_refctr EXPORT_SYMBOL_GPL vmlinux 0x22fd08ba cpuacct_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0x2306c539 bus_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x23098044 of_clk_get_parent_count -EXPORT_SYMBOL_GPL vmlinux 0x230b8304 blk_crypto_intersect_capabilities -EXPORT_SYMBOL_GPL vmlinux 0x232a119b elv_unregister -EXPORT_SYMBOL_GPL vmlinux 0x233bc899 power_supply_set_battery_charged -EXPORT_SYMBOL_GPL vmlinux 0x233e65f3 of_mm_gpiochip_remove -EXPORT_SYMBOL_GPL vmlinux 0x233f9c87 ethnl_cable_test_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2302ab79 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x23052d11 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x23056592 dma_get_merge_boundary +EXPORT_SYMBOL_GPL vmlinux 0x231f2b15 regmap_noinc_read +EXPORT_SYMBOL_GPL vmlinux 0x2325210e devl_param_value_changed +EXPORT_SYMBOL_GPL vmlinux 0x2325b13a crypto_register_aead +EXPORT_SYMBOL_GPL vmlinux 0x232ff114 tcp_rate_check_app_limited +EXPORT_SYMBOL_GPL vmlinux 0x2332e7c4 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x233e4cae dma_resv_iter_next EXPORT_SYMBOL_GPL vmlinux 0x23412816 rtc_tm_to_ktime EXPORT_SYMBOL_GPL vmlinux 0x234cf416 devlink_fmsg_string_pair_put -EXPORT_SYMBOL_GPL vmlinux 0x2353fa4e __platform_create_bundle EXPORT_SYMBOL_GPL vmlinux 0x23597ce7 rhashtable_walk_next -EXPORT_SYMBOL_GPL vmlinux 0x2365ea3d perf_tp_event -EXPORT_SYMBOL_GPL vmlinux 0x2379e495 crypto_unregister_rng -EXPORT_SYMBOL_GPL vmlinux 0x2380938a __account_locked_vm +EXPORT_SYMBOL_GPL vmlinux 0x23605870 acpi_device_uevent_modalias +EXPORT_SYMBOL_GPL vmlinux 0x23719017 vp_legacy_config_vector +EXPORT_SYMBOL_GPL vmlinux 0x237d59a0 rio_unlock_device EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node -EXPORT_SYMBOL_GPL vmlinux 0x239368e1 crypto_register_skciphers -EXPORT_SYMBOL_GPL vmlinux 0x23957e24 fscrypt_ioctl_remove_key +EXPORT_SYMBOL_GPL vmlinux 0x2386c5e8 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0x23911b8b extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x239501f7 onboard_hub_create_pdevs +EXPORT_SYMBOL_GPL vmlinux 0x2395165d acpi_match_acpi_device EXPORT_SYMBOL_GPL vmlinux 0x2396c7f0 clk_set_parent -EXPORT_SYMBOL_GPL vmlinux 0x239c9284 pci_epc_set_msi -EXPORT_SYMBOL_GPL vmlinux 0x239fbf00 class_create_file_ns -EXPORT_SYMBOL_GPL vmlinux 0x23a802b8 devm_spi_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x23a2d4ea regmap_noinc_write EXPORT_SYMBOL_GPL vmlinux 0x23b03665 dma_fence_unwrap_first +EXPORT_SYMBOL_GPL vmlinux 0x23b44e89 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x23bac3d4 pinctrl_lookup_state +EXPORT_SYMBOL_GPL vmlinux 0x23bb2726 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x23bc564b pci_set_host_bridge_release +EXPORT_SYMBOL_GPL vmlinux 0x23c10dec of_usb_host_tpl_support EXPORT_SYMBOL_GPL vmlinux 0x23c3b778 phy_basic_features -EXPORT_SYMBOL_GPL vmlinux 0x23e0157f cpufreq_cpu_get_raw -EXPORT_SYMBOL_GPL vmlinux 0x23eb0d4a iomap_fiemap -EXPORT_SYMBOL_GPL vmlinux 0x23fc8849 divider_ro_round_rate_parent -EXPORT_SYMBOL_GPL vmlinux 0x24029dbb securityfs_create_symlink -EXPORT_SYMBOL_GPL vmlinux 0x2409f866 sata_link_hardreset -EXPORT_SYMBOL_GPL vmlinux 0x240a11a4 skb_zerocopy_iter_stream -EXPORT_SYMBOL_GPL vmlinux 0x240c874e pci_ims_free_irq -EXPORT_SYMBOL_GPL vmlinux 0x2420ea77 devlink_health_reporter_create +EXPORT_SYMBOL_GPL vmlinux 0x23d98432 regmap_test_bits +EXPORT_SYMBOL_GPL vmlinux 0x23fcfc16 tracing_cond_snapshot_data +EXPORT_SYMBOL_GPL vmlinux 0x2404e5f6 serdev_device_write +EXPORT_SYMBOL_GPL vmlinux 0x2405fdde of_clk_add_provider +EXPORT_SYMBOL_GPL vmlinux 0x24095b40 md_submit_discard_bio EXPORT_SYMBOL_GPL vmlinux 0x2421097b mpi_const EXPORT_SYMBOL_GPL vmlinux 0x24235223 phy_10gbit_full_features -EXPORT_SYMBOL_GPL vmlinux 0x2426aa75 virtqueue_get_vring_size -EXPORT_SYMBOL_GPL vmlinux 0x24310c22 clk_hw_register_fixed_factor -EXPORT_SYMBOL_GPL vmlinux 0x24416a4e device_initialize -EXPORT_SYMBOL_GPL vmlinux 0x2451f961 __tcp_send_ack -EXPORT_SYMBOL_GPL vmlinux 0x24661ec2 vcap_del_rule -EXPORT_SYMBOL_GPL vmlinux 0x2468fa82 crypto_comp_decompress +EXPORT_SYMBOL_GPL vmlinux 0x24253b48 xfrm_state_afinfo_get_rcu +EXPORT_SYMBOL_GPL vmlinux 0x242afb17 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x243b83ee device_get_named_child_node +EXPORT_SYMBOL_GPL vmlinux 0x243fb23d pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x2447afc2 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x244e239b xhci_stop +EXPORT_SYMBOL_GPL vmlinux 0x24673eb2 regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x246bea01 encrypt_blob +EXPORT_SYMBOL_GPL vmlinux 0x24833ea7 add_swap_extent EXPORT_SYMBOL_GPL vmlinux 0x2484e789 vbin_printf EXPORT_SYMBOL_GPL vmlinux 0x24852826 __SCK__tp_func_udp_fail_queue_rcv_skb EXPORT_SYMBOL_GPL vmlinux 0x248bc867 raw_notifier_call_chain_robust -EXPORT_SYMBOL_GPL vmlinux 0x248cb2e1 bpf_prog_put +EXPORT_SYMBOL_GPL vmlinux 0x248d4868 __udp_enqueue_schedule_skb EXPORT_SYMBOL_GPL vmlinux 0x248e1473 kfree_strarray +EXPORT_SYMBOL_GPL vmlinux 0x24903651 wakeup_source_add EXPORT_SYMBOL_GPL vmlinux 0x24ad11db wakeup_sources_read_unlock -EXPORT_SYMBOL_GPL vmlinux 0x24ae08b1 sdio_retune_hold_now -EXPORT_SYMBOL_GPL vmlinux 0x24ae21a5 led_trigger_read -EXPORT_SYMBOL_GPL vmlinux 0x24b5d64f spi_sync_locked -EXPORT_SYMBOL_GPL vmlinux 0x24c69b7b xfrm_dev_resume -EXPORT_SYMBOL_GPL vmlinux 0x24cc8008 device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x24ae3f6a ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x24af427e pci_ioremap_wc_bar +EXPORT_SYMBOL_GPL vmlinux 0x24c229ab sysfs_update_groups +EXPORT_SYMBOL_GPL vmlinux 0x24c83606 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x24cd0813 ata_sff_qc_issue EXPORT_SYMBOL_GPL vmlinux 0x24d8390d hwrng_msleep +EXPORT_SYMBOL_GPL vmlinux 0x24d8677c device_iommu_capable EXPORT_SYMBOL_GPL vmlinux 0x24da0093 rcu_inkernel_boot_has_ended -EXPORT_SYMBOL_GPL vmlinux 0x24daa24b ata_host_alloc -EXPORT_SYMBOL_GPL vmlinux 0x24e53ecc extcon_get_edev_name EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset EXPORT_SYMBOL_GPL vmlinux 0x24fc50f4 kdb_unregister -EXPORT_SYMBOL_GPL vmlinux 0x2515e016 clk_hw_unregister_mux -EXPORT_SYMBOL_GPL vmlinux 0x25203181 ata_host_put -EXPORT_SYMBOL_GPL vmlinux 0x25221dd5 fscrypt_ioctl_add_key +EXPORT_SYMBOL_GPL vmlinux 0x250be6f6 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x25274388 vc_scrolldelta_helper EXPORT_SYMBOL_GPL vmlinux 0x25301bc6 arch_wb_cache_pmem +EXPORT_SYMBOL_GPL vmlinux 0x25352263 ata_sas_port_alloc EXPORT_SYMBOL_GPL vmlinux 0x25379e73 clk_set_min_rate -EXPORT_SYMBOL_GPL vmlinux 0x253faac8 sysfs_remove_link -EXPORT_SYMBOL_GPL vmlinux 0x254a8e70 tpm_put_ops -EXPORT_SYMBOL_GPL vmlinux 0x254b9d52 gpiochip_remove -EXPORT_SYMBOL_GPL vmlinux 0x255a210e fb_deferred_io_open -EXPORT_SYMBOL_GPL vmlinux 0x255e5f2d iomap_dio_rw -EXPORT_SYMBOL_GPL vmlinux 0x256180b5 __blk_mq_debugfs_rq_show -EXPORT_SYMBOL_GPL vmlinux 0x256ac2f0 rt_mutex_lock_interruptible -EXPORT_SYMBOL_GPL vmlinux 0x257d67f0 vfs_remove_acl -EXPORT_SYMBOL_GPL vmlinux 0x2583115c __mdiobus_modify_changed -EXPORT_SYMBOL_GPL vmlinux 0x258e306d mddev_unlock +EXPORT_SYMBOL_GPL vmlinux 0x25399ca5 __traceiter_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x25524312 irq_domain_alloc_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0x2554d227 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x256e5bee genpd_dev_pm_attach +EXPORT_SYMBOL_GPL vmlinux 0x25737bea dev_pm_domain_attach_by_name EXPORT_SYMBOL_GPL vmlinux 0x2592fc6c console_printk -EXPORT_SYMBOL_GPL vmlinux 0x259938f6 crypto_skcipher_encrypt -EXPORT_SYMBOL_GPL vmlinux 0x25a118c8 devm_pm_opp_set_config +EXPORT_SYMBOL_GPL vmlinux 0x2593f621 devlink_sb_register +EXPORT_SYMBOL_GPL vmlinux 0x25a68e07 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x25af8b7a devl_dpipe_table_unregister EXPORT_SYMBOL_GPL vmlinux 0x25bbfa9a security_kernel_load_data EXPORT_SYMBOL_GPL vmlinux 0x25c42796 onboard_hub_destroy_pdevs -EXPORT_SYMBOL_GPL vmlinux 0x25c6729b pinctrl_select_state -EXPORT_SYMBOL_GPL vmlinux 0x25c86ef5 blk_queue_required_elevator_features -EXPORT_SYMBOL_GPL vmlinux 0x25d1a3cc devlink_port_fini -EXPORT_SYMBOL_GPL vmlinux 0x25d1c02b acpi_device_uevent_modalias -EXPORT_SYMBOL_GPL vmlinux 0x25d89274 stmpe_dev_pm_ops -EXPORT_SYMBOL_GPL vmlinux 0x25deaa55 devlink_trap_groups_unregister -EXPORT_SYMBOL_GPL vmlinux 0x25dfe11a rio_unmap_inb_region -EXPORT_SYMBOL_GPL vmlinux 0x25e410c9 devm_watchdog_register_device -EXPORT_SYMBOL_GPL vmlinux 0x2602fee0 __fscrypt_prepare_lookup -EXPORT_SYMBOL_GPL vmlinux 0x2612a718 sbitmap_bitmap_show -EXPORT_SYMBOL_GPL vmlinux 0x26162798 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x25f314f1 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x26034117 serial8250_update_uartclk +EXPORT_SYMBOL_GPL vmlinux 0x260c4035 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x261bb4c4 gpiod_get_array_value_cansleep EXPORT_SYMBOL_GPL vmlinux 0x261d5ba0 btree_init_mempool -EXPORT_SYMBOL_GPL vmlinux 0x264f5360 fat_update_time +EXPORT_SYMBOL_GPL vmlinux 0x262bb813 scsi_build_sense +EXPORT_SYMBOL_GPL vmlinux 0x2641acc5 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x264eb629 spi_mem_dirmap_read EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed EXPORT_SYMBOL_GPL vmlinux 0x265bbef9 kexec_crash_loaded -EXPORT_SYMBOL_GPL vmlinux 0x26600a98 iomap_file_buffered_write_punch_delalloc -EXPORT_SYMBOL_GPL vmlinux 0x2668b759 iommu_set_pgtable_quirks +EXPORT_SYMBOL_GPL vmlinux 0x265e6e24 devm_clk_get_optional_prepared EXPORT_SYMBOL_GPL vmlinux 0x266a4b08 tasklet_unlock +EXPORT_SYMBOL_GPL vmlinux 0x2677a1c2 clk_fixed_factor_ops EXPORT_SYMBOL_GPL vmlinux 0x267941b3 __tracepoint_neigh_event_send_done EXPORT_SYMBOL_GPL vmlinux 0x267df662 smp_call_on_cpu -EXPORT_SYMBOL_GPL vmlinux 0x2694395b usb_put_phy -EXPORT_SYMBOL_GPL vmlinux 0x2696c67b pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x26811a02 pci_hp_destroy EXPORT_SYMBOL_GPL vmlinux 0x26ab4755 put_old_itimerspec32 -EXPORT_SYMBOL_GPL vmlinux 0x26af2eb5 vfs_truncate -EXPORT_SYMBOL_GPL vmlinux 0x26b1f887 dev_pm_opp_get_opp_table -EXPORT_SYMBOL_GPL vmlinux 0x26b861aa clk_hw_init_rate_request -EXPORT_SYMBOL_GPL vmlinux 0x26bdd48c component_add_typed +EXPORT_SYMBOL_GPL vmlinux 0x26b10c23 device_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x26b6543f regulator_map_voltage_iterate EXPORT_SYMBOL_GPL vmlinux 0x26c44a3b __tracepoint_sched_cpu_capacity_tp -EXPORT_SYMBOL_GPL vmlinux 0x26c500d8 cpu_subsys EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26cee4c1 __traceiter_kfree_skb EXPORT_SYMBOL_GPL vmlinux 0x26e120d8 gen_pool_avail -EXPORT_SYMBOL_GPL vmlinux 0x26e69ef2 __traceiter_fib6_table_lookup -EXPORT_SYMBOL_GPL vmlinux 0x26e72d72 find_get_pid -EXPORT_SYMBOL_GPL vmlinux 0x26e9a7a2 dma_vmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x26e12774 ping_err EXPORT_SYMBOL_GPL vmlinux 0x26ed2186 register_vmap_purge_notifier -EXPORT_SYMBOL_GPL vmlinux 0x26eecda7 pcie_flr -EXPORT_SYMBOL_GPL vmlinux 0x26f6afb2 pm_runtime_no_callbacks -EXPORT_SYMBOL_GPL vmlinux 0x26fcfdc0 rdev_clear_badblocks -EXPORT_SYMBOL_GPL vmlinux 0x26ff8f08 regulator_get_voltage_sel_pickable_regmap -EXPORT_SYMBOL_GPL vmlinux 0x27008905 sk_msg_return_zero +EXPORT_SYMBOL_GPL vmlinux 0x26fb5cb0 __devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x2701cd78 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x27097bbc of_get_named_gpio EXPORT_SYMBOL_GPL vmlinux 0x270bd107 usb_bus_idr -EXPORT_SYMBOL_GPL vmlinux 0x27177177 __crypto_alloc_tfmgfp -EXPORT_SYMBOL_GPL vmlinux 0x27456df5 clk_hw_unregister_composite -EXPORT_SYMBOL_GPL vmlinux 0x27470b46 ata_cable_sata -EXPORT_SYMBOL_GPL vmlinux 0x27661fd0 sdev_evt_send -EXPORT_SYMBOL_GPL vmlinux 0x278079a8 locks_release_private -EXPORT_SYMBOL_GPL vmlinux 0x2791bf76 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x2739cab2 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x27499664 component_unbind_all +EXPORT_SYMBOL_GPL vmlinux 0x27584731 ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x276091e9 of_dma_router_register +EXPORT_SYMBOL_GPL vmlinux 0x2774479c devm_phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0x278010dd devlink_port_attrs_pci_pf_set EXPORT_SYMBOL_GPL vmlinux 0x2795fc9d vcap_set_rule_set_actionset -EXPORT_SYMBOL_GPL vmlinux 0x27a15176 sdio_memcpy_toio -EXPORT_SYMBOL_GPL vmlinux 0x27a1caf7 pci_reset_function_locked -EXPORT_SYMBOL_GPL vmlinux 0x27da273f devm_regmap_field_alloc -EXPORT_SYMBOL_GPL vmlinux 0x27e6ccf7 devm_acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x27a086c9 of_device_compatible_match +EXPORT_SYMBOL_GPL vmlinux 0x27be0eb2 dev_pm_opp_enable +EXPORT_SYMBOL_GPL vmlinux 0x27bf6d12 devm_led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x27c46314 of_devfreq_cooling_register_power +EXPORT_SYMBOL_GPL vmlinux 0x27ccb3ff irq_domain_create_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x27cd0750 usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0x27da23d4 __fsverity_cleanup_inode +EXPORT_SYMBOL_GPL vmlinux 0x27f4ed8b udp_bpf_update_proto EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27f7b1ab sata_link_debounce EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages -EXPORT_SYMBOL_GPL vmlinux 0x280b7e89 gpiochip_populate_parent_fwspec_fourcell -EXPORT_SYMBOL_GPL vmlinux 0x2811ad87 cpufreq_freq_transition_end -EXPORT_SYMBOL_GPL vmlinux 0x28231891 uprobe_unregister -EXPORT_SYMBOL_GPL vmlinux 0x2825d797 crypto_get_default_null_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x281c93b4 raw_v4_match +EXPORT_SYMBOL_GPL vmlinux 0x281f85c5 sata_scr_valid EXPORT_SYMBOL_GPL vmlinux 0x282b3f94 __tracepoint_sched_util_est_se_tp EXPORT_SYMBOL_GPL vmlinux 0x282cdabc usb_led_activity -EXPORT_SYMBOL_GPL vmlinux 0x282d45e7 scsi_unregister_device_handler EXPORT_SYMBOL_GPL vmlinux 0x28310bcd kasprintf_strarray -EXPORT_SYMBOL_GPL vmlinux 0x28368d80 cpufreq_dbs_governor_stop -EXPORT_SYMBOL_GPL vmlinux 0x284ee7b4 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x283fe491 pinctrl_utils_reserve_map +EXPORT_SYMBOL_GPL vmlinux 0x285cd6d8 virtqueue_get_buf_ctx EXPORT_SYMBOL_GPL vmlinux 0x2864abc9 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x28668db8 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x28675977 of_genpd_add_provider_onecell EXPORT_SYMBOL_GPL vmlinux 0x286cc647 async_synchronize_cookie_domain -EXPORT_SYMBOL_GPL vmlinux 0x286fb082 clk_mux_determine_rate_flags -EXPORT_SYMBOL_GPL vmlinux 0x28747515 jh7110_reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x286e3250 dev_pm_opp_get_of_node +EXPORT_SYMBOL_GPL vmlinux 0x2870cc5c device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x2873ed02 ping_close +EXPORT_SYMBOL_GPL vmlinux 0x2874fd7e regulator_get_bypass_regmap EXPORT_SYMBOL_GPL vmlinux 0x2882d40e usb_role_switch_unregister -EXPORT_SYMBOL_GPL vmlinux 0x28956a2e sfp_bus_find_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x2891091b dev_pm_genpd_synced_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x2897b3c3 blk_rq_is_poll +EXPORT_SYMBOL_GPL vmlinux 0x2897dac3 devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x28986fcb clk_hw_get_num_parents +EXPORT_SYMBOL_GPL vmlinux 0x289c1638 usb_of_has_combined_node EXPORT_SYMBOL_GPL vmlinux 0x28aa6a67 call_rcu EXPORT_SYMBOL_GPL vmlinux 0x28ab4fb9 pinctrl_gpio_free EXPORT_SYMBOL_GPL vmlinux 0x28b030d2 of_overlay_notifier_unregister -EXPORT_SYMBOL_GPL vmlinux 0x28bed30f devm_usb_get_phy_by_phandle -EXPORT_SYMBOL_GPL vmlinux 0x28c4fc9d devm_pinctrl_unregister -EXPORT_SYMBOL_GPL vmlinux 0x28c5545b led_trigger_unregister_simple -EXPORT_SYMBOL_GPL vmlinux 0x28ca4f59 genphy_c45_an_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x28b6b5c2 pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x28bceeca tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x28ce9578 devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x28dbec01 devl_trap_policers_register +EXPORT_SYMBOL_GPL vmlinux 0x28e587e5 ping_unhash EXPORT_SYMBOL_GPL vmlinux 0x28ea198e dummy_irq_chip -EXPORT_SYMBOL_GPL vmlinux 0x28fc4eeb fb_deferred_io_init -EXPORT_SYMBOL_GPL vmlinux 0x29078b40 devlink_traps_unregister +EXPORT_SYMBOL_GPL vmlinux 0x28f3d735 umd_cleanup_helper +EXPORT_SYMBOL_GPL vmlinux 0x28fc8511 pm_wakeup_dev_event EXPORT_SYMBOL_GPL vmlinux 0x291876f3 mpi_ec_get_affine -EXPORT_SYMBOL_GPL vmlinux 0x291b8430 tty_kopen_exclusive -EXPORT_SYMBOL_GPL vmlinux 0x291fb99d rio_request_outb_dbell -EXPORT_SYMBOL_GPL vmlinux 0x2920c005 ping_seq_start -EXPORT_SYMBOL_GPL vmlinux 0x293c633d pci_msi_mask_irq -EXPORT_SYMBOL_GPL vmlinux 0x294ad9e0 device_release_driver -EXPORT_SYMBOL_GPL vmlinux 0x297a41a3 pinctrl_generic_get_group_count -EXPORT_SYMBOL_GPL vmlinux 0x29b59143 ip6_sk_update_pmtu -EXPORT_SYMBOL_GPL vmlinux 0x29c25570 crypto_unregister_shashes -EXPORT_SYMBOL_GPL vmlinux 0x29c48f20 __dev_fwnode_const -EXPORT_SYMBOL_GPL vmlinux 0x29c791cf ping_queue_rcv_skb -EXPORT_SYMBOL_GPL vmlinux 0x29d2abe7 acpi_dev_get_memory_resources -EXPORT_SYMBOL_GPL vmlinux 0x29da88f6 mctp_unregister_netdev +EXPORT_SYMBOL_GPL vmlinux 0x2925cebd pse_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x292e1abe devm_blk_crypto_profile_init +EXPORT_SYMBOL_GPL vmlinux 0x29343e03 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x294a58e1 clk_hw_forward_rate_request +EXPORT_SYMBOL_GPL vmlinux 0x294adaf9 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x29612014 __inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x2963b857 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x29757b45 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x297b17d2 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x297c619a relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x298f41a7 serial8250_do_get_mctrl +EXPORT_SYMBOL_GPL vmlinux 0x29944fb2 devl_port_unregister +EXPORT_SYMBOL_GPL vmlinux 0x29971346 usb_intf_get_dma_device +EXPORT_SYMBOL_GPL vmlinux 0x29a453c7 regulator_get_voltage_sel_regmap EXPORT_SYMBOL_GPL vmlinux 0x29ddb512 rhashtable_insert_slow -EXPORT_SYMBOL_GPL vmlinux 0x29ea77b8 tps65912_device_init EXPORT_SYMBOL_GPL vmlinux 0x29eba37f current_is_async -EXPORT_SYMBOL_GPL vmlinux 0x29f7831e uprobe_register_refctr -EXPORT_SYMBOL_GPL vmlinux 0x2a0928b1 umd_cleanup_helper -EXPORT_SYMBOL_GPL vmlinux 0x2a1a2b21 component_add +EXPORT_SYMBOL_GPL vmlinux 0x29edb97a pci_epc_init_notify +EXPORT_SYMBOL_GPL vmlinux 0x29fa3589 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x29fccba6 sk_psock_tls_strp_read +EXPORT_SYMBOL_GPL vmlinux 0x29fd1d18 acpi_device_fix_up_power +EXPORT_SYMBOL_GPL vmlinux 0x2a1a9985 pm_genpd_init +EXPORT_SYMBOL_GPL vmlinux 0x2a1f50ba sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x2a226613 edac_pci_create_generic_ctl EXPORT_SYMBOL_GPL vmlinux 0x2a2f04fa ip_tunnel_netlink_parms -EXPORT_SYMBOL_GPL vmlinux 0x2a34946f sk_msg_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2a5255ba __irq_resolve_mapping EXPORT_SYMBOL_GPL vmlinux 0x2a54dc33 register_kprobes -EXPORT_SYMBOL_GPL vmlinux 0x2a5a6f82 dm_noflush_suspending -EXPORT_SYMBOL_GPL vmlinux 0x2a5d2c39 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x2a61f486 pm_clk_remove_clk EXPORT_SYMBOL_GPL vmlinux 0x2a62cb3a ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2a68d5ed dev_pm_qos_add_ancestor_request EXPORT_SYMBOL_GPL vmlinux 0x2a70bd2d xas_split_alloc -EXPORT_SYMBOL_GPL vmlinux 0x2a722ba5 of_nvmem_cell_get EXPORT_SYMBOL_GPL vmlinux 0x2a7316da __SCK__tp_func_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x2a8094d8 blk_rq_prep_clone EXPORT_SYMBOL_GPL vmlinux 0x2a976d1c dax_synchronous EXPORT_SYMBOL_GPL vmlinux 0x2a9b236b rtm_getroute_parse_ip_proto -EXPORT_SYMBOL_GPL vmlinux 0x2aa412fb __irq_alloc_descs -EXPORT_SYMBOL_GPL vmlinux 0x2aa8131a device_match_of_node +EXPORT_SYMBOL_GPL vmlinux 0x2aa3e69c cpufreq_policy_transition_delay_us EXPORT_SYMBOL_GPL vmlinux 0x2aadad1a efi_capsule_update -EXPORT_SYMBOL_GPL vmlinux 0x2aaf1b14 __devm_clk_hw_register_gate -EXPORT_SYMBOL_GPL vmlinux 0x2abf6ff5 phy_restart_aneg -EXPORT_SYMBOL_GPL vmlinux 0x2ac357f1 vp_modern_set_features EXPORT_SYMBOL_GPL vmlinux 0x2ac7327d register_fprobe -EXPORT_SYMBOL_GPL vmlinux 0x2aca51cf fat_build_inode -EXPORT_SYMBOL_GPL vmlinux 0x2acb982a devm_kasprintf_strarray -EXPORT_SYMBOL_GPL vmlinux 0x2ad55195 devfreq_cooling_register -EXPORT_SYMBOL_GPL vmlinux 0x2adb809b vp_modern_probe -EXPORT_SYMBOL_GPL vmlinux 0x2ade4d29 of_reserved_mem_device_init_by_idx -EXPORT_SYMBOL_GPL vmlinux 0x2ae7d45a device_phy_find_device -EXPORT_SYMBOL_GPL vmlinux 0x2b0410d8 pm_generic_freeze_late -EXPORT_SYMBOL_GPL vmlinux 0x2b127df2 blockdev_superblock -EXPORT_SYMBOL_GPL vmlinux 0x2b3e8ea1 ext_pi_type1_crc64 -EXPORT_SYMBOL_GPL vmlinux 0x2b4392eb kernel_file_open +EXPORT_SYMBOL_GPL vmlinux 0x2acf80cf dst_blackhole_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x2ad3c52f sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x2ad7fe74 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x2adf2f7e fsverity_ioctl_read_metadata +EXPORT_SYMBOL_GPL vmlinux 0x2af32f8b __traceiter_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2b0d229d nop_posix_acl_default +EXPORT_SYMBOL_GPL vmlinux 0x2b315a8b net_ns_get_ownership +EXPORT_SYMBOL_GPL vmlinux 0x2b42f598 ping_seq_stop EXPORT_SYMBOL_GPL vmlinux 0x2b4509dd devlink_health_reporter_state_update -EXPORT_SYMBOL_GPL vmlinux 0x2b478d62 gpiod_unexport -EXPORT_SYMBOL_GPL vmlinux 0x2b4d27dc devlink_register -EXPORT_SYMBOL_GPL vmlinux 0x2b5d4338 of_pci_find_child_device -EXPORT_SYMBOL_GPL vmlinux 0x2b5d6598 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x2b4ac102 nvmem_cell_read_variable_le_u32 EXPORT_SYMBOL_GPL vmlinux 0x2b6150fb power_supply_temp2resist_simple -EXPORT_SYMBOL_GPL vmlinux 0x2b639fbb usb_lock_device_for_reset EXPORT_SYMBOL_GPL vmlinux 0x2b6d960d synth_event_cmd_init -EXPORT_SYMBOL_GPL vmlinux 0x2b8b9a18 serdev_device_alloc -EXPORT_SYMBOL_GPL vmlinux 0x2b8dcebc __dma_request_channel -EXPORT_SYMBOL_GPL vmlinux 0x2b9d9eca ata_sff_qc_fill_rtf -EXPORT_SYMBOL_GPL vmlinux 0x2b9dd51d scsi_dh_attach -EXPORT_SYMBOL_GPL vmlinux 0x2ba2c2d4 sk_attach_filter -EXPORT_SYMBOL_GPL vmlinux 0x2bb9ca77 pinconf_generic_dt_free_map -EXPORT_SYMBOL_GPL vmlinux 0x2bc59ebe devm_irq_alloc_generic_chip -EXPORT_SYMBOL_GPL vmlinux 0x2bc76adf vchan_dma_desc_free_list -EXPORT_SYMBOL_GPL vmlinux 0x2bd3b99a dm_get_md -EXPORT_SYMBOL_GPL vmlinux 0x2bd69375 clk_hw_determine_rate_no_reparent +EXPORT_SYMBOL_GPL vmlinux 0x2b716a49 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x2b717256 devm_create_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x2b7e84dc max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x2b915abb of_cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x2b9a9864 pci_sriov_configure_simple +EXPORT_SYMBOL_GPL vmlinux 0x2ba50fb5 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x2bb660c5 genphy_c45_read_link +EXPORT_SYMBOL_GPL vmlinux 0x2bbdacce __devm_regmap_init_mmio_clk EXPORT_SYMBOL_GPL vmlinux 0x2bd8a8bb blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x2bdc169d __traceiter_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0x2bdc9c7d list_lru_walk_one EXPORT_SYMBOL_GPL vmlinux 0x2bdf5ab0 pm_wakeup_pending -EXPORT_SYMBOL_GPL vmlinux 0x2be3e2e0 inet_csk_update_pmtu -EXPORT_SYMBOL_GPL vmlinux 0x2c166aac acpi_find_child_by_adr +EXPORT_SYMBOL_GPL vmlinux 0x2c0604eb xdp_return_frame_bulk +EXPORT_SYMBOL_GPL vmlinux 0x2c073091 dev_pm_opp_get_power +EXPORT_SYMBOL_GPL vmlinux 0x2c0f4d34 pin_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x2c16a290 irq_chip_release_resources_parent EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c2135b1 component_add_typed EXPORT_SYMBOL_GPL vmlinux 0x2c292dea __sbitmap_queue_get EXPORT_SYMBOL_GPL vmlinux 0x2c3054f9 net_inc_ingress_queue -EXPORT_SYMBOL_GPL vmlinux 0x2c43f5b0 udp_tunnel_nic_ops -EXPORT_SYMBOL_GPL vmlinux 0x2c5c4431 device_property_read_u8_array -EXPORT_SYMBOL_GPL vmlinux 0x2c5d42be kstrdup_quotable_cmdline +EXPORT_SYMBOL_GPL vmlinux 0x2c3133c3 pci_stop_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x2c43f8ca nf_checksum EXPORT_SYMBOL_GPL vmlinux 0x2c635527 arch_invalidate_pmem -EXPORT_SYMBOL_GPL vmlinux 0x2c63b0c2 acpi_subsys_poweroff -EXPORT_SYMBOL_GPL vmlinux 0x2c64f740 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x2c64bf0c of_mm_gpiochip_add_data EXPORT_SYMBOL_GPL vmlinux 0x2c66ac85 devlink_info_serial_number_put -EXPORT_SYMBOL_GPL vmlinux 0x2c675575 i2c_add_numbered_adapter -EXPORT_SYMBOL_GPL vmlinux 0x2c67c2e8 pinctrl_enable -EXPORT_SYMBOL_GPL vmlinux 0x2c6feaac acpi_subsys_suspend -EXPORT_SYMBOL_GPL vmlinux 0x2c747776 devlink_port_unregister -EXPORT_SYMBOL_GPL vmlinux 0x2c76d334 thermal_zone_get_slope -EXPORT_SYMBOL_GPL vmlinux 0x2c79b0d7 vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x2c6a3fbc dw_pcie_find_capability +EXPORT_SYMBOL_GPL vmlinux 0x2c7559ab tps6586x_get_version EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping EXPORT_SYMBOL_GPL vmlinux 0x2c834418 static_key_slow_inc EXPORT_SYMBOL_GPL vmlinux 0x2c8dd6b8 edac_mem_types +EXPORT_SYMBOL_GPL vmlinux 0x2c8e2661 devlink_traps_register EXPORT_SYMBOL_GPL vmlinux 0x2c97f8a2 of_reconfig_notifier_register -EXPORT_SYMBOL_GPL vmlinux 0x2c9d1a91 unregister_virtio_device -EXPORT_SYMBOL_GPL vmlinux 0x2ca2ca27 device_remove_software_node -EXPORT_SYMBOL_GPL vmlinux 0x2ca3fde9 blk_mq_freeze_queue_wait -EXPORT_SYMBOL_GPL vmlinux 0x2ca63b6f acpi_subsys_restore_early -EXPORT_SYMBOL_GPL vmlinux 0x2cbef73a devres_find +EXPORT_SYMBOL_GPL vmlinux 0x2c9fd010 vp_legacy_probe +EXPORT_SYMBOL_GPL vmlinux 0x2ca25d64 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x2ca92bac get_governor_parent_kobj EXPORT_SYMBOL_GPL vmlinux 0x2ccb56cb __tracepoint_block_bio_complete EXPORT_SYMBOL_GPL vmlinux 0x2ccf0565 vcap_rule_find_keysets -EXPORT_SYMBOL_GPL vmlinux 0x2cd2b91a lwtunnel_get_encap_size -EXPORT_SYMBOL_GPL vmlinux 0x2cdba045 acpi_subsys_runtime_resume -EXPORT_SYMBOL_GPL vmlinux 0x2ce478c9 bpf_offload_dev_match -EXPORT_SYMBOL_GPL vmlinux 0x2ce5a319 pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x2cd21d01 uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0x2cdbb39f get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x2cdc03a1 pm_schedule_suspend EXPORT_SYMBOL_GPL vmlinux 0x2ce61f33 __SCK__tp_func_br_fdb_add -EXPORT_SYMBOL_GPL vmlinux 0x2cf646bc vcap_keyfield_name -EXPORT_SYMBOL_GPL vmlinux 0x2d0703d1 spi_mem_dirmap_read -EXPORT_SYMBOL_GPL vmlinux 0x2d07c097 vfs_kern_mount -EXPORT_SYMBOL_GPL vmlinux 0x2d096c67 ping_seq_stop -EXPORT_SYMBOL_GPL vmlinux 0x2d0c8482 __crypto_alloc_tfm -EXPORT_SYMBOL_GPL vmlinux 0x2d10623e __dev_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x2cf2b659 bpf_event_output +EXPORT_SYMBOL_GPL vmlinux 0x2d0777ad of_icc_get_by_index +EXPORT_SYMBOL_GPL vmlinux 0x2d0f976c bdev_nr_zones EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait -EXPORT_SYMBOL_GPL vmlinux 0x2d2482ae devm_pinctrl_register -EXPORT_SYMBOL_GPL vmlinux 0x2d2771a0 of_phy_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x2d2d926b elv_register EXPORT_SYMBOL_GPL vmlinux 0x2d2dd36f kobj_ns_grab_current EXPORT_SYMBOL_GPL vmlinux 0x2d393f48 intel_soc_pmic_exec_mipi_pmic_seq_element +EXPORT_SYMBOL_GPL vmlinux 0x2d3afaf4 phy_driver_is_genphy_10g EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts -EXPORT_SYMBOL_GPL vmlinux 0x2d48d42a device_create_bin_file -EXPORT_SYMBOL_GPL vmlinux 0x2d55e3db set_capacity_and_notify +EXPORT_SYMBOL_GPL vmlinux 0x2d500392 bpf_trace_run10 EXPORT_SYMBOL_GPL vmlinux 0x2d5f69b3 rcu_read_unlock_strict EXPORT_SYMBOL_GPL vmlinux 0x2d609547 dax_direct_access -EXPORT_SYMBOL_GPL vmlinux 0x2d7183db thermal_remove_hwmon_sysfs -EXPORT_SYMBOL_GPL vmlinux 0x2d814472 component_master_add_with_match -EXPORT_SYMBOL_GPL vmlinux 0x2d83057f devl_resource_occ_get_register -EXPORT_SYMBOL_GPL vmlinux 0x2d85a00d dev_pm_genpd_get_next_hrtimer -EXPORT_SYMBOL_GPL vmlinux 0x2d879d2e vp_modern_get_features -EXPORT_SYMBOL_GPL vmlinux 0x2d8803b4 tpm1_do_selftest -EXPORT_SYMBOL_GPL vmlinux 0x2d8eeb29 i2c_dw_configure_master -EXPORT_SYMBOL_GPL vmlinux 0x2d8f37af subsys_virtual_register -EXPORT_SYMBOL_GPL vmlinux 0x2d960e5c of_dma_simple_xlate -EXPORT_SYMBOL_GPL vmlinux 0x2da70466 kgdb_register_io_module -EXPORT_SYMBOL_GPL vmlinux 0x2da70cac dm_hold -EXPORT_SYMBOL_GPL vmlinux 0x2daa5195 vp_modern_map_vq_notify -EXPORT_SYMBOL_GPL vmlinux 0x2dad1b3f __traceiter_br_fdb_update -EXPORT_SYMBOL_GPL vmlinux 0x2dadb5c0 perf_pmu_register -EXPORT_SYMBOL_GPL vmlinux 0x2dae6e2f auxiliary_find_device -EXPORT_SYMBOL_GPL vmlinux 0x2daf1c79 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0x2d61081c perf_report_aux_output_id +EXPORT_SYMBOL_GPL vmlinux 0x2d797d8f input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x2d819e45 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x2d930dcf pinconf_generic_dt_subnode_to_map +EXPORT_SYMBOL_GPL vmlinux 0x2da3e922 acct_bioset_exit +EXPORT_SYMBOL_GPL vmlinux 0x2da48a78 l3mdev_fib_table_rcu +EXPORT_SYMBOL_GPL vmlinux 0x2da51d70 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x2db4b97d inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x2db4ba05 serial8250_init_port EXPORT_SYMBOL_GPL vmlinux 0x2db833b9 usb_wait_anchor_empty_timeout -EXPORT_SYMBOL_GPL vmlinux 0x2dd6643d phy_led_trigger_change_speed -EXPORT_SYMBOL_GPL vmlinux 0x2dd6f8cc net_ns_type_operations -EXPORT_SYMBOL_GPL vmlinux 0x2de55116 register_virtio_device -EXPORT_SYMBOL_GPL vmlinux 0x2de5db3a scsi_check_sense -EXPORT_SYMBOL_GPL vmlinux 0x2dee51e3 xhci_gen_setup -EXPORT_SYMBOL_GPL vmlinux 0x2def0681 rio_release_inb_mbox -EXPORT_SYMBOL_GPL vmlinux 0x2df2768d palmas_ext_control_req_config EXPORT_SYMBOL_GPL vmlinux 0x2e028ae6 rcutorture_get_gp_data -EXPORT_SYMBOL_GPL vmlinux 0x2e04a723 regulator_list_voltage_pickable_linear_range -EXPORT_SYMBOL_GPL vmlinux 0x2e0a9c3b shash_free_singlespawn_instance -EXPORT_SYMBOL_GPL vmlinux 0x2e21a5fd __devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x2e16d9ed fuse_free_conn +EXPORT_SYMBOL_GPL vmlinux 0x2e1c5387 dma_resv_iter_first EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace -EXPORT_SYMBOL_GPL vmlinux 0x2e3eebe1 devlink_port_linecard_set -EXPORT_SYMBOL_GPL vmlinux 0x2e44aabe register_trace_event -EXPORT_SYMBOL_GPL vmlinux 0x2e4e3a4b percpu_free_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x2e3a1fd2 sk_msg_memcopy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0x2e51d7e4 usb_phy_roothub_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2e5d8ff2 pinconf_generic_dump_config EXPORT_SYMBOL_GPL vmlinux 0x2e66298c __SCK__tp_func_sched_util_est_cfs_tp -EXPORT_SYMBOL_GPL vmlinux 0x2e718569 raw_unhash_sk EXPORT_SYMBOL_GPL vmlinux 0x2e7887d2 nf_ct_set_closing -EXPORT_SYMBOL_GPL vmlinux 0x2e888b11 dev_pm_get_subsys_data -EXPORT_SYMBOL_GPL vmlinux 0x2e918f0b sata_pmp_error_handler -EXPORT_SYMBOL_GPL vmlinux 0x2ea67add of_alias_get_id -EXPORT_SYMBOL_GPL vmlinux 0x2eb1618c nd_region_provider_data +EXPORT_SYMBOL_GPL vmlinux 0x2e7b9daa raw_v6_match +EXPORT_SYMBOL_GPL vmlinux 0x2e7d3875 vp_modern_queue_address +EXPORT_SYMBOL_GPL vmlinux 0x2e8806ee hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2e95bb60 fwnode_property_get_reference_args +EXPORT_SYMBOL_GPL vmlinux 0x2e98b7cd of_remove_property +EXPORT_SYMBOL_GPL vmlinux 0x2e9ce8c9 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x2ea123ec inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x2ea32621 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x2eb06bb3 edac_pci_release_generic_ctl EXPORT_SYMBOL_GPL vmlinux 0x2ebb19fd execute_in_process_context EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable EXPORT_SYMBOL_GPL vmlinux 0x2eca6a19 phy_basic_t1s_p2mp_features_array -EXPORT_SYMBOL_GPL vmlinux 0x2ed04683 trace_array_set_clr_event -EXPORT_SYMBOL_GPL vmlinux 0x2edb38ef mmput_async -EXPORT_SYMBOL_GPL vmlinux 0x2edd54f4 pm_clk_add_notifier -EXPORT_SYMBOL_GPL vmlinux 0x2eec1219 ata_pci_shutdown_one +EXPORT_SYMBOL_GPL vmlinux 0x2ecc07e7 phy_led_trigger_change_speed +EXPORT_SYMBOL_GPL vmlinux 0x2eee9edb dm_internal_suspend_fast +EXPORT_SYMBOL_GPL vmlinux 0x2eefa4c3 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x2ef91648 gpiod_get_index EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string EXPORT_SYMBOL_GPL vmlinux 0x2f1ea064 __SCK__tp_func_xdp_bulk_tx -EXPORT_SYMBOL_GPL vmlinux 0x2f21275e of_property_read_variable_u32_array -EXPORT_SYMBOL_GPL vmlinux 0x2f252775 of_reserved_mem_device_init_by_name -EXPORT_SYMBOL_GPL vmlinux 0x2f26b638 ethnl_cable_test_amplitude +EXPORT_SYMBOL_GPL vmlinux 0x2f2186e0 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x2f2599dc rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x2f295a83 gov_attr_set_put EXPORT_SYMBOL_GPL vmlinux 0x2f2c95c4 flush_work -EXPORT_SYMBOL_GPL vmlinux 0x2f2cee3e dma_mmap_pages -EXPORT_SYMBOL_GPL vmlinux 0x2f36c368 blk_mq_end_request_batch -EXPORT_SYMBOL_GPL vmlinux 0x2f3b27fc perf_get_aux -EXPORT_SYMBOL_GPL vmlinux 0x2f3bfca0 tpm_send -EXPORT_SYMBOL_GPL vmlinux 0x2f3f3730 access_process_vm -EXPORT_SYMBOL_GPL vmlinux 0x2f403e8b vcap_select_min_rule_keyset +EXPORT_SYMBOL_GPL vmlinux 0x2f2f45d7 regmap_mmio_detach_clk +EXPORT_SYMBOL_GPL vmlinux 0x2f379733 alloc_skb_for_msg EXPORT_SYMBOL_GPL vmlinux 0x2f4880df static_key_slow_dec -EXPORT_SYMBOL_GPL vmlinux 0x2f4f652b powercap_unregister_control_type -EXPORT_SYMBOL_GPL vmlinux 0x2f529eef regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0x2f4ff2af task_cputime_adjusted +EXPORT_SYMBOL_GPL vmlinux 0x2f5b89dd ip6_datagram_connect_v6_only +EXPORT_SYMBOL_GPL vmlinux 0x2f5d5a09 usb_altnum_to_altsetting EXPORT_SYMBOL_GPL vmlinux 0x2f64415f unregister_acpi_hed_notifier -EXPORT_SYMBOL_GPL vmlinux 0x2f66c2f8 tpm2_get_tpm_pt -EXPORT_SYMBOL_GPL vmlinux 0x2f725c99 tcp_ca_openreq_child -EXPORT_SYMBOL_GPL vmlinux 0x2f77db9b mptcp_diag_fill_info -EXPORT_SYMBOL_GPL vmlinux 0x2f7808cc led_classdev_suspend -EXPORT_SYMBOL_GPL vmlinux 0x2f79efaa of_usb_get_dr_mode_by_phy -EXPORT_SYMBOL_GPL vmlinux 0x2f79fb53 irq_get_default_host -EXPORT_SYMBOL_GPL vmlinux 0x2f7eeb6e i2c_adapter_type -EXPORT_SYMBOL_GPL vmlinux 0x2f82b0f2 gpiochip_reqres_irq -EXPORT_SYMBOL_GPL vmlinux 0x2f8666ca rtnl_af_unregister -EXPORT_SYMBOL_GPL vmlinux 0x2fa1e5a3 vfs_removexattr -EXPORT_SYMBOL_GPL vmlinux 0x2faea23a strp_data_ready +EXPORT_SYMBOL_GPL vmlinux 0x2f665544 crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0x2f6b58c5 of_clk_get_parent_count +EXPORT_SYMBOL_GPL vmlinux 0x2f929f7c fib_add_nexthop +EXPORT_SYMBOL_GPL vmlinux 0x2fa00da8 devm_clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x2fa9ce6c crypto_register_ahashes +EXPORT_SYMBOL_GPL vmlinux 0x2fb9f107 regmap_check_range_table EXPORT_SYMBOL_GPL vmlinux 0x2fc1e0fe kmem_valid_obj -EXPORT_SYMBOL_GPL vmlinux 0x2fca11ce bus_create_file -EXPORT_SYMBOL_GPL vmlinux 0x2fdefab1 skb_mpls_push -EXPORT_SYMBOL_GPL vmlinux 0x2feb352e component_compare_dev_name -EXPORT_SYMBOL_GPL vmlinux 0x2fec02de dev_pm_qos_expose_flags -EXPORT_SYMBOL_GPL vmlinux 0x2ff0f9e7 devm_nvmem_device_get -EXPORT_SYMBOL_GPL vmlinux 0x2ff3918a of_icc_get_from_provider +EXPORT_SYMBOL_GPL vmlinux 0x2fc5b524 trace_get_event_file +EXPORT_SYMBOL_GPL vmlinux 0x2fcaf989 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0x2fdf844d bpf_prog_inc +EXPORT_SYMBOL_GPL vmlinux 0x2fef3bda __traceiter_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x2ff33894 __xdp_rxq_info_reg +EXPORT_SYMBOL_GPL vmlinux 0x2ffe43b1 devm_thermal_add_hwmon_sysfs EXPORT_SYMBOL_GPL vmlinux 0x30110a29 phy_eee_cap1_features EXPORT_SYMBOL_GPL vmlinux 0x3016fb40 cpu_latency_qos_add_request -EXPORT_SYMBOL_GPL vmlinux 0x3021bc07 clk_hw_set_rate_range -EXPORT_SYMBOL_GPL vmlinux 0x3028d766 fs_kobj -EXPORT_SYMBOL_GPL vmlinux 0x302e301a pinctrl_find_and_add_gpio_range -EXPORT_SYMBOL_GPL vmlinux 0x304780d9 __rio_local_write_config_32 -EXPORT_SYMBOL_GPL vmlinux 0x3053262d md_find_rdev_rcu -EXPORT_SYMBOL_GPL vmlinux 0x3053c115 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x30616a01 of_mm_gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x30619f91 blk_mq_start_stopped_hw_queue EXPORT_SYMBOL_GPL vmlinux 0x3061cfce ring_buffer_entries_cpu -EXPORT_SYMBOL_GPL vmlinux 0x306d6571 ip_local_out -EXPORT_SYMBOL_GPL vmlinux 0x308a3dca handle_untracked_irq -EXPORT_SYMBOL_GPL vmlinux 0x3093baf5 icc_enable -EXPORT_SYMBOL_GPL vmlinux 0x30b76c47 of_css -EXPORT_SYMBOL_GPL vmlinux 0x30c965fe regulator_get -EXPORT_SYMBOL_GPL vmlinux 0x30d49e74 debugfs_create_x64 -EXPORT_SYMBOL_GPL vmlinux 0x30d4f5b8 usb_bus_start_enum -EXPORT_SYMBOL_GPL vmlinux 0x30fe0f59 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x306ef51d mbox_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x3085db5d scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x3087dbd2 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x309e409e ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x30bdaa9c pinconf_generic_parse_dt_config +EXPORT_SYMBOL_GPL vmlinux 0x30c076f7 kernfs_path_from_node +EXPORT_SYMBOL_GPL vmlinux 0x30d0deef fscrypt_parse_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0x30d99e7c is_software_node +EXPORT_SYMBOL_GPL vmlinux 0x30f357b6 vfs_get_acl +EXPORT_SYMBOL_GPL vmlinux 0x30fa9b4b of_nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0x30ffb46e pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x30ffd96d usb_free_streams EXPORT_SYMBOL_GPL vmlinux 0x31019477 __ftrace_vbprintk -EXPORT_SYMBOL_GPL vmlinux 0x311b95b1 device_match_devt -EXPORT_SYMBOL_GPL vmlinux 0x311f8fad regulator_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x311fc77c iommu_attach_device_pasid -EXPORT_SYMBOL_GPL vmlinux 0x311fde8b devm_kmemdup +EXPORT_SYMBOL_GPL vmlinux 0x3101c378 blk_mq_sched_try_merge +EXPORT_SYMBOL_GPL vmlinux 0x31068b3e bio_add_zone_append_page +EXPORT_SYMBOL_GPL vmlinux 0x31222e73 netif_carrier_event EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave -EXPORT_SYMBOL_GPL vmlinux 0x312c9267 phy_power_off -EXPORT_SYMBOL_GPL vmlinux 0x312ff117 usb_wakeup_enabled_descendants -EXPORT_SYMBOL_GPL vmlinux 0x31311479 do_xdp_generic -EXPORT_SYMBOL_GPL vmlinux 0x3131d37d dev_pm_opp_of_get_opp_desc_node -EXPORT_SYMBOL_GPL vmlinux 0x3134b907 regulator_is_equal -EXPORT_SYMBOL_GPL vmlinux 0x3137b847 fwnode_graph_get_remote_port_parent +EXPORT_SYMBOL_GPL vmlinux 0x31338dc0 subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x3136c604 of_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x313e38bc crypto_unregister_template EXPORT_SYMBOL_GPL vmlinux 0x313ea5fd ipi_send_single -EXPORT_SYMBOL_GPL vmlinux 0x31470ff2 driver_set_override -EXPORT_SYMBOL_GPL vmlinux 0x3148c14d posix_acl_create -EXPORT_SYMBOL_GPL vmlinux 0x314a77d0 udp_destruct_common -EXPORT_SYMBOL_GPL vmlinux 0x316ce103 regulator_bulk_disable -EXPORT_SYMBOL_GPL vmlinux 0x318ba3b4 trace_output_call -EXPORT_SYMBOL_GPL vmlinux 0x318e00cd devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x314f7cd4 pl08x_filter_id +EXPORT_SYMBOL_GPL vmlinux 0x31670089 dummy_con +EXPORT_SYMBOL_GPL vmlinux 0x3175cf1c rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x318ef319 icc_enable EXPORT_SYMBOL_GPL vmlinux 0x3192d768 cpufreq_remove_update_util_hook -EXPORT_SYMBOL_GPL vmlinux 0x31a29a40 sched_show_task +EXPORT_SYMBOL_GPL vmlinux 0x31a853b2 ata_eh_read_sense_success_ncq_log EXPORT_SYMBOL_GPL vmlinux 0x31a95e8b ring_buffer_record_enable_cpu -EXPORT_SYMBOL_GPL vmlinux 0x31b3b9f3 devm_hwrng_register -EXPORT_SYMBOL_GPL vmlinux 0x31b3f6a2 regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x31ac0582 thermal_zone_device_enable +EXPORT_SYMBOL_GPL vmlinux 0x31af3a02 gpiod_set_raw_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x31b27428 serial8250_do_set_divisor +EXPORT_SYMBOL_GPL vmlinux 0x31c30e73 netdev_walk_all_upper_dev_rcu EXPORT_SYMBOL_GPL vmlinux 0x31c4727e list_lru_destroy EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports -EXPORT_SYMBOL_GPL vmlinux 0x31d11e7e cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0x31d06a6e dev_pm_genpd_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31d7f180 lwtunnel_encap_add_ops EXPORT_SYMBOL_GPL vmlinux 0x31db3f62 inet_pernet_hashinfo_alloc EXPORT_SYMBOL_GPL vmlinux 0x31dc42f5 __tracepoint_sched_util_est_cfs_tp -EXPORT_SYMBOL_GPL vmlinux 0x31e61340 genphy_c45_read_lpa -EXPORT_SYMBOL_GPL vmlinux 0x31f3387b dev_pm_opp_remove -EXPORT_SYMBOL_GPL vmlinux 0x320d83c7 get_governor_parent_kobj -EXPORT_SYMBOL_GPL vmlinux 0x3210ada1 ethtool_dev_mm_supported -EXPORT_SYMBOL_GPL vmlinux 0x321a27d4 phy_configure -EXPORT_SYMBOL_GPL vmlinux 0x321cf620 crypto_spawn_tfm -EXPORT_SYMBOL_GPL vmlinux 0x3221e9ce bdev_nr_zones +EXPORT_SYMBOL_GPL vmlinux 0x31df4d9a __inet_lookup_established EXPORT_SYMBOL_GPL vmlinux 0x32295715 dev_pm_opp_clear_config -EXPORT_SYMBOL_GPL vmlinux 0x32311d2a ata_noop_qc_prep -EXPORT_SYMBOL_GPL vmlinux 0x3258226c irqchip_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x3234a5f3 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x32401fdf vcap_get_rule_count_by_cookie +EXPORT_SYMBOL_GPL vmlinux 0x3245ea22 scsi_check_sense +EXPORT_SYMBOL_GPL vmlinux 0x3247a5df dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x3248d222 vp_legacy_remove +EXPORT_SYMBOL_GPL vmlinux 0x324bd5c5 transport_class_unregister EXPORT_SYMBOL_GPL vmlinux 0x325f9d61 vcap_rule_add_key_u72 -EXPORT_SYMBOL_GPL vmlinux 0x32625bf6 irq_chip_unmask_parent -EXPORT_SYMBOL_GPL vmlinux 0x3266a964 dev_pm_opp_find_freq_exact -EXPORT_SYMBOL_GPL vmlinux 0x32839539 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x3273e049 __device_reset +EXPORT_SYMBOL_GPL vmlinux 0x327e5eb7 synth_event_add_val +EXPORT_SYMBOL_GPL vmlinux 0x328131f9 bio_iov_iter_get_pages +EXPORT_SYMBOL_GPL vmlinux 0x329220a3 __devm_alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x329c5163 dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x32a69fa8 irq_generic_chip_ops EXPORT_SYMBOL_GPL vmlinux 0x32ab06cc irq_percpu_is_enabled -EXPORT_SYMBOL_GPL vmlinux 0x32bb806b of_property_read_variable_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x32ac7f0a __skb_tstamp_tx EXPORT_SYMBOL_GPL vmlinux 0x32bc0fcf preempt_notifier_dec EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register -EXPORT_SYMBOL_GPL vmlinux 0x32cc0e2b platform_device_unregister -EXPORT_SYMBOL_GPL vmlinux 0x32e5dccd spi_split_transfers_maxwords +EXPORT_SYMBOL_GPL vmlinux 0x32c7d36b fscrypt_file_open +EXPORT_SYMBOL_GPL vmlinux 0x32cb1cca tcp_splice_eof +EXPORT_SYMBOL_GPL vmlinux 0x32d693f5 vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x32e8c2d8 devm_irq_setup_generic_chip EXPORT_SYMBOL_GPL vmlinux 0x32f356ba rht_bucket_nested_insert -EXPORT_SYMBOL_GPL vmlinux 0x32fba2f9 edac_pci_del_device EXPORT_SYMBOL_GPL vmlinux 0x330010b6 cpuset_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x3300c7c1 perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0x3308e5a8 ata_cable_unknown EXPORT_SYMBOL_GPL vmlinux 0x330f6116 set_dax_synchronous -EXPORT_SYMBOL_GPL vmlinux 0x3315d3d7 __traceiter_br_mdb_full -EXPORT_SYMBOL_GPL vmlinux 0x3319daa8 fixup_user_fault +EXPORT_SYMBOL_GPL vmlinux 0x33101b73 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x3316f030 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x3317fcb9 ata_sas_port_resume EXPORT_SYMBOL_GPL vmlinux 0x331adc21 __tracepoint_neigh_update_done -EXPORT_SYMBOL_GPL vmlinux 0x331c423d pinctrl_register_and_init EXPORT_SYMBOL_GPL vmlinux 0x33338211 rcuref_get_slowpath -EXPORT_SYMBOL_GPL vmlinux 0x3343a307 fsverity_get_digest -EXPORT_SYMBOL_GPL vmlinux 0x3354dd06 fwnode_property_read_u16_array -EXPORT_SYMBOL_GPL vmlinux 0x3355e88c fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0x3345d9f7 iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0x33490671 devlink_resource_register +EXPORT_SYMBOL_GPL vmlinux 0x3352b3fe acpi_driver_match_device +EXPORT_SYMBOL_GPL vmlinux 0x3353613a usb_queue_reset_device EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq -EXPORT_SYMBOL_GPL vmlinux 0x335d5964 seg6_do_srh_encap -EXPORT_SYMBOL_GPL vmlinux 0x335ef991 bpf_verifier_log_write -EXPORT_SYMBOL_GPL vmlinux 0x3362e9bb irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x3368f3a8 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x336b9c64 led_init_core +EXPORT_SYMBOL_GPL vmlinux 0x336c8d9c bus_unregister_notifier EXPORT_SYMBOL_GPL vmlinux 0x3377539c badrange_add EXPORT_SYMBOL_GPL vmlinux 0x3388f837 cpu_latency_qos_update_request -EXPORT_SYMBOL_GPL vmlinux 0x338ceba2 mmc_send_status -EXPORT_SYMBOL_GPL vmlinux 0x33a2d72c regmap_write -EXPORT_SYMBOL_GPL vmlinux 0x33a31fdc gpiod_direction_output_raw -EXPORT_SYMBOL_GPL vmlinux 0x33a7c2c7 pm_generic_resume -EXPORT_SYMBOL_GPL vmlinux 0x33acdb9b ata_sff_wait_after_reset -EXPORT_SYMBOL_GPL vmlinux 0x33adfe0c inet_csk_get_port -EXPORT_SYMBOL_GPL vmlinux 0x33b9846b sdio_retune_crc_disable -EXPORT_SYMBOL_GPL vmlinux 0x33bf940d devlink_traps_register -EXPORT_SYMBOL_GPL vmlinux 0x33c1c9e3 cpufreq_driver_fast_switch -EXPORT_SYMBOL_GPL vmlinux 0x33c86700 devl_rate_nodes_destroy -EXPORT_SYMBOL_GPL vmlinux 0x33cefba5 sock_diag_unregister -EXPORT_SYMBOL_GPL vmlinux 0x33da4679 dev_pm_opp_find_bw_ceil -EXPORT_SYMBOL_GPL vmlinux 0x33dfb75d lwtunnel_state_alloc -EXPORT_SYMBOL_GPL vmlinux 0x33eb77ec devl_lock -EXPORT_SYMBOL_GPL vmlinux 0x34015683 evm_inode_init_security -EXPORT_SYMBOL_GPL vmlinux 0x340717a2 sdev_evt_send_simple -EXPORT_SYMBOL_GPL vmlinux 0x3421a38b raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x338991cd ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x338e8747 devm_reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x33958307 regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x3397f51d regulator_get_voltage_rdev +EXPORT_SYMBOL_GPL vmlinux 0x33bf16ec of_pm_clk_add_clk +EXPORT_SYMBOL_GPL vmlinux 0x33d2a422 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x33e8fe91 __traceiter_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x33f46dd3 cpufreq_disable_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x33f971c6 devm_gpiod_get_array +EXPORT_SYMBOL_GPL vmlinux 0x33fb72cb pci_epc_mem_free_addr EXPORT_SYMBOL_GPL vmlinux 0x34331f04 acpi_os_unmap_memory -EXPORT_SYMBOL_GPL vmlinux 0x3433babd vfs_test_lock EXPORT_SYMBOL_GPL vmlinux 0x34407691 crypto_has_ahash EXPORT_SYMBOL_GPL vmlinux 0x344361a1 kdb_register -EXPORT_SYMBOL_GPL vmlinux 0x34494b27 synth_event_create -EXPORT_SYMBOL_GPL vmlinux 0x3449bc25 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x34456ec5 blk_req_needs_zone_write_lock EXPORT_SYMBOL_GPL vmlinux 0x344a2c84 iomap_dio_complete EXPORT_SYMBOL_GPL vmlinux 0x3450ad94 mpi_set_ui -EXPORT_SYMBOL_GPL vmlinux 0x345e4c2f simple_rename_exchange -EXPORT_SYMBOL_GPL vmlinux 0x347fdb9e i2c_acpi_waive_d0_probe -EXPORT_SYMBOL_GPL vmlinux 0x349423c6 gpiochip_request_own_desc -EXPORT_SYMBOL_GPL vmlinux 0x349e76f9 __fscrypt_prepare_readdir -EXPORT_SYMBOL_GPL vmlinux 0x34a3a87c usb_put_intf -EXPORT_SYMBOL_GPL vmlinux 0x34a5cf76 sec_irq_init +EXPORT_SYMBOL_GPL vmlinux 0x345ab134 dev_pm_opp_find_freq_exact +EXPORT_SYMBOL_GPL vmlinux 0x345d6110 skcipher_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x34624fc8 phy_resolve_aneg_pause +EXPORT_SYMBOL_GPL vmlinux 0x34757a6d crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0x3495b060 usb_get_dr_mode EXPORT_SYMBOL_GPL vmlinux 0x34a7b142 __SCK__tp_func_rpm_suspend -EXPORT_SYMBOL_GPL vmlinux 0x34cd7f4d devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x34b318da regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0x34bee22f crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x34c3a8b3 sec_irq_init EXPORT_SYMBOL_GPL vmlinux 0x34dccfb2 context_tracking -EXPORT_SYMBOL_GPL vmlinux 0x34e4ff6f irq_chip_retrigger_hierarchy -EXPORT_SYMBOL_GPL vmlinux 0x34e86f0a fb_deferred_io_fsync -EXPORT_SYMBOL_GPL vmlinux 0x34e8c4e8 pwmchip_remove -EXPORT_SYMBOL_GPL vmlinux 0x34f62045 devfreq_event_enable_edev -EXPORT_SYMBOL_GPL vmlinux 0x35038c5a devm_regulator_register -EXPORT_SYMBOL_GPL vmlinux 0x3509d6a9 devm_spi_mem_dirmap_destroy -EXPORT_SYMBOL_GPL vmlinux 0x3509e1ee crypto_unregister_scomps +EXPORT_SYMBOL_GPL vmlinux 0x34e9feaa pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x34f30011 dev_pm_opp_of_get_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0x34fa042f crypto_get_default_null_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x350b8790 acpi_irq_create_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x350e50b0 dm_bio_get_target_bio_nr EXPORT_SYMBOL_GPL vmlinux 0x350f6ce5 tasklet_unlock_wait -EXPORT_SYMBOL_GPL vmlinux 0x3512a419 ptp_msg_is_sync +EXPORT_SYMBOL_GPL vmlinux 0x35109500 espintcp_queue_out +EXPORT_SYMBOL_GPL vmlinux 0x351f1cf0 bd_unlink_disk_holder EXPORT_SYMBOL_GPL vmlinux 0x352b3813 maxim_charger_calc_reg_current EXPORT_SYMBOL_GPL vmlinux 0x352ec68b bpf_offload_dev_destroy -EXPORT_SYMBOL_GPL vmlinux 0x35334c94 list_lru_walk_one -EXPORT_SYMBOL_GPL vmlinux 0x3534b9a0 tpmm_chip_alloc -EXPORT_SYMBOL_GPL vmlinux 0x35418fb9 sysfs_remove_files EXPORT_SYMBOL_GPL vmlinux 0x3542e347 phy_10gbit_features -EXPORT_SYMBOL_GPL vmlinux 0x3554129e devlink_params_unregister -EXPORT_SYMBOL_GPL vmlinux 0x35575224 acpi_dev_get_property -EXPORT_SYMBOL_GPL vmlinux 0x355a1c46 ata_bmdma_setup -EXPORT_SYMBOL_GPL vmlinux 0x35607f75 folio_wait_writeback_killable -EXPORT_SYMBOL_GPL vmlinux 0x3562fc80 skcipher_alloc_instance_simple +EXPORT_SYMBOL_GPL vmlinux 0x355fcf1d get_net_ns_by_pid EXPORT_SYMBOL_GPL vmlinux 0x3565a929 utf8_data_table -EXPORT_SYMBOL_GPL vmlinux 0x356d5c7e screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x3565d75d tpmm_chip_alloc +EXPORT_SYMBOL_GPL vmlinux 0x357ded0c rio_route_add_entry EXPORT_SYMBOL_GPL vmlinux 0x358ff60f twl_get_hfclk_rate -EXPORT_SYMBOL_GPL vmlinux 0x3590775a validate_xmit_skb_list -EXPORT_SYMBOL_GPL vmlinux 0x3590da48 iommu_group_remove_device -EXPORT_SYMBOL_GPL vmlinux 0x35942f30 regmap_multi_reg_write_bypassed -EXPORT_SYMBOL_GPL vmlinux 0x35a34f70 devm_irq_setup_generic_chip -EXPORT_SYMBOL_GPL vmlinux 0x35b99841 nvdimm_cmd_mask -EXPORT_SYMBOL_GPL vmlinux 0x35c10a4e debugfs_create_u8 -EXPORT_SYMBOL_GPL vmlinux 0x35cd4d86 edac_pci_add_device -EXPORT_SYMBOL_GPL vmlinux 0x35d21914 regmap_fields_update_bits_base -EXPORT_SYMBOL_GPL vmlinux 0x35d42d65 adp5520_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x35d99729 of_property_read_variable_u16_array -EXPORT_SYMBOL_GPL vmlinux 0x35de6b99 ata_pci_bmdma_init_one -EXPORT_SYMBOL_GPL vmlinux 0x35deeef7 failover_slave_unregister -EXPORT_SYMBOL_GPL vmlinux 0x35df1b3d kernfs_notify -EXPORT_SYMBOL_GPL vmlinux 0x35e96ff4 mdiobus_c45_modify_changed -EXPORT_SYMBOL_GPL vmlinux 0x35ec1d5d cpufreq_table_index_unsorted -EXPORT_SYMBOL_GPL vmlinux 0x35ef7a72 dev_pm_opp_get_freq -EXPORT_SYMBOL_GPL vmlinux 0x360b7160 jh7110_pinctrl_probe -EXPORT_SYMBOL_GPL vmlinux 0x362045ed sysfs_remove_mount_point -EXPORT_SYMBOL_GPL vmlinux 0x36236b43 cgroup_get_e_css +EXPORT_SYMBOL_GPL vmlinux 0x359513a0 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x3595e82a clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x35e7c725 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x35fb3089 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x35fcbec9 __traceiter_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0x36026c71 pci_ims_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x360d8374 platform_msi_domain_free_irqs EXPORT_SYMBOL_GPL vmlinux 0x36242943 switchdev_deferred_process -EXPORT_SYMBOL_GPL vmlinux 0x362442b9 param_ops_bool_enable_only -EXPORT_SYMBOL_GPL vmlinux 0x362ca62d lochnagar_update_config -EXPORT_SYMBOL_GPL vmlinux 0x363a7af6 da9052_free_irq -EXPORT_SYMBOL_GPL vmlinux 0x3643dccc extract_iter_to_sg -EXPORT_SYMBOL_GPL vmlinux 0x3649ba60 cpci_hp_register_bus -EXPORT_SYMBOL_GPL vmlinux 0x36531956 fixed_phy_change_carrier -EXPORT_SYMBOL_GPL vmlinux 0x365a9056 pinmux_generic_get_function_count -EXPORT_SYMBOL_GPL vmlinux 0x366da1c4 preempt_notifier_unregister -EXPORT_SYMBOL_GPL vmlinux 0x367ddb5d gpiod_cansleep -EXPORT_SYMBOL_GPL vmlinux 0x368611d2 rio_dma_prep_xfer +EXPORT_SYMBOL_GPL vmlinux 0x363a8e87 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x3644140c blkcg_punt_bio_submit +EXPORT_SYMBOL_GPL vmlinux 0x3644ab2d regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0x365c39b4 i2c_dw_acpi_configure +EXPORT_SYMBOL_GPL vmlinux 0x36883876 vcap_tc_flower_handler_arp_usage EXPORT_SYMBOL_GPL vmlinux 0x36898d6f gpiod_remove_hogs -EXPORT_SYMBOL_GPL vmlinux 0x368c5264 pci_epc_map_addr -EXPORT_SYMBOL_GPL vmlinux 0x3690e5f9 devm_regulator_bulk_put -EXPORT_SYMBOL_GPL vmlinux 0x369d2526 sk_set_peek_off -EXPORT_SYMBOL_GPL vmlinux 0x369d55d3 fwnode_property_read_u64_array -EXPORT_SYMBOL_GPL vmlinux 0x369eb598 irq_domain_create_legacy +EXPORT_SYMBOL_GPL vmlinux 0x369628d8 device_driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x369fb7e0 jh7110_pinctrl_probe EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot -EXPORT_SYMBOL_GPL vmlinux 0x36ae827c addrconf_prefix_rcv_add_addr -EXPORT_SYMBOL_GPL vmlinux 0x36b58bcd rz_mtu3_8bit_ch_write -EXPORT_SYMBOL_GPL vmlinux 0x36c034fb i2c_unregister_device -EXPORT_SYMBOL_GPL vmlinux 0x36c2dda9 rio_dma_prep_slave_sg -EXPORT_SYMBOL_GPL vmlinux 0x36c6c861 devl_trap_policers_register -EXPORT_SYMBOL_GPL vmlinux 0x36cb252a devm_pse_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x36a48c0c edac_mc_free +EXPORT_SYMBOL_GPL vmlinux 0x36cbe95e extcon_set_property_sync EXPORT_SYMBOL_GPL vmlinux 0x36d28dc0 trace_handle_return -EXPORT_SYMBOL_GPL vmlinux 0x36e3d0cf __of_reset_control_get -EXPORT_SYMBOL_GPL vmlinux 0x36f42a43 preempt_notifier_register -EXPORT_SYMBOL_GPL vmlinux 0x36f49099 ata_host_start -EXPORT_SYMBOL_GPL vmlinux 0x3700dfc9 percpu_is_read_locked -EXPORT_SYMBOL_GPL vmlinux 0x371676a5 badblocks_store -EXPORT_SYMBOL_GPL vmlinux 0x37246b9a pci_pr3_present -EXPORT_SYMBOL_GPL vmlinux 0x37316111 devm_of_icc_bulk_get -EXPORT_SYMBOL_GPL vmlinux 0x373936a8 xhci_dbg_trace -EXPORT_SYMBOL_GPL vmlinux 0x374c886e power_supply_class -EXPORT_SYMBOL_GPL vmlinux 0x37542940 fib_info_nh_uses_dev -EXPORT_SYMBOL_GPL vmlinux 0x37570f67 mbox_free_channel -EXPORT_SYMBOL_GPL vmlinux 0x375e0dfd irq_set_chained_handler_and_data -EXPORT_SYMBOL_GPL vmlinux 0x37606300 devm_request_pci_bus_resources +EXPORT_SYMBOL_GPL vmlinux 0x36d52ecd tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x36e0d828 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x36e5f031 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x36ec0658 fscrypt_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x370b6493 dma_async_device_channel_register +EXPORT_SYMBOL_GPL vmlinux 0x371d4c71 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x373511fd iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x3735da86 acpi_device_fix_up_power_extended +EXPORT_SYMBOL_GPL vmlinux 0x374a398a switchdev_port_obj_add +EXPORT_SYMBOL_GPL vmlinux 0x3753f743 divider_ro_round_rate_parent +EXPORT_SYMBOL_GPL vmlinux 0x375eb1a2 rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0x376db109 clk_hw_set_parent +EXPORT_SYMBOL_GPL vmlinux 0x376f2f1e pm_clk_resume +EXPORT_SYMBOL_GPL vmlinux 0x3770a465 rio_attach_device EXPORT_SYMBOL_GPL vmlinux 0x377bbcbc pm_suspend_target_state -EXPORT_SYMBOL_GPL vmlinux 0x377fe323 rtc_update_irq_enable EXPORT_SYMBOL_GPL vmlinux 0x3780997f blocking_notifier_chain_register_unique_prio -EXPORT_SYMBOL_GPL vmlinux 0x379e127f blk_bio_list_merge -EXPORT_SYMBOL_GPL vmlinux 0x37a89acb gov_attr_set_put +EXPORT_SYMBOL_GPL vmlinux 0x379169c4 cookie_tcp_reqsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x379621f2 mptcp_pm_get_subflows_max +EXPORT_SYMBOL_GPL vmlinux 0x37aaa947 iomap_release_folio +EXPORT_SYMBOL_GPL vmlinux 0x37b4d31d regulator_unregister_notifier EXPORT_SYMBOL_GPL vmlinux 0x37bf7be3 percpu_ref_exit -EXPORT_SYMBOL_GPL vmlinux 0x37c29447 apply_to_page_range -EXPORT_SYMBOL_GPL vmlinux 0x37cba19a iomap_release_folio -EXPORT_SYMBOL_GPL vmlinux 0x37d67939 __audit_inode_child -EXPORT_SYMBOL_GPL vmlinux 0x37d69be5 da9052_adc_manual_read -EXPORT_SYMBOL_GPL vmlinux 0x37de224d __io_uring_cmd_do_in_task -EXPORT_SYMBOL_GPL vmlinux 0x37e7357c fwnode_property_read_string -EXPORT_SYMBOL_GPL vmlinux 0x37ed3062 blk_lld_busy -EXPORT_SYMBOL_GPL vmlinux 0x37f2dac7 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x37c61ba4 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x37c7ba08 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0x37d4bfec usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x37ee4ad3 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x37fdb81d pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x37ff2a87 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0x37ffe595 devlink_alloc_ns EXPORT_SYMBOL_GPL vmlinux 0x3801776b __ioread32_copy -EXPORT_SYMBOL_GPL vmlinux 0x380299e2 pci_generic_config_read32 EXPORT_SYMBOL_GPL vmlinux 0x380dde36 power_supply_batinfo_ocv2cap -EXPORT_SYMBOL_GPL vmlinux 0x3820839b dev_pm_opp_find_level_exact +EXPORT_SYMBOL_GPL vmlinux 0x3825b8dc regulator_set_suspend_voltage EXPORT_SYMBOL_GPL vmlinux 0x38268b62 icc_bulk_enable -EXPORT_SYMBOL_GPL vmlinux 0x382bf66e xdp_convert_zc_to_xdp_frame -EXPORT_SYMBOL_GPL vmlinux 0x3832bb7c virtio_require_restricted_mem_acc +EXPORT_SYMBOL_GPL vmlinux 0x3831e1e7 devlink_flash_update_timeout_notify EXPORT_SYMBOL_GPL vmlinux 0x38374815 clear_selection -EXPORT_SYMBOL_GPL vmlinux 0x384a95e0 regulator_set_bypass_regmap -EXPORT_SYMBOL_GPL vmlinux 0x38538488 thermal_zone_device_priv -EXPORT_SYMBOL_GPL vmlinux 0x385c1bd3 __traceiter_rpm_return_int -EXPORT_SYMBOL_GPL vmlinux 0x38651a4c skb_to_sgvec_nomark +EXPORT_SYMBOL_GPL vmlinux 0x385234fe extract_iter_to_sg +EXPORT_SYMBOL_GPL vmlinux 0x3858d1f1 crypto_skcipher_decrypt EXPORT_SYMBOL_GPL vmlinux 0x3866e217 nvmem_device_write -EXPORT_SYMBOL_GPL vmlinux 0x3888f16e fuse_dev_install -EXPORT_SYMBOL_GPL vmlinux 0x38919443 rcu_trc_cmpxchg_need_qs -EXPORT_SYMBOL_GPL vmlinux 0x38967611 spi_controller_dma_map_mem_op_data +EXPORT_SYMBOL_GPL vmlinux 0x386c42ad devm_gpiochip_add_data_with_key +EXPORT_SYMBOL_GPL vmlinux 0x388b0594 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x3898d83f of_genpd_add_device EXPORT_SYMBOL_GPL vmlinux 0x389b64a2 static_key_count +EXPORT_SYMBOL_GPL vmlinux 0x389b85f5 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x38a0ef31 crypto_unregister_ahashes EXPORT_SYMBOL_GPL vmlinux 0x38aa1397 gpiod_add_lookup_table -EXPORT_SYMBOL_GPL vmlinux 0x38abb552 fwnode_device_is_available -EXPORT_SYMBOL_GPL vmlinux 0x38bc5103 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x38b16f5a vfs_kern_mount EXPORT_SYMBOL_GPL vmlinux 0x38c79fe0 alarm_try_to_cancel -EXPORT_SYMBOL_GPL vmlinux 0x38caa482 __netpoll_cleanup -EXPORT_SYMBOL_GPL vmlinux 0x38d5c9f5 gpiod_to_chip -EXPORT_SYMBOL_GPL vmlinux 0x38db8465 devm_pm_opp_of_add_table +EXPORT_SYMBOL_GPL vmlinux 0x38c7c98e fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x38c7e99c sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x38ce151a crypto_register_skciphers EXPORT_SYMBOL_GPL vmlinux 0x38e1fde7 mpi_set +EXPORT_SYMBOL_GPL vmlinux 0x38e40196 uart_handle_dcd_change EXPORT_SYMBOL_GPL vmlinux 0x38e5bc5a clk_set_rate_range -EXPORT_SYMBOL_GPL vmlinux 0x38ef58f3 devlink_sb_unregister EXPORT_SYMBOL_GPL vmlinux 0x38f704de dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x3909f0e4 usb_check_bulk_endpoints +EXPORT_SYMBOL_GPL vmlinux 0x390a1ca0 of_pci_get_slot_power_limit +EXPORT_SYMBOL_GPL vmlinux 0x390cf511 pm_genpd_remove +EXPORT_SYMBOL_GPL vmlinux 0x39117a57 devm_of_icc_get EXPORT_SYMBOL_GPL vmlinux 0x391502e0 verify_pkcs7_signature -EXPORT_SYMBOL_GPL vmlinux 0x3915135e ata_pci_device_do_resume -EXPORT_SYMBOL_GPL vmlinux 0x39213ca6 of_icc_bulk_get -EXPORT_SYMBOL_GPL vmlinux 0x3921520b dw_pcie_wait_for_link -EXPORT_SYMBOL_GPL vmlinux 0x392b939a usb_init_urb -EXPORT_SYMBOL_GPL vmlinux 0x392bc0a4 dev_fill_forward_path -EXPORT_SYMBOL_GPL vmlinux 0x392f3d45 devres_get -EXPORT_SYMBOL_GPL vmlinux 0x3932637b l3mdev_table_lookup_register -EXPORT_SYMBOL_GPL vmlinux 0x394ea080 rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x392ff2db elv_rqhash_del +EXPORT_SYMBOL_GPL vmlinux 0x3945bcb4 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x394b2d13 inet_csk_reqsk_queue_hash_add EXPORT_SYMBOL_GPL vmlinux 0x3958ccb6 __tracepoint_add_device_to_group -EXPORT_SYMBOL_GPL vmlinux 0x3971a975 __udp4_lib_lookup -EXPORT_SYMBOL_GPL vmlinux 0x3977e672 sfp_register_socket -EXPORT_SYMBOL_GPL vmlinux 0x39793492 dev_pm_opp_find_freq_floor +EXPORT_SYMBOL_GPL vmlinux 0x3966c14b pcie_flr +EXPORT_SYMBOL_GPL vmlinux 0x396f1f41 dev_pm_opp_of_remove_table +EXPORT_SYMBOL_GPL vmlinux 0x39760beb gpiochip_remove_pin_ranges +EXPORT_SYMBOL_GPL vmlinux 0x39788ac2 pci_epc_start EXPORT_SYMBOL_GPL vmlinux 0x397e2142 __SCK__tp_func_sched_cpu_capacity_tp -EXPORT_SYMBOL_GPL vmlinux 0x398617a4 xhci_drop_endpoint -EXPORT_SYMBOL_GPL vmlinux 0x398f4931 dev_get_tstats64 -EXPORT_SYMBOL_GPL vmlinux 0x39a10641 balloon_page_alloc -EXPORT_SYMBOL_GPL vmlinux 0x39a74be6 pm_genpd_init -EXPORT_SYMBOL_GPL vmlinux 0x39a832a3 irq_chip_eoi_parent +EXPORT_SYMBOL_GPL vmlinux 0x39931ccf of_led_get +EXPORT_SYMBOL_GPL vmlinux 0x399ab365 irqchip_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x399b4bdb __fscrypt_prepare_rename +EXPORT_SYMBOL_GPL vmlinux 0x399cb652 bpf_offload_dev_netdev_unregister EXPORT_SYMBOL_GPL vmlinux 0x39aa4888 usb_role_string -EXPORT_SYMBOL_GPL vmlinux 0x39b269a9 gpiochip_add_pingroup_range -EXPORT_SYMBOL_GPL vmlinux 0x39c15b44 of_pse_control_get +EXPORT_SYMBOL_GPL vmlinux 0x39be9a4e __of_phy_provider_register EXPORT_SYMBOL_GPL vmlinux 0x39c32aca __SCK__tp_func_neigh_event_send_done -EXPORT_SYMBOL_GPL vmlinux 0x39c8e364 fuse_conn_get -EXPORT_SYMBOL_GPL vmlinux 0x39cb5c39 pci_epf_add_vepf +EXPORT_SYMBOL_GPL vmlinux 0x39c8de4e acpi_data_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x39de3eca crypto_aes_set_key EXPORT_SYMBOL_GPL vmlinux 0x39ded098 rdma_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0x39e0d817 eventfd_fget EXPORT_SYMBOL_GPL vmlinux 0x39e3d714 vcap_add_rule -EXPORT_SYMBOL_GPL vmlinux 0x39f09103 ata_sff_irq_on -EXPORT_SYMBOL_GPL vmlinux 0x39f13b85 rtnl_put_cacheinfo -EXPORT_SYMBOL_GPL vmlinux 0x39f50930 ip6_datagram_release_cb -EXPORT_SYMBOL_GPL vmlinux 0x39fbec37 clk_gate_ops -EXPORT_SYMBOL_GPL vmlinux 0x3a02e0d9 spi_sync -EXPORT_SYMBOL_GPL vmlinux 0x3a039d74 ethnl_cable_test_free +EXPORT_SYMBOL_GPL vmlinux 0x3a043774 l3mdev_link_scope_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3a0e3036 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x3a1125e8 usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x3a114fe3 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x3a12395b devm_clk_get_prepared EXPORT_SYMBOL_GPL vmlinux 0x3a14f027 sbitmap_resize EXPORT_SYMBOL_GPL vmlinux 0x3a15013b ata_pack_xfermask -EXPORT_SYMBOL_GPL vmlinux 0x3a22c0a0 wakeup_source_add EXPORT_SYMBOL_GPL vmlinux 0x3a24fb2f percpu_ref_resurrect -EXPORT_SYMBOL_GPL vmlinux 0x3a31d08d tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x3a4a3565 devl_unregister EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish EXPORT_SYMBOL_GPL vmlinux 0x3a55981a static_key_enable_cpuslocked -EXPORT_SYMBOL_GPL vmlinux 0x3a6282b1 devm_mbox_controller_unregister -EXPORT_SYMBOL_GPL vmlinux 0x3a6f57a5 extcon_get_property -EXPORT_SYMBOL_GPL vmlinux 0x3a772d3a crypto_mod_get -EXPORT_SYMBOL_GPL vmlinux 0x3a785e09 gpiochip_line_is_valid -EXPORT_SYMBOL_GPL vmlinux 0x3a79de2b pinctrl_remove_gpio_range -EXPORT_SYMBOL_GPL vmlinux 0x3a81de78 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x3a709854 clk_hw_get_flags +EXPORT_SYMBOL_GPL vmlinux 0x3a72e360 pci_create_root_bus EXPORT_SYMBOL_GPL vmlinux 0x3a825420 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x3a86ced8 l3mdev_ifindex_lookup_by_table_id +EXPORT_SYMBOL_GPL vmlinux 0x3a8d3667 __regmap_init EXPORT_SYMBOL_GPL vmlinux 0x3a9be019 asymmetric_key_id_partial -EXPORT_SYMBOL_GPL vmlinux 0x3aa78235 regulator_bulk_unregister_supply_alias -EXPORT_SYMBOL_GPL vmlinux 0x3aaca58b usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x3a9fa535 virtio_require_restricted_mem_acc EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource -EXPORT_SYMBOL_GPL vmlinux 0x3ae450a2 usb_alloc_dev -EXPORT_SYMBOL_GPL vmlinux 0x3ae621e1 vp_modern_set_status EXPORT_SYMBOL_GPL vmlinux 0x3ae65f46 netdev_cmd_to_name +EXPORT_SYMBOL_GPL vmlinux 0x3af111a6 irq_domain_associate_many EXPORT_SYMBOL_GPL vmlinux 0x3b03208d power_supply_battery_info_has_prop -EXPORT_SYMBOL_GPL vmlinux 0x3b1e75c3 xfer_to_guest_mode_handle_work -EXPORT_SYMBOL_GPL vmlinux 0x3b36439b bus_remove_file -EXPORT_SYMBOL_GPL vmlinux 0x3b37bc73 get_pid_task -EXPORT_SYMBOL_GPL vmlinux 0x3b3b6632 of_usb_host_tpl_support -EXPORT_SYMBOL_GPL vmlinux 0x3b3b6b33 perf_event_sysfs_show -EXPORT_SYMBOL_GPL vmlinux 0x3b4856b1 sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x3b057b67 xdp_features_clear_redirect_target +EXPORT_SYMBOL_GPL vmlinux 0x3b0d4373 blk_mq_hctx_set_fq_lock_class +EXPORT_SYMBOL_GPL vmlinux 0x3b3872cc device_set_node +EXPORT_SYMBOL_GPL vmlinux 0x3b44c315 rtnl_get_net_ns_capable EXPORT_SYMBOL_GPL vmlinux 0x3b4c240a display_timings_release -EXPORT_SYMBOL_GPL vmlinux 0x3b504221 bpf_sk_storage_diag_put -EXPORT_SYMBOL_GPL vmlinux 0x3b74be21 netlink_strict_get_check +EXPORT_SYMBOL_GPL vmlinux 0x3b53eedd __mmc_send_status +EXPORT_SYMBOL_GPL vmlinux 0x3b6bbd3d sysfs_remove_groups EXPORT_SYMBOL_GPL vmlinux 0x3b78bf02 sunxi_ccu_get_mmc_timing_mode -EXPORT_SYMBOL_GPL vmlinux 0x3b91e901 usb_unanchor_urb -EXPORT_SYMBOL_GPL vmlinux 0x3b97d9a5 dev_pm_domain_detach -EXPORT_SYMBOL_GPL vmlinux 0x3ba1d5c8 nexthop_for_each_fib6_nh -EXPORT_SYMBOL_GPL vmlinux 0x3bb561f1 ata_sff_hsm_move -EXPORT_SYMBOL_GPL vmlinux 0x3bcab586 hvc_instantiate -EXPORT_SYMBOL_GPL vmlinux 0x3bce83de rio_map_outb_region +EXPORT_SYMBOL_GPL vmlinux 0x3b8c26c4 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x3b8fef04 io_uring_cmd_do_in_task_lazy +EXPORT_SYMBOL_GPL vmlinux 0x3b97e337 rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x3b9f4aa1 __fscrypt_prepare_readdir EXPORT_SYMBOL_GPL vmlinux 0x3bdb5d28 alg_test +EXPORT_SYMBOL_GPL vmlinux 0x3bdc838d devlink_port_type_eth_set +EXPORT_SYMBOL_GPL vmlinux 0x3bde6514 mptcp_pm_get_add_addr_signal_max +EXPORT_SYMBOL_GPL vmlinux 0x3be0e1b0 __rio_local_read_config_8 EXPORT_SYMBOL_GPL vmlinux 0x3be200ce phy_10gbit_fec_features +EXPORT_SYMBOL_GPL vmlinux 0x3be8715e ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x3be8a408 hwspin_lock_request +EXPORT_SYMBOL_GPL vmlinux 0x3bec33ef bus_register EXPORT_SYMBOL_GPL vmlinux 0x3bf17755 mpi_read_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3c013edf crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x3c1393a8 trace_event_buffer_commit EXPORT_SYMBOL_GPL vmlinux 0x3c1c3725 rcu_fwd_progress_check -EXPORT_SYMBOL_GPL vmlinux 0x3c1fb8fe find_ge_pid -EXPORT_SYMBOL_GPL vmlinux 0x3c237b8d __fscrypt_prepare_rename +EXPORT_SYMBOL_GPL vmlinux 0x3c214ee7 ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x3c22089e pm_generic_poweroff_late EXPORT_SYMBOL_GPL vmlinux 0x3c241c2c public_key_free -EXPORT_SYMBOL_GPL vmlinux 0x3c282723 __serdev_device_driver_register EXPORT_SYMBOL_GPL vmlinux 0x3c2b68f7 of_changeset_apply -EXPORT_SYMBOL_GPL vmlinux 0x3c3662c3 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x3c3658ca genphy_c45_read_mdix EXPORT_SYMBOL_GPL vmlinux 0x3c3c85d8 __SCK__tp_func_kfree_skb -EXPORT_SYMBOL_GPL vmlinux 0x3c47f0ac gpiod_put -EXPORT_SYMBOL_GPL vmlinux 0x3c4eca50 blk_mq_unfreeze_queue -EXPORT_SYMBOL_GPL vmlinux 0x3c508bee devres_for_each_res -EXPORT_SYMBOL_GPL vmlinux 0x3c65a4dc i2c_acpi_find_adapter_by_handle +EXPORT_SYMBOL_GPL vmlinux 0x3c40e4d1 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x3c43e956 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x3c442076 __dax_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x3c4b685b devm_watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x3c4b6b83 of_irq_get EXPORT_SYMBOL_GPL vmlinux 0x3c6785b7 block_pr_type_to_scsi +EXPORT_SYMBOL_GPL vmlinux 0x3c67e572 dma_map_sgtable EXPORT_SYMBOL_GPL vmlinux 0x3c681dc4 ring_buffer_record_disable -EXPORT_SYMBOL_GPL vmlinux 0x3c861a2b of_add_property -EXPORT_SYMBOL_GPL vmlinux 0x3c9212ad wait_on_page_writeback -EXPORT_SYMBOL_GPL vmlinux 0x3c9e2d03 kthread_mod_delayed_work -EXPORT_SYMBOL_GPL vmlinux 0x3cb44147 devlink_to_dev -EXPORT_SYMBOL_GPL vmlinux 0x3cc800ff fscrypt_set_context +EXPORT_SYMBOL_GPL vmlinux 0x3c70fade sfp_bus_add_upstream +EXPORT_SYMBOL_GPL vmlinux 0x3cb8c42b fuse_mount_remove +EXPORT_SYMBOL_GPL vmlinux 0x3ccdc6ca tps65912_device_init EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness EXPORT_SYMBOL_GPL vmlinux 0x3cd1b510 trace_vbprintk -EXPORT_SYMBOL_GPL vmlinux 0x3cd326e1 skb_gso_validate_mac_len -EXPORT_SYMBOL_GPL vmlinux 0x3cdb3e20 irq_domain_create_sim -EXPORT_SYMBOL_GPL vmlinux 0x3cdb62f1 ata_acpi_cbl_80wire -EXPORT_SYMBOL_GPL vmlinux 0x3cdd6575 perf_event_release_kernel -EXPORT_SYMBOL_GPL vmlinux 0x3d070a2f pci_cfg_access_lock -EXPORT_SYMBOL_GPL vmlinux 0x3d0e5f44 devl_dpipe_table_resource_set -EXPORT_SYMBOL_GPL vmlinux 0x3d101fb5 tty_port_register_device -EXPORT_SYMBOL_GPL vmlinux 0x3d1fc4c4 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x3cde7da2 rt288x_setup +EXPORT_SYMBOL_GPL vmlinux 0x3ce9b96d param_set_uint_minmax +EXPORT_SYMBOL_GPL vmlinux 0x3cec8c57 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x3cede50e uart_get_rs485_mode +EXPORT_SYMBOL_GPL vmlinux 0x3cf41204 dw_pcie_ep_init +EXPORT_SYMBOL_GPL vmlinux 0x3d17a367 wb_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x3d18f20c regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3d320721 find_asymmetric_key EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end -EXPORT_SYMBOL_GPL vmlinux 0x3d472840 rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0x3d47ac35 devl_resource_occ_get_register EXPORT_SYMBOL_GPL vmlinux 0x3d510a7b rcu_jiffies_till_stall_check -EXPORT_SYMBOL_GPL vmlinux 0x3d546b89 ata_sas_tport_add -EXPORT_SYMBOL_GPL vmlinux 0x3d5eb07c syscon_node_to_regmap -EXPORT_SYMBOL_GPL vmlinux 0x3d698961 usb_hcd_start_port_resume -EXPORT_SYMBOL_GPL vmlinux 0x3d7a1fb1 of_device_compatible_match +EXPORT_SYMBOL_GPL vmlinux 0x3d5abf6d __of_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x3d5d1186 __xdp_build_skb_from_frame +EXPORT_SYMBOL_GPL vmlinux 0x3d649347 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x3d6c1ff7 strp_check_rcv +EXPORT_SYMBOL_GPL vmlinux 0x3d722b38 sbitmap_bitmap_show +EXPORT_SYMBOL_GPL vmlinux 0x3d7b6276 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x3d7bd977 trace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x3d8322e9 clk_hw_get_parent EXPORT_SYMBOL_GPL vmlinux 0x3d866e05 __SCK__tp_func_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0x3d867e67 set_selection_kernel EXPORT_SYMBOL_GPL vmlinux 0x3d8baf3b zs_huge_class_size -EXPORT_SYMBOL_GPL vmlinux 0x3d9037b8 regmap_field_bulk_alloc -EXPORT_SYMBOL_GPL vmlinux 0x3d9df653 blkg_conf_exit +EXPORT_SYMBOL_GPL vmlinux 0x3d99cfd7 ip6_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x3d9a0518 kobject_uevent_env EXPORT_SYMBOL_GPL vmlinux 0x3daa2540 nf_hooks_lwtunnel_enabled -EXPORT_SYMBOL_GPL vmlinux 0x3dab1a12 fscrypt_mergeable_bio_bh -EXPORT_SYMBOL_GPL vmlinux 0x3dacadd5 skb_segment_list -EXPORT_SYMBOL_GPL vmlinux 0x3dafff4c led_set_brightness -EXPORT_SYMBOL_GPL vmlinux 0x3dc78260 clockevents_config_and_register -EXPORT_SYMBOL_GPL vmlinux 0x3dc87384 key_type_asymmetric -EXPORT_SYMBOL_GPL vmlinux 0x3dcc34af adp5520_clr_bits -EXPORT_SYMBOL_GPL vmlinux 0x3ddd4f1f thermal_zone_device_register -EXPORT_SYMBOL_GPL vmlinux 0x3ddf63cf device_for_each_child_reverse +EXPORT_SYMBOL_GPL vmlinux 0x3dd7c6b2 amba_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3de020ce iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0x3de1f960 dma_max_mapping_size EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final EXPORT_SYMBOL_GPL vmlinux 0x3df70c99 trace_clock_global -EXPORT_SYMBOL_GPL vmlinux 0x3e031bc8 genphy_c45_read_eee_abilities -EXPORT_SYMBOL_GPL vmlinux 0x3e20d01d pci_sriov_set_totalvfs -EXPORT_SYMBOL_GPL vmlinux 0x3e361279 devres_release -EXPORT_SYMBOL_GPL vmlinux 0x3e396102 tracing_snapshot_cond_enable -EXPORT_SYMBOL_GPL vmlinux 0x3e3e3764 crypto_register_templates +EXPORT_SYMBOL_GPL vmlinux 0x3dfc26b2 dev_pm_opp_remove_all_dynamic +EXPORT_SYMBOL_GPL vmlinux 0x3e1055f8 sk_msg_return +EXPORT_SYMBOL_GPL vmlinux 0x3e355ec0 regulator_set_load EXPORT_SYMBOL_GPL vmlinux 0x3e411ace sfp_select_interface -EXPORT_SYMBOL_GPL vmlinux 0x3e49f87d devl_rate_leaf_destroy -EXPORT_SYMBOL_GPL vmlinux 0x3e4a6f0e scsi_host_complete_all_commands -EXPORT_SYMBOL_GPL vmlinux 0x3e4e2dc7 devm_mipi_dsi_attach +EXPORT_SYMBOL_GPL vmlinux 0x3e438ea6 __regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x3e60f3c4 gov_update_cpu_data +EXPORT_SYMBOL_GPL vmlinux 0x3e6cdbb6 spi_controller_dma_unmap_mem_op_data EXPORT_SYMBOL_GPL vmlinux 0x3e6d9d64 __tracepoint_br_fdb_update EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer -EXPORT_SYMBOL_GPL vmlinux 0x3e7afb5a sock_map_close +EXPORT_SYMBOL_GPL vmlinux 0x3e7a3655 rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0x3e7de14a rio_add_mport_pw_handler +EXPORT_SYMBOL_GPL vmlinux 0x3e8c0ec6 raw_seq_start EXPORT_SYMBOL_GPL vmlinux 0x3e903560 ip_tunnel_netlink_encap_parms -EXPORT_SYMBOL_GPL vmlinux 0x3e9dff6d ip_build_and_send_pkt -EXPORT_SYMBOL_GPL vmlinux 0x3eabf840 i2c_parse_fw_timings -EXPORT_SYMBOL_GPL vmlinux 0x3eafb108 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x3ea60cfc perf_pmu_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3eb2206f pm_generic_freeze_noirq EXPORT_SYMBOL_GPL vmlinux 0x3eb6acb1 mas_next_range EXPORT_SYMBOL_GPL vmlinux 0x3ebaf33f sbitmap_queue_recalculate_wake_batch -EXPORT_SYMBOL_GPL vmlinux 0x3ec15f7c vp_modern_queue_vector +EXPORT_SYMBOL_GPL vmlinux 0x3ebd90a1 fuse_request_end EXPORT_SYMBOL_GPL vmlinux 0x3edb086b pse_control_put -EXPORT_SYMBOL_GPL vmlinux 0x3eef801e switchdev_port_obj_add EXPORT_SYMBOL_GPL vmlinux 0x3ef051c8 crypto_inc -EXPORT_SYMBOL_GPL vmlinux 0x3ef2f1b5 devm_of_platform_depopulate -EXPORT_SYMBOL_GPL vmlinux 0x3f023036 usb_get_status -EXPORT_SYMBOL_GPL vmlinux 0x3f1390dc mmc_prepare_busy_cmd -EXPORT_SYMBOL_GPL vmlinux 0x3f1ce540 user_update -EXPORT_SYMBOL_GPL vmlinux 0x3f205720 xhci_add_endpoint -EXPORT_SYMBOL_GPL vmlinux 0x3f250d8e __clk_hw_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x3f13cca8 virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0x3f170e7c ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x3f33ab86 devm_nvmem_cell_get EXPORT_SYMBOL_GPL vmlinux 0x3f491f49 reset_control_bulk_reset EXPORT_SYMBOL_GPL vmlinux 0x3f4b2b6c alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x3f4b4ab1 spi_sync EXPORT_SYMBOL_GPL vmlinux 0x3f59dc22 make_vfsgid -EXPORT_SYMBOL_GPL vmlinux 0x3f5e86a6 phy_destroy -EXPORT_SYMBOL_GPL vmlinux 0x3f69d635 gpiochip_line_is_persistent +EXPORT_SYMBOL_GPL vmlinux 0x3f600af2 pinctrl_add_gpio_ranges +EXPORT_SYMBOL_GPL vmlinux 0x3f60dfe9 sched_set_normal +EXPORT_SYMBOL_GPL vmlinux 0x3f697f1b __devm_irq_alloc_descs EXPORT_SYMBOL_GPL vmlinux 0x3f6d576a of_get_videomode -EXPORT_SYMBOL_GPL vmlinux 0x3f7a1edf pci_disable_pcie_error_reporting -EXPORT_SYMBOL_GPL vmlinux 0x3f7c8164 i2c_generic_scl_recovery +EXPORT_SYMBOL_GPL vmlinux 0x3f6e1d44 thermal_remove_hwmon_sysfs EXPORT_SYMBOL_GPL vmlinux 0x3f81523e list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0x3f8313d3 gpiod_get_index_optional EXPORT_SYMBOL_GPL vmlinux 0x3f84bcd7 dax_alive -EXPORT_SYMBOL_GPL vmlinux 0x3f904a21 skcipher_walk_aead_decrypt -EXPORT_SYMBOL_GPL vmlinux 0x3f9dac4a vp_modern_get_queue_size -EXPORT_SYMBOL_GPL vmlinux 0x3fa2d183 regulator_bulk_force_disable -EXPORT_SYMBOL_GPL vmlinux 0x3faa2ed9 crypto_alloc_tfm_node -EXPORT_SYMBOL_GPL vmlinux 0x3fabc644 perf_pmu_unregister -EXPORT_SYMBOL_GPL vmlinux 0x3fb67f5d input_ff_event -EXPORT_SYMBOL_GPL vmlinux 0x3fc3292c usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x3f862582 sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0x3fa73fc2 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x3fa9eb26 devfreq_event_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x3fb07e2e get_net_ns_by_id +EXPORT_SYMBOL_GPL vmlinux 0x3fcb8e29 devlink_port_attrs_pci_sf_set +EXPORT_SYMBOL_GPL vmlinux 0x3fdcaced sfp_register_socket EXPORT_SYMBOL_GPL vmlinux 0x3fe6c346 devlink_fmsg_binary_pair_put -EXPORT_SYMBOL_GPL vmlinux 0x3feb5453 usb_hcd_setup_local_mem -EXPORT_SYMBOL_GPL vmlinux 0x3fedc892 inet_csk_route_child_sock -EXPORT_SYMBOL_GPL vmlinux 0x3ffa84e9 ata_scsi_dma_need_drain -EXPORT_SYMBOL_GPL vmlinux 0x3ffb29bc nvdimm_security_setup_events +EXPORT_SYMBOL_GPL vmlinux 0x3fe8caa3 __devm_clk_hw_register_divider EXPORT_SYMBOL_GPL vmlinux 0x3ffdacf3 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x3fffc410 acpi_subsys_prepare EXPORT_SYMBOL_GPL vmlinux 0x400a024b acpi_scan_lock_release -EXPORT_SYMBOL_GPL vmlinux 0x400eb68f genphy_c45_loopback -EXPORT_SYMBOL_GPL vmlinux 0x4012bb07 device_create_managed_software_node -EXPORT_SYMBOL_GPL vmlinux 0x402335be filemap_migrate_folio -EXPORT_SYMBOL_GPL vmlinux 0x403235ec bpf_map_put +EXPORT_SYMBOL_GPL vmlinux 0x4013b642 crypto_hash_alg_has_setkey +EXPORT_SYMBOL_GPL vmlinux 0x402888bd dma_pci_p2pdma_supported +EXPORT_SYMBOL_GPL vmlinux 0x4038a7b2 fat_truncate_time +EXPORT_SYMBOL_GPL vmlinux 0x403c6173 pci_hp_add EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one -EXPORT_SYMBOL_GPL vmlinux 0x4051befa cgroup_path_ns -EXPORT_SYMBOL_GPL vmlinux 0x405651ac finish_rcuwait -EXPORT_SYMBOL_GPL vmlinux 0x406390b5 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x4051ff68 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x4054929f i2c_slave_register +EXPORT_SYMBOL_GPL vmlinux 0x405f1dd7 call_switchdev_blocking_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x40651746 of_phandle_iterator_next EXPORT_SYMBOL_GPL vmlinux 0x4065d168 pm_print_active_wakeup_sources -EXPORT_SYMBOL_GPL vmlinux 0x40687838 acpi_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x40674dc4 nvdimm_name +EXPORT_SYMBOL_GPL vmlinux 0x406bde81 event_triggers_post_call EXPORT_SYMBOL_GPL vmlinux 0x406c4cb1 hrtimer_resolution -EXPORT_SYMBOL_GPL vmlinux 0x406e1171 dw_pcie_host_init +EXPORT_SYMBOL_GPL vmlinux 0x406d48af sysfs_change_owner EXPORT_SYMBOL_GPL vmlinux 0x4071b517 out_of_line_wait_on_bit_timeout -EXPORT_SYMBOL_GPL vmlinux 0x40904622 devm_clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x40860174 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x4086f587 vcap_keyfieldset EXPORT_SYMBOL_GPL vmlinux 0x4099f919 tun_ptr_free -EXPORT_SYMBOL_GPL vmlinux 0x40a0e963 mmu_interval_notifier_insert -EXPORT_SYMBOL_GPL vmlinux 0x40a7dc20 pci_create_root_bus -EXPORT_SYMBOL_GPL vmlinux 0x40ac8119 fib_rules_register -EXPORT_SYMBOL_GPL vmlinux 0x40ad0d9f driver_for_each_device -EXPORT_SYMBOL_GPL vmlinux 0x40ad5325 clk_hw_is_prepared -EXPORT_SYMBOL_GPL vmlinux 0x40ae89dd platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x40a5efbd cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0x40a648db device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x40af2316 unregister_virtio_device EXPORT_SYMBOL_GPL vmlinux 0x40c51538 from_vfsuid -EXPORT_SYMBOL_GPL vmlinux 0x40d046f9 regulator_suspend_disable -EXPORT_SYMBOL_GPL vmlinux 0x40d5c0b3 dst_blackhole_redirect -EXPORT_SYMBOL_GPL vmlinux 0x40d7f63d ehci_reset -EXPORT_SYMBOL_GPL vmlinux 0x40e6068f pse_controller_unregister -EXPORT_SYMBOL_GPL vmlinux 0x40e60d1f inet_csk_reqsk_queue_hash_add -EXPORT_SYMBOL_GPL vmlinux 0x40e8c2b1 of_reset_control_array_get +EXPORT_SYMBOL_GPL vmlinux 0x40c8326b of_reconfig_get_state_change +EXPORT_SYMBOL_GPL vmlinux 0x40ce458a irq_chip_unmask_parent +EXPORT_SYMBOL_GPL vmlinux 0x40d487e7 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x40dc213d fat_time_fat2unix +EXPORT_SYMBOL_GPL vmlinux 0x40e85ac6 devlink_net EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put -EXPORT_SYMBOL_GPL vmlinux 0x40f123ba bio_trim +EXPORT_SYMBOL_GPL vmlinux 0x40f30b3e vp_legacy_set_features +EXPORT_SYMBOL_GPL vmlinux 0x40f681d9 vfs_splice_read EXPORT_SYMBOL_GPL vmlinux 0x40f8b94e ring_buffer_iter_dropped EXPORT_SYMBOL_GPL vmlinux 0x40f8bd4e klist_add_before EXPORT_SYMBOL_GPL vmlinux 0x4100a662 clk_get_scaled_duty_cycle -EXPORT_SYMBOL_GPL vmlinux 0x41145cc4 pci_disable_sriov -EXPORT_SYMBOL_GPL vmlinux 0x411ef5d8 clk_hw_set_parent +EXPORT_SYMBOL_GPL vmlinux 0x410773f2 call_switchdev_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x41116c4d pci_epc_mem_exit EXPORT_SYMBOL_GPL vmlinux 0x41277da0 proc_dou8vec_minmax EXPORT_SYMBOL_GPL vmlinux 0x412bc681 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x412d546f platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x41387766 rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x41416796 rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x41447246 gpiochip_irq_domain_deactivate +EXPORT_SYMBOL_GPL vmlinux 0x414a07b2 devfreq_event_set_event EXPORT_SYMBOL_GPL vmlinux 0x414d119a videomode_from_timings -EXPORT_SYMBOL_GPL vmlinux 0x414da717 crypto_init_akcipher_ops_sig -EXPORT_SYMBOL_GPL vmlinux 0x4152d2b4 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x414fcdab led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x4150931a proc_create_net_single +EXPORT_SYMBOL_GPL vmlinux 0x41539bec devm_led_trigger_register EXPORT_SYMBOL_GPL vmlinux 0x415aef51 freq_qos_add_request -EXPORT_SYMBOL_GPL vmlinux 0x41753374 regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x4165ce6d skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x416899ce usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x416b31e1 i2c_slave_event +EXPORT_SYMBOL_GPL vmlinux 0x417a88a1 clkdev_create +EXPORT_SYMBOL_GPL vmlinux 0x417f6af0 fuse_dev_fiq_ops +EXPORT_SYMBOL_GPL vmlinux 0x417fe85e dst_cache_set_ip4 +EXPORT_SYMBOL_GPL vmlinux 0x4180da04 nf_nat_hook EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval -EXPORT_SYMBOL_GPL vmlinux 0x418ca987 pci_epc_get_features EXPORT_SYMBOL_GPL vmlinux 0x419e7efd sfp_module_stop -EXPORT_SYMBOL_GPL vmlinux 0x41a46f12 starfive_jh71x0_clk_ops EXPORT_SYMBOL_GPL vmlinux 0x41b9a6e6 bsg_unregister_queue -EXPORT_SYMBOL_GPL vmlinux 0x41ba3ddc rt_mutex_trylock -EXPORT_SYMBOL_GPL vmlinux 0x41bce855 dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x41bc6b5e led_classdev_unregister EXPORT_SYMBOL_GPL vmlinux 0x41c36b9b __tracepoint_ata_bmdma_setup -EXPORT_SYMBOL_GPL vmlinux 0x41c7250e pinmux_generic_remove_function -EXPORT_SYMBOL_GPL vmlinux 0x41e08bd1 pci_disable_rom -EXPORT_SYMBOL_GPL vmlinux 0x41e7a8c5 netdev_walk_all_lower_dev_rcu -EXPORT_SYMBOL_GPL vmlinux 0x41eb9b0b pci_enable_sriov EXPORT_SYMBOL_GPL vmlinux 0x41ed3cec eventfd_ctx_remove_wait_queue -EXPORT_SYMBOL_GPL vmlinux 0x41fed182 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x41ee1664 icc_node_del EXPORT_SYMBOL_GPL vmlinux 0x42041512 i2c_get_dma_safe_msg_buf +EXPORT_SYMBOL_GPL vmlinux 0x4207fef6 usb_sg_cancel EXPORT_SYMBOL_GPL vmlinux 0x420f3d01 nvmem_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x4233c154 bpf_trace_run11 -EXPORT_SYMBOL_GPL vmlinux 0x42348abb led_put -EXPORT_SYMBOL_GPL vmlinux 0x42476747 __ata_ehi_push_desc -EXPORT_SYMBOL_GPL vmlinux 0x42521737 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x420fa925 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x4211e63a ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4224aa32 kill_device +EXPORT_SYMBOL_GPL vmlinux 0x4236c77e ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x42403105 pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x42493175 irq_chip_mask_parent +EXPORT_SYMBOL_GPL vmlinux 0x424a35bf __virtio_unbreak_device +EXPORT_SYMBOL_GPL vmlinux 0x424ec59e iov_iter_is_aligned +EXPORT_SYMBOL_GPL vmlinux 0x424f384a crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x4252c881 devm_clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x42582de1 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x426194be attribute_container_register EXPORT_SYMBOL_GPL vmlinux 0x42635d55 pm_suspend_global_flags EXPORT_SYMBOL_GPL vmlinux 0x426452a3 acpi_evaluation_failure_warn -EXPORT_SYMBOL_GPL vmlinux 0x426556ef mdiobus_c45_modify EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active -EXPORT_SYMBOL_GPL vmlinux 0x4293a048 devlink_is_reload_failed +EXPORT_SYMBOL_GPL vmlinux 0x42830d29 devm_hwspin_lock_request_specific EXPORT_SYMBOL_GPL vmlinux 0x429c3f9c reboot_mode -EXPORT_SYMBOL_GPL vmlinux 0x42ab7839 phy_power_on -EXPORT_SYMBOL_GPL vmlinux 0x42acc114 dev_pm_opp_of_add_table -EXPORT_SYMBOL_GPL vmlinux 0x42b5e15d hwspin_lock_request -EXPORT_SYMBOL_GPL vmlinux 0x42b99e34 dw_pcie_ep_init_complete -EXPORT_SYMBOL_GPL vmlinux 0x42bea5cd ata_sff_tf_read -EXPORT_SYMBOL_GPL vmlinux 0x42cd8965 pcie_reset_flr -EXPORT_SYMBOL_GPL vmlinux 0x42cf111a usb_add_phy_dev -EXPORT_SYMBOL_GPL vmlinux 0x42d16358 rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0x42a77179 trace_array_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0x42b5d852 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x42c5c5f8 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x42c8dc31 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x42cb856f stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x42cff328 soc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x42d07d2e __spi_alloc_controller +EXPORT_SYMBOL_GPL vmlinux 0x42d2c3ed device_node_to_regmap EXPORT_SYMBOL_GPL vmlinux 0x42e732cb vcap_rule_add_key_u128 +EXPORT_SYMBOL_GPL vmlinux 0x42edd8e3 devm_of_led_get +EXPORT_SYMBOL_GPL vmlinux 0x42f1dd89 xhci_reset_bandwidth EXPORT_SYMBOL_GPL vmlinux 0x42f728aa mctrl_gpio_get_outputs EXPORT_SYMBOL_GPL vmlinux 0x430d88ec __traceiter_arm_event -EXPORT_SYMBOL_GPL vmlinux 0x4312059c sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x431ce770 devm_thermal_of_zone_register EXPORT_SYMBOL_GPL vmlinux 0x4320861c group_cpus_evenly -EXPORT_SYMBOL_GPL vmlinux 0x4329c56e power_supply_property_is_writeable -EXPORT_SYMBOL_GPL vmlinux 0x43393275 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x4335d8eb tpm_chip_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4336ef7e skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x433edaea crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x43415575 irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x435a7796 devlink_port_attrs_pci_vf_set EXPORT_SYMBOL_GPL vmlinux 0x4368695e ftrace_set_filter_ips EXPORT_SYMBOL_GPL vmlinux 0x436d817f mpi_clear_bit EXPORT_SYMBOL_GPL vmlinux 0x4372f3c2 sbitmap_init_node -EXPORT_SYMBOL_GPL vmlinux 0x437dc55d clk_hw_get_parent_by_index +EXPORT_SYMBOL_GPL vmlinux 0x437adf3f vp_modern_get_queue_reset +EXPORT_SYMBOL_GPL vmlinux 0x437af2e8 usb_get_maximum_ssp_rate EXPORT_SYMBOL_GPL vmlinux 0x437eb1df ipv6_mod_enabled -EXPORT_SYMBOL_GPL vmlinux 0x43853ce1 iomap_bmap +EXPORT_SYMBOL_GPL vmlinux 0x43890b50 devm_device_add_group EXPORT_SYMBOL_GPL vmlinux 0x438d8df2 iova_cache_get +EXPORT_SYMBOL_GPL vmlinux 0x43939f19 serdev_controller_alloc +EXPORT_SYMBOL_GPL vmlinux 0x439d4a1a tty_port_register_device_serdev +EXPORT_SYMBOL_GPL vmlinux 0x43a04264 power_supply_changed EXPORT_SYMBOL_GPL vmlinux 0x43aa319e lease_register_notifier -EXPORT_SYMBOL_GPL vmlinux 0x43ac46e5 fwnode_get_phy_node -EXPORT_SYMBOL_GPL vmlinux 0x43af15e3 scsi_build_sense -EXPORT_SYMBOL_GPL vmlinux 0x43c6a27a dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0x43ae6ca3 tcp_is_ulp_esp +EXPORT_SYMBOL_GPL vmlinux 0x43af7997 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x43c28860 unix_outq_len EXPORT_SYMBOL_GPL vmlinux 0x43caa7c0 regmap_irq_get_irq_reg_linear -EXPORT_SYMBOL_GPL vmlinux 0x43cd088e alloc_dax_region +EXPORT_SYMBOL_GPL vmlinux 0x43cf77d6 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x43d2569d devlink_resource_occ_get_unregister EXPORT_SYMBOL_GPL vmlinux 0x43f81957 clk_round_rate EXPORT_SYMBOL_GPL vmlinux 0x43f92edd wait_for_initramfs EXPORT_SYMBOL_GPL vmlinux 0x4401e6c2 mpi_cmpabs -EXPORT_SYMBOL_GPL vmlinux 0x44067de9 fsverity_ioctl_measure -EXPORT_SYMBOL_GPL vmlinux 0x441133ed fscrypt_prepare_new_inode -EXPORT_SYMBOL_GPL vmlinux 0x441aeeb2 smpboot_register_percpu_thread -EXPORT_SYMBOL_GPL vmlinux 0x441f8cd5 __traceiter_devlink_trap_report -EXPORT_SYMBOL_GPL vmlinux 0x442bbb42 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x4406a234 fib6_get_table +EXPORT_SYMBOL_GPL vmlinux 0x4413b7d3 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x44247823 rio_mport_write_config_32 EXPORT_SYMBOL_GPL vmlinux 0x442d149e rhltable_init +EXPORT_SYMBOL_GPL vmlinux 0x442dd825 usb_autopm_put_interface EXPORT_SYMBOL_GPL vmlinux 0x442deaa9 poll_state_synchronize_rcu -EXPORT_SYMBOL_GPL vmlinux 0x442e9b45 iomap_ioend_try_merge +EXPORT_SYMBOL_GPL vmlinux 0x442f1d1b __pm_runtime_suspend EXPORT_SYMBOL_GPL vmlinux 0x4439bcd2 __SCK__tp_func_neigh_event_send_dead -EXPORT_SYMBOL_GPL vmlinux 0x44402ffa pci_ecam_create -EXPORT_SYMBOL_GPL vmlinux 0x44427a36 switchdev_handle_port_attr_set -EXPORT_SYMBOL_GPL vmlinux 0x44471199 tty_get_icount -EXPORT_SYMBOL_GPL vmlinux 0x44477f31 crypto_grab_skcipher -EXPORT_SYMBOL_GPL vmlinux 0x44482c2e edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x443ae2a2 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x444bff67 pci_epc_set_msix EXPORT_SYMBOL_GPL vmlinux 0x444f1735 cpu_pm_register_notifier -EXPORT_SYMBOL_GPL vmlinux 0x44538abd pci_scan_child_bus -EXPORT_SYMBOL_GPL vmlinux 0x446218d5 iommu_unmap -EXPORT_SYMBOL_GPL vmlinux 0x446b1d2f raw_abort EXPORT_SYMBOL_GPL vmlinux 0x4471a51d vhost_task_stop +EXPORT_SYMBOL_GPL vmlinux 0x4483ce49 led_trigger_write EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe -EXPORT_SYMBOL_GPL vmlinux 0x44944866 iomap_read_folio -EXPORT_SYMBOL_GPL vmlinux 0x44a885e3 tpm_pcr_read -EXPORT_SYMBOL_GPL vmlinux 0x44b00982 extcon_set_property +EXPORT_SYMBOL_GPL vmlinux 0x4491df84 iomap_readahead +EXPORT_SYMBOL_GPL vmlinux 0x44981bd5 ncsi_stop_dev +EXPORT_SYMBOL_GPL vmlinux 0x449bc36e pci_epc_write_header +EXPORT_SYMBOL_GPL vmlinux 0x44a01403 gpiod_get_array_value +EXPORT_SYMBOL_GPL vmlinux 0x44b8d2c7 of_genpd_parse_idle_states EXPORT_SYMBOL_GPL vmlinux 0x44bae227 bit_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x44bf4325 rio_mport_write_config_16 EXPORT_SYMBOL_GPL vmlinux 0x44c10a52 kvfree_call_rcu EXPORT_SYMBOL_GPL vmlinux 0x44cf8cf0 blk_zone_cond_str -EXPORT_SYMBOL_GPL vmlinux 0x44d9a7f3 ata_pci_device_suspend -EXPORT_SYMBOL_GPL vmlinux 0x44dc1dab device_link_add EXPORT_SYMBOL_GPL vmlinux 0x44e58976 __tracepoint_cpu_idle -EXPORT_SYMBOL_GPL vmlinux 0x44efbd29 add_swap_extent -EXPORT_SYMBOL_GPL vmlinux 0x45000adf cpufreq_frequency_table_get_index -EXPORT_SYMBOL_GPL vmlinux 0x4500a8f6 transport_configure_device -EXPORT_SYMBOL_GPL vmlinux 0x450349fd unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x44e75554 anon_transport_class_unregister EXPORT_SYMBOL_GPL vmlinux 0x4507f4a8 cpuhp_tasks_frozen -EXPORT_SYMBOL_GPL vmlinux 0x452d03ba mbox_chan_received_data -EXPORT_SYMBOL_GPL vmlinux 0x452d7d66 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0x45179c74 dev_coredumpv +EXPORT_SYMBOL_GPL vmlinux 0x451b82bd pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x45293cf1 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x452abd96 ping_init_sock EXPORT_SYMBOL_GPL vmlinux 0x4531624f usb_decode_ctrl EXPORT_SYMBOL_GPL vmlinux 0x4531ab62 copy_from_kernel_nofault -EXPORT_SYMBOL_GPL vmlinux 0x4534fcde regmap_get_reg_stride -EXPORT_SYMBOL_GPL vmlinux 0x453f0db6 rz_mtu3_16bit_ch_read -EXPORT_SYMBOL_GPL vmlinux 0x4543c2ac vp_modern_set_queue_enable -EXPORT_SYMBOL_GPL vmlinux 0x454a30f0 acpi_subsys_complete +EXPORT_SYMBOL_GPL vmlinux 0x453d14b0 clk_gate_restore_context +EXPORT_SYMBOL_GPL vmlinux 0x453e83fe serial8250_get_port +EXPORT_SYMBOL_GPL vmlinux 0x453e9e6a ehci_hub_control +EXPORT_SYMBOL_GPL vmlinux 0x454e8942 pinctrl_register_and_init +EXPORT_SYMBOL_GPL vmlinux 0x4551577a fuse_simple_background +EXPORT_SYMBOL_GPL vmlinux 0x455430bb devm_regmap_del_irq_chip EXPORT_SYMBOL_GPL vmlinux 0x45558f56 clk_unregister_fixed_factor -EXPORT_SYMBOL_GPL vmlinux 0x455e709b rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x455bfcba preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x45606d32 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x4564483b wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x4564eea3 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x456840eb device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x4571742d ata_sff_dma_pause EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list -EXPORT_SYMBOL_GPL vmlinux 0x45777d31 ata_host_init -EXPORT_SYMBOL_GPL vmlinux 0x45a46b7f tty_buffer_lock_exclusive -EXPORT_SYMBOL_GPL vmlinux 0x45ab6737 dev_pm_opp_find_level_ceil -EXPORT_SYMBOL_GPL vmlinux 0x45bfce23 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x457db715 usb_pipe_type_check +EXPORT_SYMBOL_GPL vmlinux 0x457e527c of_detach_node +EXPORT_SYMBOL_GPL vmlinux 0x45841797 blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0x45981563 __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x459d2be1 vcap_lookup_rule_by_cookie +EXPORT_SYMBOL_GPL vmlinux 0x45af92e4 l3mdev_master_ifindex_rcu +EXPORT_SYMBOL_GPL vmlinux 0x45b03715 kthread_cancel_delayed_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x45c079c2 of_usb_update_otg_caps +EXPORT_SYMBOL_GPL vmlinux 0x45cb03f4 rz_mtu3_enable EXPORT_SYMBOL_GPL vmlinux 0x45cbc64b xas_get_mark -EXPORT_SYMBOL_GPL vmlinux 0x45d235b0 mpc8xxx_spi_rx_buf_u32 -EXPORT_SYMBOL_GPL vmlinux 0x45d28e3b skb_zerocopy -EXPORT_SYMBOL_GPL vmlinux 0x45db56e4 ehci_suspend -EXPORT_SYMBOL_GPL vmlinux 0x45e71db5 dev_nit_active EXPORT_SYMBOL_GPL vmlinux 0x45e8b450 mnt_idmap_get -EXPORT_SYMBOL_GPL vmlinux 0x460016d0 usb_pipe_type_check +EXPORT_SYMBOL_GPL vmlinux 0x45eafd35 fscrypt_ioctl_get_policy_ex +EXPORT_SYMBOL_GPL vmlinux 0x45eb768f balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x45f4ab42 user_destroy EXPORT_SYMBOL_GPL vmlinux 0x46013233 net_dec_ingress_queue -EXPORT_SYMBOL_GPL vmlinux 0x4608882f io_uring_cmd_done -EXPORT_SYMBOL_GPL vmlinux 0x462d4b36 wm8350_reg_read -EXPORT_SYMBOL_GPL vmlinux 0x4637bc83 watchdog_set_restart_priority -EXPORT_SYMBOL_GPL vmlinux 0x46442fb2 ethnl_cable_test_finished -EXPORT_SYMBOL_GPL vmlinux 0x4645c7e3 fuse_free_conn -EXPORT_SYMBOL_GPL vmlinux 0x46538a43 vmf_insert_pfn_pmd -EXPORT_SYMBOL_GPL vmlinux 0x46680ad2 pci_get_dsn +EXPORT_SYMBOL_GPL vmlinux 0x46203e95 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x463d0233 __hwspin_unlock +EXPORT_SYMBOL_GPL vmlinux 0x4659ba1a icc_provider_init +EXPORT_SYMBOL_GPL vmlinux 0x4660e29c devfreq_event_get_event +EXPORT_SYMBOL_GPL vmlinux 0x46727ccd shash_no_setkey EXPORT_SYMBOL_GPL vmlinux 0x46751371 alarm_forward EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x468ea11e iptunnel_xmit -EXPORT_SYMBOL_GPL vmlinux 0x46a12c79 pm_schedule_suspend -EXPORT_SYMBOL_GPL vmlinux 0x46a3e5b3 trace_array_destroy -EXPORT_SYMBOL_GPL vmlinux 0x46a565ab thermal_zone_device_disable -EXPORT_SYMBOL_GPL vmlinux 0x46b5da82 ata_eh_read_sense_success_ncq_log +EXPORT_SYMBOL_GPL vmlinux 0x46b486d6 iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x46b928da acpi_get_and_request_gpiod EXPORT_SYMBOL_GPL vmlinux 0x46cdb009 kobject_get_path -EXPORT_SYMBOL_GPL vmlinux 0x46cdd204 devm_nvmem_device_put -EXPORT_SYMBOL_GPL vmlinux 0x46d20caa crypto_alg_mod_lookup -EXPORT_SYMBOL_GPL vmlinux 0x46d75e45 usb_create_shared_hcd -EXPORT_SYMBOL_GPL vmlinux 0x46ff1dc1 pci_enable_pasid -EXPORT_SYMBOL_GPL vmlinux 0x4708a322 icc_put +EXPORT_SYMBOL_GPL vmlinux 0x46edcd8c pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x46ee0102 virtqueue_is_broken EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request -EXPORT_SYMBOL_GPL vmlinux 0x4723c244 dma_async_device_channel_unregister -EXPORT_SYMBOL_GPL vmlinux 0x4744df59 spi_mem_dirmap_create -EXPORT_SYMBOL_GPL vmlinux 0x47478a24 of_pm_clk_add_clk +EXPORT_SYMBOL_GPL vmlinux 0x472d35d6 devm_spi_mem_dirmap_create +EXPORT_SYMBOL_GPL vmlinux 0x47404998 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x4747e4d2 msg_zerocopy_callback +EXPORT_SYMBOL_GPL vmlinux 0x475ca864 gpiod_unexport EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier -EXPORT_SYMBOL_GPL vmlinux 0x47634627 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x47626c19 filemap_range_has_writeback EXPORT_SYMBOL_GPL vmlinux 0x476461e8 __tracepoint_sched_update_nr_running_tp EXPORT_SYMBOL_GPL vmlinux 0x47663cfe vcap_rule_mod_key_u32 -EXPORT_SYMBOL_GPL vmlinux 0x476691be debugfs_create_regset32 -EXPORT_SYMBOL_GPL vmlinux 0x4773e1a3 pci_msix_can_alloc_dyn -EXPORT_SYMBOL_GPL vmlinux 0x477d6e0e acpi_match_device -EXPORT_SYMBOL_GPL vmlinux 0x4780fe03 acpi_dev_resume -EXPORT_SYMBOL_GPL vmlinux 0x47828dbb fscrypt_mergeable_bio -EXPORT_SYMBOL_GPL vmlinux 0x478606c7 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x476aed6d crypto_grab_shash +EXPORT_SYMBOL_GPL vmlinux 0x476f7238 of_changeset_action +EXPORT_SYMBOL_GPL vmlinux 0x4773f120 ata_sff_dev_select EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq EXPORT_SYMBOL_GPL vmlinux 0x478e81f8 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x478fd32a handle_bad_irq +EXPORT_SYMBOL_GPL vmlinux 0x47927b90 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x4796dd13 driver_find EXPORT_SYMBOL_GPL vmlinux 0x479803b9 base64_encode EXPORT_SYMBOL_GPL vmlinux 0x479f7d4b clk_bulk_disable -EXPORT_SYMBOL_GPL vmlinux 0x47a00299 crypto_clone_ahash +EXPORT_SYMBOL_GPL vmlinux 0x47a147a4 i2c_generic_scl_recovery EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy -EXPORT_SYMBOL_GPL vmlinux 0x47bc26ea ping_common_sendmsg -EXPORT_SYMBOL_GPL vmlinux 0x47bc9294 pm_stay_awake -EXPORT_SYMBOL_GPL vmlinux 0x47c0a8e6 of_usb_get_phy_mode -EXPORT_SYMBOL_GPL vmlinux 0x47c76a5f watchdog_init_timeout EXPORT_SYMBOL_GPL vmlinux 0x47d0eea2 acpi_lpat_temp_to_raw -EXPORT_SYMBOL_GPL vmlinux 0x47d12ae1 fsnotify_put_group -EXPORT_SYMBOL_GPL vmlinux 0x47d83be4 crypto_skcipher_setkey EXPORT_SYMBOL_GPL vmlinux 0x47de0dc7 clk_unregister_mux -EXPORT_SYMBOL_GPL vmlinux 0x47f8a178 edac_pci_release_generic_ctl -EXPORT_SYMBOL_GPL vmlinux 0x47ffa121 crypto_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x47e0a43c genphy_c45_plca_get_status +EXPORT_SYMBOL_GPL vmlinux 0x47ead667 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x47f1eeec nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x480070ee pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x48019693 crypto_spawn_tfm2 EXPORT_SYMBOL_GPL vmlinux 0x480305ca kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0x48063846 regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x480fc700 extcon_set_state_sync +EXPORT_SYMBOL_GPL vmlinux 0x481a3724 nd_cmd_in_size EXPORT_SYMBOL_GPL vmlinux 0x481f9b7d mpi_mulm EXPORT_SYMBOL_GPL vmlinux 0x48203853 em_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x4827dbb5 skb_to_sgvec EXPORT_SYMBOL_GPL vmlinux 0x4828e77b acpi_scan_lock_acquire -EXPORT_SYMBOL_GPL vmlinux 0x483533e8 governor_sysfs_ops -EXPORT_SYMBOL_GPL vmlinux 0x4838fc20 acpi_dev_clear_dependencies -EXPORT_SYMBOL_GPL vmlinux 0x484a2865 adp5520_write -EXPORT_SYMBOL_GPL vmlinux 0x4853741f spi_mem_default_supports_op -EXPORT_SYMBOL_GPL vmlinux 0x485555c0 rio_release_inb_pwrite -EXPORT_SYMBOL_GPL vmlinux 0x4863e4d6 ata_port_classify -EXPORT_SYMBOL_GPL vmlinux 0x487e6cc2 rio_mport_chk_dev_access -EXPORT_SYMBOL_GPL vmlinux 0x48832027 pm_generic_resume_early -EXPORT_SYMBOL_GPL vmlinux 0x48941a01 i2c_new_ancillary_device +EXPORT_SYMBOL_GPL vmlinux 0x482e2f32 acpi_create_platform_device +EXPORT_SYMBOL_GPL vmlinux 0x4842bcd3 devlink_dpipe_action_put +EXPORT_SYMBOL_GPL vmlinux 0x4854ac78 riscv_set_cacheinfo_ops +EXPORT_SYMBOL_GPL vmlinux 0x4855cd4e dm_internal_resume +EXPORT_SYMBOL_GPL vmlinux 0x4856e738 extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4863aa24 __clk_hw_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x487526db xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x48783acb icc_provider_deregister +EXPORT_SYMBOL_GPL vmlinux 0x48865551 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x4889f4b1 ptp_classify_raw +EXPORT_SYMBOL_GPL vmlinux 0x488c2723 invalidate_inode_pages2 EXPORT_SYMBOL_GPL vmlinux 0x489514d0 sched_numa_find_nth_cpu EXPORT_SYMBOL_GPL vmlinux 0x48a3d20b mctrl_gpio_get -EXPORT_SYMBOL_GPL vmlinux 0x48a62834 pci_iov_virtfn_devfn -EXPORT_SYMBOL_GPL vmlinux 0x48b1d54b perf_aux_output_skip +EXPORT_SYMBOL_GPL vmlinux 0x48a655fb phy_select_page +EXPORT_SYMBOL_GPL vmlinux 0x48b0c1af tty_port_unregister_device EXPORT_SYMBOL_GPL vmlinux 0x48c32847 __SCK__tp_func_sched_util_est_se_tp EXPORT_SYMBOL_GPL vmlinux 0x48c35c9e __tracepoint_br_fdb_external_learn_add -EXPORT_SYMBOL_GPL vmlinux 0x48c874ad ipv4_sk_update_pmtu -EXPORT_SYMBOL_GPL vmlinux 0x48dc0533 devm_register_power_off_handler -EXPORT_SYMBOL_GPL vmlinux 0x48ddaf3c swapcache_mapping -EXPORT_SYMBOL_GPL vmlinux 0x48e78740 blk_insert_cloned_request -EXPORT_SYMBOL_GPL vmlinux 0x48f4e136 __traceiter_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0x48c40af4 iommu_unregister_device_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x48cb44cb pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x48d1bcb7 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x48d895a6 phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL vmlinux 0x48e08af9 iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0x48f2e466 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x48fec11e usb_reset_endpoint EXPORT_SYMBOL_GPL vmlinux 0x4904c8a9 fl6_update_dst -EXPORT_SYMBOL_GPL vmlinux 0x490dce7c pci_set_host_bridge_release EXPORT_SYMBOL_GPL vmlinux 0x49242bc7 freezer_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0x492e5a09 irq_chip_mask_parent +EXPORT_SYMBOL_GPL vmlinux 0x49263444 regulator_irq_helper +EXPORT_SYMBOL_GPL vmlinux 0x49284db5 pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x492faa7e relay_open +EXPORT_SYMBOL_GPL vmlinux 0x4930c228 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x4931b662 seg6_do_srh_encap EXPORT_SYMBOL_GPL vmlinux 0x4934bdd0 crypto_check_attr_type -EXPORT_SYMBOL_GPL vmlinux 0x49350bc8 tcp_reno_ssthresh EXPORT_SYMBOL_GPL vmlinux 0x4939ebcd numa_map_to_online_node -EXPORT_SYMBOL_GPL vmlinux 0x4949315f __traceiter_kfree_skb -EXPORT_SYMBOL_GPL vmlinux 0x4953b776 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x49455355 of_dma_is_coherent +EXPORT_SYMBOL_GPL vmlinux 0x4946b1fc devl_lock +EXPORT_SYMBOL_GPL vmlinux 0x49486944 rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x49499eea md_run +EXPORT_SYMBOL_GPL vmlinux 0x49579767 badblocks_show EXPORT_SYMBOL_GPL vmlinux 0x49608959 migrate_disable -EXPORT_SYMBOL_GPL vmlinux 0x49613d0a usb_hcd_unlink_urb_from_ep -EXPORT_SYMBOL_GPL vmlinux 0x496aae27 serial8250_set_defaults -EXPORT_SYMBOL_GPL vmlinux 0x49708497 tcp_get_syncookie_mss -EXPORT_SYMBOL_GPL vmlinux 0x498682a2 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4967335a mctp_register_netdev +EXPORT_SYMBOL_GPL vmlinux 0x496cc7c8 pinctrl_generic_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0x4977dcc0 regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x4979dbe3 i2c_acpi_waive_d0_probe +EXPORT_SYMBOL_GPL vmlinux 0x498aa7d3 __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x498ebcdb blk_lld_busy EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue EXPORT_SYMBOL_GPL vmlinux 0x49927d25 page_reporting_unregister +EXPORT_SYMBOL_GPL vmlinux 0x49985f0f gpiochip_generic_config EXPORT_SYMBOL_GPL vmlinux 0x49b8926f free_iova_fast -EXPORT_SYMBOL_GPL vmlinux 0x49c3caea regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x49c38ea7 gpiochip_line_is_open_source +EXPORT_SYMBOL_GPL vmlinux 0x49c7113a tpm2_probe +EXPORT_SYMBOL_GPL vmlinux 0x49c9de73 gpiod_get EXPORT_SYMBOL_GPL vmlinux 0x49cd25ed alloc_workqueue EXPORT_SYMBOL_GPL vmlinux 0x49d58315 leds_list_lock -EXPORT_SYMBOL_GPL vmlinux 0x49d8b30f reset_simple_ops -EXPORT_SYMBOL_GPL vmlinux 0x49df61f8 regcache_sync_region EXPORT_SYMBOL_GPL vmlinux 0x49e96999 cond_synchronize_rcu -EXPORT_SYMBOL_GPL vmlinux 0x49ef5d1d platform_irq_count -EXPORT_SYMBOL_GPL vmlinux 0x49fba9aa dev_pm_set_dedicated_wake_irq -EXPORT_SYMBOL_GPL vmlinux 0x4a0189fc crypto_register_acomps -EXPORT_SYMBOL_GPL vmlinux 0x4a0d6d90 device_remove_file -EXPORT_SYMBOL_GPL vmlinux 0x4a125439 shmem_file_setup -EXPORT_SYMBOL_GPL vmlinux 0x4a1505bc device_iommu_capable +EXPORT_SYMBOL_GPL vmlinux 0x49fa4c37 ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x49fb8194 proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0x49fe95f8 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x4a0176d6 blkcg_get_fc_appid +EXPORT_SYMBOL_GPL vmlinux 0x4a05cfc9 dev_pm_qos_expose_flags EXPORT_SYMBOL_GPL vmlinux 0x4a17ed66 sysrq_mask -EXPORT_SYMBOL_GPL vmlinux 0x4a19eaa7 hwmon_device_register_with_groups -EXPORT_SYMBOL_GPL vmlinux 0x4a21e26c devm_nvmem_cell_get -EXPORT_SYMBOL_GPL vmlinux 0x4a24347d posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x4a200ce7 regmap_read EXPORT_SYMBOL_GPL vmlinux 0x4a420d09 acpi_bus_detach_private_data -EXPORT_SYMBOL_GPL vmlinux 0x4a53e61a br_ip6_fragment -EXPORT_SYMBOL_GPL vmlinux 0x4a60a736 clk_hw_register_composite -EXPORT_SYMBOL_GPL vmlinux 0x4a6da14f acpi_fetch_acpi_dev -EXPORT_SYMBOL_GPL vmlinux 0x4a722492 iommu_attach_group -EXPORT_SYMBOL_GPL vmlinux 0x4a728083 rdev_get_regmap -EXPORT_SYMBOL_GPL vmlinux 0x4a773411 fib_nl_delrule -EXPORT_SYMBOL_GPL vmlinux 0x4a81d46f pci_check_and_mask_intx -EXPORT_SYMBOL_GPL vmlinux 0x4a832dd6 acpi_gpiochip_request_interrupts -EXPORT_SYMBOL_GPL vmlinux 0x4a849a74 inet6_lookup -EXPORT_SYMBOL_GPL vmlinux 0x4aa63e0e dev_pm_set_dedicated_wake_irq_reverse -EXPORT_SYMBOL_GPL vmlinux 0x4aabb722 devm_clk_get_optional_enabled -EXPORT_SYMBOL_GPL vmlinux 0x4aaefe75 __devres_alloc_node +EXPORT_SYMBOL_GPL vmlinux 0x4a6b6db3 user_update +EXPORT_SYMBOL_GPL vmlinux 0x4a8083f1 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x4a8eae49 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x4aa675e7 pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x4aa865af rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0x4ab54d5a ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x4ab82518 devm_extcon_dev_unregister EXPORT_SYMBOL_GPL vmlinux 0x4ac972a8 xas_clear_mark -EXPORT_SYMBOL_GPL vmlinux 0x4accc870 regulator_set_voltage_time -EXPORT_SYMBOL_GPL vmlinux 0x4ad9bf4a nvdimm_in_overwrite -EXPORT_SYMBOL_GPL vmlinux 0x4ae517dc ata_scsi_unlock_native_capacity -EXPORT_SYMBOL_GPL vmlinux 0x4ae81fff __rtnl_link_unregister -EXPORT_SYMBOL_GPL vmlinux 0x4ae92bee cpufreq_dbs_governor_init -EXPORT_SYMBOL_GPL vmlinux 0x4afdcf11 ata_bmdma_qc_issue -EXPORT_SYMBOL_GPL vmlinux 0x4b0cb02c ehci_resume -EXPORT_SYMBOL_GPL vmlinux 0x4b39d6e2 devl_port_unregister -EXPORT_SYMBOL_GPL vmlinux 0x4b60bfa9 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x4acfb1cb sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x4ad26371 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x4ad46f9d show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x4ad827e6 devm_nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x4ae6e10c jh7110_reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x4ae72a48 gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x4ae795fa usb_acpi_set_power_state +EXPORT_SYMBOL_GPL vmlinux 0x4aeca31e crypto_create_tfm_node +EXPORT_SYMBOL_GPL vmlinux 0x4b0be330 raw_abort +EXPORT_SYMBOL_GPL vmlinux 0x4b14647e tcpv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x4b26c4bb ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x4b4591fe uart_try_toggle_sysrq +EXPORT_SYMBOL_GPL vmlinux 0x4b4f3141 device_find_child_by_name +EXPORT_SYMBOL_GPL vmlinux 0x4b511ce6 fuse_init_fs_context_submount EXPORT_SYMBOL_GPL vmlinux 0x4b76f477 usb_unlink_anchored_urbs -EXPORT_SYMBOL_GPL vmlinux 0x4b9f5a10 tpm_get_timeouts -EXPORT_SYMBOL_GPL vmlinux 0x4ba339c0 kill_dev_dax -EXPORT_SYMBOL_GPL vmlinux 0x4bb95f28 irq_domain_reset_irq_data -EXPORT_SYMBOL_GPL vmlinux 0x4bc47602 device_add_software_node -EXPORT_SYMBOL_GPL vmlinux 0x4bc7f4ef ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x4b882199 folio_wait_stable +EXPORT_SYMBOL_GPL vmlinux 0x4ba08176 bgpio_init +EXPORT_SYMBOL_GPL vmlinux 0x4baf9ba4 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x4bbd2627 get_device_system_crosststamp EXPORT_SYMBOL_GPL vmlinux 0x4bd6f08b misc_cgrp_subsys_on_dfl_key EXPORT_SYMBOL_GPL vmlinux 0x4bdb8dcc housekeeping_test_cpu -EXPORT_SYMBOL_GPL vmlinux 0x4bdd4dff regmap_register_patch -EXPORT_SYMBOL_GPL vmlinux 0x4c0251df fscrypt_symlink_getattr -EXPORT_SYMBOL_GPL vmlinux 0x4c13195b pm_runtime_enable -EXPORT_SYMBOL_GPL vmlinux 0x4c19edc3 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x4be1d2fb tps65912_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x4be9b516 reset_starfive_jh71x0_register +EXPORT_SYMBOL_GPL vmlinux 0x4bec2093 switchdev_handle_port_obj_del_foreign +EXPORT_SYMBOL_GPL vmlinux 0x4c12e02f nf_queue +EXPORT_SYMBOL_GPL vmlinux 0x4c2210ab cgroup_get_from_path +EXPORT_SYMBOL_GPL vmlinux 0x4c2ad0a3 devm_led_get EXPORT_SYMBOL_GPL vmlinux 0x4c2b351d start_poll_synchronize_rcu_expedited -EXPORT_SYMBOL_GPL vmlinux 0x4c3018b4 acpi_subsys_runtime_suspend -EXPORT_SYMBOL_GPL vmlinux 0x4c309b36 device_add -EXPORT_SYMBOL_GPL vmlinux 0x4c3649e5 xdp_build_skb_from_frame -EXPORT_SYMBOL_GPL vmlinux 0x4c498d9e xfrm_audit_state_icvfail -EXPORT_SYMBOL_GPL vmlinux 0x4c5017eb tracing_snapshot_cond +EXPORT_SYMBOL_GPL vmlinux 0x4c438679 pinctrl_force_sleep +EXPORT_SYMBOL_GPL vmlinux 0x4c4dc162 tun_get_tx_ring +EXPORT_SYMBOL_GPL vmlinux 0x4c4fe720 gpiod_set_debounce EXPORT_SYMBOL_GPL vmlinux 0x4c549b36 __traceiter_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0x4c5bcb46 ipv6_dup_options EXPORT_SYMBOL_GPL vmlinux 0x4c5f348e acpi_dev_filter_resource_type -EXPORT_SYMBOL_GPL vmlinux 0x4c914878 input_device_enabled -EXPORT_SYMBOL_GPL vmlinux 0x4c97a2ff usb_create_hcd -EXPORT_SYMBOL_GPL vmlinux 0x4c9d9670 scsi_schedule_eh -EXPORT_SYMBOL_GPL vmlinux 0x4cb15942 fib_rule_matchall +EXPORT_SYMBOL_GPL vmlinux 0x4c7f471f devl_dpipe_headers_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4c81b5ff fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x4c996bf1 of_property_read_u32_index +EXPORT_SYMBOL_GPL vmlinux 0x4ca842fd usb_get_intf EXPORT_SYMBOL_GPL vmlinux 0x4cb27100 ktime_get_snapshot EXPORT_SYMBOL_GPL vmlinux 0x4cb81fda __SCK__tp_func_wbc_writepage EXPORT_SYMBOL_GPL vmlinux 0x4cbf3d4c mas_empty_area_rev -EXPORT_SYMBOL_GPL vmlinux 0x4cc8ac4d vp_legacy_config_vector -EXPORT_SYMBOL_GPL vmlinux 0x4cca4247 devm_thermal_add_hwmon_sysfs -EXPORT_SYMBOL_GPL vmlinux 0x4ccca169 vcap_chain_offset -EXPORT_SYMBOL_GPL vmlinux 0x4ceb32ae of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x4ccd0d44 pci_epf_unbind +EXPORT_SYMBOL_GPL vmlinux 0x4cce9756 powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0x4cd88182 virtio_device_restore +EXPORT_SYMBOL_GPL vmlinux 0x4cf314e2 badblocks_store +EXPORT_SYMBOL_GPL vmlinux 0x4cf4b45f wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x4cf63713 serdev_device_set_baudrate EXPORT_SYMBOL_GPL vmlinux 0x4cf8880f vcap_rule_add_key_u32 EXPORT_SYMBOL_GPL vmlinux 0x4d0015e2 cpu_hotplug_disable -EXPORT_SYMBOL_GPL vmlinux 0x4d3407ec mpc8xxx_spi_rx_buf_u16 -EXPORT_SYMBOL_GPL vmlinux 0x4d39070c clk_fractional_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0x4d0ed0e6 icc_link_create +EXPORT_SYMBOL_GPL vmlinux 0x4d19f9e3 crypto_unregister_acomp EXPORT_SYMBOL_GPL vmlinux 0x4d3a0696 __SCK__tp_func_rpm_idle -EXPORT_SYMBOL_GPL vmlinux 0x4d47a6be dma_resv_iter_next -EXPORT_SYMBOL_GPL vmlinux 0x4d4e35c6 pm_genpd_add_device -EXPORT_SYMBOL_GPL vmlinux 0x4d5001fb skb_tstamp_tx -EXPORT_SYMBOL_GPL vmlinux 0x4d592dd8 sysfs_groups_change_owner -EXPORT_SYMBOL_GPL vmlinux 0x4d5e18b1 thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x4d51215a serial8250_em485_start_tx +EXPORT_SYMBOL_GPL vmlinux 0x4d623fd3 dax_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4d62e342 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x4d68665f lwtunnel_cmp_encap EXPORT_SYMBOL_GPL vmlinux 0x4d6d0bbc iommu_group_ref_get +EXPORT_SYMBOL_GPL vmlinux 0x4d71a74f skb_cow_data EXPORT_SYMBOL_GPL vmlinux 0x4d7272e4 migrate_enable -EXPORT_SYMBOL_GPL vmlinux 0x4d74de55 dev_get_regmap EXPORT_SYMBOL_GPL vmlinux 0x4d798762 mas_prev_range -EXPORT_SYMBOL_GPL vmlinux 0x4d8183bc debugfs_create_bool -EXPORT_SYMBOL_GPL vmlinux 0x4d861cd0 __irq_domain_alloc_fwnode -EXPORT_SYMBOL_GPL vmlinux 0x4d9dc501 crypto_sig_set_pubkey +EXPORT_SYMBOL_GPL vmlinux 0x4d844f56 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x4d93ec43 regulator_set_voltage_sel_pickable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x4d9a7141 pci_create_ims_domain +EXPORT_SYMBOL_GPL vmlinux 0x4daa7168 pm_runtime_irq_safe EXPORT_SYMBOL_GPL vmlinux 0x4dae16e4 i2c_put_dma_safe_msg_buf -EXPORT_SYMBOL_GPL vmlinux 0x4dbaee91 led_trigger_blink -EXPORT_SYMBOL_GPL vmlinux 0x4dbb80fa attribute_container_classdev_to_container -EXPORT_SYMBOL_GPL vmlinux 0x4dc2718d skb_partial_csum_set -EXPORT_SYMBOL_GPL vmlinux 0x4dc5f3ef mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x4dc1b907 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x4dce78b3 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x4dd575b5 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x4ddd1fb2 device_create_with_groups EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string -EXPORT_SYMBOL_GPL vmlinux 0x4dfa67c2 dw_pcie_setup_rc -EXPORT_SYMBOL_GPL vmlinux 0x4dff9b0a pm_generic_restore_early -EXPORT_SYMBOL_GPL vmlinux 0x4e014a98 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x4de66375 devfreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4ded61b5 usb_driver_release_interface EXPORT_SYMBOL_GPL vmlinux 0x4e17c613 ata_sff_queue_delayed_work -EXPORT_SYMBOL_GPL vmlinux 0x4e2abe26 transport_setup_device -EXPORT_SYMBOL_GPL vmlinux 0x4e4d2a0b clk_register_fixed_factor -EXPORT_SYMBOL_GPL vmlinux 0x4e563b15 dm_bio_get_target_bio_nr -EXPORT_SYMBOL_GPL vmlinux 0x4e5c9d04 pm_clk_remove_clk -EXPORT_SYMBOL_GPL vmlinux 0x4e69bc61 of_resolve_phandles +EXPORT_SYMBOL_GPL vmlinux 0x4e2e39a7 usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x4e3d5bb4 debugfs_create_file_size +EXPORT_SYMBOL_GPL vmlinux 0x4e4ecb75 pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x4e5320fd ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x4e570d6e usb_remove_hcd EXPORT_SYMBOL_GPL vmlinux 0x4e6fc9b0 power_supply_battery_info_get_prop -EXPORT_SYMBOL_GPL vmlinux 0x4e7fa3b1 gpiod_set_config -EXPORT_SYMBOL_GPL vmlinux 0x4e801d88 mdiobus_modify -EXPORT_SYMBOL_GPL vmlinux 0x4ea4358a fsstack_copy_inode_size -EXPORT_SYMBOL_GPL vmlinux 0x4ea7137f l3mdev_table_lookup_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4e73a9c8 io_uring_cmd_done +EXPORT_SYMBOL_GPL vmlinux 0x4e7caa8c vcap_tc_flower_handler_ip_usage +EXPORT_SYMBOL_GPL vmlinux 0x4e888642 mmu_interval_notifier_insert +EXPORT_SYMBOL_GPL vmlinux 0x4e8d8152 gov_attr_set_get +EXPORT_SYMBOL_GPL vmlinux 0x4e9d79f3 clk_register_divider_table +EXPORT_SYMBOL_GPL vmlinux 0x4ea8b8ea clk_hw_round_rate +EXPORT_SYMBOL_GPL vmlinux 0x4ea9eae8 regmap_field_test_bits EXPORT_SYMBOL_GPL vmlinux 0x4eac5fc1 cpu_mitigations_auto_nosmt EXPORT_SYMBOL_GPL vmlinux 0x4ec622cf btree_init -EXPORT_SYMBOL_GPL vmlinux 0x4ecb47ad devl_register -EXPORT_SYMBOL_GPL vmlinux 0x4ed52e9f list_lru_count_one -EXPORT_SYMBOL_GPL vmlinux 0x4ee732c4 max8997_bulk_read -EXPORT_SYMBOL_GPL vmlinux 0x4eed9dc5 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x4ed6d549 pci_try_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x4ed9ca18 devm_gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0x4ee71cc0 crypto_alg_mod_lookup EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4ef6026b dev_pm_opp_get_max_transition_latency +EXPORT_SYMBOL_GPL vmlinux 0x4ef6c204 regmap_update_bits_base EXPORT_SYMBOL_GPL vmlinux 0x4efcf021 mpi_normalize -EXPORT_SYMBOL_GPL vmlinux 0x4f043a63 dev_pm_clear_wake_irq -EXPORT_SYMBOL_GPL vmlinux 0x4f1b7f80 __devm_of_phy_provider_register -EXPORT_SYMBOL_GPL vmlinux 0x4f205163 of_pwm_single_xlate -EXPORT_SYMBOL_GPL vmlinux 0x4f220a46 devfreq_event_is_enabled -EXPORT_SYMBOL_GPL vmlinux 0x4f23a426 devm_kfree -EXPORT_SYMBOL_GPL vmlinux 0x4f24cb19 wm8350_reg_write -EXPORT_SYMBOL_GPL vmlinux 0x4f26b809 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x4f09da70 perf_aux_output_begin +EXPORT_SYMBOL_GPL vmlinux 0x4f0a32b8 devlink_is_reload_failed +EXPORT_SYMBOL_GPL vmlinux 0x4f14cff1 driver_deferred_probe_check_state +EXPORT_SYMBOL_GPL vmlinux 0x4f164fff pci_epf_bind +EXPORT_SYMBOL_GPL vmlinux 0x4f1e51eb acpi_pci_find_root EXPORT_SYMBOL_GPL vmlinux 0x4f2c996d kmsg_dump_get_line -EXPORT_SYMBOL_GPL vmlinux 0x4f39c753 dev_pm_opp_enable -EXPORT_SYMBOL_GPL vmlinux 0x4f3ccaf6 elv_rqhash_del -EXPORT_SYMBOL_GPL vmlinux 0x4f3d5c50 sdio_readb -EXPORT_SYMBOL_GPL vmlinux 0x4f454513 virtqueue_resize -EXPORT_SYMBOL_GPL vmlinux 0x4f4e198a acpi_data_fwnode_ops -EXPORT_SYMBOL_GPL vmlinux 0x4f5beb6c get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x4f31df82 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x4f32dfe5 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4f45cc84 nvdimm_provider_data +EXPORT_SYMBOL_GPL vmlinux 0x4f57d1e7 extcon_get_state +EXPORT_SYMBOL_GPL vmlinux 0x4f5c80f8 regmap_multi_reg_write_bypassed EXPORT_SYMBOL_GPL vmlinux 0x4f6a07fe show_rcu_gp_kthreads -EXPORT_SYMBOL_GPL vmlinux 0x4f71f994 scsi_target_unblock -EXPORT_SYMBOL_GPL vmlinux 0x4f722f07 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x4f6bf184 clean_acked_data_disable EXPORT_SYMBOL_GPL vmlinux 0x4f72a987 uart_parse_options -EXPORT_SYMBOL_GPL vmlinux 0x4f7f9eea __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x4f807691 __traceiter_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x4f97cc5e pci_load_and_free_saved_state EXPORT_SYMBOL_GPL vmlinux 0x4f98d766 cpu_pm_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x4fb6cbb9 power_supply_set_property -EXPORT_SYMBOL_GPL vmlinux 0x4fbdd0de param_set_uint_minmax -EXPORT_SYMBOL_GPL vmlinux 0x4fcd3eeb account_locked_vm -EXPORT_SYMBOL_GPL vmlinux 0x4fcfa0ad thermal_zone_device_register_with_trips +EXPORT_SYMBOL_GPL vmlinux 0x4faf5726 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x4fc52f38 pm_clk_create +EXPORT_SYMBOL_GPL vmlinux 0x4fcea06d auxiliary_find_device EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe08b26 debugfs_create_u32 EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier -EXPORT_SYMBOL_GPL vmlinux 0x4feea365 adp5520_read -EXPORT_SYMBOL_GPL vmlinux 0x500c4b4f rcuwait_wake_up +EXPORT_SYMBOL_GPL vmlinux 0x4fe91ee9 vcap_is_last_chain +EXPORT_SYMBOL_GPL vmlinux 0x4ff6a23f balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x5001bb0d fwnode_find_reference +EXPORT_SYMBOL_GPL vmlinux 0x501750a9 __devm_clk_hw_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x5022e54a sata_async_notification EXPORT_SYMBOL_GPL vmlinux 0x50383c6f xas_pause -EXPORT_SYMBOL_GPL vmlinux 0x505d050d serial8250_rx_dma_flush -EXPORT_SYMBOL_GPL vmlinux 0x508b28c7 bdi_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x50435426 put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x504abd11 i2c_acpi_new_device_by_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x5055f013 dev_pm_opp_get_required_pstate +EXPORT_SYMBOL_GPL vmlinux 0x5059051c devm_namespace_enable +EXPORT_SYMBOL_GPL vmlinux 0x506da424 vcap_find_keystream_keysets +EXPORT_SYMBOL_GPL vmlinux 0x507050db tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x507fdbec anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x5086aa6c pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x5089e059 device_match_fwnode EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start EXPORT_SYMBOL_GPL vmlinux 0x5093e76e __tracepoint_xhci_dbg_quirks -EXPORT_SYMBOL_GPL vmlinux 0x5096035b switchdev_bridge_port_offload -EXPORT_SYMBOL_GPL vmlinux 0x509f3419 dev_pm_opp_get_max_transition_latency -EXPORT_SYMBOL_GPL vmlinux 0x50ae25d9 jh7110_pinctrl_pm_ops -EXPORT_SYMBOL_GPL vmlinux 0x50c18d6f rio_route_add_entry -EXPORT_SYMBOL_GPL vmlinux 0x50c506ac sysfs_notify -EXPORT_SYMBOL_GPL vmlinux 0x50cca317 i2c_client_type +EXPORT_SYMBOL_GPL vmlinux 0x50a1d8e1 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x50a849c7 devm_of_clk_add_hw_provider +EXPORT_SYMBOL_GPL vmlinux 0x50b8e381 devm_request_free_mem_region +EXPORT_SYMBOL_GPL vmlinux 0x50bbf13a ncsi_vlan_rx_add_vid +EXPORT_SYMBOL_GPL vmlinux 0x50bdd908 mmc_prepare_busy_cmd EXPORT_SYMBOL_GPL vmlinux 0x50cd67e6 riscv_v_vstate_ctrl_user_allowed -EXPORT_SYMBOL_GPL vmlinux 0x50d219d1 rio_get_comptag -EXPORT_SYMBOL_GPL vmlinux 0x50d95098 pingv6_ops -EXPORT_SYMBOL_GPL vmlinux 0x50df0b1f devl_region_create +EXPORT_SYMBOL_GPL vmlinux 0x50d111d0 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x50d87823 fixed_phy_register +EXPORT_SYMBOL_GPL vmlinux 0x50e0ac8f rz_mtu3_is_enabled EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num EXPORT_SYMBOL_GPL vmlinux 0x50eabb98 __tracepoint_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x50eb623b iomap_page_mkwrite EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up -EXPORT_SYMBOL_GPL vmlinux 0x50ff31b4 fat_dir_empty -EXPORT_SYMBOL_GPL vmlinux 0x510f86bb devl_sb_register -EXPORT_SYMBOL_GPL vmlinux 0x51181fca bd_prepare_to_claim -EXPORT_SYMBOL_GPL vmlinux 0x511bb13a inet_unhash -EXPORT_SYMBOL_GPL vmlinux 0x5130c91c plda_pcie_host_deinit +EXPORT_SYMBOL_GPL vmlinux 0x510129fc wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x5133cfaa pm_generic_freeze_late EXPORT_SYMBOL_GPL vmlinux 0x51390c96 rcu_barrier_tasks_rude -EXPORT_SYMBOL_GPL vmlinux 0x513b47e6 devm_led_get -EXPORT_SYMBOL_GPL vmlinux 0x515b2011 led_get_default_pattern +EXPORT_SYMBOL_GPL vmlinux 0x513cef12 balloon_page_list_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x513f3fb0 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x513f9d37 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x514572f7 wakeup_sources_walk_next +EXPORT_SYMBOL_GPL vmlinux 0x51589aad dev_pm_qos_hide_flags EXPORT_SYMBOL_GPL vmlinux 0x515b390f __SCK__tp_func_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x515e9815 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x516245d0 pm_genpd_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x516f8ee5 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x517215ea debugfs_create_u64 EXPORT_SYMBOL_GPL vmlinux 0x51786ad8 __irq_apply_affinity_hint -EXPORT_SYMBOL_GPL vmlinux 0x518625c9 nfs_ssc_register -EXPORT_SYMBOL_GPL vmlinux 0x51991f5a sk_msg_is_readable +EXPORT_SYMBOL_GPL vmlinux 0x517d717e irq_chip_set_parent_state +EXPORT_SYMBOL_GPL vmlinux 0x51823321 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x51872399 mbox_flush +EXPORT_SYMBOL_GPL vmlinux 0x51948134 virtqueue_add_inbuf_ctx EXPORT_SYMBOL_GPL vmlinux 0x51a348cc usb_role_switch_set_drvdata -EXPORT_SYMBOL_GPL vmlinux 0x51b56cd7 ksm_madvise -EXPORT_SYMBOL_GPL vmlinux 0x51be77f8 tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0x51b94ce7 i2c_acpi_client_count +EXPORT_SYMBOL_GPL vmlinux 0x51bdc299 get_current_tty EXPORT_SYMBOL_GPL vmlinux 0x51df20f0 inet_twsk_purge -EXPORT_SYMBOL_GPL vmlinux 0x51eb332b rio_enable_rx_tx_port -EXPORT_SYMBOL_GPL vmlinux 0x51eb6d8c power_supply_get_by_name -EXPORT_SYMBOL_GPL vmlinux 0x51ee6da3 nf_ct_hook -EXPORT_SYMBOL_GPL vmlinux 0x51f9f9de of_msi_get_domain -EXPORT_SYMBOL_GPL vmlinux 0x520beece usb_block_urb -EXPORT_SYMBOL_GPL vmlinux 0x521165ce rio_release_outb_dbell -EXPORT_SYMBOL_GPL vmlinux 0x52118b63 crypto_alloc_sync_skcipher -EXPORT_SYMBOL_GPL vmlinux 0x521b4347 phy_get_rate_matching -EXPORT_SYMBOL_GPL vmlinux 0x521f87d4 bio_iov_iter_get_pages +EXPORT_SYMBOL_GPL vmlinux 0x51f68370 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x52143ae5 mptcp_subflow_init_cookie_req +EXPORT_SYMBOL_GPL vmlinux 0x521605b8 phy_pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0x521f9f64 spi_take_timestamp_pre EXPORT_SYMBOL_GPL vmlinux 0x52213722 acpi_dev_resource_memory EXPORT_SYMBOL_GPL vmlinux 0x52252316 clk_unregister_fixed_rate EXPORT_SYMBOL_GPL vmlinux 0x522a68ba sbi_get_marchid -EXPORT_SYMBOL_GPL vmlinux 0x522f982a of_property_read_string_helper -EXPORT_SYMBOL_GPL vmlinux 0x522fed46 acpi_register_gsi -EXPORT_SYMBOL_GPL vmlinux 0x5235dc3d regulator_set_ramp_delay_regmap -EXPORT_SYMBOL_GPL vmlinux 0x52374592 pci_ioremap_wc_bar -EXPORT_SYMBOL_GPL vmlinux 0x5241eeea devl_assert_locked -EXPORT_SYMBOL_GPL vmlinux 0x524f3082 crypto_larval_alloc -EXPORT_SYMBOL_GPL vmlinux 0x5261047f proc_create_net_single_write +EXPORT_SYMBOL_GPL vmlinux 0x52508c14 ip6_datagram_send_ctl EXPORT_SYMBOL_GPL vmlinux 0x5261322c rht_bucket_nested EXPORT_SYMBOL_GPL vmlinux 0x52647db1 ct_idle_exit -EXPORT_SYMBOL_GPL vmlinux 0x526a7a34 vcap_lookup_rule_by_cookie -EXPORT_SYMBOL_GPL vmlinux 0x526bfe8d blk_freeze_queue_start -EXPORT_SYMBOL_GPL vmlinux 0x5270b041 acpi_bus_trim -EXPORT_SYMBOL_GPL vmlinux 0x52a37b20 devm_clk_get_optional_prepared -EXPORT_SYMBOL_GPL vmlinux 0x52aafa66 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x5269d92c blk_queue_max_discard_segments +EXPORT_SYMBOL_GPL vmlinux 0x5282f15b edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL vmlinux 0x5287c3c4 dev_pm_genpd_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x52a67998 pci_msix_can_alloc_dyn +EXPORT_SYMBOL_GPL vmlinux 0x52ac45a6 fixup_user_fault EXPORT_SYMBOL_GPL vmlinux 0x52b1e3c7 pci_flags +EXPORT_SYMBOL_GPL vmlinux 0x52b44f54 sdio_writew EXPORT_SYMBOL_GPL vmlinux 0x52b72fb8 sched_numa_hop_mask +EXPORT_SYMBOL_GPL vmlinux 0x52be42c9 crypto_wait_for_test EXPORT_SYMBOL_GPL vmlinux 0x52c35e83 call_rcu_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0x52c39960 genphy_c45_loopback EXPORT_SYMBOL_GPL vmlinux 0x52ca3830 klist_next -EXPORT_SYMBOL_GPL vmlinux 0x52d4b6e3 devlink_dpipe_match_put +EXPORT_SYMBOL_GPL vmlinux 0x52d0ca49 phy_create EXPORT_SYMBOL_GPL vmlinux 0x52d54fce devlink_info_version_stored_put -EXPORT_SYMBOL_GPL vmlinux 0x52e5812c crypto_grab_ahash -EXPORT_SYMBOL_GPL vmlinux 0x52e73ffd devlink_flash_update_status_notify -EXPORT_SYMBOL_GPL vmlinux 0x52ece58b phy_start_machine -EXPORT_SYMBOL_GPL vmlinux 0x52ee7674 blk_add_driver_data -EXPORT_SYMBOL_GPL vmlinux 0x52ef6cfb gpiochip_add_data_with_key -EXPORT_SYMBOL_GPL vmlinux 0x530e0585 crypto_register_aeads +EXPORT_SYMBOL_GPL vmlinux 0x52d8c204 skcipher_walk_async +EXPORT_SYMBOL_GPL vmlinux 0x52e85b6a __spi_register_driver EXPORT_SYMBOL_GPL vmlinux 0x530e0f8c devl_health_reporter_destroy -EXPORT_SYMBOL_GPL vmlinux 0x53131914 tty_release_struct -EXPORT_SYMBOL_GPL vmlinux 0x53264652 __rtnl_link_register EXPORT_SYMBOL_GPL vmlinux 0x532b90b5 kprobe_event_cmd_init -EXPORT_SYMBOL_GPL vmlinux 0x53349177 rz_mtu3_shared_reg_read -EXPORT_SYMBOL_GPL vmlinux 0x5334fdf9 unregister_pernet_device -EXPORT_SYMBOL_GPL vmlinux 0x533fe2a0 fsstack_copy_attr_all -EXPORT_SYMBOL_GPL vmlinux 0x534253ae usb_phy_roothub_alloc -EXPORT_SYMBOL_GPL vmlinux 0x53494343 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x5342b8f1 crypto_skcipher_setkey EXPORT_SYMBOL_GPL vmlinux 0x5358864e devlink_fmsg_binary_pair_nest_end -EXPORT_SYMBOL_GPL vmlinux 0x536336ba regmap_bulk_read -EXPORT_SYMBOL_GPL vmlinux 0x53669967 tcp_abort -EXPORT_SYMBOL_GPL vmlinux 0x536a4371 gov_update_cpu_data -EXPORT_SYMBOL_GPL vmlinux 0x537076e1 iomap_truncate_page +EXPORT_SYMBOL_GPL vmlinux 0x53635288 devlink_params_register +EXPORT_SYMBOL_GPL vmlinux 0x536bc354 mmput +EXPORT_SYMBOL_GPL vmlinux 0x536ef5a4 inet_twsk_alloc EXPORT_SYMBOL_GPL vmlinux 0x537252cf __SCK__tp_func_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x5380dbb2 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x5381ab15 anon_transport_class_register EXPORT_SYMBOL_GPL vmlinux 0x538d073d phy_duplex_to_str -EXPORT_SYMBOL_GPL vmlinux 0x53a651fa pci_epc_remove_epf +EXPORT_SYMBOL_GPL vmlinux 0x5392586f usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x539f45de sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x53a37529 regmap_reinit_cache EXPORT_SYMBOL_GPL vmlinux 0x53c089f5 property_entries_dup +EXPORT_SYMBOL_GPL vmlinux 0x53d0f964 rio_pw_enable +EXPORT_SYMBOL_GPL vmlinux 0x53d233e1 devm_hwspin_lock_unregister EXPORT_SYMBOL_GPL vmlinux 0x53d7c01e __traceiter_cpu_idle -EXPORT_SYMBOL_GPL vmlinux 0x53e412b0 edac_device_del_device -EXPORT_SYMBOL_GPL vmlinux 0x53e8af66 get_current_tty -EXPORT_SYMBOL_GPL vmlinux 0x53f0ef05 do_unregister_con_driver -EXPORT_SYMBOL_GPL vmlinux 0x53f2acaf devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x53ee136d platform_irqchip_probe +EXPORT_SYMBOL_GPL vmlinux 0x53fbd51a sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x5418dc39 unix_inq_len EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run EXPORT_SYMBOL_GPL vmlinux 0x54215db5 visitor64 -EXPORT_SYMBOL_GPL vmlinux 0x5435e538 md_find_rdev_nr_rcu -EXPORT_SYMBOL_GPL vmlinux 0x543a667f devm_regulator_bulk_get_const -EXPORT_SYMBOL_GPL vmlinux 0x543b4bb7 devm_clk_get_enabled -EXPORT_SYMBOL_GPL vmlinux 0x544da8b9 pci_find_ht_capability -EXPORT_SYMBOL_GPL vmlinux 0x54534d05 of_irq_to_resource -EXPORT_SYMBOL_GPL vmlinux 0x546dc7e0 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x542453ae devlink_region_snapshot_id_put +EXPORT_SYMBOL_GPL vmlinux 0x5435eb65 usb_of_get_companion_dev +EXPORT_SYMBOL_GPL vmlinux 0x5448ff2e ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x544ebbe4 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x5454374d gpiod_set_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x545f4aef kthread_mod_delayed_work EXPORT_SYMBOL_GPL vmlinux 0x5470863d __hrtimer_get_remaining -EXPORT_SYMBOL_GPL vmlinux 0x54805309 disk_set_zoned -EXPORT_SYMBOL_GPL vmlinux 0x5491ffd2 dw_pcie_ep_raise_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0x548ea64c blk_mq_quiesce_queue EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq -EXPORT_SYMBOL_GPL vmlinux 0x54a1a7e8 sock_diag_unregister_inet_compat -EXPORT_SYMBOL_GPL vmlinux 0x54b2c30c usb_of_has_combined_node -EXPORT_SYMBOL_GPL vmlinux 0x54b2fa19 pm_generic_thaw_noirq -EXPORT_SYMBOL_GPL vmlinux 0x54b3009a irq_chip_set_vcpu_affinity_parent -EXPORT_SYMBOL_GPL vmlinux 0x54c5a9a3 nf_hook_entries_delete_raw +EXPORT_SYMBOL_GPL vmlinux 0x549d8139 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x54b04517 devm_irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x54b1a3c1 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x54b491aa netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x54c30253 devm_pm_opp_of_add_table_indexed +EXPORT_SYMBOL_GPL vmlinux 0x54cfa549 iommu_unmap_fast +EXPORT_SYMBOL_GPL vmlinux 0x54d1b731 dm_hold +EXPORT_SYMBOL_GPL vmlinux 0x54e69dac icc_sync_state +EXPORT_SYMBOL_GPL vmlinux 0x54eb2971 gpiod_set_config +EXPORT_SYMBOL_GPL vmlinux 0x54f9076c pci_epc_add_epf +EXPORT_SYMBOL_GPL vmlinux 0x54f9615a __traceiter_sk_data_ready EXPORT_SYMBOL_GPL vmlinux 0x54f99ad3 usb_anchor_resume_wakeups -EXPORT_SYMBOL_GPL vmlinux 0x55060719 dw_pcie_link_up +EXPORT_SYMBOL_GPL vmlinux 0x54fe4bd7 dma_alloc_pages +EXPORT_SYMBOL_GPL vmlinux 0x54ff15eb nvdimm_cmd_mask EXPORT_SYMBOL_GPL vmlinux 0x550f3e05 i2c_freq_mode_string -EXPORT_SYMBOL_GPL vmlinux 0x5526b27e crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x5510ba46 devm_phy_package_join +EXPORT_SYMBOL_GPL vmlinux 0x55215f76 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x5521b4d4 vring_create_virtqueue_dma EXPORT_SYMBOL_GPL vmlinux 0x55339365 flush_delayed_fput +EXPORT_SYMBOL_GPL vmlinux 0x5539e7a5 __traceiter_br_fdb_add EXPORT_SYMBOL_GPL vmlinux 0x553b49a4 cpufreq_get_driver_data -EXPORT_SYMBOL_GPL vmlinux 0x553d009f plda_pcie_setup_iomems EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier -EXPORT_SYMBOL_GPL vmlinux 0x5549166b usb_hcd_end_port_resume -EXPORT_SYMBOL_GPL vmlinux 0x55550b85 dma_max_mapping_size +EXPORT_SYMBOL_GPL vmlinux 0x554883f1 devm_extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x5564d706 bdev_alignment_offset EXPORT_SYMBOL_GPL vmlinux 0x556e4390 clk_get_rate -EXPORT_SYMBOL_GPL vmlinux 0x5573f7ee public_key_subtype -EXPORT_SYMBOL_GPL vmlinux 0x5574362b __udp_enqueue_schedule_skb +EXPORT_SYMBOL_GPL vmlinux 0x5570e2f8 perf_event_period EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq -EXPORT_SYMBOL_GPL vmlinux 0x557ed680 regmap_field_test_bits -EXPORT_SYMBOL_GPL vmlinux 0x558c9313 blkcg_print_blkgs -EXPORT_SYMBOL_GPL vmlinux 0x559adab6 __clk_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x5579149d __account_locked_vm +EXPORT_SYMBOL_GPL vmlinux 0x5587bb29 synth_event_add_next_val +EXPORT_SYMBOL_GPL vmlinux 0x558e10f0 devl_port_health_reporter_create +EXPORT_SYMBOL_GPL vmlinux 0x5599a07d device_register +EXPORT_SYMBOL_GPL vmlinux 0x559ede15 devm_pinctrl_get EXPORT_SYMBOL_GPL vmlinux 0x55a8783a mas_store_prealloc -EXPORT_SYMBOL_GPL vmlinux 0x55b8b77a __bio_release_pages +EXPORT_SYMBOL_GPL vmlinux 0x55adf55a gpiochip_line_is_valid +EXPORT_SYMBOL_GPL vmlinux 0x55b9dd34 kstrdup_quotable_cmdline EXPORT_SYMBOL_GPL vmlinux 0x55c76a23 ksys_sync_helper -EXPORT_SYMBOL_GPL vmlinux 0x55cb9d17 mptcp_get_reset_option -EXPORT_SYMBOL_GPL vmlinux 0x55d21c2f fuse_dev_alloc_install -EXPORT_SYMBOL_GPL vmlinux 0x55dd41b8 reset_controller_unregister EXPORT_SYMBOL_GPL vmlinux 0x55eecff4 bit_wait_io_timeout -EXPORT_SYMBOL_GPL vmlinux 0x55f2bf14 nvmem_cell_read_u64 -EXPORT_SYMBOL_GPL vmlinux 0x560306c3 i2c_dw_validate_speed EXPORT_SYMBOL_GPL vmlinux 0x56054c05 crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x560da330 acpi_dev_get_dma_resources +EXPORT_SYMBOL_GPL vmlinux 0x561161f3 regmap_raw_read EXPORT_SYMBOL_GPL vmlinux 0x561375bd tracepoint_probe_register_prio -EXPORT_SYMBOL_GPL vmlinux 0x56172aca devl_resource_register EXPORT_SYMBOL_GPL vmlinux 0x56173654 pcap_set_ts_bits -EXPORT_SYMBOL_GPL vmlinux 0x561cf719 debugfs_file_put +EXPORT_SYMBOL_GPL vmlinux 0x561b58dd pinmux_generic_add_function +EXPORT_SYMBOL_GPL vmlinux 0x561df7d3 __traceiter_attach_device_to_domain EXPORT_SYMBOL_GPL vmlinux 0x56256e8a orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x5627fe82 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x56295714 dma_mmap_pages +EXPORT_SYMBOL_GPL vmlinux 0x562df8fe nvdimm_has_flush EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status -EXPORT_SYMBOL_GPL vmlinux 0x56393f2b icc_provider_register +EXPORT_SYMBOL_GPL vmlinux 0x563202a1 regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x56386b10 irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x563deeb0 crypto_register_kpp +EXPORT_SYMBOL_GPL vmlinux 0x5640f6b4 devm_hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5641016f pci_epf_alloc_space EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate -EXPORT_SYMBOL_GPL vmlinux 0x564681e4 regulator_disable_deferred -EXPORT_SYMBOL_GPL vmlinux 0x56504503 wait_for_stable_page -EXPORT_SYMBOL_GPL vmlinux 0x566ae41a dev_pm_opp_find_bw_floor -EXPORT_SYMBOL_GPL vmlinux 0x566fb6da __fscrypt_prepare_setattr -EXPORT_SYMBOL_GPL vmlinux 0x567791db simple_attr_write -EXPORT_SYMBOL_GPL vmlinux 0x567bf7d1 rio_unlock_device -EXPORT_SYMBOL_GPL vmlinux 0x567e642d sata_link_debounce -EXPORT_SYMBOL_GPL vmlinux 0x5684b14d blk_trace_startstop -EXPORT_SYMBOL_GPL vmlinux 0x5696b271 pci_epc_start -EXPORT_SYMBOL_GPL vmlinux 0x56984570 __regmap_init_i2c -EXPORT_SYMBOL_GPL vmlinux 0x56bcd04f __mmc_poll_for_busy -EXPORT_SYMBOL_GPL vmlinux 0x56c0d5af gpiod_get_raw_array_value -EXPORT_SYMBOL_GPL vmlinux 0x56c42107 udp4_lib_lookup -EXPORT_SYMBOL_GPL vmlinux 0x56d7ae67 phy_create +EXPORT_SYMBOL_GPL vmlinux 0x5645893a nvmem_cell_read_variable_le_u64 +EXPORT_SYMBOL_GPL vmlinux 0x5646ad08 trace_remove_event_call +EXPORT_SYMBOL_GPL vmlinux 0x5648a56e ethnl_cable_test_pulse +EXPORT_SYMBOL_GPL vmlinux 0x566ccfdb wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x568398c7 dev_pm_opp_get_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0x568bd305 pinctrl_enable +EXPORT_SYMBOL_GPL vmlinux 0x56a15d72 usb_set_wireless_status +EXPORT_SYMBOL_GPL vmlinux 0x56a5a761 ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0x56a78fad debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0x56ac5140 blk_bio_list_merge +EXPORT_SYMBOL_GPL vmlinux 0x56b928b0 fscrypt_set_context +EXPORT_SYMBOL_GPL vmlinux 0x56cc05b4 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x56cc07ec seg6_do_srh_inline +EXPORT_SYMBOL_GPL vmlinux 0x56cc6fbf udp_abort +EXPORT_SYMBOL_GPL vmlinux 0x56d59cc4 blk_crypto_evict_key +EXPORT_SYMBOL_GPL vmlinux 0x56d9fe40 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x56e0ea7b fib_rule_matchall +EXPORT_SYMBOL_GPL vmlinux 0x56e77780 da9052_adc_read_temp EXPORT_SYMBOL_GPL vmlinux 0x56e9103b cpu_pm_enter -EXPORT_SYMBOL_GPL vmlinux 0x56e9e6db usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x56ede515 __fsnotify_inode_delete EXPORT_SYMBOL_GPL vmlinux 0x56ef15d0 __tracepoint_pelt_cfs_tp -EXPORT_SYMBOL_GPL vmlinux 0x56f31054 cookie_tcp_reqsk_alloc EXPORT_SYMBOL_GPL vmlinux 0x56f77f47 rhashtable_walk_peek -EXPORT_SYMBOL_GPL vmlinux 0x56fb2773 dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0x56f8e190 fl6_merge_options EXPORT_SYMBOL_GPL vmlinux 0x56fbb130 no_hash_pointers -EXPORT_SYMBOL_GPL vmlinux 0x57173536 genphy_c45_an_disable_aneg -EXPORT_SYMBOL_GPL vmlinux 0x571d86ac devm_led_classdev_register_ext -EXPORT_SYMBOL_GPL vmlinux 0x57290ecd clk_mux_ops -EXPORT_SYMBOL_GPL vmlinux 0x5742cf83 pci_user_read_config_word -EXPORT_SYMBOL_GPL vmlinux 0x576243d6 mmc_regulator_get_supply -EXPORT_SYMBOL_GPL vmlinux 0x57636a6d regulator_get_optional -EXPORT_SYMBOL_GPL vmlinux 0x57670204 nvdimm_kobj -EXPORT_SYMBOL_GPL vmlinux 0x576ea3eb dw8250_setup_port -EXPORT_SYMBOL_GPL vmlinux 0x5776a4cd blkcg_policy_unregister -EXPORT_SYMBOL_GPL vmlinux 0x578836ee of_reconfig_get_state_change -EXPORT_SYMBOL_GPL vmlinux 0x5788569b kill_device +EXPORT_SYMBOL_GPL vmlinux 0x571674f1 mptcp_diag_fill_info +EXPORT_SYMBOL_GPL vmlinux 0x57307094 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x5736d293 skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x573c7a3d scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x574c1fc6 cpufreq_driver_resolve_freq +EXPORT_SYMBOL_GPL vmlinux 0x5754dc53 i2c_handle_smbus_host_notify +EXPORT_SYMBOL_GPL vmlinux 0x575b2ffc sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0x57699fc4 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x576b07cf devl_traps_register +EXPORT_SYMBOL_GPL vmlinux 0x57898833 inet_send_prepare +EXPORT_SYMBOL_GPL vmlinux 0x578a151b of_clk_hw_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0x578e6b5a open_related_ns EXPORT_SYMBOL_GPL vmlinux 0x578eeb4d hugetlb_cgrp_subsys_enabled_key EXPORT_SYMBOL_GPL vmlinux 0x5790e7a0 pci_unlock_rescan_remove -EXPORT_SYMBOL_GPL vmlinux 0x579803c4 devl_resource_size_get -EXPORT_SYMBOL_GPL vmlinux 0x579ac02c ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x579ac476 ahash_register_instance EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all -EXPORT_SYMBOL_GPL vmlinux 0x57af641d iommu_device_unregister -EXPORT_SYMBOL_GPL vmlinux 0x57c45cb5 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x57a8ba48 iommu_get_domain_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x57ac3e16 kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x57b35b6f of_platform_device_destroy EXPORT_SYMBOL_GPL vmlinux 0x57c58e9b __tracepoint_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x57c74e73 dsa_stubs EXPORT_SYMBOL_GPL vmlinux 0x57d4050a xhci_get_endpoint_index -EXPORT_SYMBOL_GPL vmlinux 0x57dab32c thermal_zone_device_update -EXPORT_SYMBOL_GPL vmlinux 0x57e3013e pci_d3cold_enable -EXPORT_SYMBOL_GPL vmlinux 0x57e7ddd5 plda_pcie_map_bus +EXPORT_SYMBOL_GPL vmlinux 0x57e6bd57 lp8788_read_multi_bytes EXPORT_SYMBOL_GPL vmlinux 0x57e9486d __cpuhp_state_add_instance -EXPORT_SYMBOL_GPL vmlinux 0x57eec130 hwmon_device_register_with_info +EXPORT_SYMBOL_GPL vmlinux 0x57ed9498 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x57eeb9d6 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x57f0327d irq_chip_eoi_parent +EXPORT_SYMBOL_GPL vmlinux 0x57f0a729 iommu_fwspec_init EXPORT_SYMBOL_GPL vmlinux 0x57f576b9 mpi_ec_curve_point -EXPORT_SYMBOL_GPL vmlinux 0x57f98b24 __suspend_report_result -EXPORT_SYMBOL_GPL vmlinux 0x5810b766 ata_sas_slave_configure -EXPORT_SYMBOL_GPL vmlinux 0x58151edd clk_bulk_get_optional -EXPORT_SYMBOL_GPL vmlinux 0x582c42ed plda_pcie_host_init -EXPORT_SYMBOL_GPL vmlinux 0x583012bc of_phy_provider_unregister -EXPORT_SYMBOL_GPL vmlinux 0x5830de37 rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0x57f9b061 scsi_block_targets +EXPORT_SYMBOL_GPL vmlinux 0x5806e6c9 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x580eec9a udp_destruct_common +EXPORT_SYMBOL_GPL vmlinux 0x58117ba0 pstore_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5819272f of_get_required_opp_performance_state +EXPORT_SYMBOL_GPL vmlinux 0x5821b847 pci_find_next_ext_capability EXPORT_SYMBOL_GPL vmlinux 0x5831e062 cpus_read_trylock -EXPORT_SYMBOL_GPL vmlinux 0x58388926 net_ns_get_ownership -EXPORT_SYMBOL_GPL vmlinux 0x584fd4c7 tc3589x_block_write -EXPORT_SYMBOL_GPL vmlinux 0x58667236 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x584aeecb power_supply_get_property +EXPORT_SYMBOL_GPL vmlinux 0x584e2525 gpiochip_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x5864a3d9 pci_epf_destroy EXPORT_SYMBOL_GPL vmlinux 0x5879a27d sfp_get_module_info -EXPORT_SYMBOL_GPL vmlinux 0x58a94afc adp5520_register_notifier -EXPORT_SYMBOL_GPL vmlinux 0x58aa3b89 crypto_sig_verify -EXPORT_SYMBOL_GPL vmlinux 0x58bf0514 ata_timing_compute -EXPORT_SYMBOL_GPL vmlinux 0x58bfeaa1 umd_unload_blob -EXPORT_SYMBOL_GPL vmlinux 0x58d36a1b usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x5892e68e device_attach +EXPORT_SYMBOL_GPL vmlinux 0x5894035a debugfs_lookup_and_remove +EXPORT_SYMBOL_GPL vmlinux 0x58984ddb usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x589fcc6c devm_regulator_get_enable +EXPORT_SYMBOL_GPL vmlinux 0x58b54680 dev_pm_opp_find_level_exact +EXPORT_SYMBOL_GPL vmlinux 0x58cb240a tpm_get_timeouts EXPORT_SYMBOL_GPL vmlinux 0x58db1176 ata_xfer_mode2shift EXPORT_SYMBOL_GPL vmlinux 0x58def6ca sfp_module_remove -EXPORT_SYMBOL_GPL vmlinux 0x58e35c54 pm_runtime_autosuspend_expiration -EXPORT_SYMBOL_GPL vmlinux 0x58fa9146 __auxiliary_device_add -EXPORT_SYMBOL_GPL vmlinux 0x5905da80 fat_free_clusters -EXPORT_SYMBOL_GPL vmlinux 0x5918439c pm_runtime_set_memalloc_noio -EXPORT_SYMBOL_GPL vmlinux 0x591da90f skcipher_walk_aead_encrypt -EXPORT_SYMBOL_GPL vmlinux 0x5939f245 nf_hook_entries_insert_raw +EXPORT_SYMBOL_GPL vmlinux 0x58e97226 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x58faa586 serial8250_em485_config +EXPORT_SYMBOL_GPL vmlinux 0x5908a1c7 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x590b59de devm_clk_bulk_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x59103c3e crypto_register_scomps +EXPORT_SYMBOL_GPL vmlinux 0x591ec425 pinctrl_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x592507d5 crypto_type_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x59379a19 __synth_event_gen_cmd_start EXPORT_SYMBOL_GPL vmlinux 0x593ac537 __tracepoint_map -EXPORT_SYMBOL_GPL vmlinux 0x5945b608 usb_cache_string +EXPORT_SYMBOL_GPL vmlinux 0x593f9ab7 usb_hcd_platform_shutdown EXPORT_SYMBOL_GPL vmlinux 0x5947ca28 sbitmap_get -EXPORT_SYMBOL_GPL vmlinux 0x59534999 of_phandle_iterator_next +EXPORT_SYMBOL_GPL vmlinux 0x594e1a98 devm_thermal_of_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x5953131b wm8350_reg_read EXPORT_SYMBOL_GPL vmlinux 0x5957cddb zs_lookup_class_index -EXPORT_SYMBOL_GPL vmlinux 0x596d92a3 thermal_zone_get_trip +EXPORT_SYMBOL_GPL vmlinux 0x596a7e2d fscrypt_set_bio_crypt_ctx_bh +EXPORT_SYMBOL_GPL vmlinux 0x597d34b1 regulator_enable_regmap EXPORT_SYMBOL_GPL vmlinux 0x5986d190 kdb_printf -EXPORT_SYMBOL_GPL vmlinux 0x598f4c80 fib_nh_common_release -EXPORT_SYMBOL_GPL vmlinux 0x59aaa753 of_genpd_del_provider +EXPORT_SYMBOL_GPL vmlinux 0x599e5279 pci_scan_child_bus EXPORT_SYMBOL_GPL vmlinux 0x59b063ba start_poll_synchronize_rcu_expedited_full +EXPORT_SYMBOL_GPL vmlinux 0x59b08448 usb_hcd_is_primary_hcd EXPORT_SYMBOL_GPL vmlinux 0x59b2adbf input_ff_effect_from_user -EXPORT_SYMBOL_GPL vmlinux 0x59b3430e spi_register_controller -EXPORT_SYMBOL_GPL vmlinux 0x59b99a7e __devm_regmap_init_spi -EXPORT_SYMBOL_GPL vmlinux 0x59b9c3a5 dev_pm_opp_remove_all_dynamic EXPORT_SYMBOL_GPL vmlinux 0x59c43dc9 __traceiter_non_standard_event -EXPORT_SYMBOL_GPL vmlinux 0x59c92765 to_nd_region -EXPORT_SYMBOL_GPL vmlinux 0x59ea3f4a dm_audit_log_bio -EXPORT_SYMBOL_GPL vmlinux 0x59ebc84f fat_time_fat2unix -EXPORT_SYMBOL_GPL vmlinux 0x59ecab35 ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0x59c59936 power_supply_put_battery_info +EXPORT_SYMBOL_GPL vmlinux 0x59e251e0 __traceiter_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x59ecae79 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x59ecc756 __blk_trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x59ecf62a handle_untracked_irq EXPORT_SYMBOL_GPL vmlinux 0x59edfeb8 phy_rate_matching_to_str EXPORT_SYMBOL_GPL vmlinux 0x59f32720 mpi_subm -EXPORT_SYMBOL_GPL vmlinux 0x59f966b2 devlink_flash_update_timeout_notify -EXPORT_SYMBOL_GPL vmlinux 0x59fb569c sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x59ff6d0a __traceiter_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x5a05fe88 dma_resv_get_singleton +EXPORT_SYMBOL_GPL vmlinux 0x5a0747f7 extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x5a0c6e08 tty_buffer_set_limit EXPORT_SYMBOL_GPL vmlinux 0x5a12e60c __SCK__tp_func_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x5a1c8c50 dst_cache_set_ip6 EXPORT_SYMBOL_GPL vmlinux 0x5a1d134a rcu_momentary_dyntick_idle -EXPORT_SYMBOL_GPL vmlinux 0x5a238551 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x5a204925 dma_mmap_noncontiguous EXPORT_SYMBOL_GPL vmlinux 0x5a49dbc9 timerqueue_del -EXPORT_SYMBOL_GPL vmlinux 0x5a4b1d76 ip6_redirect -EXPORT_SYMBOL_GPL vmlinux 0x5a5a69ce uart_handle_dcd_change -EXPORT_SYMBOL_GPL vmlinux 0x5a5b2fd0 ata_eh_analyze_ncq_error -EXPORT_SYMBOL_GPL vmlinux 0x5a5c9c34 hrtimer_sleeper_start_expires -EXPORT_SYMBOL_GPL vmlinux 0x5a67e092 sk_msg_clone +EXPORT_SYMBOL_GPL vmlinux 0x5a4d398a driver_find_device EXPORT_SYMBOL_GPL vmlinux 0x5a6cdb52 nf_ct_zone_dflt -EXPORT_SYMBOL_GPL vmlinux 0x5a71d4ef gen_pool_get +EXPORT_SYMBOL_GPL vmlinux 0x5a6f3dac xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x5a7a17f2 fscrypt_ioctl_add_key EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify -EXPORT_SYMBOL_GPL vmlinux 0x5a8819b2 fuse_do_open -EXPORT_SYMBOL_GPL vmlinux 0x5a888635 scsi_register_device_handler -EXPORT_SYMBOL_GPL vmlinux 0x5a901f5b device_wakeup_disable -EXPORT_SYMBOL_GPL vmlinux 0x5a97a639 icc_link_create -EXPORT_SYMBOL_GPL vmlinux 0x5a97aa02 pci_hp_remove_module_link -EXPORT_SYMBOL_GPL vmlinux 0x5a9fd42b sk_msg_trim +EXPORT_SYMBOL_GPL vmlinux 0x5a88bbf7 tcp_plb_update_state EXPORT_SYMBOL_GPL vmlinux 0x5aa70984 acpi_reduced_hardware -EXPORT_SYMBOL_GPL vmlinux 0x5aac0a63 wakeup_source_create EXPORT_SYMBOL_GPL vmlinux 0x5ab09745 edac_get_owner -EXPORT_SYMBOL_GPL vmlinux 0x5ac54279 tcp_get_info -EXPORT_SYMBOL_GPL vmlinux 0x5ac980fe debugfs_create_dir -EXPORT_SYMBOL_GPL vmlinux 0x5acdc5d2 register_pernet_subsys -EXPORT_SYMBOL_GPL vmlinux 0x5ad2106e devl_param_value_changed -EXPORT_SYMBOL_GPL vmlinux 0x5adf132f ata_ncq_sdev_groups -EXPORT_SYMBOL_GPL vmlinux 0x5af5b0f7 blk_mq_start_stopped_hw_queue -EXPORT_SYMBOL_GPL vmlinux 0x5b0b840a devm_regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5adadcec devm_gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x5ae986ee phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL vmlinux 0x5afc722e __audit_log_nfcfg +EXPORT_SYMBOL_GPL vmlinux 0x5b0c7c92 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x5b106f5c usb_unlink_urb EXPORT_SYMBOL_GPL vmlinux 0x5b21ceff ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x5b24874d spi_mem_get_name +EXPORT_SYMBOL_GPL vmlinux 0x5b302cb5 of_icc_xlate_onecell EXPORT_SYMBOL_GPL vmlinux 0x5b30e25c vhost_task_wake -EXPORT_SYMBOL_GPL vmlinux 0x5b3a5778 thermal_zone_get_crit_temp +EXPORT_SYMBOL_GPL vmlinux 0x5b327738 filemap_read +EXPORT_SYMBOL_GPL vmlinux 0x5b3328dc pm_clk_add EXPORT_SYMBOL_GPL vmlinux 0x5b50af89 tracepoint_probe_register -EXPORT_SYMBOL_GPL vmlinux 0x5b65ce17 pinctrl_dev_get_devname +EXPORT_SYMBOL_GPL vmlinux 0x5b57a0f8 perf_aux_output_flag +EXPORT_SYMBOL_GPL vmlinux 0x5b5f0076 gpiod_set_value_cansleep EXPORT_SYMBOL_GPL vmlinux 0x5b6f758a make_vfsuid EXPORT_SYMBOL_GPL vmlinux 0x5b83d7ab __tracepoint_neigh_event_send_dead -EXPORT_SYMBOL_GPL vmlinux 0x5b898f24 sock_diag_destroy -EXPORT_SYMBOL_GPL vmlinux 0x5b8b8517 serdev_device_write_wakeup -EXPORT_SYMBOL_GPL vmlinux 0x5b8cc89e iommu_group_get -EXPORT_SYMBOL_GPL vmlinux 0x5b9bea79 ata_host_activate -EXPORT_SYMBOL_GPL vmlinux 0x5b9eae80 __devm_clk_hw_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x5b91ba92 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x5b9ce44f fwnode_device_is_available EXPORT_SYMBOL_GPL vmlinux 0x5ba9c87f blk_crypto_keyslot_index -EXPORT_SYMBOL_GPL vmlinux 0x5baea4a7 da903x_reads -EXPORT_SYMBOL_GPL vmlinux 0x5bb6e492 crypto_enqueue_request -EXPORT_SYMBOL_GPL vmlinux 0x5bc2d874 pm_clk_remove +EXPORT_SYMBOL_GPL vmlinux 0x5bb6c7a0 phy_get_rate_matching +EXPORT_SYMBOL_GPL vmlinux 0x5bb9267a inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x5bbf73b6 ip6_sk_update_pmtu EXPORT_SYMBOL_GPL vmlinux 0x5bc950fe regulator_irq_helper_cancel EXPORT_SYMBOL_GPL vmlinux 0x5bcc0df7 ata_dev_classify EXPORT_SYMBOL_GPL vmlinux 0x5bd0748f crypto_del_default_rng EXPORT_SYMBOL_GPL vmlinux 0x5bd08f7c sbitmap_queue_min_shallow_depth EXPORT_SYMBOL_GPL vmlinux 0x5bdae35b usb_phy_roothub_set_mode EXPORT_SYMBOL_GPL vmlinux 0x5bdbac4e rcu_unexpedite_gp -EXPORT_SYMBOL_GPL vmlinux 0x5be00f8f gpiod_get_raw_array_value_cansleep -EXPORT_SYMBOL_GPL vmlinux 0x5be4a10b sdio_release_irq -EXPORT_SYMBOL_GPL vmlinux 0x5bfaaf2d vfs_submount -EXPORT_SYMBOL_GPL vmlinux 0x5c128152 pci_ims_alloc_irq -EXPORT_SYMBOL_GPL vmlinux 0x5c1b3faa blk_crypto_reprogram_all_keys -EXPORT_SYMBOL_GPL vmlinux 0x5c217859 of_cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x5be2f6f2 irq_gc_noop +EXPORT_SYMBOL_GPL vmlinux 0x5bf6a7fe device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x5c09541c acpi_subsys_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5c0d424c security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x5c20b562 dm_send_uevents EXPORT_SYMBOL_GPL vmlinux 0x5c2ec1e1 power_supply_notifier EXPORT_SYMBOL_GPL vmlinux 0x5c3bbd06 __SCK__tp_func_mc_event -EXPORT_SYMBOL_GPL vmlinux 0x5c414989 mddev_init EXPORT_SYMBOL_GPL vmlinux 0x5c5a1b16 tick_broadcast_control -EXPORT_SYMBOL_GPL vmlinux 0x5c5c112b crypto_lookup_template -EXPORT_SYMBOL_GPL vmlinux 0x5c5c860e blk_crypto_evict_key -EXPORT_SYMBOL_GPL vmlinux 0x5c60fe0a pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x5c5c227c ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x5c64fbf6 failover_slave_unregister EXPORT_SYMBOL_GPL vmlinux 0x5c74b41d public_key_signature_free -EXPORT_SYMBOL_GPL vmlinux 0x5c762939 pktgen_xfrm_outer_mode_output -EXPORT_SYMBOL_GPL vmlinux 0x5c7e2ebe cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x5c7eb2fe ata_pci_remove_one EXPORT_SYMBOL_GPL vmlinux 0x5c82016e __SCK__tp_func_napi_poll -EXPORT_SYMBOL_GPL vmlinux 0x5c856da4 __traceiter_block_rq_remap -EXPORT_SYMBOL_GPL vmlinux 0x5c8d57c1 vcap_alloc_rule +EXPORT_SYMBOL_GPL vmlinux 0x5c9bd3bd sched_setattr_nocheck +EXPORT_SYMBOL_GPL vmlinux 0x5ca3d940 ethnl_cable_test_amplitude +EXPORT_SYMBOL_GPL vmlinux 0x5ca56643 iomap_is_partially_uptodate EXPORT_SYMBOL_GPL vmlinux 0x5cad8fc3 power_supply_ocv2cap_simple -EXPORT_SYMBOL_GPL vmlinux 0x5caf489c fib6_new_table -EXPORT_SYMBOL_GPL vmlinux 0x5cc577ed lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0x5cb5bdf5 rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0x5cb74ebf gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x5cbc8cfc blk_mq_debugfs_rq_show EXPORT_SYMBOL_GPL vmlinux 0x5cc77c45 led_colors -EXPORT_SYMBOL_GPL vmlinux 0x5cc870ee pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x5cdb72a0 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x5cebef77 vfs_getxattr EXPORT_SYMBOL_GPL vmlinux 0x5cede0a7 xdp_flush_frame_bulk +EXPORT_SYMBOL_GPL vmlinux 0x5cf11b02 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x5cf249fe uart_xchar_out +EXPORT_SYMBOL_GPL vmlinux 0x5cf6956d device_move EXPORT_SYMBOL_GPL vmlinux 0x5cff77ca mas_preallocate +EXPORT_SYMBOL_GPL vmlinux 0x5d0c77a2 xhci_dbg_trace +EXPORT_SYMBOL_GPL vmlinux 0x5d174eb7 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x5d191e45 scsi_host_unblock +EXPORT_SYMBOL_GPL vmlinux 0x5d214693 mmc_cmdq_enable +EXPORT_SYMBOL_GPL vmlinux 0x5d25d4d9 vfs_lock_file EXPORT_SYMBOL_GPL vmlinux 0x5d2bc42a reset_control_rearm -EXPORT_SYMBOL_GPL vmlinux 0x5d498cce irq_domain_remove -EXPORT_SYMBOL_GPL vmlinux 0x5d75cb8a event_triggers_post_call -EXPORT_SYMBOL_GPL vmlinux 0x5d7faf8e dm_internal_resume_fast +EXPORT_SYMBOL_GPL vmlinux 0x5d46281a hwspin_lock_request_specific +EXPORT_SYMBOL_GPL vmlinux 0x5d491ee7 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x5d51b85e crypto_grab_ahash +EXPORT_SYMBOL_GPL vmlinux 0x5d5d6ed7 crypto_inst_setname +EXPORT_SYMBOL_GPL vmlinux 0x5d64f825 usb_hcd_setup_local_mem EXPORT_SYMBOL_GPL vmlinux 0x5d8476d3 bpf_sk_storage_diag_alloc EXPORT_SYMBOL_GPL vmlinux 0x5d85bb62 __tracepoint_block_unplug -EXPORT_SYMBOL_GPL vmlinux 0x5d89f5ac iommu_setup_dma_ops -EXPORT_SYMBOL_GPL vmlinux 0x5d942bd4 devm_phy_package_join -EXPORT_SYMBOL_GPL vmlinux 0x5d98e36c scsi_ioctl_block_when_processing_errors -EXPORT_SYMBOL_GPL vmlinux 0x5d9c8815 uart_xchar_out +EXPORT_SYMBOL_GPL vmlinux 0x5d915493 disk_force_media_change +EXPORT_SYMBOL_GPL vmlinux 0x5d94dd7e housekeeping_affine +EXPORT_SYMBOL_GPL vmlinux 0x5da44c67 acpi_dev_resume EXPORT_SYMBOL_GPL vmlinux 0x5da67adc zs_compact -EXPORT_SYMBOL_GPL vmlinux 0x5db1254f blk_mq_unquiesce_queue -EXPORT_SYMBOL_GPL vmlinux 0x5db73c81 dma_alloc_pages -EXPORT_SYMBOL_GPL vmlinux 0x5dbc614f of_remove_property -EXPORT_SYMBOL_GPL vmlinux 0x5dc2ce10 dma_resv_describe -EXPORT_SYMBOL_GPL vmlinux 0x5dc3ba1a blk_mq_alloc_request_hctx -EXPORT_SYMBOL_GPL vmlinux 0x5dd18d3c nfnl_ct_hook -EXPORT_SYMBOL_GPL vmlinux 0x5dd1e72c __irq_domain_alloc_irqs -EXPORT_SYMBOL_GPL vmlinux 0x5dd392d3 __traceiter_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x5db6202e devlink_port_region_create +EXPORT_SYMBOL_GPL vmlinux 0x5db77c5f device_add_groups EXPORT_SYMBOL_GPL vmlinux 0x5dd6bde8 xas_store -EXPORT_SYMBOL_GPL vmlinux 0x5ddd60ec param_set_bool_enable_only -EXPORT_SYMBOL_GPL vmlinux 0x5de14838 iommu_fwspec_free -EXPORT_SYMBOL_GPL vmlinux 0x5de9eb31 __clk_mux_determine_rate -EXPORT_SYMBOL_GPL vmlinux 0x5df0dd48 crypto_register_scomp -EXPORT_SYMBOL_GPL vmlinux 0x5dfb3ddf devm_power_supply_get_by_phandle -EXPORT_SYMBOL_GPL vmlinux 0x5e06dfab devlink_params_register -EXPORT_SYMBOL_GPL vmlinux 0x5e0d41ac ncsi_vlan_rx_add_vid -EXPORT_SYMBOL_GPL vmlinux 0x5e0fe2a7 pinctrl_force_sleep -EXPORT_SYMBOL_GPL vmlinux 0x5e115b39 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x5de91493 of_phandle_iterator_init +EXPORT_SYMBOL_GPL vmlinux 0x5df63cec tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x5df6e386 irq_chip_set_type_parent EXPORT_SYMBOL_GPL vmlinux 0x5e173309 cpu_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0x5e31af40 trace_remove_event_call -EXPORT_SYMBOL_GPL vmlinux 0x5e43692b trace_seq_path -EXPORT_SYMBOL_GPL vmlinux 0x5e48a445 dm_accept_partial_bio -EXPORT_SYMBOL_GPL vmlinux 0x5e49d092 pci_epc_mem_alloc_addr EXPORT_SYMBOL_GPL vmlinux 0x5e515be6 ktime_get_ts64 -EXPORT_SYMBOL_GPL vmlinux 0x5e596f2f devfreq_event_remove_edev -EXPORT_SYMBOL_GPL vmlinux 0x5e5bbee2 dev_pm_opp_is_turbo -EXPORT_SYMBOL_GPL vmlinux 0x5e610304 of_property_match_string -EXPORT_SYMBOL_GPL vmlinux 0x5e63d4fd usb_hub_clear_tt_buffer -EXPORT_SYMBOL_GPL vmlinux 0x5e6a83ac dev_pm_opp_sync_regulators -EXPORT_SYMBOL_GPL vmlinux 0x5e6db9b3 mmc_crypto_setup_queue -EXPORT_SYMBOL_GPL vmlinux 0x5e780404 __list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0x5e53066e md_bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x5e530843 pm_genpd_remove_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x5e5865a1 phy_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x5e5a4dde ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x5e60c8a7 pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0x5e62bcbb devm_kstrdup +EXPORT_SYMBOL_GPL vmlinux 0x5e6318f4 tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x5e64194f pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0x5e68fe09 pinctrl_select_state +EXPORT_SYMBOL_GPL vmlinux 0x5e78612f vring_notification_data EXPORT_SYMBOL_GPL vmlinux 0x5e798ffb divider_get_val +EXPORT_SYMBOL_GPL vmlinux 0x5e7b579a debugfs_create_size_t EXPORT_SYMBOL_GPL vmlinux 0x5e85415b ring_buffer_consume -EXPORT_SYMBOL_GPL vmlinux 0x5e9cd7e8 virtqueue_add_sgs -EXPORT_SYMBOL_GPL vmlinux 0x5ea47371 edac_mc_alloc -EXPORT_SYMBOL_GPL vmlinux 0x5ea6bc19 inet_twsk_put -EXPORT_SYMBOL_GPL vmlinux 0x5ea7b5f5 synth_event_add_next_val +EXPORT_SYMBOL_GPL vmlinux 0x5e8873ed spi_mem_supports_op +EXPORT_SYMBOL_GPL vmlinux 0x5e93a726 mpc8xxx_spi_rx_buf_u16 +EXPORT_SYMBOL_GPL vmlinux 0x5e98dd6c dbs_update EXPORT_SYMBOL_GPL vmlinux 0x5eae5408 clk_is_enabled_when_prepared +EXPORT_SYMBOL_GPL vmlinux 0x5eb3d998 skb_complete_tx_timestamp EXPORT_SYMBOL_GPL vmlinux 0x5eb417e0 __SCK__tp_func_neigh_timer_handler -EXPORT_SYMBOL_GPL vmlinux 0x5eb86c1d sata_set_spd -EXPORT_SYMBOL_GPL vmlinux 0x5ebe4abd crypto_hash_walk_done -EXPORT_SYMBOL_GPL vmlinux 0x5ec413f0 pm_generic_runtime_resume -EXPORT_SYMBOL_GPL vmlinux 0x5ed37771 l3mdev_ifindex_lookup_by_table_id -EXPORT_SYMBOL_GPL vmlinux 0x5ee13d55 ata_sas_port_init -EXPORT_SYMBOL_GPL vmlinux 0x5ee77897 acpi_subsys_suspend_noirq -EXPORT_SYMBOL_GPL vmlinux 0x5ef34633 iommu_get_domain_for_dev_pasid -EXPORT_SYMBOL_GPL vmlinux 0x5f0fdd72 pci_assign_unassigned_bridge_resources -EXPORT_SYMBOL_GPL vmlinux 0x5f1ba09e generic_device_group +EXPORT_SYMBOL_GPL vmlinux 0x5ed22134 serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x5ed8f208 devm_pm_clk_create +EXPORT_SYMBOL_GPL vmlinux 0x5ed96f87 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x5ee3ff28 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x5ef914ce class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x5f0efb53 smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x5f100f11 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x5f1bdd41 bdev_disk_changed EXPORT_SYMBOL_GPL vmlinux 0x5f23e3fa insert_resource -EXPORT_SYMBOL_GPL vmlinux 0x5f2a1a9d of_property_read_variable_u64_array -EXPORT_SYMBOL_GPL vmlinux 0x5f33a084 __percpu_down_read EXPORT_SYMBOL_GPL vmlinux 0x5f384a68 x509_free_certificate EXPORT_SYMBOL_GPL vmlinux 0x5f3b65ba xas_init_marks -EXPORT_SYMBOL_GPL vmlinux 0x5f403440 devm_clk_register -EXPORT_SYMBOL_GPL vmlinux 0x5f4c9320 irq_chip_ack_parent -EXPORT_SYMBOL_GPL vmlinux 0x5f5a9651 regulator_map_voltage_pickable_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x5f3f82ac dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x5f541b3e fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x5f594685 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x5f5a2d2f acpi_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x5f6c4f18 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x5f6d7c4b __ip6_local_out EXPORT_SYMBOL_GPL vmlinux 0x5f6f1e9e dax_get_private -EXPORT_SYMBOL_GPL vmlinux 0x5f6fd8f0 devfreq_event_reset_event -EXPORT_SYMBOL_GPL vmlinux 0x5f7b34ed xdp_rxq_info_unused -EXPORT_SYMBOL_GPL vmlinux 0x5f7ccfc3 device_match_any -EXPORT_SYMBOL_GPL vmlinux 0x5f90dbaf led_trigger_write -EXPORT_SYMBOL_GPL vmlinux 0x5f928114 cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x5f80a614 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x5f9b3823 irq_gc_set_wake +EXPORT_SYMBOL_GPL vmlinux 0x5fa0d3cc sdio_register_driver EXPORT_SYMBOL_GPL vmlinux 0x5fa625ed mpi_ec_mul_point -EXPORT_SYMBOL_GPL vmlinux 0x5fbc4dd1 edac_mc_add_mc_with_groups -EXPORT_SYMBOL_GPL vmlinux 0x5ff086e0 acpi_dma_configure_id -EXPORT_SYMBOL_GPL vmlinux 0x5ffc4fa6 devm_of_led_get -EXPORT_SYMBOL_GPL vmlinux 0x5ffef1e4 msi_unlock_descs -EXPORT_SYMBOL_GPL vmlinux 0x5fffd8a4 mptcp_token_get_sock +EXPORT_SYMBOL_GPL vmlinux 0x5fb8550e iommu_detach_device_pasid +EXPORT_SYMBOL_GPL vmlinux 0x5fc158dc __platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x5fc9fd64 gpiochip_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x5fee3189 sdio_readw EXPORT_SYMBOL_GPL vmlinux 0x60091316 clk_notifier_register -EXPORT_SYMBOL_GPL vmlinux 0x60145fee pci_iov_vf_id -EXPORT_SYMBOL_GPL vmlinux 0x60194257 led_set_brightness_nopm -EXPORT_SYMBOL_GPL vmlinux 0x6027f4fa rio_inb_pwrite_handler -EXPORT_SYMBOL_GPL vmlinux 0x602ca775 ioc_find_get_icq +EXPORT_SYMBOL_GPL vmlinux 0x601b874f devm_regmap_field_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x603b3344 thermal_zone_get_temp EXPORT_SYMBOL_GPL vmlinux 0x603d0d51 acpi_os_map_iomem -EXPORT_SYMBOL_GPL vmlinux 0x6044e875 device_move EXPORT_SYMBOL_GPL vmlinux 0x604722fd devices_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0x6060a47b spi_mem_exec_op +EXPORT_SYMBOL_GPL vmlinux 0x6063ffa5 hwspin_lock_unregister EXPORT_SYMBOL_GPL vmlinux 0x606b4aba devlink_linecard_provision_set -EXPORT_SYMBOL_GPL vmlinux 0x606cfd58 acpi_dev_state_d0 -EXPORT_SYMBOL_GPL vmlinux 0x60710f56 nvdimm_delete +EXPORT_SYMBOL_GPL vmlinux 0x60715bc7 clk_register_composite +EXPORT_SYMBOL_GPL vmlinux 0x607342b1 regulator_set_pull_down_regmap +EXPORT_SYMBOL_GPL vmlinux 0x6074e5e8 __devres_alloc_node EXPORT_SYMBOL_GPL vmlinux 0x607c4683 devlink_info_version_fixed_put -EXPORT_SYMBOL_GPL vmlinux 0x607ee0c5 security_kernel_read_file -EXPORT_SYMBOL_GPL vmlinux 0x6086ac23 add_disk_randomness -EXPORT_SYMBOL_GPL vmlinux 0x608d987c rtnl_delete_link +EXPORT_SYMBOL_GPL vmlinux 0x60879069 devm_remove_action EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu -EXPORT_SYMBOL_GPL vmlinux 0x6092d538 da903x_write -EXPORT_SYMBOL_GPL vmlinux 0x60974c73 devlink_net +EXPORT_SYMBOL_GPL vmlinux 0x6099dc00 devm_hwmon_sanitize_name +EXPORT_SYMBOL_GPL vmlinux 0x609aa752 class_unregister EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a5691e usb_autopm_get_interface_async EXPORT_SYMBOL_GPL vmlinux 0x60ae0922 power_supply_vbat2ri +EXPORT_SYMBOL_GPL vmlinux 0x60af4275 sdio_claim_irq EXPORT_SYMBOL_GPL vmlinux 0x60cdeb9f unregister_kprobes -EXPORT_SYMBOL_GPL vmlinux 0x60d258ba ethnl_cable_test_pulse -EXPORT_SYMBOL_GPL vmlinux 0x60db3c84 extcon_set_property_capability -EXPORT_SYMBOL_GPL vmlinux 0x60ddc1ed ip6_push_pending_frames -EXPORT_SYMBOL_GPL vmlinux 0x60e257d0 crypto_register_rngs +EXPORT_SYMBOL_GPL vmlinux 0x60d5f452 da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x60e42d4a xhci_init_driver EXPORT_SYMBOL_GPL vmlinux 0x60ebc96f ring_buffer_read_prepare -EXPORT_SYMBOL_GPL vmlinux 0x60ebdec7 rio_request_inb_mbox -EXPORT_SYMBOL_GPL vmlinux 0x60ec7cbc led_trigger_blink_oneshot -EXPORT_SYMBOL_GPL vmlinux 0x60f479a1 scsi_template_proc_dir -EXPORT_SYMBOL_GPL vmlinux 0x60f947b0 fib_nexthop_info -EXPORT_SYMBOL_GPL vmlinux 0x60f9bdcf md_rdev_clear -EXPORT_SYMBOL_GPL vmlinux 0x611d1e22 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x61040cf4 blk_mq_flush_busy_ctxs +EXPORT_SYMBOL_GPL vmlinux 0x61125dfe tty_buffer_unlock_exclusive EXPORT_SYMBOL_GPL vmlinux 0x6129fb93 sfp_remove_phy EXPORT_SYMBOL_GPL vmlinux 0x612bfd89 errno_to_blk_status -EXPORT_SYMBOL_GPL vmlinux 0x6133afa0 fscrypt_limit_io_blocks -EXPORT_SYMBOL_GPL vmlinux 0x613613c6 extcon_set_state_sync -EXPORT_SYMBOL_GPL vmlinux 0x613c5239 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x613a70c7 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x613fa222 serial8250_em485_destroy EXPORT_SYMBOL_GPL vmlinux 0x614adcb7 of_overlay_remove_all -EXPORT_SYMBOL_GPL vmlinux 0x61651303 d_same_name -EXPORT_SYMBOL_GPL vmlinux 0x616931b3 tpm2_flush_context -EXPORT_SYMBOL_GPL vmlinux 0x616ff837 divider_recalc_rate +EXPORT_SYMBOL_GPL vmlinux 0x6154064c mmc_regulator_disable_vqmmc +EXPORT_SYMBOL_GPL vmlinux 0x6155e192 ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0x61717000 sock_inuse_get EXPORT_SYMBOL_GPL vmlinux 0x6181e79f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x61840fee dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x6186928c mdiobus_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x6189ab95 ohci_resume EXPORT_SYMBOL_GPL vmlinux 0x6198dfea __ring_buffer_alloc EXPORT_SYMBOL_GPL vmlinux 0x6199ad5d crypto_has_skcipher -EXPORT_SYMBOL_GPL vmlinux 0x61a451eb clk_fixed_rate_ops -EXPORT_SYMBOL_GPL vmlinux 0x61ba04dc inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x619c2a46 rtnl_register_module +EXPORT_SYMBOL_GPL vmlinux 0x61b2e3e1 balloon_mops EXPORT_SYMBOL_GPL vmlinux 0x61bd0bd0 get_completed_synchronize_rcu_full EXPORT_SYMBOL_GPL vmlinux 0x61bf643f __srcu_read_lock -EXPORT_SYMBOL_GPL vmlinux 0x61c07d0e device_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x61c116ef __nf_ip6_route EXPORT_SYMBOL_GPL vmlinux 0x61c1ca29 __SCK__tp_func_add_device_to_group -EXPORT_SYMBOL_GPL vmlinux 0x61cc3331 pcc_mbox_request_channel -EXPORT_SYMBOL_GPL vmlinux 0x61e8aea3 mnt_want_write_file -EXPORT_SYMBOL_GPL vmlinux 0x61f49957 dma_pci_p2pdma_supported +EXPORT_SYMBOL_GPL vmlinux 0x61cdb222 serial8250_rpm_put_tx +EXPORT_SYMBOL_GPL vmlinux 0x61d1c9ce scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x61d6efb8 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x61e041f0 __skb_get_hash_symmetric EXPORT_SYMBOL_GPL vmlinux 0x61f67c92 phy_gbit_features_array -EXPORT_SYMBOL_GPL vmlinux 0x61f6ff86 mmc_sanitize -EXPORT_SYMBOL_GPL vmlinux 0x620bdb77 uart_insert_char -EXPORT_SYMBOL_GPL vmlinux 0x6211a435 regcache_drop_region -EXPORT_SYMBOL_GPL vmlinux 0x62244fa5 regmap_add_irq_chip -EXPORT_SYMBOL_GPL vmlinux 0x62296055 iocb_bio_iopoll +EXPORT_SYMBOL_GPL vmlinux 0x61f80d03 of_mpc8xxx_spi_probe +EXPORT_SYMBOL_GPL vmlinux 0x61faaae0 irq_chip_mask_ack_parent +EXPORT_SYMBOL_GPL vmlinux 0x6222dd4b dev_pm_opp_find_bw_ceil EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6235b2a6 fsnotify_add_mark EXPORT_SYMBOL_GPL vmlinux 0x62377a7b blk_io_schedule -EXPORT_SYMBOL_GPL vmlinux 0x623bcd5f get_user_pages_fast_only EXPORT_SYMBOL_GPL vmlinux 0x6246a629 synchronize_rcu_tasks_trace -EXPORT_SYMBOL_GPL vmlinux 0x62470d8c serial8250_do_shutdown EXPORT_SYMBOL_GPL vmlinux 0x6257dda7 clk_rate_exclusive_get EXPORT_SYMBOL_GPL vmlinux 0x6259d291 clk_restore_context -EXPORT_SYMBOL_GPL vmlinux 0x6262eeb0 dw_pcie_ep_reset_bar -EXPORT_SYMBOL_GPL vmlinux 0x626f93b7 blk_stat_enable_accounting -EXPORT_SYMBOL_GPL vmlinux 0x627ce19a ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x62636ff8 dma_alloc_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x626972e4 dev_pm_opp_init_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x627a892b ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x627c5b13 public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x62882e8f of_get_regulator_init_data EXPORT_SYMBOL_GPL vmlinux 0x6298a776 vcap_rule_set_counter -EXPORT_SYMBOL_GPL vmlinux 0x62a5bf88 nvmem_device_cell_write -EXPORT_SYMBOL_GPL vmlinux 0x62a98abd ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x6299de90 ack_all_badblocks EXPORT_SYMBOL_GPL vmlinux 0x62ad2053 cpu_bit_bitmap -EXPORT_SYMBOL_GPL vmlinux 0x62ad27b6 usb_urb_ep_type_check EXPORT_SYMBOL_GPL vmlinux 0x62b02737 register_ftrace_function -EXPORT_SYMBOL_GPL vmlinux 0x62b25b36 clk_hw_rate_is_protected -EXPORT_SYMBOL_GPL vmlinux 0x62b70493 iommu_device_link EXPORT_SYMBOL_GPL vmlinux 0x62bb09bf clocks_calc_mult_shift -EXPORT_SYMBOL_GPL vmlinux 0x62d50663 devm_regulator_get -EXPORT_SYMBOL_GPL vmlinux 0x62dda9d5 trace_put_event_file -EXPORT_SYMBOL_GPL vmlinux 0x62de5f85 perf_event_enable -EXPORT_SYMBOL_GPL vmlinux 0x62e3fc47 dm_send_uevents -EXPORT_SYMBOL_GPL vmlinux 0x62e86094 posix_clock_unregister -EXPORT_SYMBOL_GPL vmlinux 0x62f5a517 devm_bitmap_zalloc -EXPORT_SYMBOL_GPL vmlinux 0x62f82ca4 mddev_resume -EXPORT_SYMBOL_GPL vmlinux 0x630bfc64 irq_chip_release_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0x62cb5ec9 edac_device_handle_ce_count +EXPORT_SYMBOL_GPL vmlinux 0x62dec9f3 i2c_acpi_find_bus_speed +EXPORT_SYMBOL_GPL vmlinux 0x62e4ee00 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x6304bff3 serial8250_do_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x631335af wm8350_reg_write EXPORT_SYMBOL_GPL vmlinux 0x63150e06 clk_get_parent -EXPORT_SYMBOL_GPL vmlinux 0x631846f2 __rio_local_read_config_16 EXPORT_SYMBOL_GPL vmlinux 0x63197685 s2idle_wake -EXPORT_SYMBOL_GPL vmlinux 0x6319bbd9 acpi_get_acpi_dev -EXPORT_SYMBOL_GPL vmlinux 0x631e907a usb_get_phy -EXPORT_SYMBOL_GPL vmlinux 0x632c1a5b genphy_c45_read_mdix -EXPORT_SYMBOL_GPL vmlinux 0x633ef7a2 led_classdev_register_ext -EXPORT_SYMBOL_GPL vmlinux 0x633f0086 dmaengine_desc_attach_metadata -EXPORT_SYMBOL_GPL vmlinux 0x6345b803 device_link_del +EXPORT_SYMBOL_GPL vmlinux 0x6349483c da903x_set_bits EXPORT_SYMBOL_GPL vmlinux 0x634b9d42 __SCK__tp_func_block_unplug -EXPORT_SYMBOL_GPL vmlinux 0x634c45ad ip6_route_lookup EXPORT_SYMBOL_GPL vmlinux 0x635beb47 init_iova_domain -EXPORT_SYMBOL_GPL vmlinux 0x635fd645 tcp_set_keepalive -EXPORT_SYMBOL_GPL vmlinux 0x636b2d12 regulator_map_voltage_linear_range -EXPORT_SYMBOL_GPL vmlinux 0x63901d8f xfrm_dev_offload_ok -EXPORT_SYMBOL_GPL vmlinux 0x63ab0644 gpiod_get_index -EXPORT_SYMBOL_GPL vmlinux 0x63bd767d tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x6362599c acpi_subsys_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x637755ba __traceiter_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x6381b2df devm_clk_bulk_get_all +EXPORT_SYMBOL_GPL vmlinux 0x63884224 devm_clk_hw_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x63a49d2d regulator_desc_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x63a6d0c9 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x63b96a4e pinmux_generic_remove_function EXPORT_SYMBOL_GPL vmlinux 0x63c08029 clk_bulk_unprepare -EXPORT_SYMBOL_GPL vmlinux 0x63f60318 gpiod_set_raw_value_cansleep -EXPORT_SYMBOL_GPL vmlinux 0x63fce0c9 debugfs_create_ulong -EXPORT_SYMBOL_GPL vmlinux 0x64001ee9 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x63fe87c5 devm_clk_hw_register_fixed_factor_parent_hw +EXPORT_SYMBOL_GPL vmlinux 0x64020f5e serial8250_rx_dma_flush EXPORT_SYMBOL_GPL vmlinux 0x6407a26a usb_kill_anchored_urbs -EXPORT_SYMBOL_GPL vmlinux 0x6431d9c6 handle_mm_fault -EXPORT_SYMBOL_GPL vmlinux 0x64367ad5 input_ff_create -EXPORT_SYMBOL_GPL vmlinux 0x64381f42 folio_alloc_buffers +EXPORT_SYMBOL_GPL vmlinux 0x640e1dc6 devm_usb_get_phy_by_node +EXPORT_SYMBOL_GPL vmlinux 0x6417ecf6 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x6431ec5e mmc_regulator_enable_vqmmc +EXPORT_SYMBOL_GPL vmlinux 0x64352b27 iomap_read_folio +EXPORT_SYMBOL_GPL vmlinux 0x643acb14 sk_msg_free +EXPORT_SYMBOL_GPL vmlinux 0x643d9cff ethnl_cable_test_step EXPORT_SYMBOL_GPL vmlinux 0x6443180c __xas_prev -EXPORT_SYMBOL_GPL vmlinux 0x645e5fa9 crypto_clone_cipher -EXPORT_SYMBOL_GPL vmlinux 0x64690b25 extcon_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x647168a9 blkdev_report_zones +EXPORT_SYMBOL_GPL vmlinux 0x646204c5 devl_rate_leaf_create +EXPORT_SYMBOL_GPL vmlinux 0x6485a8f2 fbcon_modechange_possible +EXPORT_SYMBOL_GPL vmlinux 0x648d66d8 devm_mbox_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x648e599a fuse_fill_super_common EXPORT_SYMBOL_GPL vmlinux 0x648f59a9 sfp_module_insert -EXPORT_SYMBOL_GPL vmlinux 0x64a343da virtio_device_restore -EXPORT_SYMBOL_GPL vmlinux 0x64a81fd7 __hwspin_lock_timeout -EXPORT_SYMBOL_GPL vmlinux 0x64b63a0f exportfs_encode_inode_fh -EXPORT_SYMBOL_GPL vmlinux 0x64c1444f __fscrypt_prepare_link -EXPORT_SYMBOL_GPL vmlinux 0x64de1bc8 virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0x64925475 devm_ioremap_uc +EXPORT_SYMBOL_GPL vmlinux 0x64a86614 vcap_get_rule EXPORT_SYMBOL_GPL vmlinux 0x64e27c4f synth_event_delete +EXPORT_SYMBOL_GPL vmlinux 0x64f17077 pm_clk_init EXPORT_SYMBOL_GPL vmlinux 0x64f36620 dax_flush -EXPORT_SYMBOL_GPL vmlinux 0x64fed3c3 nf_queue_entry_get_refs -EXPORT_SYMBOL_GPL vmlinux 0x65106cc3 iomap_seek_data -EXPORT_SYMBOL_GPL vmlinux 0x6514933a debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x65057a09 pinmux_generic_get_function_groups +EXPORT_SYMBOL_GPL vmlinux 0x6506294b of_reserved_mem_device_init_by_name +EXPORT_SYMBOL_GPL vmlinux 0x6507efe1 nfs42_ssc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x650b1939 regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0x650b9b0f nd_cmd_out_size +EXPORT_SYMBOL_GPL vmlinux 0x6516a7ad register_btf_kfunc_id_set +EXPORT_SYMBOL_GPL vmlinux 0x65176ecb ata_host_alloc EXPORT_SYMBOL_GPL vmlinux 0x651d10e5 ktime_get_tai_fast_ns -EXPORT_SYMBOL_GPL vmlinux 0x651d98b0 extcon_find_edev_by_node EXPORT_SYMBOL_GPL vmlinux 0x6531a37f mpi_add -EXPORT_SYMBOL_GPL vmlinux 0x65422bb0 usb_add_hcd -EXPORT_SYMBOL_GPL vmlinux 0x655d0ea5 devm_of_phy_get_by_index -EXPORT_SYMBOL_GPL vmlinux 0x658811fc phy_set_media -EXPORT_SYMBOL_GPL vmlinux 0x659f2987 anon_inode_getfd_secure -EXPORT_SYMBOL_GPL vmlinux 0x65bffb4d i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x654ae4eb skb_zerocopy +EXPORT_SYMBOL_GPL vmlinux 0x6555164a scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x656dddb9 pinctrl_generic_get_group_count +EXPORT_SYMBOL_GPL vmlinux 0x657cfe64 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x6593d955 gpiod_set_consumer_name +EXPORT_SYMBOL_GPL vmlinux 0x6595796d inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x65af4a20 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x65b7f3d4 pci_bridge_secondary_bus_reset EXPORT_SYMBOL_GPL vmlinux 0x65c3609b inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x65c3a691 __clk_hw_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x65c6949b cpufreq_driver_fast_switch EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers -EXPORT_SYMBOL_GPL vmlinux 0x65d8cd47 xfrm_dev_policy_add -EXPORT_SYMBOL_GPL vmlinux 0x65ea1b45 to_nvdimm -EXPORT_SYMBOL_GPL vmlinux 0x65f34f22 regulator_list_voltage_linear_range -EXPORT_SYMBOL_GPL vmlinux 0x65fcc9c1 devm_regulator_get_exclusive -EXPORT_SYMBOL_GPL vmlinux 0x65ffb540 apply_to_existing_page_range -EXPORT_SYMBOL_GPL vmlinux 0x66012634 edac_device_alloc_ctl_info -EXPORT_SYMBOL_GPL vmlinux 0x66135846 irq_domain_push_irq +EXPORT_SYMBOL_GPL vmlinux 0x65d46576 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x65f6ed19 vcap_find_admin +EXPORT_SYMBOL_GPL vmlinux 0x65f8c71c phy_validate +EXPORT_SYMBOL_GPL vmlinux 0x65f8d0e8 tcp_enter_memory_pressure EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x66170558 thermal_cooling_device_register EXPORT_SYMBOL_GPL vmlinux 0x661b194c xas_split -EXPORT_SYMBOL_GPL vmlinux 0x662bd385 gov_attr_set_get -EXPORT_SYMBOL_GPL vmlinux 0x66350d6c __xdp_build_skb_from_frame EXPORT_SYMBOL_GPL vmlinux 0x6636c3c9 irq_set_vcpu_affinity +EXPORT_SYMBOL_GPL vmlinux 0x66398b82 devl_param_driverinit_value_set EXPORT_SYMBOL_GPL vmlinux 0x663bb448 devlink_fmsg_obj_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x664e0ab7 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x6650fa6b rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x665486f5 subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0x665b3655 mctrl_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x665bb790 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x665be5ca crypto_unregister_skcipher EXPORT_SYMBOL_GPL vmlinux 0x665e92a0 clk_set_duty_cycle -EXPORT_SYMBOL_GPL vmlinux 0x666e98ef thp_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0x667783cc serial8250_rpm_get EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng -EXPORT_SYMBOL_GPL vmlinux 0x66869626 tpm_transmit_cmd -EXPORT_SYMBOL_GPL vmlinux 0x66a3e24c devm_gpiod_get_index_optional -EXPORT_SYMBOL_GPL vmlinux 0x66a49446 __traceiter_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x668539b3 switchdev_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0x6690d9f9 acpi_initialize_hp_context +EXPORT_SYMBOL_GPL vmlinux 0x669a13f3 folio_wait_writeback_killable +EXPORT_SYMBOL_GPL vmlinux 0x66a19ee5 rio_local_set_device_id EXPORT_SYMBOL_GPL vmlinux 0x66a57e0d btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x66a7bee2 bpf_trace_run2 EXPORT_SYMBOL_GPL vmlinux 0x66b2212c x509_load_certificate_list EXPORT_SYMBOL_GPL vmlinux 0x66b97421 sfp_link_up -EXPORT_SYMBOL_GPL vmlinux 0x66cab76d __fscrypt_encrypt_symlink +EXPORT_SYMBOL_GPL vmlinux 0x66c21aca pci_epc_stop +EXPORT_SYMBOL_GPL vmlinux 0x66c69435 dev_pm_opp_of_find_icc_paths +EXPORT_SYMBOL_GPL vmlinux 0x66cf02ba devl_dpipe_headers_register +EXPORT_SYMBOL_GPL vmlinux 0x66d6c32f iommu_setup_dma_ops EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr -EXPORT_SYMBOL_GPL vmlinux 0x66d896e3 xdp_return_frame_bulk -EXPORT_SYMBOL_GPL vmlinux 0x6704a1d7 debugfs_print_regs32 -EXPORT_SYMBOL_GPL vmlinux 0x67421a56 iomap_page_mkwrite +EXPORT_SYMBOL_GPL vmlinux 0x66f63d97 devlink_port_type_clear +EXPORT_SYMBOL_GPL vmlinux 0x66fe3148 strp_data_ready +EXPORT_SYMBOL_GPL vmlinux 0x6724e4d9 devm_hwspin_lock_request +EXPORT_SYMBOL_GPL vmlinux 0x672dc9fe nvdimm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x67373b2c nf_ip6_check_hbh_len EXPORT_SYMBOL_GPL vmlinux 0x67429c91 __SCK__tp_func_block_bio_remap -EXPORT_SYMBOL_GPL vmlinux 0x67527c0d of_fwnode_ops -EXPORT_SYMBOL_GPL vmlinux 0x6767cacf of_pci_address_to_resource -EXPORT_SYMBOL_GPL vmlinux 0x677ee7c1 pinmux_generic_get_function -EXPORT_SYMBOL_GPL vmlinux 0x67807a04 sk_psock_tls_strp_read -EXPORT_SYMBOL_GPL vmlinux 0x67950dc0 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x6765e02e usb_role_switch_register +EXPORT_SYMBOL_GPL vmlinux 0x6766979d xdp_return_frame +EXPORT_SYMBOL_GPL vmlinux 0x676f1b3e pci_acpi_set_companion_lookup_hook +EXPORT_SYMBOL_GPL vmlinux 0x678cbdf0 crypto_mod_get EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits -EXPORT_SYMBOL_GPL vmlinux 0x67aa1359 device_set_node -EXPORT_SYMBOL_GPL vmlinux 0x67b2ec0c tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x67a7b649 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x67bedc89 pinctrl_generic_get_group EXPORT_SYMBOL_GPL vmlinux 0x67c3c795 get_state_synchronize_rcu_full +EXPORT_SYMBOL_GPL vmlinux 0x67c62a9c devm_regulator_register_notifier EXPORT_SYMBOL_GPL vmlinux 0x67da9f7c sha512_zero_message_hash -EXPORT_SYMBOL_GPL vmlinux 0x67ec61ef fib6_rule_default -EXPORT_SYMBOL_GPL vmlinux 0x67f45dbb crypto_unregister_skcipher -EXPORT_SYMBOL_GPL vmlinux 0x67fc3ed3 shmem_read_folio_gfp -EXPORT_SYMBOL_GPL vmlinux 0x6814f9ea serial8250_clear_and_reinit_fifos -EXPORT_SYMBOL_GPL vmlinux 0x6815e0fe gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x68147377 device_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x681adb00 unregister_pernet_device EXPORT_SYMBOL_GPL vmlinux 0x6822de1a firmware_upload_unregister -EXPORT_SYMBOL_GPL vmlinux 0x682bba0b devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x682fa6a8 devm_clk_hw_register_fixed_factor_index EXPORT_SYMBOL_GPL vmlinux 0x682ff057 ring_buffer_commit_overrun_cpu -EXPORT_SYMBOL_GPL vmlinux 0x683f4f7f serdev_controller_alloc -EXPORT_SYMBOL_GPL vmlinux 0x68413ffe nvdimm_pmem_region_create EXPORT_SYMBOL_GPL vmlinux 0x68460527 blkcg_set_fc_appid -EXPORT_SYMBOL_GPL vmlinux 0x685cd641 md_rdev_init EXPORT_SYMBOL_GPL vmlinux 0x686881c5 unregister_net_sysctl_table -EXPORT_SYMBOL_GPL vmlinux 0x687a7559 evict_inodes -EXPORT_SYMBOL_GPL vmlinux 0x6889aee2 extcon_get_property_capability -EXPORT_SYMBOL_GPL vmlinux 0x688df170 crypto_skcipher_decrypt -EXPORT_SYMBOL_GPL vmlinux 0x689217dc devm_reset_controller_register -EXPORT_SYMBOL_GPL vmlinux 0x68949d40 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x686a8c5d tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0x68729706 fscrypt_get_symlink +EXPORT_SYMBOL_GPL vmlinux 0x688c4c3a irq_chip_ack_parent EXPORT_SYMBOL_GPL vmlinux 0x68952493 rcu_note_context_switch -EXPORT_SYMBOL_GPL vmlinux 0x68ba3246 dev_coredumpm -EXPORT_SYMBOL_GPL vmlinux 0x68d2007f of_genpd_parse_idle_states -EXPORT_SYMBOL_GPL vmlinux 0x68d297ac nvdimm_bus_unregister -EXPORT_SYMBOL_GPL vmlinux 0x68d989e9 pci_user_write_config_dword -EXPORT_SYMBOL_GPL vmlinux 0x68de94ae pci_ignore_hotplug -EXPORT_SYMBOL_GPL vmlinux 0x68f568fc pinconf_generic_parse_dt_config +EXPORT_SYMBOL_GPL vmlinux 0x689d929f perf_pmu_register +EXPORT_SYMBOL_GPL vmlinux 0x68d38369 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x68dc0368 vchan_tx_desc_free +EXPORT_SYMBOL_GPL vmlinux 0x68f1175b power_supply_get_battery_info +EXPORT_SYMBOL_GPL vmlinux 0x68fc49a6 phy_modify_mmd_changed EXPORT_SYMBOL_GPL vmlinux 0x6900686f vcap_find_actionfield -EXPORT_SYMBOL_GPL vmlinux 0x690731a6 iomap_is_partially_uptodate EXPORT_SYMBOL_GPL vmlinux 0x690f585e phy_basic_ports_array -EXPORT_SYMBOL_GPL vmlinux 0x691b89dc ext_pi_type3_crc64 -EXPORT_SYMBOL_GPL vmlinux 0x69228ed2 ata_acpi_stm -EXPORT_SYMBOL_GPL vmlinux 0x6924604f fat_getattr EXPORT_SYMBOL_GPL vmlinux 0x6926c3fa vcap_rule_get_counter -EXPORT_SYMBOL_GPL vmlinux 0x69316808 phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL vmlinux 0x69337aab pci_find_vsec_capability +EXPORT_SYMBOL_GPL vmlinux 0x6942471d sysfs_create_bin_file EXPORT_SYMBOL_GPL vmlinux 0x695776c5 seq_buf_do_printk -EXPORT_SYMBOL_GPL vmlinux 0x695b1349 usb_hcd_unmap_urb_for_dma -EXPORT_SYMBOL_GPL vmlinux 0x69627dfd bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x695f5f01 crypto_akcipher_sync_decrypt EXPORT_SYMBOL_GPL vmlinux 0x69637b2c __traceiter_powernv_throttle -EXPORT_SYMBOL_GPL vmlinux 0x6968a246 __reset_control_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x6966ed80 device_add +EXPORT_SYMBOL_GPL vmlinux 0x696e1117 __traceiter_rpm_return_int EXPORT_SYMBOL_GPL vmlinux 0x696f2b63 of_changeset_init -EXPORT_SYMBOL_GPL vmlinux 0x6975148d clockevents_unbind_device EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc -EXPORT_SYMBOL_GPL vmlinux 0x69828b75 devm_led_trigger_register -EXPORT_SYMBOL_GPL vmlinux 0x69837c36 bio_associate_blkg -EXPORT_SYMBOL_GPL vmlinux 0x69854cd7 of_pm_clk_add_clks -EXPORT_SYMBOL_GPL vmlinux 0x698c1111 tty_find_polling_driver -EXPORT_SYMBOL_GPL vmlinux 0x69954d4a skb_cow_data -EXPORT_SYMBOL_GPL vmlinux 0x69c60e77 mptcp_token_iter_next -EXPORT_SYMBOL_GPL vmlinux 0x69c6acf1 device_store_ulong -EXPORT_SYMBOL_GPL vmlinux 0x69ca24db thermal_of_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x6989f3cf mpc8xxx_spi_rx_buf_u32 +EXPORT_SYMBOL_GPL vmlinux 0x6992f19f buffer_migrate_folio_norefs +EXPORT_SYMBOL_GPL vmlinux 0x69961ea8 dev_attr_ncq_prio_enable +EXPORT_SYMBOL_GPL vmlinux 0x69962907 nvmem_del_cell_table +EXPORT_SYMBOL_GPL vmlinux 0x69b2f7ff devm_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x69b42c59 dm_internal_resume_fast EXPORT_SYMBOL_GPL vmlinux 0x69cf0632 mpi_fromstr EXPORT_SYMBOL_GPL vmlinux 0x69e683de uuid_gen EXPORT_SYMBOL_GPL vmlinux 0x69eb1d51 alloc_memory_type EXPORT_SYMBOL_GPL vmlinux 0x69ee2220 linear_range_get_selector_high -EXPORT_SYMBOL_GPL vmlinux 0x69f4449b devlink_sb_register -EXPORT_SYMBOL_GPL vmlinux 0x69f6efcb direct_write_fallback -EXPORT_SYMBOL_GPL vmlinux 0x69f95265 dw_pcie_find_capability +EXPORT_SYMBOL_GPL vmlinux 0x69f19a63 virtio_max_dma_size +EXPORT_SYMBOL_GPL vmlinux 0x69fed62f palmas_ext_control_req_config EXPORT_SYMBOL_GPL vmlinux 0x6a05b65b fb_videomode_from_videomode +EXPORT_SYMBOL_GPL vmlinux 0x6a0ce5d3 dw8250_setup_port +EXPORT_SYMBOL_GPL vmlinux 0x6a111d31 tpm_chip_register +EXPORT_SYMBOL_GPL vmlinux 0x6a137f11 unregister_nvdimm_pmu EXPORT_SYMBOL_GPL vmlinux 0x6a14d3af unregister_random_vmfork_notifier -EXPORT_SYMBOL_GPL vmlinux 0x6a17e3a9 handle_fasteoi_nmi -EXPORT_SYMBOL_GPL vmlinux 0x6a1963f9 acpi_is_pnp_device -EXPORT_SYMBOL_GPL vmlinux 0x6a1f5e14 debugfs_rename -EXPORT_SYMBOL_GPL vmlinux 0x6a375cd1 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6a40c93e mptcp_get_reset_option +EXPORT_SYMBOL_GPL vmlinux 0x6a45712e gpiochip_is_requested EXPORT_SYMBOL_GPL vmlinux 0x6a460dc5 schedule_hrtimeout -EXPORT_SYMBOL_GPL vmlinux 0x6a493bc3 irq_remove_generic_chip EXPORT_SYMBOL_GPL vmlinux 0x6a4f623b mmu_notifier_synchronize -EXPORT_SYMBOL_GPL vmlinux 0x6a55bab0 priv_to_devlink -EXPORT_SYMBOL_GPL vmlinux 0x6a58f864 devlink_port_region_create -EXPORT_SYMBOL_GPL vmlinux 0x6a5a0402 tcp_sendmsg_locked -EXPORT_SYMBOL_GPL vmlinux 0x6a5c654e fuse_conn_init -EXPORT_SYMBOL_GPL vmlinux 0x6a74908e powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0x6a5e6427 of_property_read_variable_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x6a74ba6f usb_find_interface EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start -EXPORT_SYMBOL_GPL vmlinux 0x6a86462a serdev_device_remove +EXPORT_SYMBOL_GPL vmlinux 0x6a90f929 vchan_dma_desc_free_list EXPORT_SYMBOL_GPL vmlinux 0x6a9e90af ata_mode_string -EXPORT_SYMBOL_GPL vmlinux 0x6aa24314 max8997_update_reg -EXPORT_SYMBOL_GPL vmlinux 0x6ab6335d __clocksource_update_freq_scale -EXPORT_SYMBOL_GPL vmlinux 0x6ab7dc17 bpfilter_ops -EXPORT_SYMBOL_GPL vmlinux 0x6ad82710 clk_hw_unregister -EXPORT_SYMBOL_GPL vmlinux 0x6aeb93f1 pci_hp_add_bridge -EXPORT_SYMBOL_GPL vmlinux 0x6af905bb fuse_dev_alloc -EXPORT_SYMBOL_GPL vmlinux 0x6b0835a3 ata_pci_device_resume -EXPORT_SYMBOL_GPL vmlinux 0x6b0da3da fuse_get_unique -EXPORT_SYMBOL_GPL vmlinux 0x6b10fc9d platform_get_resource -EXPORT_SYMBOL_GPL vmlinux 0x6b1919f6 phy_pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0x6aa07120 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x6aa27ec3 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x6ac91127 devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x6acb1e20 trace_event_buffer_reserve +EXPORT_SYMBOL_GPL vmlinux 0x6af9068c power_supply_property_is_writeable +EXPORT_SYMBOL_GPL vmlinux 0x6af95512 class_create +EXPORT_SYMBOL_GPL vmlinux 0x6b0f5cfd dst_blackhole_mtu +EXPORT_SYMBOL_GPL vmlinux 0x6b24e301 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x6b2b1b9e md_allow_write EXPORT_SYMBOL_GPL vmlinux 0x6b2b69f7 static_key_enable -EXPORT_SYMBOL_GPL vmlinux 0x6b2fe784 device_for_each_child -EXPORT_SYMBOL_GPL vmlinux 0x6b340d6e skb_complete_wifi_ack EXPORT_SYMBOL_GPL vmlinux 0x6b3ae022 acpi_os_unmap_iomem +EXPORT_SYMBOL_GPL vmlinux 0x6b40645e blk_mark_disk_dead EXPORT_SYMBOL_GPL vmlinux 0x6b413c9b sfp_link_down -EXPORT_SYMBOL_GPL vmlinux 0x6b4db14a devm_pwm_get -EXPORT_SYMBOL_GPL vmlinux 0x6b511b8c sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x6b4b98a5 vcap_tc_flower_handler_portnum_usage EXPORT_SYMBOL_GPL vmlinux 0x6b545371 topology_update_thermal_pressure -EXPORT_SYMBOL_GPL vmlinux 0x6b55733d find_mci_by_dev -EXPORT_SYMBOL_GPL vmlinux 0x6b6e9b3d spi_new_ancillary_device +EXPORT_SYMBOL_GPL vmlinux 0x6b61a269 crypto_register_rngs +EXPORT_SYMBOL_GPL vmlinux 0x6b6f311f of_nvmem_layout_get_container EXPORT_SYMBOL_GPL vmlinux 0x6b81c38b power_supply_unreg_notifier -EXPORT_SYMBOL_GPL vmlinux 0x6b823172 kpp_register_instance -EXPORT_SYMBOL_GPL vmlinux 0x6b9cd587 gpiochip_add_pin_range -EXPORT_SYMBOL_GPL vmlinux 0x6ba2479a iommu_device_release_dma_owner +EXPORT_SYMBOL_GPL vmlinux 0x6b833e6a ata_bmdma_qc_issue EXPORT_SYMBOL_GPL vmlinux 0x6ba37dc4 riscv_isa_extension_base -EXPORT_SYMBOL_GPL vmlinux 0x6bc2ca46 to_nd_desc -EXPORT_SYMBOL_GPL vmlinux 0x6bcde328 ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x6bb2a9b2 device_get_dma_attr EXPORT_SYMBOL_GPL vmlinux 0x6bcdedc0 mpi_point_init +EXPORT_SYMBOL_GPL vmlinux 0x6bcf9977 crypto_drop_spawn EXPORT_SYMBOL_GPL vmlinux 0x6bd1aa56 stack_trace_save -EXPORT_SYMBOL_GPL vmlinux 0x6bd46fd2 pci_epc_stop -EXPORT_SYMBOL_GPL vmlinux 0x6bd594b9 devl_resource_occ_get_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6bd848bf pm_runtime_force_resume +EXPORT_SYMBOL_GPL vmlinux 0x6bda9e7a iomap_file_buffered_write EXPORT_SYMBOL_GPL vmlinux 0x6bdef35c acpi_ec_mark_gpe_for_wake -EXPORT_SYMBOL_GPL vmlinux 0x6be23f6e usb_set_interface -EXPORT_SYMBOL_GPL vmlinux 0x6be83bd6 devm_regulator_register_supply_alias -EXPORT_SYMBOL_GPL vmlinux 0x6beecc1e firmware_kobj -EXPORT_SYMBOL_GPL vmlinux 0x6bf62f7b dst_cache_get_ip6 -EXPORT_SYMBOL_GPL vmlinux 0x6bf95b32 set_task_ioprio -EXPORT_SYMBOL_GPL vmlinux 0x6c02bc62 of_pci_get_devfn -EXPORT_SYMBOL_GPL vmlinux 0x6c0fe66b tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x6be6f786 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x6bf3d103 dev_pm_opp_get_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x6bfdc0ea debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0x6c08a747 pci_epc_map_addr +EXPORT_SYMBOL_GPL vmlinux 0x6c1ccde7 virtio_break_device EXPORT_SYMBOL_GPL vmlinux 0x6c205008 mpi_print -EXPORT_SYMBOL_GPL vmlinux 0x6c2b4dd1 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x6c2305d7 __clocksource_update_freq_scale +EXPORT_SYMBOL_GPL vmlinux 0x6c2db5d0 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x6c342ee9 mbox_chan_txdone +EXPORT_SYMBOL_GPL vmlinux 0x6c364d7b udp4_hwcsum EXPORT_SYMBOL_GPL vmlinux 0x6c389761 acpi_bus_get_private_data -EXPORT_SYMBOL_GPL vmlinux 0x6c39a964 kernel_read_file EXPORT_SYMBOL_GPL vmlinux 0x6c3f70e0 guid_gen -EXPORT_SYMBOL_GPL vmlinux 0x6c40d983 device_change_owner EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert -EXPORT_SYMBOL_GPL vmlinux 0x6c4c6e5e driver_attach -EXPORT_SYMBOL_GPL vmlinux 0x6c544ad7 blk_queue_write_cache -EXPORT_SYMBOL_GPL vmlinux 0x6c547046 tty_ldisc_receive_buf +EXPORT_SYMBOL_GPL vmlinux 0x6c4deed5 fwnode_get_phy_node EXPORT_SYMBOL_GPL vmlinux 0x6c5ad0cd kmsg_dump_register -EXPORT_SYMBOL_GPL vmlinux 0x6c62c191 xfrm_dev_state_add -EXPORT_SYMBOL_GPL vmlinux 0x6c63884d __traceiter_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x6c625ca5 regulator_get_exclusive EXPORT_SYMBOL_GPL vmlinux 0x6c655913 register_acpi_hed_notifier -EXPORT_SYMBOL_GPL vmlinux 0x6c6dc089 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x6c6a6c43 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x6c6aca8d dev_pm_genpd_get_next_hrtimer +EXPORT_SYMBOL_GPL vmlinux 0x6c7363df __pci_hp_initialize +EXPORT_SYMBOL_GPL vmlinux 0x6c8aba6e led_classdev_register_ext EXPORT_SYMBOL_GPL vmlinux 0x6c956075 __SCK__tp_func_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x6c972bee relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x6ca0ca62 ata_scsi_port_error_handler EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain -EXPORT_SYMBOL_GPL vmlinux 0x6ccd0402 clk_hw_register_fixed_factor_parent_hw +EXPORT_SYMBOL_GPL vmlinux 0x6cb0312d vcap_tc_flower_handler_ipv6_usage +EXPORT_SYMBOL_GPL vmlinux 0x6cbdde7d acpi_gpiochip_request_interrupts +EXPORT_SYMBOL_GPL vmlinux 0x6cc05f77 of_nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0x6cc3d8dd devfreq_get_devfreq_by_node +EXPORT_SYMBOL_GPL vmlinux 0x6ccd2e64 blk_mq_queue_inflight +EXPORT_SYMBOL_GPL vmlinux 0x6cdc8955 sbitmap_show +EXPORT_SYMBOL_GPL vmlinux 0x6ce0fc7b sdio_readl EXPORT_SYMBOL_GPL vmlinux 0x6ce10eb0 trace_clock_jiffies -EXPORT_SYMBOL_GPL vmlinux 0x6cf5f69e tty_port_register_device_attr_serdev -EXPORT_SYMBOL_GPL vmlinux 0x6cf7dc3c trace_add_event_call +EXPORT_SYMBOL_GPL vmlinux 0x6cf079e1 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x6cfc9546 fscrypt_prepare_symlink EXPORT_SYMBOL_GPL vmlinux 0x6cfe3b6f irq_get_percpu_devid_partition +EXPORT_SYMBOL_GPL vmlinux 0x6d0878ad devm_spi_register_controller EXPORT_SYMBOL_GPL vmlinux 0x6d09843f copy_bpf_fprog_from_user EXPORT_SYMBOL_GPL vmlinux 0x6d0ae550 pinctrl_gpio_request -EXPORT_SYMBOL_GPL vmlinux 0x6d1782f4 cpufreq_disable_fast_switch -EXPORT_SYMBOL_GPL vmlinux 0x6d19aaec acpi_get_and_request_gpiod -EXPORT_SYMBOL_GPL vmlinux 0x6d1a242d xhci_update_hub_device -EXPORT_SYMBOL_GPL vmlinux 0x6d1ffdfa irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x6d0c28e2 debugfs_file_get +EXPORT_SYMBOL_GPL vmlinux 0x6d12ca8f __vfs_setxattr_locked +EXPORT_SYMBOL_GPL vmlinux 0x6d1e79e4 fwnode_connection_find_matches EXPORT_SYMBOL_GPL vmlinux 0x6d211d05 pm_report_hw_sleep_time +EXPORT_SYMBOL_GPL vmlinux 0x6d2ee37a register_pernet_device EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list -EXPORT_SYMBOL_GPL vmlinux 0x6d3c5cf7 ata_pci_sff_init_one -EXPORT_SYMBOL_GPL vmlinux 0x6d4266b9 vp_modern_get_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x6d3517ad sysfs_create_mount_point +EXPORT_SYMBOL_GPL vmlinux 0x6d488412 acpi_spi_device_alloc EXPORT_SYMBOL_GPL vmlinux 0x6d49c8ed iommu_group_has_isolated_msi -EXPORT_SYMBOL_GPL vmlinux 0x6d57ebb9 metadata_dst_free -EXPORT_SYMBOL_GPL vmlinux 0x6d5a9096 irq_domain_get_irq_data -EXPORT_SYMBOL_GPL vmlinux 0x6d5f78ff thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x6d4a9de1 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x6d616e07 blk_mq_update_nr_hw_queues +EXPORT_SYMBOL_GPL vmlinux 0x6d669f0e hwmon_device_register_with_groups EXPORT_SYMBOL_GPL vmlinux 0x6d6fec1f ktime_mono_to_any EXPORT_SYMBOL_GPL vmlinux 0x6d7832b7 __stack_depot_save EXPORT_SYMBOL_GPL vmlinux 0x6d7e951e rcu_exp_batches_completed -EXPORT_SYMBOL_GPL vmlinux 0x6d7ec0c3 hvc_remove -EXPORT_SYMBOL_GPL vmlinux 0x6d99c7f2 devfreq_event_disable_edev -EXPORT_SYMBOL_GPL vmlinux 0x6da38313 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x6da3793b shash_free_singlespawn_instance +EXPORT_SYMBOL_GPL vmlinux 0x6da4c1e4 battery_hook_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6daca23b rtc_update_irq_enable EXPORT_SYMBOL_GPL vmlinux 0x6dbaafd3 put_old_timespec32 -EXPORT_SYMBOL_GPL vmlinux 0x6dbd9cdb clone_private_mount -EXPORT_SYMBOL_GPL vmlinux 0x6dd05d55 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x6dc1add3 usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x6dd02b2d device_get_child_node_count EXPORT_SYMBOL_GPL vmlinux 0x6dd5680d sprint_symbol_build_id +EXPORT_SYMBOL_GPL vmlinux 0x6ddc3d8e sock_map_close EXPORT_SYMBOL_GPL vmlinux 0x6ded56d3 dev_pm_opp_of_cpumask_remove_table -EXPORT_SYMBOL_GPL vmlinux 0x6df2ab7c skb_complete_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x6dfa4061 fwnode_get_named_child_node EXPORT_SYMBOL_GPL vmlinux 0x6dfb88d7 mas_find -EXPORT_SYMBOL_GPL vmlinux 0x6e066e44 device_find_any_child EXPORT_SYMBOL_GPL vmlinux 0x6e09d93d __SCK__tp_func_map -EXPORT_SYMBOL_GPL vmlinux 0x6e0a42bb dw_pcie_upconfig_setup -EXPORT_SYMBOL_GPL vmlinux 0x6e124533 sdio_release_host -EXPORT_SYMBOL_GPL vmlinux 0x6e1935b1 devfreq_cooling_unregister -EXPORT_SYMBOL_GPL vmlinux 0x6e27d2d4 __traceiter_sched_overutilized_tp -EXPORT_SYMBOL_GPL vmlinux 0x6e34c476 usb_control_msg_recv +EXPORT_SYMBOL_GPL vmlinux 0x6e0a4580 pci_dev_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6e3438f5 led_init_default_state_get EXPORT_SYMBOL_GPL vmlinux 0x6e353c26 mpi_rshift -EXPORT_SYMBOL_GPL vmlinux 0x6e3a7fab fuse_simple_background EXPORT_SYMBOL_GPL vmlinux 0x6e3ff83a edac_device_alloc_index -EXPORT_SYMBOL_GPL vmlinux 0x6e642e43 inet_csk_listen_start -EXPORT_SYMBOL_GPL vmlinux 0x6e6a62ea vcap_keyset_name -EXPORT_SYMBOL_GPL vmlinux 0x6e6b3df2 ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x6e40cd9b tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x6e4c9f62 pci_epc_mem_alloc_addr +EXPORT_SYMBOL_GPL vmlinux 0x6e62b782 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0x6e722ed0 xhci_find_slot_id_by_port EXPORT_SYMBOL_GPL vmlinux 0x6e7943ec iommu_group_id -EXPORT_SYMBOL_GPL vmlinux 0x6e7aee27 crypto_remove_spawns -EXPORT_SYMBOL_GPL vmlinux 0x6e7f280d sysfs_create_groups -EXPORT_SYMBOL_GPL vmlinux 0x6e86c2c6 fwnode_get_next_parent EXPORT_SYMBOL_GPL vmlinux 0x6e896427 trace_seq_bprintf EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base -EXPORT_SYMBOL_GPL vmlinux 0x6e8ced23 devm_phy_put -EXPORT_SYMBOL_GPL vmlinux 0x6e8d7c79 crypto_alloc_aead EXPORT_SYMBOL_GPL vmlinux 0x6e914514 acpi_dev_irq_flags -EXPORT_SYMBOL_GPL vmlinux 0x6ea477aa cdrom_multisession -EXPORT_SYMBOL_GPL vmlinux 0x6ea6ca9a inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x6e941ace serdev_device_write_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x6ea5095b acpi_match_device EXPORT_SYMBOL_GPL vmlinux 0x6eb04f46 register_random_vmfork_notifier EXPORT_SYMBOL_GPL vmlinux 0x6eb8aa8c add_wait_queue_priority EXPORT_SYMBOL_GPL vmlinux 0x6ebe366f ktime_get_mono_fast_ns -EXPORT_SYMBOL_GPL vmlinux 0x6ec4136f platform_get_irq_byname -EXPORT_SYMBOL_GPL vmlinux 0x6ed80e06 __xdp_rxq_info_reg -EXPORT_SYMBOL_GPL vmlinux 0x6ee62c6b disk_set_independent_access_ranges -EXPORT_SYMBOL_GPL vmlinux 0x6eeb4d73 nvdimm_region_delete -EXPORT_SYMBOL_GPL vmlinux 0x6ef0febc devfreq_event_get_event +EXPORT_SYMBOL_GPL vmlinux 0x6ed0e193 kernfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x6eda7b33 iommu_device_link +EXPORT_SYMBOL_GPL vmlinux 0x6ee996d4 disk_update_readahead +EXPORT_SYMBOL_GPL vmlinux 0x6eea062d devlink_dpipe_table_counter_enabled EXPORT_SYMBOL_GPL vmlinux 0x6ef6b54f ktime_get_boot_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x6efbd989 iommu_fwspec_free +EXPORT_SYMBOL_GPL vmlinux 0x6efe3c8e pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x6f00ff25 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x6f04a80a clk_hw_register EXPORT_SYMBOL_GPL vmlinux 0x6f12560a get_old_timespec32 +EXPORT_SYMBOL_GPL vmlinux 0x6f17155f debugfs_remove EXPORT_SYMBOL_GPL vmlinux 0x6f2017de misc_cg_set_capacity -EXPORT_SYMBOL_GPL vmlinux 0x6f47ad10 ata_sff_data_xfer -EXPORT_SYMBOL_GPL vmlinux 0x6f4ce374 genphy_c45_pma_baset1_setup_master_slave -EXPORT_SYMBOL_GPL vmlinux 0x6f4d78f9 __netdev_watchdog_up -EXPORT_SYMBOL_GPL vmlinux 0x6f51a358 virtqueue_enable_cb -EXPORT_SYMBOL_GPL vmlinux 0x6f5d2330 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6f390ee0 i2c_acpi_find_adapter_by_handle +EXPORT_SYMBOL_GPL vmlinux 0x6f3bcda8 component_bind_all +EXPORT_SYMBOL_GPL vmlinux 0x6f498d8b tcp_unregister_ulp EXPORT_SYMBOL_GPL vmlinux 0x6f62d146 ftrace_set_filter -EXPORT_SYMBOL_GPL vmlinux 0x6f672da1 xdp_features_set_redirect_target -EXPORT_SYMBOL_GPL vmlinux 0x6f6b261e perf_trace_run_bpf_submit +EXPORT_SYMBOL_GPL vmlinux 0x6f691139 riscv_get_intc_hwnode EXPORT_SYMBOL_GPL vmlinux 0x6f6b52e9 __ipv6_fixup_options -EXPORT_SYMBOL_GPL vmlinux 0x6f6b868e __hwspin_unlock EXPORT_SYMBOL_GPL vmlinux 0x6f6f9d00 usb_scuttle_anchored_urbs EXPORT_SYMBOL_GPL vmlinux 0x6f7e6040 irq_has_action -EXPORT_SYMBOL_GPL vmlinux 0x6f7f2bc8 crypto_shoot_alg -EXPORT_SYMBOL_GPL vmlinux 0x6f921348 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x6f7f03c4 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x6f8c1c4d xdp_return_frame_rx_napi +EXPORT_SYMBOL_GPL vmlinux 0x6f9c01dc skb_gso_validate_mac_len EXPORT_SYMBOL_GPL vmlinux 0x6f9e763b timecounter_read -EXPORT_SYMBOL_GPL vmlinux 0x6fa55bda netlink_remove_tap -EXPORT_SYMBOL_GPL vmlinux 0x6fb5e0db trace_event_buffer_lock_reserve -EXPORT_SYMBOL_GPL vmlinux 0x6fc8240b anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x6fa25f04 bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0x6fafb9b1 __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x6fb7aefd pskb_put EXPORT_SYMBOL_GPL vmlinux 0x6fcef6ab ring_buffer_reset -EXPORT_SYMBOL_GPL vmlinux 0x6fdb008d fscrypt_ioctl_get_policy_ex +EXPORT_SYMBOL_GPL vmlinux 0x6fd4b1d4 of_pwm_single_xlate +EXPORT_SYMBOL_GPL vmlinux 0x6fe654e4 scsi_host_busy_iter EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng -EXPORT_SYMBOL_GPL vmlinux 0x6ff74d23 __traceiter_block_rq_insert -EXPORT_SYMBOL_GPL vmlinux 0x7002032c rio_unregister_mport -EXPORT_SYMBOL_GPL vmlinux 0x70050bfd vfs_inode_has_locks +EXPORT_SYMBOL_GPL vmlinux 0x7004c660 vcap_port_debugfs EXPORT_SYMBOL_GPL vmlinux 0x7006586e iommu_get_group_resv_regions EXPORT_SYMBOL_GPL vmlinux 0x70079d69 tracepoint_probe_register_prio_may_exist -EXPORT_SYMBOL_GPL vmlinux 0x700fd3dc __traceiter_neigh_update_done -EXPORT_SYMBOL_GPL vmlinux 0x7024fe87 tcp_register_congestion_control -EXPORT_SYMBOL_GPL vmlinux 0x702566e2 devm_extcon_dev_free -EXPORT_SYMBOL_GPL vmlinux 0x70471f1e fuse_dev_fiq_ops -EXPORT_SYMBOL_GPL vmlinux 0x704e1497 vp_legacy_set_features -EXPORT_SYMBOL_GPL vmlinux 0x70505935 crypto_sig_sign -EXPORT_SYMBOL_GPL vmlinux 0x70540153 device_property_present -EXPORT_SYMBOL_GPL vmlinux 0x70690fd7 nvdimm_region_notify -EXPORT_SYMBOL_GPL vmlinux 0x706f8554 fl6_merge_options -EXPORT_SYMBOL_GPL vmlinux 0x70706b74 usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x7035cf1b debugfs_read_file_bool +EXPORT_SYMBOL_GPL vmlinux 0x703b4fe3 switchdev_handle_port_obj_add +EXPORT_SYMBOL_GPL vmlinux 0x703b5bee __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0x7041ee0c fsnotify_put_mark +EXPORT_SYMBOL_GPL vmlinux 0x70473b99 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x704bccb0 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x7052b0ff rio_unregister_mport +EXPORT_SYMBOL_GPL vmlinux 0x705e4d83 msi_domain_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x7066f63b devm_regmap_add_irq_chip_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x706bc4af tcp_plb_update_state_upon_rto EXPORT_SYMBOL_GPL vmlinux 0x7073c04f phy_10_100_features_array -EXPORT_SYMBOL_GPL vmlinux 0x708182bd __virtqueue_break +EXPORT_SYMBOL_GPL vmlinux 0x707faa72 nvdimm_bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x708234a7 md_account_bio EXPORT_SYMBOL_GPL vmlinux 0x7087b279 list_lru_walk_node -EXPORT_SYMBOL_GPL vmlinux 0x70a3e44c scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x7090f6f7 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x70914015 nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0x7096227a ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x709772fd gpiod_enable_hw_timestamp_ns +EXPORT_SYMBOL_GPL vmlinux 0x70b913c8 nf_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x70bdda14 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x70c10372 virtqueue_get_avail_addr EXPORT_SYMBOL_GPL vmlinux 0x70c2c7ea pids_cgrp_subsys_on_dfl_key EXPORT_SYMBOL_GPL vmlinux 0x70c52dc5 nf_skb_duplicated -EXPORT_SYMBOL_GPL vmlinux 0x70c935e1 usb_mon_register -EXPORT_SYMBOL_GPL vmlinux 0x70cbf7f7 __regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x70c6a470 da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x70c860bb devres_find EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq -EXPORT_SYMBOL_GPL vmlinux 0x70cff0ea of_clk_get_parent_name -EXPORT_SYMBOL_GPL vmlinux 0x70ec9318 put_device -EXPORT_SYMBOL_GPL vmlinux 0x70eeef8b __traceiter_ata_tf_load -EXPORT_SYMBOL_GPL vmlinux 0x70f20682 sata_std_hardreset -EXPORT_SYMBOL_GPL vmlinux 0x7102bc5c gpiochip_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x70d02f9a vcap_keyfield_name +EXPORT_SYMBOL_GPL vmlinux 0x70da49b9 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x70e25c4e dm_submit_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x70e7cbf6 rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0x70eea13a usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x70f0ef7f vchan_find_desc EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x710d248c icc_nodes_remove -EXPORT_SYMBOL_GPL vmlinux 0x7115dc5d __iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0x710dad6c led_blink_set_nosleep EXPORT_SYMBOL_GPL vmlinux 0x71207451 acpi_dev_resource_io -EXPORT_SYMBOL_GPL vmlinux 0x7128705a ata_sff_port_intr EXPORT_SYMBOL_GPL vmlinux 0x7129a6f4 osc_sb_native_usb4_support_confirmed +EXPORT_SYMBOL_GPL vmlinux 0x712da7da xdp_do_redirect_frame +EXPORT_SYMBOL_GPL vmlinux 0x712eed12 spi_controller_suspend EXPORT_SYMBOL_GPL vmlinux 0x71399abf trace_seq_putc -EXPORT_SYMBOL_GPL vmlinux 0x71477265 led_init_core EXPORT_SYMBOL_GPL vmlinux 0x715485f0 inet_ehash_locks_alloc +EXPORT_SYMBOL_GPL vmlinux 0x715d3c79 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x715f7332 thermal_zone_get_crit_temp EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7164be39 iomap_fiemap EXPORT_SYMBOL_GPL vmlinux 0x71724493 mctrl_gpio_enable_irq_wake -EXPORT_SYMBOL_GPL vmlinux 0x717d05eb xfrm_state_mtu -EXPORT_SYMBOL_GPL vmlinux 0x717d6331 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x71761abe yield_to +EXPORT_SYMBOL_GPL vmlinux 0x71896793 dev_pm_opp_find_freq_ceil +EXPORT_SYMBOL_GPL vmlinux 0x718eb5b1 pci_epc_set_bar +EXPORT_SYMBOL_GPL vmlinux 0x7194e419 gpiochip_irq_domain_activate EXPORT_SYMBOL_GPL vmlinux 0x7195940a mctrl_gpio_disable_irq_wake EXPORT_SYMBOL_GPL vmlinux 0x719e17ff clk_notifier_unregister -EXPORT_SYMBOL_GPL vmlinux 0x71a192f3 __device_reset EXPORT_SYMBOL_GPL vmlinux 0x71a20f4a __SCK__tp_func_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x71a54693 reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x71a9ce80 ata_pci_shutdown_one +EXPORT_SYMBOL_GPL vmlinux 0x71b24343 int_active_memcg +EXPORT_SYMBOL_GPL vmlinux 0x71b54c89 skb_segment_list EXPORT_SYMBOL_GPL vmlinux 0x71b6cf94 dst_cache_reset_now EXPORT_SYMBOL_GPL vmlinux 0x71c059d8 __traceiter_map -EXPORT_SYMBOL_GPL vmlinux 0x71c073a5 blk_mq_complete_request_remote -EXPORT_SYMBOL_GPL vmlinux 0x71c15aa2 ata_port_wait_eh -EXPORT_SYMBOL_GPL vmlinux 0x71c47e8e devfreq_cooling_em_register -EXPORT_SYMBOL_GPL vmlinux 0x71dd4e70 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x71c0df1b cpufreq_dbs_governor_limits EXPORT_SYMBOL_GPL vmlinux 0x71e9b38d __wake_up_sync_key -EXPORT_SYMBOL_GPL vmlinux 0x71ead96b i2c_adapter_depth -EXPORT_SYMBOL_GPL vmlinux 0x7203aa9e ata_acpi_gtm -EXPORT_SYMBOL_GPL vmlinux 0x722dcd01 __traceiter_ata_bmdma_status -EXPORT_SYMBOL_GPL vmlinux 0x7235247f tty_register_device_attr -EXPORT_SYMBOL_GPL vmlinux 0x72395a6a phy_check_downshift -EXPORT_SYMBOL_GPL vmlinux 0x72429548 device_remove_file_self -EXPORT_SYMBOL_GPL vmlinux 0x72436429 ata_do_dev_read_id -EXPORT_SYMBOL_GPL vmlinux 0x7247f4e9 blkg_conf_init -EXPORT_SYMBOL_GPL vmlinux 0x724b910c wbc_account_cgroup_owner -EXPORT_SYMBOL_GPL vmlinux 0x7254c4c3 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x71f14090 divider_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x71fd5f7d clk_register_fractional_divider +EXPORT_SYMBOL_GPL vmlinux 0x71ff0697 kthread_cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x7204d65b __regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x72170c83 pinctrl_parse_index_with_args +EXPORT_SYMBOL_GPL vmlinux 0x721fafc5 dev_pm_opp_set_opp +EXPORT_SYMBOL_GPL vmlinux 0x7220c530 register_nvdimm_pmu +EXPORT_SYMBOL_GPL vmlinux 0x722d0635 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x723568f9 __alloc_pages_bulk +EXPORT_SYMBOL_GPL vmlinux 0x72376c47 thermal_zone_get_slope +EXPORT_SYMBOL_GPL vmlinux 0x723dab73 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x72512af7 blk_set_pm_only +EXPORT_SYMBOL_GPL vmlinux 0x725be586 io_cgrp_subsys EXPORT_SYMBOL_GPL vmlinux 0x725fcbee iova_domain_init_rcaches +EXPORT_SYMBOL_GPL vmlinux 0x72639ac4 regulator_suspend_disable EXPORT_SYMBOL_GPL vmlinux 0x7265f2b0 pci_vpd_check_csum -EXPORT_SYMBOL_GPL vmlinux 0x72727bdf __traceiter_tcp_send_reset EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events EXPORT_SYMBOL_GPL vmlinux 0x7282ecb6 rcu_async_hurry EXPORT_SYMBOL_GPL vmlinux 0x7283161b percpu_ref_switch_to_percpu -EXPORT_SYMBOL_GPL vmlinux 0x72a3d2d2 fwnode_graph_get_endpoint_count -EXPORT_SYMBOL_GPL vmlinux 0x72a9800a devm_pm_opp_of_add_table_indexed +EXPORT_SYMBOL_GPL vmlinux 0x72ad92ed phy_restore_page EXPORT_SYMBOL_GPL vmlinux 0x72ae1839 base64_decode -EXPORT_SYMBOL_GPL vmlinux 0x72b386a5 mmc_pwrseq_unregister -EXPORT_SYMBOL_GPL vmlinux 0x72b4d8df input_ff_erase -EXPORT_SYMBOL_GPL vmlinux 0x72b5ce74 devlink_resource_occ_get_unregister -EXPORT_SYMBOL_GPL vmlinux 0x72b93e30 dev_pm_opp_get_level +EXPORT_SYMBOL_GPL vmlinux 0x72b4fe96 fwnode_handle_get +EXPORT_SYMBOL_GPL vmlinux 0x72bae55d devm_devfreq_event_add_edev +EXPORT_SYMBOL_GPL vmlinux 0x72beda89 devl_resource_occ_get_unregister EXPORT_SYMBOL_GPL vmlinux 0x72d267dc nvmem_del_cell_lookups -EXPORT_SYMBOL_GPL vmlinux 0x72e2068c thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0x72e1f755 fwnode_usb_role_switch_get EXPORT_SYMBOL_GPL vmlinux 0x72e25d4f cpufreq_show_cpus -EXPORT_SYMBOL_GPL vmlinux 0x72e616be phy_resolve_aneg_pause -EXPORT_SYMBOL_GPL vmlinux 0x72e8b2cb blk_trace_setup -EXPORT_SYMBOL_GPL vmlinux 0x72fc7589 bio_clone_blkg_association -EXPORT_SYMBOL_GPL vmlinux 0x7304dae9 fuse_send_init +EXPORT_SYMBOL_GPL vmlinux 0x72e26dea xhci_gen_setup +EXPORT_SYMBOL_GPL vmlinux 0x72eca07d adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x72efe980 get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x72f1c872 cdrom_multisession +EXPORT_SYMBOL_GPL vmlinux 0x730068ec bpf_trace_run12 EXPORT_SYMBOL_GPL vmlinux 0x730a37ff pci_doe -EXPORT_SYMBOL_GPL vmlinux 0x73560305 regulator_disable -EXPORT_SYMBOL_GPL vmlinux 0x735e267d clk_register_fractional_divider -EXPORT_SYMBOL_GPL vmlinux 0x73675570 __synth_event_gen_cmd_start -EXPORT_SYMBOL_GPL vmlinux 0x736b49e8 strp_process -EXPORT_SYMBOL_GPL vmlinux 0x736ee4a8 vring_notification_data -EXPORT_SYMBOL_GPL vmlinux 0x7392764a raw_seq_next -EXPORT_SYMBOL_GPL vmlinux 0x739986c9 hwmon_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x73622a81 irq_chip_get_parent_state +EXPORT_SYMBOL_GPL vmlinux 0x736aaf57 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x738503d4 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x7391233c __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x73a29d06 crypto_clone_shash EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports -EXPORT_SYMBOL_GPL vmlinux 0x73b1c716 backing_file_real_path -EXPORT_SYMBOL_GPL vmlinux 0x73b4a5bb tcp_rate_check_app_limited -EXPORT_SYMBOL_GPL vmlinux 0x73b942ea power_supply_register_no_ws -EXPORT_SYMBOL_GPL vmlinux 0x73bc1937 genphy_c45_read_pma +EXPORT_SYMBOL_GPL vmlinux 0x73aa7cf8 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x73b844a6 virtio_config_changed +EXPORT_SYMBOL_GPL vmlinux 0x73be96c3 regulator_bulk_register_supply_alias EXPORT_SYMBOL_GPL vmlinux 0x73c2554f __iowrite64_copy -EXPORT_SYMBOL_GPL vmlinux 0x73c3bb70 usb_ep0_reinit -EXPORT_SYMBOL_GPL vmlinux 0x73c762f9 serial8250_get_port -EXPORT_SYMBOL_GPL vmlinux 0x73c85130 blk_mq_unquiesce_tagset +EXPORT_SYMBOL_GPL vmlinux 0x73cc2f08 percpu_is_read_locked EXPORT_SYMBOL_GPL vmlinux 0x73cc8631 oiap -EXPORT_SYMBOL_GPL vmlinux 0x73d90ec9 task_cputime_adjusted -EXPORT_SYMBOL_GPL vmlinux 0x73dc7286 em_dev_register_perf_domain -EXPORT_SYMBOL_GPL vmlinux 0x73eb5aa9 regulator_set_pull_down_regmap -EXPORT_SYMBOL_GPL vmlinux 0x740281be regmap_async_complete -EXPORT_SYMBOL_GPL vmlinux 0x7405678c virtqueue_get_desc_addr -EXPORT_SYMBOL_GPL vmlinux 0x7406ccbe elv_rqhash_add +EXPORT_SYMBOL_GPL vmlinux 0x73d61e00 bpf_prog_free +EXPORT_SYMBOL_GPL vmlinux 0x73df3391 __traceiter_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x73eb9bce tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x740393ec devm_device_add_groups +EXPORT_SYMBOL_GPL vmlinux 0x740459a8 __clk_get_hw +EXPORT_SYMBOL_GPL vmlinux 0x7406e185 of_icc_bulk_get EXPORT_SYMBOL_GPL vmlinux 0x74072542 ftrace_set_notrace -EXPORT_SYMBOL_GPL vmlinux 0x740c4c01 mctrl_gpio_init_noauto -EXPORT_SYMBOL_GPL vmlinux 0x741c63e2 __platform_register_drivers -EXPORT_SYMBOL_GPL vmlinux 0x741d4a77 soc_device_register -EXPORT_SYMBOL_GPL vmlinux 0x74205fc5 xdp_do_redirect_frame +EXPORT_SYMBOL_GPL vmlinux 0x7408d3ab devlink_region_create +EXPORT_SYMBOL_GPL vmlinux 0x74102d2d xhci_check_bandwidth EXPORT_SYMBOL_GPL vmlinux 0x7429297b interval_tree_span_iter_next -EXPORT_SYMBOL_GPL vmlinux 0x742a1fb4 crypto_unregister_instance -EXPORT_SYMBOL_GPL vmlinux 0x743a580a ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x742b4d17 acpi_subsys_restore_early +EXPORT_SYMBOL_GPL vmlinux 0x742b6cc2 nvdimm_flush +EXPORT_SYMBOL_GPL vmlinux 0x744ac1a3 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x744f7ff3 virtqueue_add_outbuf EXPORT_SYMBOL_GPL vmlinux 0x744fa3ec mas_empty_area -EXPORT_SYMBOL_GPL vmlinux 0x7456d34c devm_clk_bulk_get_all -EXPORT_SYMBOL_GPL vmlinux 0x745d1f00 acpi_subsys_suspend_late -EXPORT_SYMBOL_GPL vmlinux 0x74888ba2 relay_subbufs_consumed -EXPORT_SYMBOL_GPL vmlinux 0x749339dd securityfs_create_file -EXPORT_SYMBOL_GPL vmlinux 0x7497f7a0 crypto_unregister_acomp -EXPORT_SYMBOL_GPL vmlinux 0x74b34f80 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x745a1164 cpufreq_freq_transition_begin +EXPORT_SYMBOL_GPL vmlinux 0x745bbf60 pci_ims_alloc_irq +EXPORT_SYMBOL_GPL vmlinux 0x74712050 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x74817c74 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x74b183d7 switchdev_handle_port_obj_add_foreign EXPORT_SYMBOL_GPL vmlinux 0x74b3726c enable_kprobe EXPORT_SYMBOL_GPL vmlinux 0x74b5ea68 lcm_not_zero +EXPORT_SYMBOL_GPL vmlinux 0x74b6185f sysfs_chmod_file EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on EXPORT_SYMBOL_GPL vmlinux 0x74bf2e01 scsi_pr_type_to_block -EXPORT_SYMBOL_GPL vmlinux 0x74c3c5aa rio_request_outb_mbox -EXPORT_SYMBOL_GPL vmlinux 0x74c6a957 sfp_bus_add_upstream +EXPORT_SYMBOL_GPL vmlinux 0x74c0d6ba ata_wait_register EXPORT_SYMBOL_GPL vmlinux 0x74c7bffa stack_trace_snprint -EXPORT_SYMBOL_GPL vmlinux 0x74e69049 crypto_register_scomps +EXPORT_SYMBOL_GPL vmlinux 0x74da2ca7 balance_dirty_pages_ratelimited_flags +EXPORT_SYMBOL_GPL vmlinux 0x74e14851 unregister_trace_event EXPORT_SYMBOL_GPL vmlinux 0x74e73871 housekeeping_overridden -EXPORT_SYMBOL_GPL vmlinux 0x74ebc0dc serial8250_rpm_get -EXPORT_SYMBOL_GPL vmlinux 0x7501c81d pci_epf_free_space -EXPORT_SYMBOL_GPL vmlinux 0x75056fdb usb_unpoison_urb -EXPORT_SYMBOL_GPL vmlinux 0x75071583 sdio_readsb -EXPORT_SYMBOL_GPL vmlinux 0x750a3be8 iommu_iova_to_phys -EXPORT_SYMBOL_GPL vmlinux 0x75103c14 udp_abort +EXPORT_SYMBOL_GPL vmlinux 0x74f9166f usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x74fd7484 class_dev_iter_exit EXPORT_SYMBOL_GPL vmlinux 0x75133f6e visitor128 +EXPORT_SYMBOL_GPL vmlinux 0x75153fc4 generic_device_group EXPORT_SYMBOL_GPL vmlinux 0x751d2e97 bpf_log -EXPORT_SYMBOL_GPL vmlinux 0x751f533b pci_hp_deregister -EXPORT_SYMBOL_GPL vmlinux 0x751fa449 serdev_device_set_tiocm +EXPORT_SYMBOL_GPL vmlinux 0x751ed767 bus_create_file EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status -EXPORT_SYMBOL_GPL vmlinux 0x7528b0cb fbcon_modechange_possible -EXPORT_SYMBOL_GPL vmlinux 0x7536b77d skcipher_register_instance -EXPORT_SYMBOL_GPL vmlinux 0x753a86cc filemap_range_has_writeback -EXPORT_SYMBOL_GPL vmlinux 0x7548382b sync_blockdev_nowait +EXPORT_SYMBOL_GPL vmlinux 0x752be680 blk_queue_write_cache +EXPORT_SYMBOL_GPL vmlinux 0x75348ce7 mmc_send_abort_tuning +EXPORT_SYMBOL_GPL vmlinux 0x7539ff74 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x7544eb2a led_sysfs_disable EXPORT_SYMBOL_GPL vmlinux 0x75493ce2 nf_conn_btf_access_lock -EXPORT_SYMBOL_GPL vmlinux 0x754ccb4d __nvdimm_create -EXPORT_SYMBOL_GPL vmlinux 0x754edea0 mpc8xxx_spi_tx_buf_u32 -EXPORT_SYMBOL_GPL vmlinux 0x75626e94 inet_csk_clone_lock -EXPORT_SYMBOL_GPL vmlinux 0x756961cb call_switchdev_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x754bca46 crypto_akcipher_sync_prep +EXPORT_SYMBOL_GPL vmlinux 0x754fa9f2 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x75622f7e debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7577658e __traceiter_add_device_to_group EXPORT_SYMBOL_GPL vmlinux 0x757c1bbb housekeeping_any_cpu -EXPORT_SYMBOL_GPL vmlinux 0x758e3c09 __traceiter_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x758873c4 smpboot_unregister_percpu_thread EXPORT_SYMBOL_GPL vmlinux 0x759139cb of_pci_check_probe_only -EXPORT_SYMBOL_GPL vmlinux 0x75925da5 pci_reset_function -EXPORT_SYMBOL_GPL vmlinux 0x7593a57d ip6_sk_dst_lookup_flow -EXPORT_SYMBOL_GPL vmlinux 0x759697b3 bpf_prog_create_from_user -EXPORT_SYMBOL_GPL vmlinux 0x75a5508c dev_pm_domain_attach_by_id +EXPORT_SYMBOL_GPL vmlinux 0x75a5a358 sync_page_io EXPORT_SYMBOL_GPL vmlinux 0x75a750e4 vcap_rule_rem_key -EXPORT_SYMBOL_GPL vmlinux 0x75bd0b68 devlink_port_register_with_ops +EXPORT_SYMBOL_GPL vmlinux 0x75abb4e8 xhci_ext_cap_init +EXPORT_SYMBOL_GPL vmlinux 0x75b66a06 kthread_unuse_mm EXPORT_SYMBOL_GPL vmlinux 0x75bdc7fb disable_kprobe -EXPORT_SYMBOL_GPL vmlinux 0x75be8fac wm8350_block_write -EXPORT_SYMBOL_GPL vmlinux 0x75bea2a9 sata_pmp_qc_defer_cmd_switch -EXPORT_SYMBOL_GPL vmlinux 0x75c555cf blk_mq_sched_try_merge -EXPORT_SYMBOL_GPL vmlinux 0x75d3460f md_run -EXPORT_SYMBOL_GPL vmlinux 0x75d3b2fa relay_open +EXPORT_SYMBOL_GPL vmlinux 0x75c215ee percpu_down_write +EXPORT_SYMBOL_GPL vmlinux 0x75c30dc8 perf_pmu_migrate_context EXPORT_SYMBOL_GPL vmlinux 0x75dd4ebe of_overlay_remove EXPORT_SYMBOL_GPL vmlinux 0x75e51945 __SCK__tp_func_error_report_end -EXPORT_SYMBOL_GPL vmlinux 0x75e676a5 vp_modern_remove EXPORT_SYMBOL_GPL vmlinux 0x75e9c735 pci_ats_disabled -EXPORT_SYMBOL_GPL vmlinux 0x75ee1744 pci_dev_unlock -EXPORT_SYMBOL_GPL vmlinux 0x7606b337 noop_backing_dev_info -EXPORT_SYMBOL_GPL vmlinux 0x76188a1f regmap_bulk_write -EXPORT_SYMBOL_GPL vmlinux 0x761a0c8b stmpe_disable -EXPORT_SYMBOL_GPL vmlinux 0x761e4fb4 acpi_device_fwnode_ops -EXPORT_SYMBOL_GPL vmlinux 0x761f1393 ip6_route_output_flags -EXPORT_SYMBOL_GPL vmlinux 0x7620cdba pm_runtime_suspended_time -EXPORT_SYMBOL_GPL vmlinux 0x7627b74e bpf_map_inc -EXPORT_SYMBOL_GPL vmlinux 0x762af7fc tty_port_link_device -EXPORT_SYMBOL_GPL vmlinux 0x762c1eb6 crypto_aead_setkey -EXPORT_SYMBOL_GPL vmlinux 0x762f528f thermal_zone_device_enable -EXPORT_SYMBOL_GPL vmlinux 0x763cabf5 usb_interrupt_msg -EXPORT_SYMBOL_GPL vmlinux 0x763e097e ata_scsi_queuecmd -EXPORT_SYMBOL_GPL vmlinux 0x763f87eb crypto_enqueue_request_head +EXPORT_SYMBOL_GPL vmlinux 0x75f7ec64 clk_hw_get_parent_index +EXPORT_SYMBOL_GPL vmlinux 0x7603b8ca ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x76124e43 devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0x76225e9b device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x7629de34 tcp_plb_check_rehash +EXPORT_SYMBOL_GPL vmlinux 0x7635a188 regmap_get_device +EXPORT_SYMBOL_GPL vmlinux 0x76379ef4 fwnode_get_name +EXPORT_SYMBOL_GPL vmlinux 0x764915ee pci_assign_unassigned_bus_resources +EXPORT_SYMBOL_GPL vmlinux 0x76503b11 bsg_job_done EXPORT_SYMBOL_GPL vmlinux 0x76517f03 interval_tree_span_iter_advance +EXPORT_SYMBOL_GPL vmlinux 0x7654a38e crypto_akcipher_sync_encrypt EXPORT_SYMBOL_GPL vmlinux 0x7656410c mpi_sub -EXPORT_SYMBOL_GPL vmlinux 0x76574863 rtc_read_time -EXPORT_SYMBOL_GPL vmlinux 0x7661620a device_attach -EXPORT_SYMBOL_GPL vmlinux 0x766fe922 irq_domain_free_irqs_parent -EXPORT_SYMBOL_GPL vmlinux 0x76794694 of_clk_del_provider -EXPORT_SYMBOL_GPL vmlinux 0x7680184a acpi_dev_remove_driver_gpios EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier -EXPORT_SYMBOL_GPL vmlinux 0x768ae15e tty_put_char -EXPORT_SYMBOL_GPL vmlinux 0x7694341f gpio_to_desc -EXPORT_SYMBOL_GPL vmlinux 0x76976dd3 rio_unregister_scan EXPORT_SYMBOL_GPL vmlinux 0x769cefb5 percpu_ref_switch_to_atomic -EXPORT_SYMBOL_GPL vmlinux 0x76a45e6d tty_port_tty_wakeup -EXPORT_SYMBOL_GPL vmlinux 0x76b1b1cd regulator_get_voltage -EXPORT_SYMBOL_GPL vmlinux 0x76b64cfd unregister_nvdimm_pmu -EXPORT_SYMBOL_GPL vmlinux 0x76c309ce crypto_ahash_digest -EXPORT_SYMBOL_GPL vmlinux 0x76c435ca clk_register_mux_table -EXPORT_SYMBOL_GPL vmlinux 0x76cd4c08 skb_pull_rcsum -EXPORT_SYMBOL_GPL vmlinux 0x76cdfee2 acpi_dma_simple_xlate -EXPORT_SYMBOL_GPL vmlinux 0x76d64de3 pm_clk_resume +EXPORT_SYMBOL_GPL vmlinux 0x76b08210 fsnotify_alloc_group +EXPORT_SYMBOL_GPL vmlinux 0x76c125bb unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x76c76849 nvdimm_badblocks_populate +EXPORT_SYMBOL_GPL vmlinux 0x76c76efe ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x76d11ce1 fwnode_property_read_u32_array EXPORT_SYMBOL_GPL vmlinux 0x76d9b876 clk_set_rate -EXPORT_SYMBOL_GPL vmlinux 0x76db656b sched_set_fifo_low -EXPORT_SYMBOL_GPL vmlinux 0x76e25ecb cpufreq_freq_transition_begin -EXPORT_SYMBOL_GPL vmlinux 0x76eb1338 bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0x76d9f42a eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x76e58f1c __netif_set_xps_queue +EXPORT_SYMBOL_GPL vmlinux 0x76e7bffe serdev_device_break_ctl EXPORT_SYMBOL_GPL vmlinux 0x76eeeb0f sha384_zero_message_hash -EXPORT_SYMBOL_GPL vmlinux 0x76fb1ece sysfs_remove_file_from_group -EXPORT_SYMBOL_GPL vmlinux 0x76fd8902 spi_bus_unlock -EXPORT_SYMBOL_GPL vmlinux 0x770851f2 dev_pm_qos_add_request -EXPORT_SYMBOL_GPL vmlinux 0x77135ca0 platform_get_mem_or_io -EXPORT_SYMBOL_GPL vmlinux 0x7714078b __traceiter_pelt_irq_tp -EXPORT_SYMBOL_GPL vmlinux 0x771d8be8 pcie_port_find_device +EXPORT_SYMBOL_GPL vmlinux 0x76fb95f1 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x7707186d ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x770f0c9d crypto_unregister_rngs EXPORT_SYMBOL_GPL vmlinux 0x77222306 ring_buffer_read_page -EXPORT_SYMBOL_GPL vmlinux 0x7728c530 gpiod_get_array_optional -EXPORT_SYMBOL_GPL vmlinux 0x77328879 wm8400_reset_codec_reg_cache -EXPORT_SYMBOL_GPL vmlinux 0x773ccb78 tpm_tis_remove -EXPORT_SYMBOL_GPL vmlinux 0x774cc741 sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0x774a62c3 power_supply_get_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x774d2261 regulator_get_voltage_sel_pickable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x774e08c5 devm_kstrdup_const EXPORT_SYMBOL_GPL vmlinux 0x7757b51a clk_unregister -EXPORT_SYMBOL_GPL vmlinux 0x775de1ee gpiochip_disable_irq -EXPORT_SYMBOL_GPL vmlinux 0x77645b5b bpf_trace_run10 -EXPORT_SYMBOL_GPL vmlinux 0x7766275c thermal_add_hwmon_sysfs -EXPORT_SYMBOL_GPL vmlinux 0x778d4ac8 of_device_modalias +EXPORT_SYMBOL_GPL vmlinux 0x7759bcd2 aead_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x7762aade ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x7779cd9a acpi_dma_controller_register EXPORT_SYMBOL_GPL vmlinux 0x7791e066 dw_pcie_read -EXPORT_SYMBOL_GPL vmlinux 0x779c7b32 ata_scsi_slave_config -EXPORT_SYMBOL_GPL vmlinux 0x77a28296 pci_epf_bind -EXPORT_SYMBOL_GPL vmlinux 0x77a2d7c9 efivars_unregister +EXPORT_SYMBOL_GPL vmlinux 0x779698b2 ata_scsi_change_queue_depth EXPORT_SYMBOL_GPL vmlinux 0x77ae495d usb_speed_string -EXPORT_SYMBOL_GPL vmlinux 0x77aeec08 inet_ctl_sock_create -EXPORT_SYMBOL_GPL vmlinux 0x77bc19aa of_genpd_add_subdomain -EXPORT_SYMBOL_GPL vmlinux 0x77bc9974 icmp_build_probe -EXPORT_SYMBOL_GPL vmlinux 0x77bdd2a3 regcache_cache_bypass -EXPORT_SYMBOL_GPL vmlinux 0x77be4666 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x77c84e22 gpiochip_line_is_open_drain +EXPORT_SYMBOL_GPL vmlinux 0x77c8f074 mptcp_token_get_sock +EXPORT_SYMBOL_GPL vmlinux 0x77c93660 desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0x77d5b8a4 register_btf_fmodret_id_set +EXPORT_SYMBOL_GPL vmlinux 0x77de063d badblocks_check +EXPORT_SYMBOL_GPL vmlinux 0x77e300ec device_remove_file EXPORT_SYMBOL_GPL vmlinux 0x77e75be3 sfp_bus_put EXPORT_SYMBOL_GPL vmlinux 0x77e8f134 __tracepoint_wbc_writepage -EXPORT_SYMBOL_GPL vmlinux 0x77eaf33f __clk_hw_register_fixed_rate -EXPORT_SYMBOL_GPL vmlinux 0x77eca88c clk_hw_get_flags EXPORT_SYMBOL_GPL vmlinux 0x77ecf68d memalloc_socks_key -EXPORT_SYMBOL_GPL vmlinux 0x77f3a422 usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x77f33136 regulator_list_hardware_vsel +EXPORT_SYMBOL_GPL vmlinux 0x77f9aab8 dma_can_mmap EXPORT_SYMBOL_GPL vmlinux 0x77ff80d3 __tracepoint_br_fdb_add -EXPORT_SYMBOL_GPL vmlinux 0x780367a2 iommu_group_add_device EXPORT_SYMBOL_GPL vmlinux 0x78041b8f byte_rev_table -EXPORT_SYMBOL_GPL vmlinux 0x78100a9f extcon_sync -EXPORT_SYMBOL_GPL vmlinux 0x782a62f5 pci_epc_bme_notify -EXPORT_SYMBOL_GPL vmlinux 0x782e1b5b devm_rtc_nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x7810fe8f i2c_new_dummy_device +EXPORT_SYMBOL_GPL vmlinux 0x7815b069 device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x781e523c da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x7821ae59 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x78280468 get_user_pages_fast_only +EXPORT_SYMBOL_GPL vmlinux 0x78311d08 devm_mipi_dsi_attach +EXPORT_SYMBOL_GPL vmlinux 0x7846f66b badblocks_set EXPORT_SYMBOL_GPL vmlinux 0x7847c621 sfp_parse_support +EXPORT_SYMBOL_GPL vmlinux 0x78572e08 dst_blackhole_redirect EXPORT_SYMBOL_GPL vmlinux 0x785a93b4 si_mem_available -EXPORT_SYMBOL_GPL vmlinux 0x78748508 pci_bridge_secondary_bus_reset +EXPORT_SYMBOL_GPL vmlinux 0x78672549 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x786f7c60 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x78785d6a ata_sff_check_status EXPORT_SYMBOL_GPL vmlinux 0x787c882b lzo1x_1_compress EXPORT_SYMBOL_GPL vmlinux 0x788bfbad ring_buffer_empty -EXPORT_SYMBOL_GPL vmlinux 0x789349f8 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x78995e21 regulator_list_voltage_table EXPORT_SYMBOL_GPL vmlinux 0x789c73d9 rcu_cpu_stall_suppress_at_boot -EXPORT_SYMBOL_GPL vmlinux 0x78a0d3f3 divider_ro_determine_rate -EXPORT_SYMBOL_GPL vmlinux 0x78bd2e77 i2c_handle_smbus_host_notify -EXPORT_SYMBOL_GPL vmlinux 0x78c755f5 fuse_request_end -EXPORT_SYMBOL_GPL vmlinux 0x78e3f2dc rtc_alarm_irq_enable -EXPORT_SYMBOL_GPL vmlinux 0x78e48d3a crypto_unregister_alg -EXPORT_SYMBOL_GPL vmlinux 0x78e8127b put_pid +EXPORT_SYMBOL_GPL vmlinux 0x78b2b1e3 acpi_find_child_by_adr +EXPORT_SYMBOL_GPL vmlinux 0x78bd2f59 nf_route +EXPORT_SYMBOL_GPL vmlinux 0x78e2e5f0 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x78e4da43 fwnode_remove_software_node EXPORT_SYMBOL_GPL vmlinux 0x78efd2fd riscv_cboz_block_size -EXPORT_SYMBOL_GPL vmlinux 0x78fc4ad0 fwnode_handle_get -EXPORT_SYMBOL_GPL vmlinux 0x790c359b nvmem_device_cell_read +EXPORT_SYMBOL_GPL vmlinux 0x791dde2c sdio_retune_crc_disable +EXPORT_SYMBOL_GPL vmlinux 0x7923f307 of_property_read_variable_u32_array EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off EXPORT_SYMBOL_GPL vmlinux 0x79470a2c TSS_authhmac EXPORT_SYMBOL_GPL vmlinux 0x794b7271 orderly_reboot -EXPORT_SYMBOL_GPL vmlinux 0x7955409a devlink_resources_unregister -EXPORT_SYMBOL_GPL vmlinux 0x7958c1d7 extcon_dev_unregister -EXPORT_SYMBOL_GPL vmlinux 0x7964cc40 usb_enable_lpm -EXPORT_SYMBOL_GPL vmlinux 0x796d9c2d irq_gc_mask_set_bit -EXPORT_SYMBOL_GPL vmlinux 0x797f1ac5 debugfs_create_x16 -EXPORT_SYMBOL_GPL vmlinux 0x79833b57 iommu_map -EXPORT_SYMBOL_GPL vmlinux 0x7988f454 pm_clk_runtime_suspend -EXPORT_SYMBOL_GPL vmlinux 0x7994fc38 uprobe_register -EXPORT_SYMBOL_GPL vmlinux 0x79965aca vcap_find_keystream_keysets -EXPORT_SYMBOL_GPL vmlinux 0x79a180e0 max8997_bulk_write -EXPORT_SYMBOL_GPL vmlinux 0x79a5402c crypto_unregister_kpp -EXPORT_SYMBOL_GPL vmlinux 0x79ae25af __fl6_sock_lookup -EXPORT_SYMBOL_GPL vmlinux 0x79c40f5c __traceiter_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x7967a51a watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x797c192a xfrm_dev_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x7999324f pci_epc_raise_irq +EXPORT_SYMBOL_GPL vmlinux 0x799a9e99 fuse_get_unique +EXPORT_SYMBOL_GPL vmlinux 0x799cf1f8 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x799f14bb net_failover_destroy +EXPORT_SYMBOL_GPL vmlinux 0x79adee8d regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x79ae83a8 mmu_interval_notifier_remove +EXPORT_SYMBOL_GPL vmlinux 0x79b1c59f genpd_dev_pm_attach_by_id +EXPORT_SYMBOL_GPL vmlinux 0x79c3dce9 scsi_internal_device_unblock_nowait +EXPORT_SYMBOL_GPL vmlinux 0x79de3c84 lp8788_update_bits EXPORT_SYMBOL_GPL vmlinux 0x79defbe1 kthread_should_park -EXPORT_SYMBOL_GPL vmlinux 0x79e4dacc regulator_map_voltage_iterate -EXPORT_SYMBOL_GPL vmlinux 0x79eab0dd mptcp_pm_get_add_addr_signal_max -EXPORT_SYMBOL_GPL vmlinux 0x79f29286 vcap_tc_flower_handler_cvlan_usage +EXPORT_SYMBOL_GPL vmlinux 0x79e335fd i2c_new_smbus_alert_device +EXPORT_SYMBOL_GPL vmlinux 0x79f31e88 crypto_clone_tfm EXPORT_SYMBOL_GPL vmlinux 0x79f697e4 lzorle1x_1_compress -EXPORT_SYMBOL_GPL vmlinux 0x79fd8f9a blkdev_zone_mgmt -EXPORT_SYMBOL_GPL vmlinux 0x7a255540 of_reserved_mem_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7a0110dc vp_modern_get_num_queues +EXPORT_SYMBOL_GPL vmlinux 0x7a0d93bd dev_pm_domain_start EXPORT_SYMBOL_GPL vmlinux 0x7a3f16a2 devl_region_destroy EXPORT_SYMBOL_GPL vmlinux 0x7a40ae7d of_get_display_timing -EXPORT_SYMBOL_GPL vmlinux 0x7a447b1c regmap_mmio_detach_clk -EXPORT_SYMBOL_GPL vmlinux 0x7a49f852 devl_port_health_reporter_create -EXPORT_SYMBOL_GPL vmlinux 0x7a546422 netdev_rx_handler_unregister -EXPORT_SYMBOL_GPL vmlinux 0x7a5ed813 pm_generic_suspend_noirq -EXPORT_SYMBOL_GPL vmlinux 0x7a61b62e sdio_enable_func -EXPORT_SYMBOL_GPL vmlinux 0x7a6d8e53 inet6_sock_destruct -EXPORT_SYMBOL_GPL vmlinux 0x7a71c6a0 __traceiter_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x7a474694 virtio_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x7a4dcba3 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x7a63641e rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x7a648a73 fwnode_graph_get_remote_endpoint EXPORT_SYMBOL_GPL vmlinux 0x7a73e605 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7a77381c devlink_dpipe_entry_ctx_prepare EXPORT_SYMBOL_GPL vmlinux 0x7a81541b async_synchronize_cookie -EXPORT_SYMBOL_GPL vmlinux 0x7a8e0bd7 of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x7a9425ed pci_d3cold_enable EXPORT_SYMBOL_GPL vmlinux 0x7a98f4b4 copy_from_user_nofault -EXPORT_SYMBOL_GPL vmlinux 0x7a99eb57 mbox_flush EXPORT_SYMBOL_GPL vmlinux 0x7a9e4c23 software_node_register_node_group +EXPORT_SYMBOL_GPL vmlinux 0x7aa16124 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x7aa17c3c regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x7aa2932a bio_trim +EXPORT_SYMBOL_GPL vmlinux 0x7aae8562 __fscrypt_prepare_link +EXPORT_SYMBOL_GPL vmlinux 0x7ac3cdf3 usb_hcd_map_urb_for_dma EXPORT_SYMBOL_GPL vmlinux 0x7ac722bd phy_all_ports_features_array -EXPORT_SYMBOL_GPL vmlinux 0x7ac8a008 spi_mem_adjust_op_size +EXPORT_SYMBOL_GPL vmlinux 0x7aca89b0 of_get_phy_mode EXPORT_SYMBOL_GPL vmlinux 0x7ad02a41 asn1_encode_tag EXPORT_SYMBOL_GPL vmlinux 0x7ad1ded1 pinctrl_register_mappings -EXPORT_SYMBOL_GPL vmlinux 0x7af658d2 fb_sys_write -EXPORT_SYMBOL_GPL vmlinux 0x7afbcc5c devm_of_clk_add_hw_provider +EXPORT_SYMBOL_GPL vmlinux 0x7ae49f0c ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x7aeac3f0 debugfs_create_str +EXPORT_SYMBOL_GPL vmlinux 0x7af2b01c tcp_reno_ssthresh EXPORT_SYMBOL_GPL vmlinux 0x7afcb7db __kprobe_event_add_fields -EXPORT_SYMBOL_GPL vmlinux 0x7b131281 pci_create_slot -EXPORT_SYMBOL_GPL vmlinux 0x7b23a519 trace_event_buffer_reserve +EXPORT_SYMBOL_GPL vmlinux 0x7b07a784 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x7b0b62bc skb_mpls_update_lse +EXPORT_SYMBOL_GPL vmlinux 0x7b0c430e class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x7b20bebe cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0x7b23ff8e iommu_attach_device_pasid +EXPORT_SYMBOL_GPL vmlinux 0x7b251ad3 dev_pm_domain_attach +EXPORT_SYMBOL_GPL vmlinux 0x7b36ec94 edac_pci_handle_pe +EXPORT_SYMBOL_GPL vmlinux 0x7b41a9a2 dev_pm_opp_find_freq_floor +EXPORT_SYMBOL_GPL vmlinux 0x7b466d5f mmu_interval_read_begin +EXPORT_SYMBOL_GPL vmlinux 0x7b53022a elv_rqhash_add EXPORT_SYMBOL_GPL vmlinux 0x7b5452b8 acpi_unregister_gsi EXPORT_SYMBOL_GPL vmlinux 0x7b5a4926 sha1_zero_message_hash -EXPORT_SYMBOL_GPL vmlinux 0x7b6d9f3e alloc_skb_for_msg +EXPORT_SYMBOL_GPL vmlinux 0x7b5ebc05 pci_epc_put +EXPORT_SYMBOL_GPL vmlinux 0x7b65e1a2 __irq_domain_alloc_fwnode EXPORT_SYMBOL_GPL vmlinux 0x7b6f9536 acpi_register_wakeup_handler EXPORT_SYMBOL_GPL vmlinux 0x7b8910f4 kfence_sample_interval -EXPORT_SYMBOL_GPL vmlinux 0x7b92c2b3 of_get_regulator_init_data +EXPORT_SYMBOL_GPL vmlinux 0x7b90c4a8 clk_hw_unregister_composite +EXPORT_SYMBOL_GPL vmlinux 0x7b91567d usb_hcd_pci_probe EXPORT_SYMBOL_GPL vmlinux 0x7b9793a2 get_cpu_idle_time_us -EXPORT_SYMBOL_GPL vmlinux 0x7b9a524e of_changeset_action -EXPORT_SYMBOL_GPL vmlinux 0x7bacb25a dev_pm_opp_set_opp -EXPORT_SYMBOL_GPL vmlinux 0x7bae0696 pci_find_dvsec_capability +EXPORT_SYMBOL_GPL vmlinux 0x7ba24cb4 device_find_any_child +EXPORT_SYMBOL_GPL vmlinux 0x7ba6c805 __strp_unpause EXPORT_SYMBOL_GPL vmlinux 0x7bb045a7 __request_percpu_irq EXPORT_SYMBOL_GPL vmlinux 0x7bb3fa18 vcap_rule_add_action_bit +EXPORT_SYMBOL_GPL vmlinux 0x7bb4aeb0 kthread_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x7bb9f252 gpiochip_add_data_with_key EXPORT_SYMBOL_GPL vmlinux 0x7bbb0e32 idr_find -EXPORT_SYMBOL_GPL vmlinux 0x7bbe364b usb_altnum_to_altsetting -EXPORT_SYMBOL_GPL vmlinux 0x7bbe7e20 crypto_unregister_shash -EXPORT_SYMBOL_GPL vmlinux 0x7bc91c2a dsa_stubs -EXPORT_SYMBOL_GPL vmlinux 0x7bf94908 pci_sriov_configure_simple -EXPORT_SYMBOL_GPL vmlinux 0x7c019a10 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x7bd64b84 nexthop_find_by_id +EXPORT_SYMBOL_GPL vmlinux 0x7be223a4 mmc_send_tuning +EXPORT_SYMBOL_GPL vmlinux 0x7be30c0b mctp_unregister_netdev +EXPORT_SYMBOL_GPL vmlinux 0x7bef976a usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x7bf6576c sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x7c2871dd lwtunnel_output EXPORT_SYMBOL_GPL vmlinux 0x7c291e86 show_rcu_tasks_trace_gp_kthread -EXPORT_SYMBOL_GPL vmlinux 0x7c2aef5b pci_device_group EXPORT_SYMBOL_GPL vmlinux 0x7c3d8a4b icc_bulk_put -EXPORT_SYMBOL_GPL vmlinux 0x7c41e176 iommu_map_sg -EXPORT_SYMBOL_GPL vmlinux 0x7c4da316 device_pm_wait_for_dev -EXPORT_SYMBOL_GPL vmlinux 0x7c50c991 regmap_field_read -EXPORT_SYMBOL_GPL vmlinux 0x7c5d40b8 seg6_do_srh_inline +EXPORT_SYMBOL_GPL vmlinux 0x7c3f7537 of_irq_parse_one +EXPORT_SYMBOL_GPL vmlinux 0x7c43e62c acpi_dev_get_next_consumer_dev +EXPORT_SYMBOL_GPL vmlinux 0x7c4a5794 lwtunnel_input +EXPORT_SYMBOL_GPL vmlinux 0x7c58a528 dev_pm_qos_update_request EXPORT_SYMBOL_GPL vmlinux 0x7c601c72 reserve_iova +EXPORT_SYMBOL_GPL vmlinux 0x7c68de14 __rio_local_read_config_16 EXPORT_SYMBOL_GPL vmlinux 0x7c6d144d hrtimer_init -EXPORT_SYMBOL_GPL vmlinux 0x7c78a9db phy_modify -EXPORT_SYMBOL_GPL vmlinux 0x7c94bb8a usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x7c6d959f bpf_trace_run8 +EXPORT_SYMBOL_GPL vmlinux 0x7c77c029 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x7c863f0b blk_mq_unquiesce_queue EXPORT_SYMBOL_GPL vmlinux 0x7c9a7371 clk_prepare -EXPORT_SYMBOL_GPL vmlinux 0x7ca11d0b icc_disable EXPORT_SYMBOL_GPL vmlinux 0x7ca64a0b __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x7caa1ec8 crypto_alg_extsize EXPORT_SYMBOL_GPL vmlinux 0x7cb1aea1 devlink_dpipe_header_ethernet -EXPORT_SYMBOL_GPL vmlinux 0x7cc7333c sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x7cc128e0 __udp6_lib_lookup EXPORT_SYMBOL_GPL vmlinux 0x7cce902d __tracepoint_br_mdb_full EXPORT_SYMBOL_GPL vmlinux 0x7cceaf92 zs_pool_stats +EXPORT_SYMBOL_GPL vmlinux 0x7cd600f4 pwm_get_chip_data EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver EXPORT_SYMBOL_GPL vmlinux 0x7cd7ba1d kernel_read_file_from_fd +EXPORT_SYMBOL_GPL vmlinux 0x7cdc9f99 rt_mutex_lock_interruptible EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq -EXPORT_SYMBOL_GPL vmlinux 0x7cf6fa0b PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x7cec2f7b lwtunnel_state_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7cf8cf5b dm_put EXPORT_SYMBOL_GPL vmlinux 0x7d00c65b nd_synchronize -EXPORT_SYMBOL_GPL vmlinux 0x7d084972 kernfs_find_and_get_ns -EXPORT_SYMBOL_GPL vmlinux 0x7d0bb11d tps65912_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x7d01dc38 __traceiter_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x7d0425b4 dev_pm_set_dedicated_wake_irq_reverse +EXPORT_SYMBOL_GPL vmlinux 0x7d0dc760 devm_acpi_dma_controller_register EXPORT_SYMBOL_GPL vmlinux 0x7d0f6b42 __tracepoint_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0x7d14e71d i2c_bus_type EXPORT_SYMBOL_GPL vmlinux 0x7d1bb1d4 tnum_strn -EXPORT_SYMBOL_GPL vmlinux 0x7d2d6a5b vcap_tc_flower_handler_portnum_usage EXPORT_SYMBOL_GPL vmlinux 0x7d388b26 gen_pool_size EXPORT_SYMBOL_GPL vmlinux 0x7d39639c dev_pm_opp_cpumask_remove_table -EXPORT_SYMBOL_GPL vmlinux 0x7d3d4924 blkcg_punt_bio_submit -EXPORT_SYMBOL_GPL vmlinux 0x7d5037e5 crypto_alloc_akcipher -EXPORT_SYMBOL_GPL vmlinux 0x7d51f21e ata_sas_sync_probe -EXPORT_SYMBOL_GPL vmlinux 0x7d564792 phy_resolve_aneg_linkmode +EXPORT_SYMBOL_GPL vmlinux 0x7d3ffe3e blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x7d4bb9ce mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7d4d0662 mmc_app_cmd EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq -EXPORT_SYMBOL_GPL vmlinux 0x7d6955f8 platform_msi_domain_free_irqs -EXPORT_SYMBOL_GPL vmlinux 0x7d6bd2b0 virtqueue_add_outbuf -EXPORT_SYMBOL_GPL vmlinux 0x7d6c5ee4 serdev_device_close -EXPORT_SYMBOL_GPL vmlinux 0x7d76677c vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x7d749d28 to_nd_desc +EXPORT_SYMBOL_GPL vmlinux 0x7d75b264 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7d8321eb fat_scan EXPORT_SYMBOL_GPL vmlinux 0x7d8e77f3 nf_hooks_lwtunnel_sysctl_handler -EXPORT_SYMBOL_GPL vmlinux 0x7d8fd978 debugfs_create_devm_seqfile -EXPORT_SYMBOL_GPL vmlinux 0x7dc18303 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x7d996709 tcp_bpf_sendmsg_redir +EXPORT_SYMBOL_GPL vmlinux 0x7da608fb inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x7db3b3bd cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x7dbec6ab of_dma_simple_xlate EXPORT_SYMBOL_GPL vmlinux 0x7dda30af unregister_tracepoint_module_notifier -EXPORT_SYMBOL_GPL vmlinux 0x7dde609b handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ddd1c71 spi_slave_abort +EXPORT_SYMBOL_GPL vmlinux 0x7de06b3b bpf_prog_create_from_user +EXPORT_SYMBOL_GPL vmlinux 0x7de088d2 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0x7de31744 pinctrl_utils_add_map_configs EXPORT_SYMBOL_GPL vmlinux 0x7de39e07 phy_basic_t1_features_array +EXPORT_SYMBOL_GPL vmlinux 0x7de5d026 pinctrl_select_default_state EXPORT_SYMBOL_GPL vmlinux 0x7de65a03 acpi_lpat_free_conversion_table EXPORT_SYMBOL_GPL vmlinux 0x7de6cc23 io_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0x7deab452 devm_clk_hw_register_fixed_factor_index -EXPORT_SYMBOL_GPL vmlinux 0x7e102aa6 tpm_try_get_ops -EXPORT_SYMBOL_GPL vmlinux 0x7e28c6ae regulator_list_voltage -EXPORT_SYMBOL_GPL vmlinux 0x7e29ac7f __kthread_should_park -EXPORT_SYMBOL_GPL vmlinux 0x7e2d77f3 net_failover_create -EXPORT_SYMBOL_GPL vmlinux 0x7e2e8366 usb_hcd_resume_root_hub -EXPORT_SYMBOL_GPL vmlinux 0x7e2f4474 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x7de8c3c6 devl_rate_nodes_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7dea9028 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x7e0f6738 spi_transfer_cs_change_delay_exec +EXPORT_SYMBOL_GPL vmlinux 0x7e293ac7 fb_deferred_io_release +EXPORT_SYMBOL_GPL vmlinux 0x7e323ea4 proc_create_net_data EXPORT_SYMBOL_GPL vmlinux 0x7e3bdecd __ftrace_vprintk -EXPORT_SYMBOL_GPL vmlinux 0x7e48126c gpiod_export_link EXPORT_SYMBOL_GPL vmlinux 0x7e5db80b pstore_name_to_type +EXPORT_SYMBOL_GPL vmlinux 0x7e632a12 mbox_request_channel EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time -EXPORT_SYMBOL_GPL vmlinux 0x7e6df163 dev_pm_opp_of_get_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0x7e73650e serdev_device_remove +EXPORT_SYMBOL_GPL vmlinux 0x7e738678 vp_modern_queue_vector EXPORT_SYMBOL_GPL vmlinux 0x7e7a47c9 pci_acpi_clear_companion_lookup_hook -EXPORT_SYMBOL_GPL vmlinux 0x7e7d677f rcu_tasks_trace_qs_blkd EXPORT_SYMBOL_GPL vmlinux 0x7e7e3f58 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7e899e2c splice_to_pipe EXPORT_SYMBOL_GPL vmlinux 0x7e917894 __SCK__tp_func_unmap -EXPORT_SYMBOL_GPL vmlinux 0x7e9585ce devm_gpiod_put -EXPORT_SYMBOL_GPL vmlinux 0x7e95ce0e trace_event_ignore_this_pid -EXPORT_SYMBOL_GPL vmlinux 0x7eb2fa6e wm831x_auxadc_read -EXPORT_SYMBOL_GPL vmlinux 0x7eb46681 devlink_port_init +EXPORT_SYMBOL_GPL vmlinux 0x7e941642 clk_register +EXPORT_SYMBOL_GPL vmlinux 0x7e9edf40 fwnode_graph_get_endpoint_by_id +EXPORT_SYMBOL_GPL vmlinux 0x7ea185c7 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x7ea6eba1 mmc_get_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x7ea9f92b devm_spi_mem_dirmap_destroy EXPORT_SYMBOL_GPL vmlinux 0x7eb808d0 add_cpu -EXPORT_SYMBOL_GPL vmlinux 0x7ed66474 dma_can_mmap -EXPORT_SYMBOL_GPL vmlinux 0x7ee70316 usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x7eb8aa92 gpiochip_generic_free +EXPORT_SYMBOL_GPL vmlinux 0x7ec1f9d8 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x7ecd83be eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x7ecfe1fd netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x7ed7c7b3 pinconf_generic_dt_node_to_map EXPORT_SYMBOL_GPL vmlinux 0x7eea6b8b pcap_adc_async -EXPORT_SYMBOL_GPL vmlinux 0x7f0941d3 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x7ef690a9 bus_sort_breadthfirst EXPORT_SYMBOL_GPL vmlinux 0x7f0bc63f __wake_up_pollfree -EXPORT_SYMBOL_GPL vmlinux 0x7f0d0990 gpiod_count -EXPORT_SYMBOL_GPL vmlinux 0x7f40c79e pin_get_name -EXPORT_SYMBOL_GPL vmlinux 0x7f5224d8 dm_audit_log_ti -EXPORT_SYMBOL_GPL vmlinux 0x7f7978d0 rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x7f27b398 iomap_ioend_try_merge +EXPORT_SYMBOL_GPL vmlinux 0x7f288401 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x7f28ede6 power_supply_register_no_ws +EXPORT_SYMBOL_GPL vmlinux 0x7f2f36d4 is_swiotlb_active +EXPORT_SYMBOL_GPL vmlinux 0x7f312521 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x7f3ad967 devl_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7f3c9fc6 genphy_c45_aneg_done +EXPORT_SYMBOL_GPL vmlinux 0x7f44c954 pinctrl_generic_add_group +EXPORT_SYMBOL_GPL vmlinux 0x7f49ca50 devlink_port_init +EXPORT_SYMBOL_GPL vmlinux 0x7f5443d6 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x7f648b3d pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x7f715434 of_pci_range_parser_init EXPORT_SYMBOL_GPL vmlinux 0x7f79d91f usb_bus_idr_lock -EXPORT_SYMBOL_GPL vmlinux 0x7f7c8379 crypto_larval_kill EXPORT_SYMBOL_GPL vmlinux 0x7f7cbc64 ip_tunnel_need_metadata -EXPORT_SYMBOL_GPL vmlinux 0x7f832235 blkcg_root EXPORT_SYMBOL_GPL vmlinux 0x7f84f35d rcu_gp_slow_unregister -EXPORT_SYMBOL_GPL vmlinux 0x7f84f96a nvdimm_bus_add_badrange +EXPORT_SYMBOL_GPL vmlinux 0x7f85fc0e devm_of_platform_populate EXPORT_SYMBOL_GPL vmlinux 0x7f8839d6 i2c_acpi_get_i2c_resource +EXPORT_SYMBOL_GPL vmlinux 0x7f8984bf sock_map_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7f92ebb7 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x7f9ad5a7 gpiod_disable_hw_timestamp_ns EXPORT_SYMBOL_GPL vmlinux 0x7f9b1879 osc_cpc_flexible_adr_space_confirmed -EXPORT_SYMBOL_GPL vmlinux 0x7faf2800 usb_free_streams -EXPORT_SYMBOL_GPL vmlinux 0x7fb0177b xdp_return_buff -EXPORT_SYMBOL_GPL vmlinux 0x7fcf0f5d devfreq_get_devfreq_by_node -EXPORT_SYMBOL_GPL vmlinux 0x7fd4339c dev_attr_em_message_type -EXPORT_SYMBOL_GPL vmlinux 0x7fd68102 pm_runtime_barrier -EXPORT_SYMBOL_GPL vmlinux 0x7fe76273 ata_sff_postreset -EXPORT_SYMBOL_GPL vmlinux 0x8029cf20 crypto_grab_spawn +EXPORT_SYMBOL_GPL vmlinux 0x7f9d17f8 md_bitmap_copy_from_slot +EXPORT_SYMBOL_GPL vmlinux 0x7fba8d83 wbc_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x7fe5c822 phy_create_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fe9d1c8 __irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x7feee3ba device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x80050b90 virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x800c1398 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x80128b0f pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x801b5fc0 clk_hw_unregister_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x801f74c0 __hwspin_trylock +EXPORT_SYMBOL_GPL vmlinux 0x8026007d gpiochip_irqchip_irq_valid +EXPORT_SYMBOL_GPL vmlinux 0x8030382a __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0x8033c416 phy_init +EXPORT_SYMBOL_GPL vmlinux 0x806fc23a unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x80748c10 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x8078c721 input_ff_flush +EXPORT_SYMBOL_GPL vmlinux 0x807e63e0 pwm_capture EXPORT_SYMBOL_GPL vmlinux 0x807fdcc4 call_rcu_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0x8080e9f3 kernfs_put +EXPORT_SYMBOL_GPL vmlinux 0x80818380 phy_pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0x8083fb22 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x8087369e of_prop_next_u32 EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested -EXPORT_SYMBOL_GPL vmlinux 0x809a984e of_pci_get_max_link_speed -EXPORT_SYMBOL_GPL vmlinux 0x809fe1a7 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x809537cb devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x80957a8f bpf_preload_ops +EXPORT_SYMBOL_GPL vmlinux 0x809f50e2 uart_console_device EXPORT_SYMBOL_GPL vmlinux 0x80a095d8 scatterwalk_ffwd -EXPORT_SYMBOL_GPL vmlinux 0x80a1482b vring_create_virtqueue_dma -EXPORT_SYMBOL_GPL vmlinux 0x80ac54e4 tcp_leave_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0x80a21cfe vfs_inode_has_locks +EXPORT_SYMBOL_GPL vmlinux 0x80aa109e __get_task_ioprio EXPORT_SYMBOL_GPL vmlinux 0x80b4e906 clear_node_memory_type -EXPORT_SYMBOL_GPL vmlinux 0x80b5bb3c devm_phy_get -EXPORT_SYMBOL_GPL vmlinux 0x80bd176d inet_csk_route_req -EXPORT_SYMBOL_GPL vmlinux 0x80be200e usb_hcd_giveback_urb EXPORT_SYMBOL_GPL vmlinux 0x80c68137 nf_log_buf_close +EXPORT_SYMBOL_GPL vmlinux 0x80c764bc pm_runtime_force_suspend EXPORT_SYMBOL_GPL vmlinux 0x80caefe7 badrange_init EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free -EXPORT_SYMBOL_GPL vmlinux 0x80dbd409 regmap_field_update_bits_base EXPORT_SYMBOL_GPL vmlinux 0x80e88177 __tracepoint_non_standard_event -EXPORT_SYMBOL_GPL vmlinux 0x80ee4eb4 relay_switch_subbuf -EXPORT_SYMBOL_GPL vmlinux 0x8101d002 spi_unregister_device -EXPORT_SYMBOL_GPL vmlinux 0x81062d52 pm_runtime_forbid -EXPORT_SYMBOL_GPL vmlinux 0x81080b5a mbox_request_channel_byname -EXPORT_SYMBOL_GPL vmlinux 0x810fd7da gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x80ee7ad3 net_selftest +EXPORT_SYMBOL_GPL vmlinux 0x80f4135d icc_nodes_remove +EXPORT_SYMBOL_GPL vmlinux 0x80f91715 extcon_register_notifier_all EXPORT_SYMBOL_GPL vmlinux 0x8110a73a cond_synchronize_rcu_expedited_full EXPORT_SYMBOL_GPL vmlinux 0x8118caef regulator_find_closest_bigger +EXPORT_SYMBOL_GPL vmlinux 0x811b722e devl_trap_groups_register EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify -EXPORT_SYMBOL_GPL vmlinux 0x81385970 blk_req_zone_write_trylock -EXPORT_SYMBOL_GPL vmlinux 0x8140ca6d crypto_unregister_aeads +EXPORT_SYMBOL_GPL vmlinux 0x812dd716 fsverity_ioctl_enable +EXPORT_SYMBOL_GPL vmlinux 0x815271c2 regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0x81551f8f rio_add_net EXPORT_SYMBOL_GPL vmlinux 0x815588a6 clk_enable -EXPORT_SYMBOL_GPL vmlinux 0x815f11c1 ata_sff_softreset EXPORT_SYMBOL_GPL vmlinux 0x815fda83 sed_ioctl -EXPORT_SYMBOL_GPL vmlinux 0x81610c5f da903x_set_bits -EXPORT_SYMBOL_GPL vmlinux 0x816700bb fwnode_get_nth_parent +EXPORT_SYMBOL_GPL vmlinux 0x81653ab9 rdev_clear_badblocks EXPORT_SYMBOL_GPL vmlinux 0x816a41ca cpufreq_update_limits -EXPORT_SYMBOL_GPL vmlinux 0x816f80f2 dw_pcie_ep_init_notify -EXPORT_SYMBOL_GPL vmlinux 0x8176c9c8 hwspin_lock_request_specific EXPORT_SYMBOL_GPL vmlinux 0x8180cede asn1_encode_sequence -EXPORT_SYMBOL_GPL vmlinux 0x8184c3c6 percpu_up_write -EXPORT_SYMBOL_GPL vmlinux 0x818750cb pinctrl_utils_add_map_mux -EXPORT_SYMBOL_GPL vmlinux 0x8188b253 ip4_datagram_release_cb -EXPORT_SYMBOL_GPL vmlinux 0x81a3284c usb_free_coherent -EXPORT_SYMBOL_GPL vmlinux 0x81a4884f platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x8192336e bpf_map_inc_with_uref EXPORT_SYMBOL_GPL vmlinux 0x81a7f541 percpu_ref_init -EXPORT_SYMBOL_GPL vmlinux 0x81aae1c4 device_find_child -EXPORT_SYMBOL_GPL vmlinux 0x81b058ce led_trigger_register -EXPORT_SYMBOL_GPL vmlinux 0x81b81f9f tps6586x_read -EXPORT_SYMBOL_GPL vmlinux 0x81c12dd7 rt288x_setup -EXPORT_SYMBOL_GPL vmlinux 0x81c8f9f7 devm_hwspin_lock_request -EXPORT_SYMBOL_GPL vmlinux 0x81d3c70c wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x81b5ae11 kiocb_modified +EXPORT_SYMBOL_GPL vmlinux 0x81ba8cf8 sata_lpm_ignore_phy_events +EXPORT_SYMBOL_GPL vmlinux 0x81c19162 nvmem_cell_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0x81ccd0b1 phy_check_downshift +EXPORT_SYMBOL_GPL vmlinux 0x81d7efde nvmem_device_find +EXPORT_SYMBOL_GPL vmlinux 0x81d92945 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x81dbde7c usb_role_switch_get EXPORT_SYMBOL_GPL vmlinux 0x81e2bdf4 generic_handle_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x81e57fb2 usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x81f2c37b of_phandle_args_to_fwspec EXPORT_SYMBOL_GPL vmlinux 0x81f372a2 unregister_ftrace_export -EXPORT_SYMBOL_GPL vmlinux 0x81f5f457 of_led_get -EXPORT_SYMBOL_GPL vmlinux 0x8207ffd2 of_dma_configure_id -EXPORT_SYMBOL_GPL vmlinux 0x82197992 pinctrl_dev_get_name -EXPORT_SYMBOL_GPL vmlinux 0x8220f21b linear_hugepage_index +EXPORT_SYMBOL_GPL vmlinux 0x81ff39ef __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x820989ba regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x8216aa6b nexthop_for_each_fib6_nh +EXPORT_SYMBOL_GPL vmlinux 0x82193d27 sdio_release_host EXPORT_SYMBOL_GPL vmlinux 0x82226c53 pinctrl_unregister_mappings -EXPORT_SYMBOL_GPL vmlinux 0x8231522d mmc_poll_for_busy -EXPORT_SYMBOL_GPL vmlinux 0x8252378e da9052_disable_irq_nosync -EXPORT_SYMBOL_GPL vmlinux 0x8254b4cd vp_modern_generation +EXPORT_SYMBOL_GPL vmlinux 0x82247271 gpiochip_get_data +EXPORT_SYMBOL_GPL vmlinux 0x822c4aee evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x823861c5 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x823bd051 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x82558b46 fuse_conn_init EXPORT_SYMBOL_GPL vmlinux 0x825ce8d1 mas_store -EXPORT_SYMBOL_GPL vmlinux 0x82695269 devm_clk_hw_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x825f779e of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x825f9752 synth_event_trace_start +EXPORT_SYMBOL_GPL vmlinux 0x8261a380 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x826d3f19 scsi_mode_select EXPORT_SYMBOL_GPL vmlinux 0x826d58cd find_iova -EXPORT_SYMBOL_GPL vmlinux 0x8275f6db ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x826e8605 input_class +EXPORT_SYMBOL_GPL vmlinux 0x82745750 dev_pm_opp_get_freq +EXPORT_SYMBOL_GPL vmlinux 0x827c4f39 inet6_hash EXPORT_SYMBOL_GPL vmlinux 0x827e61f8 acpi_has_watchdog -EXPORT_SYMBOL_GPL vmlinux 0x828a0157 devm_platform_get_irqs_affinity +EXPORT_SYMBOL_GPL vmlinux 0x828b672f of_icc_get +EXPORT_SYMBOL_GPL vmlinux 0x829979b8 usb_find_alt_setting EXPORT_SYMBOL_GPL vmlinux 0x829f9253 spi_delay_exec EXPORT_SYMBOL_GPL vmlinux 0x82a80545 __SCK__tp_func_fdb_delete -EXPORT_SYMBOL_GPL vmlinux 0x82a99c8a of_pci_dma_range_parser_init -EXPORT_SYMBOL_GPL vmlinux 0x82b838b4 platform_get_irq_byname_optional -EXPORT_SYMBOL_GPL vmlinux 0x82bfb755 clk_hw_unregister_fixed_factor -EXPORT_SYMBOL_GPL vmlinux 0x82c018a0 bpf_prog_alloc +EXPORT_SYMBOL_GPL vmlinux 0x82b926b7 vring_create_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x82d1a8fc xfrm_audit_policy_add EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure -EXPORT_SYMBOL_GPL vmlinux 0x82d9c120 gov_attr_set_init -EXPORT_SYMBOL_GPL vmlinux 0x8324d1d5 tty_kclose -EXPORT_SYMBOL_GPL vmlinux 0x8332f54d cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x82e0d4a9 fwnode_handle_put +EXPORT_SYMBOL_GPL vmlinux 0x82e2749c iommu_device_sysfs_add +EXPORT_SYMBOL_GPL vmlinux 0x82eb5f84 devm_mbox_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x82ebdbc3 mpc8xxx_spi_tx_buf_u8 +EXPORT_SYMBOL_GPL vmlinux 0x82ed2acd kill_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x82f56423 power_supply_get_property_from_supplier +EXPORT_SYMBOL_GPL vmlinux 0x8317d3f4 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x833268ed n_tty_inherit_ops EXPORT_SYMBOL_GPL vmlinux 0x8339df73 klist_add_behind -EXPORT_SYMBOL_GPL vmlinux 0x83415219 devm_gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x833a1c96 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x833d10a7 dev_pm_qos_expose_latency_tolerance EXPORT_SYMBOL_GPL vmlinux 0x8349a895 nvmem_device_put EXPORT_SYMBOL_GPL vmlinux 0x8353dfff acpi_os_get_iomem -EXPORT_SYMBOL_GPL vmlinux 0x8356da6b fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x835a8ed3 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x835d23ae ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x836b458a mpc8xxx_spi_tx_buf_u32 EXPORT_SYMBOL_GPL vmlinux 0x836d652f poll_state_synchronize_rcu_full +EXPORT_SYMBOL_GPL vmlinux 0x8371b117 pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x837598ee divider_round_rate_parent EXPORT_SYMBOL_GPL vmlinux 0x837aa666 mas_walk -EXPORT_SYMBOL_GPL vmlinux 0x8399a535 pci_msix_alloc_irq_at -EXPORT_SYMBOL_GPL vmlinux 0x83a30705 ip_valid_fib_dump_req -EXPORT_SYMBOL_GPL vmlinux 0x83b96f25 bus_for_each_drv -EXPORT_SYMBOL_GPL vmlinux 0x83e60ea8 of_map_id -EXPORT_SYMBOL_GPL vmlinux 0x83f39254 vcap_tc_flower_handler_ip_usage -EXPORT_SYMBOL_GPL vmlinux 0x83fde57d devm_regmap_field_bulk_alloc -EXPORT_SYMBOL_GPL vmlinux 0x84019f46 fwnode_get_phy_mode -EXPORT_SYMBOL_GPL vmlinux 0x8404190c crypto_unregister_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x837c47c2 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x837f8e0a phy_speed_down +EXPORT_SYMBOL_GPL vmlinux 0x838e7c41 reset_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x839fa960 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x839fdb21 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x83a0c328 bio_end_io_acct_remapped +EXPORT_SYMBOL_GPL vmlinux 0x83aa0bfa blk_clear_pm_only +EXPORT_SYMBOL_GPL vmlinux 0x83dd70b0 devm_pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x83eda9dd vcap_tc_flower_handler_cvlan_usage EXPORT_SYMBOL_GPL vmlinux 0x84106f36 devlink_trap_ctx_priv -EXPORT_SYMBOL_GPL vmlinux 0x84122b66 balloon_page_enqueue -EXPORT_SYMBOL_GPL vmlinux 0x84141aea subsys_interface_unregister -EXPORT_SYMBOL_GPL vmlinux 0x8420d662 acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x841c32a6 iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x8425e1c7 inet_hash EXPORT_SYMBOL_GPL vmlinux 0x84264ced fs_umode_to_ftype +EXPORT_SYMBOL_GPL vmlinux 0x842d0633 ata_std_error_handler EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge -EXPORT_SYMBOL_GPL vmlinux 0x844aa67c power_supply_register -EXPORT_SYMBOL_GPL vmlinux 0x844bef87 bpf_offload_dev_netdev_unregister EXPORT_SYMBOL_GPL vmlinux 0x84502a47 blk_status_to_errno -EXPORT_SYMBOL_GPL vmlinux 0x8458b968 msi_domain_get_virq EXPORT_SYMBOL_GPL vmlinux 0x8462cb62 atapi_cmd_type -EXPORT_SYMBOL_GPL vmlinux 0x847e9189 device_register -EXPORT_SYMBOL_GPL vmlinux 0x8480e778 devm_hwmon_device_register_with_groups -EXPORT_SYMBOL_GPL vmlinux 0x84869c2b wakeup_sources_walk_next -EXPORT_SYMBOL_GPL vmlinux 0x8490a5ee xdp_rxq_info_is_reg -EXPORT_SYMBOL_GPL vmlinux 0x8491bea0 devm_request_free_mem_region -EXPORT_SYMBOL_GPL vmlinux 0x8493288c crypto_inst_setname +EXPORT_SYMBOL_GPL vmlinux 0x8467b0b0 follow_pte +EXPORT_SYMBOL_GPL vmlinux 0x84766e04 kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0x848e57d6 register_virtio_device EXPORT_SYMBOL_GPL vmlinux 0x84a8d0eb of_changeset_revert -EXPORT_SYMBOL_GPL vmlinux 0x84a9ee28 vp_modern_queue_address EXPORT_SYMBOL_GPL vmlinux 0x84ac2765 alarm_start -EXPORT_SYMBOL_GPL vmlinux 0x84c12a72 task_cls_state -EXPORT_SYMBOL_GPL vmlinux 0x84c40d95 samsung_sdi_battery_get_info -EXPORT_SYMBOL_GPL vmlinux 0x84d8392a mbox_client_txdone -EXPORT_SYMBOL_GPL vmlinux 0x84dae60f kthread_cancel_delayed_work_sync -EXPORT_SYMBOL_GPL vmlinux 0x84e1d934 icc_get_name -EXPORT_SYMBOL_GPL vmlinux 0x84ea1864 __trace_array_puts +EXPORT_SYMBOL_GPL vmlinux 0x84d5cff2 of_clk_parent_fill EXPORT_SYMBOL_GPL vmlinux 0x84ef27f5 synth_event_add_fields -EXPORT_SYMBOL_GPL vmlinux 0x84f87815 thermal_zone_device_id +EXPORT_SYMBOL_GPL vmlinux 0x84fb4d57 register_asymmetric_key_parser EXPORT_SYMBOL_GPL vmlinux 0x8506baa8 clk_unregister_gate EXPORT_SYMBOL_GPL vmlinux 0x850bb6db devlink_health_reporter_destroy -EXPORT_SYMBOL_GPL vmlinux 0x8515e88b __traceiter_rpm_resume -EXPORT_SYMBOL_GPL vmlinux 0x85163bfc pwm_adjust_config +EXPORT_SYMBOL_GPL vmlinux 0x8510c1f4 acpi_subsys_suspend_noirq EXPORT_SYMBOL_GPL vmlinux 0x85183f20 srcu_notifier_chain_unregister EXPORT_SYMBOL_GPL vmlinux 0x851e6003 usb_phy_roothub_calibrate EXPORT_SYMBOL_GPL vmlinux 0x851fe124 __SCK__tp_func_fib6_table_lookup -EXPORT_SYMBOL_GPL vmlinux 0x852860ba nf_checksum_partial +EXPORT_SYMBOL_GPL vmlinux 0x85308b6f nd_region_dev +EXPORT_SYMBOL_GPL vmlinux 0x853347cf dw_pcie_wait_for_link EXPORT_SYMBOL_GPL vmlinux 0x85351d81 sbitmap_queue_wake_up -EXPORT_SYMBOL_GPL vmlinux 0x853bf35a genphy_c45_read_status -EXPORT_SYMBOL_GPL vmlinux 0x8546c313 xdp_rxq_info_reg_mem_model -EXPORT_SYMBOL_GPL vmlinux 0x855353b7 pinctrl_utils_free_map +EXPORT_SYMBOL_GPL vmlinux 0x853ba303 acpi_get_acpi_dev +EXPORT_SYMBOL_GPL vmlinux 0x8550ff7a irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x85516722 mmc_poll_for_busy EXPORT_SYMBOL_GPL vmlinux 0x85540ebc nvmem_cell_put -EXPORT_SYMBOL_GPL vmlinux 0x856029f8 netdev_walk_all_upper_dev_rcu -EXPORT_SYMBOL_GPL vmlinux 0x856187f5 extcon_get_state -EXPORT_SYMBOL_GPL vmlinux 0x8565eba4 crypto_register_acomp -EXPORT_SYMBOL_GPL vmlinux 0x85698ea5 irq_chip_disable_parent +EXPORT_SYMBOL_GPL vmlinux 0x855bf466 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x855f3828 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x8566f5fd power_supply_set_property +EXPORT_SYMBOL_GPL vmlinux 0x856c0ce3 dmaengine_desc_get_metadata_ptr +EXPORT_SYMBOL_GPL vmlinux 0x85707ce3 of_device_uevent_modalias EXPORT_SYMBOL_GPL vmlinux 0x857542e2 sbitmap_queue_wake_all -EXPORT_SYMBOL_GPL vmlinux 0x8587a36b serial8250_update_uartclk -EXPORT_SYMBOL_GPL vmlinux 0x8588b2d6 udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0x85822918 amba_device_add EXPORT_SYMBOL_GPL vmlinux 0x858e2628 dax_holder -EXPORT_SYMBOL_GPL vmlinux 0x858fab43 of_clk_hw_register -EXPORT_SYMBOL_GPL vmlinux 0x85932bab xhci_suspend -EXPORT_SYMBOL_GPL vmlinux 0x859e1d3d blk_rq_is_poll -EXPORT_SYMBOL_GPL vmlinux 0x85a5ca21 sk_msg_free_partial -EXPORT_SYMBOL_GPL vmlinux 0x85ad7708 serial8250_em485_destroy -EXPORT_SYMBOL_GPL vmlinux 0x85d3fd9f badblocks_clear -EXPORT_SYMBOL_GPL vmlinux 0x85e3fd7c usb_of_get_companion_dev -EXPORT_SYMBOL_GPL vmlinux 0x85f1649e dummy_con -EXPORT_SYMBOL_GPL vmlinux 0x8616509f splice_to_pipe -EXPORT_SYMBOL_GPL vmlinux 0x86171576 blk_queue_max_discard_segments +EXPORT_SYMBOL_GPL vmlinux 0x8593b83d rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x85b9a6ca acpi_storage_d3 +EXPORT_SYMBOL_GPL vmlinux 0x85c279b2 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x85e07712 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x860267fd rtc_set_alarm EXPORT_SYMBOL_GPL vmlinux 0x861a7a70 fscrypt_dummy_policies_equal EXPORT_SYMBOL_GPL vmlinux 0x86210482 blocking_notifier_chain_unregister EXPORT_SYMBOL_GPL vmlinux 0x862258db timecounter_init -EXPORT_SYMBOL_GPL vmlinux 0x8625c2d2 ata_dev_disable -EXPORT_SYMBOL_GPL vmlinux 0x862a0e99 scsi_get_vpd_page EXPORT_SYMBOL_GPL vmlinux 0x862bb17b linear_range_values_in_range_array -EXPORT_SYMBOL_GPL vmlinux 0x86309612 fsnotify_put_mark -EXPORT_SYMBOL_GPL vmlinux 0x86354d3b regulator_set_current_limit -EXPORT_SYMBOL_GPL vmlinux 0x864bae83 usb_alloc_coherent -EXPORT_SYMBOL_GPL vmlinux 0x864d7efd edac_device_add_device -EXPORT_SYMBOL_GPL vmlinux 0x865730b3 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x86319820 xhci_run +EXPORT_SYMBOL_GPL vmlinux 0x864518ab virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x865462ba usb_wakeup_enabled_descendants EXPORT_SYMBOL_GPL vmlinux 0x86585a33 devlink_fmsg_obj_nest_start -EXPORT_SYMBOL_GPL vmlinux 0x865bd4ef bpf_trace_run4 -EXPORT_SYMBOL_GPL vmlinux 0x8665cc27 dma_map_sgtable -EXPORT_SYMBOL_GPL vmlinux 0x86666a7c crypto_shash_setkey EXPORT_SYMBOL_GPL vmlinux 0x8668ef6e unregister_kprobe -EXPORT_SYMBOL_GPL vmlinux 0x866a102f crypto_destroy_tfm -EXPORT_SYMBOL_GPL vmlinux 0x866c46ef devfreq_event_add_edev +EXPORT_SYMBOL_GPL vmlinux 0x866c3e21 fixed_phy_register_with_gpiod EXPORT_SYMBOL_GPL vmlinux 0x86700220 acpi_get_cpuid EXPORT_SYMBOL_GPL vmlinux 0x8677245d unregister_switchdev_blocking_notifier -EXPORT_SYMBOL_GPL vmlinux 0x867947df pinctrl_force_default -EXPORT_SYMBOL_GPL vmlinux 0x867d1dd9 __pci_hp_register -EXPORT_SYMBOL_GPL vmlinux 0x868013c0 housekeeping_affine -EXPORT_SYMBOL_GPL vmlinux 0x8681546f spi_setup -EXPORT_SYMBOL_GPL vmlinux 0x8683cef7 serial8250_em485_stop_tx -EXPORT_SYMBOL_GPL vmlinux 0x8686dc52 devm_of_phy_get EXPORT_SYMBOL_GPL vmlinux 0x86871b40 devlink_info_version_stored_put_ext EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x868c7d5f pci_ecam_create EXPORT_SYMBOL_GPL vmlinux 0x8696808c phy_gbit_features -EXPORT_SYMBOL_GPL vmlinux 0x869e2bad ata_sas_port_suspend -EXPORT_SYMBOL_GPL vmlinux 0x86aefc69 spi_transfer_cs_change_delay_exec -EXPORT_SYMBOL_GPL vmlinux 0x86bd633b power_supply_put -EXPORT_SYMBOL_GPL vmlinux 0x86c4922b usb_hub_claim_port -EXPORT_SYMBOL_GPL vmlinux 0x86caf91e pci_bus_max_busnr -EXPORT_SYMBOL_GPL vmlinux 0x86e2f9a8 ncsi_vlan_rx_kill_vid -EXPORT_SYMBOL_GPL vmlinux 0x86e83caa gpiochip_line_is_irq -EXPORT_SYMBOL_GPL vmlinux 0x86ec329b cpufreq_unregister_governor -EXPORT_SYMBOL_GPL vmlinux 0x86f5460e extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x86a09713 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x86a2fbb9 usb_hub_release_port +EXPORT_SYMBOL_GPL vmlinux 0x86aacd00 pcc_mbox_free_channel +EXPORT_SYMBOL_GPL vmlinux 0x86c14a16 led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0x86ccfa20 gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0x86dc2ace ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x86e274a1 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x86ed7fd3 bpf_trace_run7 +EXPORT_SYMBOL_GPL vmlinux 0x86f523eb dw_pcie_ep_linkup EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited EXPORT_SYMBOL_GPL vmlinux 0x86f85114 net_dec_egress_queue -EXPORT_SYMBOL_GPL vmlinux 0x87085436 register_acpi_bus_type -EXPORT_SYMBOL_GPL vmlinux 0x8712414b hwspin_lock_unregister -EXPORT_SYMBOL_GPL vmlinux 0x8716c4cb blk_mq_alloc_sq_tag_set -EXPORT_SYMBOL_GPL vmlinux 0x873a780f device_remove_groups -EXPORT_SYMBOL_GPL vmlinux 0x87594fc5 acpi_device_fix_up_power -EXPORT_SYMBOL_GPL vmlinux 0x875aa7c7 sched_set_normal -EXPORT_SYMBOL_GPL vmlinux 0x876b111e ping_close -EXPORT_SYMBOL_GPL vmlinux 0x877405b4 open_related_ns -EXPORT_SYMBOL_GPL vmlinux 0x8786143d nd_region_dev -EXPORT_SYMBOL_GPL vmlinux 0x879a37ca devlink_dpipe_table_counter_enabled -EXPORT_SYMBOL_GPL vmlinux 0x879ffc93 of_pinctrl_get -EXPORT_SYMBOL_GPL vmlinux 0x87a55946 devlink_port_type_ib_set -EXPORT_SYMBOL_GPL vmlinux 0x87a7e5f5 mmc_regulator_enable_vqmmc -EXPORT_SYMBOL_GPL vmlinux 0x87aa1f76 device_node_to_regmap -EXPORT_SYMBOL_GPL vmlinux 0x87b33a12 clk_hw_get_rate_range -EXPORT_SYMBOL_GPL vmlinux 0x87b34148 dev_pm_domain_start -EXPORT_SYMBOL_GPL vmlinux 0x87b3fab3 pci_num_vf -EXPORT_SYMBOL_GPL vmlinux 0x87bb33d5 skb_copy_ubufs -EXPORT_SYMBOL_GPL vmlinux 0x87bb61e3 usb_unlocked_enable_lpm -EXPORT_SYMBOL_GPL vmlinux 0x87c8f817 led_trigger_set -EXPORT_SYMBOL_GPL vmlinux 0x87c913f5 iommu_domain_free -EXPORT_SYMBOL_GPL vmlinux 0x87d5d735 mmu_interval_read_begin -EXPORT_SYMBOL_GPL vmlinux 0x87e6b227 fscrypt_fname_siphash -EXPORT_SYMBOL_GPL vmlinux 0x87ec7c5e rio_alloc_net -EXPORT_SYMBOL_GPL vmlinux 0x87f0668e ipv6_bpf_stub -EXPORT_SYMBOL_GPL vmlinux 0x88010ab5 __hwspin_trylock -EXPORT_SYMBOL_GPL vmlinux 0x88059c57 tcp_set_state -EXPORT_SYMBOL_GPL vmlinux 0x88265377 gpiod_enable_hw_timestamp_ns -EXPORT_SYMBOL_GPL vmlinux 0x88299248 irq_domain_alloc_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0x86fc0c9b irq_domain_translate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x8704772f tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x870d4985 synth_event_trace_end +EXPORT_SYMBOL_GPL vmlinux 0x871691d9 irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x872f25d8 clk_hw_is_prepared +EXPORT_SYMBOL_GPL vmlinux 0x874a610a blk_mq_quiesce_queue_nowait +EXPORT_SYMBOL_GPL vmlinux 0x874bc086 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x8769f547 mmu_notifier_get_locked +EXPORT_SYMBOL_GPL vmlinux 0x877579b8 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x8775dda6 __mdiobus_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x8799247f gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x87a51bd5 crypto_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x87ad8406 skcipher_walk_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x87b03758 ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0x87b61552 devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x87ca0ac7 acpi_register_gsi +EXPORT_SYMBOL_GPL vmlinux 0x87cb12c9 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x87ccfe81 virtqueue_get_vring +EXPORT_SYMBOL_GPL vmlinux 0x87cd1ea1 fb_sys_write +EXPORT_SYMBOL_GPL vmlinux 0x87dfb7ee pm_clk_remove +EXPORT_SYMBOL_GPL vmlinux 0x87e7e2ff ext_pi_type1_crc64 +EXPORT_SYMBOL_GPL vmlinux 0x8817c50f usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x881dd578 decrypt_blob +EXPORT_SYMBOL_GPL vmlinux 0x8824b299 serial8250_do_set_ldisc EXPORT_SYMBOL_GPL vmlinux 0x882b5777 register_kprobe -EXPORT_SYMBOL_GPL vmlinux 0x884b7189 mmc_regulator_disable_vqmmc +EXPORT_SYMBOL_GPL vmlinux 0x88415fa2 trace_put_event_file EXPORT_SYMBOL_GPL vmlinux 0x885528a6 ring_buffer_discard_commit -EXPORT_SYMBOL_GPL vmlinux 0x885a2271 pci_msi_create_irq_domain -EXPORT_SYMBOL_GPL vmlinux 0x885ab5e0 devl_rate_leaf_create -EXPORT_SYMBOL_GPL vmlinux 0x885d088e lwtunnel_xmit -EXPORT_SYMBOL_GPL vmlinux 0x88772ca0 ipv6_opt_accepted -EXPORT_SYMBOL_GPL vmlinux 0x888735bf devm_regulator_get_enable_optional -EXPORT_SYMBOL_GPL vmlinux 0x8888f064 of_icc_xlate_onecell -EXPORT_SYMBOL_GPL vmlinux 0x88a2e961 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x886a0f13 tpm_put_ops +EXPORT_SYMBOL_GPL vmlinux 0x88863770 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x889e6fb3 led_set_brightness_sync +EXPORT_SYMBOL_GPL vmlinux 0x889f8a40 evict_inodes EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active EXPORT_SYMBOL_GPL vmlinux 0x88b4ae92 ring_buffer_normalize_time_stamp -EXPORT_SYMBOL_GPL vmlinux 0x88c68d85 of_devfreq_cooling_register -EXPORT_SYMBOL_GPL vmlinux 0x88cc63d1 gpiod_to_irq -EXPORT_SYMBOL_GPL vmlinux 0x88df386c spi_finalize_current_transfer -EXPORT_SYMBOL_GPL vmlinux 0x88e75ff7 gpiochip_is_requested -EXPORT_SYMBOL_GPL vmlinux 0x88e7b2e7 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x88c95da6 cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x88cfee25 acpi_subsys_complete +EXPORT_SYMBOL_GPL vmlinux 0x88d42239 crypto_unregister_skciphers EXPORT_SYMBOL_GPL vmlinux 0x88ef0ff8 ethtool_params_from_link_mode -EXPORT_SYMBOL_GPL vmlinux 0x88f11a93 crypto_alloc_ahash -EXPORT_SYMBOL_GPL vmlinux 0x88f90a37 nvdimm_volatile_region_create +EXPORT_SYMBOL_GPL vmlinux 0x88f5b4a2 create_signature +EXPORT_SYMBOL_GPL vmlinux 0x88f7ba18 ipv6_find_tlv EXPORT_SYMBOL_GPL vmlinux 0x88fac4e8 xhci_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0x88fb7b56 policy_has_boost_freq +EXPORT_SYMBOL_GPL vmlinux 0x890ac528 ping_queue_rcv_skb EXPORT_SYMBOL_GPL vmlinux 0x890f4f97 __kprobe_event_gen_cmd_start -EXPORT_SYMBOL_GPL vmlinux 0x8915b50f of_prop_next_u32 -EXPORT_SYMBOL_GPL vmlinux 0x89165592 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x891d5532 xdp_rxq_info_reg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x8923f23d __traceiter_ata_tf_load EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state -EXPORT_SYMBOL_GPL vmlinux 0x8926dfff icc_set_tag -EXPORT_SYMBOL_GPL vmlinux 0x89281d0f phy_modify_changed -EXPORT_SYMBOL_GPL vmlinux 0x892dea9a crypto_unregister_ahash -EXPORT_SYMBOL_GPL vmlinux 0x8932cb0a acpi_dma_request_slave_chan_by_name EXPORT_SYMBOL_GPL vmlinux 0x893abbdd devlink_fmsg_u32_pair_put -EXPORT_SYMBOL_GPL vmlinux 0x893ae4b5 scsi_queue_work EXPORT_SYMBOL_GPL vmlinux 0x893c5ddb unlock_system_sleep -EXPORT_SYMBOL_GPL vmlinux 0x8943cd9c lwtunnel_output -EXPORT_SYMBOL_GPL vmlinux 0x8946600b spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x893f8469 xfrm_dev_state_add EXPORT_SYMBOL_GPL vmlinux 0x89485687 iommu_group_put -EXPORT_SYMBOL_GPL vmlinux 0x894f4f39 register_btf_id_dtor_kfuncs +EXPORT_SYMBOL_GPL vmlinux 0x894f637a find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x89548ca9 __nvmem_layout_register EXPORT_SYMBOL_GPL vmlinux 0x8954dc8e __SCK__tp_func_br_fdb_external_learn_add -EXPORT_SYMBOL_GPL vmlinux 0x896955dc of_request_module -EXPORT_SYMBOL_GPL vmlinux 0x897c0665 regulator_count_voltages -EXPORT_SYMBOL_GPL vmlinux 0x89864504 of_nvmem_device_get -EXPORT_SYMBOL_GPL vmlinux 0x89869366 device_match_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x89597c9f netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x896697d2 iommu_dev_enable_feature +EXPORT_SYMBOL_GPL vmlinux 0x897f10bb da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x899846a7 crypto_alloc_sync_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x89a3d138 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x89a673c3 usb_get_urb EXPORT_SYMBOL_GPL vmlinux 0x89ae7aa0 rsa_parse_pub_key -EXPORT_SYMBOL_GPL vmlinux 0x89b5b250 pwm_get_chip_data EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify -EXPORT_SYMBOL_GPL vmlinux 0x89bd5f8b pinctrl_generic_remove_group -EXPORT_SYMBOL_GPL vmlinux 0x89c39b4b __pm_runtime_use_autosuspend -EXPORT_SYMBOL_GPL vmlinux 0x89c957c9 ata_sff_pause -EXPORT_SYMBOL_GPL vmlinux 0x89ca4d8b dma_request_chan +EXPORT_SYMBOL_GPL vmlinux 0x89ce6461 bpf_sk_storage_diag_put +EXPORT_SYMBOL_GPL vmlinux 0x89d39a40 tpm_calc_ordinal_duration EXPORT_SYMBOL_GPL vmlinux 0x89d6f48e cpu_latency_qos_remove_request -EXPORT_SYMBOL_GPL vmlinux 0x89dd64fd sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x89e15a27 blkcg_policy_register EXPORT_SYMBOL_GPL vmlinux 0x89e1ec9d acpi_get_subsystem_id EXPORT_SYMBOL_GPL vmlinux 0x89e340cf acpi_bus_get_ejd -EXPORT_SYMBOL_GPL vmlinux 0x89f422bf __hvc_resize -EXPORT_SYMBOL_GPL vmlinux 0x89feb177 trace_event_raw_init -EXPORT_SYMBOL_GPL vmlinux 0x8a0147e7 pl08x_filter_id -EXPORT_SYMBOL_GPL vmlinux 0x8a025175 is_swiotlb_active -EXPORT_SYMBOL_GPL vmlinux 0x8a0ddba9 crypto_grab_akcipher -EXPORT_SYMBOL_GPL vmlinux 0x8a0f6d7b extcon_register_notifier -EXPORT_SYMBOL_GPL vmlinux 0x8a12433a ata_sff_qc_issue -EXPORT_SYMBOL_GPL vmlinux 0x8a20fe96 usb_acpi_power_manageable -EXPORT_SYMBOL_GPL vmlinux 0x8a3b9bf7 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x89e4728c sk_msg_clone +EXPORT_SYMBOL_GPL vmlinux 0x89e687eb stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x89fbf021 cgroup_get_e_css +EXPORT_SYMBOL_GPL vmlinux 0x8a079131 devfreq_event_add_edev +EXPORT_SYMBOL_GPL vmlinux 0x8a07a54e sk_psock_msg_verdict +EXPORT_SYMBOL_GPL vmlinux 0x8a1ca905 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x8a242344 icc_put +EXPORT_SYMBOL_GPL vmlinux 0x8a3055ed scsi_internal_device_block_nowait +EXPORT_SYMBOL_GPL vmlinux 0x8a3534de pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x8a3b8631 sk_psock_drop EXPORT_SYMBOL_GPL vmlinux 0x8a3f84ba linear_range_get_selector_low -EXPORT_SYMBOL_GPL vmlinux 0x8a434dec pci_disable_ats EXPORT_SYMBOL_GPL vmlinux 0x8a45a555 acpi_unregister_wakeup_handler EXPORT_SYMBOL_GPL vmlinux 0x8a47ef43 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x8a4fd413 tcp_register_ulp EXPORT_SYMBOL_GPL vmlinux 0x8a554a36 mpc8xxx_spi_strmode -EXPORT_SYMBOL_GPL vmlinux 0x8a5ba6c1 device_find_child_by_name +EXPORT_SYMBOL_GPL vmlinux 0x8a583c42 vcap_is_next_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8a5f9f52 wm831x_bulk_read EXPORT_SYMBOL_GPL vmlinux 0x8a62b81b sfp_upstream_stop -EXPORT_SYMBOL_GPL vmlinux 0x8a6c2ba0 dev_queue_xmit_nit -EXPORT_SYMBOL_GPL vmlinux 0x8a6d6c00 i2c_recover_bus -EXPORT_SYMBOL_GPL vmlinux 0x8a78aee8 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x8a630ba0 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x8a6e91c7 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x8a72895a __traceiter_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0x8a83bca0 tps6586x_update EXPORT_SYMBOL_GPL vmlinux 0x8a83fb45 mpi_point_free_parts -EXPORT_SYMBOL_GPL vmlinux 0x8a85e843 tpm_default_chip -EXPORT_SYMBOL_GPL vmlinux 0x8a85f4b4 securityfs_remove -EXPORT_SYMBOL_GPL vmlinux 0x8a86af77 __virtqueue_unbreak -EXPORT_SYMBOL_GPL vmlinux 0x8a86e130 i2c_dw_adjust_bus_speed -EXPORT_SYMBOL_GPL vmlinux 0x8aa7fe62 get_cpu_device -EXPORT_SYMBOL_GPL vmlinux 0x8aa9303a irq_chip_set_affinity_parent -EXPORT_SYMBOL_GPL vmlinux 0x8aa948f9 of_clk_parent_fill +EXPORT_SYMBOL_GPL vmlinux 0x8a89c1a9 xdp_set_features_flag +EXPORT_SYMBOL_GPL vmlinux 0x8a9f2294 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x8aa38fd0 clk_hw_unregister_gate +EXPORT_SYMBOL_GPL vmlinux 0x8aa73390 dev_pm_opp_sync_regulators EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files EXPORT_SYMBOL_GPL vmlinux 0x8ac1407b sfp_get_module_eeprom -EXPORT_SYMBOL_GPL vmlinux 0x8ad30a89 mddev_init_writes_pending -EXPORT_SYMBOL_GPL vmlinux 0x8ada7159 dm_path_uevent EXPORT_SYMBOL_GPL vmlinux 0x8adae60c __wake_up_locked_key -EXPORT_SYMBOL_GPL vmlinux 0x8ae39abf rz_mtu3_shared_reg_update_bit -EXPORT_SYMBOL_GPL vmlinux 0x8af38e23 of_genpd_remove_last -EXPORT_SYMBOL_GPL vmlinux 0x8b0c2b16 serial8250_rpm_put_tx +EXPORT_SYMBOL_GPL vmlinux 0x8aea31fc __acpi_node_get_property_reference +EXPORT_SYMBOL_GPL vmlinux 0x8aed596d of_genpd_add_provider_simple +EXPORT_SYMBOL_GPL vmlinux 0x8af82f82 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x8b0ba84e ata_sas_port_suspend EXPORT_SYMBOL_GPL vmlinux 0x8b149c36 clk_is_match -EXPORT_SYMBOL_GPL vmlinux 0x8b42133c vfs_get_acl -EXPORT_SYMBOL_GPL vmlinux 0x8b49ba91 __phy_modify -EXPORT_SYMBOL_GPL vmlinux 0x8b54ba5c usb_hc_died -EXPORT_SYMBOL_GPL vmlinux 0x8b6fd94b dma_run_dependencies -EXPORT_SYMBOL_GPL vmlinux 0x8b781cbe ata_sff_error_handler -EXPORT_SYMBOL_GPL vmlinux 0x8b7fdc66 dm_bio_from_per_bio_data -EXPORT_SYMBOL_GPL vmlinux 0x8b952bb6 dma_alloc_noncontiguous -EXPORT_SYMBOL_GPL vmlinux 0x8b9db10c devm_create_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x8b251ad0 perf_event_update_userpage +EXPORT_SYMBOL_GPL vmlinux 0x8b4eb576 devm_of_phy_optional_get +EXPORT_SYMBOL_GPL vmlinux 0x8b5e2f2c crypto_grab_kpp +EXPORT_SYMBOL_GPL vmlinux 0x8b667a31 __dev_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x8b6725b0 gpiod_get_raw_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x8b94f5ca fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x8b980ecc tpm_tis_resume +EXPORT_SYMBOL_GPL vmlinux 0x8b987dfc ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x8b9d261b genphy_c45_read_eee_abilities +EXPORT_SYMBOL_GPL vmlinux 0x8b9f0132 blk_mq_unquiesce_tagset EXPORT_SYMBOL_GPL vmlinux 0x8ba51cc9 alarm_init -EXPORT_SYMBOL_GPL vmlinux 0x8bb63be2 dma_opt_mapping_size +EXPORT_SYMBOL_GPL vmlinux 0x8bbbc433 tracing_snapshot_cond_enable EXPORT_SYMBOL_GPL vmlinux 0x8bbe527c __tracepoint_ipi_send_cpu -EXPORT_SYMBOL_GPL vmlinux 0x8bc56308 spi_controller_suspend -EXPORT_SYMBOL_GPL vmlinux 0x8bc980b0 crypto_alloc_kpp -EXPORT_SYMBOL_GPL vmlinux 0x8be0d118 fscrypt_context_for_new_inode +EXPORT_SYMBOL_GPL vmlinux 0x8bc71b1e ata_pci_sff_prepare_host EXPORT_SYMBOL_GPL vmlinux 0x8be1b8b2 btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x8bf04c6f thermal_zone_device_id +EXPORT_SYMBOL_GPL vmlinux 0x8bf324af thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x8bfd1f49 usb_get_phy EXPORT_SYMBOL_GPL vmlinux 0x8c0215f2 pm_system_wakeup -EXPORT_SYMBOL_GPL vmlinux 0x8c028f79 generic_fh_to_parent EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue EXPORT_SYMBOL_GPL vmlinux 0x8c09cb50 vcap_rule_add_action_u32 EXPORT_SYMBOL_GPL vmlinux 0x8c0ed103 rcu_check_boost_fail -EXPORT_SYMBOL_GPL vmlinux 0x8c197ba9 devm_pm_runtime_enable -EXPORT_SYMBOL_GPL vmlinux 0x8c1f5a37 pci_try_reset_function -EXPORT_SYMBOL_GPL vmlinux 0x8c2309cf pci_epc_destroy -EXPORT_SYMBOL_GPL vmlinux 0x8c2327bb nf_ip_route +EXPORT_SYMBOL_GPL vmlinux 0x8c146049 cpu_device_create EXPORT_SYMBOL_GPL vmlinux 0x8c2fc564 sbitmap_queue_clear +EXPORT_SYMBOL_GPL vmlinux 0x8c310bd3 subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8c318f01 bpf_prog_select_runtime +EXPORT_SYMBOL_GPL vmlinux 0x8c4b8111 blk_queue_zone_write_granularity EXPORT_SYMBOL_GPL vmlinux 0x8c50a094 radix_tree_preloads EXPORT_SYMBOL_GPL vmlinux 0x8c52dd7c __tracepoint_devlink_trap_report -EXPORT_SYMBOL_GPL vmlinux 0x8c56708d sata_sff_hardreset -EXPORT_SYMBOL_GPL vmlinux 0x8c5e6075 nf_route -EXPORT_SYMBOL_GPL vmlinux 0x8c6c192a crypto_shash_digest -EXPORT_SYMBOL_GPL vmlinux 0x8c6c836f pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x8c6bfb80 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x8c6c2260 extcon_find_edev_by_node +EXPORT_SYMBOL_GPL vmlinux 0x8c6e9e0a folio_wait_writeback EXPORT_SYMBOL_GPL vmlinux 0x8c743fb6 reset_control_status -EXPORT_SYMBOL_GPL vmlinux 0x8c76be9b tty_port_unregister_device -EXPORT_SYMBOL_GPL vmlinux 0x8c7b5af3 pci_host_common_remove -EXPORT_SYMBOL_GPL vmlinux 0x8c864be6 rio_add_mport_pw_handler +EXPORT_SYMBOL_GPL vmlinux 0x8c8429fd is_nvdimm_sync +EXPORT_SYMBOL_GPL vmlinux 0x8c854efe pci_generic_config_read32 EXPORT_SYMBOL_GPL vmlinux 0x8c89e3b8 usb_phy_roothub_power_off -EXPORT_SYMBOL_GPL vmlinux 0x8c8b408e ata_pci_bmdma_init -EXPORT_SYMBOL_GPL vmlinux 0x8c8fd3c7 dma_resv_iter_first +EXPORT_SYMBOL_GPL vmlinux 0x8c8d5433 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x8c948a24 genphy_c45_pma_suspend EXPORT_SYMBOL_GPL vmlinux 0x8c98d248 unregister_vmcore_cb EXPORT_SYMBOL_GPL vmlinux 0x8c9e54d3 devlink_info_version_running_put_ext -EXPORT_SYMBOL_GPL vmlinux 0x8cb0dab3 rio_mport_read_config_32 -EXPORT_SYMBOL_GPL vmlinux 0x8cb9943a metadata_dst_alloc_percpu -EXPORT_SYMBOL_GPL vmlinux 0x8cc12d6b mmu_interval_notifier_remove -EXPORT_SYMBOL_GPL vmlinux 0x8cc358be device_get_match_data -EXPORT_SYMBOL_GPL vmlinux 0x8cc5ea85 devm_register_restart_handler -EXPORT_SYMBOL_GPL vmlinux 0x8cc938eb clockevent_delta2ns -EXPORT_SYMBOL_GPL vmlinux 0x8ce0eae9 regmap_might_sleep -EXPORT_SYMBOL_GPL vmlinux 0x8ce95698 gpiochip_get_desc +EXPORT_SYMBOL_GPL vmlinux 0x8ca287f3 sfp_bus_find_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x8ca712fc dev_queue_xmit_nit +EXPORT_SYMBOL_GPL vmlinux 0x8ca92ea7 crypto_sig_set_privkey +EXPORT_SYMBOL_GPL vmlinux 0x8cab6932 verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x8cadf5c5 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x8cb77473 pci_epc_set_msi +EXPORT_SYMBOL_GPL vmlinux 0x8cc107e2 devm_i2c_new_dummy_device +EXPORT_SYMBOL_GPL vmlinux 0x8ce9dc3e power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x8cefc6d8 of_gen_pool_get EXPORT_SYMBOL_GPL vmlinux 0x8cf281e7 dev_pm_opp_of_cpumask_add_table +EXPORT_SYMBOL_GPL vmlinux 0x8d01cef6 devm_platform_get_irqs_affinity +EXPORT_SYMBOL_GPL vmlinux 0x8d032cc1 trace_event_ignore_this_pid +EXPORT_SYMBOL_GPL vmlinux 0x8d097581 usb_phy_set_charger_current +EXPORT_SYMBOL_GPL vmlinux 0x8d0a1b1e dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x8d0ba8bd tpm_chip_stop +EXPORT_SYMBOL_GPL vmlinux 0x8d2169b8 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0x8d21e707 iommu_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8d2274d7 fixed_phy_change_carrier EXPORT_SYMBOL_GPL vmlinux 0x8d22bb58 iommu_group_alloc -EXPORT_SYMBOL_GPL vmlinux 0x8d331320 devm_release_action +EXPORT_SYMBOL_GPL vmlinux 0x8d258ab4 of_platform_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x8d2c3c3c adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x8d2fb038 blkg_conf_exit EXPORT_SYMBOL_GPL vmlinux 0x8d3330b6 cpuacct_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0x8d579f33 vp_legacy_remove -EXPORT_SYMBOL_GPL vmlinux 0x8d781507 blk_mq_pci_map_queues -EXPORT_SYMBOL_GPL vmlinux 0x8d799e78 crypto_alg_extsize +EXPORT_SYMBOL_GPL vmlinux 0x8d4d0255 __platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x8d54fda9 __clk_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x8d5a7059 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8d5eb643 priv_to_devlink +EXPORT_SYMBOL_GPL vmlinux 0x8d6e7800 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x8d718a8b usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x8d833021 rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x8d838953 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0x8d867c4f spi_mem_adjust_op_size +EXPORT_SYMBOL_GPL vmlinux 0x8d8f516a clk_hw_register_fixed_factor EXPORT_SYMBOL_GPL vmlinux 0x8d908ebf power_supply_get_maintenance_charging_setting -EXPORT_SYMBOL_GPL vmlinux 0x8d91b1c1 reset_starfive_jh71x0_register -EXPORT_SYMBOL_GPL vmlinux 0x8d92d3ac vring_create_virtqueue -EXPORT_SYMBOL_GPL vmlinux 0x8daaf7fe ata_bmdma_port_start -EXPORT_SYMBOL_GPL vmlinux 0x8dc4a31f fb_deferred_io_release +EXPORT_SYMBOL_GPL vmlinux 0x8d99fda3 regulator_get_error_flags +EXPORT_SYMBOL_GPL vmlinux 0x8da56996 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x8dcb1abc plda_init_interrupts EXPORT_SYMBOL_GPL vmlinux 0x8dd218b0 icc_bulk_disable -EXPORT_SYMBOL_GPL vmlinux 0x8dd506f7 kick_process -EXPORT_SYMBOL_GPL vmlinux 0x8df85f6a devm_gpiod_get_array -EXPORT_SYMBOL_GPL vmlinux 0x8e01453f watchdog_set_last_hw_keepalive -EXPORT_SYMBOL_GPL vmlinux 0x8e15a5b9 dev_pm_opp_of_remove_table +EXPORT_SYMBOL_GPL vmlinux 0x8deb2987 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x8df50ae6 dma_resv_set_deadline +EXPORT_SYMBOL_GPL vmlinux 0x8dff80f5 fwnode_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x8dffb64e reset_control_get_count +EXPORT_SYMBOL_GPL vmlinux 0x8e088049 devl_param_driverinit_value_get +EXPORT_SYMBOL_GPL vmlinux 0x8e1066f5 acpi_pci_check_ejectable EXPORT_SYMBOL_GPL vmlinux 0x8e16419b trace_clock_local -EXPORT_SYMBOL_GPL vmlinux 0x8e24d9f4 find_asymmetric_key -EXPORT_SYMBOL_GPL vmlinux 0x8e2eb758 usb_queue_reset_device -EXPORT_SYMBOL_GPL vmlinux 0x8e3b8ff4 iomap_swapfile_activate -EXPORT_SYMBOL_GPL vmlinux 0x8e42d366 inverse_translate -EXPORT_SYMBOL_GPL vmlinux 0x8e46a096 dma_need_sync -EXPORT_SYMBOL_GPL vmlinux 0x8e4db268 device_link_remove +EXPORT_SYMBOL_GPL vmlinux 0x8e1f52a9 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x8e1ff03c skb_mpls_pop +EXPORT_SYMBOL_GPL vmlinux 0x8e4575ab tcp_twsk_unique EXPORT_SYMBOL_GPL vmlinux 0x8e4eb451 bpf_sk_storage_diag_free -EXPORT_SYMBOL_GPL vmlinux 0x8e556f1e pse_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x8e509ae3 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x8e6399a3 devlink_port_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8e6af59b exportfs_decode_fh EXPORT_SYMBOL_GPL vmlinux 0x8e6b1a9e net_selftest_get_count EXPORT_SYMBOL_GPL vmlinux 0x8e6c8e7d dax_recovery_write +EXPORT_SYMBOL_GPL vmlinux 0x8e79374c event_triggers_call EXPORT_SYMBOL_GPL vmlinux 0x8e7f0a9c acpi_get_phys_id -EXPORT_SYMBOL_GPL vmlinux 0x8e857575 wm831x_reg_unlock -EXPORT_SYMBOL_GPL vmlinux 0x8e887ce1 regulator_is_enabled -EXPORT_SYMBOL_GPL vmlinux 0x8e90e20d gpiochip_line_is_open_source +EXPORT_SYMBOL_GPL vmlinux 0x8e80f830 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x8e82f68f tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0x8e848dd2 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x8e885b95 dw_pcie_write_dbi +EXPORT_SYMBOL_GPL vmlinux 0x8eabd0c2 thermal_zone_device_type EXPORT_SYMBOL_GPL vmlinux 0x8ead800c user_free_preparse -EXPORT_SYMBOL_GPL vmlinux 0x8ebb8d58 mmput -EXPORT_SYMBOL_GPL vmlinux 0x8ee539ae __devm_reset_control_bulk_get -EXPORT_SYMBOL_GPL vmlinux 0x8ee55ec5 fib6_check_nexthop +EXPORT_SYMBOL_GPL vmlinux 0x8ebb89d3 pci_ignore_hotplug +EXPORT_SYMBOL_GPL vmlinux 0x8edc146e net_ns_type_operations EXPORT_SYMBOL_GPL vmlinux 0x8eec19bd __SCK__tp_func_pelt_dl_tp EXPORT_SYMBOL_GPL vmlinux 0x8eee3399 dax_read_unlock -EXPORT_SYMBOL_GPL vmlinux 0x8ef288ce gpiod_set_array_value_cansleep -EXPORT_SYMBOL_GPL vmlinux 0x8efc1707 failover_register +EXPORT_SYMBOL_GPL vmlinux 0x8ef0e08b dm_get_md EXPORT_SYMBOL_GPL vmlinux 0x8efd59ac smp_call_function_any EXPORT_SYMBOL_GPL vmlinux 0x8f00f6d1 vhost_task_start +EXPORT_SYMBOL_GPL vmlinux 0x8f03c492 skb_mpls_dec_ttl +EXPORT_SYMBOL_GPL vmlinux 0x8f06f971 ehci_handshake EXPORT_SYMBOL_GPL vmlinux 0x8f0748af rcu_expedite_gp -EXPORT_SYMBOL_GPL vmlinux 0x8f1c5b6f tpm_chip_stop -EXPORT_SYMBOL_GPL vmlinux 0x8f2531dc of_dma_router_register -EXPORT_SYMBOL_GPL vmlinux 0x8f28ef71 xhci_ext_cap_init -EXPORT_SYMBOL_GPL vmlinux 0x8f325265 dma_resv_test_signaled +EXPORT_SYMBOL_GPL vmlinux 0x8f0b18af validate_xmit_skb_list +EXPORT_SYMBOL_GPL vmlinux 0x8f0fa6ab security_file_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x8f1f4587 gen_pool_get +EXPORT_SYMBOL_GPL vmlinux 0x8f2e8f04 tpm_is_tpm2 EXPORT_SYMBOL_GPL vmlinux 0x8f4f5b83 __tracepoint_xdp_bulk_tx -EXPORT_SYMBOL_GPL vmlinux 0x8f5868c0 devm_gpiochip_add_data_with_key -EXPORT_SYMBOL_GPL vmlinux 0x8f631de4 platform_driver_unregister -EXPORT_SYMBOL_GPL vmlinux 0x8f649cbc led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x8f65c0c5 of_pci_address_to_resource EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative -EXPORT_SYMBOL_GPL vmlinux 0x8f722ba0 thermal_zone_get_num_trips -EXPORT_SYMBOL_GPL vmlinux 0x8f746b66 crypto_register_ahash EXPORT_SYMBOL_GPL vmlinux 0x8f786bee fs_umode_to_dtype -EXPORT_SYMBOL_GPL vmlinux 0x8f8badb7 i2c_slave_register -EXPORT_SYMBOL_GPL vmlinux 0x8f951b6a wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x8f7e7b81 spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0x8f866e3c tty_set_ldisc +EXPORT_SYMBOL_GPL vmlinux 0x8f870935 of_clk_del_provider +EXPORT_SYMBOL_GPL vmlinux 0x8f8b58c7 kthread_park +EXPORT_SYMBOL_GPL vmlinux 0x8f8fddc0 devm_gpiod_unhinge +EXPORT_SYMBOL_GPL vmlinux 0x8f96ec17 to_nd_region EXPORT_SYMBOL_GPL vmlinux 0x8fa5a6ee dev_fetch_sw_netstats -EXPORT_SYMBOL_GPL vmlinux 0x8fb89b21 driver_find_device -EXPORT_SYMBOL_GPL vmlinux 0x8fbe1ec4 software_node_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x8fa7aa82 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0x8fab2150 pcie_reset_flr +EXPORT_SYMBOL_GPL vmlinux 0x8fc00f4b em_dev_unregister_perf_domain +EXPORT_SYMBOL_GPL vmlinux 0x8fc0d6a5 fat_get_dotdot_entry EXPORT_SYMBOL_GPL vmlinux 0x8fc12788 software_node_unregister_node_group -EXPORT_SYMBOL_GPL vmlinux 0x8fc40a3c ata_pio_need_iordy -EXPORT_SYMBOL_GPL vmlinux 0x8fdedaef fsverity_verify_bio -EXPORT_SYMBOL_GPL vmlinux 0x8fe75a86 __phy_modify_mmd_changed -EXPORT_SYMBOL_GPL vmlinux 0x8ff1fcab __traceiter_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x8fcb0952 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x8fea016a dma_vmap_noncontiguous EXPORT_SYMBOL_GPL vmlinux 0x8ff60436 mpi_ec_add_points +EXPORT_SYMBOL_GPL vmlinux 0x8ffb2dec free_fib_info EXPORT_SYMBOL_GPL vmlinux 0x9003eeb3 mm_unaccount_pinned_pages -EXPORT_SYMBOL_GPL vmlinux 0x900e5db8 acpi_storage_d3 -EXPORT_SYMBOL_GPL vmlinux 0x901b786d badblocks_init -EXPORT_SYMBOL_GPL vmlinux 0x901cd297 handle_fasteoi_irq -EXPORT_SYMBOL_GPL vmlinux 0x901e691c pci_generic_config_read +EXPORT_SYMBOL_GPL vmlinux 0x900d8f92 of_hwspin_lock_get_id +EXPORT_SYMBOL_GPL vmlinux 0x9022159f replace_page_cache_folio +EXPORT_SYMBOL_GPL vmlinux 0x9026aba1 __skb_zcopy_downgrade_managed +EXPORT_SYMBOL_GPL vmlinux 0x9027a6c6 tps65912_regmap_config EXPORT_SYMBOL_GPL vmlinux 0x903b627c list_lru_isolate_move -EXPORT_SYMBOL_GPL vmlinux 0x903b8a46 switchdev_bridge_port_unoffload -EXPORT_SYMBOL_GPL vmlinux 0x903ee796 class_dev_iter_exit -EXPORT_SYMBOL_GPL vmlinux 0x904d7ff5 sysfs_merge_group -EXPORT_SYMBOL_GPL vmlinux 0x90693e69 evm_verifyxattr -EXPORT_SYMBOL_GPL vmlinux 0x90779567 pci_max_pasids -EXPORT_SYMBOL_GPL vmlinux 0x907fb019 alarmtimer_get_rtcdev +EXPORT_SYMBOL_GPL vmlinux 0x9040a21a inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x9042f822 platform_find_device_by_driver +EXPORT_SYMBOL_GPL vmlinux 0x90459995 bpf_trace_run3 +EXPORT_SYMBOL_GPL vmlinux 0x904cc632 __list_lru_init EXPORT_SYMBOL_GPL vmlinux 0x907ffb62 __tracepoint_unmap -EXPORT_SYMBOL_GPL vmlinux 0x90866f36 bsg_job_put -EXPORT_SYMBOL_GPL vmlinux 0x9089a50f dst_cache_get -EXPORT_SYMBOL_GPL vmlinux 0x909ee4e0 dev_pm_opp_add -EXPORT_SYMBOL_GPL vmlinux 0x90b77ca1 rio_release_outb_mbox -EXPORT_SYMBOL_GPL vmlinux 0x90f411fc __vfs_setxattr_locked -EXPORT_SYMBOL_GPL vmlinux 0x9117babd switchdev_handle_fdb_event_to_device -EXPORT_SYMBOL_GPL vmlinux 0x911f9aba rio_add_net -EXPORT_SYMBOL_GPL vmlinux 0x9120425a dev_pm_opp_get_supplies -EXPORT_SYMBOL_GPL vmlinux 0x91265d23 sk_free_unlock_clone +EXPORT_SYMBOL_GPL vmlinux 0x90a3b375 kthread_flush_worker +EXPORT_SYMBOL_GPL vmlinux 0x90b3b0db iommu_device_unlink +EXPORT_SYMBOL_GPL vmlinux 0x90c4c446 uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0x90d4c4c9 crypto_unregister_aeads +EXPORT_SYMBOL_GPL vmlinux 0x90f92c8a bpf_redirect_info +EXPORT_SYMBOL_GPL vmlinux 0x91008886 folio_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x9102f530 device_add_software_node +EXPORT_SYMBOL_GPL vmlinux 0x91170cf1 __fscrypt_prepare_lookup +EXPORT_SYMBOL_GPL vmlinux 0x91175574 devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x911cf5aa rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x912fb882 spi_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x913c4da8 hwspin_lock_free EXPORT_SYMBOL_GPL vmlinux 0x913ebd32 stack_depot_save +EXPORT_SYMBOL_GPL vmlinux 0x91439c4b ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x915551e4 devres_get EXPORT_SYMBOL_GPL vmlinux 0x9173c8c7 init_uts_ns -EXPORT_SYMBOL_GPL vmlinux 0x91943cf8 serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x917da92b mmc_cmdq_disable +EXPORT_SYMBOL_GPL vmlinux 0x91918679 auxiliary_driver_unregister EXPORT_SYMBOL_GPL vmlinux 0x91955a9f start_poll_synchronize_rcu -EXPORT_SYMBOL_GPL vmlinux 0x91a1bf84 __traceiter_neigh_cleanup_and_release -EXPORT_SYMBOL_GPL vmlinux 0x91a40184 sysfs_group_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x919b5533 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x91a39214 __phy_modify +EXPORT_SYMBOL_GPL vmlinux 0x91b52bf6 skb_mpls_push EXPORT_SYMBOL_GPL vmlinux 0x91b774a1 mpi_scanval -EXPORT_SYMBOL_GPL vmlinux 0x91b865ea xhci_get_ep_ctx +EXPORT_SYMBOL_GPL vmlinux 0x91b9891d ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x91c65f17 blk_mq_virtio_map_queues EXPORT_SYMBOL_GPL vmlinux 0x91c6e5b0 pcap_to_irq -EXPORT_SYMBOL_GPL vmlinux 0x91caf97a phy_set_mode_ext -EXPORT_SYMBOL_GPL vmlinux 0x91de4161 virtio_check_driver_offered_feature -EXPORT_SYMBOL_GPL vmlinux 0x91df4235 usb_of_get_interface_node +EXPORT_SYMBOL_GPL vmlinux 0x91d12f85 blk_queue_max_zone_append_sectors EXPORT_SYMBOL_GPL vmlinux 0x91ea8726 asn1_encode_boolean -EXPORT_SYMBOL_GPL vmlinux 0x91eadb28 md_stop_writes -EXPORT_SYMBOL_GPL vmlinux 0x91ec41ce iomap_finish_ioends -EXPORT_SYMBOL_GPL vmlinux 0x91f76cae class_compat_remove_link -EXPORT_SYMBOL_GPL vmlinux 0x91fdc95a cpufreq_dbs_governor_exit +EXPORT_SYMBOL_GPL vmlinux 0x91f8e85b crypto_grab_spawn +EXPORT_SYMBOL_GPL vmlinux 0x920181a5 pm_generic_restore_noirq EXPORT_SYMBOL_GPL vmlinux 0x920cc389 visitorl -EXPORT_SYMBOL_GPL vmlinux 0x920dfbc7 phy_create_lookup -EXPORT_SYMBOL_GPL vmlinux 0x9211c0e6 serial8250_rpm_put -EXPORT_SYMBOL_GPL vmlinux 0x922025c4 msg_zerocopy_realloc -EXPORT_SYMBOL_GPL vmlinux 0x922cf427 crypto_register_instance -EXPORT_SYMBOL_GPL vmlinux 0x9231e8c2 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x92185995 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x921ca868 dev_pm_set_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x923d1fe2 trace_array_init_printk EXPORT_SYMBOL_GPL vmlinux 0x923e42aa sysfb_disable EXPORT_SYMBOL_GPL vmlinux 0x9241b358 __static_key_slow_dec_deferred -EXPORT_SYMBOL_GPL vmlinux 0x92453eaa get_task_pid -EXPORT_SYMBOL_GPL vmlinux 0x924ba497 pci_epc_map_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0x9243c50d devm_regulator_bulk_get_const EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object -EXPORT_SYMBOL_GPL vmlinux 0x926eb165 bpf_trace_run3 -EXPORT_SYMBOL_GPL vmlinux 0x92934d30 icc_set_bw -EXPORT_SYMBOL_GPL vmlinux 0x92992e93 blk_queue_max_zone_append_sectors -EXPORT_SYMBOL_GPL vmlinux 0x929ca6ab pinctrl_count_index_with_args +EXPORT_SYMBOL_GPL vmlinux 0x924c4e77 mpc8xxx_spi_rx_buf_u8 +EXPORT_SYMBOL_GPL vmlinux 0x926dad98 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9270bf3b blkcg_deactivate_policy EXPORT_SYMBOL_GPL vmlinux 0x929e95cf psi_memstall_enter -EXPORT_SYMBOL_GPL vmlinux 0x92a71f8e virtqueue_detach_unused_buf -EXPORT_SYMBOL_GPL vmlinux 0x92af67b0 ata_std_error_handler -EXPORT_SYMBOL_GPL vmlinux 0x92b34a20 desc_to_gpio -EXPORT_SYMBOL_GPL vmlinux 0x92b47d4e tty_buffer_space_avail -EXPORT_SYMBOL_GPL vmlinux 0x92bd8df8 blk_queue_can_use_dma_map_merging +EXPORT_SYMBOL_GPL vmlinux 0x92a01237 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x92a637a0 paste_selection +EXPORT_SYMBOL_GPL vmlinux 0x92a63fb5 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x92b1314f gpiochip_line_is_persistent +EXPORT_SYMBOL_GPL vmlinux 0x92b3bff6 register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x92b5a287 pci_epf_free_space +EXPORT_SYMBOL_GPL vmlinux 0x92c1b734 to_nvdimm_bus_dev +EXPORT_SYMBOL_GPL vmlinux 0x92c2bd1c __udp_gso_segment EXPORT_SYMBOL_GPL vmlinux 0x92cb609e __tracepoint_xdp_exception -EXPORT_SYMBOL_GPL vmlinux 0x92d1c149 rio_mport_write_config_8 EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92d3e68e acpi_dev_remove_driver_gpios EXPORT_SYMBOL_GPL vmlinux 0x92db8f68 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x92dcb265 scsi_host_block +EXPORT_SYMBOL_GPL vmlinux 0x92e60f2c irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0x92e754e7 dev_pm_genpd_set_next_wakeup EXPORT_SYMBOL_GPL vmlinux 0x92e8e9ab fsverity_enqueue_verify_work -EXPORT_SYMBOL_GPL vmlinux 0x92fbbbe7 devm_clk_hw_get_clk +EXPORT_SYMBOL_GPL vmlinux 0x92e9f7b9 devm_power_supply_get_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x92f850a7 crypto_sig_verify +EXPORT_SYMBOL_GPL vmlinux 0x92fac4a0 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x9302beaf thermal_zone_device_unregister EXPORT_SYMBOL_GPL vmlinux 0x931ac7c0 __tracepoint_suspend_resume EXPORT_SYMBOL_GPL vmlinux 0x93255b2b ring_buffer_lock_reserve -EXPORT_SYMBOL_GPL vmlinux 0x93255ea6 crypto_alloc_acomp_node EXPORT_SYMBOL_GPL vmlinux 0x932c8d7a linear_range_get_value_array +EXPORT_SYMBOL_GPL vmlinux 0x933025e0 of_dma_xlate_by_chan_id +EXPORT_SYMBOL_GPL vmlinux 0x93303627 ata_pci_bmdma_clear_simplex EXPORT_SYMBOL_GPL vmlinux 0x9332a568 __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x93332e50 badblocks_exit EXPORT_SYMBOL_GPL vmlinux 0x93335116 led_remove_lookup -EXPORT_SYMBOL_GPL vmlinux 0x9334b3ac dma_mmap_noncontiguous -EXPORT_SYMBOL_GPL vmlinux 0x934978cf disk_alloc_independent_access_ranges +EXPORT_SYMBOL_GPL vmlinux 0x9335453f devm_request_pci_bus_resources +EXPORT_SYMBOL_GPL vmlinux 0x93407707 fwnode_get_next_available_child_node +EXPORT_SYMBOL_GPL vmlinux 0x9343bae5 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x934a7baa ata_port_classify +EXPORT_SYMBOL_GPL vmlinux 0x934d944c skb_clone_tx_timestamp EXPORT_SYMBOL_GPL vmlinux 0x93605e9a vfsgid_in_group_p +EXPORT_SYMBOL_GPL vmlinux 0x9366dba9 __devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x9367e64d crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x936ea81e apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x9372188e sdio_writel EXPORT_SYMBOL_GPL vmlinux 0x938cf9d8 __tracepoint_tcp_bad_csum -EXPORT_SYMBOL_GPL vmlinux 0x93a70e23 pci_check_and_unmask_intx -EXPORT_SYMBOL_GPL vmlinux 0x93a8aae8 sata_link_resume -EXPORT_SYMBOL_GPL vmlinux 0x93a9cc69 xfrm_audit_state_delete -EXPORT_SYMBOL_GPL vmlinux 0x93ae1c16 sock_prot_inuse_get -EXPORT_SYMBOL_GPL vmlinux 0x93be1b1a to_of_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x93c76f39 device_bind_driver EXPORT_SYMBOL_GPL vmlinux 0x93c7edeb usb_find_common_endpoints -EXPORT_SYMBOL_GPL vmlinux 0x93d763e0 fscrypt_d_revalidate -EXPORT_SYMBOL_GPL vmlinux 0x93dfe2fe __traceiter_sched_update_nr_running_tp -EXPORT_SYMBOL_GPL vmlinux 0x93e1841a regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x93d72673 __traceiter_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x93d7a3c3 trace_array_destroy +EXPORT_SYMBOL_GPL vmlinux 0x93e6349f clean_acked_data_enable +EXPORT_SYMBOL_GPL vmlinux 0x93e7a794 rio_request_mport_dma +EXPORT_SYMBOL_GPL vmlinux 0x93e8739e icc_node_create EXPORT_SYMBOL_GPL vmlinux 0x93edef07 devlink_health_report -EXPORT_SYMBOL_GPL vmlinux 0x93fa9dee ata_pci_sff_activate_host -EXPORT_SYMBOL_GPL vmlinux 0x93fc579c ata_port_abort -EXPORT_SYMBOL_GPL vmlinux 0x94075093 skb_scrub_packet -EXPORT_SYMBOL_GPL vmlinux 0x940d305c devm_hwspin_lock_free -EXPORT_SYMBOL_GPL vmlinux 0x94110aa5 tpm_tis_core_init +EXPORT_SYMBOL_GPL vmlinux 0x940548a7 sysfs_group_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x94160518 __put_task_struct_rcu_cb EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x94242e32 spi_split_transfers_maxsize EXPORT_SYMBOL_GPL vmlinux 0x9425bb34 nvmem_dev_name -EXPORT_SYMBOL_GPL vmlinux 0x942a5dcf blk_next_bio +EXPORT_SYMBOL_GPL vmlinux 0x94260967 iommu_report_device_fault EXPORT_SYMBOL_GPL vmlinux 0x9430b198 trace_dump_stack -EXPORT_SYMBOL_GPL vmlinux 0x94357613 blk_mq_quiesce_queue -EXPORT_SYMBOL_GPL vmlinux 0x9441a4b9 acpi_subsys_prepare -EXPORT_SYMBOL_GPL vmlinux 0x9452d198 vp_legacy_queue_vector +EXPORT_SYMBOL_GPL vmlinux 0x943e1ea4 netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x944120bb __traceiter_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x94510f82 crypto_alloc_acomp_node EXPORT_SYMBOL_GPL vmlinux 0x9453741f atomic_notifier_chain_register_unique_prio -EXPORT_SYMBOL_GPL vmlinux 0x94595a73 da903x_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x94647e76 devm_i2c_add_adapter EXPORT_SYMBOL_GPL vmlinux 0x9468ea70 schedule_hrtimeout_range_clock +EXPORT_SYMBOL_GPL vmlinux 0x946c0437 dst_cache_get_ip6 EXPORT_SYMBOL_GPL vmlinux 0x946dd559 sha224_zero_message_hash -EXPORT_SYMBOL_GPL vmlinux 0x947c328e vp_legacy_get_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x9475bba3 of_get_fb_videomode +EXPORT_SYMBOL_GPL vmlinux 0x947d7007 cgroup_get_from_fd +EXPORT_SYMBOL_GPL vmlinux 0x9491fb0a __devm_pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0x949ac477 __get_task_comm EXPORT_SYMBOL_GPL vmlinux 0x949b5176 devlink_region_snapshot_create +EXPORT_SYMBOL_GPL vmlinux 0x949e260d ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x949eb137 netdev_sw_irq_coalesce_default_on EXPORT_SYMBOL_GPL vmlinux 0x949f7342 __alloc_percpu EXPORT_SYMBOL_GPL vmlinux 0x94bbb62f __tracepoint_io_page_fault -EXPORT_SYMBOL_GPL vmlinux 0x94bdbe0c debugfs_create_u32_array -EXPORT_SYMBOL_GPL vmlinux 0x94bed382 md_submit_discard_bio -EXPORT_SYMBOL_GPL vmlinux 0x94dec7f8 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x94d73266 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x94d73f93 xhci_add_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x94de4215 usb_get_maximum_speed +EXPORT_SYMBOL_GPL vmlinux 0x94e0940c ata_sff_data_xfer EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop -EXPORT_SYMBOL_GPL vmlinux 0x94ef7601 vfs_splice_read +EXPORT_SYMBOL_GPL vmlinux 0x94f024b0 tps6586x_irq_get_virq EXPORT_SYMBOL_GPL vmlinux 0x94f64aa5 __tracepoint_rpm_suspend EXPORT_SYMBOL_GPL vmlinux 0x9504df26 irq_wake_thread -EXPORT_SYMBOL_GPL vmlinux 0x951861b9 edac_device_handle_ue_count EXPORT_SYMBOL_GPL vmlinux 0x951a2773 crypto_has_alg EXPORT_SYMBOL_GPL vmlinux 0x9522c6b1 sbi_remote_hfence_gvma -EXPORT_SYMBOL_GPL vmlinux 0x95348914 gpiochip_unlock_as_irq -EXPORT_SYMBOL_GPL vmlinux 0x953db441 sk_psock_drop +EXPORT_SYMBOL_GPL vmlinux 0x953016a7 devl_trap_policers_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9532944d extcon_get_property EXPORT_SYMBOL_GPL vmlinux 0x953e1b9e ktime_get_real_seconds -EXPORT_SYMBOL_GPL vmlinux 0x954eee05 __skb_zcopy_downgrade_managed -EXPORT_SYMBOL_GPL vmlinux 0x955105a9 io_uring_cmd_do_in_task_lazy +EXPORT_SYMBOL_GPL vmlinux 0x954a5ebf iommu_device_release_dma_owner +EXPORT_SYMBOL_GPL vmlinux 0x9550adf5 vp_legacy_set_status +EXPORT_SYMBOL_GPL vmlinux 0x9551e942 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9553088a acpi_bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x9556becb dev_pm_domain_attach_by_id EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn -EXPORT_SYMBOL_GPL vmlinux 0x95643a98 thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0x95625e14 edac_pci_del_device EXPORT_SYMBOL_GPL vmlinux 0x956ac400 ring_buffer_dropped_events_cpu -EXPORT_SYMBOL_GPL vmlinux 0x956e871d spi_get_device_id EXPORT_SYMBOL_GPL vmlinux 0x957166d8 regmap_irq_set_type_config_simple -EXPORT_SYMBOL_GPL vmlinux 0x957e6eda tty_encode_baud_rate -EXPORT_SYMBOL_GPL vmlinux 0x957f9cf8 clk_hw_get_name -EXPORT_SYMBOL_GPL vmlinux 0x9580394b anon_inode_getfd -EXPORT_SYMBOL_GPL vmlinux 0x95828c97 serial8250_em485_start_tx +EXPORT_SYMBOL_GPL vmlinux 0x957e3adb pinctrl_generic_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x95800280 class_dev_iter_next EXPORT_SYMBOL_GPL vmlinux 0x95843030 mpi_ec_init +EXPORT_SYMBOL_GPL vmlinux 0x958ac7db of_add_property EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free EXPORT_SYMBOL_GPL vmlinux 0x958fd921 xas_load EXPORT_SYMBOL_GPL vmlinux 0x9593ef31 register_ftrace_export EXPORT_SYMBOL_GPL vmlinux 0x959682a4 __tracepoint_tcp_send_reset -EXPORT_SYMBOL_GPL vmlinux 0x9597881b dw_pcie_ep_linkup +EXPORT_SYMBOL_GPL vmlinux 0x95a66128 devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x95ad442e genphy_c45_pma_resume +EXPORT_SYMBOL_GPL vmlinux 0x95b046ee clk_hw_register_composite +EXPORT_SYMBOL_GPL vmlinux 0x95bac601 platform_device_alloc EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free -EXPORT_SYMBOL_GPL vmlinux 0x95be7f23 kernfs_get -EXPORT_SYMBOL_GPL vmlinux 0x95cefc65 inet6_csk_xmit EXPORT_SYMBOL_GPL vmlinux 0x95d40ea1 hrtimer_try_to_cancel -EXPORT_SYMBOL_GPL vmlinux 0x95ee27f0 __traceiter_neigh_event_send_done -EXPORT_SYMBOL_GPL vmlinux 0x95fb4615 bpf_preload_ops +EXPORT_SYMBOL_GPL vmlinux 0x95ebf4b8 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x95eec17b fib6_check_nexthop +EXPORT_SYMBOL_GPL vmlinux 0x95fa0fd0 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x96122a68 dw_pcie_host_init EXPORT_SYMBOL_GPL vmlinux 0x961286e0 ring_buffer_read_events_cpu -EXPORT_SYMBOL_GPL vmlinux 0x9627bf7b blkg_conf_prep -EXPORT_SYMBOL_GPL vmlinux 0x962ebac1 of_detach_node -EXPORT_SYMBOL_GPL vmlinux 0x9639f48c sysfs_create_mount_point -EXPORT_SYMBOL_GPL vmlinux 0x963acb86 pm_generic_freeze_noirq -EXPORT_SYMBOL_GPL vmlinux 0x964379b8 devlink_free +EXPORT_SYMBOL_GPL vmlinux 0x96499f23 vfs_cancel_lock EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier -EXPORT_SYMBOL_GPL vmlinux 0x9655f458 gpiochip_irq_map -EXPORT_SYMBOL_GPL vmlinux 0x96698c2e simple_attr_open -EXPORT_SYMBOL_GPL vmlinux 0x966da145 sysfs_remove_file_ns -EXPORT_SYMBOL_GPL vmlinux 0x96716fb4 devm_pwmchip_add -EXPORT_SYMBOL_GPL vmlinux 0x967dc650 power_supply_unregister -EXPORT_SYMBOL_GPL vmlinux 0x9681fea5 io_uring_cmd_import_fixed -EXPORT_SYMBOL_GPL vmlinux 0x969929e0 tpm_chip_bootstrap -EXPORT_SYMBOL_GPL vmlinux 0x969a9e71 sysfs_create_link -EXPORT_SYMBOL_GPL vmlinux 0x96b7c971 plda_init_interrupts -EXPORT_SYMBOL_GPL vmlinux 0x96b80131 dax_driver_unregister -EXPORT_SYMBOL_GPL vmlinux 0x96b98181 devm_power_supply_register_no_ws -EXPORT_SYMBOL_GPL vmlinux 0x96e07d48 __blk_req_zone_write_unlock +EXPORT_SYMBOL_GPL vmlinux 0x96587683 vcap_keyset_name +EXPORT_SYMBOL_GPL vmlinux 0x965fa7bf iptunnel_metadata_reply +EXPORT_SYMBOL_GPL vmlinux 0x96677649 pcc_mbox_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x966a73b7 fscrypt_ioctl_get_key_status +EXPORT_SYMBOL_GPL vmlinux 0x966a8a91 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x96773874 ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x967c04f0 ndo_dflt_bridge_getlink +EXPORT_SYMBOL_GPL vmlinux 0x96840f61 synth_event_trace_array +EXPORT_SYMBOL_GPL vmlinux 0x969d50b0 lwtunnel_get_encap_size +EXPORT_SYMBOL_GPL vmlinux 0x96b1f24f vp_modern_set_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x96b7359b irq_chip_enable_parent +EXPORT_SYMBOL_GPL vmlinux 0x96d847e1 devm_fwnode_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x96e0d171 of_clk_get_parent_name +EXPORT_SYMBOL_GPL vmlinux 0x96ef77d0 raw_unhash_sk EXPORT_SYMBOL_GPL vmlinux 0x96f9a01b __SCK__tp_func_pelt_thermal_tp -EXPORT_SYMBOL_GPL vmlinux 0x9708c5ea vc_scrolldelta_helper -EXPORT_SYMBOL_GPL vmlinux 0x970c38b5 get_user_pages_fast -EXPORT_SYMBOL_GPL vmlinux 0x970f4fbe __virtio_unbreak_device +EXPORT_SYMBOL_GPL vmlinux 0x96feb234 dev_pm_opp_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x97002d2b apply_to_existing_page_range +EXPORT_SYMBOL_GPL vmlinux 0x970540cd l3mdev_table_lookup_register EXPORT_SYMBOL_GPL vmlinux 0x9714e0bb ktime_get_raw -EXPORT_SYMBOL_GPL vmlinux 0x9723e2b1 i2c_for_each_dev EXPORT_SYMBOL_GPL vmlinux 0x9728c15e hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x972b0568 tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0x972ca925 devm_clk_get_enabled +EXPORT_SYMBOL_GPL vmlinux 0x972d23c2 lwtunnel_build_state EXPORT_SYMBOL_GPL vmlinux 0x973fbee4 led_add_lookup EXPORT_SYMBOL_GPL vmlinux 0x974d6ab3 irq_set_affinity_notifier -EXPORT_SYMBOL_GPL vmlinux 0x9752ca92 rio_route_get_entry EXPORT_SYMBOL_GPL vmlinux 0x975519c1 asymmetric_key_id_same -EXPORT_SYMBOL_GPL vmlinux 0x975ec46e acpi_dev_ready_for_enumeration -EXPORT_SYMBOL_GPL vmlinux 0x977ed576 devm_hwrng_unregister -EXPORT_SYMBOL_GPL vmlinux 0x977f87c9 devm_serdev_device_open -EXPORT_SYMBOL_GPL vmlinux 0x978fd5c3 fwnode_handle_put -EXPORT_SYMBOL_GPL vmlinux 0x979c4183 ata_std_postreset -EXPORT_SYMBOL_GPL vmlinux 0x979e9413 pci_reset_bus -EXPORT_SYMBOL_GPL vmlinux 0x97a29cba regmap_mmio_attach_clk -EXPORT_SYMBOL_GPL vmlinux 0x97a48aa2 blk_mq_quiesce_tagset -EXPORT_SYMBOL_GPL vmlinux 0x97b3724d iomap_zero_range -EXPORT_SYMBOL_GPL vmlinux 0x97ba7f45 of_irq_to_resource_table -EXPORT_SYMBOL_GPL vmlinux 0x97c96e37 spi_get_device_match_data +EXPORT_SYMBOL_GPL vmlinux 0x97656a82 dm_internal_suspend_noflush +EXPORT_SYMBOL_GPL vmlinux 0x976f7ce0 ata_qc_get_active +EXPORT_SYMBOL_GPL vmlinux 0x977203a9 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x97868d05 skb_append_pagefrags +EXPORT_SYMBOL_GPL vmlinux 0x978c85f5 blk_mq_freeze_queue +EXPORT_SYMBOL_GPL vmlinux 0x979207cf register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x97920fb0 disk_uevent +EXPORT_SYMBOL_GPL vmlinux 0x97951fea sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x97cbca0c __inode_attach_wb +EXPORT_SYMBOL_GPL vmlinux 0x97d2be52 iomap_get_folio EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x97dfbbe1 xfrm_dev_offload_ok EXPORT_SYMBOL_GPL vmlinux 0x97e19906 ZSTD_getErrorCode -EXPORT_SYMBOL_GPL vmlinux 0x97e7d4dd usb_device_match_id -EXPORT_SYMBOL_GPL vmlinux 0x97f2e759 vcap_tc_flower_handler_ipv4_usage -EXPORT_SYMBOL_GPL vmlinux 0x98117df0 __devm_irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x97f0e0ba dm_start_time_ns_from_clone +EXPORT_SYMBOL_GPL vmlinux 0x97fa779c device_del +EXPORT_SYMBOL_GPL vmlinux 0x980c4850 regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x980c99ed acpi_dev_get_property +EXPORT_SYMBOL_GPL vmlinux 0x98106d94 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x98108b93 fuse_direct_io EXPORT_SYMBOL_GPL vmlinux 0x9819c12e kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x982e3012 wbt_enable_default EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick -EXPORT_SYMBOL_GPL vmlinux 0x9834bae5 rio_request_mport_dma -EXPORT_SYMBOL_GPL vmlinux 0x9836feb2 __udp6_lib_lookup -EXPORT_SYMBOL_GPL vmlinux 0x98391c94 devl_port_register_with_ops -EXPORT_SYMBOL_GPL vmlinux 0x983ff306 fwnode_property_present +EXPORT_SYMBOL_GPL vmlinux 0x98366fe9 mddev_init_writes_pending EXPORT_SYMBOL_GPL vmlinux 0x9843f501 __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0x984523ce ip6_input +EXPORT_SYMBOL_GPL vmlinux 0x9848011f devlink_resource_occ_get_register EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc -EXPORT_SYMBOL_GPL vmlinux 0x9852a5ff clk_hw_get_num_parents -EXPORT_SYMBOL_GPL vmlinux 0x9853ea01 usb_reset_configuration EXPORT_SYMBOL_GPL vmlinux 0x985453e1 lease_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x985ca1a5 rz_mtu3_enable -EXPORT_SYMBOL_GPL vmlinux 0x98624817 devm_hwmon_sanitize_name -EXPORT_SYMBOL_GPL vmlinux 0x986ced23 cgroup_get_from_fd +EXPORT_SYMBOL_GPL vmlinux 0x98623951 l3mdev_table_lookup_unregister EXPORT_SYMBOL_GPL vmlinux 0x987031c4 unregister_kretprobe EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9879d0d4 ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x9887c356 blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x988fd390 pci_ecam_map_bus EXPORT_SYMBOL_GPL vmlinux 0x989074ff kmsg_dump_reason_str -EXPORT_SYMBOL_GPL vmlinux 0x98c45feb power_supply_changed -EXPORT_SYMBOL_GPL vmlinux 0x98da7f79 vcap_get_rule_count_by_cookie -EXPORT_SYMBOL_GPL vmlinux 0x98dc1182 dev_pm_opp_init_cpufreq_table -EXPORT_SYMBOL_GPL vmlinux 0x98ea8bcf devm_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x989df945 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x98a4e6dc ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x98b0b797 gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x98b8ed10 platform_msi_create_irq_domain +EXPORT_SYMBOL_GPL vmlinux 0x98c0901a genphy_c45_pma_setup_forced +EXPORT_SYMBOL_GPL vmlinux 0x98cf2cf1 devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x98dbcc5b acpi_dma_configure_id +EXPORT_SYMBOL_GPL vmlinux 0x98e68981 thermal_zone_get_offset +EXPORT_SYMBOL_GPL vmlinux 0x98ecc054 dev_pm_genpd_set_performance_state EXPORT_SYMBOL_GPL vmlinux 0x98ee62b2 ring_buffer_record_disable_cpu -EXPORT_SYMBOL_GPL vmlinux 0x98feca6e unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0x98eeee5f bio_start_io_acct +EXPORT_SYMBOL_GPL vmlinux 0x98fc3e36 devres_release_group EXPORT_SYMBOL_GPL vmlinux 0x990c28b6 freq_qos_update_request EXPORT_SYMBOL_GPL vmlinux 0x990e6a9b tracepoint_srcu -EXPORT_SYMBOL_GPL vmlinux 0x992ad0cd usb_hcd_map_urb_for_dma -EXPORT_SYMBOL_GPL vmlinux 0x992b7cec crypto_unregister_aead -EXPORT_SYMBOL_GPL vmlinux 0x993150f1 stmpe_reg_write -EXPORT_SYMBOL_GPL vmlinux 0x993183ce devl_dpipe_headers_unregister -EXPORT_SYMBOL_GPL vmlinux 0x9931a009 ata_bmdma32_port_ops -EXPORT_SYMBOL_GPL vmlinux 0x9934afcd regulator_unregister -EXPORT_SYMBOL_GPL vmlinux 0x993eec40 __blk_trace_note_message -EXPORT_SYMBOL_GPL vmlinux 0x9942c6a9 fwnode_find_reference -EXPORT_SYMBOL_GPL vmlinux 0x994d3dbb platform_device_add_resources -EXPORT_SYMBOL_GPL vmlinux 0x9952125a genphy_c45_read_link +EXPORT_SYMBOL_GPL vmlinux 0x9913d1e5 fwnode_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x99186bd1 edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x9923a2c5 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x992eb67b led_compose_name +EXPORT_SYMBOL_GPL vmlinux 0x99331593 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x9943714a sk_msg_trim +EXPORT_SYMBOL_GPL vmlinux 0x994ae3bd dev_pm_opp_add EXPORT_SYMBOL_GPL vmlinux 0x9953acdb pkcs7_verify +EXPORT_SYMBOL_GPL vmlinux 0x99569dcc blk_rq_poll EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on -EXPORT_SYMBOL_GPL vmlinux 0x995fcbfb i2c_acpi_find_bus_speed -EXPORT_SYMBOL_GPL vmlinux 0x99679c3f __devm_spi_alloc_controller -EXPORT_SYMBOL_GPL vmlinux 0x9968aacb __audit_log_nfcfg -EXPORT_SYMBOL_GPL vmlinux 0x996aa0b4 devl_dpipe_headers_register -EXPORT_SYMBOL_GPL vmlinux 0x9970c13e skb_segment -EXPORT_SYMBOL_GPL vmlinux 0x9974dcb2 sched_setattr_nocheck -EXPORT_SYMBOL_GPL vmlinux 0x99793d7b ip6_flush_pending_frames -EXPORT_SYMBOL_GPL vmlinux 0x997a0642 folio_invalidate -EXPORT_SYMBOL_GPL vmlinux 0x997d6bcd dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x997066eb pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x99741be8 nvmem_cell_read_u8 +EXPORT_SYMBOL_GPL vmlinux 0x997c8f80 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x99842036 account_locked_vm EXPORT_SYMBOL_GPL vmlinux 0x998d79d6 x509_decode_time -EXPORT_SYMBOL_GPL vmlinux 0x9992884b tpm_tis_resume +EXPORT_SYMBOL_GPL vmlinux 0x99938093 devlink_port_fini +EXPORT_SYMBOL_GPL vmlinux 0x9997c7d1 vp_legacy_set_queue_address EXPORT_SYMBOL_GPL vmlinux 0x999eb575 __wake_up_locked EXPORT_SYMBOL_GPL vmlinux 0x99a03078 dax_holder_notify_failure -EXPORT_SYMBOL_GPL vmlinux 0x99b92db4 sdio_set_host_pm_flags -EXPORT_SYMBOL_GPL vmlinux 0x99c4c13c ata_scsi_port_error_handler -EXPORT_SYMBOL_GPL vmlinux 0x99caeebf edac_mc_del_mc -EXPORT_SYMBOL_GPL vmlinux 0x99d64555 __folio_lock_killable -EXPORT_SYMBOL_GPL vmlinux 0x99e7e5f2 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x99a16e2c pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x99a701bc xdp_rxq_info_unreg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x99ad539f gpiochip_irq_map +EXPORT_SYMBOL_GPL vmlinux 0x99b067e7 udp_tunnel_nic_ops +EXPORT_SYMBOL_GPL vmlinux 0x99da4eea da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x99ddd320 msi_domain_first_desc +EXPORT_SYMBOL_GPL vmlinux 0x99e6716a devl_trap_groups_unregister EXPORT_SYMBOL_GPL vmlinux 0x99f018c4 nvmem_cell_read EXPORT_SYMBOL_GPL vmlinux 0x99f2d00a sysfs_emit_at -EXPORT_SYMBOL_GPL vmlinux 0x99f78d14 pci_ecam_map_bus -EXPORT_SYMBOL_GPL vmlinux 0x9a082005 get_net_ns_by_fd -EXPORT_SYMBOL_GPL vmlinux 0x9a0a0a5a vchan_tx_submit +EXPORT_SYMBOL_GPL vmlinux 0x9a08d15c devm_regulator_get_exclusive EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name -EXPORT_SYMBOL_GPL vmlinux 0x9a143526 blk_mq_flush_busy_ctxs -EXPORT_SYMBOL_GPL vmlinux 0x9a19ed99 uart_console_write -EXPORT_SYMBOL_GPL vmlinux 0x9a2ae2aa ata_sas_port_stop -EXPORT_SYMBOL_GPL vmlinux 0x9a3e98e0 pci_generic_config_write32 -EXPORT_SYMBOL_GPL vmlinux 0x9a4a3a70 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x9a1c3d4c dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x9a2c3d17 crypto_clone_ahash +EXPORT_SYMBOL_GPL vmlinux 0x9a309f92 dev_pm_domain_set EXPORT_SYMBOL_GPL vmlinux 0x9a4bb668 klist_add_head -EXPORT_SYMBOL_GPL vmlinux 0x9a705d34 debugfs_read_file_bool -EXPORT_SYMBOL_GPL vmlinux 0x9a75a362 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x9a73cd53 ata_link_online EXPORT_SYMBOL_GPL vmlinux 0x9a8386e0 crypto_chain -EXPORT_SYMBOL_GPL vmlinux 0x9a99b202 wm8350_read_auxadc -EXPORT_SYMBOL_GPL vmlinux 0x9aa0a2e1 acpiphp_register_attention -EXPORT_SYMBOL_GPL vmlinux 0x9aa12f63 devm_extcon_dev_allocate -EXPORT_SYMBOL_GPL vmlinux 0x9aa42cda vring_new_virtqueue -EXPORT_SYMBOL_GPL vmlinux 0x9ab9ab57 kernfs_put +EXPORT_SYMBOL_GPL vmlinux 0x9a8ecc6a ohci_hub_status_data +EXPORT_SYMBOL_GPL vmlinux 0x9ab0ccde extcon_get_property_capability +EXPORT_SYMBOL_GPL vmlinux 0x9ab59d0c serdev_device_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x9abd71ce sched_set_fifo +EXPORT_SYMBOL_GPL vmlinux 0x9ac0b710 gpiod_count EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops EXPORT_SYMBOL_GPL vmlinux 0x9ac58f15 __tracepoint_xhci_dbg_init -EXPORT_SYMBOL_GPL vmlinux 0x9acfb6a9 ata_dummy_port_ops -EXPORT_SYMBOL_GPL vmlinux 0x9ae5ff18 blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x9ac624c7 mptcp_token_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x9acbff5a bio_clone_blkg_association EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9aec3bc5 nvmem_device_cell_read EXPORT_SYMBOL_GPL vmlinux 0x9af49514 icc_bulk_set_bw -EXPORT_SYMBOL_GPL vmlinux 0x9af4f0d4 register_btf_fmodret_id_set -EXPORT_SYMBOL_GPL vmlinux 0x9b02b409 clk_hw_register_fractional_divider -EXPORT_SYMBOL_GPL vmlinux 0x9b0a0100 page_cache_ra_unbounded -EXPORT_SYMBOL_GPL vmlinux 0x9b0a873d ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x9b031504 query_asymmetric_key +EXPORT_SYMBOL_GPL vmlinux 0x9b06d754 device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x9b0cd5cc md_start EXPORT_SYMBOL_GPL vmlinux 0x9b0d2118 badrange_forget -EXPORT_SYMBOL_GPL vmlinux 0x9b11217d regmap_raw_write_async -EXPORT_SYMBOL_GPL vmlinux 0x9b1390f3 nvmem_cell_read_u32 EXPORT_SYMBOL_GPL vmlinux 0x9b16e4ee phy_gbit_fibre_features -EXPORT_SYMBOL_GPL vmlinux 0x9b1a3398 virtqueue_get_buf -EXPORT_SYMBOL_GPL vmlinux 0x9b26f34e devres_destroy -EXPORT_SYMBOL_GPL vmlinux 0x9b3cd13c power_supply_powers -EXPORT_SYMBOL_GPL vmlinux 0x9b53e02e clkdev_create EXPORT_SYMBOL_GPL vmlinux 0x9b555c8c pm_suspend_default_s2idle -EXPORT_SYMBOL_GPL vmlinux 0x9b693a17 spi_get_next_queued_message -EXPORT_SYMBOL_GPL vmlinux 0x9b6b8477 ethnl_cable_test_step +EXPORT_SYMBOL_GPL vmlinux 0x9b5abaa2 cpufreq_freq_attr_scaling_boost_freqs +EXPORT_SYMBOL_GPL vmlinux 0x9b6b271b rio_inb_pwrite_handler EXPORT_SYMBOL_GPL vmlinux 0x9b6ec967 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x9b88b02d __traceiter_fdb_delete EXPORT_SYMBOL_GPL vmlinux 0x9b9071cb get_old_itimerspec32 EXPORT_SYMBOL_GPL vmlinux 0x9b92d16e pinctrl_gpio_set_config -EXPORT_SYMBOL_GPL vmlinux 0x9b99e997 mbox_client_peek_data -EXPORT_SYMBOL_GPL vmlinux 0x9b9d0b7d smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x9b975682 vcap_chain_offset +EXPORT_SYMBOL_GPL vmlinux 0x9b9e301d usb_of_get_device_node EXPORT_SYMBOL_GPL vmlinux 0x9ba2bb2b gpio_request_array -EXPORT_SYMBOL_GPL vmlinux 0x9ba68741 balloon_page_dequeue -EXPORT_SYMBOL_GPL vmlinux 0x9baa1dd7 __fsverity_file_open EXPORT_SYMBOL_GPL vmlinux 0x9bb3fcd1 __tracepoint_napi_poll -EXPORT_SYMBOL_GPL vmlinux 0x9bb60b99 clk_register_divider_table -EXPORT_SYMBOL_GPL vmlinux 0x9bb9a74d extcon_unregister_notifier_all -EXPORT_SYMBOL_GPL vmlinux 0x9bbb1388 __nf_ip6_route -EXPORT_SYMBOL_GPL vmlinux 0x9bcc102e backing_file_open -EXPORT_SYMBOL_GPL vmlinux 0x9bcf8e9e attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x9bbfb84d to_of_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x9bd1fd8a compat_only_sysfs_link_entry_to_kobj EXPORT_SYMBOL_GPL vmlinux 0x9bdf9714 ZSTD_customMalloc -EXPORT_SYMBOL_GPL vmlinux 0x9be26c33 fat_setattr -EXPORT_SYMBOL_GPL vmlinux 0x9bec30fc pci_epc_get_msi +EXPORT_SYMBOL_GPL vmlinux 0x9bea2c7d kstrdup_quotable_file EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui -EXPORT_SYMBOL_GPL vmlinux 0x9bed257f nexthop_find_by_id -EXPORT_SYMBOL_GPL vmlinux 0x9bf21303 folio_wait_writeback -EXPORT_SYMBOL_GPL vmlinux 0x9c030400 acpi_irq_create_hierarchy -EXPORT_SYMBOL_GPL vmlinux 0x9c0f2308 mbox_send_message -EXPORT_SYMBOL_GPL vmlinux 0x9c1acf40 iov_iter_is_aligned +EXPORT_SYMBOL_GPL vmlinux 0x9beee3b3 kthread_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x9bfa27d1 vp_legacy_get_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x9c0c4624 nexthop_select_path +EXPORT_SYMBOL_GPL vmlinux 0x9c0e3b8e dev_coredumpm +EXPORT_SYMBOL_GPL vmlinux 0x9c111339 power_supply_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x9c1b489e tty_ldisc_receive_buf +EXPORT_SYMBOL_GPL vmlinux 0x9c219587 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x9c23ba14 thermal_add_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x9c266d7c sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x9c2bb5a8 nvdimm_pmem_region_create EXPORT_SYMBOL_GPL vmlinux 0x9c30a3fd proc_douintvec_minmax -EXPORT_SYMBOL_GPL vmlinux 0x9c43a044 ata_cable_80wire -EXPORT_SYMBOL_GPL vmlinux 0x9c692e48 pci_dev_trylock -EXPORT_SYMBOL_GPL vmlinux 0x9c6d63ab ip6_datagram_recv_ctl -EXPORT_SYMBOL_GPL vmlinux 0x9c6f5ad9 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x9c3dd550 jh7110_set_gpiomux +EXPORT_SYMBOL_GPL vmlinux 0x9c61c803 trace_event_raw_init EXPORT_SYMBOL_GPL vmlinux 0x9c6febfc add_uevent_var -EXPORT_SYMBOL_GPL vmlinux 0x9c75996c rtc_read_alarm -EXPORT_SYMBOL_GPL vmlinux 0x9c78ea8c pinconf_generic_dt_node_to_map -EXPORT_SYMBOL_GPL vmlinux 0x9c7ac15f rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x9c7170e6 irq_setup_alt_chip EXPORT_SYMBOL_GPL vmlinux 0x9c803020 usb_phy_roothub_power_on -EXPORT_SYMBOL_GPL vmlinux 0x9c842d20 lwtunnel_encap_del_ops -EXPORT_SYMBOL_GPL vmlinux 0x9c86797b acomp_request_free -EXPORT_SYMBOL_GPL vmlinux 0x9c9b4e62 regulator_desc_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x9c8fec03 __blk_mq_debugfs_rq_show +EXPORT_SYMBOL_GPL vmlinux 0x9ca7a599 fscrypt_mergeable_bio EXPORT_SYMBOL_GPL vmlinux 0x9ca9f20d sbitmap_prepare_to_wait EXPORT_SYMBOL_GPL vmlinux 0x9cc4f70a register_pm_notifier -EXPORT_SYMBOL_GPL vmlinux 0x9ccad37e firmware_request_cache -EXPORT_SYMBOL_GPL vmlinux 0x9cdc86da devm_rtc_allocate_device +EXPORT_SYMBOL_GPL vmlinux 0x9cc66fd0 cgrp_dfl_root EXPORT_SYMBOL_GPL vmlinux 0x9cdd6a66 sysctl_long_vals -EXPORT_SYMBOL_GPL vmlinux 0x9cdd8692 __of_phy_provider_register -EXPORT_SYMBOL_GPL vmlinux 0x9ce3ca55 pci_msix_free_irq -EXPORT_SYMBOL_GPL vmlinux 0x9ce61b1c pwm_request_from_chip -EXPORT_SYMBOL_GPL vmlinux 0x9cee9b68 icc_node_create +EXPORT_SYMBOL_GPL vmlinux 0x9ce2cde6 blk_mq_alloc_request_hctx +EXPORT_SYMBOL_GPL vmlinux 0x9ce87869 crypto_aead_setkey +EXPORT_SYMBOL_GPL vmlinux 0x9ced4bb5 pci_intx EXPORT_SYMBOL_GPL vmlinux 0x9cf37c44 __iowrite32_copy -EXPORT_SYMBOL_GPL vmlinux 0x9cf9f991 folio_mkclean -EXPORT_SYMBOL_GPL vmlinux 0x9cff4412 query_asymmetric_key +EXPORT_SYMBOL_GPL vmlinux 0x9cf70f96 dma_opt_mapping_size EXPORT_SYMBOL_GPL vmlinux 0x9d09e8ae ring_buffer_event_data -EXPORT_SYMBOL_GPL vmlinux 0x9d25ad34 trace_array_put +EXPORT_SYMBOL_GPL vmlinux 0x9d2452a1 dma_vunmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x9d284133 regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0x9d295a55 fsnotify_put_group +EXPORT_SYMBOL_GPL vmlinux 0x9d2aa962 devfreq_cooling_em_register EXPORT_SYMBOL_GPL vmlinux 0x9d2d3f5b pkcs7_free_message +EXPORT_SYMBOL_GPL vmlinux 0x9d2e67a3 spi_finalize_current_transfer EXPORT_SYMBOL_GPL vmlinux 0x9d2f49ef __SCK__tp_func_pelt_se_tp EXPORT_SYMBOL_GPL vmlinux 0x9d2f8622 mas_next -EXPORT_SYMBOL_GPL vmlinux 0x9d358bc4 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x9d2ff492 crypto_alloc_tfm_node +EXPORT_SYMBOL_GPL vmlinux 0x9d33776a rz_mtu3_16bit_ch_read +EXPORT_SYMBOL_GPL vmlinux 0x9d35eff7 __traceiter_br_fdb_external_learn_add EXPORT_SYMBOL_GPL vmlinux 0x9d366f99 page_reporting_register -EXPORT_SYMBOL_GPL vmlinux 0x9d3a6d44 of_irq_parse_one -EXPORT_SYMBOL_GPL vmlinux 0x9d3af017 sched_set_fifo -EXPORT_SYMBOL_GPL vmlinux 0x9d406b6c cpci_hp_unregister_controller EXPORT_SYMBOL_GPL vmlinux 0x9d45abb6 mas_find_rev -EXPORT_SYMBOL_GPL vmlinux 0x9d49e832 __irq_alloc_domain_generic_chips -EXPORT_SYMBOL_GPL vmlinux 0x9d5150b3 ehci_adjust_port_wakeup_flags +EXPORT_SYMBOL_GPL vmlinux 0x9d644737 dm_copy_name_and_uuid EXPORT_SYMBOL_GPL vmlinux 0x9d644c64 kobj_sysfs_ops +EXPORT_SYMBOL_GPL vmlinux 0x9d67cd1a acpi_dma_request_slave_chan_by_index +EXPORT_SYMBOL_GPL vmlinux 0x9d71fd58 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9d768079 spi_new_ancillary_device EXPORT_SYMBOL_GPL vmlinux 0x9d77e886 xas_find -EXPORT_SYMBOL_GPL vmlinux 0x9d84f969 clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x9d78cc5f ip_build_and_send_pkt EXPORT_SYMBOL_GPL vmlinux 0x9d8bb00e set_dax_nocache -EXPORT_SYMBOL_GPL vmlinux 0x9dcc7554 pci_user_read_config_byte -EXPORT_SYMBOL_GPL vmlinux 0x9dce4655 devlink_dpipe_action_put -EXPORT_SYMBOL_GPL vmlinux 0x9dd5067e tcp_splice_eof -EXPORT_SYMBOL_GPL vmlinux 0x9dd7fa74 devm_extcon_dev_unregister -EXPORT_SYMBOL_GPL vmlinux 0x9de2ccd2 trace_array_get_by_name -EXPORT_SYMBOL_GPL vmlinux 0x9de31ef7 __dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x9dad5ccd blk_mq_unfreeze_queue +EXPORT_SYMBOL_GPL vmlinux 0x9dc17420 edac_mc_add_mc_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x9dc8c089 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x9dd7b255 ata_sff_wait_after_reset EXPORT_SYMBOL_GPL vmlinux 0x9de88bc8 __SCK__tp_func_ata_bmdma_start -EXPORT_SYMBOL_GPL vmlinux 0x9def7431 crypto_unregister_algs -EXPORT_SYMBOL_GPL vmlinux 0x9dfe54f2 __inet_twsk_schedule -EXPORT_SYMBOL_GPL vmlinux 0x9e0718b4 devl_param_driverinit_value_set -EXPORT_SYMBOL_GPL vmlinux 0x9e1fd694 pinctrl_utils_add_config +EXPORT_SYMBOL_GPL vmlinux 0x9df407f0 ethnl_cable_test_finished +EXPORT_SYMBOL_GPL vmlinux 0x9dfc2dd7 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x9e0640c8 kthread_data +EXPORT_SYMBOL_GPL vmlinux 0x9e0a6c48 hvc_poll EXPORT_SYMBOL_GPL vmlinux 0x9e229c49 sg_alloc_table_chained -EXPORT_SYMBOL_GPL vmlinux 0x9e3a9bd6 bpf_trace_run2 -EXPORT_SYMBOL_GPL vmlinux 0x9e3ab6c5 devm_nvdimm_memremap -EXPORT_SYMBOL_GPL vmlinux 0x9e458cc7 gpiod_set_raw_array_value_cansleep -EXPORT_SYMBOL_GPL vmlinux 0x9e4600a5 pm_generic_runtime_suspend EXPORT_SYMBOL_GPL vmlinux 0x9e472f5f snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0x9e49b6ff tcp_leave_memory_pressure EXPORT_SYMBOL_GPL vmlinux 0x9e4cc9ed vcap_chain_id_to_lookup -EXPORT_SYMBOL_GPL vmlinux 0x9e4f4045 udp_cmsg_send EXPORT_SYMBOL_GPL vmlinux 0x9e52f37e vcap_rule_mod_action_u32 -EXPORT_SYMBOL_GPL vmlinux 0x9e6b34b8 au_platform_setup -EXPORT_SYMBOL_GPL vmlinux 0x9e7a5517 bio_end_io_acct_remapped -EXPORT_SYMBOL_GPL vmlinux 0x9e80a3d0 ata_sas_tport_delete +EXPORT_SYMBOL_GPL vmlinux 0x9e595b25 fwnode_graph_get_port_parent +EXPORT_SYMBOL_GPL vmlinux 0x9e5a987a acpi_get_first_physical_node +EXPORT_SYMBOL_GPL vmlinux 0x9e5de457 dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x9e63fd2a tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x9e71e758 iomap_bmap EXPORT_SYMBOL_GPL vmlinux 0x9e9c4f24 set_dax_nomc -EXPORT_SYMBOL_GPL vmlinux 0x9eab420f percpu_down_write -EXPORT_SYMBOL_GPL vmlinux 0x9ebd7116 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x9eae6115 clk_hw_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x9ebf3613 devm_regulator_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0x9ece8f62 scsi_template_proc_dir EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier -EXPORT_SYMBOL_GPL vmlinux 0x9ee0d8d2 devm_spi_mem_dirmap_create -EXPORT_SYMBOL_GPL vmlinux 0x9ee483dc gpiochip_get_data +EXPORT_SYMBOL_GPL vmlinux 0x9ed86448 __dev_fwnode_const EXPORT_SYMBOL_GPL vmlinux 0x9eebdde7 mpi_point_new +EXPORT_SYMBOL_GPL vmlinux 0x9eec4d01 dev_pm_opp_find_bw_floor +EXPORT_SYMBOL_GPL vmlinux 0x9ef34c52 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x9ef5625e static_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x9ef7969d class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x9efe110f driver_register +EXPORT_SYMBOL_GPL vmlinux 0x9f07c02d proc_create_net_single_write EXPORT_SYMBOL_GPL vmlinux 0x9f08c714 scatterwalk_copychunks -EXPORT_SYMBOL_GPL vmlinux 0x9f093fd3 devlink_port_health_reporter_create -EXPORT_SYMBOL_GPL vmlinux 0x9f21b7b5 blk_trace_remove -EXPORT_SYMBOL_GPL vmlinux 0x9f23ed4a sock_inuse_get -EXPORT_SYMBOL_GPL vmlinux 0x9f33b44a pci_user_write_config_word -EXPORT_SYMBOL_GPL vmlinux 0x9f527e70 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0x9f10a1cf of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0x9f128878 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x9f21a0c1 pinmux_generic_get_function_count +EXPORT_SYMBOL_GPL vmlinux 0x9f2d0a4c of_clk_src_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0x9f35e937 ata_sas_tport_add EXPORT_SYMBOL_GPL vmlinux 0x9f56c4b9 __SCK__tp_func_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x9f572cd9 virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9f586ed2 led_blink_set EXPORT_SYMBOL_GPL vmlinux 0x9f5c6dc2 __cookie_v6_check -EXPORT_SYMBOL_GPL vmlinux 0x9f609cef devm_reset_control_array_get -EXPORT_SYMBOL_GPL vmlinux 0x9f654118 __traceiter_sk_data_ready -EXPORT_SYMBOL_GPL vmlinux 0x9f7ccdaa regulator_desc_list_voltage_linear -EXPORT_SYMBOL_GPL vmlinux 0x9f976b8a fat_scan -EXPORT_SYMBOL_GPL vmlinux 0x9f9ecc07 pinctrl_utils_reserve_map +EXPORT_SYMBOL_GPL vmlinux 0x9f629f84 __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x9f69dc1c debugfs_create_ulong +EXPORT_SYMBOL_GPL vmlinux 0x9f74035c __usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x9f792648 devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0x9f943489 crypto_sig_sign EXPORT_SYMBOL_GPL vmlinux 0x9fa4564a timer_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x9fac8627 icc_set_bw +EXPORT_SYMBOL_GPL vmlinux 0x9fada638 usb_ifnum_to_if EXPORT_SYMBOL_GPL vmlinux 0x9fb996a7 __tracepoint_attach_device_to_domain -EXPORT_SYMBOL_GPL vmlinux 0x9fcb344b iommu_device_register -EXPORT_SYMBOL_GPL vmlinux 0x9fce4f89 genphy_c45_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x9fbac76e mmu_interval_notifier_insert_locked +EXPORT_SYMBOL_GPL vmlinux 0x9fc89823 sata_pmp_error_handler EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain -EXPORT_SYMBOL_GPL vmlinux 0x9fd9bc68 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x9fdc9467 gpiod_put EXPORT_SYMBOL_GPL vmlinux 0x9fe899b7 get_cpu_idle_time EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm -EXPORT_SYMBOL_GPL vmlinux 0x9ff0bc3c nvdimm_has_flush -EXPORT_SYMBOL_GPL vmlinux 0x9ff12bdc to_nvdimm_bus -EXPORT_SYMBOL_GPL vmlinux 0x9ff79f4a usb_hcd_poll_rh_status -EXPORT_SYMBOL_GPL vmlinux 0x9ffcd6b6 pci_epc_set_bar -EXPORT_SYMBOL_GPL vmlinux 0xa001109d fat_get_dotdot_entry -EXPORT_SYMBOL_GPL vmlinux 0xa00cc390 usb_autopm_get_interface_no_resume -EXPORT_SYMBOL_GPL vmlinux 0xa017d750 crypto_type_has_alg +EXPORT_SYMBOL_GPL vmlinux 0xa0069aa0 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xa01070ed crypto_unregister_acomps +EXPORT_SYMBOL_GPL vmlinux 0xa012a327 acpi_pm_set_device_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xa017f750 dev_pm_domain_detach EXPORT_SYMBOL_GPL vmlinux 0xa01a8d9b nd_cmd_bus_desc -EXPORT_SYMBOL_GPL vmlinux 0xa0221a74 acpi_device_fix_up_power_extended -EXPORT_SYMBOL_GPL vmlinux 0xa031e58f unmap_mapping_pages -EXPORT_SYMBOL_GPL vmlinux 0xa033e663 tty_port_tty_hangup -EXPORT_SYMBOL_GPL vmlinux 0xa038d29d blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0xa037eb9d xhci_suspend EXPORT_SYMBOL_GPL vmlinux 0xa038f306 __rht_bucket_nested +EXPORT_SYMBOL_GPL vmlinux 0xa03ec6c0 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xa0412c34 __clk_hw_register_divider +EXPORT_SYMBOL_GPL vmlinux 0xa043d7a9 crypto_comp_compress +EXPORT_SYMBOL_GPL vmlinux 0xa0449207 gpiod_to_chip EXPORT_SYMBOL_GPL vmlinux 0xa04f945a cpus_read_lock -EXPORT_SYMBOL_GPL vmlinux 0xa06ab6e6 xfrm_audit_state_replay -EXPORT_SYMBOL_GPL vmlinux 0xa070cc03 fwnode_get_parent +EXPORT_SYMBOL_GPL vmlinux 0xa0547811 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xa072dc35 crypto_register_rng EXPORT_SYMBOL_GPL vmlinux 0xa080c5e5 smp_call_function_single_async -EXPORT_SYMBOL_GPL vmlinux 0xa099337f device_destroy -EXPORT_SYMBOL_GPL vmlinux 0xa09b1e1a pinctrl_get_group_pins -EXPORT_SYMBOL_GPL vmlinux 0xa0a7624d ip6_dst_lookup_flow -EXPORT_SYMBOL_GPL vmlinux 0xa0b887bb cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0xa086a7d2 param_ops_bool_enable_only +EXPORT_SYMBOL_GPL vmlinux 0xa0892da3 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xa09b8ee9 devm_gpiod_get_array_optional +EXPORT_SYMBOL_GPL vmlinux 0xa09cfdd8 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xa0ac444a blk_crypto_intersect_capabilities +EXPORT_SYMBOL_GPL vmlinux 0xa0ba414c usb_phy_set_charger_state +EXPORT_SYMBOL_GPL vmlinux 0xa0c18145 dev_nit_active +EXPORT_SYMBOL_GPL vmlinux 0xa0c50cce sk_clear_memalloc EXPORT_SYMBOL_GPL vmlinux 0xa0cb3851 srcu_init_notifier_head EXPORT_SYMBOL_GPL vmlinux 0xa0d3456d nr_swap_pages -EXPORT_SYMBOL_GPL vmlinux 0xa0d564c2 sata_pmp_port_ops -EXPORT_SYMBOL_GPL vmlinux 0xa0e1423b devfreq_get_devfreq_by_phandle -EXPORT_SYMBOL_GPL vmlinux 0xa0e71dd8 acpi_initialize_hp_context -EXPORT_SYMBOL_GPL vmlinux 0xa0ea0a49 class_interface_register -EXPORT_SYMBOL_GPL vmlinux 0xa105b771 dmaengine_desc_set_metadata_len -EXPORT_SYMBOL_GPL vmlinux 0xa107777d genpd_dev_pm_attach -EXPORT_SYMBOL_GPL vmlinux 0xa10b44d4 edac_pci_alloc_ctl_info -EXPORT_SYMBOL_GPL vmlinux 0xa1184f3f dst_cache_get_ip4 -EXPORT_SYMBOL_GPL vmlinux 0xa11c9bf9 strp_check_rcv -EXPORT_SYMBOL_GPL vmlinux 0xa12104a5 dw_pcie_read_dbi -EXPORT_SYMBOL_GPL vmlinux 0xa13b297f register_asymmetric_key_parser -EXPORT_SYMBOL_GPL vmlinux 0xa143df40 fscrypt_ioctl_get_nonce -EXPORT_SYMBOL_GPL vmlinux 0xa1478df0 iommu_device_unlink -EXPORT_SYMBOL_GPL vmlinux 0xa16c5b66 msi_next_desc -EXPORT_SYMBOL_GPL vmlinux 0xa16f3c6e debugfs_attr_write -EXPORT_SYMBOL_GPL vmlinux 0xa17b9928 __traceiter_sched_util_est_cfs_tp -EXPORT_SYMBOL_GPL vmlinux 0xa18e4b8f blk_crypto_has_capabilities +EXPORT_SYMBOL_GPL vmlinux 0xa0df9ee7 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xa0e4f062 xfrm_bpf_md_dst +EXPORT_SYMBOL_GPL vmlinux 0xa108771c of_irq_find_parent +EXPORT_SYMBOL_GPL vmlinux 0xa10a1c2f failover_register +EXPORT_SYMBOL_GPL vmlinux 0xa10c0d26 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0xa1119364 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa11813c9 vp_modern_config_vector +EXPORT_SYMBOL_GPL vmlinux 0xa11bce89 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xa137c8b1 fib_info_nh_uses_dev +EXPORT_SYMBOL_GPL vmlinux 0xa138793f tty_kopen_shared +EXPORT_SYMBOL_GPL vmlinux 0xa13a17a2 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa142c1f8 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xa14d5e46 devm_release_action +EXPORT_SYMBOL_GPL vmlinux 0xa1562541 sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xa15a479b pci_epc_bme_notify +EXPORT_SYMBOL_GPL vmlinux 0xa163126a dev_fill_metadata_dst +EXPORT_SYMBOL_GPL vmlinux 0xa17b9982 debugfs_file_put +EXPORT_SYMBOL_GPL vmlinux 0xa189ce2d regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0xa19404e9 regmap_async_complete EXPORT_SYMBOL_GPL vmlinux 0xa19561fb __SCK__tp_func_xhci_dbg_init -EXPORT_SYMBOL_GPL vmlinux 0xa1c3b97e rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa1a20622 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xa1bd8cd1 fwnode_graph_get_remote_port +EXPORT_SYMBOL_GPL vmlinux 0xa1be8522 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xa1cbeb60 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0xa1ce02dc sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xa1d7301b gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xa1d74e8c usb_enable_autosuspend EXPORT_SYMBOL_GPL vmlinux 0xa1d8004a videomode_from_timing -EXPORT_SYMBOL_GPL vmlinux 0xa1e4f662 dev_fill_metadata_dst -EXPORT_SYMBOL_GPL vmlinux 0xa1f29d16 devm_gpiod_get_index -EXPORT_SYMBOL_GPL vmlinux 0xa1f3934a fat_detach -EXPORT_SYMBOL_GPL vmlinux 0xa2026e6b regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa1e311f4 devm_pci_epc_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa1ef78b5 nf_hook_entries_delete_raw EXPORT_SYMBOL_GPL vmlinux 0xa208b5a7 pm_debug_messages_should_print EXPORT_SYMBOL_GPL vmlinux 0xa20d01ba __trace_bprintk -EXPORT_SYMBOL_GPL vmlinux 0xa21a942b fsnotify_alloc_group EXPORT_SYMBOL_GPL vmlinux 0xa21f2ce7 clk_mux_index_to_val -EXPORT_SYMBOL_GPL vmlinux 0xa226acda cgroup_get_from_path -EXPORT_SYMBOL_GPL vmlinux 0xa23285d2 vma_kernel_pagesize EXPORT_SYMBOL_GPL vmlinux 0xa232cf41 __riscv_isa_extension_available +EXPORT_SYMBOL_GPL vmlinux 0xa237bf84 ehci_adjust_port_wakeup_flags EXPORT_SYMBOL_GPL vmlinux 0xa2402218 __traceiter_xhci_dbg_init -EXPORT_SYMBOL_GPL vmlinux 0xa2412326 cdrom_read_tocentry +EXPORT_SYMBOL_GPL vmlinux 0xa244ead4 device_show_int EXPORT_SYMBOL_GPL vmlinux 0xa2500ef6 __SCK__tp_func_powernv_throttle -EXPORT_SYMBOL_GPL vmlinux 0xa261806b uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0xa2510236 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xa255520f software_node_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xa25a3294 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xa26356ca ip6_dst_lookup_tunnel +EXPORT_SYMBOL_GPL vmlinux 0xa2672e69 pcie_aspm_enabled EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested -EXPORT_SYMBOL_GPL vmlinux 0xa28030c0 gpiod_get_index_optional -EXPORT_SYMBOL_GPL vmlinux 0xa2935d54 fuse_do_ioctl -EXPORT_SYMBOL_GPL vmlinux 0xa2a80ad9 of_regulator_match +EXPORT_SYMBOL_GPL vmlinux 0xa27358df divider_ro_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0xa2746777 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0xa2914999 iomap_swapfile_activate +EXPORT_SYMBOL_GPL vmlinux 0xa29dcd53 nvmem_layout_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa2a5381c bpf_trace_run6 +EXPORT_SYMBOL_GPL vmlinux 0xa2ab763c dev_xdp_prog_count EXPORT_SYMBOL_GPL vmlinux 0xa2ad4cf4 sbitmap_get_shallow +EXPORT_SYMBOL_GPL vmlinux 0xa2af1026 devlink_resources_unregister EXPORT_SYMBOL_GPL vmlinux 0xa2b0820d __SCK__tp_func_cpu_idle EXPORT_SYMBOL_GPL vmlinux 0xa2b67808 riscv_cs_get_mult_shift -EXPORT_SYMBOL_GPL vmlinux 0xa2b78bc8 battery_hook_register +EXPORT_SYMBOL_GPL vmlinux 0xa2bd10d9 of_resolve_phandles +EXPORT_SYMBOL_GPL vmlinux 0xa2bd39f5 __traceiter_block_bio_complete EXPORT_SYMBOL_GPL vmlinux 0xa2c0f59a ct_idle_enter -EXPORT_SYMBOL_GPL vmlinux 0xa2c6376b put_io_context -EXPORT_SYMBOL_GPL vmlinux 0xa2de6567 i2c_dw_probe_master +EXPORT_SYMBOL_GPL vmlinux 0xa2da1166 gpiochip_free_own_desc EXPORT_SYMBOL_GPL vmlinux 0xa2e1b3ef trace_printk_init_buffers -EXPORT_SYMBOL_GPL vmlinux 0xa3051364 irq_domain_pop_irq -EXPORT_SYMBOL_GPL vmlinux 0xa3077a07 blkcg_activate_policy -EXPORT_SYMBOL_GPL vmlinux 0xa30e1887 phy_restore_page -EXPORT_SYMBOL_GPL vmlinux 0xa3158b3a blk_mq_free_request -EXPORT_SYMBOL_GPL vmlinux 0xa3241384 class_register -EXPORT_SYMBOL_GPL vmlinux 0xa32c7c46 pci_load_saved_state -EXPORT_SYMBOL_GPL vmlinux 0xa33a5f1d devl_dpipe_table_unregister -EXPORT_SYMBOL_GPL vmlinux 0xa342f278 of_devfreq_cooling_register_power -EXPORT_SYMBOL_GPL vmlinux 0xa348cbb3 regulator_sync_voltage -EXPORT_SYMBOL_GPL vmlinux 0xa34cc3bc akcipher_register_instance -EXPORT_SYMBOL_GPL vmlinux 0xa34ecf38 dm_per_bio_data -EXPORT_SYMBOL_GPL vmlinux 0xa3601e86 __skb_tstamp_tx -EXPORT_SYMBOL_GPL vmlinux 0xa3692b26 phy_init +EXPORT_SYMBOL_GPL vmlinux 0xa2e4bf2b rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xa2e8568c fscrypt_prepare_lookup_partial +EXPORT_SYMBOL_GPL vmlinux 0xa2fa408f spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0xa2fbe505 nvdimm_region_delete +EXPORT_SYMBOL_GPL vmlinux 0xa30b7365 gpiochip_reqres_irq +EXPORT_SYMBOL_GPL vmlinux 0xa31bce22 devlink_dpipe_match_put +EXPORT_SYMBOL_GPL vmlinux 0xa329c80b regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0xa33f418a pci_epf_remove_vepf +EXPORT_SYMBOL_GPL vmlinux 0xa3437049 irq_chip_set_vcpu_affinity_parent +EXPORT_SYMBOL_GPL vmlinux 0xa34b2bb9 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xa350d149 noop_direct_IO +EXPORT_SYMBOL_GPL vmlinux 0xa35413dc max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xa35a2c44 dev_pm_qos_add_request EXPORT_SYMBOL_GPL vmlinux 0xa36f50fb is_binary_blacklisted -EXPORT_SYMBOL_GPL vmlinux 0xa36fcb6f sysfs_remove_bin_file -EXPORT_SYMBOL_GPL vmlinux 0xa37ae28a led_set_brightness_sync +EXPORT_SYMBOL_GPL vmlinux 0xa3771e8a acpiphp_unregister_attention EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue EXPORT_SYMBOL_GPL vmlinux 0xa38a9f71 get_itimerspec64 -EXPORT_SYMBOL_GPL vmlinux 0xa39d144d regulator_is_supported_voltage -EXPORT_SYMBOL_GPL vmlinux 0xa39e32b2 vfs_fallocate +EXPORT_SYMBOL_GPL vmlinux 0xa39416f4 pci_epc_map_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0xa39665c3 fuse_dev_free EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3a4eabe dev_pm_set_dedicated_wake_irq EXPORT_SYMBOL_GPL vmlinux 0xa3b4c285 inet_hashinfo2_init_mod -EXPORT_SYMBOL_GPL vmlinux 0xa3b50fc8 gpiochip_generic_config EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector -EXPORT_SYMBOL_GPL vmlinux 0xa3ca6687 devm_pinctrl_put -EXPORT_SYMBOL_GPL vmlinux 0xa3da52f2 regulator_enable -EXPORT_SYMBOL_GPL vmlinux 0xa3dcec00 fat_truncate_time +EXPORT_SYMBOL_GPL vmlinux 0xa3bf5461 gen10g_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0xa3c9f5c9 iocb_bio_iopoll +EXPORT_SYMBOL_GPL vmlinux 0xa3d1caf6 pinctrl_get_group_pins EXPORT_SYMBOL_GPL vmlinux 0xa3ece414 freezer_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0xa3ecf219 tps6586x_write -EXPORT_SYMBOL_GPL vmlinux 0xa3eea1ff __sk_flush_backlog +EXPORT_SYMBOL_GPL vmlinux 0xa3edf5ab __traceiter_xdp_exception EXPORT_SYMBOL_GPL vmlinux 0xa3f12f69 __crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0xa3f66f09 irq_domain_reset_irq_data +EXPORT_SYMBOL_GPL vmlinux 0xa3f9b14f pciserial_init_ports EXPORT_SYMBOL_GPL vmlinux 0xa4031b7f sfp_parse_port -EXPORT_SYMBOL_GPL vmlinux 0xa403c333 pid_vnr EXPORT_SYMBOL_GPL vmlinux 0xa4062a57 __tracepoint_devlink_hwmsg -EXPORT_SYMBOL_GPL vmlinux 0xa40711fe sock_diag_put_meminfo EXPORT_SYMBOL_GPL vmlinux 0xa410a295 devlink_region_destroy -EXPORT_SYMBOL_GPL vmlinux 0xa41b9a7c iommu_page_response -EXPORT_SYMBOL_GPL vmlinux 0xa420459d virtqueue_add_inbuf_ctx -EXPORT_SYMBOL_GPL vmlinux 0xa4329f8f ata_ehi_push_desc -EXPORT_SYMBOL_GPL vmlinux 0xa44465de bpf_offload_dev_create +EXPORT_SYMBOL_GPL vmlinux 0xa41cd674 iov_iter_extract_pages +EXPORT_SYMBOL_GPL vmlinux 0xa41e4e9a virtqueue_resize +EXPORT_SYMBOL_GPL vmlinux 0xa4301126 regulator_is_equal EXPORT_SYMBOL_GPL vmlinux 0xa44a1307 interval_tree_iter_first -EXPORT_SYMBOL_GPL vmlinux 0xa45923cb kiocb_modified +EXPORT_SYMBOL_GPL vmlinux 0xa4568f26 clk_mux_determine_rate_flags +EXPORT_SYMBOL_GPL vmlinux 0xa45bcbe6 iomap_dio_rw EXPORT_SYMBOL_GPL vmlinux 0xa45c7b90 stack_trace_print -EXPORT_SYMBOL_GPL vmlinux 0xa46d5d95 regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0xa45e13db irq_work_queue EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx -EXPORT_SYMBOL_GPL vmlinux 0xa4820e21 skb_send_sock_locked -EXPORT_SYMBOL_GPL vmlinux 0xa4832e56 __clk_hw_register_gate -EXPORT_SYMBOL_GPL vmlinux 0xa493be5d ndo_dflt_bridge_getlink -EXPORT_SYMBOL_GPL vmlinux 0xa49735fc pci_set_pcie_reset_state -EXPORT_SYMBOL_GPL vmlinux 0xa49d680a acpi_bind_one -EXPORT_SYMBOL_GPL vmlinux 0xa4a03d02 i2c_dw_prepare_clk +EXPORT_SYMBOL_GPL vmlinux 0xa485bb85 serdev_device_get_tiocm +EXPORT_SYMBOL_GPL vmlinux 0xa499838a tty_buffer_lock_exclusive EXPORT_SYMBOL_GPL vmlinux 0xa4ab7c1c ring_buffer_overruns EXPORT_SYMBOL_GPL vmlinux 0xa4b07fe7 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0xa4b1a9c3 acpi_subsys_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa4bc1ada xdp_convert_zc_to_xdp_frame EXPORT_SYMBOL_GPL vmlinux 0xa4c00324 asn1_encode_octet_string EXPORT_SYMBOL_GPL vmlinux 0xa4c085f8 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0xa4c6f6f9 pci_generic_config_write EXPORT_SYMBOL_GPL vmlinux 0xa4cb829c trace_seq_putmem -EXPORT_SYMBOL_GPL vmlinux 0xa4d07bee cpufreq_cooling_unregister -EXPORT_SYMBOL_GPL vmlinux 0xa4f1d48f tty_kopen_shared +EXPORT_SYMBOL_GPL vmlinux 0xa4cbf882 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xa4dac0c5 power_supply_external_power_changed +EXPORT_SYMBOL_GPL vmlinux 0xa4dc56dc rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0xa4ea67cf rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xa4ec7c1e devlink_region_snapshot_id_get EXPORT_SYMBOL_GPL vmlinux 0xa4f2a2ed acpi_irq_get -EXPORT_SYMBOL_GPL vmlinux 0xa4f3ead9 debugfs_create_file_size +EXPORT_SYMBOL_GPL vmlinux 0xa4f46f7f devfreq_event_disable_edev +EXPORT_SYMBOL_GPL vmlinux 0xa4fad1dc phy_put +EXPORT_SYMBOL_GPL vmlinux 0xa4ff9659 extcon_get_edev_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xa522bdf1 crypto_rng_reset +EXPORT_SYMBOL_GPL vmlinux 0xa523abb3 xdp_build_skb_from_frame +EXPORT_SYMBOL_GPL vmlinux 0xa526ae57 pci_store_saved_state EXPORT_SYMBOL_GPL vmlinux 0xa52958c2 crypto_alg_sem -EXPORT_SYMBOL_GPL vmlinux 0xa52d8122 addrconf_add_linklocal +EXPORT_SYMBOL_GPL vmlinux 0xa52cec2c devl_dpipe_table_resource_set EXPORT_SYMBOL_GPL vmlinux 0xa531471e clk_save_context -EXPORT_SYMBOL_GPL vmlinux 0xa5375476 ata_qc_get_active -EXPORT_SYMBOL_GPL vmlinux 0xa542148e device_store_bool -EXPORT_SYMBOL_GPL vmlinux 0xa5467908 __traceiter_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0xa531f2c2 kernel_file_open +EXPORT_SYMBOL_GPL vmlinux 0xa53923cd addrconf_add_linklocal +EXPORT_SYMBOL_GPL vmlinux 0xa5407764 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xa545e784 crypto_clone_cipher EXPORT_SYMBOL_GPL vmlinux 0xa54a2cba devlink_linecard_provision_clear -EXPORT_SYMBOL_GPL vmlinux 0xa54eee6c regulator_is_enabled_regmap -EXPORT_SYMBOL_GPL vmlinux 0xa55438d5 irq_gc_set_wake -EXPORT_SYMBOL_GPL vmlinux 0xa5590774 class_find_device -EXPORT_SYMBOL_GPL vmlinux 0xa55a4b86 nd_cmd_in_size -EXPORT_SYMBOL_GPL vmlinux 0xa5626558 pci_epc_multi_mem_init -EXPORT_SYMBOL_GPL vmlinux 0xa5656d46 serial8250_do_set_divisor -EXPORT_SYMBOL_GPL vmlinux 0xa569dc2c __traceiter_xdp_exception -EXPORT_SYMBOL_GPL vmlinux 0xa56cf56d uart_console_device +EXPORT_SYMBOL_GPL vmlinux 0xa54a9550 icc_get_name +EXPORT_SYMBOL_GPL vmlinux 0xa54bd9bd pci_platform_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xa5544c3c regmap_might_sleep +EXPORT_SYMBOL_GPL vmlinux 0xa5562cc1 tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0xa557be2e powercap_register_control_type EXPORT_SYMBOL_GPL vmlinux 0xa56e1a52 sg_free_table_chained -EXPORT_SYMBOL_GPL vmlinux 0xa5721d38 serial8250_modem_status -EXPORT_SYMBOL_GPL vmlinux 0xa595522d devm_hwmon_device_register_with_info -EXPORT_SYMBOL_GPL vmlinux 0xa5b71c2e usb_role_switch_find_by_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xa5800a10 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0xa5944ea1 thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa59832bd debugfs_write_file_bool +EXPORT_SYMBOL_GPL vmlinux 0xa59d29b8 ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xa5b9764a fuse_conn_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa5bbba0a platform_unregister_drivers EXPORT_SYMBOL_GPL vmlinux 0xa5bda8a1 efi_capsule_supported -EXPORT_SYMBOL_GPL vmlinux 0xa5c4a57a spi_take_timestamp_post -EXPORT_SYMBOL_GPL vmlinux 0xa5cbccc8 of_phandle_iterator_init EXPORT_SYMBOL_GPL vmlinux 0xa5d1f4b8 stack_depot_snprint -EXPORT_SYMBOL_GPL vmlinux 0xa5d4d96a class_remove_file_ns -EXPORT_SYMBOL_GPL vmlinux 0xa5d51774 debugfs_create_file_unsafe EXPORT_SYMBOL_GPL vmlinux 0xa5d7c388 pstore_type_to_name EXPORT_SYMBOL_GPL vmlinux 0xa5db0ff5 mas_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa5db3903 devm_kmalloc EXPORT_SYMBOL_GPL vmlinux 0xa5dff27b trace_seq_bitmask -EXPORT_SYMBOL_GPL vmlinux 0xa5e4aa40 __traceiter_ata_bmdma_setup EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full -EXPORT_SYMBOL_GPL vmlinux 0xa5f42141 vp_legacy_get_queue_enable -EXPORT_SYMBOL_GPL vmlinux 0xa5f69e2c iomap_writepages -EXPORT_SYMBOL_GPL vmlinux 0xa60b3f89 wb_writeout_inc -EXPORT_SYMBOL_GPL vmlinux 0xa60d6984 rt_mutex_unlock -EXPORT_SYMBOL_GPL vmlinux 0xa6114758 pci_vfs_assigned -EXPORT_SYMBOL_GPL vmlinux 0xa617a81f blk_crypto_update_capabilities -EXPORT_SYMBOL_GPL vmlinux 0xa625a532 usb_get_role_switch_default_mode -EXPORT_SYMBOL_GPL vmlinux 0xa62fe193 ata_bmdma_port_intr -EXPORT_SYMBOL_GPL vmlinux 0xa631aef8 devm_kasprintf -EXPORT_SYMBOL_GPL vmlinux 0xa64cecbd bus_unregister -EXPORT_SYMBOL_GPL vmlinux 0xa64f4324 regulator_irq_helper -EXPORT_SYMBOL_GPL vmlinux 0xa654a697 rio_release_dma -EXPORT_SYMBOL_GPL vmlinux 0xa6646f21 devm_init_badblocks -EXPORT_SYMBOL_GPL vmlinux 0xa66dd099 acpi_pm_wakeup_event -EXPORT_SYMBOL_GPL vmlinux 0xa671a980 bpf_prog_create -EXPORT_SYMBOL_GPL vmlinux 0xa67ab1cf regulator_suspend_enable -EXPORT_SYMBOL_GPL vmlinux 0xa68fba36 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xa6122eac usb_device_match_id +EXPORT_SYMBOL_GPL vmlinux 0xa6264d82 get_net_ns_by_fd +EXPORT_SYMBOL_GPL vmlinux 0xa6362389 pm_genpd_opp_to_performance_state +EXPORT_SYMBOL_GPL vmlinux 0xa63cfb0f cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xa647b929 device_link_remove +EXPORT_SYMBOL_GPL vmlinux 0xa6644a91 pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0xa66537c9 dev_pm_opp_get_suspend_opp_freq +EXPORT_SYMBOL_GPL vmlinux 0xa669395f rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xa6726897 clk_hw_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa685a589 blk_crypto_reprogram_all_keys +EXPORT_SYMBOL_GPL vmlinux 0xa6872ab1 crypto_unregister_kpp +EXPORT_SYMBOL_GPL vmlinux 0xa68e04fa ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xa69c7b41 switchdev_bridge_port_offload EXPORT_SYMBOL_GPL vmlinux 0xa6a088b7 fscrypt_match_name -EXPORT_SYMBOL_GPL vmlinux 0xa6ace1b5 perf_event_period +EXPORT_SYMBOL_GPL vmlinux 0xa6a54af8 dev_pm_opp_config_clks_simple +EXPORT_SYMBOL_GPL vmlinux 0xa6ad4dcd acpi_dev_suspend EXPORT_SYMBOL_GPL vmlinux 0xa6af1e35 __SCK__tp_func_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0xa6af5da6 pci_iov_get_pf_drvdata EXPORT_SYMBOL_GPL vmlinux 0xa6b06f65 ata_sff_queue_work EXPORT_SYMBOL_GPL vmlinux 0xa6b21ef2 dpm_suspend_end EXPORT_SYMBOL_GPL vmlinux 0xa6b5ee5b __SCK__tp_func_block_split -EXPORT_SYMBOL_GPL vmlinux 0xa6bd4b02 misc_cg_try_charge -EXPORT_SYMBOL_GPL vmlinux 0xa6c725d4 irq_get_domain_generic_chip -EXPORT_SYMBOL_GPL vmlinux 0xa6ca0697 lwtunnel_cmp_encap -EXPORT_SYMBOL_GPL vmlinux 0xa6d1cf50 lwtunnel_encap_add_ops +EXPORT_SYMBOL_GPL vmlinux 0xa6cbc7cb pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa6cc1058 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xa6d54562 irq_domain_xlate_onetwocell EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa6ed9cbd devm_pinctrl_register_and_init +EXPORT_SYMBOL_GPL vmlinux 0xa6f0750f tty_ldisc_ref EXPORT_SYMBOL_GPL vmlinux 0xa709c835 fib6_info_destroy_rcu -EXPORT_SYMBOL_GPL vmlinux 0xa72392a5 regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xa71f32f4 blk_mq_pci_map_queues EXPORT_SYMBOL_GPL vmlinux 0xa7241959 pkcs7_supply_detached_data -EXPORT_SYMBOL_GPL vmlinux 0xa7292148 fib_nh_common_init -EXPORT_SYMBOL_GPL vmlinux 0xa7346d1b rio_mport_initialize -EXPORT_SYMBOL_GPL vmlinux 0xa73bec69 phy_speed_down +EXPORT_SYMBOL_GPL vmlinux 0xa743dcfa rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xa74f6ca3 vfs_fallocate +EXPORT_SYMBOL_GPL vmlinux 0xa74ff12e xdp_rxq_info_unreg EXPORT_SYMBOL_GPL vmlinux 0xa75446b3 dma_fence_unwrap_next -EXPORT_SYMBOL_GPL vmlinux 0xa788574a serial8250_read_char +EXPORT_SYMBOL_GPL vmlinux 0xa7561096 component_compare_dev +EXPORT_SYMBOL_GPL vmlinux 0xa75c3495 ethtool_dev_mm_supported +EXPORT_SYMBOL_GPL vmlinux 0xa75cbd68 devlink_free +EXPORT_SYMBOL_GPL vmlinux 0xa75ceed9 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xa76448be mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xa76505e7 gpiochip_irq_unmap +EXPORT_SYMBOL_GPL vmlinux 0xa7713511 rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0xa7722715 fscrypt_dio_supported EXPORT_SYMBOL_GPL vmlinux 0xa788700b copy_to_user_nofault +EXPORT_SYMBOL_GPL vmlinux 0xa78d7296 __pci_hp_register EXPORT_SYMBOL_GPL vmlinux 0xa790ab4b __tracepoint_ipi_send_cpumask -EXPORT_SYMBOL_GPL vmlinux 0xa793aa6c usb_driver_claim_interface -EXPORT_SYMBOL_GPL vmlinux 0xa793f0c4 tps6586x_irq_get_virq -EXPORT_SYMBOL_GPL vmlinux 0xa7984cfd pci_dev_run_wake -EXPORT_SYMBOL_GPL vmlinux 0xa7ad6936 wakeup_source_remove -EXPORT_SYMBOL_GPL vmlinux 0xa7b35d9f fscrypt_prepare_symlink -EXPORT_SYMBOL_GPL vmlinux 0xa7bc6591 fwnode_property_read_u32_array -EXPORT_SYMBOL_GPL vmlinux 0xa7be7d52 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa797fcb1 __virtqueue_unbreak EXPORT_SYMBOL_GPL vmlinux 0xa7c68231 __tracepoint_remove_device_from_group -EXPORT_SYMBOL_GPL vmlinux 0xa7d31663 devm_kstrdup_const -EXPORT_SYMBOL_GPL vmlinux 0xa7e03116 crypto_unregister_templates -EXPORT_SYMBOL_GPL vmlinux 0xa7f7f44f dev_attr_ncq_prio_enable -EXPORT_SYMBOL_GPL vmlinux 0xa7fda4f0 blk_stat_disable_accounting -EXPORT_SYMBOL_GPL vmlinux 0xa810caa0 pm_generic_poweroff_late -EXPORT_SYMBOL_GPL vmlinux 0xa812c038 devm_krealloc +EXPORT_SYMBOL_GPL vmlinux 0xa7d8558f usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xa7dcc669 generic_handle_domain_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xa7e83c08 pci_epc_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa7fbb160 regmap_get_reg_stride +EXPORT_SYMBOL_GPL vmlinux 0xa7fdb713 regmap_get_val_endian +EXPORT_SYMBOL_GPL vmlinux 0xa805ac19 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0xa806c22a extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa80725df scsi_autopm_put_device EXPORT_SYMBOL_GPL vmlinux 0xa81485e6 __traceiter_ipi_send_cpu +EXPORT_SYMBOL_GPL vmlinux 0xa81d62a6 firmware_upload_register +EXPORT_SYMBOL_GPL vmlinux 0xa81d97f9 dev_err_probe +EXPORT_SYMBOL_GPL vmlinux 0xa8283f0a iommu_device_claim_dma_owner +EXPORT_SYMBOL_GPL vmlinux 0xa82b4e56 gpiod_set_raw_array_value +EXPORT_SYMBOL_GPL vmlinux 0xa8310452 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xa84acb9b edac_pci_handle_npe EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain -EXPORT_SYMBOL_GPL vmlinux 0xa857f058 nvmem_device_find -EXPORT_SYMBOL_GPL vmlinux 0xa874e18f blk_mq_queue_inflight +EXPORT_SYMBOL_GPL vmlinux 0xa855ad28 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0xa86e7a03 ncsi_unregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xa87429d3 __regmap_init_spi EXPORT_SYMBOL_GPL vmlinux 0xa8750c54 hwrng_unregister -EXPORT_SYMBOL_GPL vmlinux 0xa8782cd3 bpf_prog_sub -EXPORT_SYMBOL_GPL vmlinux 0xa88b2c7c usb_get_maximum_ssp_rate EXPORT_SYMBOL_GPL vmlinux 0xa89926dc crypto_dh_decode_key -EXPORT_SYMBOL_GPL vmlinux 0xa89f2f1c iommu_detach_group -EXPORT_SYMBOL_GPL vmlinux 0xa8b0c6ff __mmc_send_status -EXPORT_SYMBOL_GPL vmlinux 0xa8b3d01a irq_chip_set_wake_parent -EXPORT_SYMBOL_GPL vmlinux 0xa8ddb1ed get_device_system_crosststamp -EXPORT_SYMBOL_GPL vmlinux 0xa8de4a3e bpf_prog_inc_not_zero -EXPORT_SYMBOL_GPL vmlinux 0xa8e04ec2 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xa8a11bd7 pinconf_generic_dt_free_map +EXPORT_SYMBOL_GPL vmlinux 0xa8af8b5b clk_divider_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0xa8bd58f6 device_remove_software_node +EXPORT_SYMBOL_GPL vmlinux 0xa8bef540 genphy_c45_pma_baset1_setup_master_slave +EXPORT_SYMBOL_GPL vmlinux 0xa8dd152d rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xa8def516 __blk_req_zone_write_unlock EXPORT_SYMBOL_GPL vmlinux 0xa8f97178 __tracepoint_ata_tf_load -EXPORT_SYMBOL_GPL vmlinux 0xa8fcb7a8 __fsnotify_inode_delete -EXPORT_SYMBOL_GPL vmlinux 0xa907da6d l3mdev_fib_table_by_index -EXPORT_SYMBOL_GPL vmlinux 0xa908b432 __devm_regmap_init_i2c -EXPORT_SYMBOL_GPL vmlinux 0xa9147586 shash_no_setkey -EXPORT_SYMBOL_GPL vmlinux 0xa9269d6f fsnotify_destroy_mark +EXPORT_SYMBOL_GPL vmlinux 0xa90a0b62 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xa90d8ec3 vcap_debugfs +EXPORT_SYMBOL_GPL vmlinux 0xa911fc02 pci_epc_clear_bar +EXPORT_SYMBOL_GPL vmlinux 0xa912cbed extcon_set_property +EXPORT_SYMBOL_GPL vmlinux 0xa9320238 find_vpid EXPORT_SYMBOL_GPL vmlinux 0xa9320d27 ktime_get_seconds -EXPORT_SYMBOL_GPL vmlinux 0xa93dedd1 devm_phy_create EXPORT_SYMBOL_GPL vmlinux 0xa95b5c77 hwmon_sanitize_name -EXPORT_SYMBOL_GPL vmlinux 0xa95e8e9b ip_route_output_tunnel -EXPORT_SYMBOL_GPL vmlinux 0xa9672f88 __sock_recv_wifi_status -EXPORT_SYMBOL_GPL vmlinux 0xa96a63de sock_map_destroy -EXPORT_SYMBOL_GPL vmlinux 0xa96c64a9 msi_device_has_isolated_msi -EXPORT_SYMBOL_GPL vmlinux 0xa974f57a cpu_device_create -EXPORT_SYMBOL_GPL vmlinux 0xa977db1d of_gen_pool_get -EXPORT_SYMBOL_GPL vmlinux 0xa9783518 scsi_dh_attached_handler_name -EXPORT_SYMBOL_GPL vmlinux 0xa97a9087 __ndisc_fill_addr_option -EXPORT_SYMBOL_GPL vmlinux 0xa98c72b6 edac_mc_handle_error +EXPORT_SYMBOL_GPL vmlinux 0xa95ed23b ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xa961e0e0 usb_get_role_switch_default_mode +EXPORT_SYMBOL_GPL vmlinux 0xa97bee5e fat_detach +EXPORT_SYMBOL_GPL vmlinux 0xa9810fdf usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xa988d987 blk_trace_setup EXPORT_SYMBOL_GPL vmlinux 0xa99b8e70 __SCK__tp_func_xdp_exception -EXPORT_SYMBOL_GPL vmlinux 0xa99cf258 blk_update_request EXPORT_SYMBOL_GPL vmlinux 0xa99ef899 devlink_fmsg_bool_pair_put -EXPORT_SYMBOL_GPL vmlinux 0xa9a6a5b0 switchdev_handle_port_obj_add -EXPORT_SYMBOL_GPL vmlinux 0xa9abb437 mbox_chan_txdone -EXPORT_SYMBOL_GPL vmlinux 0xa9dae6ca usb_get_from_anchor -EXPORT_SYMBOL_GPL vmlinux 0xa9e1665d mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9a2ece0 __fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa9abeddf component_master_add_with_match +EXPORT_SYMBOL_GPL vmlinux 0xa9af584b vp_modern_get_status +EXPORT_SYMBOL_GPL vmlinux 0xa9b6cec1 acpi_spi_count_resources +EXPORT_SYMBOL_GPL vmlinux 0xa9ba1bb5 bpf_map_inc_not_zero +EXPORT_SYMBOL_GPL vmlinux 0xa9c1b98b cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xa9e30355 __traceiter_rpm_suspend EXPORT_SYMBOL_GPL vmlinux 0xa9ebab9b usb_unpoison_anchored_urbs -EXPORT_SYMBOL_GPL vmlinux 0xa9f3aa0b dev_pm_set_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0xa9f3c5e3 tpm1_do_selftest EXPORT_SYMBOL_GPL vmlinux 0xa9f89fa9 key_type_encrypted -EXPORT_SYMBOL_GPL vmlinux 0xa9ffa3a6 phy_save_page -EXPORT_SYMBOL_GPL vmlinux 0xaa0e8d7f page_cache_async_ra -EXPORT_SYMBOL_GPL vmlinux 0xaa11d66e vcap_debugfs +EXPORT_SYMBOL_GPL vmlinux 0xaa04b39a spi_mem_dirmap_create +EXPORT_SYMBOL_GPL vmlinux 0xaa121539 dev_pm_qos_add_notifier EXPORT_SYMBOL_GPL vmlinux 0xaa29bcf4 list_lru_count_node -EXPORT_SYMBOL_GPL vmlinux 0xaa4b9d5e hvc_alloc -EXPORT_SYMBOL_GPL vmlinux 0xaa4ef1eb devm_phy_destroy -EXPORT_SYMBOL_GPL vmlinux 0xaa5ec3e9 i2c_new_dummy_device +EXPORT_SYMBOL_GPL vmlinux 0xaa2b7cfe crypto_register_akcipher +EXPORT_SYMBOL_GPL vmlinux 0xaa2cff59 perf_aux_output_end +EXPORT_SYMBOL_GPL vmlinux 0xaa3d6357 pm_clk_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa625231 dev_pm_opp_of_add_table_indexed EXPORT_SYMBOL_GPL vmlinux 0xaa6a50f9 __static_key_deferred_flush -EXPORT_SYMBOL_GPL vmlinux 0xaa6e19ca usb_submit_urb -EXPORT_SYMBOL_GPL vmlinux 0xaa779792 led_trigger_register_simple -EXPORT_SYMBOL_GPL vmlinux 0xaaa60364 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0xaa6b1669 blk_queue_can_use_dma_map_merging +EXPORT_SYMBOL_GPL vmlinux 0xaa6b7ce8 nvmem_add_cell_table +EXPORT_SYMBOL_GPL vmlinux 0xaa806eb7 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xaaa612ce ata_bmdma_port_start32 EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaaacc298 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0xaab44e05 devm_gpiod_get_optional EXPORT_SYMBOL_GPL vmlinux 0xaab9c421 clk_multiplier_ops EXPORT_SYMBOL_GPL vmlinux 0xaaba7cf1 __tracepoint_powernv_throttle -EXPORT_SYMBOL_GPL vmlinux 0xaac68c13 __regmap_init -EXPORT_SYMBOL_GPL vmlinux 0xaad54d13 inet_csk_listen_stop -EXPORT_SYMBOL_GPL vmlinux 0xaae9d74b cpufreq_freq_attr_scaling_boost_freqs -EXPORT_SYMBOL_GPL vmlinux 0xaaed0d97 skb_splice_bits -EXPORT_SYMBOL_GPL vmlinux 0xaaf6079d ata_sas_async_probe -EXPORT_SYMBOL_GPL vmlinux 0xab060a39 dev_attr_unload_heads -EXPORT_SYMBOL_GPL vmlinux 0xab083efe screen_pos -EXPORT_SYMBOL_GPL vmlinux 0xab0ef737 serdev_device_break_ctl -EXPORT_SYMBOL_GPL vmlinux 0xab19ab03 regulator_get_exclusive -EXPORT_SYMBOL_GPL vmlinux 0xab2dc8eb wakeup_source_unregister -EXPORT_SYMBOL_GPL vmlinux 0xab41cea2 pci_stop_and_remove_bus_device_locked -EXPORT_SYMBOL_GPL vmlinux 0xab42161b serdev_device_write_room -EXPORT_SYMBOL_GPL vmlinux 0xab4c6501 xhci_run -EXPORT_SYMBOL_GPL vmlinux 0xab4d58e8 pstore_unregister -EXPORT_SYMBOL_GPL vmlinux 0xab5fb9bb clean_acked_data_disable +EXPORT_SYMBOL_GPL vmlinux 0xaad5b8e5 blk_crypto_register +EXPORT_SYMBOL_GPL vmlinux 0xaaf33245 serial8250_do_startup +EXPORT_SYMBOL_GPL vmlinux 0xaafac43b mbox_free_channel +EXPORT_SYMBOL_GPL vmlinux 0xab19cb21 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xab1d8781 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xab285f3e iommu_device_register +EXPORT_SYMBOL_GPL vmlinux 0xab30ff07 sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0xab32af6a irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xab48a5b5 key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0xab591246 ata_scsi_slave_config EXPORT_SYMBOL_GPL vmlinux 0xab6f0ded __tracepoint_rpm_idle -EXPORT_SYMBOL_GPL vmlinux 0xab89704e __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0xab8160d4 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xab95964e backing_file_real_path EXPORT_SYMBOL_GPL vmlinux 0xab95daab btree_remove -EXPORT_SYMBOL_GPL vmlinux 0xabacf2e7 pci_find_vsec_capability -EXPORT_SYMBOL_GPL vmlinux 0xabbee250 devlink_port_attrs_set +EXPORT_SYMBOL_GPL vmlinux 0xab9607a3 __irq_domain_alloc_irqs +EXPORT_SYMBOL_GPL vmlinux 0xabab1a70 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xabad5883 vfs_test_lock EXPORT_SYMBOL_GPL vmlinux 0xabc640f3 list_lru_isolate +EXPORT_SYMBOL_GPL vmlinux 0xabc68c50 fwnode_count_parents EXPORT_SYMBOL_GPL vmlinux 0xabc6e9e4 pm_report_max_hw_sleep -EXPORT_SYMBOL_GPL vmlinux 0xabcc0a39 of_hwspin_lock_get_id -EXPORT_SYMBOL_GPL vmlinux 0xabd8946e __rio_local_write_config_8 -EXPORT_SYMBOL_GPL vmlinux 0xabdfcadd device_set_wakeup_enable -EXPORT_SYMBOL_GPL vmlinux 0xabe4dab2 debugfs_attr_write_signed -EXPORT_SYMBOL_GPL vmlinux 0xabefe927 led_trigger_set_default -EXPORT_SYMBOL_GPL vmlinux 0xac0c8aba pinctrl_lookup_state -EXPORT_SYMBOL_GPL vmlinux 0xac10beb9 ata_pci_bmdma_prepare_host -EXPORT_SYMBOL_GPL vmlinux 0xac19e124 nd_cmd_out_size -EXPORT_SYMBOL_GPL vmlinux 0xac2645f1 xfrm_audit_state_notfound_simple -EXPORT_SYMBOL_GPL vmlinux 0xac3135f2 genphy_c45_pma_baset1_read_master_slave -EXPORT_SYMBOL_GPL vmlinux 0xac43e134 bpf_trace_run1 -EXPORT_SYMBOL_GPL vmlinux 0xac5700f2 spi_split_transfers_maxsize -EXPORT_SYMBOL_GPL vmlinux 0xac69d296 devm_thermal_of_zone_unregister -EXPORT_SYMBOL_GPL vmlinux 0xac6bd164 of_genpd_add_provider_simple -EXPORT_SYMBOL_GPL vmlinux 0xac78c8af usb_hcd_is_primary_hcd -EXPORT_SYMBOL_GPL vmlinux 0xac8f7089 skb_gso_validate_network_len -EXPORT_SYMBOL_GPL vmlinux 0xac92c43d tpm_is_tpm2 -EXPORT_SYMBOL_GPL vmlinux 0xac9d89bc pm_generic_thaw_early -EXPORT_SYMBOL_GPL vmlinux 0xaca10acd dst_blackhole_mtu -EXPORT_SYMBOL_GPL vmlinux 0xacb283f0 device_del +EXPORT_SYMBOL_GPL vmlinux 0xabc81e7a usb_of_get_interface_node +EXPORT_SYMBOL_GPL vmlinux 0xabcba782 pci_find_doe_mailbox +EXPORT_SYMBOL_GPL vmlinux 0xabe786fe ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xabfdc800 devm_init_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xac11b11c device_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0xac19223e cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0xac297bca irq_create_mapping_affinity +EXPORT_SYMBOL_GPL vmlinux 0xac2b27ac thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0xac337115 of_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0xac3b5fdd ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xac3b77d1 xdp_master_redirect +EXPORT_SYMBOL_GPL vmlinux 0xac47f43e gpiochip_add_pingroup_range +EXPORT_SYMBOL_GPL vmlinux 0xac49adbd dev_pm_opp_of_add_table +EXPORT_SYMBOL_GPL vmlinux 0xac5f3755 dmaengine_desc_set_metadata_len +EXPORT_SYMBOL_GPL vmlinux 0xac6b1c66 regmap_mmio_attach_clk +EXPORT_SYMBOL_GPL vmlinux 0xac6da0e3 of_get_pci_domain_nr +EXPORT_SYMBOL_GPL vmlinux 0xac85d9a1 crypto_register_templates +EXPORT_SYMBOL_GPL vmlinux 0xacb25614 pci_hp_del EXPORT_SYMBOL_GPL vmlinux 0xacb4d88c clk_rate_exclusive_put -EXPORT_SYMBOL_GPL vmlinux 0xacbd51dc icc_node_del -EXPORT_SYMBOL_GPL vmlinux 0xacca7a5b rdev_get_id -EXPORT_SYMBOL_GPL vmlinux 0xaccca6bc spi_unregister_controller -EXPORT_SYMBOL_GPL vmlinux 0xacfd2d5b iommu_register_device_fault_handler -EXPORT_SYMBOL_GPL vmlinux 0xad0ba732 acct_bioset_exit -EXPORT_SYMBOL_GPL vmlinux 0xad1652db espintcp_push_skb -EXPORT_SYMBOL_GPL vmlinux 0xad1b44d2 ohci_init_driver -EXPORT_SYMBOL_GPL vmlinux 0xad22a66e usb_put_hcd -EXPORT_SYMBOL_GPL vmlinux 0xad34287e fscrypt_set_bio_crypt_ctx_bh +EXPORT_SYMBOL_GPL vmlinux 0xacbce090 aead_init_geniv +EXPORT_SYMBOL_GPL vmlinux 0xacc9894f pci_dev_trylock +EXPORT_SYMBOL_GPL vmlinux 0xacf503e2 nvmem_layout_get_match_data +EXPORT_SYMBOL_GPL vmlinux 0xad000a06 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0xad017b18 thermal_zone_get_trip +EXPORT_SYMBOL_GPL vmlinux 0xad072afe regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xad0e7261 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xad1782ed usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xad19264c fscrypt_context_for_new_inode +EXPORT_SYMBOL_GPL vmlinux 0xad29d93c nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0xad34784f device_for_each_child EXPORT_SYMBOL_GPL vmlinux 0xad39ef9b synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xad407586 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0xad41a510 platform_add_devices EXPORT_SYMBOL_GPL vmlinux 0xad42dff8 __SCK__tp_func_tcp_bad_csum EXPORT_SYMBOL_GPL vmlinux 0xad4e6259 remove_cpu -EXPORT_SYMBOL_GPL vmlinux 0xad591cbf pinctrl_pm_select_sleep_state -EXPORT_SYMBOL_GPL vmlinux 0xad617426 devl_trylock +EXPORT_SYMBOL_GPL vmlinux 0xad5948ea cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0xad644f44 relay_close EXPORT_SYMBOL_GPL vmlinux 0xad645234 register_switchdev_notifier +EXPORT_SYMBOL_GPL vmlinux 0xad656bc8 usb_debug_root EXPORT_SYMBOL_GPL vmlinux 0xad76a3f0 __SCK__tp_func_neigh_update_done -EXPORT_SYMBOL_GPL vmlinux 0xad7c6086 ncsi_register_dev -EXPORT_SYMBOL_GPL vmlinux 0xad85f979 devm_of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0xad850514 devm_thermal_of_zone_unregister +EXPORT_SYMBOL_GPL vmlinux 0xad92bdf4 dev_pm_clear_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0xad94a751 devm_register_power_off_handler EXPORT_SYMBOL_GPL vmlinux 0xad9fb247 lwtunnel_valid_encap_type_attr EXPORT_SYMBOL_GPL vmlinux 0xada38766 dst_cache_destroy -EXPORT_SYMBOL_GPL vmlinux 0xada86e38 crypto_grab_shash EXPORT_SYMBOL_GPL vmlinux 0xadb6cc77 srcu_notifier_call_chain -EXPORT_SYMBOL_GPL vmlinux 0xadc2703d fwnode_create_software_node -EXPORT_SYMBOL_GPL vmlinux 0xadc3656c pci_pasid_features -EXPORT_SYMBOL_GPL vmlinux 0xadc3cb89 gpiod_get_raw_value -EXPORT_SYMBOL_GPL vmlinux 0xadd33da6 nop_posix_acl_default -EXPORT_SYMBOL_GPL vmlinux 0xadd65894 gpiochip_irqchip_add_domain -EXPORT_SYMBOL_GPL vmlinux 0xadd6b6a7 balloon_page_list_enqueue -EXPORT_SYMBOL_GPL vmlinux 0xaddc7952 perf_pmu_migrate_context -EXPORT_SYMBOL_GPL vmlinux 0xae00eff1 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xadbea30a pinctrl_utils_free_map +EXPORT_SYMBOL_GPL vmlinux 0xadc0fecc device_store_int +EXPORT_SYMBOL_GPL vmlinux 0xadc53a3a pinmux_generic_get_function_name +EXPORT_SYMBOL_GPL vmlinux 0xadc657e7 perf_event_pause +EXPORT_SYMBOL_GPL vmlinux 0xade28e54 syscon_regmap_lookup_by_phandle_optional +EXPORT_SYMBOL_GPL vmlinux 0xadf37feb irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0xadfa53f2 wm8400_reset_codec_reg_cache EXPORT_SYMBOL_GPL vmlinux 0xae01217a mpi_write_to_sgl EXPORT_SYMBOL_GPL vmlinux 0xae03948a put_iova_domain -EXPORT_SYMBOL_GPL vmlinux 0xae05630c phy_pm_runtime_get -EXPORT_SYMBOL_GPL vmlinux 0xae06ee24 pwm_apply_state -EXPORT_SYMBOL_GPL vmlinux 0xae0e21d1 of_icc_get_by_index +EXPORT_SYMBOL_GPL vmlinux 0xae06a865 vcap_alloc_rule +EXPORT_SYMBOL_GPL vmlinux 0xae06eade pci_pasid_features EXPORT_SYMBOL_GPL vmlinux 0xae1051b0 net_cls_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0xae12f17d divider_determine_rate -EXPORT_SYMBOL_GPL vmlinux 0xae1d1fc2 phy_pm_runtime_forbid -EXPORT_SYMBOL_GPL vmlinux 0xae2a17c4 led_classdev_notify_brightness_hw_changed -EXPORT_SYMBOL_GPL vmlinux 0xae3871d5 fsverity_ioctl_enable +EXPORT_SYMBOL_GPL vmlinux 0xae110568 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xae1ea14d switchdev_port_attr_set +EXPORT_SYMBOL_GPL vmlinux 0xae20eeb1 serdev_device_set_flow_control EXPORT_SYMBOL_GPL vmlinux 0xae39f80e dst_cache_init -EXPORT_SYMBOL_GPL vmlinux 0xae57ba7d sdio_writesb -EXPORT_SYMBOL_GPL vmlinux 0xae649845 fb_sys_read +EXPORT_SYMBOL_GPL vmlinux 0xae4acdc2 bsg_job_put +EXPORT_SYMBOL_GPL vmlinux 0xae4da6d2 da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0xae613999 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xae6147ab xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0xae64f324 phy_configure EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock -EXPORT_SYMBOL_GPL vmlinux 0xae736769 create_signature +EXPORT_SYMBOL_GPL vmlinux 0xae74c7cd mbox_request_channel_byname EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp -EXPORT_SYMBOL_GPL vmlinux 0xae9971eb of_phy_put -EXPORT_SYMBOL_GPL vmlinux 0xae9ab672 pm_clk_create -EXPORT_SYMBOL_GPL vmlinux 0xae9bb464 usb_set_configuration -EXPORT_SYMBOL_GPL vmlinux 0xaecb2b43 rtc_class_open -EXPORT_SYMBOL_GPL vmlinux 0xaeda3e0c ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0xae88aa7e nf_ip_route +EXPORT_SYMBOL_GPL vmlinux 0xae96c45d tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xaea4ca07 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xaeb1f3e7 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xaeb705a1 of_hwspin_lock_get_id_byname +EXPORT_SYMBOL_GPL vmlinux 0xaebfb8f8 msg_zerocopy_put_abort +EXPORT_SYMBOL_GPL vmlinux 0xaedf83e3 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xaf027c0e fuse_do_open EXPORT_SYMBOL_GPL vmlinux 0xaf076aec nd_fletcher64 -EXPORT_SYMBOL_GPL vmlinux 0xaf10f523 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL vmlinux 0xaf0d9c74 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xaf14650e crypto_remove_spawns EXPORT_SYMBOL_GPL vmlinux 0xaf16a752 sbitmap_queue_init_node +EXPORT_SYMBOL_GPL vmlinux 0xaf175229 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xaf1b4e8f l3mdev_update_flow +EXPORT_SYMBOL_GPL vmlinux 0xaf1d7782 blk_freeze_queue_start +EXPORT_SYMBOL_GPL vmlinux 0xaf2905ac sysfs_create_groups EXPORT_SYMBOL_GPL vmlinux 0xaf348da7 cpu_pm_exit -EXPORT_SYMBOL_GPL vmlinux 0xaf36f54a skb_morph EXPORT_SYMBOL_GPL vmlinux 0xaf3a44e9 __SCK__tp_func_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0xaf3e2d36 irq_get_default_host EXPORT_SYMBOL_GPL vmlinux 0xaf4014ff usb_amd_quirk_pll_check -EXPORT_SYMBOL_GPL vmlinux 0xaf43cc1c clk_gate_is_enabled -EXPORT_SYMBOL_GPL vmlinux 0xaf56da11 iomap_file_unshare -EXPORT_SYMBOL_GPL vmlinux 0xaf5969cd nvdimm_badblocks_populate -EXPORT_SYMBOL_GPL vmlinux 0xaf5dcf17 perf_aux_output_begin -EXPORT_SYMBOL_GPL vmlinux 0xaf64214c acpi_dev_get_resources +EXPORT_SYMBOL_GPL vmlinux 0xaf438210 fwnode_get_next_parent +EXPORT_SYMBOL_GPL vmlinux 0xaf481390 cdrom_read_tocentry +EXPORT_SYMBOL_GPL vmlinux 0xaf48325b fib_nh_common_init +EXPORT_SYMBOL_GPL vmlinux 0xaf63209c put_io_context EXPORT_SYMBOL_GPL vmlinux 0xaf6d38c0 vcap_mod_rule -EXPORT_SYMBOL_GPL vmlinux 0xaf6ee054 input_class +EXPORT_SYMBOL_GPL vmlinux 0xaf761c32 ata_std_bios_param EXPORT_SYMBOL_GPL vmlinux 0xaf793668 __alloc_percpu_gfp EXPORT_SYMBOL_GPL vmlinux 0xaf7ad94c __SCK__tp_func_ipi_send_cpumask +EXPORT_SYMBOL_GPL vmlinux 0xaf7c3f4d driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xaf810c8d devm_of_icc_bulk_get EXPORT_SYMBOL_GPL vmlinux 0xaf852873 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xafa6721f tpm_transmit_cmd +EXPORT_SYMBOL_GPL vmlinux 0xafb0e161 class_for_each_device EXPORT_SYMBOL_GPL vmlinux 0xafb1d18c blocking_notifier_call_chain_robust -EXPORT_SYMBOL_GPL vmlinux 0xafbd0768 uart_try_toggle_sysrq +EXPORT_SYMBOL_GPL vmlinux 0xafd75f9e iommu_dev_disable_feature EXPORT_SYMBOL_GPL vmlinux 0xafddd545 ata_id_c_string -EXPORT_SYMBOL_GPL vmlinux 0xafdf2d7b pinctrl_dev_get_drvdata -EXPORT_SYMBOL_GPL vmlinux 0xafe26d32 lwtunnel_build_state -EXPORT_SYMBOL_GPL vmlinux 0xafe4e515 irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0xafe109df receive_fd +EXPORT_SYMBOL_GPL vmlinux 0xafe55841 thermal_zone_get_num_trips EXPORT_SYMBOL_GPL vmlinux 0xafeb58c1 __SCK__tp_func_io_page_fault -EXPORT_SYMBOL_GPL vmlinux 0xafee61e9 ip6_input -EXPORT_SYMBOL_GPL vmlinux 0xaff89931 pinctrl_generic_get_group_pins -EXPORT_SYMBOL_GPL vmlinux 0xb00835ac skb_consume_udp -EXPORT_SYMBOL_GPL vmlinux 0xb00db547 bio_associate_blkg_from_css -EXPORT_SYMBOL_GPL vmlinux 0xb014a02d pci_iomap_wc_range -EXPORT_SYMBOL_GPL vmlinux 0xb01725d0 dmaengine_desc_get_metadata_ptr -EXPORT_SYMBOL_GPL vmlinux 0xb030d272 sysfs_unmerge_group -EXPORT_SYMBOL_GPL vmlinux 0xb031bccd mmc_send_tuning +EXPORT_SYMBOL_GPL vmlinux 0xafff7137 nvdimm_volatile_region_create +EXPORT_SYMBOL_GPL vmlinux 0xb00d333a aead_exit_geniv +EXPORT_SYMBOL_GPL vmlinux 0xb021405a acpi_dev_add_driver_gpios +EXPORT_SYMBOL_GPL vmlinux 0xb029ae06 of_dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0xb041dc92 devm_fwnode_pwm_get EXPORT_SYMBOL_GPL vmlinux 0xb049a294 __SCK__tp_func_pelt_irq_tp -EXPORT_SYMBOL_GPL vmlinux 0xb05a43fc input_ff_destroy -EXPORT_SYMBOL_GPL vmlinux 0xb068cd96 scsi_internal_device_unblock_nowait +EXPORT_SYMBOL_GPL vmlinux 0xb05c69dc __traceiter_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0xb05cb70b key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xb05f61be __traceiter_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0xb0663661 dw_pcie_host_deinit +EXPORT_SYMBOL_GPL vmlinux 0xb066588a class_register +EXPORT_SYMBOL_GPL vmlinux 0xb06d532c i2c_dw_adjust_bus_speed +EXPORT_SYMBOL_GPL vmlinux 0xb06e88a4 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xb07188f5 rio_mport_write_config_8 EXPORT_SYMBOL_GPL vmlinux 0xb0747ed2 rcu_cpu_stall_suppress EXPORT_SYMBOL_GPL vmlinux 0xb077e70a clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0xb07b7bf5 pci_disable_ats EXPORT_SYMBOL_GPL vmlinux 0xb0802f90 __tracepoint_sched_overutilized_tp -EXPORT_SYMBOL_GPL vmlinux 0xb08f4e0a fscrypt_show_test_dummy_encryption -EXPORT_SYMBOL_GPL vmlinux 0xb0a376f4 virtio_device_freeze -EXPORT_SYMBOL_GPL vmlinux 0xb0ab9194 ehci_setup -EXPORT_SYMBOL_GPL vmlinux 0xb0ac5382 pm_generic_resume_noirq -EXPORT_SYMBOL_GPL vmlinux 0xb0b1fdcd ata_pci_device_do_suspend -EXPORT_SYMBOL_GPL vmlinux 0xb0b28e69 regulator_set_active_discharge_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb08108e9 crypto_alloc_akcipher +EXPORT_SYMBOL_GPL vmlinux 0xb08319d1 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xb0b48610 pinctrl_pm_select_sleep_state EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset -EXPORT_SYMBOL_GPL vmlinux 0xb0c53c3e switchdev_handle_port_obj_del EXPORT_SYMBOL_GPL vmlinux 0xb0d1656c gpio_free_array -EXPORT_SYMBOL_GPL vmlinux 0xb0dd19e9 pwm_put -EXPORT_SYMBOL_GPL vmlinux 0xb0e3fdb7 usb_unlink_urb -EXPORT_SYMBOL_GPL vmlinux 0xb0e68418 bus_register_notifier EXPORT_SYMBOL_GPL vmlinux 0xb0e7ab1f __traceiter_console -EXPORT_SYMBOL_GPL vmlinux 0xb0ef75b5 fwnode_graph_get_endpoint_by_id -EXPORT_SYMBOL_GPL vmlinux 0xb0f3ef62 __fsverity_prepare_setattr -EXPORT_SYMBOL_GPL vmlinux 0xb0f78e6d invalidate_inode_pages2 -EXPORT_SYMBOL_GPL vmlinux 0xb109b274 __clk_get_hw +EXPORT_SYMBOL_GPL vmlinux 0xb0f1eb6f bpf_trace_run11 +EXPORT_SYMBOL_GPL vmlinux 0xb0f3a755 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xb10d1d6b acpi_dev_for_each_child EXPORT_SYMBOL_GPL vmlinux 0xb10d964d devlink_fmsg_pair_nest_end -EXPORT_SYMBOL_GPL vmlinux 0xb11a5fb0 usb_hcd_amd_remote_wakeup_quirk -EXPORT_SYMBOL_GPL vmlinux 0xb11c764a regulator_set_current_limit_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb1156139 dm_disk EXPORT_SYMBOL_GPL vmlinux 0xb11d9000 tty_dev_name_to_number -EXPORT_SYMBOL_GPL vmlinux 0xb1342dde iommu_set_fault_handler -EXPORT_SYMBOL_GPL vmlinux 0xb135951f pcie_aspm_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb11f3238 devm_led_classdev_register_ext +EXPORT_SYMBOL_GPL vmlinux 0xb1222c28 usb_hc_died EXPORT_SYMBOL_GPL vmlinux 0xb13837ce vcap_rule_add_key_u48 -EXPORT_SYMBOL_GPL vmlinux 0xb14280fb led_blink_set -EXPORT_SYMBOL_GPL vmlinux 0xb1492fdc virtqueue_get_used_addr -EXPORT_SYMBOL_GPL vmlinux 0xb149d042 exportfs_encode_fh -EXPORT_SYMBOL_GPL vmlinux 0xb15ef51f regmap_add_irq_chip_fwnode EXPORT_SYMBOL_GPL vmlinux 0xb1647fc2 devlink_info_version_running_put -EXPORT_SYMBOL_GPL vmlinux 0xb16e7966 devres_add -EXPORT_SYMBOL_GPL vmlinux 0xb178cd0a rio_release_inb_dbell -EXPORT_SYMBOL_GPL vmlinux 0xb199c9a8 usb_control_msg_send +EXPORT_SYMBOL_GPL vmlinux 0xb17180c7 handle_fasteoi_nmi +EXPORT_SYMBOL_GPL vmlinux 0xb179c511 sdio_signal_irq +EXPORT_SYMBOL_GPL vmlinux 0xb181e5ec led_trigger_read EXPORT_SYMBOL_GPL vmlinux 0xb19b727f riscv_cbom_block_size -EXPORT_SYMBOL_GPL vmlinux 0xb19be752 platform_bus -EXPORT_SYMBOL_GPL vmlinux 0xb19d017a crypto_register_algs -EXPORT_SYMBOL_GPL vmlinux 0xb1b2f485 iomap_dio_bio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xb19e9ff5 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb19f8c8b ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xb1a80393 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xb1ac6b30 vp_modern_get_driver_features +EXPORT_SYMBOL_GPL vmlinux 0xb1b5d97b dev_attr_em_message_type EXPORT_SYMBOL_GPL vmlinux 0xb1baa71a devlink_linecard_provision_fail EXPORT_SYMBOL_GPL vmlinux 0xb1bed25d dpm_resume_start -EXPORT_SYMBOL_GPL vmlinux 0xb1cef298 devm_phy_optional_get -EXPORT_SYMBOL_GPL vmlinux 0xb1d0b054 crypto_register_rng -EXPORT_SYMBOL_GPL vmlinux 0xb1d1e527 cpuidle_register_driver -EXPORT_SYMBOL_GPL vmlinux 0xb1d49a70 rio_mport_write_config_32 -EXPORT_SYMBOL_GPL vmlinux 0xb1de5781 ata_sff_exec_command EXPORT_SYMBOL_GPL vmlinux 0xb1dfecea power_supply_battery_info_properties_size EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs -EXPORT_SYMBOL_GPL vmlinux 0xb1e3b1e4 tps65912_device_exit -EXPORT_SYMBOL_GPL vmlinux 0xb1e9a926 mmu_notifier_put -EXPORT_SYMBOL_GPL vmlinux 0xb1ef1dbe component_bind_all +EXPORT_SYMBOL_GPL vmlinux 0xb1e45ec5 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xb1fb7fbe serial8250_rpm_get_tx EXPORT_SYMBOL_GPL vmlinux 0xb1fc1782 pci_speed_string -EXPORT_SYMBOL_GPL vmlinux 0xb20298cf elv_register -EXPORT_SYMBOL_GPL vmlinux 0xb20ea869 serial8250_init_port -EXPORT_SYMBOL_GPL vmlinux 0xb21ddebf mmc_get_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0xb20c35de tty_kclose EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert -EXPORT_SYMBOL_GPL vmlinux 0xb2273304 debugfs_write_file_bool -EXPORT_SYMBOL_GPL vmlinux 0xb234f53b screen_glyph_unicode +EXPORT_SYMBOL_GPL vmlinux 0xb22d10e9 dw_pcie_read_dbi +EXPORT_SYMBOL_GPL vmlinux 0xb2320102 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xb23a3c3f clk_mux_ro_ops EXPORT_SYMBOL_GPL vmlinux 0xb23b7691 start_poll_synchronize_rcu_full EXPORT_SYMBOL_GPL vmlinux 0xb2405efc secure_tcp_seq -EXPORT_SYMBOL_GPL vmlinux 0xb24a984e device_property_read_u16_array -EXPORT_SYMBOL_GPL vmlinux 0xb255acfc fscrypt_set_bio_crypt_ctx +EXPORT_SYMBOL_GPL vmlinux 0xb2427dea set_capacity_and_notify +EXPORT_SYMBOL_GPL vmlinux 0xb2433b20 rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xb2443f60 pwm_apply_state +EXPORT_SYMBOL_GPL vmlinux 0xb2475807 dm_audit_log_ti +EXPORT_SYMBOL_GPL vmlinux 0xb252b16b gpio_to_desc EXPORT_SYMBOL_GPL vmlinux 0xb256be16 efivar_is_available +EXPORT_SYMBOL_GPL vmlinux 0xb2582067 nvdimm_has_cache EXPORT_SYMBOL_GPL vmlinux 0xb259551e hwrng_register -EXPORT_SYMBOL_GPL vmlinux 0xb25c4c3b rdev_get_dev -EXPORT_SYMBOL_GPL vmlinux 0xb265018d devm_clk_hw_register_fixed_factor_parent_hw -EXPORT_SYMBOL_GPL vmlinux 0xb265a8ec tpm_pm_suspend EXPORT_SYMBOL_GPL vmlinux 0xb26a1add elfcorehdr_addr -EXPORT_SYMBOL_GPL vmlinux 0xb26dce74 pci_pri_supported -EXPORT_SYMBOL_GPL vmlinux 0xb2749f5c pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xb275c954 __fscrypt_prepare_setattr +EXPORT_SYMBOL_GPL vmlinux 0xb27fd975 handle_mm_fault +EXPORT_SYMBOL_GPL vmlinux 0xb28738c2 devm_extcon_dev_free +EXPORT_SYMBOL_GPL vmlinux 0xb287e53d regmap_add_irq_chip EXPORT_SYMBOL_GPL vmlinux 0xb29533ee zs_malloc EXPORT_SYMBOL_GPL vmlinux 0xb2a1a56f __wake_up_locked_sync_key EXPORT_SYMBOL_GPL vmlinux 0xb2a6f197 bpf_fentry_test1 -EXPORT_SYMBOL_GPL vmlinux 0xb2af37b5 devlink_port_attrs_pci_vf_set +EXPORT_SYMBOL_GPL vmlinux 0xb2a84ca4 ima_file_hash +EXPORT_SYMBOL_GPL vmlinux 0xb2a96393 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xb2af714b devm_usb_get_phy_by_phandle EXPORT_SYMBOL_GPL vmlinux 0xb2c1732e rcu_gp_set_torture_wait +EXPORT_SYMBOL_GPL vmlinux 0xb2c421de of_property_read_variable_u64_array +EXPORT_SYMBOL_GPL vmlinux 0xb2e6d485 task_cls_state EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem -EXPORT_SYMBOL_GPL vmlinux 0xb2f571db ipv6_find_tlv -EXPORT_SYMBOL_GPL vmlinux 0xb2f6a31d nf_ip6_check_hbh_len +EXPORT_SYMBOL_GPL vmlinux 0xb2ed3eed rz_mtu3_disable EXPORT_SYMBOL_GPL vmlinux 0xb2fa093e blk_mq_map_queues EXPORT_SYMBOL_GPL vmlinux 0xb307c909 devlink_fmsg_u64_pair_put +EXPORT_SYMBOL_GPL vmlinux 0xb312d5df hwspin_lock_get_id EXPORT_SYMBOL_GPL vmlinux 0xb31a6e5c list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0xb32151ad kernel_read_file EXPORT_SYMBOL_GPL vmlinux 0xb321e718 srcu_barrier -EXPORT_SYMBOL_GPL vmlinux 0xb331b442 em_pd_get -EXPORT_SYMBOL_GPL vmlinux 0xb363b791 hrtimer_init_sleeper -EXPORT_SYMBOL_GPL vmlinux 0xb36e4b59 regulator_list_voltage_table -EXPORT_SYMBOL_GPL vmlinux 0xb376c1e6 blk_mq_freeze_queue_wait_timeout -EXPORT_SYMBOL_GPL vmlinux 0xb3865054 iommu_fwspec_add_ids -EXPORT_SYMBOL_GPL vmlinux 0xb386ebdb gpiod_get_value_cansleep -EXPORT_SYMBOL_GPL vmlinux 0xb38c0e58 dm_table_set_type -EXPORT_SYMBOL_GPL vmlinux 0xb3af9c7a inet6_hash -EXPORT_SYMBOL_GPL vmlinux 0xb3ba1c59 iommu_report_device_fault -EXPORT_SYMBOL_GPL vmlinux 0xb3ca243c dev_set_name -EXPORT_SYMBOL_GPL vmlinux 0xb3cc4c66 regmap_fields_read -EXPORT_SYMBOL_GPL vmlinux 0xb3d06b3a ethtool_set_ethtool_phy_ops -EXPORT_SYMBOL_GPL vmlinux 0xb3d0f0ac regulator_set_voltage_sel_pickable_regmap -EXPORT_SYMBOL_GPL vmlinux 0xb3d8831c scsi_host_block -EXPORT_SYMBOL_GPL vmlinux 0xb3dc66d4 pm_relax -EXPORT_SYMBOL_GPL vmlinux 0xb3e0f6e2 virtio_config_changed -EXPORT_SYMBOL_GPL vmlinux 0xb3e3a7a9 bus_find_device -EXPORT_SYMBOL_GPL vmlinux 0xb3e51f2e of_prop_next_string -EXPORT_SYMBOL_GPL vmlinux 0xb3e9a50b ata_bmdma_irq_clear -EXPORT_SYMBOL_GPL vmlinux 0xb3ed1a6a acpi_dma_controller_free -EXPORT_SYMBOL_GPL vmlinux 0xb3f51655 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0xb32441ca alarmtimer_get_rtcdev +EXPORT_SYMBOL_GPL vmlinux 0xb3319aa7 dma_need_sync +EXPORT_SYMBOL_GPL vmlinux 0xb3358c2a devm_reset_control_array_get +EXPORT_SYMBOL_GPL vmlinux 0xb370eff5 pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0xb3753189 peernet2id_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb37a8087 fsverity_verify_blocks +EXPORT_SYMBOL_GPL vmlinux 0xb38ee68d dt_init_idle_driver +EXPORT_SYMBOL_GPL vmlinux 0xb392a244 tcp_get_syncookie_mss +EXPORT_SYMBOL_GPL vmlinux 0xb399a26a scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL vmlinux 0xb39a3b7e thermal_zone_device +EXPORT_SYMBOL_GPL vmlinux 0xb3a1d6d4 dw_pcie_ep_init_complete +EXPORT_SYMBOL_GPL vmlinux 0xb3a3275e acpi_bind_one +EXPORT_SYMBOL_GPL vmlinux 0xb3d3b35e vp_modern_probe +EXPORT_SYMBOL_GPL vmlinux 0xb3e8e39b kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0xb3efb36d bpf_prog_sub +EXPORT_SYMBOL_GPL vmlinux 0xb3efe634 gpiod_set_transitory EXPORT_SYMBOL_GPL vmlinux 0xb3fd8fe6 kernel_read_file_from_path -EXPORT_SYMBOL_GPL vmlinux 0xb40430e3 stmpe811_adc_common_init -EXPORT_SYMBOL_GPL vmlinux 0xb407426e platform_device_add_data -EXPORT_SYMBOL_GPL vmlinux 0xb409a264 __traceiter_pelt_se_tp -EXPORT_SYMBOL_GPL vmlinux 0xb40a6927 sdio_get_host_pm_caps -EXPORT_SYMBOL_GPL vmlinux 0xb40c719c shash_ahash_digest -EXPORT_SYMBOL_GPL vmlinux 0xb40d56d1 regmap_field_free -EXPORT_SYMBOL_GPL vmlinux 0xb40f568d clk_hw_get_parent -EXPORT_SYMBOL_GPL vmlinux 0xb411e4d0 component_compare_of -EXPORT_SYMBOL_GPL vmlinux 0xb4149bca nfct_btf_struct_access -EXPORT_SYMBOL_GPL vmlinux 0xb423c0ad dev_attr_link_power_management_policy -EXPORT_SYMBOL_GPL vmlinux 0xb4328e67 blk_execute_rq_nowait -EXPORT_SYMBOL_GPL vmlinux 0xb43b55b8 failover_unregister -EXPORT_SYMBOL_GPL vmlinux 0xb43d1023 blk_mq_freeze_queue +EXPORT_SYMBOL_GPL vmlinux 0xb403e796 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xb42c7f7b usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xb43a4461 mbox_client_peek_data EXPORT_SYMBOL_GPL vmlinux 0xb43f9365 ktime_get -EXPORT_SYMBOL_GPL vmlinux 0xb44ba367 nvdimm_to_bus EXPORT_SYMBOL_GPL vmlinux 0xb44e18ea audit_enabled -EXPORT_SYMBOL_GPL vmlinux 0xb454efbb of_console_check -EXPORT_SYMBOL_GPL vmlinux 0xb457b785 extcon_register_notifier_all -EXPORT_SYMBOL_GPL vmlinux 0xb46c8f20 vcap_tc_flower_handler_vlan_usage -EXPORT_SYMBOL_GPL vmlinux 0xb46f1124 __traceiter_pelt_cfs_tp -EXPORT_SYMBOL_GPL vmlinux 0xb47665d5 pci_cfg_access_unlock -EXPORT_SYMBOL_GPL vmlinux 0xb489f47b clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0xb44fb47c __traceiter_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0xb453669f device_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0xb45c4199 regulator_map_voltage_pickable_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xb45e753b fsnotify_destroy_mark +EXPORT_SYMBOL_GPL vmlinux 0xb474c6b1 extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb47534c2 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xb476876e spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0xb48df04b finish_rcuwait +EXPORT_SYMBOL_GPL vmlinux 0xb48ec1ed raw_hash_sk EXPORT_SYMBOL_GPL vmlinux 0xb48f0638 software_node_register -EXPORT_SYMBOL_GPL vmlinux 0xb4a82fe0 perf_report_aux_output_id +EXPORT_SYMBOL_GPL vmlinux 0xb490e991 i2c_dw_prepare_clk +EXPORT_SYMBOL_GPL vmlinux 0xb4b63159 spi_finalize_current_message EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier EXPORT_SYMBOL_GPL vmlinux 0xb4c26e3b alarm_cancel -EXPORT_SYMBOL_GPL vmlinux 0xb4c9006e gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0xb4db4506 genphy_c45_fast_retrain +EXPORT_SYMBOL_GPL vmlinux 0xb4dcac72 gpiod_set_value EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected -EXPORT_SYMBOL_GPL vmlinux 0xb4ea9d49 scsi_flush_work EXPORT_SYMBOL_GPL vmlinux 0xb4eda0da ring_buffer_event_length -EXPORT_SYMBOL_GPL vmlinux 0xb4fbe3ee pci_epc_mem_exit -EXPORT_SYMBOL_GPL vmlinux 0xb50121e8 user_read +EXPORT_SYMBOL_GPL vmlinux 0xb4f0c186 vcap_set_tc_exterr +EXPORT_SYMBOL_GPL vmlinux 0xb4fcac5d addrconf_prefix_rcv_add_addr EXPORT_SYMBOL_GPL vmlinux 0xb501b2df nd_cmd_dimm_desc -EXPORT_SYMBOL_GPL vmlinux 0xb508c74b power_supply_put_battery_info EXPORT_SYMBOL_GPL vmlinux 0xb5093dd3 console_list -EXPORT_SYMBOL_GPL vmlinux 0xb50f0044 of_pwm_xlate_with_flags EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state -EXPORT_SYMBOL_GPL vmlinux 0xb5355145 nf_checksum -EXPORT_SYMBOL_GPL vmlinux 0xb54e660b register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0xb5238b10 relay_late_setup_files +EXPORT_SYMBOL_GPL vmlinux 0xb529db7d skb_gso_validate_network_len +EXPORT_SYMBOL_GPL vmlinux 0xb532ae57 __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb53b072b iommu_present +EXPORT_SYMBOL_GPL vmlinux 0xb5503157 inet_hash_connect EXPORT_SYMBOL_GPL vmlinux 0xb55139f6 HUF_readStats -EXPORT_SYMBOL_GPL vmlinux 0xb55b6d99 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xb559d22c put_device +EXPORT_SYMBOL_GPL vmlinux 0xb55a8570 thermal_zone_get_zone_by_name EXPORT_SYMBOL_GPL vmlinux 0xb561c490 mpi_mul -EXPORT_SYMBOL_GPL vmlinux 0xb5691b94 devm_hwspin_lock_unregister EXPORT_SYMBOL_GPL vmlinux 0xb56cd594 pernet_ops_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xb56d980d switchdev_bridge_port_unoffload EXPORT_SYMBOL_GPL vmlinux 0xb570745c __SCK__tp_func_ipi_send_cpu -EXPORT_SYMBOL_GPL vmlinux 0xb57ff034 pm_genpd_remove_device -EXPORT_SYMBOL_GPL vmlinux 0xb586b511 edac_pci_free_ctl_info -EXPORT_SYMBOL_GPL vmlinux 0xb58d88b7 regulator_irq_map_event_simple -EXPORT_SYMBOL_GPL vmlinux 0xb5959aee usb_acpi_set_power_state -EXPORT_SYMBOL_GPL vmlinux 0xb59fe6ff pci_epc_write_header +EXPORT_SYMBOL_GPL vmlinux 0xb5716659 tpm_chip_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb573f098 dev_pm_opp_free_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0xb59c6754 dma_get_slave_caps +EXPORT_SYMBOL_GPL vmlinux 0xb59ecb89 ata_scsi_dma_need_drain EXPORT_SYMBOL_GPL vmlinux 0xb5a8c226 acpi_gsi_to_irq -EXPORT_SYMBOL_GPL vmlinux 0xb5b619be fb_deferred_io_cleanup -EXPORT_SYMBOL_GPL vmlinux 0xb5d0e8af pm_generic_restore_noirq -EXPORT_SYMBOL_GPL vmlinux 0xb5d7326e ip6_update_pmtu -EXPORT_SYMBOL_GPL vmlinux 0xb5dfacb1 phy_set_speed -EXPORT_SYMBOL_GPL vmlinux 0xb5fbfb25 fuse_abort_conn -EXPORT_SYMBOL_GPL vmlinux 0xb61c0a04 rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0xb5ad255f inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xb5afa356 __fscrypt_encrypt_symlink +EXPORT_SYMBOL_GPL vmlinux 0xb5b0d5a9 filemap_migrate_folio +EXPORT_SYMBOL_GPL vmlinux 0xb5c9a568 __kthread_should_park +EXPORT_SYMBOL_GPL vmlinux 0xb5d2432e crypto_unregister_akcipher +EXPORT_SYMBOL_GPL vmlinux 0xb5f4f319 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb625022b i2c_dw_validate_speed EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb62df2b8 nfnl_ct_hook EXPORT_SYMBOL_GPL vmlinux 0xb6357e53 cpuidle_enable_device -EXPORT_SYMBOL_GPL vmlinux 0xb63c0bc4 dm_internal_suspend_fast -EXPORT_SYMBOL_GPL vmlinux 0xb63c5d72 vcap_tc_flower_handler_ethaddr_usage +EXPORT_SYMBOL_GPL vmlinux 0xb638ff09 of_irq_parse_and_map_pci EXPORT_SYMBOL_GPL vmlinux 0xb6410433 mpi_addm -EXPORT_SYMBOL_GPL vmlinux 0xb643a5b2 crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0xb6556af2 sock_diag_put_meminfo EXPORT_SYMBOL_GPL vmlinux 0xb655f91b pci_epc_get_next_free_bar -EXPORT_SYMBOL_GPL vmlinux 0xb658290a regulator_set_suspend_voltage -EXPORT_SYMBOL_GPL vmlinux 0xb6591439 xdp_features_clear_redirect_target -EXPORT_SYMBOL_GPL vmlinux 0xb663e8ed gpiod_toggle_active_low -EXPORT_SYMBOL_GPL vmlinux 0xb665beb3 pm_genpd_add_subdomain -EXPORT_SYMBOL_GPL vmlinux 0xb666fff9 iommu_enable_nesting -EXPORT_SYMBOL_GPL vmlinux 0xb66aef67 fuse_mount_remove -EXPORT_SYMBOL_GPL vmlinux 0xb66c76af iommu_dev_enable_feature -EXPORT_SYMBOL_GPL vmlinux 0xb673a33e fwnode_graph_get_next_endpoint -EXPORT_SYMBOL_GPL vmlinux 0xb6781afc call_switchdev_blocking_notifiers +EXPORT_SYMBOL_GPL vmlinux 0xb66181fd devm_free_percpu EXPORT_SYMBOL_GPL vmlinux 0xb6787346 sfp_unregister_socket -EXPORT_SYMBOL_GPL vmlinux 0xb6861f40 blk_mq_sched_mark_restart_hctx -EXPORT_SYMBOL_GPL vmlinux 0xb6900f71 dev_pm_genpd_add_notifier -EXPORT_SYMBOL_GPL vmlinux 0xb697ba30 dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0xb684b772 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xb6862dca strp_unpause EXPORT_SYMBOL_GPL vmlinux 0xb69afbb0 devlink_linecard_deactivate -EXPORT_SYMBOL_GPL vmlinux 0xb6a1a896 tps6586x_writes -EXPORT_SYMBOL_GPL vmlinux 0xb6a787b2 __pci_reset_function_locked -EXPORT_SYMBOL_GPL vmlinux 0xb6c85600 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xb69c0ba0 fscrypt_ioctl_remove_key_all_users +EXPORT_SYMBOL_GPL vmlinux 0xb6a537d4 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xb6acc81a inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xb6aff331 crypto_grab_akcipher +EXPORT_SYMBOL_GPL vmlinux 0xb6b47ad1 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xb6bd8423 rz_mtu3_shared_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb6c25c02 vmf_insert_pfn_pmd EXPORT_SYMBOL_GPL vmlinux 0xb6cdcabf alarm_restart -EXPORT_SYMBOL_GPL vmlinux 0xb6e066cd of_genpd_add_device EXPORT_SYMBOL_GPL vmlinux 0xb6e6d99d clk_disable -EXPORT_SYMBOL_GPL vmlinux 0xb711c142 sata_link_scr_lpm -EXPORT_SYMBOL_GPL vmlinux 0xb71417a3 key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0xb6f272f3 mmput_async +EXPORT_SYMBOL_GPL vmlinux 0xb6f8f6d8 __traceiter_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0xb6fa319a phy_set_mode_ext +EXPORT_SYMBOL_GPL vmlinux 0xb702adc4 i2c_dw_configure_master +EXPORT_SYMBOL_GPL vmlinux 0xb70577c7 pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xb70cf7e3 to_software_node EXPORT_SYMBOL_GPL vmlinux 0xb7179574 blocking_notifier_call_chain -EXPORT_SYMBOL_GPL vmlinux 0xb727b535 __traceiter_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0xb71ab474 devm_clk_get_optional_enabled EXPORT_SYMBOL_GPL vmlinux 0xb7329c06 clk_set_phase EXPORT_SYMBOL_GPL vmlinux 0xb73713d7 nvmem_add_cell_lookups -EXPORT_SYMBOL_GPL vmlinux 0xb73d6b6c shash_register_instance -EXPORT_SYMBOL_GPL vmlinux 0xb75bbd79 usb_match_id -EXPORT_SYMBOL_GPL vmlinux 0xb75ecbb9 of_msi_configure -EXPORT_SYMBOL_GPL vmlinux 0xb7855b5e ata_change_queue_depth -EXPORT_SYMBOL_GPL vmlinux 0xb7866885 regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xb7496141 __traceiter_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0xb74cd0e4 of_genpd_remove_subdomain +EXPORT_SYMBOL_GPL vmlinux 0xb756bfdb adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xb76ccd14 xfer_to_guest_mode_handle_work +EXPORT_SYMBOL_GPL vmlinux 0xb77222cf irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0xb77f045f __percpu_init_rwsem EXPORT_SYMBOL_GPL vmlinux 0xb786bf75 pci_write_msi_msg -EXPORT_SYMBOL_GPL vmlinux 0xb78e1824 vp_modern_get_driver_features -EXPORT_SYMBOL_GPL vmlinux 0xb79dea5b wm8350_block_read -EXPORT_SYMBOL_GPL vmlinux 0xb79e43ca acomp_request_alloc EXPORT_SYMBOL_GPL vmlinux 0xb7a387fc synchronize_rcu_tasks_rude -EXPORT_SYMBOL_GPL vmlinux 0xb7b996c7 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xb7a3c4d3 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0xb7ac4622 clk_bulk_get_optional EXPORT_SYMBOL_GPL vmlinux 0xb7c69a63 unregister_vmap_purge_notifier -EXPORT_SYMBOL_GPL vmlinux 0xb7d55f28 device_show_ulong -EXPORT_SYMBOL_GPL vmlinux 0xb7db1cb1 nvmem_layout_get_match_data -EXPORT_SYMBOL_GPL vmlinux 0xb7e95610 synth_event_gen_cmd_array_start -EXPORT_SYMBOL_GPL vmlinux 0xb7e98b62 msi_lock_descs +EXPORT_SYMBOL_GPL vmlinux 0xb7d73e6a pcie_port_find_device +EXPORT_SYMBOL_GPL vmlinux 0xb7db1275 sdio_get_host_pm_caps EXPORT_SYMBOL_GPL vmlinux 0xb7eab117 devl_linecard_destroy -EXPORT_SYMBOL_GPL vmlinux 0xb81651dc regmap_field_bulk_free -EXPORT_SYMBOL_GPL vmlinux 0xb818e642 fat_add_entries -EXPORT_SYMBOL_GPL vmlinux 0xb82cbf2d dm_start_time_ns_from_clone -EXPORT_SYMBOL_GPL vmlinux 0xb840199a nvmem_cell_get -EXPORT_SYMBOL_GPL vmlinux 0xb8473251 pci_epc_add_epf +EXPORT_SYMBOL_GPL vmlinux 0xb7eef0aa direct_write_fallback +EXPORT_SYMBOL_GPL vmlinux 0xb8070b05 badblocks_clear +EXPORT_SYMBOL_GPL vmlinux 0xb8115f4a tracing_snapshot_cond_disable +EXPORT_SYMBOL_GPL vmlinux 0xb81ddac7 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xb840caa2 spi_get_device_match_data +EXPORT_SYMBOL_GPL vmlinux 0xb844ddc3 devl_rate_node_create +EXPORT_SYMBOL_GPL vmlinux 0xb845bc46 genphy_c45_restart_aneg EXPORT_SYMBOL_GPL vmlinux 0xb84ac4d3 sbitmap_del_wait_queue -EXPORT_SYMBOL_GPL vmlinux 0xb858a8a5 power_supply_get_by_phandle -EXPORT_SYMBOL_GPL vmlinux 0xb85f6a2c pci_disable_pri -EXPORT_SYMBOL_GPL vmlinux 0xb8727111 serial8250_handle_irq -EXPORT_SYMBOL_GPL vmlinux 0xb8830331 serial8250_do_set_ldisc -EXPORT_SYMBOL_GPL vmlinux 0xb888a024 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xb84d61d7 gpiod_get_raw_array_value +EXPORT_SYMBOL_GPL vmlinux 0xb873cf6f dma_request_chan +EXPORT_SYMBOL_GPL vmlinux 0xb8788ed2 __ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0xb881bd2c of_phy_put EXPORT_SYMBOL_GPL vmlinux 0xb88dbfce irq_set_irqchip_state +EXPORT_SYMBOL_GPL vmlinux 0xb88ffa50 disk_set_independent_access_ranges EXPORT_SYMBOL_GPL vmlinux 0xb89e69b1 jump_label_update_timeout -EXPORT_SYMBOL_GPL vmlinux 0xb8ab951e bus_sort_breadthfirst -EXPORT_SYMBOL_GPL vmlinux 0xb8bd4f87 tty_ldisc_deref -EXPORT_SYMBOL_GPL vmlinux 0xb8ca85cb sysfs_create_group -EXPORT_SYMBOL_GPL vmlinux 0xb8cc5964 cpufreq_enable_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0xb8a49217 pinctrl_find_and_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0xb8a780b3 firmware_request_nowarn EXPORT_SYMBOL_GPL vmlinux 0xb8cd3a7f nf_logger_put -EXPORT_SYMBOL_GPL vmlinux 0xb8e1cc73 debugfs_create_u64 -EXPORT_SYMBOL_GPL vmlinux 0xb8e3e02c usb_put_dev -EXPORT_SYMBOL_GPL vmlinux 0xb8e7a019 usb_get_urb -EXPORT_SYMBOL_GPL vmlinux 0xb8e92916 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xb8d4d610 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb8db76be fscrypt_mergeable_bio_bh +EXPORT_SYMBOL_GPL vmlinux 0xb8de3568 vcap_select_min_rule_keyset EXPORT_SYMBOL_GPL vmlinux 0xb8edc915 klist_add_tail -EXPORT_SYMBOL_GPL vmlinux 0xb8faa721 pwm_get -EXPORT_SYMBOL_GPL vmlinux 0xb9039803 mddev_suspend -EXPORT_SYMBOL_GPL vmlinux 0xb90634b6 devlink_priv +EXPORT_SYMBOL_GPL vmlinux 0xb8ef3afa phy_start_machine EXPORT_SYMBOL_GPL vmlinux 0xb912560d static_key_disable EXPORT_SYMBOL_GPL vmlinux 0xb91cc52a trace_seq_puts -EXPORT_SYMBOL_GPL vmlinux 0xb926942c ata_scsi_ioctl -EXPORT_SYMBOL_GPL vmlinux 0xb9375690 iommu_get_domain_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xb9419635 __fsverity_file_open +EXPORT_SYMBOL_GPL vmlinux 0xb9465168 __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0xb951a758 irq_domain_translate_twocell +EXPORT_SYMBOL_GPL vmlinux 0xb9525452 pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0xb953684d ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb9630afa crypto_register_aeads EXPORT_SYMBOL_GPL vmlinux 0xb9681621 xdp_do_flush -EXPORT_SYMBOL_GPL vmlinux 0xb96fc2cb regmap_get_val_endian -EXPORT_SYMBOL_GPL vmlinux 0xb96fe17a onboard_hub_create_pdevs EXPORT_SYMBOL_GPL vmlinux 0xb980dc42 tracepoint_probe_unregister EXPORT_SYMBOL_GPL vmlinux 0xb9852d11 __traceiter_mc_event -EXPORT_SYMBOL_GPL vmlinux 0xb996861c udp6_lib_lookup -EXPORT_SYMBOL_GPL vmlinux 0xb9971723 scsi_host_busy_iter -EXPORT_SYMBOL_GPL vmlinux 0xb99e1498 pci_restore_msi_state -EXPORT_SYMBOL_GPL vmlinux 0xb9a0ebdd n_tty_inherit_ops -EXPORT_SYMBOL_GPL vmlinux 0xb9b1e491 devlink_resource_register +EXPORT_SYMBOL_GPL vmlinux 0xb996ea6f posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb99d5f00 nvdimm_delete +EXPORT_SYMBOL_GPL vmlinux 0xb99d8f53 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xb9ac834b driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb9b1ad99 vp_legacy_get_queue_size +EXPORT_SYMBOL_GPL vmlinux 0xb9b95984 irq_domain_add_legacy EXPORT_SYMBOL_GPL vmlinux 0xb9b9666f btree_update EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c2408f spi_mem_dirmap_destroy EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops -EXPORT_SYMBOL_GPL vmlinux 0xb9c432a1 devl_param_driverinit_value_get -EXPORT_SYMBOL_GPL vmlinux 0xb9c61584 genphy_c45_fast_retrain +EXPORT_SYMBOL_GPL vmlinux 0xb9c43fbe __clk_hw_register_gate EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first -EXPORT_SYMBOL_GPL vmlinux 0xb9d5f8cd __traceiter_ata_bmdma_start -EXPORT_SYMBOL_GPL vmlinux 0xb9d8cde4 pci_find_doe_mailbox -EXPORT_SYMBOL_GPL vmlinux 0xb9f87077 rio_pw_enable -EXPORT_SYMBOL_GPL vmlinux 0xb9fb758b pci_disable_pasid -EXPORT_SYMBOL_GPL vmlinux 0xba18a0d5 set_selection_kernel -EXPORT_SYMBOL_GPL vmlinux 0xba19645b acpi_spi_count_resources +EXPORT_SYMBOL_GPL vmlinux 0xb9d519cd crypto_unregister_templates +EXPORT_SYMBOL_GPL vmlinux 0xb9f8af49 xdp_rxq_info_unused +EXPORT_SYMBOL_GPL vmlinux 0xb9f8b07f of_usb_get_dr_mode_by_phy +EXPORT_SYMBOL_GPL vmlinux 0xba0203b9 clk_divider_ops EXPORT_SYMBOL_GPL vmlinux 0xba2b7f64 cpufreq_generic_get -EXPORT_SYMBOL_GPL vmlinux 0xba30ee05 __devm_alloc_percpu -EXPORT_SYMBOL_GPL vmlinux 0xba5b8ba0 usb_acpi_port_lpm_incapable +EXPORT_SYMBOL_GPL vmlinux 0xba32b3fc simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0xba34f0ba strp_done +EXPORT_SYMBOL_GPL vmlinux 0xba4aec6c kthread_use_mm +EXPORT_SYMBOL_GPL vmlinux 0xba5335a4 set_primary_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xba62c937 scsi_eh_ready_devs EXPORT_SYMBOL_GPL vmlinux 0xba6eb67d __tracepoint_mc_event -EXPORT_SYMBOL_GPL vmlinux 0xba750895 gpiochip_relres_irq -EXPORT_SYMBOL_GPL vmlinux 0xba7eaf25 __auxiliary_driver_register -EXPORT_SYMBOL_GPL vmlinux 0xba8eda6c sysfs_create_files -EXPORT_SYMBOL_GPL vmlinux 0xba9d93ba dw_pcie_own_conf_map_bus +EXPORT_SYMBOL_GPL vmlinux 0xba75af54 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0xba9155d3 strp_init EXPORT_SYMBOL_GPL vmlinux 0xbaa7a63e __mt_destroy -EXPORT_SYMBOL_GPL vmlinux 0xbaaf603b devl_unlock EXPORT_SYMBOL_GPL vmlinux 0xbab9a9f0 maxim_charger_currents EXPORT_SYMBOL_GPL vmlinux 0xbac94448 __tracepoint_block_rq_insert -EXPORT_SYMBOL_GPL vmlinux 0xbad4b035 of_phandle_args_to_fwspec -EXPORT_SYMBOL_GPL vmlinux 0xbae468e5 virtqueue_get_avail_addr -EXPORT_SYMBOL_GPL vmlinux 0xbae5d347 pinconf_generic_dt_subnode_to_map +EXPORT_SYMBOL_GPL vmlinux 0xbadac2e5 metadata_dst_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbadd31d5 rtc_read_time EXPORT_SYMBOL_GPL vmlinux 0xbae89516 synchronize_srcu_expedited -EXPORT_SYMBOL_GPL vmlinux 0xbaee110a devl_params_unregister -EXPORT_SYMBOL_GPL vmlinux 0xbaf5c63e pci_epf_unregister_driver EXPORT_SYMBOL_GPL vmlinux 0xbaf6850c fsnotify_wait_marks_destroyed EXPORT_SYMBOL_GPL vmlinux 0xbb028ad3 rcu_gp_slow_register -EXPORT_SYMBOL_GPL vmlinux 0xbb07a106 rio_attach_device EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks -EXPORT_SYMBOL_GPL vmlinux 0xbb10290d gpiochip_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0xbb0e96f5 devm_regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbb1ca59a da9052_disable_irq_nosync EXPORT_SYMBOL_GPL vmlinux 0xbb24f372 __SCK__tp_func_attach_device_to_domain -EXPORT_SYMBOL_GPL vmlinux 0xbb2cd82e bio_split_rw -EXPORT_SYMBOL_GPL vmlinux 0xbb33a1a8 acpi_get_pci_dev EXPORT_SYMBOL_GPL vmlinux 0xbb4146b3 get_completed_synchronize_rcu -EXPORT_SYMBOL_GPL vmlinux 0xbb5f0717 platform_msi_create_irq_domain +EXPORT_SYMBOL_GPL vmlinux 0xbb42ec5b xdp_features_set_redirect_target +EXPORT_SYMBOL_GPL vmlinux 0xbb539b08 iommu_fwspec_add_ids EXPORT_SYMBOL_GPL vmlinux 0xbb6508da random_get_entropy_fallback EXPORT_SYMBOL_GPL vmlinux 0xbb6a3cbd devlink_fmsg_arr_pair_nest_start -EXPORT_SYMBOL_GPL vmlinux 0xbb6ce44c acpi_spi_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbb6cb8cb devfreq_get_devfreq_by_phandle EXPORT_SYMBOL_GPL vmlinux 0xbb6f025a asymmetric_key_generate_id EXPORT_SYMBOL_GPL vmlinux 0xbb7195a5 xdp_warn -EXPORT_SYMBOL_GPL vmlinux 0xbb765d11 bpf_trace_run6 -EXPORT_SYMBOL_GPL vmlinux 0xbb77cb57 of_address_to_resource -EXPORT_SYMBOL_GPL vmlinux 0xbb971586 scsi_nl_sock -EXPORT_SYMBOL_GPL vmlinux 0xbba1ac46 kthread_unuse_mm -EXPORT_SYMBOL_GPL vmlinux 0xbbaa0a4e power_supply_am_i_supplied -EXPORT_SYMBOL_GPL vmlinux 0xbbad903d gpiod_set_raw_array_value -EXPORT_SYMBOL_GPL vmlinux 0xbbb22f8e usb_get_maximum_speed -EXPORT_SYMBOL_GPL vmlinux 0xbbb52a31 pci_ats_supported -EXPORT_SYMBOL_GPL vmlinux 0xbbb7b322 iommu_dev_disable_feature -EXPORT_SYMBOL_GPL vmlinux 0xbbc05b07 fwnode_remove_software_node -EXPORT_SYMBOL_GPL vmlinux 0xbbd461f3 tcf_dev_queue_xmit -EXPORT_SYMBOL_GPL vmlinux 0xbbd51424 gpiochip_line_is_open_drain +EXPORT_SYMBOL_GPL vmlinux 0xbb7f8b25 ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0xbb9937ca msi_lock_descs +EXPORT_SYMBOL_GPL vmlinux 0xbba201e9 usb_phy_roothub_resume +EXPORT_SYMBOL_GPL vmlinux 0xbba548bd usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xbbbb8948 usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0xbbbbc7ac wm8350_clear_bits EXPORT_SYMBOL_GPL vmlinux 0xbbe5611b crc64_rocksoft_update EXPORT_SYMBOL_GPL vmlinux 0xbbe56404 sprint_OID -EXPORT_SYMBOL_GPL vmlinux 0xbbebbb16 regulator_set_load -EXPORT_SYMBOL_GPL vmlinux 0xbbf2b299 switchdev_handle_port_obj_add_foreign -EXPORT_SYMBOL_GPL vmlinux 0xbc1a52cb sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0xbbec96ec devlink_flash_update_status_notify +EXPORT_SYMBOL_GPL vmlinux 0xbc0bd180 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xbc2677b4 __phy_modify_mmd +EXPORT_SYMBOL_GPL vmlinux 0xbc2dfa79 dev_pm_opp_adjust_voltage EXPORT_SYMBOL_GPL vmlinux 0xbc314156 nop_mnt_idmap EXPORT_SYMBOL_GPL vmlinux 0xbc3f2cb0 timecounter_cyc2time -EXPORT_SYMBOL_GPL vmlinux 0xbc3fbd32 spi_alloc_device -EXPORT_SYMBOL_GPL vmlinux 0xbc45505a dax_inode -EXPORT_SYMBOL_GPL vmlinux 0xbc464826 pinctrl_get -EXPORT_SYMBOL_GPL vmlinux 0xbc480bfe inet_csk_addr2sockaddr -EXPORT_SYMBOL_GPL vmlinux 0xbc4ce75e wm831x_auxadc_read_uv -EXPORT_SYMBOL_GPL vmlinux 0xbc59c198 od_register_powersave_bias_handler -EXPORT_SYMBOL_GPL vmlinux 0xbc5ce696 __clk_hw_register_divider +EXPORT_SYMBOL_GPL vmlinux 0xbc41e8ad edac_mc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbc4e907e led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xbc512cf3 sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0xbc521e10 crypto_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0xbc5aeff5 wm8350_gpio_config EXPORT_SYMBOL_GPL vmlinux 0xbc6bec66 free_percpu_irq -EXPORT_SYMBOL_GPL vmlinux 0xbc802fb1 __kthread_init_worker -EXPORT_SYMBOL_GPL vmlinux 0xbc8692b6 file_ra_state_init -EXPORT_SYMBOL_GPL vmlinux 0xbc888b91 devm_gpiod_unhinge -EXPORT_SYMBOL_GPL vmlinux 0xbc89e984 phy_package_join -EXPORT_SYMBOL_GPL vmlinux 0xbca0743f filemap_read -EXPORT_SYMBOL_GPL vmlinux 0xbca60c45 of_platform_device_destroy -EXPORT_SYMBOL_GPL vmlinux 0xbcb5098f ncsi_start_dev -EXPORT_SYMBOL_GPL vmlinux 0xbcbdf34e pinctrl_generic_get_group_name +EXPORT_SYMBOL_GPL vmlinux 0xbc70dd55 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0xbc7dbe32 __platform_register_drivers +EXPORT_SYMBOL_GPL vmlinux 0xbc811d45 intel_pmic_install_opregion_handler +EXPORT_SYMBOL_GPL vmlinux 0xbcb06e67 nfs42_ssc_register +EXPORT_SYMBOL_GPL vmlinux 0xbcbde3d3 pci_device_group EXPORT_SYMBOL_GPL vmlinux 0xbcc15e75 ktime_get_coarse_with_offset -EXPORT_SYMBOL_GPL vmlinux 0xbcc7c103 of_irq_get +EXPORT_SYMBOL_GPL vmlinux 0xbcc61261 mmu_notifier_put +EXPORT_SYMBOL_GPL vmlinux 0xbccfc447 spi_mem_exec_op EXPORT_SYMBOL_GPL vmlinux 0xbcd02d29 mas_pause EXPORT_SYMBOL_GPL vmlinux 0xbcd2ff03 raw_v4_hashinfo +EXPORT_SYMBOL_GPL vmlinux 0xbcdb72f8 find_ge_pid EXPORT_SYMBOL_GPL vmlinux 0xbcdd5b99 iommu_group_set_name EXPORT_SYMBOL_GPL vmlinux 0xbcf1f0e6 zs_create_pool -EXPORT_SYMBOL_GPL vmlinux 0xbcf2b972 gpiod_get -EXPORT_SYMBOL_GPL vmlinux 0xbcf63c5d vfs_set_acl -EXPORT_SYMBOL_GPL vmlinux 0xbd037596 dev_pm_opp_remove_table EXPORT_SYMBOL_GPL vmlinux 0xbd06f3a9 ata_get_cmd_name -EXPORT_SYMBOL_GPL vmlinux 0xbd2eed75 pci_common_swizzle -EXPORT_SYMBOL_GPL vmlinux 0xbd39a570 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xbd0700eb mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0xbd0ac528 fuse_dev_install +EXPORT_SYMBOL_GPL vmlinux 0xbd1199c9 of_property_read_u64 EXPORT_SYMBOL_GPL vmlinux 0xbd3fe1e3 disable_hardirq -EXPORT_SYMBOL_GPL vmlinux 0xbd417a0f transport_class_register -EXPORT_SYMBOL_GPL vmlinux 0xbd41de5b fwnode_connection_find_match -EXPORT_SYMBOL_GPL vmlinux 0xbd522eea xhci_resume -EXPORT_SYMBOL_GPL vmlinux 0xbd54870f do_take_over_console -EXPORT_SYMBOL_GPL vmlinux 0xbd6e346b of_clk_src_onecell_get -EXPORT_SYMBOL_GPL vmlinux 0xbd86d851 of_property_count_elems_of_size +EXPORT_SYMBOL_GPL vmlinux 0xbd56617d pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0xbd669b7e __traceiter_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0xbd709106 acpi_dev_ready_for_enumeration +EXPORT_SYMBOL_GPL vmlinux 0xbd74db18 blk_mq_quiesce_tagset +EXPORT_SYMBOL_GPL vmlinux 0xbd784fc1 clk_hw_set_rate_range +EXPORT_SYMBOL_GPL vmlinux 0xbd7e27f6 ksm_madvise +EXPORT_SYMBOL_GPL vmlinux 0xbd98c5b8 ata_link_offline EXPORT_SYMBOL_GPL vmlinux 0xbda04a91 cond_synchronize_rcu_expedited -EXPORT_SYMBOL_GPL vmlinux 0xbdaa6432 vp_legacy_get_features -EXPORT_SYMBOL_GPL vmlinux 0xbdbfb656 pci_epc_linkdown +EXPORT_SYMBOL_GPL vmlinux 0xbdab7690 rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0xbdad8ddd thermal_zone_device_priv +EXPORT_SYMBOL_GPL vmlinux 0xbdc91e34 clk_register_mux_table EXPORT_SYMBOL_GPL vmlinux 0xbdda1b5f vmalloc_huge -EXPORT_SYMBOL_GPL vmlinux 0xbde1d449 vp_legacy_get_status -EXPORT_SYMBOL_GPL vmlinux 0xbdee72d2 balloon_mops -EXPORT_SYMBOL_GPL vmlinux 0xbdf0d422 __traceiter_rpm_idle -EXPORT_SYMBOL_GPL vmlinux 0xbdf89a05 kobject_uevent -EXPORT_SYMBOL_GPL vmlinux 0xbe3b4ed0 event_triggers_call +EXPORT_SYMBOL_GPL vmlinux 0xbddec370 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xbdea9be4 devl_sb_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe03adba fscrypt_set_bio_crypt_ctx +EXPORT_SYMBOL_GPL vmlinux 0xbe124c9f devm_namespace_disable +EXPORT_SYMBOL_GPL vmlinux 0xbe1cfa37 __bio_release_pages +EXPORT_SYMBOL_GPL vmlinux 0xbe27d34e mbox_client_txdone +EXPORT_SYMBOL_GPL vmlinux 0xbe32084d debugfs_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbe3fe87f __fsverity_prepare_setattr +EXPORT_SYMBOL_GPL vmlinux 0xbe48a31e net_failover_create +EXPORT_SYMBOL_GPL vmlinux 0xbe48be30 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xbe5376d3 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0xbe5ac71b led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xbe67f67d ata_sff_lost_interrupt EXPORT_SYMBOL_GPL vmlinux 0xbe687e88 wake_up_all_idle_cpus -EXPORT_SYMBOL_GPL vmlinux 0xbe79866a vfs_setlease -EXPORT_SYMBOL_GPL vmlinux 0xbe8c7bc5 pci_iomap_wc -EXPORT_SYMBOL_GPL vmlinux 0xbe8d365e device_get_dma_attr -EXPORT_SYMBOL_GPL vmlinux 0xbe912b7a iommu_detach_device -EXPORT_SYMBOL_GPL vmlinux 0xbe94631c blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xbe6afa01 nf_queue_nf_hook_drop +EXPORT_SYMBOL_GPL vmlinux 0xbe801634 devm_hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0xbe84b7bd regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0xbe8a168e raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xbe9062df pci_generic_config_read +EXPORT_SYMBOL_GPL vmlinux 0xbe94353c devlink_params_unregister EXPORT_SYMBOL_GPL vmlinux 0xbe96dfd8 of_reconfig_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe99af3e platform_get_irq_byname EXPORT_SYMBOL_GPL vmlinux 0xbe9a83d5 dw_pcie_write -EXPORT_SYMBOL_GPL vmlinux 0xbe9b379a gpiod_get_value -EXPORT_SYMBOL_GPL vmlinux 0xbe9ddb5e bus_get_kset -EXPORT_SYMBOL_GPL vmlinux 0xbea32b7a pci_epc_set_msix EXPORT_SYMBOL_GPL vmlinux 0xbea5ff1e static_key_initialized -EXPORT_SYMBOL_GPL vmlinux 0xbeaa9a61 rio_mport_read_config_8 -EXPORT_SYMBOL_GPL vmlinux 0xbeba9f15 virtio_reset_device -EXPORT_SYMBOL_GPL vmlinux 0xbed63737 __traceiter_neigh_event_send_dead -EXPORT_SYMBOL_GPL vmlinux 0xbeda877c vcap_tc_flower_handler_arp_usage -EXPORT_SYMBOL_GPL vmlinux 0xbee986c6 serdev_device_write_flush -EXPORT_SYMBOL_GPL vmlinux 0xbeee0f79 device_set_of_node_from_dev -EXPORT_SYMBOL_GPL vmlinux 0xbef57c68 devlink_dpipe_entry_ctx_prepare -EXPORT_SYMBOL_GPL vmlinux 0xbef851dc sk_psock_msg_verdict +EXPORT_SYMBOL_GPL vmlinux 0xbea7e3f3 component_add +EXPORT_SYMBOL_GPL vmlinux 0xbea9d393 spi_mem_default_supports_op +EXPORT_SYMBOL_GPL vmlinux 0xbebaace6 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xbec5e7e7 dw_pcie_ep_reset_bar +EXPORT_SYMBOL_GPL vmlinux 0xbece9a60 sock_diag_destroy +EXPORT_SYMBOL_GPL vmlinux 0xbee77712 usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0xbeece710 regulator_desc_list_voltage_linear_range EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier -EXPORT_SYMBOL_GPL vmlinux 0xbf13d1f5 platform_get_irq_optional -EXPORT_SYMBOL_GPL vmlinux 0xbf166bb3 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0xbf10b971 skb_defer_rx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xbf198f55 irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xbf19cfec wm831x_auxadc_read EXPORT_SYMBOL_GPL vmlinux 0xbf1a8dff btree_last -EXPORT_SYMBOL_GPL vmlinux 0xbf27f0a2 l3mdev_fib_table_rcu EXPORT_SYMBOL_GPL vmlinux 0xbf2e2e71 housekeeping_enabled -EXPORT_SYMBOL_GPL vmlinux 0xbf353f95 dev_pm_opp_config_clks_simple -EXPORT_SYMBOL_GPL vmlinux 0xbf45123a rio_free_net EXPORT_SYMBOL_GPL vmlinux 0xbf4513c3 devlink_linecard_activate -EXPORT_SYMBOL_GPL vmlinux 0xbf5fef10 anon_transport_class_unregister -EXPORT_SYMBOL_GPL vmlinux 0xbf63f0f4 dev_pm_opp_get_max_volt_latency -EXPORT_SYMBOL_GPL vmlinux 0xbf730d37 usb_store_new_id -EXPORT_SYMBOL_GPL vmlinux 0xbf954138 pci_remove_root_bus -EXPORT_SYMBOL_GPL vmlinux 0xbf998a9b edac_mc_free -EXPORT_SYMBOL_GPL vmlinux 0xbf9bf491 pinctrl_generic_get_group -EXPORT_SYMBOL_GPL vmlinux 0xbf9d06c9 of_i2c_get_board_info -EXPORT_SYMBOL_GPL vmlinux 0xbfb297c5 rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0xbf511371 pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0xbf579a31 nvdimm_bus_check_dimm_count +EXPORT_SYMBOL_GPL vmlinux 0xbf6766d6 iommu_device_sysfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xbf78911c usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xbf81dac0 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbf8bb8cb rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0xbfa05e59 rdev_get_name +EXPORT_SYMBOL_GPL vmlinux 0xbfb6b9ad irq_domain_pop_irq EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xbfc44049 pwm_put +EXPORT_SYMBOL_GPL vmlinux 0xbfc4f9df nfs_ssc_register +EXPORT_SYMBOL_GPL vmlinux 0xbfc51b57 xhci_update_hub_device EXPORT_SYMBOL_GPL vmlinux 0xbfcd48ff srcu_notifier_chain_register -EXPORT_SYMBOL_GPL vmlinux 0xbfdc292f l3mdev_master_ifindex_rcu +EXPORT_SYMBOL_GPL vmlinux 0xbfcebd13 pci_common_swizzle +EXPORT_SYMBOL_GPL vmlinux 0xbfdf6f75 i2c_recover_bus +EXPORT_SYMBOL_GPL vmlinux 0xbfe2efba tty_wakeup EXPORT_SYMBOL_GPL vmlinux 0xbfe5616d tick_broadcast_oneshot_control -EXPORT_SYMBOL_GPL vmlinux 0xbffd88cc devm_regulator_irq_helper -EXPORT_SYMBOL_GPL vmlinux 0xbffe461d ping_getfrag -EXPORT_SYMBOL_GPL vmlinux 0xbfffd756 security_kernel_post_read_file -EXPORT_SYMBOL_GPL vmlinux 0xc001d0fb led_update_brightness +EXPORT_SYMBOL_GPL vmlinux 0xbff54ccd pci_host_common_probe +EXPORT_SYMBOL_GPL vmlinux 0xbff81e26 ip6_route_input_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc0060ea3 usb_alloc_streams EXPORT_SYMBOL_GPL vmlinux 0xc01ddf8e cpu_latency_qos_request_active -EXPORT_SYMBOL_GPL vmlinux 0xc023f604 tpm_chip_start -EXPORT_SYMBOL_GPL vmlinux 0xc05c67b9 ehci_hub_control +EXPORT_SYMBOL_GPL vmlinux 0xc03cb03f fib_rules_dump EXPORT_SYMBOL_GPL vmlinux 0xc05cee80 ipi_get_hwirq -EXPORT_SYMBOL_GPL vmlinux 0xc07053f5 i2c_new_client_device -EXPORT_SYMBOL_GPL vmlinux 0xc0749a3a strp_done -EXPORT_SYMBOL_GPL vmlinux 0xc078f3af __devm_reset_control_get -EXPORT_SYMBOL_GPL vmlinux 0xc07b9d20 bpf_redirect_info -EXPORT_SYMBOL_GPL vmlinux 0xc07ee7aa irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0xc05ec1a5 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xc06074c9 i2c_parse_fw_timings +EXPORT_SYMBOL_GPL vmlinux 0xc06dd3b1 clk_gate_is_enabled EXPORT_SYMBOL_GPL vmlinux 0xc090c376 net_selftest_get_strings -EXPORT_SYMBOL_GPL vmlinux 0xc0a76f23 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xc09c2d83 dma_async_device_channel_unregister EXPORT_SYMBOL_GPL vmlinux 0xc0a96e14 rcu_gp_is_expedited -EXPORT_SYMBOL_GPL vmlinux 0xc0ac0b2c sdio_signal_irq -EXPORT_SYMBOL_GPL vmlinux 0xc0ac8480 ata_scsi_change_queue_depth -EXPORT_SYMBOL_GPL vmlinux 0xc0aec071 filemap_add_folio -EXPORT_SYMBOL_GPL vmlinux 0xc0b07ff0 crypto_akcipher_sync_prep EXPORT_SYMBOL_GPL vmlinux 0xc0b2664d devlink_dpipe_header_ipv4 -EXPORT_SYMBOL_GPL vmlinux 0xc0b62758 fixed_phy_register_with_gpiod -EXPORT_SYMBOL_GPL vmlinux 0xc0c04d22 ata_port_freeze -EXPORT_SYMBOL_GPL vmlinux 0xc0c22791 device_show_bool -EXPORT_SYMBOL_GPL vmlinux 0xc0db2c9f skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xc0d5ff0e phy_led_triggers_unregister EXPORT_SYMBOL_GPL vmlinux 0xc0dcb59e edac_layer_name -EXPORT_SYMBOL_GPL vmlinux 0xc0e7a2f7 of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0xc0df4fd6 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xc0e7bb91 rdev_get_dev EXPORT_SYMBOL_GPL vmlinux 0xc0f0458a ip_tunnel_unneed_metadata -EXPORT_SYMBOL_GPL vmlinux 0xc0fdd749 fixed_phy_unregister -EXPORT_SYMBOL_GPL vmlinux 0xc0ff260f kthread_cancel_work_sync -EXPORT_SYMBOL_GPL vmlinux 0xc1056b40 xfrm_output_resume -EXPORT_SYMBOL_GPL vmlinux 0xc105d47f phy_reset +EXPORT_SYMBOL_GPL vmlinux 0xc106a7e8 usb_hcd_unlink_urb_from_ep EXPORT_SYMBOL_GPL vmlinux 0xc1086e0c sysrq_toggle_support -EXPORT_SYMBOL_GPL vmlinux 0xc110a7d9 irq_gc_unmask_enable_reg -EXPORT_SYMBOL_GPL vmlinux 0xc117ecd9 irq_chip_set_type_parent -EXPORT_SYMBOL_GPL vmlinux 0xc12c1818 clk_hw_is_enabled -EXPORT_SYMBOL_GPL vmlinux 0xc13bcef0 dma_free_pages -EXPORT_SYMBOL_GPL vmlinux 0xc1586ea8 usb_autopm_put_interface -EXPORT_SYMBOL_GPL vmlinux 0xc15c2322 irq_chip_get_parent_state -EXPORT_SYMBOL_GPL vmlinux 0xc161328e regulator_set_voltage_rdev -EXPORT_SYMBOL_GPL vmlinux 0xc163b276 bio_add_zone_append_page -EXPORT_SYMBOL_GPL vmlinux 0xc17278fe gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xc113910c check_move_unevictable_folios +EXPORT_SYMBOL_GPL vmlinux 0xc12663b7 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xc132a1da crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xc144ecec genphy_c45_plca_get_cfg +EXPORT_SYMBOL_GPL vmlinux 0xc14eba7b device_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0xc14fcd6f bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xc16f3aa7 irq_chip_set_wake_parent +EXPORT_SYMBOL_GPL vmlinux 0xc1716a8f get_net_ns EXPORT_SYMBOL_GPL vmlinux 0xc1743430 cpuidle_disable_device EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded -EXPORT_SYMBOL_GPL vmlinux 0xc1851768 regulator_allow_bypass -EXPORT_SYMBOL_GPL vmlinux 0xc18997bd __traceiter_pelt_thermal_tp -EXPORT_SYMBOL_GPL vmlinux 0xc18c1dcd devl_trap_groups_register +EXPORT_SYMBOL_GPL vmlinux 0xc198f0e4 i2c_get_device_id EXPORT_SYMBOL_GPL vmlinux 0xc19b2437 __tracepoint_ata_bmdma_status -EXPORT_SYMBOL_GPL vmlinux 0xc1bbcc21 __ip6_datagram_connect -EXPORT_SYMBOL_GPL vmlinux 0xc1ddb202 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0xc19fc9c7 devm_mipi_dsi_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0xc1c98f2a vchan_init +EXPORT_SYMBOL_GPL vmlinux 0xc1cff149 genphy_c45_read_status +EXPORT_SYMBOL_GPL vmlinux 0xc1da46ff sysfs_update_group EXPORT_SYMBOL_GPL vmlinux 0xc1e6986e interval_tree_span_iter_first -EXPORT_SYMBOL_GPL vmlinux 0xc1f3c5b1 uart_get_rs485_mode -EXPORT_SYMBOL_GPL vmlinux 0xc1f85b8d devm_pci_epc_destroy -EXPORT_SYMBOL_GPL vmlinux 0xc1faeccd xdp_master_redirect -EXPORT_SYMBOL_GPL vmlinux 0xc1fc03dc regulator_set_mode -EXPORT_SYMBOL_GPL vmlinux 0xc20a09de __traceiter_attach_device_to_domain -EXPORT_SYMBOL_GPL vmlinux 0xc21179a6 blk_mq_wait_quiesce_done -EXPORT_SYMBOL_GPL vmlinux 0xc2179e9b fscrypt_fname_encrypted_size +EXPORT_SYMBOL_GPL vmlinux 0xc1f2947c of_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0xc202b8bc strp_stop +EXPORT_SYMBOL_GPL vmlinux 0xc20a97c6 regulator_force_disable EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases -EXPORT_SYMBOL_GPL vmlinux 0xc22a560b relay_flush -EXPORT_SYMBOL_GPL vmlinux 0xc22e5498 mmc_app_cmd EXPORT_SYMBOL_GPL vmlinux 0xc2368ea5 ata_xfer_mask2mode -EXPORT_SYMBOL_GPL vmlinux 0xc2396d99 usb_get_dr_mode -EXPORT_SYMBOL_GPL vmlinux 0xc24f68cd fib_new_table -EXPORT_SYMBOL_GPL vmlinux 0xc2583954 devl_traps_unregister -EXPORT_SYMBOL_GPL vmlinux 0xc25dba4c of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0xc23e2536 dev_pm_opp_get_opp_count +EXPORT_SYMBOL_GPL vmlinux 0xc245c84d user_describe +EXPORT_SYMBOL_GPL vmlinux 0xc24c217b ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xc255c301 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc2669780 __pm_runtime_use_autosuspend EXPORT_SYMBOL_GPL vmlinux 0xc2692173 wakeup_sources_read_lock -EXPORT_SYMBOL_GPL vmlinux 0xc27d238f of_fdt_unflatten_tree -EXPORT_SYMBOL_GPL vmlinux 0xc2807ff0 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xc2696fd7 pm_clk_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc27099a6 fwnode_get_next_child_node +EXPORT_SYMBOL_GPL vmlinux 0xc27df919 gpiochip_get_desc EXPORT_SYMBOL_GPL vmlinux 0xc289e46d cpufreq_generic_frequency_table_verify -EXPORT_SYMBOL_GPL vmlinux 0xc29e8397 vp_modern_get_status -EXPORT_SYMBOL_GPL vmlinux 0xc2a1d1b8 tcp_register_ulp +EXPORT_SYMBOL_GPL vmlinux 0xc29a5daa fat_update_time +EXPORT_SYMBOL_GPL vmlinux 0xc29ebf41 phy_get EXPORT_SYMBOL_GPL vmlinux 0xc2a3e570 errata EXPORT_SYMBOL_GPL vmlinux 0xc2a814db tcp_memory_pressure -EXPORT_SYMBOL_GPL vmlinux 0xc2b0e97d pm_genpd_remove -EXPORT_SYMBOL_GPL vmlinux 0xc2b19900 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc2abc79e sampling_rate_store EXPORT_SYMBOL_GPL vmlinux 0xc2c1c427 perf_event_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0xc2d9c285 usb_hcd_pci_remove -EXPORT_SYMBOL_GPL vmlinux 0xc2f45003 ptp_parse_header -EXPORT_SYMBOL_GPL vmlinux 0xc32fc756 fwnode_get_named_child_node -EXPORT_SYMBOL_GPL vmlinux 0xc338d272 ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0xc2db45bf __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xc2e415da sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xc2ef1216 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xc3084723 __sock_recv_cmsgs +EXPORT_SYMBOL_GPL vmlinux 0xc32a0f1e led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xc33f55b2 pcie_aspm_capable EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object -EXPORT_SYMBOL_GPL vmlinux 0xc348ff54 ata_common_sdev_groups +EXPORT_SYMBOL_GPL vmlinux 0xc3597f7e of_pci_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0xc36074ad __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xc3647550 crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0xc36580ac sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xc368766c vcap_del_rule +EXPORT_SYMBOL_GPL vmlinux 0xc36a65ff irq_domain_free_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xc36bff32 irq_alloc_generic_chip EXPORT_SYMBOL_GPL vmlinux 0xc3708747 trace_vprintk -EXPORT_SYMBOL_GPL vmlinux 0xc37e5821 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xc37b9f4f subsys_interface_register EXPORT_SYMBOL_GPL vmlinux 0xc3805cd1 fs_ftype_to_dtype -EXPORT_SYMBOL_GPL vmlinux 0xc382b29a usb_driver_release_interface -EXPORT_SYMBOL_GPL vmlinux 0xc39483e0 badblocks_set +EXPORT_SYMBOL_GPL vmlinux 0xc384d84e rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0xc3862c2a trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0xc38bfa67 iomap_finish_ioends +EXPORT_SYMBOL_GPL vmlinux 0xc390bad3 __vfs_removexattr_locked EXPORT_SYMBOL_GPL vmlinux 0xc3997d9d mpi_read_raw_from_sgl +EXPORT_SYMBOL_GPL vmlinux 0xc39a7d94 bpf_prog_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc3b35f82 __pci_epf_register_driver EXPORT_SYMBOL_GPL vmlinux 0xc3b47825 rcu_async_relax -EXPORT_SYMBOL_GPL vmlinux 0xc3bad8b8 css_next_descendant_pre -EXPORT_SYMBOL_GPL vmlinux 0xc3baf689 rz_mtu3_is_enabled -EXPORT_SYMBOL_GPL vmlinux 0xc3bb66f4 pinctrl_put -EXPORT_SYMBOL_GPL vmlinux 0xc3be4564 dm_put +EXPORT_SYMBOL_GPL vmlinux 0xc3b8ab46 ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0xc3c03d3b crypto_sig_set_pubkey EXPORT_SYMBOL_GPL vmlinux 0xc3c4c6cc hash_algo_name -EXPORT_SYMBOL_GPL vmlinux 0xc3cdb32d extcon_get_extcon_dev -EXPORT_SYMBOL_GPL vmlinux 0xc3d2d7f5 receive_fd -EXPORT_SYMBOL_GPL vmlinux 0xc3d4b22d watchdog_notify_pretimeout -EXPORT_SYMBOL_GPL vmlinux 0xc3d6b9d7 genphy_c45_pma_suspend -EXPORT_SYMBOL_GPL vmlinux 0xc3d9357d devm_platform_get_and_ioremap_resource -EXPORT_SYMBOL_GPL vmlinux 0xc3db0d53 regmap_can_raw_write -EXPORT_SYMBOL_GPL vmlinux 0xc3db52a3 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc3ceea28 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xc3d288e6 dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0xc3d7a647 virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0xc3d82cdb dev_pm_opp_remove +EXPORT_SYMBOL_GPL vmlinux 0xc3da4f73 regulator_set_soft_start_regmap EXPORT_SYMBOL_GPL vmlinux 0xc3de65ff ring_buffer_bytes_cpu -EXPORT_SYMBOL_GPL vmlinux 0xc3e300d5 aead_init_geniv +EXPORT_SYMBOL_GPL vmlinux 0xc3e72526 __devm_add_action EXPORT_SYMBOL_GPL vmlinux 0xc3ea5305 iommu_default_passthrough -EXPORT_SYMBOL_GPL vmlinux 0xc3eeef80 usb_string -EXPORT_SYMBOL_GPL vmlinux 0xc3f814e8 da9052_disable_irq -EXPORT_SYMBOL_GPL vmlinux 0xc4267025 vcap_get_rule +EXPORT_SYMBOL_GPL vmlinux 0xc4059ee6 bpf_prog_create +EXPORT_SYMBOL_GPL vmlinux 0xc41877a6 i2c_unregister_device EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long EXPORT_SYMBOL_GPL vmlinux 0xc42e14b9 sbitmap_any_bit_set -EXPORT_SYMBOL_GPL vmlinux 0xc43c7f4a security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xc43432dd crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xc44a8985 crypto_comp_decompress EXPORT_SYMBOL_GPL vmlinux 0xc44afc48 pse_ethtool_set_config -EXPORT_SYMBOL_GPL vmlinux 0xc450f9dc kgdb_unregister_io_module EXPORT_SYMBOL_GPL vmlinux 0xc454fc7b twl_get_type EXPORT_SYMBOL_GPL vmlinux 0xc46324f6 dynevent_create EXPORT_SYMBOL_GPL vmlinux 0xc471c67a twl4030_audio_disable_resource -EXPORT_SYMBOL_GPL vmlinux 0xc4a16cc3 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xc479519b led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xc47b1e01 perf_get_aux +EXPORT_SYMBOL_GPL vmlinux 0xc47f34df devl_assert_locked +EXPORT_SYMBOL_GPL vmlinux 0xc480b795 pci_epc_unmap_addr +EXPORT_SYMBOL_GPL vmlinux 0xc497a24f devl_resource_size_get EXPORT_SYMBOL_GPL vmlinux 0xc4a31146 rdma_cgrp_subsys_on_dfl_key EXPORT_SYMBOL_GPL vmlinux 0xc4a72936 trusted_tpm_send -EXPORT_SYMBOL_GPL vmlinux 0xc4a95ea9 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xc4b89e60 of_phy_provider_unregister EXPORT_SYMBOL_GPL vmlinux 0xc4bc01eb btree_visitor -EXPORT_SYMBOL_GPL vmlinux 0xc4bf1eaa devm_rtc_device_register -EXPORT_SYMBOL_GPL vmlinux 0xc4d4f733 dst_cache_set_ip4 +EXPORT_SYMBOL_GPL vmlinux 0xc4c1b9a1 is_skb_forwardable EXPORT_SYMBOL_GPL vmlinux 0xc4d5e0e8 acpi_gpio_get_irq_resource -EXPORT_SYMBOL_GPL vmlinux 0xc4da6a58 __trace_trigger_soft_disabled -EXPORT_SYMBOL_GPL vmlinux 0xc4e74af2 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xc4d6b9f0 acpi_dev_pm_attach +EXPORT_SYMBOL_GPL vmlinux 0xc4e33f87 soc_device_match +EXPORT_SYMBOL_GPL vmlinux 0xc4ed3d6e devm_get_free_pages EXPORT_SYMBOL_GPL vmlinux 0xc4f0da12 ktime_get_with_offset -EXPORT_SYMBOL_GPL vmlinux 0xc4f6917a iommu_fwspec_init -EXPORT_SYMBOL_GPL vmlinux 0xc4f84e2b pci_epf_unbind -EXPORT_SYMBOL_GPL vmlinux 0xc50c4159 pinctrl_utils_add_map_configs -EXPORT_SYMBOL_GPL vmlinux 0xc5125df8 pci_ecam_free +EXPORT_SYMBOL_GPL vmlinux 0xc4f63cee iomap_dio_bio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xc517988b cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xc5201581 gov_attr_set_init +EXPORT_SYMBOL_GPL vmlinux 0xc52ed0a8 pci_check_and_unmask_intx EXPORT_SYMBOL_GPL vmlinux 0xc534d872 mt_next -EXPORT_SYMBOL_GPL vmlinux 0xc550880f transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xc542294a crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xc54a7396 pm_runtime_set_autosuspend_delay EXPORT_SYMBOL_GPL vmlinux 0xc5604800 clk_set_rate_exclusive EXPORT_SYMBOL_GPL vmlinux 0xc569d8ce __clk_get_name EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off EXPORT_SYMBOL_GPL vmlinux 0xc5777fca linear_range_get_selector_low_array EXPORT_SYMBOL_GPL vmlinux 0xc58a3ee6 icc_node_destroy -EXPORT_SYMBOL_GPL vmlinux 0xc58c0456 ata_bmdma_port_start32 -EXPORT_SYMBOL_GPL vmlinux 0xc5a4edcf fuse_dev_free +EXPORT_SYMBOL_GPL vmlinux 0xc5943877 acpi_dev_get_memory_resources +EXPORT_SYMBOL_GPL vmlinux 0xc595fbaa md_find_rdev_nr_rcu EXPORT_SYMBOL_GPL vmlinux 0xc5a5c678 uart_parse_earlycon -EXPORT_SYMBOL_GPL vmlinux 0xc5b4c116 pinctrl_register -EXPORT_SYMBOL_GPL vmlinux 0xc5b77939 iommu_detach_device_pasid -EXPORT_SYMBOL_GPL vmlinux 0xc5bb50cd of_irq_parse_and_map_pci -EXPORT_SYMBOL_GPL vmlinux 0xc5d0be36 wakeup_sources_walk_start -EXPORT_SYMBOL_GPL vmlinux 0xc5df3c0f icc_node_add -EXPORT_SYMBOL_GPL vmlinux 0xc6097027 debugfs_file_get -EXPORT_SYMBOL_GPL vmlinux 0xc60c8df5 ping_init_sock -EXPORT_SYMBOL_GPL vmlinux 0xc6103065 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0xc5aa6b35 dev_attr_ncq_prio_supported +EXPORT_SYMBOL_GPL vmlinux 0xc5afae3b usb_phy_set_event +EXPORT_SYMBOL_GPL vmlinux 0xc5b55617 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xc5b7d860 iomap_seek_hole +EXPORT_SYMBOL_GPL vmlinux 0xc5be1668 skcipher_alloc_instance_simple +EXPORT_SYMBOL_GPL vmlinux 0xc5c2e582 ext_pi_type3_crc64 +EXPORT_SYMBOL_GPL vmlinux 0xc5c46fe7 espintcp_push_skb +EXPORT_SYMBOL_GPL vmlinux 0xc5f90428 component_compare_of +EXPORT_SYMBOL_GPL vmlinux 0xc600606a ata_bmdma_status EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier -EXPORT_SYMBOL_GPL vmlinux 0xc61b9ad6 virtio_add_status -EXPORT_SYMBOL_GPL vmlinux 0xc61f6b52 mbox_bind_client EXPORT_SYMBOL_GPL vmlinux 0xc6250576 ZSTD_isError EXPORT_SYMBOL_GPL vmlinux 0xc62611e1 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xc62ddfd9 handle_fasteoi_irq +EXPORT_SYMBOL_GPL vmlinux 0xc62f7008 blk_revalidate_disk_zones EXPORT_SYMBOL_GPL vmlinux 0xc636d60f __tracepoint_pelt_se_tp -EXPORT_SYMBOL_GPL vmlinux 0xc6370ad5 pci_iov_get_pf_drvdata -EXPORT_SYMBOL_GPL vmlinux 0xc63728cf badblocks_show -EXPORT_SYMBOL_GPL vmlinux 0xc63b0eca dev_pm_opp_get_of_node +EXPORT_SYMBOL_GPL vmlinux 0xc641e82f tpm_default_chip EXPORT_SYMBOL_GPL vmlinux 0xc6479804 unregister_kretprobes EXPORT_SYMBOL_GPL vmlinux 0xc64fd66a add_hwgenerator_randomness +EXPORT_SYMBOL_GPL vmlinux 0xc65b1d9b pci_ecam_free EXPORT_SYMBOL_GPL vmlinux 0xc66b77b1 iommu_group_set_iommudata -EXPORT_SYMBOL_GPL vmlinux 0xc6741df0 crypto_unregister_acomps EXPORT_SYMBOL_GPL vmlinux 0xc6779093 ring_buffer_record_enable -EXPORT_SYMBOL_GPL vmlinux 0xc687aecd sdio_register_driver -EXPORT_SYMBOL_GPL vmlinux 0xc68ab00d user_describe +EXPORT_SYMBOL_GPL vmlinux 0xc67c1444 debugfs_real_fops EXPORT_SYMBOL_GPL vmlinux 0xc68c41d6 __SCK__tp_func_ata_bmdma_setup -EXPORT_SYMBOL_GPL vmlinux 0xc69376ed reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xc68d69a0 ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0xc690ad89 stmpe_set_bits EXPORT_SYMBOL_GPL vmlinux 0xc697b0f7 nvmem_device_read EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc69c19f6 serdev_device_alloc EXPORT_SYMBOL_GPL vmlinux 0xc6a4a872 __clk_is_enabled -EXPORT_SYMBOL_GPL vmlinux 0xc6b155b0 acpi_dma_request_slave_chan_by_index -EXPORT_SYMBOL_GPL vmlinux 0xc6bc412d irq_set_chip_and_handler_name -EXPORT_SYMBOL_GPL vmlinux 0xc6bcc557 espintcp_queue_out +EXPORT_SYMBOL_GPL vmlinux 0xc6a6825e __clk_mux_determine_rate_closest +EXPORT_SYMBOL_GPL vmlinux 0xc6b037a6 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xc6b6f709 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0xc6d290c1 fscrypt_fname_encrypted_size +EXPORT_SYMBOL_GPL vmlinux 0xc6d36ccb trace_array_printk EXPORT_SYMBOL_GPL vmlinux 0xc6e5bcf3 linear_range_get_selector_within -EXPORT_SYMBOL_GPL vmlinux 0xc6e7a777 pm_clk_suspend -EXPORT_SYMBOL_GPL vmlinux 0xc6ece4f2 tc3589x_reg_read -EXPORT_SYMBOL_GPL vmlinux 0xc7013d0c devm_ioremap_uc -EXPORT_SYMBOL_GPL vmlinux 0xc703c921 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0xc6efc9dc crypto_unregister_scomp EXPORT_SYMBOL_GPL vmlinux 0xc704161b ftrace_ops_set_global_filter EXPORT_SYMBOL_GPL vmlinux 0xc7061ef3 iova_cache_put -EXPORT_SYMBOL_GPL vmlinux 0xc706e318 syscon_regmap_lookup_by_phandle_optional -EXPORT_SYMBOL_GPL vmlinux 0xc71210eb md_bitmap_resize EXPORT_SYMBOL_GPL vmlinux 0xc71ad038 sbi_get_mvendorid -EXPORT_SYMBOL_GPL vmlinux 0xc71c0ba3 of_nvmem_layout_get_container -EXPORT_SYMBOL_GPL vmlinux 0xc724f2da wbt_disable_default -EXPORT_SYMBOL_GPL vmlinux 0xc73d6542 devm_free_percpu -EXPORT_SYMBOL_GPL vmlinux 0xc774c8d9 tcpv6_prot -EXPORT_SYMBOL_GPL vmlinux 0xc782624b acpiphp_unregister_attention +EXPORT_SYMBOL_GPL vmlinux 0xc7345721 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xc73ffdbc mctrl_gpio_init +EXPORT_SYMBOL_GPL vmlinux 0xc7613562 blk_mq_sched_mark_restart_hctx +EXPORT_SYMBOL_GPL vmlinux 0xc76f3389 perf_trace_run_bpf_submit +EXPORT_SYMBOL_GPL vmlinux 0xc77a644d fsnotify +EXPORT_SYMBOL_GPL vmlinux 0xc78048d1 dm_audit_log_bio EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch EXPORT_SYMBOL_GPL vmlinux 0xc7a7e770 clk_bulk_enable -EXPORT_SYMBOL_GPL vmlinux 0xc7bf8585 user_destroy -EXPORT_SYMBOL_GPL vmlinux 0xc7c96647 __put_net -EXPORT_SYMBOL_GPL vmlinux 0xc7d6a2a5 pm_genpd_remove_subdomain +EXPORT_SYMBOL_GPL vmlinux 0xc7a9de2b xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0xc7b32fd2 usb_alloc_dev +EXPORT_SYMBOL_GPL vmlinux 0xc7bc953b rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0xc7cbbbff iommu_alloc_resv_region +EXPORT_SYMBOL_GPL vmlinux 0xc7cbff28 fuse_dev_alloc EXPORT_SYMBOL_GPL vmlinux 0xc7e64fc2 asn1_encode_integer EXPORT_SYMBOL_GPL vmlinux 0xc7ec58d9 srcu_torture_stats_print EXPORT_SYMBOL_GPL vmlinux 0xc7fa4aa9 kobj_ns_drop -EXPORT_SYMBOL_GPL vmlinux 0xc80c7eb2 __traceiter_neigh_timer_handler -EXPORT_SYMBOL_GPL vmlinux 0xc81195d0 mbox_request_channel -EXPORT_SYMBOL_GPL vmlinux 0xc8264ec1 static_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0xc805fa4e failover_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc8147082 ata_sas_tport_delete EXPORT_SYMBOL_GPL vmlinux 0xc82b3a88 __SCK__tp_func_rpm_resume EXPORT_SYMBOL_GPL vmlinux 0xc82c721f klist_remove -EXPORT_SYMBOL_GPL vmlinux 0xc83bff23 dma_request_chan_by_mask -EXPORT_SYMBOL_GPL vmlinux 0xc840f6c4 devm_gpiod_get_array_optional -EXPORT_SYMBOL_GPL vmlinux 0xc844c5aa pci_epc_unmap_addr +EXPORT_SYMBOL_GPL vmlinux 0xc8309ee8 ipv4_sk_redirect EXPORT_SYMBOL_GPL vmlinux 0xc8594d3d reset_control_acquire -EXPORT_SYMBOL_GPL vmlinux 0xc865e027 free_fib_info -EXPORT_SYMBOL_GPL vmlinux 0xc8672652 pm_generic_poweroff_noirq -EXPORT_SYMBOL_GPL vmlinux 0xc868f5c8 dev_pm_domain_attach -EXPORT_SYMBOL_GPL vmlinux 0xc8aa339b genphy_c45_check_and_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0xc85db3a7 fib_nexthop_info +EXPORT_SYMBOL_GPL vmlinux 0xc870a269 fwnode_get_nth_parent +EXPORT_SYMBOL_GPL vmlinux 0xc892f508 ehci_reset +EXPORT_SYMBOL_GPL vmlinux 0xc893c719 devm_regmap_field_bulk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc89ca7eb device_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0xc89f13e2 extcon_get_edev_name +EXPORT_SYMBOL_GPL vmlinux 0xc8a1532e pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xc8ad58ac i2c_new_scanned_device EXPORT_SYMBOL_GPL vmlinux 0xc8b36283 call_srcu -EXPORT_SYMBOL_GPL vmlinux 0xc8bfe430 devlink_port_attrs_pci_sf_set -EXPORT_SYMBOL_GPL vmlinux 0xc8c24919 stmpe_reg_read -EXPORT_SYMBOL_GPL vmlinux 0xc8d7af8b vcap_port_debugfs +EXPORT_SYMBOL_GPL vmlinux 0xc8b3ad6c da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xc8d11e41 of_alias_from_compatible EXPORT_SYMBOL_GPL vmlinux 0xc8ddd5b5 kstrdup_quotable -EXPORT_SYMBOL_GPL vmlinux 0xc8f0214e irq_domain_remove_sim -EXPORT_SYMBOL_GPL vmlinux 0xc8f2559a nvmem_cell_read_variable_le_u32 -EXPORT_SYMBOL_GPL vmlinux 0xc9016065 devm_kstrdup -EXPORT_SYMBOL_GPL vmlinux 0xc91c8e67 devm_extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0xc8f8062c __auxiliary_device_add +EXPORT_SYMBOL_GPL vmlinux 0xc8f89a59 edac_device_handle_ue_count +EXPORT_SYMBOL_GPL vmlinux 0xc903b925 nf_checksum_partial +EXPORT_SYMBOL_GPL vmlinux 0xc911f24e class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc9150e9a pci_hp_deregister EXPORT_SYMBOL_GPL vmlinux 0xc91fdf58 percpu_ref_is_zero -EXPORT_SYMBOL_GPL vmlinux 0xc921ec5c blk_req_needs_zone_write_lock -EXPORT_SYMBOL_GPL vmlinux 0xc9258f12 of_dma_is_coherent -EXPORT_SYMBOL_GPL vmlinux 0xc93946eb nvdimm_name +EXPORT_SYMBOL_GPL vmlinux 0xc9227ea8 blk_mq_complete_request_remote +EXPORT_SYMBOL_GPL vmlinux 0xc924581c css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0xc93e285e fscrypt_symlink_getattr EXPORT_SYMBOL_GPL vmlinux 0xc93ee1e7 usb_phy_roothub_init EXPORT_SYMBOL_GPL vmlinux 0xc941f1a2 klist_init -EXPORT_SYMBOL_GPL vmlinux 0xc9485722 ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0xc9458745 folio_alloc_buffers +EXPORT_SYMBOL_GPL vmlinux 0xc945bcf2 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xc9483bd6 efivars_register +EXPORT_SYMBOL_GPL vmlinux 0xc94d418c led_trigger_set EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc957675f sysfs_unbreak_active_protection EXPORT_SYMBOL_GPL vmlinux 0xc95784eb ipi_send_mask -EXPORT_SYMBOL_GPL vmlinux 0xc958d525 nvdimm_has_cache -EXPORT_SYMBOL_GPL vmlinux 0xc95c68dd genphy_c45_plca_get_cfg EXPORT_SYMBOL_GPL vmlinux 0xc9641b48 visitor32 -EXPORT_SYMBOL_GPL vmlinux 0xc96708f2 dev_pm_qos_remove_request EXPORT_SYMBOL_GPL vmlinux 0xc9715630 __SCK__tp_func_ata_bmdma_status -EXPORT_SYMBOL_GPL vmlinux 0xc97ce5c1 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xc97f25db ping_recvmsg EXPORT_SYMBOL_GPL vmlinux 0xc9827693 __bpf_call_base -EXPORT_SYMBOL_GPL vmlinux 0xc98fe120 usb_disable_xhci_ports -EXPORT_SYMBOL_GPL vmlinux 0xc99353c4 __pm_runtime_suspend -EXPORT_SYMBOL_GPL vmlinux 0xc9be3e54 powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0xc98ddbae ip6_route_output_flags +EXPORT_SYMBOL_GPL vmlinux 0xc99bbb26 device_property_present +EXPORT_SYMBOL_GPL vmlinux 0xc9af89eb devlink_port_attrs_set +EXPORT_SYMBOL_GPL vmlinux 0xc9bc3d15 crypto_alloc_kpp +EXPORT_SYMBOL_GPL vmlinux 0xc9c3eff1 usb_choose_configuration EXPORT_SYMBOL_GPL vmlinux 0xc9ceea06 clk_has_parent -EXPORT_SYMBOL_GPL vmlinux 0xc9cf45d6 dm_internal_suspend_noflush -EXPORT_SYMBOL_GPL vmlinux 0xc9dd445c fscrypt_ioctl_get_key_status -EXPORT_SYMBOL_GPL vmlinux 0xc9dea07b irq_of_parse_and_map -EXPORT_SYMBOL_GPL vmlinux 0xc9e478d0 pm_clk_runtime_resume -EXPORT_SYMBOL_GPL vmlinux 0xc9e4d65e iptunnel_metadata_reply -EXPORT_SYMBOL_GPL vmlinux 0xc9e804a9 __clocksource_register_scale -EXPORT_SYMBOL_GPL vmlinux 0xc9e96601 regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xc9d161d6 of_console_check +EXPORT_SYMBOL_GPL vmlinux 0xc9dbf5cb task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0xc9dc5ad5 rio_release_inb_mbox EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu -EXPORT_SYMBOL_GPL vmlinux 0xc9f10ba8 bpf_prog_free -EXPORT_SYMBOL_GPL vmlinux 0xc9f34952 devm_clk_bulk_get_optional -EXPORT_SYMBOL_GPL vmlinux 0xc9f59e3e pci_user_read_config_dword -EXPORT_SYMBOL_GPL vmlinux 0xc9fbeb7f ip6_route_input_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc9fa9898 pci_epc_multi_mem_init EXPORT_SYMBOL_GPL vmlinux 0xc9fd634a usb_role_switch_put -EXPORT_SYMBOL_GPL vmlinux 0xca05a5eb tty_ldisc_ref -EXPORT_SYMBOL_GPL vmlinux 0xca158bda i2c_slave_event -EXPORT_SYMBOL_GPL vmlinux 0xca16ad00 fwnode_gpiod_get_index -EXPORT_SYMBOL_GPL vmlinux 0xca1d0b40 irq_domain_associate -EXPORT_SYMBOL_GPL vmlinux 0xca2be146 tcp_reno_undo_cwnd -EXPORT_SYMBOL_GPL vmlinux 0xca2eb50f crypto_grab_kpp +EXPORT_SYMBOL_GPL vmlinux 0xca2365d5 pci_vpd_alloc +EXPORT_SYMBOL_GPL vmlinux 0xca3cb7d4 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xca453f9a __traceiter_tcp_send_reset EXPORT_SYMBOL_GPL vmlinux 0xca454a34 vt_get_leds EXPORT_SYMBOL_GPL vmlinux 0xca500464 ZSTD_getErrorName -EXPORT_SYMBOL_GPL vmlinux 0xca5cf9e4 crypto_alloc_rng -EXPORT_SYMBOL_GPL vmlinux 0xca665761 iommu_device_claim_dma_owner -EXPORT_SYMBOL_GPL vmlinux 0xca6b39e7 usb_poison_urb -EXPORT_SYMBOL_GPL vmlinux 0xca769fa6 serdev_device_write_buf +EXPORT_SYMBOL_GPL vmlinux 0xca5a6084 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0xca5ebf54 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xca622139 devm_register_restart_handler +EXPORT_SYMBOL_GPL vmlinux 0xca66649f gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xca66a6ff regmap_get_max_register +EXPORT_SYMBOL_GPL vmlinux 0xca6d464e tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0xca6d8e2a irq_domain_push_irq +EXPORT_SYMBOL_GPL vmlinux 0xca761fe8 tty_buffer_space_avail +EXPORT_SYMBOL_GPL vmlinux 0xca76b3bf regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xca779486 mddev_suspend EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop -EXPORT_SYMBOL_GPL vmlinux 0xca7fa87b phy_led_triggers_unregister +EXPORT_SYMBOL_GPL vmlinux 0xca818157 rz_mtu3_32bit_ch_write EXPORT_SYMBOL_GPL vmlinux 0xca9a1d5e ring_buffer_free -EXPORT_SYMBOL_GPL vmlinux 0xcaab3897 regmap_get_raw_read_max -EXPORT_SYMBOL_GPL vmlinux 0xcaba0028 fwnode_graph_get_port_parent +EXPORT_SYMBOL_GPL vmlinux 0xca9bc1af pm_genpd_add_subdomain +EXPORT_SYMBOL_GPL vmlinux 0xca9c455c acpiphp_register_attention +EXPORT_SYMBOL_GPL vmlinux 0xca9dab8d dev_pm_genpd_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcaa42b18 devm_platform_ioremap_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xcaaab69e bd_prepare_to_claim +EXPORT_SYMBOL_GPL vmlinux 0xcab232bb usb_put_dev EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock -EXPORT_SYMBOL_GPL vmlinux 0xcae085f1 unregister_acpi_bus_type -EXPORT_SYMBOL_GPL vmlinux 0xcae79b6f tty_port_default_client_ops -EXPORT_SYMBOL_GPL vmlinux 0xcaeee601 mmc_crypto_prepare_req -EXPORT_SYMBOL_GPL vmlinux 0xcaf2eef9 crypto_alloc_skcipher -EXPORT_SYMBOL_GPL vmlinux 0xcb13448f nvmem_layout_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcabf7b3f fwnode_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0xcac77b9c sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xcad21c5a iomap_file_unshare +EXPORT_SYMBOL_GPL vmlinux 0xcae9f69b gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xcb1af20e usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0xcb1dad10 devlink_port_health_reporter_create EXPORT_SYMBOL_GPL vmlinux 0xcb2bfe2b nvmem_register_notifier -EXPORT_SYMBOL_GPL vmlinux 0xcb42384b clk_hw_unregister_divider +EXPORT_SYMBOL_GPL vmlinux 0xcb3a5165 driver_set_override +EXPORT_SYMBOL_GPL vmlinux 0xcb42049b irq_domain_free_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0xcb49e1b2 switchdev_handle_fdb_event_to_device EXPORT_SYMBOL_GPL vmlinux 0xcb4a7d9b public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0xcb4e4483 devlink_port_register_with_ops EXPORT_SYMBOL_GPL vmlinux 0xcb4f09b6 alloc_iova_fast EXPORT_SYMBOL_GPL vmlinux 0xcb561441 mem_dump_obj -EXPORT_SYMBOL_GPL vmlinux 0xcb6c767e genphy_c45_pma_resume -EXPORT_SYMBOL_GPL vmlinux 0xcb849885 crypto_aead_decrypt -EXPORT_SYMBOL_GPL vmlinux 0xcb972f42 cpufreq_register_driver -EXPORT_SYMBOL_GPL vmlinux 0xcba49a13 xdp_return_frame_rx_napi +EXPORT_SYMBOL_GPL vmlinux 0xcb598861 genphy_c45_check_and_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0xcb59ed53 regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0xcb5c510e simple_rename_exchange +EXPORT_SYMBOL_GPL vmlinux 0xcb67bc65 __traceiter_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0xcb826d27 skb_splice_bits +EXPORT_SYMBOL_GPL vmlinux 0xcb924098 disk_set_zoned +EXPORT_SYMBOL_GPL vmlinux 0xcb9352bb exportfs_decode_fh_raw EXPORT_SYMBOL_GPL vmlinux 0xcbac5f63 ftrace_free_filter -EXPORT_SYMBOL_GPL vmlinux 0xcbbfc091 rtc_set_time -EXPORT_SYMBOL_GPL vmlinux 0xcbd11dea devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xcbb60eeb vfs_submount +EXPORT_SYMBOL_GPL vmlinux 0xcbb86a29 devlink_port_linecard_set +EXPORT_SYMBOL_GPL vmlinux 0xcbccef98 devm_hwspin_lock_free +EXPORT_SYMBOL_GPL vmlinux 0xcbd1c091 nfct_btf_struct_access EXPORT_SYMBOL_GPL vmlinux 0xcbdfc7f1 fanout_mutex -EXPORT_SYMBOL_GPL vmlinux 0xcbe47904 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xcbe075b1 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xcbe0a3ca dequeue_signal EXPORT_SYMBOL_GPL vmlinux 0xcbe491f0 klist_prev +EXPORT_SYMBOL_GPL vmlinux 0xcbe4944d __thermal_zone_get_trip EXPORT_SYMBOL_GPL vmlinux 0xcbe56bc2 zs_get_total_pages -EXPORT_SYMBOL_GPL vmlinux 0xcbef0ca2 pinctrl_generic_add_group -EXPORT_SYMBOL_GPL vmlinux 0xcc01a81d regulator_get_current_limit_regmap -EXPORT_SYMBOL_GPL vmlinux 0xcc23ee66 __percpu_init_rwsem -EXPORT_SYMBOL_GPL vmlinux 0xcc3462d0 nvdimm_bus_check_dimm_count +EXPORT_SYMBOL_GPL vmlinux 0xcbff2426 __mmc_poll_for_busy +EXPORT_SYMBOL_GPL vmlinux 0xcc125caa dev_pm_opp_disable +EXPORT_SYMBOL_GPL vmlinux 0xcc20c5a3 usb_add_phy_dev EXPORT_SYMBOL_GPL vmlinux 0xcc39c03e nvmem_unregister -EXPORT_SYMBOL_GPL vmlinux 0xcc4abe13 rz_mtu3_disable -EXPORT_SYMBOL_GPL vmlinux 0xcc515c59 devm_of_phy_optional_get -EXPORT_SYMBOL_GPL vmlinux 0xcc5195fb pm_generic_thaw -EXPORT_SYMBOL_GPL vmlinux 0xcc589bb5 register_btf_kfunc_id_set -EXPORT_SYMBOL_GPL vmlinux 0xcc635176 md_start -EXPORT_SYMBOL_GPL vmlinux 0xcc6798c5 serial8250_do_get_mctrl -EXPORT_SYMBOL_GPL vmlinux 0xcc749848 device_bind_driver -EXPORT_SYMBOL_GPL vmlinux 0xcc861913 phy_pm_runtime_get_sync -EXPORT_SYMBOL_GPL vmlinux 0xcc88e678 fwnode_get_next_available_child_node -EXPORT_SYMBOL_GPL vmlinux 0xcc891c6b sdio_unregister_driver -EXPORT_SYMBOL_GPL vmlinux 0xcc8a6d29 tty_buffer_unlock_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xcc4b4031 regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0xcc4cc6a0 __pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0xcc73a546 pci_generic_config_write32 +EXPORT_SYMBOL_GPL vmlinux 0xcc8dfb97 inet6_cleanup_sock +EXPORT_SYMBOL_GPL vmlinux 0xcc8ffc64 fwnode_get_phy_mode EXPORT_SYMBOL_GPL vmlinux 0xcc935375 walk_iomem_res_desc EXPORT_SYMBOL_GPL vmlinux 0xccabde6f crc64_rocksoft_generic -EXPORT_SYMBOL_GPL vmlinux 0xccc2132c sysfs_update_groups -EXPORT_SYMBOL_GPL vmlinux 0xccc57c03 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xccba3375 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xccbbf62e cpufreq_dbs_governor_exit +EXPORT_SYMBOL_GPL vmlinux 0xccc85ecc pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0xccc9d4ab sata_sff_hardreset EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug EXPORT_SYMBOL_GPL vmlinux 0xccd68d54 atomic_notifier_call_chain EXPORT_SYMBOL_GPL vmlinux 0xccd86806 ata_id_string -EXPORT_SYMBOL_GPL vmlinux 0xcce965bf iomap_file_buffered_write -EXPORT_SYMBOL_GPL vmlinux 0xccf1f057 usb_hub_release_port +EXPORT_SYMBOL_GPL vmlinux 0xcce05a65 of_devfreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0xcce426e8 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xccf320db crypto_ahash_digest EXPORT_SYMBOL_GPL vmlinux 0xccf52bc9 sfp_upstream_start -EXPORT_SYMBOL_GPL vmlinux 0xccf55e38 usb_register_dev -EXPORT_SYMBOL_GPL vmlinux 0xccf6ee4e sata_lpm_ignore_phy_events -EXPORT_SYMBOL_GPL vmlinux 0xccfc38ac usb_for_each_dev -EXPORT_SYMBOL_GPL vmlinux 0xcd09ede3 ata_sff_dma_pause -EXPORT_SYMBOL_GPL vmlinux 0xcd1271e6 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xccf8b09d pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xcd07e07d virtqueue_get_used_addr EXPORT_SYMBOL_GPL vmlinux 0xcd1f1c72 kset_create_and_add EXPORT_SYMBOL_GPL vmlinux 0xcd24e146 hash_digest_size -EXPORT_SYMBOL_GPL vmlinux 0xcd2a60a5 uhci_reset_hc -EXPORT_SYMBOL_GPL vmlinux 0xcd2d3271 device_property_read_string -EXPORT_SYMBOL_GPL vmlinux 0xcd32408a regulator_list_voltage_linear -EXPORT_SYMBOL_GPL vmlinux 0xcd3db542 blk_queue_zone_write_granularity -EXPORT_SYMBOL_GPL vmlinux 0xcd43d271 ohci_hub_control -EXPORT_SYMBOL_GPL vmlinux 0xcd50eec2 key_type_logon -EXPORT_SYMBOL_GPL vmlinux 0xcd5658e1 gpiod_direction_input -EXPORT_SYMBOL_GPL vmlinux 0xcd59feea rdev_get_name -EXPORT_SYMBOL_GPL vmlinux 0xcd691460 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xcd2a5611 msi_next_desc +EXPORT_SYMBOL_GPL vmlinux 0xcd348728 thermal_zone_device_disable +EXPORT_SYMBOL_GPL vmlinux 0xcd43afe3 pci_epf_add_vepf EXPORT_SYMBOL_GPL vmlinux 0xcd6a3aa3 btree_destroy -EXPORT_SYMBOL_GPL vmlinux 0xcd6b6e2e misc_cg_uncharge -EXPORT_SYMBOL_GPL vmlinux 0xcd6c3116 sb800_prefetch -EXPORT_SYMBOL_GPL vmlinux 0xcd6d0d3d da9052_request_irq EXPORT_SYMBOL_GPL vmlinux 0xcd6f2dc9 nf_log_buf_add -EXPORT_SYMBOL_GPL vmlinux 0xcd730d34 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xcd738fa8 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0xcd82300a register_btf_id_dtor_kfuncs +EXPORT_SYMBOL_GPL vmlinux 0xcd905a77 i2c_adapter_depth EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq EXPORT_SYMBOL_GPL vmlinux 0xcd974f00 rcu_all_qs +EXPORT_SYMBOL_GPL vmlinux 0xcd996e5d serial8250_modem_status EXPORT_SYMBOL_GPL vmlinux 0xcd9cd2ff wakeme_after_rcu +EXPORT_SYMBOL_GPL vmlinux 0xcdabc0b6 pci_find_host_bridge +EXPORT_SYMBOL_GPL vmlinux 0xcdabf7e3 nvmem_add_one_cell EXPORT_SYMBOL_GPL vmlinux 0xcdadf2d1 rhashtable_destroy -EXPORT_SYMBOL_GPL vmlinux 0xcdaf21c7 blkcg_root_css EXPORT_SYMBOL_GPL vmlinux 0xcdb6adcc ras_userspace_consumers -EXPORT_SYMBOL_GPL vmlinux 0xcdbd3930 __alloc_pages_bulk -EXPORT_SYMBOL_GPL vmlinux 0xcdbfa32a crypto_akcipher_sync_decrypt +EXPORT_SYMBOL_GPL vmlinux 0xcdb6b0ce acpi_is_pnp_device +EXPORT_SYMBOL_GPL vmlinux 0xcdb9d439 gpiod_get_value EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs -EXPORT_SYMBOL_GPL vmlinux 0xcdcc5a87 device_property_read_u64_array -EXPORT_SYMBOL_GPL vmlinux 0xcde3d6c3 net_failover_destroy -EXPORT_SYMBOL_GPL vmlinux 0xcde4bfb5 devl_rate_node_create -EXPORT_SYMBOL_GPL vmlinux 0xcdea882f proc_mkdir_data -EXPORT_SYMBOL_GPL vmlinux 0xce02bc78 crypto_shash_update -EXPORT_SYMBOL_GPL vmlinux 0xce225a52 is_virtio_device -EXPORT_SYMBOL_GPL vmlinux 0xce2f3898 usb_phy_get_charger_current -EXPORT_SYMBOL_GPL vmlinux 0xce5eba2a dev_pm_opp_of_find_icc_paths -EXPORT_SYMBOL_GPL vmlinux 0xce66b23d clk_hw_round_rate +EXPORT_SYMBOL_GPL vmlinux 0xcdd311a3 devl_dpipe_table_register +EXPORT_SYMBOL_GPL vmlinux 0xcdda3648 switchdev_handle_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0xcde0593e securityfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xcde6b8e9 wbc_attach_and_unlock_inode +EXPORT_SYMBOL_GPL vmlinux 0xcdf598d0 rio_mport_initialize +EXPORT_SYMBOL_GPL vmlinux 0xcdf59a11 device_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xce07bf08 skcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xce185c6d devm_clk_hw_get_clk +EXPORT_SYMBOL_GPL vmlinux 0xce2af09a __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xce30772d balloon_page_alloc +EXPORT_SYMBOL_GPL vmlinux 0xce38223e regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xce3cc840 acpi_dev_gpio_irq_wake_get_by +EXPORT_SYMBOL_GPL vmlinux 0xce403cf9 param_set_bool_enable_only +EXPORT_SYMBOL_GPL vmlinux 0xce4b8105 usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0xce6091ea fb_sys_read EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching -EXPORT_SYMBOL_GPL vmlinux 0xce715bdc uhci_check_and_reset_hc -EXPORT_SYMBOL_GPL vmlinux 0xce736914 ata_acpi_gtm_xfermask -EXPORT_SYMBOL_GPL vmlinux 0xce7f364c devlink_port_type_eth_set -EXPORT_SYMBOL_GPL vmlinux 0xce8605b0 __traceiter_remove_device_from_group -EXPORT_SYMBOL_GPL vmlinux 0xce992504 ata_scsi_slave_destroy -EXPORT_SYMBOL_GPL vmlinux 0xce993aa9 security_file_ioctl -EXPORT_SYMBOL_GPL vmlinux 0xceac9f7a phy_pm_runtime_allow -EXPORT_SYMBOL_GPL vmlinux 0xceae83bb xdp_do_redirect +EXPORT_SYMBOL_GPL vmlinux 0xce7d0bb5 debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0xce7f291b __devm_clk_hw_register_mux +EXPORT_SYMBOL_GPL vmlinux 0xcea9ac1d component_compare_dev_name EXPORT_SYMBOL_GPL vmlinux 0xceb1f126 mpi_read_raw_data EXPORT_SYMBOL_GPL vmlinux 0xceda4867 sbitmap_queue_resize EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console EXPORT_SYMBOL_GPL vmlinux 0xcee6c4d3 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xcee86427 virtio_check_mem_acc_cb EXPORT_SYMBOL_GPL vmlinux 0xcee88e7a of_overlay_fdt_apply -EXPORT_SYMBOL_GPL vmlinux 0xcef9aad2 __dev_forward_skb -EXPORT_SYMBOL_GPL vmlinux 0xcf482aff balance_dirty_pages_ratelimited_flags -EXPORT_SYMBOL_GPL vmlinux 0xcf4a412b da9055_regmap_config -EXPORT_SYMBOL_GPL vmlinux 0xcf4d3d73 ata_sas_port_resume -EXPORT_SYMBOL_GPL vmlinux 0xcf6388f4 nvdimm_clear_poison -EXPORT_SYMBOL_GPL vmlinux 0xcf7338ce device_show_int -EXPORT_SYMBOL_GPL vmlinux 0xcf81f85d genphy_c45_plca_get_status -EXPORT_SYMBOL_GPL vmlinux 0xcf92796d fat_flush_inodes -EXPORT_SYMBOL_GPL vmlinux 0xcf9b758e devl_dpipe_table_register -EXPORT_SYMBOL_GPL vmlinux 0xcf9c4ad5 blkg_prfill_rwstat -EXPORT_SYMBOL_GPL vmlinux 0xcfb34ebb lp8788_update_bits -EXPORT_SYMBOL_GPL vmlinux 0xcfb8be07 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xcefedfe3 platform_irq_count +EXPORT_SYMBOL_GPL vmlinux 0xcf017ea2 fwnode_get_parent +EXPORT_SYMBOL_GPL vmlinux 0xcf07adc1 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0xcf08eca3 regulator_suspend_enable +EXPORT_SYMBOL_GPL vmlinux 0xcf1a6711 devm_kasprintf +EXPORT_SYMBOL_GPL vmlinux 0xcf2c0031 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0xcf2eaab5 edac_device_del_device +EXPORT_SYMBOL_GPL vmlinux 0xcf389a34 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xcf531d47 __traceiter_udp_fail_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0xcf58b2f5 platform_get_mem_or_io +EXPORT_SYMBOL_GPL vmlinux 0xcf5b71d7 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xcf63973c phy_package_leave +EXPORT_SYMBOL_GPL vmlinux 0xcf63d2c1 __traceiter_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xcf63d320 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0xcf693dd0 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xcf73d433 nfs_ssc_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcf76cdd8 devm_kmemdup +EXPORT_SYMBOL_GPL vmlinux 0xcf788d0f filemap_add_folio +EXPORT_SYMBOL_GPL vmlinux 0xcf87e9c4 blk_mq_end_request_batch +EXPORT_SYMBOL_GPL vmlinux 0xcfa4edee acpi_kobj +EXPORT_SYMBOL_GPL vmlinux 0xcfae3b1e dev_pm_opp_find_level_ceil EXPORT_SYMBOL_GPL vmlinux 0xcfc5108a devlink_fmsg_u8_pair_put EXPORT_SYMBOL_GPL vmlinux 0xcfc7b4e4 rcu_barrier_tasks_trace EXPORT_SYMBOL_GPL vmlinux 0xcfd30d71 acpi_os_map_memory -EXPORT_SYMBOL_GPL vmlinux 0xcfdf2a11 nvmem_add_cell_table -EXPORT_SYMBOL_GPL vmlinux 0xcff699c2 device_unregister -EXPORT_SYMBOL_GPL vmlinux 0xcffa06e1 bio_blkcg_css -EXPORT_SYMBOL_GPL vmlinux 0xcffef1ad devlink_dpipe_entry_ctx_close -EXPORT_SYMBOL_GPL vmlinux 0xd002487f ata_sff_drain_fifo -EXPORT_SYMBOL_GPL vmlinux 0xd0090909 ip6_dst_lookup_tunnel -EXPORT_SYMBOL_GPL vmlinux 0xd02b21bb bpf_warn_invalid_xdp_action -EXPORT_SYMBOL_GPL vmlinux 0xd02cfaf4 bpf_event_output -EXPORT_SYMBOL_GPL vmlinux 0xd02e048a to_software_node -EXPORT_SYMBOL_GPL vmlinux 0xd0337c10 fwnode_connection_find_matches -EXPORT_SYMBOL_GPL vmlinux 0xd03d4fe1 tty_buffer_set_limit +EXPORT_SYMBOL_GPL vmlinux 0xcff31ef1 extcon_dev_free +EXPORT_SYMBOL_GPL vmlinux 0xcff464ba devm_serdev_device_open +EXPORT_SYMBOL_GPL vmlinux 0xcff93abf msg_zerocopy_realloc +EXPORT_SYMBOL_GPL vmlinux 0xcffaaf0f serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0xd002b6b9 kernfs_find_and_get_ns +EXPORT_SYMBOL_GPL vmlinux 0xd0084da4 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xd00f1a5e spi_mem_dirmap_write +EXPORT_SYMBOL_GPL vmlinux 0xd0204ce0 nop_posix_acl_access +EXPORT_SYMBOL_GPL vmlinux 0xd0386b4c of_irq_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xd039c063 fscrypt_prepare_new_inode EXPORT_SYMBOL_GPL vmlinux 0xd03eaf4c schedule_hrtimeout_range -EXPORT_SYMBOL_GPL vmlinux 0xd049a149 serial8250_do_set_mctrl +EXPORT_SYMBOL_GPL vmlinux 0xd03f3122 fscrypt_fname_encrypt +EXPORT_SYMBOL_GPL vmlinux 0xd041a66b rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd04912a1 sysfs_groups_change_owner EXPORT_SYMBOL_GPL vmlinux 0xd04aedfd __SCK__tp_func_arm_event +EXPORT_SYMBOL_GPL vmlinux 0xd064c25c mdiobus_modify EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq EXPORT_SYMBOL_GPL vmlinux 0xd0686cd4 rcuref_put_slowpath -EXPORT_SYMBOL_GPL vmlinux 0xd070647f gpiod_set_value -EXPORT_SYMBOL_GPL vmlinux 0xd0752c97 genphy_c45_restart_aneg -EXPORT_SYMBOL_GPL vmlinux 0xd08437fc i2c_new_smbus_alert_device -EXPORT_SYMBOL_GPL vmlinux 0xd087de9d md_account_bio -EXPORT_SYMBOL_GPL vmlinux 0xd08dc0a0 crypto_sig_maxsize -EXPORT_SYMBOL_GPL vmlinux 0xd09743a1 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0xd076f38f phy_remove_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd0986b44 vp_modern_remove EXPORT_SYMBOL_GPL vmlinux 0xd09911a6 acpi_dev_get_irq_type -EXPORT_SYMBOL_GPL vmlinux 0xd0a60b90 phy_exit +EXPORT_SYMBOL_GPL vmlinux 0xd09c0933 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xd0a04709 devl_rate_leaf_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd0a99d39 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xd0b67d8b ptp_msg_is_sync +EXPORT_SYMBOL_GPL vmlinux 0xd0b9c5fd trace_seq_path EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart -EXPORT_SYMBOL_GPL vmlinux 0xd0ce953a scsi_alloc_request -EXPORT_SYMBOL_GPL vmlinux 0xd0d1f78f pci_destroy_slot -EXPORT_SYMBOL_GPL vmlinux 0xd0dac5d0 regmap_parse_val +EXPORT_SYMBOL_GPL vmlinux 0xd0c99d56 devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xd0cd573d acomp_request_free +EXPORT_SYMBOL_GPL vmlinux 0xd0d10a74 ata_scsi_slave_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd0d665f4 tty_set_termios EXPORT_SYMBOL_GPL vmlinux 0xd0db0f12 run_dax -EXPORT_SYMBOL_GPL vmlinux 0xd0dfd403 exportfs_decode_fh_raw -EXPORT_SYMBOL_GPL vmlinux 0xd0e26bb3 hwspin_lock_free -EXPORT_SYMBOL_GPL vmlinux 0xd0f9035d clk_register -EXPORT_SYMBOL_GPL vmlinux 0xd11c9925 debugfs_lookup -EXPORT_SYMBOL_GPL vmlinux 0xd12ad407 dma_get_merge_boundary -EXPORT_SYMBOL_GPL vmlinux 0xd1473574 gpiochip_populate_parent_fwspec_twocell +EXPORT_SYMBOL_GPL vmlinux 0xd0db1663 devlink_dpipe_entry_ctx_append +EXPORT_SYMBOL_GPL vmlinux 0xd0e03f9c skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0xd0e8dd85 io_uring_cmd_import_fixed +EXPORT_SYMBOL_GPL vmlinux 0xd0f61fbe sfp_add_phy +EXPORT_SYMBOL_GPL vmlinux 0xd11c0b7d ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0xd11e6f2f of_clk_add_hw_provider +EXPORT_SYMBOL_GPL vmlinux 0xd1240f61 devfreq_event_enable_edev +EXPORT_SYMBOL_GPL vmlinux 0xd12c806b xhci_get_ep_ctx +EXPORT_SYMBOL_GPL vmlinux 0xd1350021 serdev_device_wait_until_sent +EXPORT_SYMBOL_GPL vmlinux 0xd13de42f power_supply_set_battery_charged EXPORT_SYMBOL_GPL vmlinux 0xd1481de7 mpi_clear -EXPORT_SYMBOL_GPL vmlinux 0xd1484d35 nvmem_register -EXPORT_SYMBOL_GPL vmlinux 0xd14d98ca dev_pm_opp_xlate_required_opp +EXPORT_SYMBOL_GPL vmlinux 0xd1552925 perf_event_addr_filters_sync EXPORT_SYMBOL_GPL vmlinux 0xd159586c net_prio_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0xd15990a9 ata_sff_freeze -EXPORT_SYMBOL_GPL vmlinux 0xd163cf6e pwmchip_add -EXPORT_SYMBOL_GPL vmlinux 0xd17058c9 __pm_runtime_idle -EXPORT_SYMBOL_GPL vmlinux 0xd175dcb8 da9052_enable_irq -EXPORT_SYMBOL_GPL vmlinux 0xd17614e3 kthread_queue_delayed_work -EXPORT_SYMBOL_GPL vmlinux 0xd19582aa usb_unlocked_disable_lpm -EXPORT_SYMBOL_GPL vmlinux 0xd1974ff9 regulator_get_current_limit -EXPORT_SYMBOL_GPL vmlinux 0xd1a225a8 blk_crypto_profile_destroy -EXPORT_SYMBOL_GPL vmlinux 0xd1a87abb power_supply_get_property +EXPORT_SYMBOL_GPL vmlinux 0xd1763d8d device_create_managed_software_node EXPORT_SYMBOL_GPL vmlinux 0xd1a9ca15 __SCK__tp_func_neigh_update -EXPORT_SYMBOL_GPL vmlinux 0xd1acba07 ata_sas_port_alloc -EXPORT_SYMBOL_GPL vmlinux 0xd1b02d65 netdev_rx_handler_register -EXPORT_SYMBOL_GPL vmlinux 0xd1c188f9 devm_gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0xd1ab42c6 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xd1b617f8 ip6_route_lookup EXPORT_SYMBOL_GPL vmlinux 0xd1c3fb44 vcap_free_rule EXPORT_SYMBOL_GPL vmlinux 0xd1cbc23c add_timer_on -EXPORT_SYMBOL_GPL vmlinux 0xd1cfbe4d tps6586x_get_version +EXPORT_SYMBOL_GPL vmlinux 0xd1e068e0 device_phy_find_device +EXPORT_SYMBOL_GPL vmlinux 0xd1e1f48d firmware_request_platform EXPORT_SYMBOL_GPL vmlinux 0xd1e3acbb hrtimer_active +EXPORT_SYMBOL_GPL vmlinux 0xd1ec1991 sk_msg_free_nocharge EXPORT_SYMBOL_GPL vmlinux 0xd1f2eee2 nf_logger_find_get -EXPORT_SYMBOL_GPL vmlinux 0xd213489e crypto_rng_reset +EXPORT_SYMBOL_GPL vmlinux 0xd210719c pm_generic_thaw_noirq EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd2183e19 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0xd2195e03 pci_stop_and_remove_bus_device_locked EXPORT_SYMBOL_GPL vmlinux 0xd21b61bd async_schedule_node_domain -EXPORT_SYMBOL_GPL vmlinux 0xd21ea6cf regmap_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0xd21d56c5 of_msi_configure EXPORT_SYMBOL_GPL vmlinux 0xd21f1d35 __SCK__tp_func_tcp_send_reset -EXPORT_SYMBOL_GPL vmlinux 0xd2581b67 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xd221e65a device_link_del +EXPORT_SYMBOL_GPL vmlinux 0xd237f338 pm_runtime_suspended_time +EXPORT_SYMBOL_GPL vmlinux 0xd23bb8b0 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xd2401003 ipv6_proxy_select_ident EXPORT_SYMBOL_GPL vmlinux 0xd260af0d ring_buffer_write -EXPORT_SYMBOL_GPL vmlinux 0xd2625413 auxiliary_driver_unregister -EXPORT_SYMBOL_GPL vmlinux 0xd266efb6 pm_runtime_force_suspend EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative -EXPORT_SYMBOL_GPL vmlinux 0xd280a597 _proc_mkdir -EXPORT_SYMBOL_GPL vmlinux 0xd288da2a usb_free_urb -EXPORT_SYMBOL_GPL vmlinux 0xd28e8ef4 tpm_chip_register -EXPORT_SYMBOL_GPL vmlinux 0xd292496e ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xd274fb8e fib_nl_newrule +EXPORT_SYMBOL_GPL vmlinux 0xd27e3600 umd_load_blob +EXPORT_SYMBOL_GPL vmlinux 0xd28d330b bpf_trace_run4 +EXPORT_SYMBOL_GPL vmlinux 0xd29534bc clk_gate_ops EXPORT_SYMBOL_GPL vmlinux 0xd29c1f10 __traceiter_error_report_end -EXPORT_SYMBOL_GPL vmlinux 0xd2a1b00f con_debug_enter EXPORT_SYMBOL_GPL vmlinux 0xd2a4e9f1 sbi_get_mimpid EXPORT_SYMBOL_GPL vmlinux 0xd2b10a05 ata_timing_find_mode -EXPORT_SYMBOL_GPL vmlinux 0xd2b363ec pcie_port_bus_type -EXPORT_SYMBOL_GPL vmlinux 0xd2c78744 acpi_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xd2be58b6 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xd2c2508c rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xd2c85e9c __traceiter_napi_poll EXPORT_SYMBOL_GPL vmlinux 0xd2d7e59b unregister_platform_power_off -EXPORT_SYMBOL_GPL vmlinux 0xd2d88c17 devm_clk_get_prepared -EXPORT_SYMBOL_GPL vmlinux 0xd3081567 fat_remove_entries -EXPORT_SYMBOL_GPL vmlinux 0xd3139b7b of_irq_find_parent -EXPORT_SYMBOL_GPL vmlinux 0xd31531b9 driver_deferred_probe_check_state +EXPORT_SYMBOL_GPL vmlinux 0xd2e3f4eb set_secondary_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xd2e9cac7 fscrypt_limit_io_blocks EXPORT_SYMBOL_GPL vmlinux 0xd31a2ac5 ring_buffer_oldest_event_ts EXPORT_SYMBOL_GPL vmlinux 0xd320ebaf pci_epc_get_first_free_bar -EXPORT_SYMBOL_GPL vmlinux 0xd332214d pci_generic_ecam_ops -EXPORT_SYMBOL_GPL vmlinux 0xd349d6b1 rio_local_set_device_id -EXPORT_SYMBOL_GPL vmlinux 0xd35060f8 dw8250_do_set_termios -EXPORT_SYMBOL_GPL vmlinux 0xd3568c72 genpd_dev_pm_attach_by_id +EXPORT_SYMBOL_GPL vmlinux 0xd32ab38d ethtool_set_ethtool_phy_ops +EXPORT_SYMBOL_GPL vmlinux 0xd34329ff pci_pr3_present +EXPORT_SYMBOL_GPL vmlinux 0xd362cd8b fib_rules_unregister EXPORT_SYMBOL_GPL vmlinux 0xd36760ef __usb_get_extra_descriptor -EXPORT_SYMBOL_GPL vmlinux 0xd372b105 gpiod_disable_hw_timestamp_ns +EXPORT_SYMBOL_GPL vmlinux 0xd36bf3db hwmon_device_register_with_info +EXPORT_SYMBOL_GPL vmlinux 0xd36e28c8 i2c_match_id +EXPORT_SYMBOL_GPL vmlinux 0xd3705610 pci_epc_mem_init EXPORT_SYMBOL_GPL vmlinux 0xd3770223 mas_find_range_rev -EXPORT_SYMBOL_GPL vmlinux 0xd387e55f sdio_writew -EXPORT_SYMBOL_GPL vmlinux 0xd388174e wm8350_device_init EXPORT_SYMBOL_GPL vmlinux 0xd3901d33 acpi_dev_resource_address_space -EXPORT_SYMBOL_GPL vmlinux 0xd396468d ipv4_sk_redirect EXPORT_SYMBOL_GPL vmlinux 0xd39e9848 put_itimerspec64 EXPORT_SYMBOL_GPL vmlinux 0xd3cae698 kset_find_obj -EXPORT_SYMBOL_GPL vmlinux 0xd3d3eb7b to_nvdimm_bus_dev -EXPORT_SYMBOL_GPL vmlinux 0xd3e5371a devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xd3db8fe6 fib_rules_seq_read +EXPORT_SYMBOL_GPL vmlinux 0xd3dd2bd1 ethnl_cable_test_free +EXPORT_SYMBOL_GPL vmlinux 0xd3df2b4b regulator_get_current_limit_regmap +EXPORT_SYMBOL_GPL vmlinux 0xd3df75ee gpiod_get_optional EXPORT_SYMBOL_GPL vmlinux 0xd3eaf1ed devlink_dpipe_entry_clear EXPORT_SYMBOL_GPL vmlinux 0xd3ec851c __traceiter_unmap +EXPORT_SYMBOL_GPL vmlinux 0xd3ee8d96 virtqueue_disable_cb EXPORT_SYMBOL_GPL vmlinux 0xd3f0cd42 misc_cg_res_total_usage -EXPORT_SYMBOL_GPL vmlinux 0xd3f640d9 wm831x_reg_write -EXPORT_SYMBOL_GPL vmlinux 0xd3fd41fb sampling_rate_store EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq -EXPORT_SYMBOL_GPL vmlinux 0xd405e618 usb_root_hub_lost_power -EXPORT_SYMBOL_GPL vmlinux 0xd411bc74 mctp_register_netdev +EXPORT_SYMBOL_GPL vmlinux 0xd415e923 __fscrypt_inode_uses_inline_crypto +EXPORT_SYMBOL_GPL vmlinux 0xd418d80b ata_common_sdev_groups EXPORT_SYMBOL_GPL vmlinux 0xd42f1d4e show_rcu_tasks_rude_gp_kthread -EXPORT_SYMBOL_GPL vmlinux 0xd4306ec1 crypto_hash_alg_has_setkey -EXPORT_SYMBOL_GPL vmlinux 0xd449aa17 pinconf_generic_dump_config +EXPORT_SYMBOL_GPL vmlinux 0xd4302391 wbc_account_cgroup_owner +EXPORT_SYMBOL_GPL vmlinux 0xd4332ec1 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xd441fd80 sysfs_notify EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console -EXPORT_SYMBOL_GPL vmlinux 0xd44aadeb iommu_alloc_resv_region -EXPORT_SYMBOL_GPL vmlinux 0xd44ce03a of_clk_set_defaults -EXPORT_SYMBOL_GPL vmlinux 0xd465b842 __fsnotify_parent -EXPORT_SYMBOL_GPL vmlinux 0xd4695744 xfrm_local_error -EXPORT_SYMBOL_GPL vmlinux 0xd47ca46f icc_sync_state +EXPORT_SYMBOL_GPL vmlinux 0xd44cdb9c pci_dev_lock +EXPORT_SYMBOL_GPL vmlinux 0xd44d086e dm_post_suspending +EXPORT_SYMBOL_GPL vmlinux 0xd4790a92 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xd47fdda9 pci_cfg_access_lock EXPORT_SYMBOL_GPL vmlinux 0xd48a9773 drop_reasons_register_subsys -EXPORT_SYMBOL_GPL vmlinux 0xd49276ae stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xd4924a4e __sock_recv_wifi_status EXPORT_SYMBOL_GPL vmlinux 0xd4935851 __SCK__tp_func_suspend_resume -EXPORT_SYMBOL_GPL vmlinux 0xd4a4c0e8 ata_msleep -EXPORT_SYMBOL_GPL vmlinux 0xd4a88431 pcie_aspm_capable -EXPORT_SYMBOL_GPL vmlinux 0xd4b44988 cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0xd4a785c5 mdiobus_c45_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0xd4a9cd7b dev_pm_qos_update_user_latency_tolerance EXPORT_SYMBOL_GPL vmlinux 0xd4b6157e devlink_health_reporter_recovery_done EXPORT_SYMBOL_GPL vmlinux 0xd4b9a616 reset_control_bulk_put -EXPORT_SYMBOL_GPL vmlinux 0xd4c0de42 __blk_req_zone_write_lock +EXPORT_SYMBOL_GPL vmlinux 0xd4be90cb icmp_build_probe EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq EXPORT_SYMBOL_GPL vmlinux 0xd4cbdbe3 __SCK__tp_func_devlink_trap_report -EXPORT_SYMBOL_GPL vmlinux 0xd4e21f59 driver_register -EXPORT_SYMBOL_GPL vmlinux 0xd4e3888e peernet2id_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd4cd7849 gpiochip_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0xd4df0ec2 skb_zerocopy_headlen EXPORT_SYMBOL_GPL vmlinux 0xd4e6d7e0 linear_range_get_value +EXPORT_SYMBOL_GPL vmlinux 0xd4ec85b7 pci_epf_create +EXPORT_SYMBOL_GPL vmlinux 0xd4ecc1fd __traceiter_neigh_event_send_done EXPORT_SYMBOL_GPL vmlinux 0xd4f00a9b topology_set_scale_freq_source -EXPORT_SYMBOL_GPL vmlinux 0xd4f5f442 bpf_map_inc_with_uref -EXPORT_SYMBOL_GPL vmlinux 0xd51dbc73 component_master_del +EXPORT_SYMBOL_GPL vmlinux 0xd4f4df45 of_pci_dma_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0xd50fef48 pci_iomap_wc +EXPORT_SYMBOL_GPL vmlinux 0xd513ad23 devm_pm_opp_set_config +EXPORT_SYMBOL_GPL vmlinux 0xd52058e9 usb_driver_claim_interface EXPORT_SYMBOL_GPL vmlinux 0xd526c63f register_kretprobes -EXPORT_SYMBOL_GPL vmlinux 0xd52e9d2c usb_phy_roothub_resume EXPORT_SYMBOL_GPL vmlinux 0xd5301b2c linear_range_get_max_value +EXPORT_SYMBOL_GPL vmlinux 0xd53bde6e sched_show_task +EXPORT_SYMBOL_GPL vmlinux 0xd53dd128 sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd546b2e0 tcp_cong_avoid_ai EXPORT_SYMBOL_GPL vmlinux 0xd5474690 usb_role_switch_set_role -EXPORT_SYMBOL_GPL vmlinux 0xd5485de8 pm_runtime_get_if_active +EXPORT_SYMBOL_GPL vmlinux 0xd54fa91e iommu_set_pgtable_quirks EXPORT_SYMBOL_GPL vmlinux 0xd55ad93b iommu_group_get_iommudata -EXPORT_SYMBOL_GPL vmlinux 0xd562caf0 dw_pcie_write_dbi -EXPORT_SYMBOL_GPL vmlinux 0xd57dd6e2 __vfs_removexattr_locked -EXPORT_SYMBOL_GPL vmlinux 0xd583fcbf dev_pm_put_subsys_data -EXPORT_SYMBOL_GPL vmlinux 0xd596ce15 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd5790620 ncsi_start_dev +EXPORT_SYMBOL_GPL vmlinux 0xd5838ea5 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xd5846fbe pm_genpd_add_device EXPORT_SYMBOL_GPL vmlinux 0xd59a1587 linkmode_resolve_pause +EXPORT_SYMBOL_GPL vmlinux 0xd59ea8f8 dev_pm_opp_put_opp_table +EXPORT_SYMBOL_GPL vmlinux 0xd5cd2326 __traceiter_block_split EXPORT_SYMBOL_GPL vmlinux 0xd5cdbd75 mas_expected_entries EXPORT_SYMBOL_GPL vmlinux 0xd5d2b80b btree_merge -EXPORT_SYMBOL_GPL vmlinux 0xd5e0663f bpf_trace_run8 -EXPORT_SYMBOL_GPL vmlinux 0xd5e39e4f __spi_alloc_controller -EXPORT_SYMBOL_GPL vmlinux 0xd5ef00b3 i2c_bus_type -EXPORT_SYMBOL_GPL vmlinux 0xd5f18478 ata_ehi_clear_desc -EXPORT_SYMBOL_GPL vmlinux 0xd5f4c7be serdev_device_set_flow_control +EXPORT_SYMBOL_GPL vmlinux 0xd5eaa484 plda_pcie_host_deinit +EXPORT_SYMBOL_GPL vmlinux 0xd5f0a942 xfrm_audit_state_delete EXPORT_SYMBOL_GPL vmlinux 0xd5f5865d __tracepoint_pelt_dl_tp -EXPORT_SYMBOL_GPL vmlinux 0xd5fe9d90 rtc_initialize_alarm -EXPORT_SYMBOL_GPL vmlinux 0xd613720b i2c_acpi_client_count +EXPORT_SYMBOL_GPL vmlinux 0xd6071108 mptcp_pm_get_local_addr_max +EXPORT_SYMBOL_GPL vmlinux 0xd60d498a serdev_device_set_parity EXPORT_SYMBOL_GPL vmlinux 0xd6182b3b alarm_forward_now -EXPORT_SYMBOL_GPL vmlinux 0xd619525b __inode_attach_wb -EXPORT_SYMBOL_GPL vmlinux 0xd63041f8 kthread_data -EXPORT_SYMBOL_GPL vmlinux 0xd63e6698 irq_chip_request_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0xd62ae011 usb_string +EXPORT_SYMBOL_GPL vmlinux 0xd62cf451 lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0xd62fa44e extcon_sync +EXPORT_SYMBOL_GPL vmlinux 0xd644b995 rdev_set_badblocks EXPORT_SYMBOL_GPL vmlinux 0xd64ed259 __memcat_p EXPORT_SYMBOL_GPL vmlinux 0xd6501607 blkg_rwstat_exit -EXPORT_SYMBOL_GPL vmlinux 0xd6565177 blk_mq_virtio_map_queues +EXPORT_SYMBOL_GPL vmlinux 0xd6549beb i2c_new_client_device +EXPORT_SYMBOL_GPL vmlinux 0xd66108e5 sysfs_break_active_protection EXPORT_SYMBOL_GPL vmlinux 0xd6690be6 sbitmap_finish_wait -EXPORT_SYMBOL_GPL vmlinux 0xd66d4c1e gpiochip_irq_domain_activate +EXPORT_SYMBOL_GPL vmlinux 0xd669f2c4 devm_phy_get +EXPORT_SYMBOL_GPL vmlinux 0xd672b521 devres_for_each_res EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget -EXPORT_SYMBOL_GPL vmlinux 0xd6811370 __skb_get_hash_symmetric +EXPORT_SYMBOL_GPL vmlinux 0xd684b3c9 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0xd68dbdda crypto_enqueue_request_head +EXPORT_SYMBOL_GPL vmlinux 0xd697ef9b bpf_map_put +EXPORT_SYMBOL_GPL vmlinux 0xd69fb665 irq_gc_unmask_enable_reg EXPORT_SYMBOL_GPL vmlinux 0xd6aafb42 crc64_rocksoft EXPORT_SYMBOL_GPL vmlinux 0xd6ae9ba7 rcu_async_should_hurry -EXPORT_SYMBOL_GPL vmlinux 0xd6bdcb2d pingv6_prot -EXPORT_SYMBOL_GPL vmlinux 0xd6bee5b9 ata_link_online -EXPORT_SYMBOL_GPL vmlinux 0xd6c35a46 __phy_modify_mmd -EXPORT_SYMBOL_GPL vmlinux 0xd6d41084 fuse_fill_super_common -EXPORT_SYMBOL_GPL vmlinux 0xd6e76def ahash_register_instance -EXPORT_SYMBOL_GPL vmlinux 0xd6f245d7 shash_ahash_update -EXPORT_SYMBOL_GPL vmlinux 0xd6fdba8f usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0xd6c6a45e sk_msg_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0xd6ca799b clk_hw_unregister_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0xd6e48e3e clk_hw_get_parent_by_index +EXPORT_SYMBOL_GPL vmlinux 0xd6f75cf7 regulator_set_current_limit_regmap +EXPORT_SYMBOL_GPL vmlinux 0xd6fbcfc6 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd7004ab6 pinctrl_pm_select_idle_state +EXPORT_SYMBOL_GPL vmlinux 0xd705c2b7 device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0xd714ac3b iommu_register_device_fault_handler EXPORT_SYMBOL_GPL vmlinux 0xd7269c64 osc_sb_native_usb4_control -EXPORT_SYMBOL_GPL vmlinux 0xd7275753 dbs_update -EXPORT_SYMBOL_GPL vmlinux 0xd7286b37 acpi_device_modalias EXPORT_SYMBOL_GPL vmlinux 0xd7293ffc percpu_ref_reinit -EXPORT_SYMBOL_GPL vmlinux 0xd73306a9 tty_init_termios -EXPORT_SYMBOL_GPL vmlinux 0xd73cb750 scsi_internal_device_block_nowait -EXPORT_SYMBOL_GPL vmlinux 0xd74275a6 acpi_find_child_device -EXPORT_SYMBOL_GPL vmlinux 0xd75a0d28 divider_round_rate_parent +EXPORT_SYMBOL_GPL vmlinux 0xd7508b98 __tcp_send_ack EXPORT_SYMBOL_GPL vmlinux 0xd75b20aa rsa_parse_priv_key -EXPORT_SYMBOL_GPL vmlinux 0xd75ba156 ip6_datagram_send_ctl -EXPORT_SYMBOL_GPL vmlinux 0xd75fb6cd regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0xd75f4969 pci_bus_max_busnr EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints -EXPORT_SYMBOL_GPL vmlinux 0xd76b37dc aead_register_instance -EXPORT_SYMBOL_GPL vmlinux 0xd787e6cc netdev_sw_irq_coalesce_default_on -EXPORT_SYMBOL_GPL vmlinux 0xd79f1575 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xd772c05e icc_node_add +EXPORT_SYMBOL_GPL vmlinux 0xd776b080 dw_pcie_ep_init_notify +EXPORT_SYMBOL_GPL vmlinux 0xd7779072 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0xd784bab9 usb_urb_ep_type_check +EXPORT_SYMBOL_GPL vmlinux 0xd7868fe2 scsi_ioctl_block_when_processing_errors +EXPORT_SYMBOL_GPL vmlinux 0xd796a1db wait_on_page_writeback EXPORT_SYMBOL_GPL vmlinux 0xd7a86ea4 tcp_twsk_purge -EXPORT_SYMBOL_GPL vmlinux 0xd7ad600a spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xd7ab1e39 page_cache_ra_unbounded EXPORT_SYMBOL_GPL vmlinux 0xd7aea26e kernel_read_file_from_path_initns -EXPORT_SYMBOL_GPL vmlinux 0xd7aef770 vp_legacy_set_queue_address +EXPORT_SYMBOL_GPL vmlinux 0xd7c66489 led_set_brightness +EXPORT_SYMBOL_GPL vmlinux 0xd7c9acec __trace_array_puts +EXPORT_SYMBOL_GPL vmlinux 0xd7cd5253 usb_lock_device_for_reset EXPORT_SYMBOL_GPL vmlinux 0xd7cea889 edac_mod_work +EXPORT_SYMBOL_GPL vmlinux 0xd7da93a4 pinctrl_find_gpio_range_from_pin EXPORT_SYMBOL_GPL vmlinux 0xd7dccd23 __SCK__tp_func_xhci_dbg_quirks -EXPORT_SYMBOL_GPL vmlinux 0xd7e0540c __mmdrop EXPORT_SYMBOL_GPL vmlinux 0xd7e0d0ab rhashtable_free_and_destroy -EXPORT_SYMBOL_GPL vmlinux 0xd8010414 hwspin_lock_get_id -EXPORT_SYMBOL_GPL vmlinux 0xd804b01f regulator_set_soft_start_regmap -EXPORT_SYMBOL_GPL vmlinux 0xd804ceb6 pci_hp_del -EXPORT_SYMBOL_GPL vmlinux 0xd809438a fib4_rule_default +EXPORT_SYMBOL_GPL vmlinux 0xd7f6a2b6 of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0xd7f936da device_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0xd7fce84a regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0xd806ef3c pci_epc_get_msi +EXPORT_SYMBOL_GPL vmlinux 0xd80a9fcd unregister_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xd811228b rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xd815fca9 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xd81986ea handle_simple_irq EXPORT_SYMBOL_GPL vmlinux 0xd823d36d __SCK__tp_func_console -EXPORT_SYMBOL_GPL vmlinux 0xd824b78b spi_async -EXPORT_SYMBOL_GPL vmlinux 0xd82bb155 rz_mtu3_32bit_ch_read +EXPORT_SYMBOL_GPL vmlinux 0xd828e27d devm_irq_domain_create_sim EXPORT_SYMBOL_GPL vmlinux 0xd82bc764 mas_find_range -EXPORT_SYMBOL_GPL vmlinux 0xd833ca28 tty_mode_ioctl -EXPORT_SYMBOL_GPL vmlinux 0xd848bb10 regulator_bulk_get EXPORT_SYMBOL_GPL vmlinux 0xd84d35bd dax_read_lock -EXPORT_SYMBOL_GPL vmlinux 0xd84d92ac kthread_unpark -EXPORT_SYMBOL_GPL vmlinux 0xd87bc206 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xd87035cc jh7110_from_irq_desc +EXPORT_SYMBOL_GPL vmlinux 0xd8722e7b cpuidle_unregister_driver EXPORT_SYMBOL_GPL vmlinux 0xd87fc0a0 usb_amd_prefetch_quirk -EXPORT_SYMBOL_GPL vmlinux 0xd882e10b devl_params_register -EXPORT_SYMBOL_GPL vmlinux 0xd88ceb9a devm_get_free_pages +EXPORT_SYMBOL_GPL vmlinux 0xd8a401f0 cpufreq_dbs_governor_stop +EXPORT_SYMBOL_GPL vmlinux 0xd8b2dd68 __folio_lock_killable +EXPORT_SYMBOL_GPL vmlinux 0xd8bc0737 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd8c0c716 __pm_runtime_disable EXPORT_SYMBOL_GPL vmlinux 0xd8e89fc1 blkg_rwstat_init -EXPORT_SYMBOL_GPL vmlinux 0xd8e9159a pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0xd8eaa99f usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xd8efa49a pci_enable_sriov EXPORT_SYMBOL_GPL vmlinux 0xd8fbb14d net_cls_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0xd910998e __traceiter_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xd8fd4606 nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0xd91ae61d pci_epc_get_features EXPORT_SYMBOL_GPL vmlinux 0xd91dbd1f xdp_alloc_skb_bulk -EXPORT_SYMBOL_GPL vmlinux 0xd92a9e5c fsnotify_init_mark -EXPORT_SYMBOL_GPL vmlinux 0xd92e412e dev_attr_sw_activity EXPORT_SYMBOL_GPL vmlinux 0xd92ef192 security_kernel_post_load_data -EXPORT_SYMBOL_GPL vmlinux 0xd931ea8e securityfs_create_dir -EXPORT_SYMBOL_GPL vmlinux 0xd93a0eb6 vcap_tc_flower_handler_ipv6_usage -EXPORT_SYMBOL_GPL vmlinux 0xd93d9535 pci_device_is_present -EXPORT_SYMBOL_GPL vmlinux 0xd953e34f usb_autopm_get_interface -EXPORT_SYMBOL_GPL vmlinux 0xd968f564 fscrypt_get_symlink +EXPORT_SYMBOL_GPL vmlinux 0xd935afec edac_mc_handle_error +EXPORT_SYMBOL_GPL vmlinux 0xd947cf1f extcon_set_property_capability +EXPORT_SYMBOL_GPL vmlinux 0xd9530778 fwnode_create_software_node +EXPORT_SYMBOL_GPL vmlinux 0xd9568c1f platform_msi_domain_alloc_irqs EXPORT_SYMBOL_GPL vmlinux 0xd96babb4 interval_tree_iter_next -EXPORT_SYMBOL_GPL vmlinux 0xd96c1d88 ip6_datagram_connect_v6_only -EXPORT_SYMBOL_GPL vmlinux 0xd96d6152 mptcp_pm_get_add_addr_accept_max +EXPORT_SYMBOL_GPL vmlinux 0xd96bf2f0 power_supply_get_by_name EXPORT_SYMBOL_GPL vmlinux 0xd979353a freq_qos_remove_notifier -EXPORT_SYMBOL_GPL vmlinux 0xd97fbb37 mdiobus_modify_changed -EXPORT_SYMBOL_GPL vmlinux 0xd9803093 dm_copy_name_and_uuid -EXPORT_SYMBOL_GPL vmlinux 0xd99d4439 ping_rcv -EXPORT_SYMBOL_GPL vmlinux 0xd9b0476e devm_pinctrl_register_and_init +EXPORT_SYMBOL_GPL vmlinux 0xd97b012d cpufreq_enable_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0xd984e4d8 class_is_registered +EXPORT_SYMBOL_GPL vmlinux 0xd99a6a4e fsverity_ioctl_measure EXPORT_SYMBOL_GPL vmlinux 0xd9b19aa5 __tracepoint_fdb_delete EXPORT_SYMBOL_GPL vmlinux 0xd9bb2c13 pkcs7_get_content_data -EXPORT_SYMBOL_GPL vmlinux 0xd9c2f295 dev_pm_opp_get_power -EXPORT_SYMBOL_GPL vmlinux 0xd9c46017 pci_epc_init_notify -EXPORT_SYMBOL_GPL vmlinux 0xd9c6990a devm_blk_crypto_profile_init -EXPORT_SYMBOL_GPL vmlinux 0xd9d6004a crypto_spawn_tfm2 -EXPORT_SYMBOL_GPL vmlinux 0xd9d6fbb1 devm_acpi_dev_add_driver_gpios -EXPORT_SYMBOL_GPL vmlinux 0xd9dd0cd2 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd9c2309c spi_controller_dma_map_mem_op_data +EXPORT_SYMBOL_GPL vmlinux 0xd9c6a0e7 blkdev_zone_mgmt +EXPORT_SYMBOL_GPL vmlinux 0xd9cbdf77 transport_setup_device EXPORT_SYMBOL_GPL vmlinux 0xd9e24457 ring_buffer_peek -EXPORT_SYMBOL_GPL vmlinux 0xd9e40a31 crypto_register_kpp EXPORT_SYMBOL_GPL vmlinux 0xd9e61980 phy_gbit_all_ports_features +EXPORT_SYMBOL_GPL vmlinux 0xd9e804e7 spi_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xd9eb07c3 ip6_redirect EXPORT_SYMBOL_GPL vmlinux 0xd9f35258 kobject_rename -EXPORT_SYMBOL_GPL vmlinux 0xd9f64885 crypto_unregister_skciphers -EXPORT_SYMBOL_GPL vmlinux 0xd9f96f0d dm_submit_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xd9fb2107 blk_mq_sched_try_insert_merge EXPORT_SYMBOL_GPL vmlinux 0xd9ff2172 ezx_pcap_write +EXPORT_SYMBOL_GPL vmlinux 0xda051bfb crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xda05e5b6 devm_platform_ioremap_resource EXPORT_SYMBOL_GPL vmlinux 0xda0947de kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xda096d3b serdev_device_write_room EXPORT_SYMBOL_GPL vmlinux 0xda10e1e2 phy_basic_t1_features -EXPORT_SYMBOL_GPL vmlinux 0xda295a37 lwtstate_free +EXPORT_SYMBOL_GPL vmlinux 0xda156cfa of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0xda1f934b __traceiter_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0xda2202be xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xda26dc20 tcp_set_keepalive +EXPORT_SYMBOL_GPL vmlinux 0xda318264 power_supply_charge_behaviour_show EXPORT_SYMBOL_GPL vmlinux 0xda320d31 sfp_module_start -EXPORT_SYMBOL_GPL vmlinux 0xda321487 nf_nat_hook -EXPORT_SYMBOL_GPL vmlinux 0xda336436 xdp_return_frame -EXPORT_SYMBOL_GPL vmlinux 0xda5d87cc cpuidle_unregister_driver -EXPORT_SYMBOL_GPL vmlinux 0xda60fd4a skb_mpls_update_lse -EXPORT_SYMBOL_GPL vmlinux 0xda80eb42 bio_poll +EXPORT_SYMBOL_GPL vmlinux 0xda334049 alloc_dax_region +EXPORT_SYMBOL_GPL vmlinux 0xda428f5e invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xda5b105b rio_mport_class +EXPORT_SYMBOL_GPL vmlinux 0xda6678b3 dev_coredumpsg +EXPORT_SYMBOL_GPL vmlinux 0xda6bbfed clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0xda7bf261 usb_disable_lpm EXPORT_SYMBOL_GPL vmlinux 0xda8e1302 software_node_find_by_name -EXPORT_SYMBOL_GPL vmlinux 0xda8ed21c cgrp_dfl_root -EXPORT_SYMBOL_GPL vmlinux 0xda98581e netdev_is_rx_handler_busy -EXPORT_SYMBOL_GPL vmlinux 0xda9b7666 usb_hcd_pci_shutdown EXPORT_SYMBOL_GPL vmlinux 0xdaa06dc1 acpi_lpat_raw_to_temp -EXPORT_SYMBOL_GPL vmlinux 0xdab42d4f of_get_required_opp_performance_state +EXPORT_SYMBOL_GPL vmlinux 0xdaaad86e devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xdab57196 devm_krealloc EXPORT_SYMBOL_GPL vmlinux 0xdab5a1eb interval_tree_insert -EXPORT_SYMBOL_GPL vmlinux 0xdab5f31b __ip6_local_out -EXPORT_SYMBOL_GPL vmlinux 0xdac12c4b strp_stop -EXPORT_SYMBOL_GPL vmlinux 0xdac5566f balloon_page_list_dequeue -EXPORT_SYMBOL_GPL vmlinux 0xdad8954e is_software_node -EXPORT_SYMBOL_GPL vmlinux 0xdadfe7aa fixed_phy_register -EXPORT_SYMBOL_GPL vmlinux 0xdae33457 of_property_read_u32_index -EXPORT_SYMBOL_GPL vmlinux 0xdaf667f0 devm_gpio_request -EXPORT_SYMBOL_GPL vmlinux 0xdb32da4c __thermal_zone_get_trip -EXPORT_SYMBOL_GPL vmlinux 0xdb3d0f54 wm831x_regmap_config -EXPORT_SYMBOL_GPL vmlinux 0xdb4917cf md_bitmap_load -EXPORT_SYMBOL_GPL vmlinux 0xdb5a32bb dm_internal_resume -EXPORT_SYMBOL_GPL vmlinux 0xdb5c5954 msi_domain_first_desc +EXPORT_SYMBOL_GPL vmlinux 0xdadb0e72 of_property_read_u64_index +EXPORT_SYMBOL_GPL vmlinux 0xdae3aefb regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xdae51771 rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xdaf8af26 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xdb04b7f7 of_usb_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0xdb07450d i2c_detect_slave_mode +EXPORT_SYMBOL_GPL vmlinux 0xdb080db0 da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0xdb126d31 uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0xdb129624 synth_event_trace +EXPORT_SYMBOL_GPL vmlinux 0xdb15b3f0 clk_fractional_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0xdb1ad613 bpfilter_ops +EXPORT_SYMBOL_GPL vmlinux 0xdb2a00b0 of_genpd_remove_last +EXPORT_SYMBOL_GPL vmlinux 0xdb2a2828 devres_add +EXPORT_SYMBOL_GPL vmlinux 0xdb35247a sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0xdb352773 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xdb428294 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xdb441061 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xdb50f02d wbt_disable_default +EXPORT_SYMBOL_GPL vmlinux 0xdb5acd24 devm_hwspin_lock_register EXPORT_SYMBOL_GPL vmlinux 0xdb63a944 acpi_lpat_get_conversion_table -EXPORT_SYMBOL_GPL vmlinux 0xdb6e0638 acpi_pci_find_root -EXPORT_SYMBOL_GPL vmlinux 0xdb71ae6a gpiod_put_array -EXPORT_SYMBOL_GPL vmlinux 0xdb75caed blkcg_deactivate_policy -EXPORT_SYMBOL_GPL vmlinux 0xdb7cd87c tun_get_tx_ring +EXPORT_SYMBOL_GPL vmlinux 0xdb6a09c8 kthread_func +EXPORT_SYMBOL_GPL vmlinux 0xdb7e7873 pci_msix_alloc_irq_at EXPORT_SYMBOL_GPL vmlinux 0xdb8166f1 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xdb83b55a blk_queue_rq_timeout EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock -EXPORT_SYMBOL_GPL vmlinux 0xdb8c79d0 devm_regmap_field_bulk_free -EXPORT_SYMBOL_GPL vmlinux 0xdb8dcc20 fib_rules_unregister -EXPORT_SYMBOL_GPL vmlinux 0xdbb7d9d8 register_virtio_driver -EXPORT_SYMBOL_GPL vmlinux 0xdbbf77bf lp8788_read_byte -EXPORT_SYMBOL_GPL vmlinux 0xdbd48b63 vcap_find_admin -EXPORT_SYMBOL_GPL vmlinux 0xdbdae6fb regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xdba14d29 iommu_get_domain_for_dev_pasid +EXPORT_SYMBOL_GPL vmlinux 0xdbabb938 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xdbbbf26b is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xdbc7dd79 devlink_trap_groups_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdbcbee0b regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xdbd3cc59 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0xdbd4d0cc __kthread_init_worker EXPORT_SYMBOL_GPL vmlinux 0xdbdb0e8b request_any_context_irq EXPORT_SYMBOL_GPL vmlinux 0xdbe3dbe0 vhost_task_create EXPORT_SYMBOL_GPL vmlinux 0xdbe8d8a0 __SCK__tp_func_cpu_frequency EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits -EXPORT_SYMBOL_GPL vmlinux 0xdc083e4b inet6_cleanup_sock -EXPORT_SYMBOL_GPL vmlinux 0xdc157add devm_hwmon_device_unregister -EXPORT_SYMBOL_GPL vmlinux 0xdc1b7d43 __traceiter_rpm_suspend -EXPORT_SYMBOL_GPL vmlinux 0xdc3483be rtc_class_close -EXPORT_SYMBOL_GPL vmlinux 0xdc36a7f2 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xdbf94e00 bdi_dev_name +EXPORT_SYMBOL_GPL vmlinux 0xdc07b7c9 pm_wakeup_ws_event +EXPORT_SYMBOL_GPL vmlinux 0xdc29fe48 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0xdc302882 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xdc32d12a clk_hw_get_name EXPORT_SYMBOL_GPL vmlinux 0xdc43bdc6 pci_vpd_find_ro_info_keyword EXPORT_SYMBOL_GPL vmlinux 0xdc45a5db edac_stop_work -EXPORT_SYMBOL_GPL vmlinux 0xdc4f2a4e ip_icmp_error_rfc4884 -EXPORT_SYMBOL_GPL vmlinux 0xdc51520e pci_assign_unassigned_bus_resources -EXPORT_SYMBOL_GPL vmlinux 0xdc52b60d spi_mem_poll_status EXPORT_SYMBOL_GPL vmlinux 0xdc59ca29 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xdc5a6b56 genphy_c45_read_pma EXPORT_SYMBOL_GPL vmlinux 0xdc6596fa irq_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xdc65cb9b dm_table_set_type EXPORT_SYMBOL_GPL vmlinux 0xdc6699cb acpi_dev_free_resource_list -EXPORT_SYMBOL_GPL vmlinux 0xdc7df243 devl_unregister EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable -EXPORT_SYMBOL_GPL vmlinux 0xdc83b67a __devm_pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0xdc836e44 misc_cg_uncharge EXPORT_SYMBOL_GPL vmlinux 0xdc841b74 misc_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xdc887c6b acpi_device_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0xdc957572 of_device_modalias EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend -EXPORT_SYMBOL_GPL vmlinux 0xdc981163 irq_gc_mask_disable_reg EXPORT_SYMBOL_GPL vmlinux 0xdc9f6bca __SCK__tp_func_br_mdb_full EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register -EXPORT_SYMBOL_GPL vmlinux 0xdcb77580 vcap_is_last_chain -EXPORT_SYMBOL_GPL vmlinux 0xdcbd3c85 tcp_plb_update_state_upon_rto +EXPORT_SYMBOL_GPL vmlinux 0xdca9aabd synth_event_create +EXPORT_SYMBOL_GPL vmlinux 0xdcaeca7e rio_alloc_net +EXPORT_SYMBOL_GPL vmlinux 0xdcb52229 virtio_check_driver_offered_feature EXPORT_SYMBOL_GPL vmlinux 0xdcc17f88 __wake_up_locked_key_bookmark -EXPORT_SYMBOL_GPL vmlinux 0xdcd90f0e devl_traps_register -EXPORT_SYMBOL_GPL vmlinux 0xdce175a7 debugfs_real_fops +EXPORT_SYMBOL_GPL vmlinux 0xdcc248ca acpi_device_modalias +EXPORT_SYMBOL_GPL vmlinux 0xdcc2d024 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xdcd6046c ip_fib_metrics_init +EXPORT_SYMBOL_GPL vmlinux 0xdcdcb0ac __sock_recv_timestamp EXPORT_SYMBOL_GPL vmlinux 0xdceb5362 efi_status_to_err -EXPORT_SYMBOL_GPL vmlinux 0xdceed0e5 fuse_init_fs_context_submount +EXPORT_SYMBOL_GPL vmlinux 0xdcec71ba tty_release_struct +EXPORT_SYMBOL_GPL vmlinux 0xdcf7e005 crypto_register_acomps EXPORT_SYMBOL_GPL vmlinux 0xdd0762df set_worker_desc -EXPORT_SYMBOL_GPL vmlinux 0xdd13ce84 nvmem_add_one_cell -EXPORT_SYMBOL_GPL vmlinux 0xdd289e07 fscrypt_prepare_lookup_partial -EXPORT_SYMBOL_GPL vmlinux 0xdd377f11 pci_hp_create_module_link -EXPORT_SYMBOL_GPL vmlinux 0xdd3bab0d set_primary_fwnode -EXPORT_SYMBOL_GPL vmlinux 0xdd3eca07 iommu_unmap_fast -EXPORT_SYMBOL_GPL vmlinux 0xdd4770ca usb_hcd_pci_probe -EXPORT_SYMBOL_GPL vmlinux 0xdd577738 scsi_dh_activate -EXPORT_SYMBOL_GPL vmlinux 0xdd5ad0bb __traceiter_pelt_dl_tp -EXPORT_SYMBOL_GPL vmlinux 0xdd5b7967 devl_trap_groups_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd256724 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xdd279d0d nvdimm_to_bus +EXPORT_SYMBOL_GPL vmlinux 0xdd54aeff spi_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xdd55d7c2 devm_nvdimm_memremap +EXPORT_SYMBOL_GPL vmlinux 0xdd5fc7c2 mbox_send_message EXPORT_SYMBOL_GPL vmlinux 0xdd626ee3 fuse_len_args +EXPORT_SYMBOL_GPL vmlinux 0xdd6f4b13 crypto_alloc_sig EXPORT_SYMBOL_GPL vmlinux 0xdd81d8f6 __SCK__tp_func_block_bio_complete -EXPORT_SYMBOL_GPL vmlinux 0xdd91eba3 xhci_check_bandwidth -EXPORT_SYMBOL_GPL vmlinux 0xdd990aa8 serial8250_release_dma -EXPORT_SYMBOL_GPL vmlinux 0xdda0da01 get_net_ns_by_pid -EXPORT_SYMBOL_GPL vmlinux 0xdda488b3 init_pid_ns -EXPORT_SYMBOL_GPL vmlinux 0xdda500d8 pinctrl_select_default_state -EXPORT_SYMBOL_GPL vmlinux 0xddbcd1ec devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xdd8c0a45 fib_new_table +EXPORT_SYMBOL_GPL vmlinux 0xdd92f35d mddev_unlock +EXPORT_SYMBOL_GPL vmlinux 0xdd94b123 device_change_owner +EXPORT_SYMBOL_GPL vmlinux 0xdd994956 pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0xdd9a7f92 register_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xdda7dcb0 debugfs_create_devm_seqfile +EXPORT_SYMBOL_GPL vmlinux 0xddb33831 irq_set_chained_handler_and_data EXPORT_SYMBOL_GPL vmlinux 0xddbeeecc pci_lock_rescan_remove -EXPORT_SYMBOL_GPL vmlinux 0xddc75590 led_compose_name +EXPORT_SYMBOL_GPL vmlinux 0xddc33ebd pci_epc_get_msix EXPORT_SYMBOL_GPL vmlinux 0xddd41e4d vcap_lookup_keyfield -EXPORT_SYMBOL_GPL vmlinux 0xdddc7463 pm_wakeup_ws_event -EXPORT_SYMBOL_GPL vmlinux 0xddeda330 nop_posix_acl_access -EXPORT_SYMBOL_GPL vmlinux 0xddf98da4 dev_pm_domain_attach_by_name +EXPORT_SYMBOL_GPL vmlinux 0xddd99fb1 irq_chip_request_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0xdde11148 debugfs_create_u32_array EXPORT_SYMBOL_GPL vmlinux 0xddfe1ad7 __SCK__tp_func_sk_data_ready EXPORT_SYMBOL_GPL vmlinux 0xde0af24f udp_memory_per_cpu_fw_alloc -EXPORT_SYMBOL_GPL vmlinux 0xde0f6829 crypto_aes_set_key -EXPORT_SYMBOL_GPL vmlinux 0xde10ff27 pm_wakeup_dev_event -EXPORT_SYMBOL_GPL vmlinux 0xde1152d9 __root_device_register -EXPORT_SYMBOL_GPL vmlinux 0xde14aa92 __irq_set_handler -EXPORT_SYMBOL_GPL vmlinux 0xde2a7282 ipv6_icmp_error -EXPORT_SYMBOL_GPL vmlinux 0xde2d9535 pci_epc_clear_bar +EXPORT_SYMBOL_GPL vmlinux 0xde0b16a8 dev_pm_opp_get_max_clock_latency EXPORT_SYMBOL_GPL vmlinux 0xde31bf7e unregister_sys_off_handler -EXPORT_SYMBOL_GPL vmlinux 0xde3b09f0 xfrm_audit_state_add -EXPORT_SYMBOL_GPL vmlinux 0xde3bef2d ip_fib_metrics_init +EXPORT_SYMBOL_GPL vmlinux 0xde3d36d9 sk_msg_zerocopy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0xde6d0b41 of_prop_next_string EXPORT_SYMBOL_GPL vmlinux 0xde6f1851 TSS_checkhmac1 -EXPORT_SYMBOL_GPL vmlinux 0xde766549 __devm_clk_hw_register_divider -EXPORT_SYMBOL_GPL vmlinux 0xde99510d phy_driver_is_genphy_10g -EXPORT_SYMBOL_GPL vmlinux 0xdea0486a switchdev_handle_port_obj_del_foreign -EXPORT_SYMBOL_GPL vmlinux 0xdea52543 i2c_detect_slave_mode -EXPORT_SYMBOL_GPL vmlinux 0xdeac1e82 stmpe_set_altfunc -EXPORT_SYMBOL_GPL vmlinux 0xdebd68c8 mmu_notifier_register -EXPORT_SYMBOL_GPL vmlinux 0xdec4062e watchdog_register_device -EXPORT_SYMBOL_GPL vmlinux 0xdecad42d icc_std_aggregate -EXPORT_SYMBOL_GPL vmlinux 0xdecf65ae nvdimm_flush -EXPORT_SYMBOL_GPL vmlinux 0xded15100 ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0xde8494bd led_get +EXPORT_SYMBOL_GPL vmlinux 0xde93b331 hwmon_notify_event +EXPORT_SYMBOL_GPL vmlinux 0xdeb9201f irq_get_irq_data EXPORT_SYMBOL_GPL vmlinux 0xded3fefd kobject_move +EXPORT_SYMBOL_GPL vmlinux 0xded661b3 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0xdedfcb83 of_property_read_string_helper EXPORT_SYMBOL_GPL vmlinux 0xdee91d7a dtpm_destroy_hierarchy -EXPORT_SYMBOL_GPL vmlinux 0xdeee752c sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xdef16eb5 of_irq_parse_raw +EXPORT_SYMBOL_GPL vmlinux 0xdef2755a devlink_dpipe_entry_ctx_close +EXPORT_SYMBOL_GPL vmlinux 0xdef40c5a device_destroy EXPORT_SYMBOL_GPL vmlinux 0xdeffa0a7 edac_raw_mc_handle_error -EXPORT_SYMBOL_GPL vmlinux 0xdeffab09 crypto_ahash_finup -EXPORT_SYMBOL_GPL vmlinux 0xdf031dff pci_epf_create -EXPORT_SYMBOL_GPL vmlinux 0xdf06b9b7 bpf_map_inc_not_zero EXPORT_SYMBOL_GPL vmlinux 0xdf0c757f ata_tf_to_fis EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal -EXPORT_SYMBOL_GPL vmlinux 0xdf131bd3 nvdimm_provider_data +EXPORT_SYMBOL_GPL vmlinux 0xdf0ff735 md_bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0xdf18bc8b devm_gpiod_get EXPORT_SYMBOL_GPL vmlinux 0xdf237453 timer_shutdown_sync EXPORT_SYMBOL_GPL vmlinux 0xdf2738bb cpu_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0xdf35b9f7 rt_mutex_lock_killable -EXPORT_SYMBOL_GPL vmlinux 0xdf3695df __traceiter_udp_fail_queue_rcv_skb -EXPORT_SYMBOL_GPL vmlinux 0xdf376eb5 xhci_stop -EXPORT_SYMBOL_GPL vmlinux 0xdf39ba48 usb_deregister -EXPORT_SYMBOL_GPL vmlinux 0xdf4e9b6e phy_remove_lookup -EXPORT_SYMBOL_GPL vmlinux 0xdf52be8d ip_route_output_key_hash -EXPORT_SYMBOL_GPL vmlinux 0xdf550725 component_release_of +EXPORT_SYMBOL_GPL vmlinux 0xdf2bda08 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xdf40fe94 __traceiter_br_mdb_full +EXPORT_SYMBOL_GPL vmlinux 0xdf43d3d0 dev_pm_opp_of_register_em EXPORT_SYMBOL_GPL vmlinux 0xdf558314 power_supply_battery_info_properties -EXPORT_SYMBOL_GPL vmlinux 0xdf664ad4 iommu_group_for_each_dev -EXPORT_SYMBOL_GPL vmlinux 0xdf72034c anon_transport_class_register -EXPORT_SYMBOL_GPL vmlinux 0xdf7dcfa8 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0xdf659c12 irq_domain_set_hwirq_and_chip +EXPORT_SYMBOL_GPL vmlinux 0xdf70ad8c sk_free_unlock_clone +EXPORT_SYMBOL_GPL vmlinux 0xdf879bae split_page +EXPORT_SYMBOL_GPL vmlinux 0xdf892395 vp_modern_map_vq_notify +EXPORT_SYMBOL_GPL vmlinux 0xdf8ac9f3 crypto_alloc_ahash EXPORT_SYMBOL_GPL vmlinux 0xdf8b6688 register_kretprobe -EXPORT_SYMBOL_GPL vmlinux 0xdf91ec21 power_supply_get_property_from_supplier -EXPORT_SYMBOL_GPL vmlinux 0xdf923f63 rz_mtu3_8bit_ch_read +EXPORT_SYMBOL_GPL vmlinux 0xdfa51284 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xdfa6c8cb pci_test_config_bits EXPORT_SYMBOL_GPL vmlinux 0xdfc04014 stop_machine -EXPORT_SYMBOL_GPL vmlinux 0xdfc38c52 usb_enable_autosuspend EXPORT_SYMBOL_GPL vmlinux 0xdfcb6c90 mctrl_gpio_set -EXPORT_SYMBOL_GPL vmlinux 0xdfcb90a4 devm_power_supply_register -EXPORT_SYMBOL_GPL vmlinux 0xdfcbb2b2 spi_mem_get_name -EXPORT_SYMBOL_GPL vmlinux 0xdfd00ed3 dev_pm_opp_disable -EXPORT_SYMBOL_GPL vmlinux 0xdfd284d1 clk_hw_get_parent_index -EXPORT_SYMBOL_GPL vmlinux 0xdfd3a3b3 phy_calibrate -EXPORT_SYMBOL_GPL vmlinux 0xdff47a79 pinctrl_add_gpio_ranges +EXPORT_SYMBOL_GPL vmlinux 0xdfd49073 blk_req_zone_write_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdfe69879 platform_get_irq_optional +EXPORT_SYMBOL_GPL vmlinux 0xdfff2e18 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xe0039c7e sock_map_unhash EXPORT_SYMBOL_GPL vmlinux 0xe00db6dc __tracepoint_block_bio_remap -EXPORT_SYMBOL_GPL vmlinux 0xe0212994 crypto_alloc_base -EXPORT_SYMBOL_GPL vmlinux 0xe02c1d66 wbc_attach_and_unlock_inode -EXPORT_SYMBOL_GPL vmlinux 0xe031d6e5 serdev_controller_remove -EXPORT_SYMBOL_GPL vmlinux 0xe05d5495 usb_of_get_device_node +EXPORT_SYMBOL_GPL vmlinux 0xe0114f21 phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xe0143dc1 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xe030ea5d usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xe0459ad7 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xe04cd941 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xe050b9b1 pci_msi_create_irq_domain +EXPORT_SYMBOL_GPL vmlinux 0xe05706e1 serial8250_do_set_mctrl EXPORT_SYMBOL_GPL vmlinux 0xe05e2f85 nexthop_free_rcu -EXPORT_SYMBOL_GPL vmlinux 0xe06e9309 of_dma_controller_free -EXPORT_SYMBOL_GPL vmlinux 0xe075db63 __devm_regmap_init -EXPORT_SYMBOL_GPL vmlinux 0xe0a2b929 gpiod_set_value_cansleep -EXPORT_SYMBOL_GPL vmlinux 0xe0a8c4d1 spi_mem_dirmap_destroy -EXPORT_SYMBOL_GPL vmlinux 0xe0b05b5d xdp_rxq_info_unreg +EXPORT_SYMBOL_GPL vmlinux 0xe06308a8 sbitmap_queue_show +EXPORT_SYMBOL_GPL vmlinux 0xe075246f udp_splice_eof +EXPORT_SYMBOL_GPL vmlinux 0xe07ca31d security_kernel_read_file +EXPORT_SYMBOL_GPL vmlinux 0xe07df6a9 list_lru_count_one +EXPORT_SYMBOL_GPL vmlinux 0xe090b6e3 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xe0910a38 devm_free_pages +EXPORT_SYMBOL_GPL vmlinux 0xe0a53c55 irq_chip_set_affinity_parent EXPORT_SYMBOL_GPL vmlinux 0xe0b1c103 clk_set_max_rate -EXPORT_SYMBOL_GPL vmlinux 0xe0b56b03 blk_mq_hctx_set_fq_lock_class EXPORT_SYMBOL_GPL vmlinux 0xe0b8364e __tracepoint_cpu_frequency -EXPORT_SYMBOL_GPL vmlinux 0xe0bff2cb phy_driver_is_genphy -EXPORT_SYMBOL_GPL vmlinux 0xe0cd7420 sk_msg_zerocopy_from_iter -EXPORT_SYMBOL_GPL vmlinux 0xe0d36487 dev_pm_opp_set_sharing_cpus -EXPORT_SYMBOL_GPL vmlinux 0xe0d64510 aead_exit_geniv -EXPORT_SYMBOL_GPL vmlinux 0xe0e440e2 proc_create_net_data +EXPORT_SYMBOL_GPL vmlinux 0xe0d3403c irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xe0e69a16 cgroup_get_from_id +EXPORT_SYMBOL_GPL vmlinux 0xe0fbd191 mmc_crypto_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0xe10f5768 i2c_client_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xe11ef679 pinctrl_pm_select_default_state EXPORT_SYMBOL_GPL vmlinux 0xe12681a4 __tracepoint_block_rq_remap -EXPORT_SYMBOL_GPL vmlinux 0xe126b3af fuse_dev_release -EXPORT_SYMBOL_GPL vmlinux 0xe156c56d is_dock_device -EXPORT_SYMBOL_GPL vmlinux 0xe1696b9c usb_check_int_endpoints -EXPORT_SYMBOL_GPL vmlinux 0xe17b3a25 vcap_set_tc_exterr +EXPORT_SYMBOL_GPL vmlinux 0xe12d9c1f devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xe1359972 ip_route_output_key_hash +EXPORT_SYMBOL_GPL vmlinux 0xe141152d xfrm_state_mtu +EXPORT_SYMBOL_GPL vmlinux 0xe14e0111 generic_handle_domain_irq +EXPORT_SYMBOL_GPL vmlinux 0xe15baac5 bio_associate_blkg +EXPORT_SYMBOL_GPL vmlinux 0xe1671342 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xe1838073 rio_dma_prep_xfer EXPORT_SYMBOL_GPL vmlinux 0xe189fbe6 net_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xe19760c0 perf_event_disable EXPORT_SYMBOL_GPL vmlinux 0xe1a04240 hrtimer_start_range_ns -EXPORT_SYMBOL_GPL vmlinux 0xe1a115fc dma_resv_set_deadline -EXPORT_SYMBOL_GPL vmlinux 0xe1a38cba scsi_host_unblock -EXPORT_SYMBOL_GPL vmlinux 0xe1b2d20d msg_zerocopy_put_abort -EXPORT_SYMBOL_GPL vmlinux 0xe1b71da5 hwspin_lock_register EXPORT_SYMBOL_GPL vmlinux 0xe1bd6c99 rio_init_mports -EXPORT_SYMBOL_GPL vmlinux 0xe1c61154 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xe1c3844f bus_get_dev_root EXPORT_SYMBOL_GPL vmlinux 0xe1c7555f locks_owner_has_blockers EXPORT_SYMBOL_GPL vmlinux 0xe1c87a2f kernel_can_power_off -EXPORT_SYMBOL_GPL vmlinux 0xe1c8cbad devm_namespace_enable -EXPORT_SYMBOL_GPL vmlinux 0xe1cbb042 iommu_device_sysfs_remove -EXPORT_SYMBOL_GPL vmlinux 0xe1cc3673 virtqueue_disable_cb -EXPORT_SYMBOL_GPL vmlinux 0xe1cd5934 wbc_detach_inode -EXPORT_SYMBOL_GPL vmlinux 0xe1d90624 amba_device_alloc -EXPORT_SYMBOL_GPL vmlinux 0xe1ddbce0 amba_device_add -EXPORT_SYMBOL_GPL vmlinux 0xe1e22da2 sysfs_remove_groups -EXPORT_SYMBOL_GPL vmlinux 0xe1f44d07 led_init_default_state_get -EXPORT_SYMBOL_GPL vmlinux 0xe2003a4a platform_find_device_by_driver -EXPORT_SYMBOL_GPL vmlinux 0xe203964c crypto_register_skcipher -EXPORT_SYMBOL_GPL vmlinux 0xe20e94c2 disk_uevent -EXPORT_SYMBOL_GPL vmlinux 0xe21729c9 __devm_add_action -EXPORT_SYMBOL_GPL vmlinux 0xe2211fcc fsl_mc_device_group -EXPORT_SYMBOL_GPL vmlinux 0xe222c276 usb_hcd_unmap_urb_setup_for_dma -EXPORT_SYMBOL_GPL vmlinux 0xe22cd805 crypto_grab_aead -EXPORT_SYMBOL_GPL vmlinux 0xe232a225 regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0xe1d26b00 __devm_spi_alloc_controller +EXPORT_SYMBOL_GPL vmlinux 0xe1dc5163 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xe217126a ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xe219af2c xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xe21ad52d ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xe21bb4a0 vp_legacy_get_driver_features +EXPORT_SYMBOL_GPL vmlinux 0xe22b29a4 reset_controller_unregister EXPORT_SYMBOL_GPL vmlinux 0xe233762a input_event_from_user -EXPORT_SYMBOL_GPL vmlinux 0xe245cc37 clk_mux_ro_ops -EXPORT_SYMBOL_GPL vmlinux 0xe24c55ff mpc8xxx_spi_probe +EXPORT_SYMBOL_GPL vmlinux 0xe240f78a sdio_retune_release EXPORT_SYMBOL_GPL vmlinux 0xe2533142 atomic_notifier_chain_unregister -EXPORT_SYMBOL_GPL vmlinux 0xe253f94f pci_sriov_get_totalvfs -EXPORT_SYMBOL_GPL vmlinux 0xe26ac051 platform_device_register_full -EXPORT_SYMBOL_GPL vmlinux 0xe280c171 mbox_controller_register -EXPORT_SYMBOL_GPL vmlinux 0xe2840ad7 inet_ehash_nolisten -EXPORT_SYMBOL_GPL vmlinux 0xe286cb84 dev_pm_opp_get_opp_count -EXPORT_SYMBOL_GPL vmlinux 0xe2991109 usb_wakeup_notification -EXPORT_SYMBOL_GPL vmlinux 0xe2aa5f6c __traceiter_io_page_fault -EXPORT_SYMBOL_GPL vmlinux 0xe2b00864 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0xe258b62e __hwspin_lock_timeout +EXPORT_SYMBOL_GPL vmlinux 0xe25a0b69 folio_invalidate +EXPORT_SYMBOL_GPL vmlinux 0xe26e9f2f mbox_bind_client +EXPORT_SYMBOL_GPL vmlinux 0xe271546e tpm_tis_core_init +EXPORT_SYMBOL_GPL vmlinux 0xe2884300 __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xe28981b1 trace_add_event_call +EXPORT_SYMBOL_GPL vmlinux 0xe2b284ac acpi_dev_clear_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xe2b2a111 ata_do_set_mode EXPORT_SYMBOL_GPL vmlinux 0xe2b3207a unregister_switchdev_notifier -EXPORT_SYMBOL_GPL vmlinux 0xe2cc8d03 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xe2bbd28f sync_blockdev_nowait +EXPORT_SYMBOL_GPL vmlinux 0xe2bc1bf0 of_reserved_mem_lookup EXPORT_SYMBOL_GPL vmlinux 0xe2ce2b4d evm_set_key EXPORT_SYMBOL_GPL vmlinux 0xe2d4f386 vcap_val_rule -EXPORT_SYMBOL_GPL vmlinux 0xe2e0c3ea sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0xe2dd45b7 devm_pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe2e1248e md_stop +EXPORT_SYMBOL_GPL vmlinux 0xe2f2d3f6 platform_device_register EXPORT_SYMBOL_GPL vmlinux 0xe2fb0038 init_node_memory_type -EXPORT_SYMBOL_GPL vmlinux 0xe2ff155d pinctrl_pm_select_idle_state -EXPORT_SYMBOL_GPL vmlinux 0xe31485d3 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0xe3094993 tpm1_getcap EXPORT_SYMBOL_GPL vmlinux 0xe314e4a0 idr_alloc_u32 -EXPORT_SYMBOL_GPL vmlinux 0xe319be73 rio_lock_device -EXPORT_SYMBOL_GPL vmlinux 0xe31d458b debugfs_create_str -EXPORT_SYMBOL_GPL vmlinux 0xe337ce5b yield_to -EXPORT_SYMBOL_GPL vmlinux 0xe33b94eb devm_register_sys_off_handler -EXPORT_SYMBOL_GPL vmlinux 0xe34409a1 exportfs_decode_fh -EXPORT_SYMBOL_GPL vmlinux 0xe352cfed regulator_map_voltage_linear -EXPORT_SYMBOL_GPL vmlinux 0xe357c217 xhci_find_slot_id_by_port -EXPORT_SYMBOL_GPL vmlinux 0xe35b3b59 platform_irqchip_probe +EXPORT_SYMBOL_GPL vmlinux 0xe31a44e8 dev_pm_opp_remove_table +EXPORT_SYMBOL_GPL vmlinux 0xe32b5104 bio_poll +EXPORT_SYMBOL_GPL vmlinux 0xe32b7036 dma_resv_describe +EXPORT_SYMBOL_GPL vmlinux 0xe3580d96 devm_regulator_bulk_get_enable EXPORT_SYMBOL_GPL vmlinux 0xe367ff44 rhashtable_walk_exit +EXPORT_SYMBOL_GPL vmlinux 0xe36893b9 devm_regulator_irq_helper +EXPORT_SYMBOL_GPL vmlinux 0xe379f3a1 vcap_tc_flower_handler_ipv4_usage EXPORT_SYMBOL_GPL vmlinux 0xe3840e18 secure_ipv4_port_ephemeral -EXPORT_SYMBOL_GPL vmlinux 0xe386997e extcon_dev_register -EXPORT_SYMBOL_GPL vmlinux 0xe3886ac3 class_dev_iter_init -EXPORT_SYMBOL_GPL vmlinux 0xe3897030 cpufreq_cpu_put -EXPORT_SYMBOL_GPL vmlinux 0xe390b600 devm_fwnode_pwm_get -EXPORT_SYMBOL_GPL vmlinux 0xe3927b2e pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0xe38a55ff __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xe38bbf1b i2c_dw_probe_master EXPORT_SYMBOL_GPL vmlinux 0xe397caf5 seq_buf_printf EXPORT_SYMBOL_GPL vmlinux 0xe39d0794 usb_phy_roothub_exit +EXPORT_SYMBOL_GPL vmlinux 0xe3a080bd usb_asmedia_modifyflowcontrol EXPORT_SYMBOL_GPL vmlinux 0xe3b09712 kprobe_event_delete -EXPORT_SYMBOL_GPL vmlinux 0xe3b2b407 device_get_phy_mode -EXPORT_SYMBOL_GPL vmlinux 0xe3b570ef umd_load_blob -EXPORT_SYMBOL_GPL vmlinux 0xe3b99805 i2c_match_id -EXPORT_SYMBOL_GPL vmlinux 0xe3c899ac usb_disable_autosuspend -EXPORT_SYMBOL_GPL vmlinux 0xe3d2e091 synth_event_trace_start -EXPORT_SYMBOL_GPL vmlinux 0xe3d9ec11 mptcp_pm_get_local_addr_max -EXPORT_SYMBOL_GPL vmlinux 0xe3d9eeab pm_clk_destroy -EXPORT_SYMBOL_GPL vmlinux 0xe3e07b73 vp_modern_get_num_queues +EXPORT_SYMBOL_GPL vmlinux 0xe3b7eab4 thp_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0xe3c0b528 acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0xe3cb5962 __iptunnel_pull_header EXPORT_SYMBOL_GPL vmlinux 0xe3e423ac iommu_group_release_dma_owner -EXPORT_SYMBOL_GPL vmlinux 0xe409e0ee bpf_trace_run5 +EXPORT_SYMBOL_GPL vmlinux 0xe3f0a9ce badblocks_init +EXPORT_SYMBOL_GPL vmlinux 0xe3f18df5 devl_traps_unregister EXPORT_SYMBOL_GPL vmlinux 0xe40bb23e devlink_health_reporter_priv -EXPORT_SYMBOL_GPL vmlinux 0xe415972f cgroup_attach_task_all -EXPORT_SYMBOL_GPL vmlinux 0xe418ee70 xfrm_bpf_md_dst +EXPORT_SYMBOL_GPL vmlinux 0xe413c39b spi_mem_driver_register_with_owner +EXPORT_SYMBOL_GPL vmlinux 0xe4159070 acpi_find_child_device EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume -EXPORT_SYMBOL_GPL vmlinux 0xe43f9271 ata_sas_scsi_ioctl -EXPORT_SYMBOL_GPL vmlinux 0xe44ac6ee cpufreq_cpu_get -EXPORT_SYMBOL_GPL vmlinux 0xe44b56b3 device_reprobe -EXPORT_SYMBOL_GPL vmlinux 0xe465105d trace_array_printk -EXPORT_SYMBOL_GPL vmlinux 0xe49547b2 blk_rq_poll +EXPORT_SYMBOL_GPL vmlinux 0xe44da63b cpufreq_frequency_table_get_index +EXPORT_SYMBOL_GPL vmlinux 0xe4645372 dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xe47f88e9 dm_table_device_name EXPORT_SYMBOL_GPL vmlinux 0xe4971ade tracing_alloc_snapshot -EXPORT_SYMBOL_GPL vmlinux 0xe49ed6c3 dev_pm_opp_adjust_voltage -EXPORT_SYMBOL_GPL vmlinux 0xe4ad5954 scsi_free_sgtables +EXPORT_SYMBOL_GPL vmlinux 0xe4990034 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xe49edcd9 of_reserved_mem_device_release +EXPORT_SYMBOL_GPL vmlinux 0xe4a446ec xfrm_dev_resume EXPORT_SYMBOL_GPL vmlinux 0xe4b064f9 pcie_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xe4b1176d regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xe4b1af0e mmc_regulator_set_vqmmc EXPORT_SYMBOL_GPL vmlinux 0xe4b818c3 phy_speed_to_str EXPORT_SYMBOL_GPL vmlinux 0xe4bc4b09 cpu_topology EXPORT_SYMBOL_GPL vmlinux 0xe4be46c2 raw_v6_hashinfo EXPORT_SYMBOL_GPL vmlinux 0xe4c2c66c rtc_ktime_to_tm -EXPORT_SYMBOL_GPL vmlinux 0xe4c89882 kthread_park -EXPORT_SYMBOL_GPL vmlinux 0xe4ceecd8 netif_carrier_event -EXPORT_SYMBOL_GPL vmlinux 0xe4d86e64 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe4c9a738 fib_nl_delrule EXPORT_SYMBOL_GPL vmlinux 0xe4e48b12 swphy_validate_state -EXPORT_SYMBOL_GPL vmlinux 0xe4eba3bc of_irq_get_byname -EXPORT_SYMBOL_GPL vmlinux 0xe4f49598 pm_clk_init -EXPORT_SYMBOL_GPL vmlinux 0xe50cb797 dev_pm_qos_hide_latency_limit -EXPORT_SYMBOL_GPL vmlinux 0xe51111f8 dev_pm_genpd_suspend -EXPORT_SYMBOL_GPL vmlinux 0xe511c2b3 of_phy_get -EXPORT_SYMBOL_GPL vmlinux 0xe517b6dd device_dma_supported -EXPORT_SYMBOL_GPL vmlinux 0xe53f80a6 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0xe4ea00b4 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xe4f37729 put_pid +EXPORT_SYMBOL_GPL vmlinux 0xe513e7d2 watchdog_set_last_hw_keepalive +EXPORT_SYMBOL_GPL vmlinux 0xe51b0607 pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0xe520a3d5 dev_pm_opp_of_get_opp_desc_node +EXPORT_SYMBOL_GPL vmlinux 0xe52110ff device_link_add +EXPORT_SYMBOL_GPL vmlinux 0xe523a179 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0xe5373b44 mdiobus_c45_modify EXPORT_SYMBOL_GPL vmlinux 0xe53ff399 klist_iter_exit -EXPORT_SYMBOL_GPL vmlinux 0xe57223a0 blkcg_get_fc_appid -EXPORT_SYMBOL_GPL vmlinux 0xe57e1753 noop_direct_IO +EXPORT_SYMBOL_GPL vmlinux 0xe55c0511 bpf_prog_inc_not_zero +EXPORT_SYMBOL_GPL vmlinux 0xe55e275e crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xe55f84d1 rz_mtu3_8bit_ch_read +EXPORT_SYMBOL_GPL vmlinux 0xe57a8d9b ima_file_check +EXPORT_SYMBOL_GPL vmlinux 0xe57dd636 tpm2_get_tpm_pt +EXPORT_SYMBOL_GPL vmlinux 0xe5864f30 vcap_enable_lookups EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister -EXPORT_SYMBOL_GPL vmlinux 0xe5890e9d class_compat_create_link -EXPORT_SYMBOL_GPL vmlinux 0xe589d007 irq_domain_translate_twocell +EXPORT_SYMBOL_GPL vmlinux 0xe58e7829 __traceiter_ata_bmdma_start EXPORT_SYMBOL_GPL vmlinux 0xe58eb9d7 FSE_readNCount -EXPORT_SYMBOL_GPL vmlinux 0xe59a1908 regulator_bulk_set_supply_names -EXPORT_SYMBOL_GPL vmlinux 0xe5b5052b debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xe5952d10 dw_pcie_setup_rc +EXPORT_SYMBOL_GPL vmlinux 0xe59b9ec4 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xe5a24d24 transport_add_device EXPORT_SYMBOL_GPL vmlinux 0xe5b97af4 digsig_verify -EXPORT_SYMBOL_GPL vmlinux 0xe5d2774c crypto_drop_spawn -EXPORT_SYMBOL_GPL vmlinux 0xe5d3cc29 tun_get_socket -EXPORT_SYMBOL_GPL vmlinux 0xe5da80c4 pci_host_common_probe -EXPORT_SYMBOL_GPL vmlinux 0xe5e5a226 rio_del_device -EXPORT_SYMBOL_GPL vmlinux 0xe5e79953 i2c_of_match_device -EXPORT_SYMBOL_GPL vmlinux 0xe5ec86c1 security_inode_mkdir -EXPORT_SYMBOL_GPL vmlinux 0xe5f2810a pci_dev_lock -EXPORT_SYMBOL_GPL vmlinux 0xe5f67203 dev_pm_opp_get_required_pstate EXPORT_SYMBOL_GPL vmlinux 0xe5fa3d2f __free_iova +EXPORT_SYMBOL_GPL vmlinux 0xe60554e3 led_set_brightness_nosleep EXPORT_SYMBOL_GPL vmlinux 0xe60632a9 edac_queue_work EXPORT_SYMBOL_GPL vmlinux 0xe60a5e8d pids_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0xe60cf7ed __devm_rtc_register_device -EXPORT_SYMBOL_GPL vmlinux 0xe6165e00 serdev_device_set_parity -EXPORT_SYMBOL_GPL vmlinux 0xe61d3178 devfreq_event_get_edev_count -EXPORT_SYMBOL_GPL vmlinux 0xe6250d70 __traceiter_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0xe61f7ce8 shmem_file_setup_with_mnt +EXPORT_SYMBOL_GPL vmlinux 0xe623cdbc usb_hub_clear_tt_buffer EXPORT_SYMBOL_GPL vmlinux 0xe628bb9f phy_fibre_port_array -EXPORT_SYMBOL_GPL vmlinux 0xe654da1b tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xe62ddaaf fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe62e26a3 rio_unmap_outb_region +EXPORT_SYMBOL_GPL vmlinux 0xe6367b46 dma_free_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0xe6538656 pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xe6553148 pci_restore_msi_state EXPORT_SYMBOL_GPL vmlinux 0xe6573c4b sbitmap_add_wait_queue -EXPORT_SYMBOL_GPL vmlinux 0xe657bf12 irq_domain_add_legacy -EXPORT_SYMBOL_GPL vmlinux 0xe65b468b crypto_alloc_shash -EXPORT_SYMBOL_GPL vmlinux 0xe669f133 sysfs_file_change_owner -EXPORT_SYMBOL_GPL vmlinux 0xe676b4dc nvdimm_bus_register -EXPORT_SYMBOL_GPL vmlinux 0xe6880735 vring_del_virtqueue -EXPORT_SYMBOL_GPL vmlinux 0xe697c340 dma_get_any_slave_channel -EXPORT_SYMBOL_GPL vmlinux 0xe69ec6aa __mmu_notifier_register -EXPORT_SYMBOL_GPL vmlinux 0xe6a915a0 devm_i2c_new_dummy_device -EXPORT_SYMBOL_GPL vmlinux 0xe6ae4ebe max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xe6595da3 pci_find_dvsec_capability +EXPORT_SYMBOL_GPL vmlinux 0xe659b55e usb_check_int_endpoints +EXPORT_SYMBOL_GPL vmlinux 0xe66e055e acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0xe66e263f udp_cmsg_send +EXPORT_SYMBOL_GPL vmlinux 0xe676b28c gpiochip_add_pin_range +EXPORT_SYMBOL_GPL vmlinux 0xe68bb69a rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0xe69a6567 phy_power_on EXPORT_SYMBOL_GPL vmlinux 0xe6aef439 __tracepoint_sk_data_ready -EXPORT_SYMBOL_GPL vmlinux 0xe6c059d8 cpci_hp_unregister_bus -EXPORT_SYMBOL_GPL vmlinux 0xe6c2fd02 ata_sas_queuecmd -EXPORT_SYMBOL_GPL vmlinux 0xe6dbe905 pci_platform_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xe6b2bbe0 rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0xe6b2ddf0 trace_array_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xe6d334d9 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xe6d5cfbc scsi_alloc_request +EXPORT_SYMBOL_GPL vmlinux 0xe6d84239 acpi_device_update_power +EXPORT_SYMBOL_GPL vmlinux 0xe6dddc93 bus_find_device EXPORT_SYMBOL_GPL vmlinux 0xe6deef9e idr_remove EXPORT_SYMBOL_GPL vmlinux 0xe6e40502 rcu_get_gp_seq EXPORT_SYMBOL_GPL vmlinux 0xe6e6b684 md_new_event -EXPORT_SYMBOL_GPL vmlinux 0xe6ed43c0 fwnode_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0xe6e9292a nvdimm_security_setup_events EXPORT_SYMBOL_GPL vmlinux 0xe6f83837 acpi_bus_attach_private_data -EXPORT_SYMBOL_GPL vmlinux 0xe6faa8df ata_platform_remove_one EXPORT_SYMBOL_GPL vmlinux 0xe700d767 reset_control_bulk_deassert -EXPORT_SYMBOL_GPL vmlinux 0xe7109b04 ima_file_check -EXPORT_SYMBOL_GPL vmlinux 0xe713e6d4 acpi_dev_get_dma_resources -EXPORT_SYMBOL_GPL vmlinux 0xe7144c7b usb_check_bulk_endpoints -EXPORT_SYMBOL_GPL vmlinux 0xe71f5eef of_regulator_bulk_get_all -EXPORT_SYMBOL_GPL vmlinux 0xe72187f3 ata_bmdma_qc_prep -EXPORT_SYMBOL_GPL vmlinux 0xe722aaef syscon_regmap_lookup_by_phandle_args -EXPORT_SYMBOL_GPL vmlinux 0xe725c54c fib_alias_hw_flags_set -EXPORT_SYMBOL_GPL vmlinux 0xe72ad77d __scsi_init_queue -EXPORT_SYMBOL_GPL vmlinux 0xe72eee1d blk_mq_update_nr_hw_queues -EXPORT_SYMBOL_GPL vmlinux 0xe72f9a40 usb_role_switch_get -EXPORT_SYMBOL_GPL vmlinux 0xe7512eb4 bsg_job_get -EXPORT_SYMBOL_GPL vmlinux 0xe7514240 edac_pci_handle_npe -EXPORT_SYMBOL_GPL vmlinux 0xe7523fbe spi_slave_abort +EXPORT_SYMBOL_GPL vmlinux 0xe7018d6a mbox_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe7172c46 devfreq_event_reset_event +EXPORT_SYMBOL_GPL vmlinux 0xe735e307 pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0xe74e83a1 dma_get_any_slave_channel EXPORT_SYMBOL_GPL vmlinux 0xe753b68d devlink_fmsg_arr_pair_nest_end -EXPORT_SYMBOL_GPL vmlinux 0xe754ae3c io_cgrp_subsys -EXPORT_SYMBOL_GPL vmlinux 0xe75d931c ipv4_update_pmtu -EXPORT_SYMBOL_GPL vmlinux 0xe7641511 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xe758c943 regmap_add_irq_chip_fwnode EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset EXPORT_SYMBOL_GPL vmlinux 0xe77d5ef3 ata_xfer_mode2mask EXPORT_SYMBOL_GPL vmlinux 0xe783e261 sysfs_emit -EXPORT_SYMBOL_GPL vmlinux 0xe795d835 tty_perform_flush -EXPORT_SYMBOL_GPL vmlinux 0xe79965e0 ping_err -EXPORT_SYMBOL_GPL vmlinux 0xe7a2e7a7 sdio_writel -EXPORT_SYMBOL_GPL vmlinux 0xe7bd363a __inet_lookup_listener -EXPORT_SYMBOL_GPL vmlinux 0xe7cfdcd0 dw_pcie_ep_raise_legacy_irq -EXPORT_SYMBOL_GPL vmlinux 0xe7d696f0 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xe79a66f2 xdp_attachment_setup +EXPORT_SYMBOL_GPL vmlinux 0xe79f0b0d rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xe7c0ec49 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xe7d6201b get_device EXPORT_SYMBOL_GPL vmlinux 0xe7d6d2d4 filter_match_preds -EXPORT_SYMBOL_GPL vmlinux 0xe80ab629 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xe7e329f5 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0xe7e399dc gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xe7ec8c9a usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xe7f711aa crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xe7fbfe24 mptcp_pm_get_add_addr_accept_max EXPORT_SYMBOL_GPL vmlinux 0xe80dcb5f xas_find_conflict +EXPORT_SYMBOL_GPL vmlinux 0xe80df7e7 dma_resv_test_signaled EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt -EXPORT_SYMBOL_GPL vmlinux 0xe8361425 tpm2_probe -EXPORT_SYMBOL_GPL vmlinux 0xe839abad devm_clk_bulk_get -EXPORT_SYMBOL_GPL vmlinux 0xe8438599 thermal_zone_device_unregister -EXPORT_SYMBOL_GPL vmlinux 0xe847ff10 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xe83969d7 rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0xe844aa05 pci_epc_linkup EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports EXPORT_SYMBOL_GPL vmlinux 0xe85a9fd3 cpu_cluster_pm_exit -EXPORT_SYMBOL_GPL vmlinux 0xe85bc296 tracing_snapshot_cond_disable -EXPORT_SYMBOL_GPL vmlinux 0xe85ce680 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0xe85f0ba4 devm_pm_opp_of_add_table +EXPORT_SYMBOL_GPL vmlinux 0xe8627147 skb_consume_udp EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start -EXPORT_SYMBOL_GPL vmlinux 0xe8781f07 regmap_noinc_write -EXPORT_SYMBOL_GPL vmlinux 0xe895d35b tcp_bpf_update_proto -EXPORT_SYMBOL_GPL vmlinux 0xe8976148 buffer_migrate_folio_norefs +EXPORT_SYMBOL_GPL vmlinux 0xe86e5e51 __netdev_watchdog_up +EXPORT_SYMBOL_GPL vmlinux 0xe872c3db blk_mq_freeze_queue_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0xe8730de2 crypto_skcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0xe8797f87 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xe87dc7d8 simple_attr_write_signed +EXPORT_SYMBOL_GPL vmlinux 0xe881a1da cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0xe8897844 regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xe89f2a7c wm831x_set_bits EXPORT_SYMBOL_GPL vmlinux 0xe8a772bd vcap_keyset_list_add -EXPORT_SYMBOL_GPL vmlinux 0xe8aa7afc gpiochip_remove_pin_ranges -EXPORT_SYMBOL_GPL vmlinux 0xe8baeed9 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0xe8a9f12e regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xe8b5b861 devl_register +EXPORT_SYMBOL_GPL vmlinux 0xe8b60a27 iommu_map EXPORT_SYMBOL_GPL vmlinux 0xe8bc40c5 cn_netlink_send -EXPORT_SYMBOL_GPL vmlinux 0xe8c5219b dev_pm_opp_set_config -EXPORT_SYMBOL_GPL vmlinux 0xe8c5ad97 pci_vpd_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe8c79fd6 wakeup_sources_walk_start EXPORT_SYMBOL_GPL vmlinux 0xe8d105ff get_state_synchronize_srcu -EXPORT_SYMBOL_GPL vmlinux 0xe8d11b06 spi_take_timestamp_pre -EXPORT_SYMBOL_GPL vmlinux 0xe8e45490 regmap_get_device -EXPORT_SYMBOL_GPL vmlinux 0xe8e7a56c crypto_clone_shash -EXPORT_SYMBOL_GPL vmlinux 0xe8ed7a1a __fsverity_cleanup_inode -EXPORT_SYMBOL_GPL vmlinux 0xe8f57ef8 irq_work_queue -EXPORT_SYMBOL_GPL vmlinux 0xe8fdea26 platform_unregister_drivers +EXPORT_SYMBOL_GPL vmlinux 0xe8e9273c __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xe8f84e39 blk_queue_flag_test_and_set +EXPORT_SYMBOL_GPL vmlinux 0xe8fd5d39 regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xe9079d5d anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xe90deada devres_release EXPORT_SYMBOL_GPL vmlinux 0xe911df29 eventfd_ctx_do_read -EXPORT_SYMBOL_GPL vmlinux 0xe918fffc handle_level_irq -EXPORT_SYMBOL_GPL vmlinux 0xe930c8af vfs_getxattr -EXPORT_SYMBOL_GPL vmlinux 0xe934928d dev_pm_opp_of_add_table_indexed -EXPORT_SYMBOL_GPL vmlinux 0xe9360327 power_supply_get_drvdata -EXPORT_SYMBOL_GPL vmlinux 0xe93d9bf8 firmware_request_nowarn +EXPORT_SYMBOL_GPL vmlinux 0xe91a2756 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0xe92e5daf fscrypt_show_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0xe9388b5b blk_crypto_update_capabilities EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free -EXPORT_SYMBOL_GPL vmlinux 0xe940206d decrypt_blob -EXPORT_SYMBOL_GPL vmlinux 0xe942b109 devlink_region_snapshot_id_get +EXPORT_SYMBOL_GPL vmlinux 0xe940346b regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0xe9450a53 of_irq_to_resource_table +EXPORT_SYMBOL_GPL vmlinux 0xe946399c clk_register_fixed_rate EXPORT_SYMBOL_GPL vmlinux 0xe94986d6 sched_clock -EXPORT_SYMBOL_GPL vmlinux 0xe956151c jh7110_from_irq_desc -EXPORT_SYMBOL_GPL vmlinux 0xe9608293 device_get_child_node_count -EXPORT_SYMBOL_GPL vmlinux 0xe97d33df class_is_registered -EXPORT_SYMBOL_GPL vmlinux 0xe98ecdd2 devm_mbox_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xe9530be6 thermal_of_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0xe95c71b9 stmpe811_adc_common_init +EXPORT_SYMBOL_GPL vmlinux 0xe96df54c usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xe974928f device_match_name +EXPORT_SYMBOL_GPL vmlinux 0xe97a6838 pci_generic_ecam_ops +EXPORT_SYMBOL_GPL vmlinux 0xe97bb5a2 pci_epc_remove_epf +EXPORT_SYMBOL_GPL vmlinux 0xe97d8e2f iommu_map_sg +EXPORT_SYMBOL_GPL vmlinux 0xe998499f evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0xe9a90a82 lwtstate_free +EXPORT_SYMBOL_GPL vmlinux 0xe9aab2c4 fuse_send_init EXPORT_SYMBOL_GPL vmlinux 0xe9af030e ehci_cf_port_reset_rwsem -EXPORT_SYMBOL_GPL vmlinux 0xe9b72c18 __dax_driver_register -EXPORT_SYMBOL_GPL vmlinux 0xe9c2e41f pci_epf_alloc_space -EXPORT_SYMBOL_GPL vmlinux 0xe9c6e023 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0xe9b7b5ff pci_msix_free_irq +EXPORT_SYMBOL_GPL vmlinux 0xe9b828b3 devl_params_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe9c0f7c1 crypto_init_akcipher_ops_sig EXPORT_SYMBOL_GPL vmlinux 0xe9d1b7cf irq_to_pcap EXPORT_SYMBOL_GPL vmlinux 0xe9f5116f rcu_exp_jiffies_till_stall_check -EXPORT_SYMBOL_GPL vmlinux 0xe9faabb5 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xe9f5759c devm_regmap_add_irq_chip EXPORT_SYMBOL_GPL vmlinux 0xea018bbb mpi_test_bit -EXPORT_SYMBOL_GPL vmlinux 0xea05dae7 udp_splice_eof EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd -EXPORT_SYMBOL_GPL vmlinux 0xea27c19b riscv_get_intc_hwnode -EXPORT_SYMBOL_GPL vmlinux 0xea2d88cd devl_sb_unregister -EXPORT_SYMBOL_GPL vmlinux 0xea2dc7f2 dev_pm_qos_expose_latency_tolerance EXPORT_SYMBOL_GPL vmlinux 0xea312c8c serdev_acpi_get_uart_resource +EXPORT_SYMBOL_GPL vmlinux 0xea326c0b usb_phy_roothub_alloc EXPORT_SYMBOL_GPL vmlinux 0xea38036f ring_buffer_entries -EXPORT_SYMBOL_GPL vmlinux 0xea3ccf95 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0xea421f7a amba_bustype EXPORT_SYMBOL_GPL vmlinux 0xea462351 unregister_sifive_ccache_error_notifier -EXPORT_SYMBOL_GPL vmlinux 0xea615f50 aead_geniv_alloc -EXPORT_SYMBOL_GPL vmlinux 0xea6a02d4 rz_mtu3_16bit_ch_write -EXPORT_SYMBOL_GPL vmlinux 0xea6c4464 __netif_set_xps_queue -EXPORT_SYMBOL_GPL vmlinux 0xea81e0d4 led_blink_set_oneshot -EXPORT_SYMBOL_GPL vmlinux 0xea912833 regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0xea5503a9 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0xea640891 ethnl_cable_test_alloc +EXPORT_SYMBOL_GPL vmlinux 0xea7b1eb5 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0xea7bf2e0 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xea804091 tcp_reno_undo_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xea98c488 __traceiter_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xeaa4674e pci_msi_unmask_irq EXPORT_SYMBOL_GPL vmlinux 0xeaa5f5ec __cpuhp_state_remove_instance -EXPORT_SYMBOL_GPL vmlinux 0xead05af9 sk_msg_return +EXPORT_SYMBOL_GPL vmlinux 0xeaaea738 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xeab2e655 fuse_dev_alloc_install +EXPORT_SYMBOL_GPL vmlinux 0xeab5c887 watchdog_set_restart_priority +EXPORT_SYMBOL_GPL vmlinux 0xead0d707 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xead14ac7 regulator_set_mode EXPORT_SYMBOL_GPL vmlinux 0xead3e41b __traceiter_cpu_frequency EXPORT_SYMBOL_GPL vmlinux 0xead54924 mctrl_gpio_to_gpiod EXPORT_SYMBOL_GPL vmlinux 0xead5c8e5 clk_bulk_prepare -EXPORT_SYMBOL_GPL vmlinux 0xeadd9a18 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xeadb3c63 tcf_dev_queue_xmit EXPORT_SYMBOL_GPL vmlinux 0xeae0f496 clean_acked_data_flush -EXPORT_SYMBOL_GPL vmlinux 0xeaf0403c tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xeae64d77 rio_dma_prep_slave_sg EXPORT_SYMBOL_GPL vmlinux 0xeaf0a57c look_up_OID EXPORT_SYMBOL_GPL vmlinux 0xeaf3cb23 crc64_be -EXPORT_SYMBOL_GPL vmlinux 0xeb14273a clk_mux_val_to_index -EXPORT_SYMBOL_GPL vmlinux 0xeb142ead inode_sb_list_add -EXPORT_SYMBOL_GPL vmlinux 0xeb257978 trace_get_event_file -EXPORT_SYMBOL_GPL vmlinux 0xeb25a177 dw_pcie_find_ext_capability -EXPORT_SYMBOL_GPL vmlinux 0xeb286701 usb_autopm_get_interface_async -EXPORT_SYMBOL_GPL vmlinux 0xeb313f51 pci_load_and_free_saved_state -EXPORT_SYMBOL_GPL vmlinux 0xeb413f5c sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xeaf526f3 vp_modern_set_features +EXPORT_SYMBOL_GPL vmlinux 0xeb018f21 ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0xeb0e0bfa devm_bitmap_alloc +EXPORT_SYMBOL_GPL vmlinux 0xeb173dce blk_mq_wait_quiesce_done +EXPORT_SYMBOL_GPL vmlinux 0xeb184819 __traceiter_sched_overutilized_tp EXPORT_SYMBOL_GPL vmlinux 0xeb4221e4 trace_clock -EXPORT_SYMBOL_GPL vmlinux 0xeb6d7c9a dequeue_signal -EXPORT_SYMBOL_GPL vmlinux 0xeb6ffd87 driver_create_file -EXPORT_SYMBOL_GPL vmlinux 0xeb8068c0 tpm2_get_cc_attrs_tbl -EXPORT_SYMBOL_GPL vmlinux 0xeb828b95 lwtunnel_fill_encap -EXPORT_SYMBOL_GPL vmlinux 0xeb9081eb ip6_local_out -EXPORT_SYMBOL_GPL vmlinux 0xeb92138f usb_alloc_urb -EXPORT_SYMBOL_GPL vmlinux 0xeba54173 of_pci_range_parser_one -EXPORT_SYMBOL_GPL vmlinux 0xebb8e5e7 devl_trap_policers_unregister -EXPORT_SYMBOL_GPL vmlinux 0xebbc8e5d pci_epf_destroy -EXPORT_SYMBOL_GPL vmlinux 0xebc303c9 thermal_zone_device_type -EXPORT_SYMBOL_GPL vmlinux 0xebcc9390 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xeb4bd2d7 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xeb4be4bc cpufreq_dbs_governor_init +EXPORT_SYMBOL_GPL vmlinux 0xeb4c980b __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xeb5fabc2 phy_reset +EXPORT_SYMBOL_GPL vmlinux 0xeb7c9cc5 usb_acpi_port_lpm_incapable +EXPORT_SYMBOL_GPL vmlinux 0xeb7ccdb7 phy_speed_up +EXPORT_SYMBOL_GPL vmlinux 0xeb9f3003 acpi_set_modalias +EXPORT_SYMBOL_GPL vmlinux 0xeb9f3660 devm_acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0xebb60028 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xebd1cef6 __pm_runtime_idle EXPORT_SYMBOL_GPL vmlinux 0xebd4cc11 mctrl_gpio_enable_ms +EXPORT_SYMBOL_GPL vmlinux 0xebdb2f4c irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xebdb89b3 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xebdc64d6 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xebe08a5e led_put EXPORT_SYMBOL_GPL vmlinux 0xebe496ca __tracepoint_neigh_cleanup_and_release -EXPORT_SYMBOL_GPL vmlinux 0xebf4ff6e devm_regulator_bulk_get_enable -EXPORT_SYMBOL_GPL vmlinux 0xec07c480 fib_rules_seq_read -EXPORT_SYMBOL_GPL vmlinux 0xec11dac6 crypto_unregister_template -EXPORT_SYMBOL_GPL vmlinux 0xec1d59a1 bpf_prog_select_runtime -EXPORT_SYMBOL_GPL vmlinux 0xec327843 da9052_regmap_config -EXPORT_SYMBOL_GPL vmlinux 0xec342167 wm831x_reg_lock -EXPORT_SYMBOL_GPL vmlinux 0xec424b7e inet_bhash2_update_saddr -EXPORT_SYMBOL_GPL vmlinux 0xec474a89 of_irq_parse_raw -EXPORT_SYMBOL_GPL vmlinux 0xec51e9f8 tty_wakeup -EXPORT_SYMBOL_GPL vmlinux 0xec560383 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0xec0bc308 i2c_new_ancillary_device +EXPORT_SYMBOL_GPL vmlinux 0xec1b1e59 dm_report_zones +EXPORT_SYMBOL_GPL vmlinux 0xec3dc7d1 bpf_offload_dev_netdev_register +EXPORT_SYMBOL_GPL vmlinux 0xec3e2217 clk_hw_unregister_divider +EXPORT_SYMBOL_GPL vmlinux 0xec51f819 vp_modern_set_status EXPORT_SYMBOL_GPL vmlinux 0xec5668f6 dax_zero_page_range -EXPORT_SYMBOL_GPL vmlinux 0xec6d8ebd tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xec5be3e7 pm_runtime_get_if_active +EXPORT_SYMBOL_GPL vmlinux 0xec75cdb3 regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0xec75edf3 regmap_async_complete_cb EXPORT_SYMBOL_GPL vmlinux 0xec774acb cpufreq_frequency_table_verify -EXPORT_SYMBOL_GPL vmlinux 0xec786c95 gpiod_is_active_low -EXPORT_SYMBOL_GPL vmlinux 0xec7eaec1 replace_page_cache_folio -EXPORT_SYMBOL_GPL vmlinux 0xec979b2b platform_add_devices -EXPORT_SYMBOL_GPL vmlinux 0xeca76d82 of_clk_add_hw_provider -EXPORT_SYMBOL_GPL vmlinux 0xeca9725f uart_set_options -EXPORT_SYMBOL_GPL vmlinux 0xecadaf66 of_hwspin_lock_get_id_byname +EXPORT_SYMBOL_GPL vmlinux 0xec936f3c regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0xec9cddcb netdev_walk_all_lower_dev +EXPORT_SYMBOL_GPL vmlinux 0xeca00c6b ip6_pol_route +EXPORT_SYMBOL_GPL vmlinux 0xeca3ae26 validate_xmit_xfrm +EXPORT_SYMBOL_GPL vmlinux 0xeca854cd __irq_alloc_descs EXPORT_SYMBOL_GPL vmlinux 0xecae9ce2 cleanup_srcu_struct -EXPORT_SYMBOL_GPL vmlinux 0xecafce8b max8997_write_reg -EXPORT_SYMBOL_GPL vmlinux 0xecbca86b perf_event_addr_filters_sync -EXPORT_SYMBOL_GPL vmlinux 0xecc07897 vcap_enable_lookups -EXPORT_SYMBOL_GPL vmlinux 0xecd373f6 tty_prepare_flip_string -EXPORT_SYMBOL_GPL vmlinux 0xecd77b8f devlink_alloc_ns -EXPORT_SYMBOL_GPL vmlinux 0xecd86e27 ip_icmp_error -EXPORT_SYMBOL_GPL vmlinux 0xece39125 synth_event_trace_end -EXPORT_SYMBOL_GPL vmlinux 0xece4be6b skb_zerocopy_headlen -EXPORT_SYMBOL_GPL vmlinux 0xeced3d4d usb_deregister_device_driver -EXPORT_SYMBOL_GPL vmlinux 0xecf70732 cgroup_get_from_id -EXPORT_SYMBOL_GPL vmlinux 0xed0bbdd0 fscrypt_drop_inode -EXPORT_SYMBOL_GPL vmlinux 0xed21c13d debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xecb11535 spi_target_abort +EXPORT_SYMBOL_GPL vmlinux 0xecb90840 bpf_trace_run5 +EXPORT_SYMBOL_GPL vmlinux 0xecc06ba4 devlink_unregister +EXPORT_SYMBOL_GPL vmlinux 0xecc9e9a1 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0xecf95a58 spi_get_device_id EXPORT_SYMBOL_GPL vmlinux 0xed2c5bcf power_supply_charge_behaviour_parse -EXPORT_SYMBOL_GPL vmlinux 0xed2e81b9 blk_rq_prep_clone -EXPORT_SYMBOL_GPL vmlinux 0xed339ca3 dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xed36eac2 mmc_sanitize EXPORT_SYMBOL_GPL vmlinux 0xed39b7b8 parse_OID -EXPORT_SYMBOL_GPL vmlinux 0xed3a32f6 iommu_device_sysfs_add -EXPORT_SYMBOL_GPL vmlinux 0xed4409d4 __udp_gso_segment -EXPORT_SYMBOL_GPL vmlinux 0xed5ae1b8 fuse_direct_io -EXPORT_SYMBOL_GPL vmlinux 0xed60b72d ping_seq_next -EXPORT_SYMBOL_GPL vmlinux 0xed60c209 udp_bpf_update_proto +EXPORT_SYMBOL_GPL vmlinux 0xed45dc8d netdev_walk_all_lower_dev_rcu +EXPORT_SYMBOL_GPL vmlinux 0xed489af3 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xed532a74 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xed537abc devl_linecard_create EXPORT_SYMBOL_GPL vmlinux 0xed60dec8 register_fprobe_ips -EXPORT_SYMBOL_GPL vmlinux 0xed7860af dma_resv_wait_timeout -EXPORT_SYMBOL_GPL vmlinux 0xed841933 regcache_mark_dirty EXPORT_SYMBOL_GPL vmlinux 0xed8c384b netdev_xmit_skip_txqueue -EXPORT_SYMBOL_GPL vmlinux 0xed9ee224 led_trigger_event -EXPORT_SYMBOL_GPL vmlinux 0xed9f0d31 strp_unpause -EXPORT_SYMBOL_GPL vmlinux 0xed9ffe09 nf_queue -EXPORT_SYMBOL_GPL vmlinux 0xeda09971 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xeda35aed component_del +EXPORT_SYMBOL_GPL vmlinux 0xedae614f usb_get_current_frame_number EXPORT_SYMBOL_GPL vmlinux 0xedb7c74f rhashtable_walk_start_check -EXPORT_SYMBOL_GPL vmlinux 0xedd3a408 tcp_twsk_unique -EXPORT_SYMBOL_GPL vmlinux 0xedda4772 usb_hub_find_child -EXPORT_SYMBOL_GPL vmlinux 0xede787a1 device_match_name -EXPORT_SYMBOL_GPL vmlinux 0xedf30809 __pci_epf_register_driver -EXPORT_SYMBOL_GPL vmlinux 0xedf7a752 dma_resv_get_fences -EXPORT_SYMBOL_GPL vmlinux 0xedfa3f74 platform_device_register -EXPORT_SYMBOL_GPL vmlinux 0xee1a8f34 clk_hw_unregister_fixed_rate -EXPORT_SYMBOL_GPL vmlinux 0xee38cfbe devl_linecard_create +EXPORT_SYMBOL_GPL vmlinux 0xedbbca2c serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0xedbd7204 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0xedc1e346 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xedd2b14e blk_crypto_profile_init +EXPORT_SYMBOL_GPL vmlinux 0xeddcb0a5 dev_pm_qos_hide_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0xeddf8565 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0xede50c25 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0xedea4879 dev_pm_opp_is_turbo +EXPORT_SYMBOL_GPL vmlinux 0xee023514 serdev_device_write_buf +EXPORT_SYMBOL_GPL vmlinux 0xee0642c3 kpp_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xee136cd0 devm_pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0xee1f641c sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0xee32f23b vp_legacy_get_features EXPORT_SYMBOL_GPL vmlinux 0xee38ef57 register_switchdev_blocking_notifier +EXPORT_SYMBOL_GPL vmlinux 0xee3e8553 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xee4136f8 blkcg_root_css EXPORT_SYMBOL_GPL vmlinux 0xee518148 kmsg_dump_get_buffer -EXPORT_SYMBOL_GPL vmlinux 0xee51ccfe jh7110_set_gpiomux -EXPORT_SYMBOL_GPL vmlinux 0xee59372e acpi_match_acpi_device -EXPORT_SYMBOL_GPL vmlinux 0xee5f3a75 ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0xee5acf2a crypto_register_skcipher EXPORT_SYMBOL_GPL vmlinux 0xee6b71c4 syscon_regmap_lookup_by_compatible EXPORT_SYMBOL_GPL vmlinux 0xee6c633a devices_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0xee718aed devm_device_add_group +EXPORT_SYMBOL_GPL vmlinux 0xee6c8bae pm_clk_destroy EXPORT_SYMBOL_GPL vmlinux 0xee74a922 __tracepoint_console -EXPORT_SYMBOL_GPL vmlinux 0xee7d60fe badblocks_check -EXPORT_SYMBOL_GPL vmlinux 0xee87140c rtnl_link_unregister -EXPORT_SYMBOL_GPL vmlinux 0xeea44798 handle_bad_irq -EXPORT_SYMBOL_GPL vmlinux 0xeea907f9 sysfs_break_active_protection -EXPORT_SYMBOL_GPL vmlinux 0xeeb2d7ab bd_link_disk_holder -EXPORT_SYMBOL_GPL vmlinux 0xeec548aa device_property_read_string_array -EXPORT_SYMBOL_GPL vmlinux 0xeec94c07 follow_pte +EXPORT_SYMBOL_GPL vmlinux 0xee8219c4 dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0xee8e2115 dev_get_tstats64 +EXPORT_SYMBOL_GPL vmlinux 0xeeb783c1 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xeec7471f sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0xeed70fa9 gpiochip_generic_request EXPORT_SYMBOL_GPL vmlinux 0xeedd987e phy_10gbit_features_array EXPORT_SYMBOL_GPL vmlinux 0xeee4b172 mnt_idmap_put -EXPORT_SYMBOL_GPL vmlinux 0xeef518d1 task_user_regset_view -EXPORT_SYMBOL_GPL vmlinux 0xeef744c6 msg_zerocopy_callback -EXPORT_SYMBOL_GPL vmlinux 0xef07808d tty_ldisc_ref_wait -EXPORT_SYMBOL_GPL vmlinux 0xef194e37 acct_bioset_init -EXPORT_SYMBOL_GPL vmlinux 0xef197c45 mmc_regulator_set_vqmmc +EXPORT_SYMBOL_GPL vmlinux 0xeee89730 jh7110_pinctrl_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xeeea76b4 xdp_do_redirect +EXPORT_SYMBOL_GPL vmlinux 0xeef076dd gpiochip_irqchip_add_domain +EXPORT_SYMBOL_GPL vmlinux 0xeeffe5c6 dw_pcie_ep_raise_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0xef09154b cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xef0c9d40 acpi_device_get_match_data +EXPORT_SYMBOL_GPL vmlinux 0xef0ca3ef pm_clk_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xef250605 inet_twsk_hashdance EXPORT_SYMBOL_GPL vmlinux 0xef29fcdd clk_bulk_put -EXPORT_SYMBOL_GPL vmlinux 0xef2cb163 usb_sg_cancel -EXPORT_SYMBOL_GPL vmlinux 0xef39739d bpf_offload_dev_netdev_register -EXPORT_SYMBOL_GPL vmlinux 0xef42b966 clk_hw_unregister_gate EXPORT_SYMBOL_GPL vmlinux 0xef464c28 getboottime64 -EXPORT_SYMBOL_GPL vmlinux 0xef4d0692 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xef47a2ca serial8250_read_char +EXPORT_SYMBOL_GPL vmlinux 0xef493f1f tcp_sendmsg_locked EXPORT_SYMBOL_GPL vmlinux 0xef5db66d regulator_get_init_drvdata -EXPORT_SYMBOL_GPL vmlinux 0xef5ffdb0 irq_alloc_generic_chip -EXPORT_SYMBOL_GPL vmlinux 0xef67e2ae devm_platform_ioremap_resource_byname EXPORT_SYMBOL_GPL vmlinux 0xef67ec35 __tracepoint_neigh_update -EXPORT_SYMBOL_GPL vmlinux 0xef68478a vchan_find_desc EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative -EXPORT_SYMBOL_GPL vmlinux 0xef6e4e82 irq_domain_create_hierarchy EXPORT_SYMBOL_GPL vmlinux 0xef70eb7e ring_buffer_iter_advance -EXPORT_SYMBOL_GPL vmlinux 0xef713b31 scsi_block_targets -EXPORT_SYMBOL_GPL vmlinux 0xef875ec3 virtqueue_kick_prepare -EXPORT_SYMBOL_GPL vmlinux 0xef8cd0e9 fuse_conn_put -EXPORT_SYMBOL_GPL vmlinux 0xef8edcef phy_modify_mmd_changed -EXPORT_SYMBOL_GPL vmlinux 0xef8fa9d0 of_pci_range_parser_init -EXPORT_SYMBOL_GPL vmlinux 0xef97bb64 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xef81d611 devm_pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0xef8c5e5f regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xef992b3b tty_port_install EXPORT_SYMBOL_GPL vmlinux 0xefa2c27d register_tracepoint_module_notifier -EXPORT_SYMBOL_GPL vmlinux 0xefa57ff1 rcu_read_unlock_trace_special +EXPORT_SYMBOL_GPL vmlinux 0xefa37b5a class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xefac9198 misc_cg_try_charge EXPORT_SYMBOL_GPL vmlinux 0xefc491d5 of_get_display_timings -EXPORT_SYMBOL_GPL vmlinux 0xefd0a02f usb_enable_intel_xhci_ports -EXPORT_SYMBOL_GPL vmlinux 0xefd4f5fc net_selftest +EXPORT_SYMBOL_GPL vmlinux 0xefcc6d10 proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0xefe08104 fwnode_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0xefe74ba0 __dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xefeaeaf1 folio_add_wait_queue EXPORT_SYMBOL_GPL vmlinux 0xefeafcf1 edac_has_mcs -EXPORT_SYMBOL_GPL vmlinux 0xefed788f device_remove_bin_file -EXPORT_SYMBOL_GPL vmlinux 0xeff09081 cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0xeff4419e gpiod_export_link EXPORT_SYMBOL_GPL vmlinux 0xeff5f3a9 lwtunnel_valid_encap_type -EXPORT_SYMBOL_GPL vmlinux 0xf0034374 acpi_set_modalias -EXPORT_SYMBOL_GPL vmlinux 0xf0046268 devlink_region_snapshot_id_put +EXPORT_SYMBOL_GPL vmlinux 0xeff610d7 bio_associate_blkg_from_css +EXPORT_SYMBOL_GPL vmlinux 0xeffc2d55 dm_accept_partial_bio EXPORT_SYMBOL_GPL vmlinux 0xf00bdca2 mutex_lock_io +EXPORT_SYMBOL_GPL vmlinux 0xf00f5507 acpi_pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xf011c3a7 rt_mutex_lock_killable +EXPORT_SYMBOL_GPL vmlinux 0xf0138b61 ipv6_opt_accepted EXPORT_SYMBOL_GPL vmlinux 0xf01403a3 pkcs7_validate_trust -EXPORT_SYMBOL_GPL vmlinux 0xf01459e3 crypto_register_akcipher -EXPORT_SYMBOL_GPL vmlinux 0xf027af8e acpi_dev_get_next_consumer_dev +EXPORT_SYMBOL_GPL vmlinux 0xf0188a3e of_phy_get +EXPORT_SYMBOL_GPL vmlinux 0xf020bea7 inet_splice_eof +EXPORT_SYMBOL_GPL vmlinux 0xf03836b8 ip6_push_pending_frames EXPORT_SYMBOL_GPL vmlinux 0xf04429b4 acpi_bus_get_status_handle -EXPORT_SYMBOL_GPL vmlinux 0xf0452ce1 __fib_lookup -EXPORT_SYMBOL_GPL vmlinux 0xf04d5b91 vfs_setxattr -EXPORT_SYMBOL_GPL vmlinux 0xf0557c41 dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0xf049d726 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xf0581c0e balloon_page_list_dequeue EXPORT_SYMBOL_GPL vmlinux 0xf05a52fe asn1_encode_oid +EXPORT_SYMBOL_GPL vmlinux 0xf05dfc42 ip_local_out EXPORT_SYMBOL_GPL vmlinux 0xf05fbf09 pci_pio_to_address -EXPORT_SYMBOL_GPL vmlinux 0xf0673a2d sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0xf068d0f3 blk_queue_required_elevator_features EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable -EXPORT_SYMBOL_GPL vmlinux 0xf0859f44 usb_register_driver -EXPORT_SYMBOL_GPL vmlinux 0xf08f94b4 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xf0869452 __devm_rtc_register_device +EXPORT_SYMBOL_GPL vmlinux 0xf08d6e6d genphy_c45_pma_read_abilities EXPORT_SYMBOL_GPL vmlinux 0xf0910075 sfp_bus_del_upstream -EXPORT_SYMBOL_GPL vmlinux 0xf09f43c3 subsys_system_register -EXPORT_SYMBOL_GPL vmlinux 0xf0b73311 irq_domain_free_irqs_common +EXPORT_SYMBOL_GPL vmlinux 0xf0b58c48 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0xf0c042d1 pinctrl_count_index_with_args +EXPORT_SYMBOL_GPL vmlinux 0xf0c12493 sk_msg_free_partial EXPORT_SYMBOL_GPL vmlinux 0xf0e01729 xas_create_range EXPORT_SYMBOL_GPL vmlinux 0xf0e52dc0 __tracepoint_ata_exec_command -EXPORT_SYMBOL_GPL vmlinux 0xf0fbbd8e ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xf0f17a21 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0xf0f6bd75 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0xf108f002 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf10b32f7 debugfs_attr_write_signed +EXPORT_SYMBOL_GPL vmlinux 0xf10dbd7e wakeup_source_unregister EXPORT_SYMBOL_GPL vmlinux 0xf1121c44 xa_delete_node EXPORT_SYMBOL_GPL vmlinux 0xf1124ecd sfp_upstream_set_signal_rate -EXPORT_SYMBOL_GPL vmlinux 0xf11cff40 sdio_readl -EXPORT_SYMBOL_GPL vmlinux 0xf11f273c fsnotify -EXPORT_SYMBOL_GPL vmlinux 0xf12642d5 tty_standard_install -EXPORT_SYMBOL_GPL vmlinux 0xf14a48c2 debugfs_create_u16 -EXPORT_SYMBOL_GPL vmlinux 0xf14db946 rio_dev_get -EXPORT_SYMBOL_GPL vmlinux 0xf1529236 pci_bus_add_device -EXPORT_SYMBOL_GPL vmlinux 0xf15a0766 wm8350_gpio_config -EXPORT_SYMBOL_GPL vmlinux 0xf15a70e3 serial8250_em485_config -EXPORT_SYMBOL_GPL vmlinux 0xf15b39ee irq_generic_chip_ops -EXPORT_SYMBOL_GPL vmlinux 0xf17dc658 regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0xf12f4d26 genphy_c45_baset1_read_status +EXPORT_SYMBOL_GPL vmlinux 0xf14a3bbf sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0xf15b3c78 acct_bioset_init +EXPORT_SYMBOL_GPL vmlinux 0xf16d468f rz_mtu3_shared_reg_update_bit +EXPORT_SYMBOL_GPL vmlinux 0xf16d6e93 devm_platform_get_and_ioremap_resource +EXPORT_SYMBOL_GPL vmlinux 0xf16f495f inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0xf1795b06 vcap_tc_flower_handler_tcp_usage EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off -EXPORT_SYMBOL_GPL vmlinux 0xf19d1a15 amba_device_put -EXPORT_SYMBOL_GPL vmlinux 0xf1a5e5de irq_gc_noop -EXPORT_SYMBOL_GPL vmlinux 0xf1b1b10d gpiod_get_optional -EXPORT_SYMBOL_GPL vmlinux 0xf1b2a63d fwnode_graph_get_remote_endpoint -EXPORT_SYMBOL_GPL vmlinux 0xf1c56a81 component_unbind_all +EXPORT_SYMBOL_GPL vmlinux 0xf18fcae6 pinctrl_remove_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0xf1a3e4e6 pci_host_probe +EXPORT_SYMBOL_GPL vmlinux 0xf1b50279 pinctrl_generic_get_group_name +EXPORT_SYMBOL_GPL vmlinux 0xf1c7105d tty_save_termios +EXPORT_SYMBOL_GPL vmlinux 0xf1c9f78a irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0xf1cfef1a iommu_enable_nesting +EXPORT_SYMBOL_GPL vmlinux 0xf1e353de edac_pci_free_ctl_info EXPORT_SYMBOL_GPL vmlinux 0xf1e3f39d freq_qos_remove_request -EXPORT_SYMBOL_GPL vmlinux 0xf1e954b7 dma_get_slave_caps EXPORT_SYMBOL_GPL vmlinux 0xf1ecda92 vcap_set_rule_set_keyset -EXPORT_SYMBOL_GPL vmlinux 0xf1f24d6c perf_aux_output_flag -EXPORT_SYMBOL_GPL vmlinux 0xf1f38f58 devm_device_add_groups -EXPORT_SYMBOL_GPL vmlinux 0xf1f4430d __acpi_node_get_property_reference -EXPORT_SYMBOL_GPL vmlinux 0xf1fba12e register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xf1f36bf7 devfreq_event_get_edev_count EXPORT_SYMBOL_GPL vmlinux 0xf1ffb44f vcap_rule_set_counter_id -EXPORT_SYMBOL_GPL vmlinux 0xf205ed54 relay_buf_full -EXPORT_SYMBOL_GPL vmlinux 0xf209be57 device_create_with_groups -EXPORT_SYMBOL_GPL vmlinux 0xf20d1625 __pm_runtime_set_status -EXPORT_SYMBOL_GPL vmlinux 0xf20f6e83 dev_pm_opp_of_register_em +EXPORT_SYMBOL_GPL vmlinux 0xf207d9e6 nvdimm_region_notify +EXPORT_SYMBOL_GPL vmlinux 0xf210645c regulator_irq_map_event_simple +EXPORT_SYMBOL_GPL vmlinux 0xf21842dc vfs_set_acl EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq -EXPORT_SYMBOL_GPL vmlinux 0xf224728d relay_late_setup_files -EXPORT_SYMBOL_GPL vmlinux 0xf2299dac relay_file_operations -EXPORT_SYMBOL_GPL vmlinux 0xf231a7b0 __netpoll_free -EXPORT_SYMBOL_GPL vmlinux 0xf23295f2 skcipher_walk_done -EXPORT_SYMBOL_GPL vmlinux 0xf2650622 fscrypt_file_open -EXPORT_SYMBOL_GPL vmlinux 0xf26c289c dev_pm_qos_expose_latency_limit -EXPORT_SYMBOL_GPL vmlinux 0xf26e7600 component_del -EXPORT_SYMBOL_GPL vmlinux 0xf27c1f46 attribute_container_find_class_device -EXPORT_SYMBOL_GPL vmlinux 0xf27df90f crypto_unregister_scomp +EXPORT_SYMBOL_GPL vmlinux 0xf241b85d crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xf253da08 fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0xf259f4e0 fscrypt_ioctl_remove_key +EXPORT_SYMBOL_GPL vmlinux 0xf25a0db6 blk_stat_disable_accounting +EXPORT_SYMBOL_GPL vmlinux 0xf25b4ce5 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf26db8fc ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0xf26e40f1 dev_pm_opp_put +EXPORT_SYMBOL_GPL vmlinux 0xf27141fa __traceiter_block_unplug EXPORT_SYMBOL_GPL vmlinux 0xf28404cf devlink_dpipe_header_ipv6 +EXPORT_SYMBOL_GPL vmlinux 0xf29615dd fwnode_property_read_string EXPORT_SYMBOL_GPL vmlinux 0xf2967796 ring_buffer_record_on -EXPORT_SYMBOL_GPL vmlinux 0xf2982534 regulator_get_voltage_rdev +EXPORT_SYMBOL_GPL vmlinux 0xf29f7610 __traceiter_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0xf2aedeb2 anon_inode_getfd_secure EXPORT_SYMBOL_GPL vmlinux 0xf2b33cb7 memory_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0xf2b800c5 iommu_present -EXPORT_SYMBOL_GPL vmlinux 0xf2ccd575 dev_pm_genpd_set_performance_state -EXPORT_SYMBOL_GPL vmlinux 0xf2cfe441 mmc_cmdq_disable -EXPORT_SYMBOL_GPL vmlinux 0xf2d69f31 vp_modern_get_queue_reset -EXPORT_SYMBOL_GPL vmlinux 0xf2d723dd virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0xf2c1d29b xdp_rxq_info_is_reg +EXPORT_SYMBOL_GPL vmlinux 0xf2cb580b strp_process +EXPORT_SYMBOL_GPL vmlinux 0xf2ef4c8c syscon_regmap_lookup_by_phandle_args +EXPORT_SYMBOL_GPL vmlinux 0xf2f5ba7a tty_port_default_client_ops EXPORT_SYMBOL_GPL vmlinux 0xf2fb61bd vprintk_default EXPORT_SYMBOL_GPL vmlinux 0xf2ff4bc2 serial8250_em485_supported -EXPORT_SYMBOL_GPL vmlinux 0xf303bdef devm_regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf309088e of_clk_get_from_provider EXPORT_SYMBOL_GPL vmlinux 0xf30a5502 cpufreq_enable_boost_support +EXPORT_SYMBOL_GPL vmlinux 0xf3115969 ata_sff_error_handler EXPORT_SYMBOL_GPL vmlinux 0xf311e156 key_being_used_for EXPORT_SYMBOL_GPL vmlinux 0xf31632e0 ezx_pcap_read -EXPORT_SYMBOL_GPL vmlinux 0xf3174cf9 mpc8xxx_spi_tx_buf_u16 -EXPORT_SYMBOL_GPL vmlinux 0xf31a0c2c ping_get_port EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active -EXPORT_SYMBOL_GPL vmlinux 0xf31c782e acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf320e59f __traceiter_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xf3255591 iommu_attach_group EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 EXPORT_SYMBOL_GPL vmlinux 0xf3349638 usb_anchor_suspend_wakeups -EXPORT_SYMBOL_GPL vmlinux 0xf33decf4 inet_bhash2_reset_saddr -EXPORT_SYMBOL_GPL vmlinux 0xf3432ecd ata_bmdma_stop EXPORT_SYMBOL_GPL vmlinux 0xf352023f memory_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0xf36e27e2 acpi_driver_match_device -EXPORT_SYMBOL_GPL vmlinux 0xf3723631 synth_event_trace_array +EXPORT_SYMBOL_GPL vmlinux 0xf35dff3a devlink_to_dev +EXPORT_SYMBOL_GPL vmlinux 0xf3762dce led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0xf3771a2e rcu_tasks_trace_qs_blkd EXPORT_SYMBOL_GPL vmlinux 0xf3797506 mpi_ec_deinit -EXPORT_SYMBOL_GPL vmlinux 0xf37f6215 skb_clone_tx_timestamp EXPORT_SYMBOL_GPL vmlinux 0xf3808cb1 get_state_synchronize_rcu EXPORT_SYMBOL_GPL vmlinux 0xf383dbc2 kobject_create_and_add -EXPORT_SYMBOL_GPL vmlinux 0xf391f781 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0xf388efce devlink_port_type_ib_set EXPORT_SYMBOL_GPL vmlinux 0xf3a09fe7 crypto_has_kpp -EXPORT_SYMBOL_GPL vmlinux 0xf3ac7291 fb_deferred_io_mmap -EXPORT_SYMBOL_GPL vmlinux 0xf3b3f20a fb_bl_default_curve EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs -EXPORT_SYMBOL_GPL vmlinux 0xf3dd9346 pin_user_pages_fast -EXPORT_SYMBOL_GPL vmlinux 0xf3eb3439 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xf3e5c610 regulator_list_voltage_linear EXPORT_SYMBOL_GPL vmlinux 0xf3ec19de riscv_ipi_for_rfence -EXPORT_SYMBOL_GPL vmlinux 0xf4097a26 __kernel_write -EXPORT_SYMBOL_GPL vmlinux 0xf4141278 devm_regulator_bulk_get_exclusive -EXPORT_SYMBOL_GPL vmlinux 0xf4192103 ethnl_cable_test_fault_length +EXPORT_SYMBOL_GPL vmlinux 0xf40b0878 dw_pcie_ep_raise_legacy_irq +EXPORT_SYMBOL_GPL vmlinux 0xf411901a inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xf41ca2f0 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xf4212363 md_find_rdev_rcu EXPORT_SYMBOL_GPL vmlinux 0xf421d47e vcap_copy_rule -EXPORT_SYMBOL_GPL vmlinux 0xf424760b blk_abort_request -EXPORT_SYMBOL_GPL vmlinux 0xf42ad7e0 devm_of_icc_get -EXPORT_SYMBOL_GPL vmlinux 0xf433d8aa tcp_slow_start -EXPORT_SYMBOL_GPL vmlinux 0xf4389707 kthread_queue_work -EXPORT_SYMBOL_GPL vmlinux 0xf455664e ack_all_badblocks -EXPORT_SYMBOL_GPL vmlinux 0xf45f3f77 blk_mq_quiesce_queue_nowait -EXPORT_SYMBOL_GPL vmlinux 0xf46889eb usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xf442c51c regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0xf44b480f edac_device_free_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0xf457d617 nf_queue_entry_free EXPORT_SYMBOL_GPL vmlinux 0xf4689d50 linkmode_set_pause +EXPORT_SYMBOL_GPL vmlinux 0xf4731ff0 ata_port_abort EXPORT_SYMBOL_GPL vmlinux 0xf47654df irq_check_status_bit -EXPORT_SYMBOL_GPL vmlinux 0xf482b527 ata_pci_sff_init_host EXPORT_SYMBOL_GPL vmlinux 0xf48490a1 housekeeping_cpumask -EXPORT_SYMBOL_GPL vmlinux 0xf48dbd57 bpf_trace_run9 +EXPORT_SYMBOL_GPL vmlinux 0xf497bc35 shmem_file_setup EXPORT_SYMBOL_GPL vmlinux 0xf4af35c2 rcu_gp_is_normal -EXPORT_SYMBOL_GPL vmlinux 0xf4bd7432 firmware_request_platform -EXPORT_SYMBOL_GPL vmlinux 0xf4c2e6f8 switchdev_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0xf4b6c7c8 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0xf4b93eda kthread_unpark EXPORT_SYMBOL_GPL vmlinux 0xf4cd9f8f reset_control_bulk_release -EXPORT_SYMBOL_GPL vmlinux 0xf4d1e30d hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf4cdb86c __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xf4ced464 blockdev_superblock +EXPORT_SYMBOL_GPL vmlinux 0xf4d4b2d6 tcp_abort EXPORT_SYMBOL_GPL vmlinux 0xf4d671fa rhashtable_walk_enter -EXPORT_SYMBOL_GPL vmlinux 0xf4ddf7d0 device_add_groups -EXPORT_SYMBOL_GPL vmlinux 0xf4e377ff blk_revalidate_disk_zones +EXPORT_SYMBOL_GPL vmlinux 0xf4f6176c crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xf4f6b072 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xf513a88f regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf515c2ca percpu_free_rwsem EXPORT_SYMBOL_GPL vmlinux 0xf517a3eb rhashtable_walk_stop -EXPORT_SYMBOL_GPL vmlinux 0xf5255c8a usb_anchor_urb -EXPORT_SYMBOL_GPL vmlinux 0xf530bee9 ata_sff_thaw -EXPORT_SYMBOL_GPL vmlinux 0xf54b2697 virtqueue_get_vring +EXPORT_SYMBOL_GPL vmlinux 0xf51938c0 rio_del_mport_pw_handler +EXPORT_SYMBOL_GPL vmlinux 0xf51ea895 usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xf529d3b2 fscrypt_d_revalidate +EXPORT_SYMBOL_GPL vmlinux 0xf53d4e48 shmem_read_folio_gfp EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock -EXPORT_SYMBOL_GPL vmlinux 0xf559c3cf of_clk_src_simple_get -EXPORT_SYMBOL_GPL vmlinux 0xf55dece7 dev_pm_opp_get_suspend_opp_freq -EXPORT_SYMBOL_GPL vmlinux 0xf55ed7dc fwnode_graph_get_remote_port -EXPORT_SYMBOL_GPL vmlinux 0xf56c0cd1 phy_put -EXPORT_SYMBOL_GPL vmlinux 0xf56c941e cpufreq_driver_resolve_freq -EXPORT_SYMBOL_GPL vmlinux 0xf5851102 rio_bus_type -EXPORT_SYMBOL_GPL vmlinux 0xf58747c8 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf558bd10 tpm_try_get_ops +EXPORT_SYMBOL_GPL vmlinux 0xf55a45b1 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xf566c05b bio_split_rw +EXPORT_SYMBOL_GPL vmlinux 0xf578d264 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0xf598dcc4 samsung_sdi_battery_get_info EXPORT_SYMBOL_GPL vmlinux 0xf5a067bf iommu_group_dma_owner_claimed +EXPORT_SYMBOL_GPL vmlinux 0xf5a27f19 pci_reset_bus EXPORT_SYMBOL_GPL vmlinux 0xf5a3ba99 linear_range_values_in_range EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus -EXPORT_SYMBOL_GPL vmlinux 0xf5ae34c7 devlink_trap_groups_register -EXPORT_SYMBOL_GPL vmlinux 0xf5d1aba4 pci_epc_get -EXPORT_SYMBOL_GPL vmlinux 0xf5d99cfa irq_create_fwspec_mapping -EXPORT_SYMBOL_GPL vmlinux 0xf5dd2014 badblocks_exit -EXPORT_SYMBOL_GPL vmlinux 0xf5e6fb2c pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0xf5a91ded platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xf5ac0725 regulator_set_active_discharge_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf5ae7cc8 pci_status_get_and_clear_errors +EXPORT_SYMBOL_GPL vmlinux 0xf5b5f22d bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xf5be3fc7 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xf5d8a9e7 l3mdev_master_upper_ifindex_by_index_rcu EXPORT_SYMBOL_GPL vmlinux 0xf5f370e0 async_schedule_node -EXPORT_SYMBOL_GPL vmlinux 0xf5fa72e9 bpf_prog_add -EXPORT_SYMBOL_GPL vmlinux 0xf601e2df rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xf6014c1c dev_pm_opp_get_supplies +EXPORT_SYMBOL_GPL vmlinux 0xf634afbe is_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xf63e78de nvmem_device_cell_write EXPORT_SYMBOL_GPL vmlinux 0xf63f003a acpi_gpio_get_io_resource -EXPORT_SYMBOL_GPL vmlinux 0xf65493d6 of_platform_depopulate -EXPORT_SYMBOL_GPL vmlinux 0xf6586774 spi_target_abort -EXPORT_SYMBOL_GPL vmlinux 0xf65a922d regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0xf6503862 devm_register_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0xf6564320 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xf65b21cf metadata_dst_free +EXPORT_SYMBOL_GPL vmlinux 0xf65d3f39 gpiod_set_raw_value EXPORT_SYMBOL_GPL vmlinux 0xf663ee2f pcap_adc_sync -EXPORT_SYMBOL_GPL vmlinux 0xf66d6fd8 pwm_set_chip_data -EXPORT_SYMBOL_GPL vmlinux 0xf67de37d xdp_rxq_info_unreg_mem_model -EXPORT_SYMBOL_GPL vmlinux 0xf68845c1 rio_mport_get_physefb -EXPORT_SYMBOL_GPL vmlinux 0xf696a302 blk_set_pm_only +EXPORT_SYMBOL_GPL vmlinux 0xf677c349 rio_map_outb_region +EXPORT_SYMBOL_GPL vmlinux 0xf677d8e8 fsverity_get_digest +EXPORT_SYMBOL_GPL vmlinux 0xf682b10c mctrl_gpio_init_noauto +EXPORT_SYMBOL_GPL vmlinux 0xf69d15b6 to_nvdimm_bus +EXPORT_SYMBOL_GPL vmlinux 0xf69e320b ata_do_dev_read_id EXPORT_SYMBOL_GPL vmlinux 0xf6a28554 region_intersects +EXPORT_SYMBOL_GPL vmlinux 0xf6a74974 regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0xf6ace4be bio_blkcg_css +EXPORT_SYMBOL_GPL vmlinux 0xf6b6f769 rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0xf6bd5eb2 gpiod_toggle_active_low +EXPORT_SYMBOL_GPL vmlinux 0xf6bdf67e dw_pcie_find_ext_capability EXPORT_SYMBOL_GPL vmlinux 0xf6beee37 __SCK__tp_func_pelt_cfs_tp -EXPORT_SYMBOL_GPL vmlinux 0xf6c76871 devfreq_event_set_event EXPORT_SYMBOL_GPL vmlinux 0xf6c8dc62 cpu_hotplug_enable -EXPORT_SYMBOL_GPL vmlinux 0xf6cc0e9c pcie_bus_configure_settings -EXPORT_SYMBOL_GPL vmlinux 0xf6d305da clk_hw_get_rate -EXPORT_SYMBOL_GPL vmlinux 0xf6d75951 ata_std_qc_defer -EXPORT_SYMBOL_GPL vmlinux 0xf6d79bd2 usb_phy_set_event +EXPORT_SYMBOL_GPL vmlinux 0xf6cf24c9 irq_domain_create_sim +EXPORT_SYMBOL_GPL vmlinux 0xf6e427ee pwm_adjust_config EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge -EXPORT_SYMBOL_GPL vmlinux 0xf712e321 regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf6f6cdd4 of_regulator_match EXPORT_SYMBOL_GPL vmlinux 0xf7145dc4 drop_reasons_unregister_subsys -EXPORT_SYMBOL_GPL vmlinux 0xf71d184e mpc8xxx_spi_rx_buf_u8 -EXPORT_SYMBOL_GPL vmlinux 0xf723e776 dev_attr_ncq_prio_supported -EXPORT_SYMBOL_GPL vmlinux 0xf7261c68 pci_find_ext_capability -EXPORT_SYMBOL_GPL vmlinux 0xf7284c7e pcc_mbox_free_channel +EXPORT_SYMBOL_GPL vmlinux 0xf7297076 governor_sysfs_ops EXPORT_SYMBOL_GPL vmlinux 0xf72a65ea tty_get_char_size -EXPORT_SYMBOL_GPL vmlinux 0xf72f0800 cpufreq_freq_attr_scaling_available_freqs -EXPORT_SYMBOL_GPL vmlinux 0xf734273f devres_release_group -EXPORT_SYMBOL_GPL vmlinux 0xf7371be6 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0xf736c0b1 devm_of_phy_get_by_index +EXPORT_SYMBOL_GPL vmlinux 0xf73fe1a4 devl_trylock EXPORT_SYMBOL_GPL vmlinux 0xf7455c16 input_event_to_user EXPORT_SYMBOL_GPL vmlinux 0xf749debc md5_zero_message_hash EXPORT_SYMBOL_GPL vmlinux 0xf74bb274 mod_delayed_work_on -EXPORT_SYMBOL_GPL vmlinux 0xf74d1d99 dev_err_probe EXPORT_SYMBOL_GPL vmlinux 0xf74e7c93 jump_label_rate_limit -EXPORT_SYMBOL_GPL vmlinux 0xf7661879 policy_has_boost_freq EXPORT_SYMBOL_GPL vmlinux 0xf76baa39 alloc_iova -EXPORT_SYMBOL_GPL vmlinux 0xf76e91bf of_property_read_u64_index -EXPORT_SYMBOL_GPL vmlinux 0xf776b228 of_platform_default_populate -EXPORT_SYMBOL_GPL vmlinux 0xf77e3257 dev_pm_opp_set_rate +EXPORT_SYMBOL_GPL vmlinux 0xf77d33bd device_match_any EXPORT_SYMBOL_GPL vmlinux 0xf782fb07 percpu_ref_switch_to_atomic_sync -EXPORT_SYMBOL_GPL vmlinux 0xf79353d1 rtnl_register_module -EXPORT_SYMBOL_GPL vmlinux 0xf79b979d acpi_device_get_match_data -EXPORT_SYMBOL_GPL vmlinux 0xf7a3f850 inet6_sk_rebuild_header -EXPORT_SYMBOL_GPL vmlinux 0xf7a5a838 regmap_get_val_bytes -EXPORT_SYMBOL_GPL vmlinux 0xf7a80d58 sync_page_io -EXPORT_SYMBOL_GPL vmlinux 0xf7acb2c2 bpf_trace_run12 -EXPORT_SYMBOL_GPL vmlinux 0xf7b55e4b fwnode_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0xf78c740d vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0xf7923a2f stmpe_dev_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xf79f1b14 vp_modern_set_queue_reset +EXPORT_SYMBOL_GPL vmlinux 0xf7a77bc9 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0xf7a96648 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0xf7abf0cf skb_to_sgvec_nomark +EXPORT_SYMBOL_GPL vmlinux 0xf7b9d702 cpufreq_register_driver EXPORT_SYMBOL_GPL vmlinux 0xf7bc95b0 devlink_fmsg_pair_nest_start -EXPORT_SYMBOL_GPL vmlinux 0xf7d16fee inet6_lookup_listener -EXPORT_SYMBOL_GPL vmlinux 0xf7df13f8 ipv6_dup_options -EXPORT_SYMBOL_GPL vmlinux 0xf7e95dc6 crypto_unregister_rngs -EXPORT_SYMBOL_GPL vmlinux 0xf7fe18f5 crypto_comp_compress -EXPORT_SYMBOL_GPL vmlinux 0xf8029905 unregister_pernet_subsys -EXPORT_SYMBOL_GPL vmlinux 0xf80b2b93 __usb_create_hcd -EXPORT_SYMBOL_GPL vmlinux 0xf80ca23f raw_hash_sk -EXPORT_SYMBOL_GPL vmlinux 0xf80f5778 fuse_conn_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf7bdb8dc wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xf7c1b680 irq_create_fwspec_mapping +EXPORT_SYMBOL_GPL vmlinux 0xf7dcafae edac_mc_del_mc +EXPORT_SYMBOL_GPL vmlinux 0xf7e09557 of_dma_configure_id +EXPORT_SYMBOL_GPL vmlinux 0xf7e56b40 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0xf806e5fd sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xf809ec43 __iomap_dio_rw +EXPORT_SYMBOL_GPL vmlinux 0xf80d9113 ata_port_pbar_desc EXPORT_SYMBOL_GPL vmlinux 0xf80f5fc7 __SCK__tp_func_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xf8142409 fat_getattr EXPORT_SYMBOL_GPL vmlinux 0xf81dce70 thermal_genl_cpu_capability_event +EXPORT_SYMBOL_GPL vmlinux 0xf82ea876 phy_pm_runtime_allow EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu -EXPORT_SYMBOL_GPL vmlinux 0xf82f77ab dm_report_zones -EXPORT_SYMBOL_GPL vmlinux 0xf855a740 lp8788_write_byte -EXPORT_SYMBOL_GPL vmlinux 0xf865f9e0 pci_find_host_bridge +EXPORT_SYMBOL_GPL vmlinux 0xf82f6797 genphy_c45_plca_set_cfg +EXPORT_SYMBOL_GPL vmlinux 0xf8395d93 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xf845a904 devm_acpi_dev_add_driver_gpios +EXPORT_SYMBOL_GPL vmlinux 0xf851dc23 phy_led_triggers_register +EXPORT_SYMBOL_GPL vmlinux 0xf861f021 pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0xf8699c14 irq_chip_retrigger_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0xf86b9cbf led_update_brightness EXPORT_SYMBOL_GPL vmlinux 0xf86cc619 trace_seq_putmem_hex +EXPORT_SYMBOL_GPL vmlinux 0xf8796856 fwnode_connection_find_match +EXPORT_SYMBOL_GPL vmlinux 0xf87d8c5e device_set_of_node_from_dev +EXPORT_SYMBOL_GPL vmlinux 0xf87fa46f devm_power_supply_register EXPORT_SYMBOL_GPL vmlinux 0xf883bf93 crypto_dh_key_len +EXPORT_SYMBOL_GPL vmlinux 0xf883dead iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0xf8887605 devm_rtc_nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0xf88cd675 tpm_chip_bootstrap EXPORT_SYMBOL_GPL vmlinux 0xf8b00746 __srcu_read_unlock -EXPORT_SYMBOL_GPL vmlinux 0xf8b38c65 fork_usermode_driver -EXPORT_SYMBOL_GPL vmlinux 0xf8c2448c devm_platform_ioremap_resource -EXPORT_SYMBOL_GPL vmlinux 0xf8d2434d crypto_register_aead +EXPORT_SYMBOL_GPL vmlinux 0xf8b68ebc sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xf8d7b73d regcache_mark_dirty EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit -EXPORT_SYMBOL_GPL vmlinux 0xf8fd27fc dev_coredumpv -EXPORT_SYMBOL_GPL vmlinux 0xf912f6d3 adp5520_set_bits -EXPORT_SYMBOL_GPL vmlinux 0xf91d8109 sdio_set_block_size -EXPORT_SYMBOL_GPL vmlinux 0xf92001d2 report_iommu_fault -EXPORT_SYMBOL_GPL vmlinux 0xf9473c59 register_nvdimm_pmu -EXPORT_SYMBOL_GPL vmlinux 0xf947dce8 irq_chip_set_parent_state -EXPORT_SYMBOL_GPL vmlinux 0xf94f689a md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xf8f3aba4 of_property_count_elems_of_size +EXPORT_SYMBOL_GPL vmlinux 0xf9055b83 devfreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0xf90697ae crypto_shash_tfm_digest +EXPORT_SYMBOL_GPL vmlinux 0xf9125a94 dm_per_bio_data +EXPORT_SYMBOL_GPL vmlinux 0xf926c6d1 spi_split_transfers_maxwords +EXPORT_SYMBOL_GPL vmlinux 0xf92ce57a gpiochip_populate_parent_fwspec_twocell +EXPORT_SYMBOL_GPL vmlinux 0xf9352eff usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xf93de4eb acpi_subsys_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0xf943a46b pm_generic_restore_early EXPORT_SYMBOL_GPL vmlinux 0xf95322f4 kthread_parkme EXPORT_SYMBOL_GPL vmlinux 0xf955e9c5 bprintf -EXPORT_SYMBOL_GPL vmlinux 0xf9669fdb perf_aux_output_end -EXPORT_SYMBOL_GPL vmlinux 0xf99e278a sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xf9651d68 led_blink_set_oneshot +EXPORT_SYMBOL_GPL vmlinux 0xf9663df9 metadata_dst_alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0xf9685ea1 __ndisc_fill_addr_option +EXPORT_SYMBOL_GPL vmlinux 0xf969b4ec inet_bhash2_update_saddr +EXPORT_SYMBOL_GPL vmlinux 0xf96e6a68 icc_disable +EXPORT_SYMBOL_GPL vmlinux 0xf977cedd platform_get_irq_byname_optional +EXPORT_SYMBOL_GPL vmlinux 0xf980a721 pci_msi_mask_irq +EXPORT_SYMBOL_GPL vmlinux 0xf9827dc7 dma_request_chan_by_mask EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies -EXPORT_SYMBOL_GPL vmlinux 0xf9ecced6 strp_init -EXPORT_SYMBOL_GPL vmlinux 0xf9f88056 acpi_subsys_freeze -EXPORT_SYMBOL_GPL vmlinux 0xf9f9c214 sfp_add_phy -EXPORT_SYMBOL_GPL vmlinux 0xfa1e9bfa nfs_ssc_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf9b4fcf7 bpf_verifier_log_write +EXPORT_SYMBOL_GPL vmlinux 0xf9d442a0 blkdev_report_zones +EXPORT_SYMBOL_GPL vmlinux 0xf9e50457 pci_get_dsn EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops EXPORT_SYMBOL_GPL vmlinux 0xfa20488d tcp_parse_mss_option -EXPORT_SYMBOL_GPL vmlinux 0xfa39f581 mctrl_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfa258535 pinctrl_dev_get_devname +EXPORT_SYMBOL_GPL vmlinux 0xfa2a92dc spi_async EXPORT_SYMBOL_GPL vmlinux 0xfa43cefc is_hash_blacklisted -EXPORT_SYMBOL_GPL vmlinux 0xfa4df92a split_page -EXPORT_SYMBOL_GPL vmlinux 0xfa5cfcc9 acpi_create_platform_device +EXPORT_SYMBOL_GPL vmlinux 0xfa5326c7 regmap_parse_val +EXPORT_SYMBOL_GPL vmlinux 0xfa5ba13c mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xfa5de31c ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0xfa655ab3 crypto_register_scomp EXPORT_SYMBOL_GPL vmlinux 0xfa666974 queue_work_node -EXPORT_SYMBOL_GPL vmlinux 0xfa6fec7c regmap_read -EXPORT_SYMBOL_GPL vmlinux 0xfa90f741 ata_port_schedule_eh -EXPORT_SYMBOL_GPL vmlinux 0xfa913ccb pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xfa794f74 __percpu_down_read +EXPORT_SYMBOL_GPL vmlinux 0xfa836a29 devm_clk_bulk_get EXPORT_SYMBOL_GPL vmlinux 0xfaaf8621 power_supply_battery_bti_in_range EXPORT_SYMBOL_GPL vmlinux 0xfab30dc0 mdio_bus_exit EXPORT_SYMBOL_GPL vmlinux 0xfab53ed9 pinctrl_gpio_can_use_line EXPORT_SYMBOL_GPL vmlinux 0xfab91922 sbitmap_weight -EXPORT_SYMBOL_GPL vmlinux 0xfac99f45 l3mdev_link_scope_lookup -EXPORT_SYMBOL_GPL vmlinux 0xfad73786 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xfabaf1bf page_cache_async_ra +EXPORT_SYMBOL_GPL vmlinux 0xfad972bc xhci_drop_endpoint EXPORT_SYMBOL_GPL vmlinux 0xfad9c827 kill_dax -EXPORT_SYMBOL_GPL vmlinux 0xfadbd90f virtio_break_device +EXPORT_SYMBOL_GPL vmlinux 0xfadc8f63 regulator_get EXPORT_SYMBOL_GPL vmlinux 0xfadd50e7 klist_iter_init -EXPORT_SYMBOL_GPL vmlinux 0xfae49753 __iomap_dio_rw -EXPORT_SYMBOL_GPL vmlinux 0xfae66330 crypto_create_tfm_node -EXPORT_SYMBOL_GPL vmlinux 0xfaf3c612 vchan_init -EXPORT_SYMBOL_GPL vmlinux 0xfafc103d set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xfae2d70e clk_hw_get_rate_range +EXPORT_SYMBOL_GPL vmlinux 0xfafb8f0d securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xfb06db06 pci_host_common_remove +EXPORT_SYMBOL_GPL vmlinux 0xfb071916 pci_epc_get EXPORT_SYMBOL_GPL vmlinux 0xfb0d7867 __tracepoint_kfree_skb -EXPORT_SYMBOL_GPL vmlinux 0xfb11b733 spi_mem_supports_op -EXPORT_SYMBOL_GPL vmlinux 0xfb13a401 fib_rules_dump -EXPORT_SYMBOL_GPL vmlinux 0xfb2ed64d sk_set_memalloc EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync EXPORT_SYMBOL_GPL vmlinux 0xfb35890a x509_cert_parse -EXPORT_SYMBOL_GPL vmlinux 0xfb530531 pci_epc_put -EXPORT_SYMBOL_GPL vmlinux 0xfb548114 dev_forward_skb -EXPORT_SYMBOL_GPL vmlinux 0xfb5794f0 blk_mq_sched_try_insert_merge +EXPORT_SYMBOL_GPL vmlinux 0xfb3a7a8b devl_sb_register +EXPORT_SYMBOL_GPL vmlinux 0xfb3c7816 regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xfb3c8cfb ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0xfb42e285 cpufreq_freq_transition_end +EXPORT_SYMBOL_GPL vmlinux 0xfb57ad24 __netpoll_free EXPORT_SYMBOL_GPL vmlinux 0xfb60faf5 posix_acl_clone -EXPORT_SYMBOL_GPL vmlinux 0xfb62ae08 wm8350_reg_unlock EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name -EXPORT_SYMBOL_GPL vmlinux 0xfb743d9d devlink_unregister EXPORT_SYMBOL_GPL vmlinux 0xfb76d566 register_fprobe_syms -EXPORT_SYMBOL_GPL vmlinux 0xfb77275e pm_genpd_opp_to_performance_state -EXPORT_SYMBOL_GPL vmlinux 0xfb8c3bba dev_pm_opp_find_freq_ceil -EXPORT_SYMBOL_GPL vmlinux 0xfba07ba1 pm_clk_add -EXPORT_SYMBOL_GPL vmlinux 0xfba30a92 pci_d3cold_disable -EXPORT_SYMBOL_GPL vmlinux 0xfbb39255 da903x_writes -EXPORT_SYMBOL_GPL vmlinux 0xfbb5f862 of_dma_controller_register -EXPORT_SYMBOL_GPL vmlinux 0xfbbaa40f pci_create_ims_domain +EXPORT_SYMBOL_GPL vmlinux 0xfb78b84b crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0xfb879956 dst_cache_get +EXPORT_SYMBOL_GPL vmlinux 0xfb9c9884 led_get_default_pattern +EXPORT_SYMBOL_GPL vmlinux 0xfbba668e ata_sas_sync_probe EXPORT_SYMBOL_GPL vmlinux 0xfbbd41ca no_action -EXPORT_SYMBOL_GPL vmlinux 0xfbc453ca ata_sff_wait_ready -EXPORT_SYMBOL_GPL vmlinux 0xfbe51f63 edac_pci_handle_pe -EXPORT_SYMBOL_GPL vmlinux 0xfbf53fc7 tps6586x_reads -EXPORT_SYMBOL_GPL vmlinux 0xfbf6abe5 pci_intx -EXPORT_SYMBOL_GPL vmlinux 0xfbfad823 sk_psock_init +EXPORT_SYMBOL_GPL vmlinux 0xfbbf00e3 skcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xfbc44a32 usb_role_switch_find_by_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xfbce1a4d fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0xfbe6653e clk_hw_unregister_mux +EXPORT_SYMBOL_GPL vmlinux 0xfbf8e448 mbox_chan_received_data EXPORT_SYMBOL_GPL vmlinux 0xfbffd601 net_prio_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xfc024aca wakeup_source_create EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram -EXPORT_SYMBOL_GPL vmlinux 0xfc098b74 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xfc0774ff usb_control_msg_send +EXPORT_SYMBOL_GPL vmlinux 0xfc0ccc6f fork_usermode_driver +EXPORT_SYMBOL_GPL vmlinux 0xfc1daa3f led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfc1f53a3 ncsi_register_dev EXPORT_SYMBOL_GPL vmlinux 0xfc201b66 sprint_oid -EXPORT_SYMBOL_GPL vmlinux 0xfc2b5819 device_property_read_u32_array -EXPORT_SYMBOL_GPL vmlinux 0xfc2c85ee iptunnel_handle_offloads -EXPORT_SYMBOL_GPL vmlinux 0xfc364ead kthread_flush_worker +EXPORT_SYMBOL_GPL vmlinux 0xfc2917f9 crypto_alloc_rng +EXPORT_SYMBOL_GPL vmlinux 0xfc2c70fe xhci_hub_control EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power -EXPORT_SYMBOL_GPL vmlinux 0xfc3d3a6e usb_remove_hcd -EXPORT_SYMBOL_GPL vmlinux 0xfc6bf647 of_usb_update_otg_caps -EXPORT_SYMBOL_GPL vmlinux 0xfc725ff5 crypto_alloc_sig -EXPORT_SYMBOL_GPL vmlinux 0xfc7b68fe skb_defer_rx_timestamp -EXPORT_SYMBOL_GPL vmlinux 0xfc884838 gpiod_set_array_value -EXPORT_SYMBOL_GPL vmlinux 0xfc8c0eb1 gpiochip_irqchip_irq_valid -EXPORT_SYMBOL_GPL vmlinux 0xfc964eb7 reset_control_get_count -EXPORT_SYMBOL_GPL vmlinux 0xfc96de35 fscrypt_dio_supported -EXPORT_SYMBOL_GPL vmlinux 0xfcad40fd gpiod_set_consumer_name -EXPORT_SYMBOL_GPL vmlinux 0xfcc98b19 device_get_next_child_node -EXPORT_SYMBOL_GPL vmlinux 0xfcd5ff20 skb_append_pagefrags -EXPORT_SYMBOL_GPL vmlinux 0xfce9ed17 pci_hp_add +EXPORT_SYMBOL_GPL vmlinux 0xfc609c69 vcap_tc_flower_handler_vlan_usage +EXPORT_SYMBOL_GPL vmlinux 0xfc61f8bc debugfs_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xfc65d992 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xfc799d43 pktgen_xfrm_outer_mode_output +EXPORT_SYMBOL_GPL vmlinux 0xfc7f28f2 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xfc97e744 register_trace_event +EXPORT_SYMBOL_GPL vmlinux 0xfcb008d6 virtio_device_freeze +EXPORT_SYMBOL_GPL vmlinux 0xfcb741f9 devm_pse_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xfcc12fee fscrypt_fname_siphash +EXPORT_SYMBOL_GPL vmlinux 0xfcce5b56 nfs_ssc_client_tbl +EXPORT_SYMBOL_GPL vmlinux 0xfcced95a nvmem_cell_read_u32 +EXPORT_SYMBOL_GPL vmlinux 0xfcf59088 acpi_subsys_freeze EXPORT_SYMBOL_GPL vmlinux 0xfcf9ef73 hw_protection_shutdown -EXPORT_SYMBOL_GPL vmlinux 0xfcfb0853 sk_clone_lock -EXPORT_SYMBOL_GPL vmlinux 0xfd022983 encrypt_blob -EXPORT_SYMBOL_GPL vmlinux 0xfd175d8c sysfs_remove_link_from_group -EXPORT_SYMBOL_GPL vmlinux 0xfd177ce5 dma_wait_for_async_tx -EXPORT_SYMBOL_GPL vmlinux 0xfd23d05d sysfs_create_link_nowarn -EXPORT_SYMBOL_GPL vmlinux 0xfd2634ff pid_nr_ns -EXPORT_SYMBOL_GPL vmlinux 0xfd3901c6 virtqueue_add_inbuf -EXPORT_SYMBOL_GPL vmlinux 0xfd43e4fe pci_epc_mem_init -EXPORT_SYMBOL_GPL vmlinux 0xfd47d4e8 fat_alloc_new_dir -EXPORT_SYMBOL_GPL vmlinux 0xfd4ef25b perf_event_disable -EXPORT_SYMBOL_GPL vmlinux 0xfd522350 dev_pm_opp_get_voltage -EXPORT_SYMBOL_GPL vmlinux 0xfd7738ba tcp_is_ulp_esp +EXPORT_SYMBOL_GPL vmlinux 0xfcfd0f0e cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0xfd01b1a8 pci_d3cold_disable +EXPORT_SYMBOL_GPL vmlinux 0xfd0469ad devm_gpio_request +EXPORT_SYMBOL_GPL vmlinux 0xfd059704 genphy_c45_an_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0xfd166566 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0xfd25368a cgroup_path_ns +EXPORT_SYMBOL_GPL vmlinux 0xfd36b78d tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xfd44077a usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0xfd4a0b66 devm_gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0xfd4b70e7 irq_gc_mask_disable_reg +EXPORT_SYMBOL_GPL vmlinux 0xfd59be40 clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0xfd627d04 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0xfd655e8d blk_mq_free_request +EXPORT_SYMBOL_GPL vmlinux 0xfd67f478 genphy_c45_config_aneg EXPORT_SYMBOL_GPL vmlinux 0xfd77e268 register_sys_off_handler -EXPORT_SYMBOL_GPL vmlinux 0xfd826c93 sch_frag_xmit_hook -EXPORT_SYMBOL_GPL vmlinux 0xfd8cf526 acpi_bus_for_each_dev -EXPORT_SYMBOL_GPL vmlinux 0xfd92fbb9 scsi_eh_ready_devs -EXPORT_SYMBOL_GPL vmlinux 0xfd9c91f4 usb_sg_init -EXPORT_SYMBOL_GPL vmlinux 0xfda2501f sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xfd7f82e4 clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0xfd8293e1 blk_crypto_has_capabilities +EXPORT_SYMBOL_GPL vmlinux 0xfd93ff8f ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0xfd96b791 gpiochip_relres_irq +EXPORT_SYMBOL_GPL vmlinux 0xfda2c20e inet_ehash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xfda5801c of_pci_parse_bus_range +EXPORT_SYMBOL_GPL vmlinux 0xfdb5d29e crypto_register_template EXPORT_SYMBOL_GPL vmlinux 0xfdbd7a17 crypto_get_attr_type -EXPORT_SYMBOL_GPL vmlinux 0xfdda1a1c genphy_c45_plca_set_cfg -EXPORT_SYMBOL_GPL vmlinux 0xfde4c712 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xfdd87221 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xfde99dd0 vp_modern_get_features EXPORT_SYMBOL_GPL vmlinux 0xfdeb7ac2 btree_grim_visitor -EXPORT_SYMBOL_GPL vmlinux 0xfded313a mptcp_pm_get_subflows_max -EXPORT_SYMBOL_GPL vmlinux 0xfdf16b8a unix_peer_get -EXPORT_SYMBOL_GPL vmlinux 0xfdf683a7 ima_file_hash -EXPORT_SYMBOL_GPL vmlinux 0xfe0e9c5e usb_role_switch_register -EXPORT_SYMBOL_GPL vmlinux 0xfe13980f of_alias_from_compatible +EXPORT_SYMBOL_GPL vmlinux 0xfdec2cb3 gpiod_direction_output EXPORT_SYMBOL_GPL vmlinux 0xfe19dc28 vivaldi_function_row_physmap_show EXPORT_SYMBOL_GPL vmlinux 0xfe1a7a7b mpi_point_release EXPORT_SYMBOL_GPL vmlinux 0xfe1b2f45 ring_buffer_unlock_commit -EXPORT_SYMBOL_GPL vmlinux 0xfe1df1bd __traceiter_pelt_rt_tp -EXPORT_SYMBOL_GPL vmlinux 0xfe26d52a tcp_enter_memory_pressure -EXPORT_SYMBOL_GPL vmlinux 0xfe290071 check_move_unevictable_folios +EXPORT_SYMBOL_GPL vmlinux 0xfe2a2f20 vp_legacy_queue_vector +EXPORT_SYMBOL_GPL vmlinux 0xfe39d35f iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0xfe3ed0d8 dmaengine_desc_attach_metadata EXPORT_SYMBOL_GPL vmlinux 0xfe476039 ktime_get_resolution_ns -EXPORT_SYMBOL_GPL vmlinux 0xfe4b7401 __pm_relax EXPORT_SYMBOL_GPL vmlinux 0xfe62f82d trace_seq_vprintf -EXPORT_SYMBOL_GPL vmlinux 0xfe6b22e4 skb_mpls_dec_ttl -EXPORT_SYMBOL_GPL vmlinux 0xfe6de357 tty_port_register_device_serdev -EXPORT_SYMBOL_GPL vmlinux 0xfe7cbebc init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xfe64cbe4 ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xfe6dcab6 lwtunnel_fill_encap +EXPORT_SYMBOL_GPL vmlinux 0xfe6f2971 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xfe7369bb vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xfe76e872 gpiod_direction_input EXPORT_SYMBOL_GPL vmlinux 0xfe7e54fe klist_iter_init_node -EXPORT_SYMBOL_GPL vmlinux 0xfe7f48aa devm_acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xfe84b457 serial8250_em485_stop_tx +EXPORT_SYMBOL_GPL vmlinux 0xfe870f88 rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0xfe887a02 devlink_health_reporter_create EXPORT_SYMBOL_GPL vmlinux 0xfe8cdb84 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0xfe902fe4 netlink_strict_get_check EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free EXPORT_SYMBOL_GPL vmlinux 0xfe99dad0 dtpm_create_hierarchy -EXPORT_SYMBOL_GPL vmlinux 0xfea32302 sdio_retune_release -EXPORT_SYMBOL_GPL vmlinux 0xfeace1f2 bus_get_dev_root -EXPORT_SYMBOL_GPL vmlinux 0xfec45db0 fwnode_usb_role_switch_get +EXPORT_SYMBOL_GPL vmlinux 0xfea6f422 phy_power_off +EXPORT_SYMBOL_GPL vmlinux 0xfeb78bf5 crypto_unregister_scomps +EXPORT_SYMBOL_GPL vmlinux 0xfebae7b1 ip_valid_fib_dump_req +EXPORT_SYMBOL_GPL vmlinux 0xfebfa440 irq_domain_get_irq_data EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister -EXPORT_SYMBOL_GPL vmlinux 0xfed15c31 crypto_akcipher_sync_post -EXPORT_SYMBOL_GPL vmlinux 0xfed25fdc xdp_attachment_setup -EXPORT_SYMBOL_GPL vmlinux 0xfedaecf7 irq_chip_mask_ack_parent +EXPORT_SYMBOL_GPL vmlinux 0xfed30685 devm_kasprintf_strarray +EXPORT_SYMBOL_GPL vmlinux 0xfed9cdb8 rdev_get_regmap EXPORT_SYMBOL_GPL vmlinux 0xfeec3489 pkcs7_parse_message +EXPORT_SYMBOL_GPL vmlinux 0xff0436d0 vp_legacy_get_status EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff088b15 iomap_zero_range EXPORT_SYMBOL_GPL vmlinux 0xff1666f3 reset_control_bulk_assert -EXPORT_SYMBOL_GPL vmlinux 0xff21452c regulator_list_hardware_vsel -EXPORT_SYMBOL_GPL vmlinux 0xff2757fa __traceiter_block_split +EXPORT_SYMBOL_GPL vmlinux 0xff1f4715 dma_resv_wait_timeout EXPORT_SYMBOL_GPL vmlinux 0xff291ecf clk_unregister_divider -EXPORT_SYMBOL_GPL vmlinux 0xff3322ba rz_mtu3_shared_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xff3b12a1 starfive_jh71x0_clk_ops EXPORT_SYMBOL_GPL vmlinux 0xff42c374 usb_role_switch_get_role -EXPORT_SYMBOL_GPL vmlinux 0xff4a4339 switchdev_port_attr_set +EXPORT_SYMBOL_GPL vmlinux 0xff460bb3 fat_search_long EXPORT_SYMBOL_GPL vmlinux 0xff4ed21a xas_set_mark EXPORT_SYMBOL_GPL vmlinux 0xff55ef6a __xas_next -EXPORT_SYMBOL_GPL vmlinux 0xff68424e devm_regmap_del_irq_chip -EXPORT_SYMBOL_GPL vmlinux 0xff79a071 tty_set_ldisc +EXPORT_SYMBOL_GPL vmlinux 0xff5c8d76 hrtimer_sleeper_start_expires +EXPORT_SYMBOL_GPL vmlinux 0xff7027c2 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xff757438 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0xff76e6db pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0xff7e0b82 skb_zerocopy_iter_stream EXPORT_SYMBOL_GPL vmlinux 0xff7e33bf mpi_sub_ui -EXPORT_SYMBOL_GPL vmlinux 0xff80221e dm_table_device_name -EXPORT_SYMBOL_GPL vmlinux 0xff803f83 __put_task_struct EXPORT_SYMBOL_GPL vmlinux 0xff81487d gpiod_remove_lookup_table -EXPORT_SYMBOL_GPL vmlinux 0xff82e25f irq_domain_disconnect_hierarchy EXPORT_SYMBOL_GPL vmlinux 0xff84a8a5 page_reporting_order -EXPORT_SYMBOL_GPL vmlinux 0xff942ee7 nvmem_cell_read_u16 -EXPORT_SYMBOL_GPL vmlinux 0xff9850b4 serial8250_rpm_get_tx +EXPORT_SYMBOL_GPL vmlinux 0xff9da072 input_ff_create EXPORT_SYMBOL_GPL vmlinux 0xff9e23d1 hugetlb_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0xffa03757 sysfs_remove_group -EXPORT_SYMBOL_GPL vmlinux 0xffa91c83 dma_resv_get_singleton +EXPORT_SYMBOL_GPL vmlinux 0xffa23206 pinctrl_force_default EXPORT_SYMBOL_GPL vmlinux 0xffae8e8b nsecs_to_jiffies -EXPORT_SYMBOL_GPL vmlinux 0xffb41bb4 icc_provider_deregister +EXPORT_SYMBOL_GPL vmlinux 0xffbb21c4 crypto_unregister_rng +EXPORT_SYMBOL_GPL vmlinux 0xffcae2d6 rtnl_delete_link +EXPORT_SYMBOL_GPL vmlinux 0xffdee42a cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xffea01fd elv_unregister FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0x07342898 unregister_firmware_config_sysctl vmlinux FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0xae43feea register_firmware_config_sysctl vmlinux FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0xd3ae7756 fw_fallback_config vmlinux -FW_CS_DSP EXPORT_SYMBOL_GPL 0x02b8e7b4 cs_dsp_adsp1_init drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0x05149592 cs_dsp_run drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0x119bf214 cs_dsp_cleanup_debugfs drivers/firmware/cirrus/cs_dsp FW_CS_DSP EXPORT_SYMBOL_GPL 0x144d6986 cs_dsp_mem_region_name drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0x1674aaa5 cs_dsp_halo_wdt_expire drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0x1a05b131 cs_dsp_read_raw_data_block drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0x2f82117b cs_dsp_adsp1_power_up drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0x34809cc6 cs_dsp_stop drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0x3cf77e7e cs_dsp_set_dspclk drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0x4cdd022e cs_dsp_coeff_write_acked_control drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0x1ad54ea7 cs_dsp_adsp1_init drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0x1d24649e cs_dsp_adsp1_power_up drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0x2e86a21c cs_dsp_coeff_write_acked_control drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0x3d0591ff cs_dsp_adsp2_init drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0x3ee56beb cs_dsp_get_ctl drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0x44e8ba7c cs_dsp_remove drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0x4b77a869 cs_dsp_find_alg_region drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0x4c021c3b cs_dsp_coeff_read_ctrl drivers/firmware/cirrus/cs_dsp FW_CS_DSP EXPORT_SYMBOL_GPL 0x4e5562f8 cs_dsp_remove_padding drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0x4e90eb9e cs_dsp_remove drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0x6a2bfba5 cs_dsp_init_debugfs drivers/firmware/cirrus/cs_dsp FW_CS_DSP EXPORT_SYMBOL_GPL 0x6e0cce2d cs_dsp_chunk_write drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0x765004ee cs_dsp_find_alg_region drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0x7b0ae231 cs_dsp_coeff_read_ctrl drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0x916fa8ac cs_dsp_power_up drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0x794e308e cs_dsp_power_up drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0x7accbc59 cs_dsp_stop drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0x8176159e cs_dsp_init_debugfs drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0x863d17df cs_dsp_read_data_word drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0x99824656 cs_dsp_write_data_word drivers/firmware/cirrus/cs_dsp FW_CS_DSP EXPORT_SYMBOL_GPL 0x9e324cb0 cs_dsp_chunk_flush drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0xa6513a4b cs_dsp_adsp1_power_down drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0xa6681268 cs_dsp_adsp2_bus_error drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0xa67a4a02 cs_dsp_cleanup_debugfs drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0xa8aa35a1 cs_dsp_power_down drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0x9fc025ae cs_dsp_adsp2_bus_error drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0xa4c2b0f4 cs_dsp_set_dspclk drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0xace59d85 cs_dsp_run drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0xb1200ba0 cs_dsp_adsp1_power_down drivers/firmware/cirrus/cs_dsp FW_CS_DSP EXPORT_SYMBOL_GPL 0xb6c0d9e7 cs_dsp_chunk_read drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0xc18510e6 cs_dsp_halo_init drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0xc51b4270 cs_dsp_adsp2_init drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0xc88b21f6 cs_dsp_write_data_word drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0xc9f8f0b3 cs_dsp_get_ctl drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0xcc85b113 cs_dsp_coeff_write_ctrl drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0xf56640d6 cs_dsp_read_data_word drivers/firmware/cirrus/cs_dsp -FW_CS_DSP EXPORT_SYMBOL_GPL 0xf7665263 cs_dsp_halo_bus_error drivers/firmware/cirrus/cs_dsp -HWMON_THERMAL EXPORT_SYMBOL_GPL 0x9f225073 hwmon_device_register_for_thermal vmlinux +FW_CS_DSP EXPORT_SYMBOL_GPL 0xbd0a4f4d cs_dsp_halo_init drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0xbd66b375 cs_dsp_coeff_write_ctrl drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0xc6a1c04c cs_dsp_halo_bus_error drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0xe0c55875 cs_dsp_halo_wdt_expire drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0xea6689b0 cs_dsp_power_down drivers/firmware/cirrus/cs_dsp +FW_CS_DSP EXPORT_SYMBOL_GPL 0xf24c77ca cs_dsp_read_raw_data_block drivers/firmware/cirrus/cs_dsp +HWMON_THERMAL EXPORT_SYMBOL_GPL 0x81579692 hwmon_device_register_for_thermal vmlinux IDLE_INJECT EXPORT_SYMBOL_GPL 0x5b3a2cd6 idle_inject_start vmlinux IDLE_INJECT EXPORT_SYMBOL_GPL 0x85c2b7eb idle_inject_stop vmlinux IDLE_INJECT EXPORT_SYMBOL_GPL 0x95e93783 idle_inject_set_latency vmlinux @@ -25521,487 +25545,487 @@ IDLE_INJECT EXPORT_SYMBOL_GPL 0xe9cbcfd0 idle_inject_get_duration vmlinux IDLE_INJECT EXPORT_SYMBOL_GPL 0xebfa9cc2 idle_inject_register_full vmlinux IDLE_INJECT EXPORT_SYMBOL_GPL 0xf0e96547 idle_inject_unregister vmlinux -IIO_AD5592R EXPORT_SYMBOL_GPL 0xa4d2e0f3 ad5592r_remove drivers/iio/dac/ad5592r-base -IIO_AD5592R EXPORT_SYMBOL_GPL 0xd256e392 ad5592r_probe drivers/iio/dac/ad5592r-base -IIO_AD5686 EXPORT_SYMBOL_GPL 0x00635118 ad5686_probe drivers/iio/dac/ad5686 -IIO_AD5686 EXPORT_SYMBOL_GPL 0x440d173c ad5686_remove drivers/iio/dac/ad5686 -IIO_AD7091R EXPORT_SYMBOL_GPL 0x26ac7737 ad7091r_regmap_config drivers/iio/adc/ad7091r-base -IIO_AD7091R EXPORT_SYMBOL_GPL 0xd8d24173 ad7091r_probe drivers/iio/adc/ad7091r-base -IIO_AD7606 EXPORT_SYMBOL_GPL 0x1830e8db ad7606_probe drivers/iio/adc/ad7606 -IIO_AD7606 EXPORT_SYMBOL_GPL 0xc142d2fe ad7606_pm_ops drivers/iio/adc/ad7606 -IIO_ADISLIB EXPORT_SYMBOL 0x827969b5 adis_debugfs_reg_access drivers/iio/imu/adis_lib -IIO_ADISLIB EXPORT_SYMBOL 0xa99c19e3 __adis_enable_irq drivers/iio/imu/adis_lib -IIO_ADISLIB EXPORT_SYMBOL_GPL 0x116c9974 devm_adis_probe_trigger drivers/iio/imu/adis_lib -IIO_ADISLIB EXPORT_SYMBOL_GPL 0x1bfbeca2 __adis_read_reg drivers/iio/imu/adis_lib -IIO_ADISLIB EXPORT_SYMBOL_GPL 0x2a03f27b adis_init drivers/iio/imu/adis_lib -IIO_ADISLIB EXPORT_SYMBOL_GPL 0x494f2bac __adis_check_status drivers/iio/imu/adis_lib -IIO_ADISLIB EXPORT_SYMBOL_GPL 0x6707aab4 adis_single_conversion drivers/iio/imu/adis_lib -IIO_ADISLIB EXPORT_SYMBOL_GPL 0x8221fa77 __adis_initial_startup drivers/iio/imu/adis_lib -IIO_ADISLIB EXPORT_SYMBOL_GPL 0x84cd01e0 __adis_write_reg drivers/iio/imu/adis_lib -IIO_ADISLIB EXPORT_SYMBOL_GPL 0xb716e484 devm_adis_setup_buffer_and_trigger drivers/iio/imu/adis_lib -IIO_ADISLIB EXPORT_SYMBOL_GPL 0xb9bf265c __adis_update_bits_base drivers/iio/imu/adis_lib -IIO_ADISLIB EXPORT_SYMBOL_GPL 0xc39bf4a2 adis_update_scan_mode drivers/iio/imu/adis_lib -IIO_ADIS_LIB EXPORT_SYMBOL_GPL 0x557b425d __adis_reset drivers/iio/imu/adis_lib -IIO_ADI_AXI EXPORT_SYMBOL_GPL 0x00340cca adi_axi_adc_conv_priv drivers/iio/adc/adi-axi-adc -IIO_ADI_AXI EXPORT_SYMBOL_GPL 0x993a36ba devm_adi_axi_adc_conv_register drivers/iio/adc/adi-axi-adc -IIO_ADXL313 EXPORT_SYMBOL_GPL 0x3cb5d1d5 adxl31x_chip_info drivers/iio/accel/adxl313_core -IIO_ADXL313 EXPORT_SYMBOL_GPL 0x62b8dde1 adxl313_core_probe drivers/iio/accel/adxl313_core +IIO_AD5592R EXPORT_SYMBOL_GPL 0x292e2b6b ad5592r_probe drivers/iio/dac/ad5592r-base +IIO_AD5592R EXPORT_SYMBOL_GPL 0x661c20f3 ad5592r_remove drivers/iio/dac/ad5592r-base +IIO_AD5686 EXPORT_SYMBOL_GPL 0x14806777 ad5686_remove drivers/iio/dac/ad5686 +IIO_AD5686 EXPORT_SYMBOL_GPL 0x5779b426 ad5686_probe drivers/iio/dac/ad5686 +IIO_AD7091R EXPORT_SYMBOL_GPL 0x005221de ad7091r_regmap_config drivers/iio/adc/ad7091r-base +IIO_AD7091R EXPORT_SYMBOL_GPL 0xd6953f92 ad7091r_probe drivers/iio/adc/ad7091r-base +IIO_AD7606 EXPORT_SYMBOL_GPL 0x82a59692 ad7606_probe drivers/iio/adc/ad7606 +IIO_AD7606 EXPORT_SYMBOL_GPL 0x8b0f5157 ad7606_pm_ops drivers/iio/adc/ad7606 +IIO_ADISLIB EXPORT_SYMBOL 0xdb36a19d adis_debugfs_reg_access drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL 0xf54a4a48 __adis_enable_irq drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x072cab8c __adis_initial_startup drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x0e9d7f7f adis_single_conversion drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x23bb5a52 __adis_check_status drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x332a4890 adis_update_scan_mode drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x64f5f163 __adis_read_reg drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x784cf35b __adis_update_bits_base drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x9ff21a91 adis_init drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0xa6b0a0af __adis_write_reg drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0xc6d9ec47 devm_adis_probe_trigger drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0xd5b2055b devm_adis_setup_buffer_and_trigger drivers/iio/imu/adis_lib +IIO_ADIS_LIB EXPORT_SYMBOL_GPL 0x22798a05 __adis_reset drivers/iio/imu/adis_lib +IIO_ADI_AXI EXPORT_SYMBOL_GPL 0xb88110c2 adi_axi_adc_conv_priv drivers/iio/adc/adi-axi-adc +IIO_ADI_AXI EXPORT_SYMBOL_GPL 0xb9b84a8d devm_adi_axi_adc_conv_register drivers/iio/adc/adi-axi-adc +IIO_ADXL313 EXPORT_SYMBOL_GPL 0x670d03a1 adxl313_core_probe drivers/iio/accel/adxl313_core IIO_ADXL313 EXPORT_SYMBOL_GPL 0x8401eedc adxl313_readable_regs_table drivers/iio/accel/adxl313_core IIO_ADXL313 EXPORT_SYMBOL_GPL 0x93298a1c adxl312_readable_regs_table drivers/iio/accel/adxl313_core IIO_ADXL313 EXPORT_SYMBOL_GPL 0x932e87b3 adxl314_writable_regs_table drivers/iio/accel/adxl313_core +IIO_ADXL313 EXPORT_SYMBOL_GPL 0xd3695cec adxl31x_chip_info drivers/iio/accel/adxl313_core IIO_ADXL313 EXPORT_SYMBOL_GPL 0xe1d8d09c adxl314_readable_regs_table drivers/iio/accel/adxl313_core IIO_ADXL313 EXPORT_SYMBOL_GPL 0xe1dfdd33 adxl312_writable_regs_table drivers/iio/accel/adxl313_core IIO_ADXL313 EXPORT_SYMBOL_GPL 0xf6f7b9f3 adxl313_writable_regs_table drivers/iio/accel/adxl313_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0x339c7150 adxl355_core_probe drivers/iio/accel/adxl355_core IIO_ADXL355 EXPORT_SYMBOL_GPL 0x4d2f5e0f adxl35x_chip_info drivers/iio/accel/adxl355_core IIO_ADXL355 EXPORT_SYMBOL_GPL 0x6ff5403b adxl355_readable_regs_tbl drivers/iio/accel/adxl355_core IIO_ADXL355 EXPORT_SYMBOL_GPL 0xb446fa86 adxl355_writeable_regs_tbl drivers/iio/accel/adxl355_core -IIO_ADXL355 EXPORT_SYMBOL_GPL 0xc736166c adxl355_core_probe drivers/iio/accel/adxl355_core -IIO_ADXL367 EXPORT_SYMBOL_GPL 0xbc773d2f adxl367_probe drivers/iio/accel/adxl367 -IIO_ADXL372 EXPORT_SYMBOL_GPL 0xc8111e3a adxl372_probe drivers/iio/accel/adxl372 -IIO_ADXL372 EXPORT_SYMBOL_GPL 0xe66e7921 adxl372_readable_noinc_reg drivers/iio/accel/adxl372 -IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x21482217 devm_ad_sd_setup_buffer_and_trigger drivers/iio/adc/ad_sigma_delta -IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x2238409f ad_sigma_delta_single_conversion drivers/iio/adc/ad_sigma_delta -IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x326919e3 ad_sd_calibrate_all drivers/iio/adc/ad_sigma_delta -IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x3c6ff5e9 ad_sd_init drivers/iio/adc/ad_sigma_delta -IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x6c1f9205 ad_sd_validate_trigger drivers/iio/adc/ad_sigma_delta -IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x8db6243f ad_sd_write_reg drivers/iio/adc/ad_sigma_delta -IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x8f5dfb53 ad_sd_calibrate drivers/iio/adc/ad_sigma_delta -IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x9d6c4731 ad_sd_reset drivers/iio/adc/ad_sigma_delta -IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x9e506393 ad_sd_read_reg drivers/iio/adc/ad_sigma_delta -IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xd68844cb ad_sd_set_comm drivers/iio/adc/ad_sigma_delta -IIO_BMA400 EXPORT_SYMBOL 0x2bb9ce16 bma400_regmap_config drivers/iio/accel/bma400_core -IIO_BMA400 EXPORT_SYMBOL 0xab42767b bma400_probe drivers/iio/accel/bma400_core -IIO_BMC150 EXPORT_SYMBOL_GPL 0x1df0fbcd bmc150_accel_core_remove drivers/iio/accel/bmc150-accel-core -IIO_BMC150 EXPORT_SYMBOL_GPL 0x5891371d bmc150_accel_core_probe drivers/iio/accel/bmc150-accel-core -IIO_BMC150 EXPORT_SYMBOL_GPL 0xcb1de955 bmc150_regmap_conf drivers/iio/accel/bmc150-accel-core -IIO_BMC150 EXPORT_SYMBOL_GPL 0xfe67df5b bmc150_accel_pm_ops drivers/iio/accel/bmc150-accel-core -IIO_BMC150_MAGN EXPORT_SYMBOL 0x02763f50 bmc150_magn_pm_ops drivers/iio/magnetometer/bmc150_magn -IIO_BMC150_MAGN EXPORT_SYMBOL 0x467b97d7 bmc150_magn_regmap_config drivers/iio/magnetometer/bmc150_magn -IIO_BMC150_MAGN EXPORT_SYMBOL 0x83a34d37 bmc150_magn_probe drivers/iio/magnetometer/bmc150_magn -IIO_BMC150_MAGN EXPORT_SYMBOL 0xde9f5556 bmc150_magn_remove drivers/iio/magnetometer/bmc150_magn -IIO_BME680 EXPORT_SYMBOL 0xc9cbf42b bme680_regmap_config drivers/iio/chemical/bme680_core -IIO_BME680 EXPORT_SYMBOL_GPL 0xadabe9d9 bme680_core_probe drivers/iio/chemical/bme680_core -IIO_BMI088 EXPORT_SYMBOL_GPL 0x191c04e8 bmi088_accel_pm_ops drivers/iio/accel/bmi088-accel-core -IIO_BMI088 EXPORT_SYMBOL_GPL 0x244801ff bmi088_accel_core_probe drivers/iio/accel/bmi088-accel-core -IIO_BMI088 EXPORT_SYMBOL_GPL 0x5c86e1e6 bmi088_regmap_conf drivers/iio/accel/bmi088-accel-core -IIO_BMI088 EXPORT_SYMBOL_GPL 0x7940c2c5 bmi088_accel_core_remove drivers/iio/accel/bmi088-accel-core -IIO_BMI160 EXPORT_SYMBOL 0x4183fc5d bmi160_regmap_config drivers/iio/imu/bmi160/bmi160_core +IIO_ADXL367 EXPORT_SYMBOL_GPL 0x42f39bd1 adxl367_probe drivers/iio/accel/adxl367 +IIO_ADXL372 EXPORT_SYMBOL_GPL 0x4f5078e7 adxl372_probe drivers/iio/accel/adxl372 +IIO_ADXL372 EXPORT_SYMBOL_GPL 0xed3e6709 adxl372_readable_noinc_reg drivers/iio/accel/adxl372 +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x006e1012 ad_sd_read_reg drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x0c252dac ad_sd_set_comm drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x363a8348 ad_sd_write_reg drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x408e6728 ad_sd_reset drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x4ce89ea4 ad_sd_calibrate_all drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x57894899 ad_sigma_delta_single_conversion drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x6ed71454 ad_sd_init drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x745d873c ad_sd_calibrate drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xaa089e58 ad_sd_validate_trigger drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xcca4c8d0 devm_ad_sd_setup_buffer_and_trigger drivers/iio/adc/ad_sigma_delta +IIO_BMA400 EXPORT_SYMBOL 0x0cdf8b26 bma400_regmap_config drivers/iio/accel/bma400_core +IIO_BMA400 EXPORT_SYMBOL 0x337aff09 bma400_probe drivers/iio/accel/bma400_core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x564c2334 bmc150_accel_core_probe drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x8b523c13 bmc150_regmap_conf drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x9b401b78 bmc150_accel_pm_ops drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0xf5d5b5a7 bmc150_accel_core_remove drivers/iio/accel/bmc150-accel-core +IIO_BMC150_MAGN EXPORT_SYMBOL 0x62e4cdad bmc150_magn_regmap_config drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0x956bda08 bmc150_magn_pm_ops drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0xc8da18c4 bmc150_magn_remove drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0xcbf81e46 bmc150_magn_probe drivers/iio/magnetometer/bmc150_magn +IIO_BME680 EXPORT_SYMBOL 0x3e206850 bme680_regmap_config drivers/iio/chemical/bme680_core +IIO_BME680 EXPORT_SYMBOL_GPL 0x801b2da3 bme680_core_probe drivers/iio/chemical/bme680_core +IIO_BMI088 EXPORT_SYMBOL_GPL 0x4a1ea899 bmi088_regmap_conf drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0x5e918dd1 bmi088_accel_core_probe drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0x9e5b5668 bmi088_accel_core_remove drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0xb9d8b847 bmi088_accel_pm_ops drivers/iio/accel/bmi088-accel-core +IIO_BMI160 EXPORT_SYMBOL 0x0a9c4894 bmi160_regmap_config drivers/iio/imu/bmi160/bmi160_core IIO_BMI160 EXPORT_SYMBOL 0xca19cfae bmi160_enable_irq drivers/iio/imu/bmi160/bmi160_core -IIO_BMI160 EXPORT_SYMBOL_GPL 0x227238f0 bmi160_core_probe drivers/iio/imu/bmi160/bmi160_core -IIO_BMP280 EXPORT_SYMBOL 0x0775865f bmp280_regmap_config drivers/iio/pressure/bmp280 -IIO_BMP280 EXPORT_SYMBOL 0x1c6030d6 bmp280_common_probe drivers/iio/pressure/bmp280 -IIO_BMP280 EXPORT_SYMBOL 0x25b3ee7d bmp580_chip_info drivers/iio/pressure/bmp280 -IIO_BMP280 EXPORT_SYMBOL 0x379b6579 bme280_chip_info drivers/iio/pressure/bmp280 -IIO_BMP280 EXPORT_SYMBOL 0x3c1f6166 bmp180_chip_info drivers/iio/pressure/bmp280 -IIO_BMP280 EXPORT_SYMBOL 0x407e44bd bmp280_chip_info drivers/iio/pressure/bmp280 -IIO_BMP280 EXPORT_SYMBOL 0xdd71a5cb bmp380_chip_info drivers/iio/pressure/bmp280 -IIO_BMP280 EXPORT_SYMBOL 0xe65b8c3b bmp580_regmap_config drivers/iio/pressure/bmp280 -IIO_BMP280 EXPORT_SYMBOL 0xe82730be bmp380_regmap_config drivers/iio/pressure/bmp280 -IIO_BMP280 EXPORT_SYMBOL 0xedf35b3d bmp180_regmap_config drivers/iio/pressure/bmp280 -IIO_BNO055 EXPORT_SYMBOL_GPL 0x297a40f6 bno055_regmap_config drivers/iio/imu/bno055/bno055 -IIO_BNO055 EXPORT_SYMBOL_GPL 0xe2049c24 bno055_probe drivers/iio/imu/bno055/bno055 -IIO_FXAS21002C EXPORT_SYMBOL_GPL 0x1bdece5e fxas21002c_core_remove drivers/iio/gyro/fxas21002c_core -IIO_FXAS21002C EXPORT_SYMBOL_GPL 0x71633c39 fxas21002c_core_probe drivers/iio/gyro/fxas21002c_core -IIO_FXAS21002C EXPORT_SYMBOL_GPL 0xb9dd1b59 fxas21002c_pm_ops drivers/iio/gyro/fxas21002c_core -IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x3d77086c fxls8962af_core_probe drivers/iio/accel/fxls8962af-core -IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x438a9b3b fxls8962af_pm_ops drivers/iio/accel/fxls8962af-core -IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x6026c295 fxls8962af_i2c_regmap_conf drivers/iio/accel/fxls8962af-core -IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0xc2f85650 fxls8962af_spi_regmap_conf drivers/iio/accel/fxls8962af-core +IIO_BMI160 EXPORT_SYMBOL_GPL 0xc5fe47e2 bmi160_core_probe drivers/iio/imu/bmi160/bmi160_core +IIO_BMP280 EXPORT_SYMBOL 0x2013c36f bmp280_regmap_config drivers/iio/pressure/bmp280 +IIO_BMP280 EXPORT_SYMBOL 0x46151612 bmp280_common_probe drivers/iio/pressure/bmp280 +IIO_BMP280 EXPORT_SYMBOL 0x58398261 bmp380_chip_info drivers/iio/pressure/bmp280 +IIO_BMP280 EXPORT_SYMBOL 0xa0fbc9d7 bmp580_chip_info drivers/iio/pressure/bmp280 +IIO_BMP280 EXPORT_SYMBOL 0xb2d342d3 bme280_chip_info drivers/iio/pressure/bmp280 +IIO_BMP280 EXPORT_SYMBOL 0xb95746cc bmp180_chip_info drivers/iio/pressure/bmp280 +IIO_BMP280 EXPORT_SYMBOL 0xc13dc90b bmp580_regmap_config drivers/iio/pressure/bmp280 +IIO_BMP280 EXPORT_SYMBOL 0xc5366317 bmp280_chip_info drivers/iio/pressure/bmp280 +IIO_BMP280 EXPORT_SYMBOL 0xca951e0d bmp180_regmap_config drivers/iio/pressure/bmp280 +IIO_BMP280 EXPORT_SYMBOL 0xcf41758e bmp380_regmap_config drivers/iio/pressure/bmp280 +IIO_BNO055 EXPORT_SYMBOL_GPL 0x4ae2dace bno055_probe drivers/iio/imu/bno055/bno055 +IIO_BNO055 EXPORT_SYMBOL_GPL 0x5cbdd09a bno055_regmap_config drivers/iio/imu/bno055/bno055 +IIO_FXAS21002C EXPORT_SYMBOL_GPL 0x1ba79394 fxas21002c_core_probe drivers/iio/gyro/fxas21002c_core +IIO_FXAS21002C EXPORT_SYMBOL_GPL 0xb4916807 fxas21002c_core_remove drivers/iio/gyro/fxas21002c_core +IIO_FXAS21002C EXPORT_SYMBOL_GPL 0xb91371c9 fxas21002c_pm_ops drivers/iio/gyro/fxas21002c_core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x720c5128 fxls8962af_spi_regmap_conf drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x8cb64b30 fxls8962af_pm_ops drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0xa04bf487 fxls8962af_core_probe drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0xd0d2c5ed fxls8962af_i2c_regmap_conf drivers/iio/accel/fxls8962af-core IIO_GTS_HELPER EXPORT_SYMBOL_GPL 0x094bee02 iio_gts_avail_scales_for_time drivers/iio/industrialio-gts-helper IIO_GTS_HELPER EXPORT_SYMBOL_GPL 0x296bb0cd iio_gts_all_avail_scales drivers/iio/industrialio-gts-helper IIO_GTS_HELPER EXPORT_SYMBOL_GPL 0x4ed89402 iio_gts_find_sel_by_gain drivers/iio/industrialio-gts-helper IIO_GTS_HELPER EXPORT_SYMBOL_GPL 0x53000dc5 iio_gts_find_gain_by_sel drivers/iio/industrialio-gts-helper IIO_GTS_HELPER EXPORT_SYMBOL_GPL 0x54a7bad7 iio_gts_get_min_gain drivers/iio/industrialio-gts-helper IIO_GTS_HELPER EXPORT_SYMBOL_GPL 0x5f338fa0 iio_gts_find_new_gain_sel_by_old_gain_time drivers/iio/industrialio-gts-helper +IIO_GTS_HELPER EXPORT_SYMBOL_GPL 0x97e0eb85 devm_iio_init_iio_gts drivers/iio/industrialio-gts-helper IIO_GTS_HELPER EXPORT_SYMBOL_GPL 0xa3374797 iio_gts_get_scale drivers/iio/industrialio-gts-helper IIO_GTS_HELPER EXPORT_SYMBOL_GPL 0xaf5aaa85 iio_find_closest_gain_low drivers/iio/industrialio-gts-helper IIO_GTS_HELPER EXPORT_SYMBOL_GPL 0xc061498b iio_gts_avail_times drivers/iio/industrialio-gts-helper IIO_GTS_HELPER EXPORT_SYMBOL_GPL 0xc25ccf30 iio_gts_find_new_gain_by_old_gain_time drivers/iio/industrialio-gts-helper -IIO_GTS_HELPER EXPORT_SYMBOL_GPL 0xc955f740 devm_iio_init_iio_gts drivers/iio/industrialio-gts-helper IIO_GTS_HELPER EXPORT_SYMBOL_GPL 0xd7e29768 iio_gts_find_gain_sel_for_scale_using_time drivers/iio/industrialio-gts-helper IIO_GTS_HELPER EXPORT_SYMBOL_GPL 0xf42af90f iio_gts_total_gain_to_scale drivers/iio/industrialio-gts-helper -IIO_HID EXPORT_SYMBOL 0x2e13c844 hid_sensor_power_state drivers/iio/common/hid-sensors/hid-sensor-trigger -IIO_HID EXPORT_SYMBOL 0x48b83fc8 hid_sensor_read_samp_freq_value drivers/iio/common/hid-sensors/hid-sensor-iio-common -IIO_HID EXPORT_SYMBOL 0x7016fc01 hid_sensor_write_samp_freq_value drivers/iio/common/hid-sensors/hid-sensor-iio-common -IIO_HID EXPORT_SYMBOL 0x75612948 hid_sensor_pm_ops drivers/iio/common/hid-sensors/hid-sensor-trigger -IIO_HID EXPORT_SYMBOL 0x7d941456 hid_sensor_parse_common_attributes drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x0c04c508 hid_sensor_remove_trigger drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x18839c4d hid_sensor_parse_common_attributes drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x1ebc71d5 hid_sensor_convert_timestamp drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x35915c50 hid_sensor_read_raw_hyst_rel_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x5a13c872 hid_sensor_power_state drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x67bd59ea hid_sensor_write_raw_hyst_value drivers/iio/common/hid-sensors/hid-sensor-iio-common IIO_HID EXPORT_SYMBOL 0x7f7621ec hid_sensor_format_scale drivers/iio/common/hid-sensors/hid-sensor-iio-common -IIO_HID EXPORT_SYMBOL 0x8470bee9 hid_sensor_write_raw_hyst_rel_value drivers/iio/common/hid-sensors/hid-sensor-iio-common -IIO_HID EXPORT_SYMBOL 0x8d3cec9b hid_sensor_write_raw_hyst_value drivers/iio/common/hid-sensors/hid-sensor-iio-common -IIO_HID EXPORT_SYMBOL 0x937d8f24 hid_sensor_remove_trigger drivers/iio/common/hid-sensors/hid-sensor-trigger -IIO_HID EXPORT_SYMBOL 0xa727c5b0 hid_sensor_read_raw_hyst_value drivers/iio/common/hid-sensors/hid-sensor-iio-common -IIO_HID EXPORT_SYMBOL 0xb15e00ab hid_sensor_setup_trigger drivers/iio/common/hid-sensors/hid-sensor-trigger -IIO_HID EXPORT_SYMBOL 0xd75ec147 hid_sensor_read_raw_hyst_rel_value drivers/iio/common/hid-sensors/hid-sensor-iio-common -IIO_HID EXPORT_SYMBOL 0xf84141ed hid_sensor_convert_timestamp drivers/iio/common/hid-sensors/hid-sensor-iio-common -IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x2c2d1d79 hid_sensor_read_poll_value drivers/iio/common/hid-sensors/hid-sensor-iio-common -IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x37ca95e7 hid_sensor_set_report_latency drivers/iio/common/hid-sensors/hid-sensor-iio-common -IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x696275f6 hid_sensor_batch_mode_supported drivers/iio/common/hid-sensors/hid-sensor-iio-common -IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0xa2ebe02c hid_sensor_get_report_latency drivers/iio/common/hid-sensors/hid-sensor-iio-common -IIO_HMC5843 EXPORT_SYMBOL 0x0596aea2 hmc5843_common_remove drivers/iio/magnetometer/hmc5843_core -IIO_HMC5843 EXPORT_SYMBOL 0x21ef0a26 hmc5843_pm_ops drivers/iio/magnetometer/hmc5843_core -IIO_HMC5843 EXPORT_SYMBOL 0xa930d072 hmc5843_common_probe drivers/iio/magnetometer/hmc5843_core -IIO_HTS221 EXPORT_SYMBOL 0xeb9b4892 hts221_probe drivers/iio/humidity/hts221 -IIO_HTS221 EXPORT_SYMBOL 0xfbcc5316 hts221_pm_ops drivers/iio/humidity/hts221 -IIO_ICM42600 EXPORT_SYMBOL_GPL 0x8cfb4a4b inv_icm42600_pm_ops drivers/iio/imu/inv_icm42600/inv-icm42600 -IIO_ICM42600 EXPORT_SYMBOL_GPL 0xbeda8595 inv_icm42600_regmap_config drivers/iio/imu/inv_icm42600/inv-icm42600 -IIO_ICM42600 EXPORT_SYMBOL_GPL 0xd3a6a86e inv_icm42600_core_probe drivers/iio/imu/inv_icm42600/inv-icm42600 -IIO_KX022A EXPORT_SYMBOL_GPL 0x5ea64e2a kx022a_regmap drivers/iio/accel/kionix-kx022a -IIO_KX022A EXPORT_SYMBOL_GPL 0xef0b982c kx022a_probe_internal drivers/iio/accel/kionix-kx022a -IIO_KXSD9 EXPORT_SYMBOL 0x8f39c10c kxsd9_dev_pm_ops drivers/iio/accel/kxsd9 -IIO_KXSD9 EXPORT_SYMBOL 0xbaa8ba7a kxsd9_common_probe drivers/iio/accel/kxsd9 -IIO_KXSD9 EXPORT_SYMBOL 0xfae9dc58 kxsd9_common_remove drivers/iio/accel/kxsd9 -IIO_LSM6DSX EXPORT_SYMBOL 0x0d618769 st_lsm6dsx_pm_ops drivers/iio/imu/st_lsm6dsx/st_lsm6dsx -IIO_LSM6DSX EXPORT_SYMBOL 0x6ce25b21 st_lsm6dsx_probe drivers/iio/imu/st_lsm6dsx/st_lsm6dsx +IIO_HID EXPORT_SYMBOL 0x7f9c641b hid_sensor_write_raw_hyst_rel_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x9325f997 hid_sensor_write_samp_freq_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0xa286c958 hid_sensor_setup_trigger drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0xaecef549 hid_sensor_read_samp_freq_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0xc9eac69c hid_sensor_pm_ops drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0xfbd94d63 hid_sensor_read_raw_hyst_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x1d3ea2f2 hid_sensor_get_report_latency drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x68c7c113 hid_sensor_read_poll_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x97fca3bb hid_sensor_set_report_latency drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0xfd261231 hid_sensor_batch_mode_supported drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HMC5843 EXPORT_SYMBOL 0x53d18548 hmc5843_pm_ops drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0x98e8c276 hmc5843_common_probe drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0xbe365539 hmc5843_common_remove drivers/iio/magnetometer/hmc5843_core +IIO_HTS221 EXPORT_SYMBOL 0x45fc47f7 hts221_pm_ops drivers/iio/humidity/hts221 +IIO_HTS221 EXPORT_SYMBOL 0x64fbacaa hts221_probe drivers/iio/humidity/hts221 +IIO_ICM42600 EXPORT_SYMBOL_GPL 0x139ab0f9 inv_icm42600_core_probe drivers/iio/imu/inv_icm42600/inv-icm42600 +IIO_ICM42600 EXPORT_SYMBOL_GPL 0x19cf41d5 inv_icm42600_regmap_config drivers/iio/imu/inv_icm42600/inv-icm42600 +IIO_ICM42600 EXPORT_SYMBOL_GPL 0x50dd48d9 inv_icm42600_pm_ops drivers/iio/imu/inv_icm42600/inv-icm42600 +IIO_KX022A EXPORT_SYMBOL_GPL 0x3ad2de51 kx022a_regmap drivers/iio/accel/kionix-kx022a +IIO_KX022A EXPORT_SYMBOL_GPL 0xd547692e kx022a_probe_internal drivers/iio/accel/kionix-kx022a +IIO_KXSD9 EXPORT_SYMBOL 0x2f6e9cdc kxsd9_dev_pm_ops drivers/iio/accel/kxsd9 +IIO_KXSD9 EXPORT_SYMBOL 0x64c88a5f kxsd9_common_remove drivers/iio/accel/kxsd9 +IIO_KXSD9 EXPORT_SYMBOL 0xaacb9c7d kxsd9_common_probe drivers/iio/accel/kxsd9 +IIO_LSM6DSX EXPORT_SYMBOL 0x609db830 st_lsm6dsx_pm_ops drivers/iio/imu/st_lsm6dsx/st_lsm6dsx +IIO_LSM6DSX EXPORT_SYMBOL 0xb3cda04e st_lsm6dsx_probe drivers/iio/imu/st_lsm6dsx/st_lsm6dsx IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x045688dd ms_sensors_read_prom_word drivers/iio/common/ms_sensors/ms_sensors_i2c -IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x222a4610 ms_sensors_show_battery_low drivers/iio/common/ms_sensors/ms_sensors_i2c IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x2d2f5cd5 ms_sensors_reset drivers/iio/common/ms_sensors/ms_sensors_i2c -IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x2f94bbba ms_sensors_read_serial drivers/iio/common/ms_sensors/ms_sensors_i2c -IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x30fc9d22 ms_sensors_ht_read_temperature drivers/iio/common/ms_sensors/ms_sensors_i2c -IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x343409e1 ms_sensors_write_heater drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x3b0be55e ms_sensors_ht_read_temperature drivers/iio/common/ms_sensors/ms_sensors_i2c IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x42b6a050 ms_sensors_convert_and_read drivers/iio/common/ms_sensors/ms_sensors_i2c -IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x44df9033 ms_sensors_tp_read_prom drivers/iio/common/ms_sensors/ms_sensors_i2c -IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x4ef8dc6a ms_sensors_write_resolution drivers/iio/common/ms_sensors/ms_sensors_i2c -IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xae898a9b ms_sensors_show_heater drivers/iio/common/ms_sensors/ms_sensors_i2c -IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xbab56ad1 ms_sensors_read_temp_and_pressure drivers/iio/common/ms_sensors/ms_sensors_i2c -IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xeb5abb70 ms_sensors_ht_read_humidity drivers/iio/common/ms_sensors/ms_sensors_i2c -IIO_MMA7455 EXPORT_SYMBOL_GPL 0x0172d8fb mma7455_core_regmap drivers/iio/accel/mma7455_core -IIO_MMA7455 EXPORT_SYMBOL_GPL 0x03e18372 mma7455_core_remove drivers/iio/accel/mma7455_core -IIO_MMA7455 EXPORT_SYMBOL_GPL 0xfacd4f10 mma7455_core_probe drivers/iio/accel/mma7455_core -IIO_MMA9551 EXPORT_SYMBOL 0x172d2c28 mma9551_read_version drivers/iio/accel/mma9551_core -IIO_MMA9551 EXPORT_SYMBOL 0x23e3aa15 mma9551_read_config_words drivers/iio/accel/mma9551_core -IIO_MMA9551 EXPORT_SYMBOL 0x26f68cd7 mma9551_write_config_byte drivers/iio/accel/mma9551_core -IIO_MMA9551 EXPORT_SYMBOL 0x2ba26f8c mma9551_read_config_byte drivers/iio/accel/mma9551_core -IIO_MMA9551 EXPORT_SYMBOL 0x2ec0c188 mma9551_read_status_words drivers/iio/accel/mma9551_core -IIO_MMA9551 EXPORT_SYMBOL 0x38e7074e mma9551_set_power_state drivers/iio/accel/mma9551_core +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x8e840765 ms_sensors_write_heater drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xa0d7a612 ms_sensors_show_heater drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xa390ac42 ms_sensors_read_temp_and_pressure drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xa5280c9f ms_sensors_show_battery_low drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xb21b2354 ms_sensors_tp_read_prom drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xbe975b45 ms_sensors_ht_read_humidity drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xc118d18c ms_sensors_read_serial drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xe5b4752b ms_sensors_write_resolution drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MMA7455 EXPORT_SYMBOL_GPL 0x04bf7128 mma7455_core_probe drivers/iio/accel/mma7455_core +IIO_MMA7455 EXPORT_SYMBOL_GPL 0x580d0f49 mma7455_core_remove drivers/iio/accel/mma7455_core +IIO_MMA7455 EXPORT_SYMBOL_GPL 0xc1de2c1f mma7455_core_regmap drivers/iio/accel/mma7455_core +IIO_MMA9551 EXPORT_SYMBOL 0x0825ec1a mma9551_set_power_state drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x31212858 mma9551_read_config_word drivers/iio/accel/mma9551_core IIO_MMA9551 EXPORT_SYMBOL 0x41ef446c mma9551_read_accel_scale drivers/iio/accel/mma9551_core -IIO_MMA9551 EXPORT_SYMBOL 0x57269c00 mma9551_read_status_word drivers/iio/accel/mma9551_core -IIO_MMA9551 EXPORT_SYMBOL 0x5e4a54ca mma9551_read_status_byte drivers/iio/accel/mma9551_core -IIO_MMA9551 EXPORT_SYMBOL 0x5f360b75 mma9551_gpio_config drivers/iio/accel/mma9551_core -IIO_MMA9551 EXPORT_SYMBOL 0x64d33cb7 mma9551_app_reset drivers/iio/accel/mma9551_core -IIO_MMA9551 EXPORT_SYMBOL 0x65faae18 mma9551_set_device_state drivers/iio/accel/mma9551_core -IIO_MMA9551 EXPORT_SYMBOL 0x72c8fd5a mma9551_write_config_word drivers/iio/accel/mma9551_core -IIO_MMA9551 EXPORT_SYMBOL 0x7f29dd07 mma9551_write_config_words drivers/iio/accel/mma9551_core -IIO_MMA9551 EXPORT_SYMBOL 0xa05cedfc mma9551_read_accel_chan drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x492070b9 mma9551_set_device_state drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x50af69ce mma9551_write_config_words drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x5c7972e9 mma9551_app_reset drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x86775531 mma9551_read_config_words drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x8ec20be5 mma9551_read_status_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x9f2ab88d mma9551_read_version drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xa2debf86 mma9551_read_status_words drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xacfbdda5 mma9551_update_config_bits drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xbb089a34 mma9551_read_status_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xbbc6ae9e mma9551_read_accel_chan drivers/iio/accel/mma9551_core IIO_MMA9551 EXPORT_SYMBOL 0xbcd7fe96 mma9551_sleep drivers/iio/accel/mma9551_core -IIO_MMA9551 EXPORT_SYMBOL 0xc8ec909e mma9551_read_config_word drivers/iio/accel/mma9551_core -IIO_MMA9551 EXPORT_SYMBOL 0xe5f28064 mma9551_update_config_bits drivers/iio/accel/mma9551_core -IIO_MPL115 EXPORT_SYMBOL 0x089cc772 mpl115_dev_pm_ops drivers/iio/pressure/mpl115 -IIO_MPL115 EXPORT_SYMBOL_GPL 0x9e42709b mpl115_probe drivers/iio/pressure/mpl115 -IIO_MPU6050 EXPORT_SYMBOL_GPL 0x05a8b060 inv_mpu_core_probe drivers/iio/imu/inv_mpu6050/inv-mpu6050 -IIO_MPU6050 EXPORT_SYMBOL_GPL 0xf1fa32b6 inv_mpu_pmops drivers/iio/imu/inv_mpu6050/inv-mpu6050 -IIO_MS5611 EXPORT_SYMBOL 0x4f53b2e0 ms5611_probe drivers/iio/pressure/ms5611_core -IIO_RESCALE EXPORT_SYMBOL_GPL 0xe2fcb436 rescale_process_scale drivers/iio/afe/iio-rescale -IIO_RESCALE EXPORT_SYMBOL_GPL 0xf2c1ef73 rescale_process_offset drivers/iio/afe/iio-rescale +IIO_MMA9551 EXPORT_SYMBOL 0xc2b98bfe mma9551_read_config_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xca800459 mma9551_write_config_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xd61e6470 mma9551_write_config_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xee8c62cd mma9551_gpio_config drivers/iio/accel/mma9551_core +IIO_MPL115 EXPORT_SYMBOL 0xd17ee531 mpl115_dev_pm_ops drivers/iio/pressure/mpl115 +IIO_MPL115 EXPORT_SYMBOL_GPL 0x64d7f008 mpl115_probe drivers/iio/pressure/mpl115 +IIO_MPU6050 EXPORT_SYMBOL_GPL 0x350be890 inv_mpu_core_probe drivers/iio/imu/inv_mpu6050/inv-mpu6050 +IIO_MPU6050 EXPORT_SYMBOL_GPL 0xd2e33550 inv_mpu_pmops drivers/iio/imu/inv_mpu6050/inv-mpu6050 +IIO_MS5611 EXPORT_SYMBOL 0x9e2c4f17 ms5611_probe drivers/iio/pressure/ms5611_core +IIO_RESCALE EXPORT_SYMBOL_GPL 0x4503594a rescale_process_scale drivers/iio/afe/iio-rescale +IIO_RESCALE EXPORT_SYMBOL_GPL 0xcc228c1b rescale_process_offset drivers/iio/afe/iio-rescale IIO_RM3100 EXPORT_SYMBOL_GPL 0x0a1424e0 rm3100_volatile_table drivers/iio/magnetometer/rm3100-core -IIO_RM3100 EXPORT_SYMBOL_GPL 0x34ce388f rm3100_common_probe drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0x73851a58 rm3100_common_probe drivers/iio/magnetometer/rm3100-core IIO_RM3100 EXPORT_SYMBOL_GPL 0xaa911f08 rm3100_readable_table drivers/iio/magnetometer/rm3100-core IIO_RM3100 EXPORT_SYMBOL_GPL 0xcc7209be rm3100_writable_table drivers/iio/magnetometer/rm3100-core -IIO_SCD30 EXPORT_SYMBOL 0x237dc364 scd30_probe drivers/iio/chemical/scd30_core -IIO_SCD30 EXPORT_SYMBOL 0xdce1c29d scd30_pm_ops drivers/iio/chemical/scd30_core -IIO_SPS30 EXPORT_SYMBOL_GPL 0x4d315807 sps30_probe drivers/iio/chemical/sps30 -IIO_SSP_SENSORS EXPORT_SYMBOL 0x153b0d5b ssp_common_buffer_postenable drivers/iio/common/ssp_sensors/ssp_iio -IIO_SSP_SENSORS EXPORT_SYMBOL 0x4e341445 ssp_common_buffer_postdisable drivers/iio/common/ssp_sensors/ssp_iio -IIO_SSP_SENSORS EXPORT_SYMBOL 0x61ac7556 ssp_change_delay drivers/iio/common/ssp_sensors/sensorhub -IIO_SSP_SENSORS EXPORT_SYMBOL 0x7be6f6d7 ssp_get_sensor_delay drivers/iio/common/ssp_sensors/sensorhub -IIO_SSP_SENSORS EXPORT_SYMBOL 0xa851c2b1 ssp_common_process_data drivers/iio/common/ssp_sensors/ssp_iio -IIO_SSP_SENSORS EXPORT_SYMBOL 0xb0257f29 ssp_register_consumer drivers/iio/common/ssp_sensors/sensorhub -IIO_SSP_SENSORS EXPORT_SYMBOL 0xeb853b6b ssp_enable_sensor drivers/iio/common/ssp_sensors/sensorhub -IIO_SSP_SENSORS EXPORT_SYMBOL 0xf43adb9e ssp_disable_sensor drivers/iio/common/ssp_sensors/sensorhub -IIO_ST_SENSORS EXPORT_SYMBOL 0x0282fe28 st_sensors_allocate_trigger drivers/iio/common/st_sensors/st_sensors +IIO_SCD30 EXPORT_SYMBOL 0xb5025b4c scd30_probe drivers/iio/chemical/scd30_core +IIO_SCD30 EXPORT_SYMBOL 0xe7e533ef scd30_pm_ops drivers/iio/chemical/scd30_core +IIO_SPS30 EXPORT_SYMBOL_GPL 0x26b033f7 sps30_probe drivers/iio/chemical/sps30 +IIO_SSP_SENSORS EXPORT_SYMBOL 0x2e5a7b20 ssp_disable_sensor drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x2f110c43 ssp_change_delay drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x3d44da9b ssp_common_buffer_postenable drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0x73a511b9 ssp_common_process_data drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0x852a49a4 ssp_enable_sensor drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x9053a6e7 ssp_get_sensor_delay drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0xd49eb045 ssp_common_buffer_postdisable drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0xecce9447 ssp_register_consumer drivers/iio/common/ssp_sensors/sensorhub +IIO_ST_SENSORS EXPORT_SYMBOL 0x007e3dd5 st_gyro_common_probe drivers/iio/gyro/st_gyro IIO_ST_SENSORS EXPORT_SYMBOL 0x074d7047 st_sensors_trigger_handler drivers/iio/common/st_sensors/st_sensors -IIO_ST_SENSORS EXPORT_SYMBOL 0x27996e64 st_press_common_probe drivers/iio/pressure/st_pressure -IIO_ST_SENSORS EXPORT_SYMBOL 0x39415c07 st_sensors_dev_name_probe drivers/iio/common/st_sensors/st_sensors -IIO_ST_SENSORS EXPORT_SYMBOL 0x39e5a1a6 st_sensors_sysfs_sampling_frequency_avail drivers/iio/common/st_sensors/st_sensors -IIO_ST_SENSORS EXPORT_SYMBOL 0x3caabb42 st_gyro_get_settings drivers/iio/gyro/st_gyro -IIO_ST_SENSORS EXPORT_SYMBOL 0x49db7f8e st_sensors_spi_configure drivers/iio/common/st_sensors/st_sensors_spi -IIO_ST_SENSORS EXPORT_SYMBOL 0x54185858 st_sensors_init_sensor drivers/iio/common/st_sensors/st_sensors -IIO_ST_SENSORS EXPORT_SYMBOL 0x550bea09 st_sensors_set_dataready_irq drivers/iio/common/st_sensors/st_sensors -IIO_ST_SENSORS EXPORT_SYMBOL 0x596603bf st_sensors_debugfs_reg_access drivers/iio/common/st_sensors/st_sensors -IIO_ST_SENSORS EXPORT_SYMBOL 0x92e39319 st_sensors_sysfs_scale_avail drivers/iio/common/st_sensors/st_sensors -IIO_ST_SENSORS EXPORT_SYMBOL 0x966e11c0 st_gyro_common_probe drivers/iio/gyro/st_gyro -IIO_ST_SENSORS EXPORT_SYMBOL 0xa6c9795d st_sensors_read_info_raw drivers/iio/common/st_sensors/st_sensors -IIO_ST_SENSORS EXPORT_SYMBOL 0xa8031453 st_magn_common_probe drivers/iio/magnetometer/st_magn -IIO_ST_SENSORS EXPORT_SYMBOL 0xa945d16a st_accel_get_settings drivers/iio/accel/st_accel -IIO_ST_SENSORS EXPORT_SYMBOL 0xad5e70e3 st_magn_get_settings drivers/iio/magnetometer/st_magn -IIO_ST_SENSORS EXPORT_SYMBOL 0xaf21fb24 st_press_get_settings drivers/iio/pressure/st_pressure -IIO_ST_SENSORS EXPORT_SYMBOL 0xb3223df3 st_sensors_power_enable drivers/iio/common/st_sensors/st_sensors -IIO_ST_SENSORS EXPORT_SYMBOL 0xb98751bf st_sensors_i2c_configure drivers/iio/common/st_sensors/st_sensors_i2c -IIO_ST_SENSORS EXPORT_SYMBOL 0xbc7495fa st_accel_common_probe drivers/iio/accel/st_accel -IIO_ST_SENSORS EXPORT_SYMBOL 0xbd817cb6 st_sensors_verify_id drivers/iio/common/st_sensors/st_sensors -IIO_ST_SENSORS EXPORT_SYMBOL 0xc471b328 st_sensors_set_odr drivers/iio/common/st_sensors/st_sensors -IIO_ST_SENSORS EXPORT_SYMBOL 0xd14278bd st_sensors_set_axis_enable drivers/iio/common/st_sensors/st_sensors -IIO_ST_SENSORS EXPORT_SYMBOL 0xd9709aa9 st_sensors_get_settings_index drivers/iio/common/st_sensors/st_sensors -IIO_ST_SENSORS EXPORT_SYMBOL 0xe246448d st_sensors_set_enable drivers/iio/common/st_sensors/st_sensors -IIO_ST_SENSORS EXPORT_SYMBOL 0xe4908f62 st_sensors_set_fullscale_by_gain drivers/iio/common/st_sensors/st_sensors -IIO_ST_SENSORS EXPORT_SYMBOL 0xf87858c5 st_sensors_validate_device drivers/iio/common/st_sensors/st_sensors -IIO_ST_SENSORS EXPORT_SYMBOL_GPL 0x8f7b61dd st_lsm9ds0_probe drivers/iio/imu/st_lsm9ds0/st_lsm9ds0 -IIO_UVIS25 EXPORT_SYMBOL 0x091ec596 st_uvis25_pm_ops drivers/iio/light/st_uvis25_core -IIO_UVIS25 EXPORT_SYMBOL 0xe89e89dc st_uvis25_probe drivers/iio/light/st_uvis25_core -IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x25a80a42 zpa2326_probe drivers/iio/pressure/zpa2326 -IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x81be4622 zpa2326_isreg_precious drivers/iio/pressure/zpa2326 -IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x823bca7e zpa2326_isreg_writeable drivers/iio/pressure/zpa2326 -IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x91c397b6 zpa2326_isreg_readable drivers/iio/pressure/zpa2326 -IIO_ZPA2326 EXPORT_SYMBOL_GPL 0xb34f33fc zpa2326_pm_ops drivers/iio/pressure/zpa2326 -IIO_ZPA2326 EXPORT_SYMBOL_GPL 0xe65e7d54 zpa2326_remove drivers/iio/pressure/zpa2326 -INTEL_M10_BMC_CORE EXPORT_SYMBOL_GPL 0x31500049 m10bmc_dev_init drivers/mfd/intel-m10-bmc-core -INTEL_M10_BMC_CORE EXPORT_SYMBOL_GPL 0x453bbd4e m10bmc_dev_groups drivers/mfd/intel-m10-bmc-core -INTEL_M10_BMC_CORE EXPORT_SYMBOL_GPL 0x68cf9459 m10bmc_fw_state_set drivers/mfd/intel-m10-bmc-core -INTEL_M10_BMC_CORE EXPORT_SYMBOL_GPL 0x8b36c83d m10bmc_sys_update_bits drivers/mfd/intel-m10-bmc-core -INTEL_M10_BMC_CORE EXPORT_SYMBOL_GPL 0xfea542c9 m10bmc_sys_read drivers/mfd/intel-m10-bmc-core -IOMMUFD EXPORT_SYMBOL_GPL 0x07b06a31 iommufd_ctx_get drivers/iommu/iommufd/iommufd -IOMMUFD EXPORT_SYMBOL_GPL 0x1f4a2ca7 iommufd_access_pin_pages drivers/iommu/iommufd/iommufd -IOMMUFD EXPORT_SYMBOL_GPL 0x25e79ed6 iommufd_ctx_from_file drivers/iommu/iommufd/iommufd -IOMMUFD EXPORT_SYMBOL_GPL 0x501a9080 iommufd_access_create drivers/iommu/iommufd/iommufd -IOMMUFD EXPORT_SYMBOL_GPL 0x514d585d iommufd_device_bind drivers/iommu/iommufd/iommufd -IOMMUFD EXPORT_SYMBOL_GPL 0x532d8917 iommufd_access_destroy drivers/iommu/iommufd/iommufd -IOMMUFD EXPORT_SYMBOL_GPL 0x59b3d2d9 iommufd_access_unpin_pages drivers/iommu/iommufd/iommufd -IOMMUFD EXPORT_SYMBOL_GPL 0x8ca992d5 iommufd_access_rw drivers/iommu/iommufd/iommufd -IOMMUFD EXPORT_SYMBOL_GPL 0xa6d2df61 iommufd_access_attach drivers/iommu/iommufd/iommufd -IOMMUFD EXPORT_SYMBOL_GPL 0xb1060040 iommufd_device_unbind drivers/iommu/iommufd/iommufd -IOMMUFD EXPORT_SYMBOL_GPL 0xbbd60a5d iommufd_ctx_put drivers/iommu/iommufd/iommufd -IOMMUFD EXPORT_SYMBOL_GPL 0xefe8062c iommufd_device_attach drivers/iommu/iommufd/iommufd -IOMMUFD EXPORT_SYMBOL_GPL 0xf3fb9ddb iommufd_device_detach drivers/iommu/iommufd/iommufd -IOMMUFD_VFIO EXPORT_SYMBOL_GPL 0x6a5f2530 iommufd_vfio_compat_set_no_iommu drivers/iommu/iommufd/iommufd -IOMMUFD_VFIO EXPORT_SYMBOL_GPL 0x6d6f8083 iommufd_vfio_compat_ioas_get_id drivers/iommu/iommufd/iommufd -IOMMUFD_VFIO EXPORT_SYMBOL_GPL 0xbacccba5 iommufd_vfio_compat_ioas_create drivers/iommu/iommufd/iommufd -IWLWIFI EXPORT_SYMBOL_GPL 0x016e7f73 iwl_read_direct32 drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x028a4051 iwl_write64 drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x03585a58 iwl_read_prph drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x05635e00 iwl_fw_dbg_stop_restart_recording drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x0e3146dd __iwl_info drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x18c68ace iwl_write_direct64 drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x1c552734 iwl_fw_runtime_resume drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x211c8c76 iwl_force_nmi drivers/net/wireless/intel/iwlwifi/iwlwifi +IIO_ST_SENSORS EXPORT_SYMBOL 0x0de4d62c st_sensors_set_odr drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x119d3542 st_press_get_settings drivers/iio/pressure/st_pressure +IIO_ST_SENSORS EXPORT_SYMBOL 0x12065f90 st_sensors_dev_name_probe drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x17f91f0c st_accel_get_settings drivers/iio/accel/st_accel +IIO_ST_SENSORS EXPORT_SYMBOL 0x1a800691 st_magn_get_settings drivers/iio/magnetometer/st_magn +IIO_ST_SENSORS EXPORT_SYMBOL 0x28c89d26 st_sensors_verify_id drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x6e1e3ae1 st_sensors_set_axis_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7b0d34f8 st_sensors_set_dataready_irq drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7c64619d st_sensors_spi_configure drivers/iio/common/st_sensors/st_sensors_spi +IIO_ST_SENSORS EXPORT_SYMBOL 0x8b74cd30 st_gyro_get_settings drivers/iio/gyro/st_gyro +IIO_ST_SENSORS EXPORT_SYMBOL 0x93541e90 st_sensors_set_fullscale_by_gain drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x954c2363 st_sensors_init_sensor drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x9c5ca9b1 st_press_common_probe drivers/iio/pressure/st_pressure +IIO_ST_SENSORS EXPORT_SYMBOL 0x9cf942c2 st_sensors_power_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x9d9032b9 st_sensors_read_info_raw drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xa69b310a st_sensors_debugfs_reg_access drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xaf454327 st_sensors_allocate_trigger drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xb024fd6e st_sensors_sysfs_sampling_frequency_avail drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xb86290c1 st_sensors_sysfs_scale_avail drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xd03153f2 st_sensors_get_settings_index drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xddb2be9b st_sensors_i2c_configure drivers/iio/common/st_sensors/st_sensors_i2c +IIO_ST_SENSORS EXPORT_SYMBOL 0xe0e8f86e st_sensors_validate_device drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xed96cfe5 st_magn_common_probe drivers/iio/magnetometer/st_magn +IIO_ST_SENSORS EXPORT_SYMBOL 0xeded52be st_accel_common_probe drivers/iio/accel/st_accel +IIO_ST_SENSORS EXPORT_SYMBOL 0xf08ea6e1 st_sensors_set_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL_GPL 0x57a09b80 st_lsm9ds0_probe drivers/iio/imu/st_lsm9ds0/st_lsm9ds0 +IIO_UVIS25 EXPORT_SYMBOL 0x746a0687 st_uvis25_probe drivers/iio/light/st_uvis25_core +IIO_UVIS25 EXPORT_SYMBOL 0x8f676f30 st_uvis25_pm_ops drivers/iio/light/st_uvis25_core +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x03924807 zpa2326_isreg_readable drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x35c66b8a zpa2326_remove drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x42911473 zpa2326_probe drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x63416efa zpa2326_isreg_writeable drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x64fcd106 zpa2326_pm_ops drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0xab070c44 zpa2326_isreg_precious drivers/iio/pressure/zpa2326 +INTEL_M10_BMC_CORE EXPORT_SYMBOL_GPL 0x08be1829 m10bmc_dev_groups drivers/mfd/intel-m10-bmc-core +INTEL_M10_BMC_CORE EXPORT_SYMBOL_GPL 0x4692df2a m10bmc_sys_read drivers/mfd/intel-m10-bmc-core +INTEL_M10_BMC_CORE EXPORT_SYMBOL_GPL 0x8aab717c m10bmc_sys_update_bits drivers/mfd/intel-m10-bmc-core +INTEL_M10_BMC_CORE EXPORT_SYMBOL_GPL 0xa48fa455 m10bmc_fw_state_set drivers/mfd/intel-m10-bmc-core +INTEL_M10_BMC_CORE EXPORT_SYMBOL_GPL 0xe891dd67 m10bmc_dev_init drivers/mfd/intel-m10-bmc-core +IOMMUFD EXPORT_SYMBOL_GPL 0x09422642 iommufd_device_unbind drivers/iommu/iommufd/iommufd +IOMMUFD EXPORT_SYMBOL_GPL 0x3cf98d67 iommufd_access_pin_pages drivers/iommu/iommufd/iommufd +IOMMUFD EXPORT_SYMBOL_GPL 0x48dd28b1 iommufd_ctx_put drivers/iommu/iommufd/iommufd +IOMMUFD EXPORT_SYMBOL_GPL 0x49c851f2 iommufd_device_detach drivers/iommu/iommufd/iommufd +IOMMUFD EXPORT_SYMBOL_GPL 0x4b61b898 iommufd_ctx_from_file drivers/iommu/iommufd/iommufd +IOMMUFD EXPORT_SYMBOL_GPL 0x64db4c8c iommufd_access_destroy drivers/iommu/iommufd/iommufd +IOMMUFD EXPORT_SYMBOL_GPL 0x6bd674ef iommufd_access_create drivers/iommu/iommufd/iommufd +IOMMUFD EXPORT_SYMBOL_GPL 0x87e1b900 iommufd_device_attach drivers/iommu/iommufd/iommufd +IOMMUFD EXPORT_SYMBOL_GPL 0x9aee4d19 iommufd_ctx_get drivers/iommu/iommufd/iommufd +IOMMUFD EXPORT_SYMBOL_GPL 0xdac7f1f4 iommufd_device_bind drivers/iommu/iommufd/iommufd +IOMMUFD EXPORT_SYMBOL_GPL 0xddb9a595 iommufd_access_attach drivers/iommu/iommufd/iommufd +IOMMUFD EXPORT_SYMBOL_GPL 0xe1eddfb0 iommufd_access_rw drivers/iommu/iommufd/iommufd +IOMMUFD EXPORT_SYMBOL_GPL 0xe3bf07ba iommufd_access_unpin_pages drivers/iommu/iommufd/iommufd +IOMMUFD_VFIO EXPORT_SYMBOL_GPL 0x0802b05d iommufd_vfio_compat_ioas_get_id drivers/iommu/iommufd/iommufd +IOMMUFD_VFIO EXPORT_SYMBOL_GPL 0xb04105ee iommufd_vfio_compat_set_no_iommu drivers/iommu/iommufd/iommufd +IOMMUFD_VFIO EXPORT_SYMBOL_GPL 0xb8ccdade iommufd_vfio_compat_ioas_create drivers/iommu/iommufd/iommufd +IWLWIFI EXPORT_SYMBOL_GPL 0x03fb2e11 iwl_sar_select_profile drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x07af6f54 iwl_acpi_get_eckv drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x07fcfb92 iwl_acpi_get_mcc drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x095d696c __iwl_crit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x0d37357e iwl_dbg_tlv_del_timers drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x0df37b91 iwl_write_direct64 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x12ec5656 iwl_read_eeprom drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x13f0b30c iwl_get_nvm drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1b52e73c iwl_get_shared_mem_conf drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1c20b7e9 iwl_phy_db_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1cde6f6d iwl_sar_geo_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x22788373 iwl_fw_dbg_collect_trig drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x22c92b62 iwl_fw_dbg_stop_restart_recording drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0x2710c362 iwl_dump_desc_assert drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x28d82e66 iwl_acpi_get_ppag_table drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x29cd1400 iwl_parse_mei_nvm_data drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x2bf5b2ca iwl_fw_runtime_init drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x2d36a288 iwl_sar_select_profile drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x28813535 iwl_read_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2c753f45 iwl_write_direct32 drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0x2d4af169 iwl_wait_notification drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x2f403cce iwl_acpi_get_dsm_u32 drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x30acab24 __iwl_crit drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x3175e65f iwl_read_prph_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2db5bde7 iwl_uefi_get_step_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x330a0277 iwl_parse_eeprom_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x3407bef5 iwl_fw_dbg_error_collect drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0x35033c81 iwl_phy_db_free drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0x37956b72 rs_pretty_print_rate drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x37b768da iwl_cmd_groups_verify_sorted drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x380b988e iwl_read_ppag_table drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x3f75b06f iwl_fw_runtime_suspend drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x41feafc7 iwl_read32 drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x461b3274 iwl_parse_nvm_mcc_info drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x38b021ed _iwl_dbg_tlv_time_point drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x40dd9497 iwl_finish_nic_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x45a9509d iwl_get_cmd_string drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0x49e0135d iwl_new_rate_from_v1 drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x4ba5e7c1 iwl_fw_dbg_collect_trig drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x4c106ee3 iwl_sar_geo_init drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x5163b60e iwl_set_bits_mask_prph drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x51cc08f3 iwl_acpi_get_dsm_u8 drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x53058bf8 iwl_opmode_register drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x590ee7a6 iwl_sar_get_wrds_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x4ed272f2 iwl_read32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x540570d7 iwl_opmode_register drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x54901772 iwl_fw_dbg_stop_sync drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5a71e56f iwl_fw_dbg_collect drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5ba25333 iwl_poll_bit drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0x5c52e109 iwl_opmode_deregister drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x5c55ab03 iwl_fwrt_dump_error_logs drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0x5c8fe735 iwl_notification_wait drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x6482a735 iwl_acpi_get_tas drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x6cd6c251 iwl_configure_rxq drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x706eb642 iwl_drv_get_fwname_pre drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x74c49cb5 iwl_parse_nvm_data drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x76052b7d iwl_acpi_get_phy_filters drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x772c357e iwl_acpi_get_pwr_limit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5cc15062 iwl_set_bits_mask_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x62c96d9d iwl_acpi_get_tas drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x64206c00 iwl_read_prph_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x65fb1107 __iwl_warn drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x685dd50f iwl_fw_start_dbg_conf drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x6a11b005 __iwl_err drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x6e5f0ad0 __iwl_dbg drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x733d9663 iwl_set_soc_latency drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0x776221bf iwl_send_phy_db_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x77e4e810 iwl_write_prph_delay drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0x78971d7e iwl_he_is_sgi drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x797283d0 iwl_phy_db_init drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x798a2f10 iwl_write_prph_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x7e077e66 iwl_acpi_get_lari_config_bitmap drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x7fc104e3 iwl_free_fw_paging drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x81317688 iwl_read_eeprom drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x8218777d __iwl_dbg drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x78bf5a4b iwl_fw_runtime_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x81eab1fb iwl_read_external_nvm drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0x828c6838 iwlwifi_mod_params drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x82ec7f62 iwl_read_direct32 drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0x84bb50e1 iwl_rs_pretty_ant drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x85012b44 __iwl_info drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0x874c77de iwl_fw_rate_idx_to_plcp drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x8ff846ea iwl_write32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x890357ab iwl_write64 drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0x9038811a iwl_rfi_guid drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x95b48c75 iwl_write_direct32 drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x97153979 iwl_trans_send_cmd drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x995c554a iwl_poll_bit drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x9b766ec9 iwl_fw_dbg_read_d3_debug_data drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x9c4afaf2 iwl_acpi_get_mcc drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x9df28113 iwl_acpi_is_ppag_approved drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x9e0693f7 iwl_write_prph_delay drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x9e7fbc00 iwl_uefi_get_sgom_table drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0x9e9c93bb iwl_acpi_get_eckv drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x9071d2e5 iwl_fw_dbg_collect_desc drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x90d4a1e1 iwl_sar_get_wrds_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x9205418f iwl_parse_nvm_mcc_info drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x927edda1 iwl_parse_mei_nvm_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x94326d0f iwl_configure_rxq drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x948d3cfd iwl_read_ppag_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x98a4fdb0 iwl_fw_runtime_suspend drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x98c89718 iwl_drv_get_fwname_pre drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xa6ae431f iwl_poll_direct_bit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xa885137f iwl_write32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xa8e6652d iwl_acpi_get_dsm_u8 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xaed614c5 iwl_write_prph64_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb025322c iwl_acpi_get_ppag_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb03bcc73 iwl_write8 drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0xb37b318c iwl_rs_pretty_bw drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xb514a72a iwl_finish_nic_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb47a0e5a iwl_sar_get_wgds_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb6d26f94 iwl_acpi_get_pwr_limit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb6e62e13 iwl_acpi_get_phy_filters drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0xb7d5ffb1 iwl_rate_mcs drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb8a5a963 iwl_fw_runtime_resume drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0xb9270862 iwl_init_notification_wait drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xbc156ef2 iwl_fw_dbg_collect drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xbe51b44b iwl_get_cmd_string drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xc0e60564 __iwl_err drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xc2800db7 _iwl_dbg_tlv_time_point drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xc3d2fcfd iwl_uefi_get_step_table drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xc54c4368 iwl_write8 drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xc709e640 iwl_parse_eeprom_data drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xc9a1e94b __iwl_warn drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xcc18d0c4 iwl_dbg_tlv_del_timers drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xbd5b5390 iwl_clear_bits_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xc15cd4e9 iwl_trans_send_cmd drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xc16f0ec9 iwl_parse_nvm_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xc51f9207 iwl_set_bits_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xc5db8fbe iwl_pnvm_load drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xc8bc7df3 iwl_sar_geo_support drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0xce0c6460 iwl_phy_db_set_section drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xcf74cabb iwl_acpi_is_ppag_approved drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0xd5011f26 iwl_notification_wait_init drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xda7989e9 iwl_clear_bits_prph drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xdbffdf7e iwl_fw_dbg_collect_desc drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xdd1b8fc9 iwl_get_nvm drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xe02a6184 iwl_sar_geo_support drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xe1f7d9d5 iwl_poll_direct_bit drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xe20cbf4a iwl_write_prph64_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xd64191e7 iwl_init_paging drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xdcbbcb0a iwl_cmd_groups_verify_sorted drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe18e7558 iwl_acpi_get_dsm_u32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe2315356 iwl_uefi_get_sgom_table drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0xe472dcaf iwl_abort_notification_waits drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xe5bc8637 iwl_sar_get_wgds_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe80e0fd4 iwl_free_fw_paging drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe8eadb98 iwl_sar_get_ewrd_table drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0xea1b26fc iwl_nvm_fixups drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xebc4438a iwl_set_soc_latency drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xed9dd706 iwl_sar_get_ewrd_table drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xf1806752 iwl_fw_start_dbg_conf drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xf1dca24c iwl_fw_dbg_stop_sync drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xf1e39d73 iwl_pnvm_load drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xf30e7ea3 iwl_fw_dbg_error_collect drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xf4e91eb7 iwl_read_external_nvm drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xec4d10f7 iwl_acpi_get_lari_config_bitmap drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xecf66335 iwl_fwrt_dump_error_logs drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf49bab11 iwl_force_nmi drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf67a3d25 iwl_write_prph_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0xf6e92e53 iwl_remove_notification drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xf8351eeb iwl_get_shared_mem_conf drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xf8be9747 iwl_set_bits_prph drivers/net/wireless/intel/iwlwifi/iwlwifi -IWLWIFI EXPORT_SYMBOL_GPL 0xfbc51604 iwl_init_paging drivers/net/wireless/intel/iwlwifi/iwlwifi IWLWIFI EXPORT_SYMBOL_GPL 0xfc1e6f41 iwl_guid drivers/net/wireless/intel/iwlwifi/iwlwifi -LTC2497 EXPORT_SYMBOL 0x4101491b ltc2497core_probe drivers/iio/adc/ltc2497-core -LTC2497 EXPORT_SYMBOL 0x694984d7 ltc2497core_remove drivers/iio/adc/ltc2497-core -MCB EXPORT_SYMBOL_GPL 0x06ef83c7 mcb_release_bus drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x148ee2f6 mcb_free_dev drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x393a2737 __mcb_register_driver drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x3dc6a4af chameleon_parse_cells drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x51e27661 mcb_alloc_bus drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x52404a45 mcb_alloc_dev drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x6e87739e mcb_bus_add_devices drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x8cd5b425 mcb_get_irq drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0xc301ffbf mcb_request_mem drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0xc99cd3be mcb_unregister_driver drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0xcc90cd84 mcb_get_resource drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0xcede561d mcb_device_register drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0xe8a34c62 mcb_bus_put drivers/mcb/mcb +IWLWIFI EXPORT_SYMBOL_GPL 0xfeb77730 iwl_fw_dbg_read_d3_debug_data drivers/net/wireless/intel/iwlwifi/iwlwifi +LTC2497 EXPORT_SYMBOL 0x271bed55 ltc2497core_probe drivers/iio/adc/ltc2497-core +LTC2497 EXPORT_SYMBOL 0x9880e12f ltc2497core_remove drivers/iio/adc/ltc2497-core +MCB EXPORT_SYMBOL_GPL 0x008b108a mcb_release_bus drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x0cfee931 mcb_bus_put drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x11bdc371 mcb_get_irq drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x1238d824 chameleon_parse_cells drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x12539870 mcb_device_register drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x2db509ef mcb_alloc_bus drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x4bc9feaa mcb_free_dev drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x59852d53 mcb_get_resource drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x646ee241 mcb_request_mem drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7e72b5dd mcb_bus_get drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x830b4029 __mcb_register_driver drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x8ae29ed3 mcb_unregister_driver drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xa80ac57e mcb_alloc_dev drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xe6313939 mcb_bus_add_devices drivers/mcb/mcb MCB EXPORT_SYMBOL_GPL 0xeb2c8905 mcb_release_mem drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0xf5e28c13 mcb_bus_get drivers/mcb/mcb -MCHP_CLK_MPFS EXPORT_SYMBOL_GPL 0x9714256e mpfs_reset_write vmlinux -MCHP_CLK_MPFS EXPORT_SYMBOL_GPL 0xc1435712 mpfs_reset_read vmlinux -MFD_OCELOT EXPORT_SYMBOL 0x9aaa5808 ocelot_chip_reset drivers/mfd/ocelot-soc -MFD_OCELOT EXPORT_SYMBOL 0xdd05e01f ocelot_core_init drivers/mfd/ocelot-soc -MFD_OCELOT_SPI EXPORT_SYMBOL 0xbce30432 ocelot_spi_init_regmap drivers/mfd/ocelot-soc -NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x27057b2b nvme_ctrl_from_file drivers/nvme/host/nvme-core -NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x30e7866f nvme_execute_rq drivers/nvme/host/nvme-core -NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x3ded04ff nvme_command_effects drivers/nvme/host/nvme-core -NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0xbebbcca1 nvme_passthru_start drivers/nvme/host/nvme-core -NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0xc937c286 nvme_find_get_ns drivers/nvme/host/nvme-core -NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0xd5bdf23f nvme_put_ns drivers/nvme/host/nvme-core -NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0xf8c65592 nvme_passthru_end drivers/nvme/host/nvme-core -PECI EXPORT_SYMBOL_GPL 0x05c7beb4 peci_xfer_ep_pci_cfg_local_readw drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0x0a86b628 peci_request_alloc drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0x0e6be1c5 peci_xfer_pci_cfg_local_readw drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0x115f9ce2 peci_xfer_pkg_cfg_readq drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0x13bb7542 peci_xfer_pci_cfg_local_readl drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0x2448acf7 peci_xfer_get_temp drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0x46c6fde9 peci_xfer_ep_pci_cfg_local_readl drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0x51c37ee9 peci_request_data_readw drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0x569c2d5f peci_request_status drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0x5fb026c5 peci_request_data_readq drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0x6719efdd peci_driver_unregister drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0x6d60a8f9 peci_request_temp_read drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0x75177f06 peci_xfer_ep_pci_cfg_readb drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0x76f64efd __peci_driver_register drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0x8167a904 peci_request_free drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0x8a8f9c2c peci_xfer_pkg_cfg_readw drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0xa8e17f2b peci_xfer_pci_cfg_local_readb drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0xab6862aa devm_peci_controller_add drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0xab931516 peci_xfer_ep_pci_cfg_readw drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0xae2bcd7b peci_xfer_ep_mmio32_readl drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0xb754dc77 peci_request_data_readb drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0xbceddfb8 peci_request_data_readl drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0xc5b495b0 peci_xfer_pkg_cfg_readl drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0xd4a73f3a peci_xfer_ep_mmio64_readl drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0xdb43d4a4 peci_xfer_ep_pci_cfg_local_readb drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0xdc9ba2b1 peci_request_dib_read drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0xe892564b peci_xfer_ep_pci_cfg_readl drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0xe9056fe8 peci_xfer_pkg_cfg_readb drivers/peci/peci -PECI EXPORT_SYMBOL_GPL 0xfc9995f1 peci_xfer_get_dib drivers/peci/peci -PECI_CPU EXPORT_SYMBOL_GPL 0x31b538c9 peci_temp_read drivers/peci/peci-cpu -PECI_CPU EXPORT_SYMBOL_GPL 0x47982cd7 peci_pcs_read drivers/peci/peci-cpu -PECI_CPU EXPORT_SYMBOL_GPL 0x4c6ed350 peci_ep_pci_local_read drivers/peci/peci-cpu -PECI_CPU EXPORT_SYMBOL_GPL 0x7a082723 peci_pci_local_read drivers/peci/peci-cpu -PECI_CPU EXPORT_SYMBOL_GPL 0x853620c7 peci_mmio_read drivers/peci/peci-cpu -PMBUS EXPORT_SYMBOL_GPL 0x017aed8f pmbus_set_page drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0x1b2fdc87 pmbus_read_byte_data drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0x352f2c9e pmbus_check_byte_register drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0x47db2a02 pmbus_lock_interruptible drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0x4a057d8f pmbus_write_byte drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0x6058fdb1 pmbus_write_byte_data drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0x6e6401b4 pmbus_do_probe drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0x83505d4f pmbus_read_word_data drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0x9d25e4d5 pmbus_clear_cache drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0xa09f7165 pmbus_set_update drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0xae7b0360 pmbus_update_byte_data drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0xb81b3b8c pmbus_regulator_ops drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0xc5c8c559 pmbus_write_word_data drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0xce01633b pmbus_clear_faults drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0xd5673946 pmbus_get_fan_rate_cached drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0xd6169215 pmbus_update_fan drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0xd79f1254 pmbus_unlock drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0xe45d70d2 pmbus_get_debugfs_dir drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0xe95bf8aa pmbus_get_driver_info drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0xf7952301 pmbus_get_fan_rate_device drivers/hwmon/pmbus/pmbus_core -PMBUS EXPORT_SYMBOL_GPL 0xfeb4769d pmbus_check_word_register drivers/hwmon/pmbus/pmbus_core -SEMTECH_PROX EXPORT_SYMBOL_GPL 0x03e1c8f2 sx_common_probe drivers/iio/proximity/sx_common -SEMTECH_PROX EXPORT_SYMBOL_GPL 0x6d6bf461 sx_common_write_event_config drivers/iio/proximity/sx_common +MCHP_CLK_MPFS EXPORT_SYMBOL_GPL 0xae88a62d mpfs_reset_write vmlinux +MCHP_CLK_MPFS EXPORT_SYMBOL_GPL 0xb5ba8572 mpfs_reset_read vmlinux +MFD_OCELOT EXPORT_SYMBOL 0xb8868fbc ocelot_core_init drivers/mfd/ocelot-soc +MFD_OCELOT EXPORT_SYMBOL 0xf7722926 ocelot_chip_reset drivers/mfd/ocelot-soc +MFD_OCELOT_SPI EXPORT_SYMBOL 0xb69d51ff ocelot_spi_init_regmap drivers/mfd/ocelot-soc +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x153775ac nvme_find_get_ns drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x1c14c628 nvme_passthru_start drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x335c04f8 nvme_execute_rq drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x3cce3efd nvme_put_ns drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x4c83f54c nvme_ctrl_from_file drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x9acfa746 nvme_passthru_end drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0xbb72ac12 nvme_command_effects drivers/nvme/host/nvme-core +PECI EXPORT_SYMBOL_GPL 0x047e4041 peci_xfer_ep_pci_cfg_local_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x06e9a46e peci_request_data_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x108f8ecf __peci_driver_register drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x1a7ae980 peci_xfer_pkg_cfg_readq drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x1ba6b78a peci_request_temp_read drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x2905d7f2 peci_xfer_ep_pci_cfg_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x2b5f8410 peci_xfer_pci_cfg_local_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x2f87276f peci_request_data_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x368f1097 peci_xfer_pci_cfg_local_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x38a137d1 devm_peci_controller_add drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x438befaf peci_request_free drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x477f031c peci_xfer_ep_pci_cfg_local_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x50c2a660 peci_xfer_get_temp drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x6603c20c peci_request_alloc drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x6a0494af peci_xfer_ep_pci_cfg_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x81aae94e peci_xfer_pkg_cfg_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x8649a166 peci_xfer_ep_mmio64_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x8dd51afe peci_xfer_pci_cfg_local_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xb480febf peci_xfer_ep_pci_cfg_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xc7419872 peci_xfer_get_dib drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xcce88153 peci_request_dib_read drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xce91e0d2 peci_xfer_pkg_cfg_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xd185b774 peci_request_data_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xdafa2a51 peci_xfer_ep_pci_cfg_local_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xe2201a8a peci_xfer_pkg_cfg_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xed4d863c peci_request_status drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xf3e3b727 peci_request_data_readq drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xf6cbd0b1 peci_driver_unregister drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xfcc55327 peci_xfer_ep_mmio32_readl drivers/peci/peci +PECI_CPU EXPORT_SYMBOL_GPL 0x4cda1235 peci_ep_pci_local_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0x948c3aa1 peci_pcs_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0xd9f3ce06 peci_temp_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0xe87618ab peci_pci_local_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0xfc44a9e3 peci_mmio_read drivers/peci/peci-cpu +PMBUS EXPORT_SYMBOL_GPL 0x1a30707c pmbus_lock_interruptible drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x22014a04 pmbus_get_fan_rate_cached drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x2b7db899 pmbus_check_word_register drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x42274c02 pmbus_write_byte drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x4903d611 pmbus_write_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x50877ba7 pmbus_read_word_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x51424f44 pmbus_do_probe drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x52d39aab pmbus_update_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x5ab31425 pmbus_update_fan drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x6c48fd36 pmbus_get_fan_rate_device drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x8283cb0c pmbus_get_debugfs_dir drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x947e9c11 pmbus_set_page drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x99bb5c1b pmbus_read_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xa83c9fb8 pmbus_check_byte_register drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xaa0ac3c8 pmbus_clear_faults drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xaca6d062 pmbus_unlock drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xb5da0cad pmbus_get_driver_info drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xbb1359e2 pmbus_regulator_ops drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xc0221cbb pmbus_clear_cache drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xc96b13de pmbus_set_update drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xcb31c4c5 pmbus_write_word_data drivers/hwmon/pmbus/pmbus_core +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x17d351b0 sx_common_write_event_config drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x1dd3dbaa sx_common_get_raw_register_config drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x3decf714 sx_common_read_proximity drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x4696444b sx_common_read_event_config drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x4a9c7b88 sx_common_probe drivers/iio/proximity/sx_common SEMTECH_PROX EXPORT_SYMBOL_GPL 0xa103ce02 sx_common_events drivers/iio/proximity/sx_common -SEMTECH_PROX EXPORT_SYMBOL_GPL 0xbeae12bf sx_common_get_raw_register_config drivers/iio/proximity/sx_common -SEMTECH_PROX EXPORT_SYMBOL_GPL 0xddcee39b sx_common_read_event_config drivers/iio/proximity/sx_common -SEMTECH_PROX EXPORT_SYMBOL_GPL 0xdf4597fc sx_common_read_proximity drivers/iio/proximity/sx_common -SERIAL_8250_PCI EXPORT_SYMBOL_GPL 0x150bf545 serial8250_pci_setup_port vmlinux -SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0x0246e6bc hda_cs_dsp_write_ctl sound/pci/hda/snd-hda-cs-dsp-ctls +SERIAL_8250_PCI EXPORT_SYMBOL_GPL 0x8317a9f4 serial8250_pci_setup_port vmlinux +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0x2611722b hda_cs_dsp_read_ctl sound/pci/hda/snd-hda-cs-dsp-ctls SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0x2b707546 hda_cs_dsp_fw_ids sound/pci/hda/snd-hda-cs-dsp-ctls -SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0x4716ab40 hda_cs_dsp_control_remove sound/pci/hda/snd-hda-cs-dsp-ctls -SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0x77bb8c7b hda_cs_dsp_add_controls sound/pci/hda/snd-hda-cs-dsp-ctls -SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0xc9983ed8 hda_cs_dsp_read_ctl sound/pci/hda/snd-hda-cs-dsp-ctls -SND_HDA_SCODEC_CS35L41 EXPORT_SYMBOL_GPL 0x31a7b597 cs35l41_hda_pm_ops sound/pci/hda/snd-hda-scodec-cs35l41 -SND_HDA_SCODEC_CS35L41 EXPORT_SYMBOL_GPL 0x7a27eef9 cs35l41_hda_remove sound/pci/hda/snd-hda-scodec-cs35l41 -SND_HDA_SCODEC_CS35L41 EXPORT_SYMBOL_GPL 0x839f3be9 cs35l41_hda_probe sound/pci/hda/snd-hda-scodec-cs35l41 +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0x9d9f7ce6 hda_cs_dsp_control_remove sound/pci/hda/snd-hda-cs-dsp-ctls +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0xe2be0c9a hda_cs_dsp_write_ctl sound/pci/hda/snd-hda-cs-dsp-ctls +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0xf00960bb hda_cs_dsp_add_controls sound/pci/hda/snd-hda-cs-dsp-ctls +SND_HDA_SCODEC_CS35L41 EXPORT_SYMBOL_GPL 0x11229cca cs35l41_hda_pm_ops sound/pci/hda/snd-hda-scodec-cs35l41 +SND_HDA_SCODEC_CS35L41 EXPORT_SYMBOL_GPL 0xbc139c5a cs35l41_hda_remove sound/pci/hda/snd-hda-scodec-cs35l41 +SND_HDA_SCODEC_CS35L41 EXPORT_SYMBOL_GPL 0xfebcaa3c cs35l41_hda_probe sound/pci/hda/snd-hda-scodec-cs35l41 SND_INTEL_SOUNDWIRE_ACPI EXPORT_SYMBOL 0xbb4f9d1f sdw_intel_acpi_scan sound/hda/snd-intel-sdw-acpi -SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x15017549 cs35l45_pm_ops sound/soc/codecs/snd-soc-cs35l45 SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x3431c8ad cs35l45_get_clk_freq_id sound/soc/codecs/snd-soc-cs35l45 -SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x57119c32 cs35l45_apply_patch sound/soc/codecs/snd-soc-cs35l45 -SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x84107a62 cs35l45_spi_regmap sound/soc/codecs/snd-soc-cs35l45 -SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0xc728bb2e cs35l45_i2c_regmap sound/soc/codecs/snd-soc-cs35l45 -SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0xc9db244d cs35l45_remove sound/soc/codecs/snd-soc-cs35l45 -SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0xf17af31c cs35l45_probe sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x3a2f9a4f cs35l45_pm_ops sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x43950b6f cs35l45_probe sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0xa318a4c1 cs35l45_i2c_regmap sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0xe020658d cs35l45_spi_regmap sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0xe8ecfc92 cs35l45_apply_patch sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0xfe4d696c cs35l45_remove sound/soc/codecs/snd-soc-cs35l45 SND_SOC_CS35L56_CORE EXPORT_SYMBOL_GPL 0x05482545 cs35l56_irq sound/soc/codecs/snd-soc-cs35l56 -SND_SOC_CS35L56_CORE EXPORT_SYMBOL_GPL 0x467ab411 cs35l56_common_probe sound/soc/codecs/snd-soc-cs35l56 -SND_SOC_CS35L56_CORE EXPORT_SYMBOL_GPL 0x5b26b2b6 cs35l56_remove sound/soc/codecs/snd-soc-cs35l56 -SND_SOC_CS35L56_CORE EXPORT_SYMBOL_GPL 0x5be964df cs35l56_init sound/soc/codecs/snd-soc-cs35l56 -SND_SOC_CS35L56_CORE EXPORT_SYMBOL_GPL 0x7b7f6e14 cs35l56_pm_ops_i2c_spi sound/soc/codecs/snd-soc-cs35l56 -SND_SOC_CS35L56_CORE EXPORT_SYMBOL_GPL 0x837cee14 cs35l56_irq_request sound/soc/codecs/snd-soc-cs35l56 -SND_SOC_CS35L56_CORE EXPORT_SYMBOL_GPL 0x9e72cc3a cs35l56_runtime_suspend sound/soc/codecs/snd-soc-cs35l56 -SND_SOC_CS35L56_CORE EXPORT_SYMBOL_GPL 0xa7011396 cs35l56_runtime_resume_common sound/soc/codecs/snd-soc-cs35l56 +SND_SOC_CS35L56_CORE EXPORT_SYMBOL_GPL 0x11a7bb9e cs35l56_remove sound/soc/codecs/snd-soc-cs35l56 +SND_SOC_CS35L56_CORE EXPORT_SYMBOL_GPL 0x2d63cb49 cs35l56_common_probe sound/soc/codecs/snd-soc-cs35l56 +SND_SOC_CS35L56_CORE EXPORT_SYMBOL_GPL 0x36cf6dfe cs35l56_pm_ops_i2c_spi sound/soc/codecs/snd-soc-cs35l56 +SND_SOC_CS35L56_CORE EXPORT_SYMBOL_GPL 0x831c86e7 cs35l56_init sound/soc/codecs/snd-soc-cs35l56 +SND_SOC_CS35L56_CORE EXPORT_SYMBOL_GPL 0x8d2fc73b cs35l56_irq_request sound/soc/codecs/snd-soc-cs35l56 +SND_SOC_CS35L56_CORE EXPORT_SYMBOL_GPL 0xb63c1fb2 cs35l56_runtime_suspend sound/soc/codecs/snd-soc-cs35l56 +SND_SOC_CS35L56_CORE EXPORT_SYMBOL_GPL 0xef19eae8 cs35l56_runtime_resume_common sound/soc/codecs/snd-soc-cs35l56 SND_SOC_CS35L56_SHARED EXPORT_SYMBOL_GPL 0x05c2529e cs35l56_tx_input_values sound/soc/codecs/snd-soc-cs35l56-shared -SND_SOC_CS35L56_SHARED EXPORT_SYMBOL_GPL 0x1bd3e1d0 cs35l56_regmap_spi sound/soc/codecs/snd-soc-cs35l56-shared SND_SOC_CS35L56_SHARED EXPORT_SYMBOL_GPL 0x312c0e0f cs35l56_dsp1_regions sound/soc/codecs/snd-soc-cs35l56-shared +SND_SOC_CS35L56_SHARED EXPORT_SYMBOL_GPL 0x47f4df07 cs35l56_regmap_spi sound/soc/codecs/snd-soc-cs35l56-shared SND_SOC_CS35L56_SHARED EXPORT_SYMBOL_GPL 0x64e759e4 cs35l56_tx_input_texts sound/soc/codecs/snd-soc-cs35l56-shared SND_SOC_CS35L56_SHARED EXPORT_SYMBOL_GPL 0x88762c92 cs35l56_get_bclk_freq_id sound/soc/codecs/snd-soc-cs35l56-shared -SND_SOC_CS35L56_SHARED EXPORT_SYMBOL_GPL 0xad86e70f cs35l56_regmap_i2c sound/soc/codecs/snd-soc-cs35l56-shared -SND_SOC_CS35L56_SHARED EXPORT_SYMBOL_GPL 0xbc12c8ea cs35l56_reread_firmware_registers sound/soc/codecs/snd-soc-cs35l56-shared +SND_SOC_CS35L56_SHARED EXPORT_SYMBOL_GPL 0x889aeb74 cs35l56_regmap_sdw sound/soc/codecs/snd-soc-cs35l56-shared +SND_SOC_CS35L56_SHARED EXPORT_SYMBOL_GPL 0xbc37c383 cs35l56_reread_firmware_registers sound/soc/codecs/snd-soc-cs35l56-shared SND_SOC_CS35L56_SHARED EXPORT_SYMBOL_GPL 0xcd5438ad cs35l56_fill_supply_names sound/soc/codecs/snd-soc-cs35l56-shared -SND_SOC_CS35L56_SHARED EXPORT_SYMBOL_GPL 0xd4bdd5a3 cs35l56_regmap_sdw sound/soc/codecs/snd-soc-cs35l56-shared -SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0x0a16bc32 cs42l42_dai sound/soc/codecs/snd-soc-cs42l42 -SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0x0a4ad9cd cs42l42_src_config sound/soc/codecs/snd-soc-cs42l42 -SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0x3b4bf3eb cs42l42_pll_config sound/soc/codecs/snd-soc-cs42l42 -SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0x4acd5b02 cs42l42_common_probe sound/soc/codecs/snd-soc-cs42l42 -SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0x590358b5 cs42l42_regmap sound/soc/codecs/snd-soc-cs42l42 -SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0x61cfdecb cs42l42_init sound/soc/codecs/snd-soc-cs42l42 -SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0x72a20613 cs42l42_common_remove sound/soc/codecs/snd-soc-cs42l42 -SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0x7aea066e cs42l42_resume sound/soc/codecs/snd-soc-cs42l42 -SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0x8f1fab76 cs42l42_mute_stream sound/soc/codecs/snd-soc-cs42l42 -SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0x93ca3f84 cs42l42_readable_register sound/soc/codecs/snd-soc-cs42l42 +SND_SOC_CS35L56_SHARED EXPORT_SYMBOL_GPL 0xf1a1d9d8 cs35l56_regmap_i2c sound/soc/codecs/snd-soc-cs35l56-shared +SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0x02a621fd cs42l42_resume_restore sound/soc/codecs/snd-soc-cs42l42 +SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0x091b66c5 cs42l42_init sound/soc/codecs/snd-soc-cs42l42 +SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0x287ce2e1 cs42l42_src_config sound/soc/codecs/snd-soc-cs42l42 +SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0x2985bd55 cs42l42_mute_stream sound/soc/codecs/snd-soc-cs42l42 +SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0x619ab668 cs42l42_common_remove sound/soc/codecs/snd-soc-cs42l42 +SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0x7b32319a cs42l42_soc_component sound/soc/codecs/snd-soc-cs42l42 +SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0x8cdd35f4 cs42l42_dai sound/soc/codecs/snd-soc-cs42l42 +SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0x97e11924 cs42l42_regmap sound/soc/codecs/snd-soc-cs42l42 SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0xae4be5c4 cs42l42_irq_thread sound/soc/codecs/snd-soc-cs42l42 +SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0xaf1ab08b cs42l42_pll_config sound/soc/codecs/snd-soc-cs42l42 +SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0xb4e758bb cs42l42_common_probe sound/soc/codecs/snd-soc-cs42l42 SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0xc053efa9 cs42l42_page_range sound/soc/codecs/snd-soc-cs42l42 -SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0xd4d6ac24 cs42l42_soc_component sound/soc/codecs/snd-soc-cs42l42 -SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0xd53eb50c cs42l42_suspend sound/soc/codecs/snd-soc-cs42l42 -SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0xf6c80564 cs42l42_resume_restore sound/soc/codecs/snd-soc-cs42l42 -SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0xfdcf7b46 cs42l42_volatile_register sound/soc/codecs/snd-soc-cs42l42 +SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0xc486bfe2 cs42l42_readable_register sound/soc/codecs/snd-soc-cs42l42 +SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0xcc0e5b1f cs42l42_resume sound/soc/codecs/snd-soc-cs42l42 +SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0xd74b34eb cs42l42_volatile_register sound/soc/codecs/snd-soc-cs42l42 +SND_SOC_CS42L42_CORE EXPORT_SYMBOL_GPL 0xf8811bed cs42l42_suspend sound/soc/codecs/snd-soc-cs42l42 SND_SOC_TAS2781_FMWLIB EXPORT_SYMBOL_GPL 0x09351149 tasdevice_prmg_calibdata_load sound/soc/codecs/snd-soc-tas2781-fmwlib SND_SOC_TAS2781_FMWLIB EXPORT_SYMBOL_GPL 0x1a949c7c tasdevice_select_cfg_blk sound/soc/codecs/snd-soc-tas2781-fmwlib SND_SOC_TAS2781_FMWLIB EXPORT_SYMBOL_GPL 0x1ab9b7d9 tasdevice_select_tuningprm_cfg sound/soc/codecs/snd-soc-tas2781-fmwlib @@ -26012,29 +26036,27 @@ SND_SOC_TAS2781_FMWLIB EXPORT_SYMBOL_GPL 0xa7d17083 tasdevice_rca_parser sound/soc/codecs/snd-soc-tas2781-fmwlib SND_SOC_TAS2781_FMWLIB EXPORT_SYMBOL_GPL 0xfa72134b tasdevice_dsp_parser sound/soc/codecs/snd-soc-tas2781-fmwlib SND_SOC_TAS2781_FMWLIB EXPORT_SYMBOL_GPL 0xfe3a6722 tasdevice_prmg_load sound/soc/codecs/snd-soc-tas2781-fmwlib -SOUNDWIRE_INTEL EXPORT_SYMBOL 0x20c697f7 sdw_intel_lnl_hw_ops drivers/soundwire/soundwire-intel -SOUNDWIRE_INTEL EXPORT_SYMBOL 0xb33e6331 sdw_intel_cnl_hw_ops drivers/soundwire/soundwire-intel -SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x27d26773 sdw_intel_exit drivers/soundwire/soundwire-intel -SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x49526f62 sdw_intel_startup drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL EXPORT_SYMBOL 0x478cfab4 sdw_intel_cnl_hw_ops drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL EXPORT_SYMBOL 0xd4740e72 sdw_intel_lnl_hw_ops drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x68f46af0 sdw_intel_startup drivers/soundwire/soundwire-intel SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0xaa52eba1 sdw_intel_thread drivers/soundwire/soundwire-intel -SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0xdf1e1329 sdw_intel_process_wakeen_event drivers/soundwire/soundwire-intel -SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0xe229ef26 sdw_intel_probe drivers/soundwire/soundwire-intel -SPI_DW_CORE EXPORT_SYMBOL_GPL 0x53c45433 dw_spi_dma_setup_generic drivers/spi/spi-dw -SPI_DW_CORE EXPORT_SYMBOL_GPL 0x57d02165 dw_spi_check_status drivers/spi/spi-dw -SPI_DW_CORE EXPORT_SYMBOL_GPL 0x5d6e5b97 dw_spi_update_config drivers/spi/spi-dw -SPI_DW_CORE EXPORT_SYMBOL_GPL 0x8d24af39 dw_spi_resume_host drivers/spi/spi-dw -SPI_DW_CORE EXPORT_SYMBOL_GPL 0x934f0fd7 dw_spi_set_cs drivers/spi/spi-dw -SPI_DW_CORE EXPORT_SYMBOL_GPL 0xb657858b dw_spi_remove_host drivers/spi/spi-dw -SPI_DW_CORE EXPORT_SYMBOL_GPL 0xda1ad25b dw_spi_add_host drivers/spi/spi-dw -SPI_DW_CORE EXPORT_SYMBOL_GPL 0xeedd9608 dw_spi_suspend_host drivers/spi/spi-dw -SPI_DW_CORE EXPORT_SYMBOL_GPL 0xffef689c dw_spi_dma_setup_mfld drivers/spi/spi-dw +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0xb7a31866 sdw_intel_exit drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0xbf46022d sdw_intel_process_wakeen_event drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0xddaa569d sdw_intel_probe drivers/soundwire/soundwire-intel +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x09696ef0 dw_spi_add_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x0d08dd8a dw_spi_dma_setup_generic drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x42326bca dw_spi_update_config drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x582b753e dw_spi_set_cs drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x5c98c47d dw_spi_dma_setup_mfld drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x7ae052eb dw_spi_resume_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x7ed543ca dw_spi_check_status drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0xcf744627 dw_spi_suspend_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0xd8dd1a86 dw_spi_remove_host drivers/spi/spi-dw SUNXI_CCU EXPORT_SYMBOL_GPL 0x0ea9a406 ccu_frac_helper_has_rate vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x14900ffd ccu_mux_helper_set_parent vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x1f23b840 ccu_nkmp_ops vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x29bb5431 ccu_sdm_helper_has_rate vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x325feeec ccu_sdm_helper_enable vmlinux -SUNXI_CCU EXPORT_SYMBOL_GPL 0x3d5bf76c ccu_helper_wait_for_lock vmlinux -SUNXI_CCU EXPORT_SYMBOL_GPL 0x56115204 devm_sunxi_ccu_probe vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x590d8afc ccu_frac_helper_set_rate vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x5cddbcc6 ccu_nm_ops vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x61abda39 ccu_mux_ops vmlinux @@ -26042,13 +26064,16 @@ SUNXI_CCU EXPORT_SYMBOL_GPL 0x64301a22 ccu_frac_helper_is_enabled vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x6668446b ccu_phase_ops vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x6d4eefa6 ccu_sdm_helper_disable vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x6fafa480 ccu_pll_notifier_register vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x7279ee3e ccu_mult_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x752ee17d ccu_helper_wait_for_lock vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x831d58e6 ccu_gate_ops vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x85deb49d ccu_frac_helper_read_rate vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x88d7dfcd ccu_gate_helper_enable vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x8a845fdb ccu_nk_ops vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x8bdea961 ccu_nkm_ops vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x8dedb2da ccu_frac_helper_disable vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x8e60bd33 devm_sunxi_ccu_probe vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x96ba8ba0 ccu_sdm_helper_get_factors vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x976fa968 ccu_mp_mmc_ops vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0x98224ec7 ccu_reset_ops vmlinux @@ -26060,32 +26085,31 @@ -SUNXI_CCU EXPORT_SYMBOL_GPL 0xca077e47 ccu_pll_notifier_register vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0xd27db71e ccu_mp_ops vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0xe3cacad3 ccu_gate_helper_is_enabled vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0xe49056d8 ccu_div_ops vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0xea8c8121 ccu_gate_helper_disable vmlinux SUNXI_CCU EXPORT_SYMBOL_GPL 0xf6766546 ccu_mux_helper_get_parent vmlinux TEST_FIRMWARE EXPORT_SYMBOL_GPL 0x3dce036c firmware_request_builtin vmlinux -USB_STORAGE EXPORT_SYMBOL_GPL 0x04310189 usb_stor_disconnect drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x0b5b2198 usb_stor_host_template_init drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x130ede49 usb_stor_clear_halt drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x13372549 usb_stor_adjust_quirks drivers/usb/storage/usb-storage USB_STORAGE EXPORT_SYMBOL_GPL 0x1bc3edc2 usb_stor_sense_invalidCDB drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x285acd84 usb_stor_probe2 drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x3dad58b8 usb_stor_control_msg drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x476dcc11 usb_stor_bulk_srb drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x4841faaf usb_stor_pre_reset drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x4ebcd72f usb_stor_Bulk_reset drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x5fc27eb2 usb_stor_bulk_transfer_buf drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x69db8bce usb_stor_CB_reset drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x729f196e usb_stor_bulk_transfer_sg drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x72f6d057 usb_stor_ctrl_transfer drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x87d9f5f7 usb_stor_CB_transport drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x95a1be9a usb_stor_transparent_scsi_command drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x97bfeb52 usb_stor_suspend drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0xb1c8fc8f usb_stor_set_xfer_buf drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0xb48314e1 usb_stor_reset_resume drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0xb4afe249 usb_stor_probe1 drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0xb5bde93e usb_stor_post_reset drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0xe085288a usb_stor_access_xfer_buf drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0xefc1e838 usb_stor_resume drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0xf4f103a0 fill_inquiry_response drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0xfa178783 usb_stor_Bulk_transport drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x202ffc1b usb_stor_post_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x342c5ca2 usb_stor_set_xfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x3f79598c usb_stor_bulk_transfer_sg drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x44b34e0e usb_stor_clear_halt drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x4b2244c7 usb_stor_bulk_srb drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x4dac8178 usb_stor_Bulk_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x5bfb519b usb_stor_host_template_init drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x6cb61f2c fill_inquiry_response drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x6d8ac533 usb_stor_access_xfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x6e00e428 usb_stor_bulk_transfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7357ed2c usb_stor_CB_transport drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7b78c4fe usb_stor_adjust_quirks drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x81581519 usb_stor_transparent_scsi_command drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x819b114b usb_stor_pre_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x8ad0c472 usb_stor_suspend drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x8db2e85f usb_stor_control_msg drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x9bc5022d usb_stor_probe2 drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x9ce1f160 usb_stor_Bulk_transport drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xb6aa5e61 usb_stor_CB_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xc557249c usb_stor_ctrl_transfer drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xc9457a5c usb_stor_reset_resume drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xe891c00a usb_stor_probe1 drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xea16842b usb_stor_disconnect drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xfb013b4e usb_stor_resume drivers/usb/storage/usb-storage diff -u linux-riscv-6.5.0/debian.riscv/abi/riscv64/generic.modules linux-riscv-6.5.0/debian.riscv/abi/riscv64/generic.modules --- linux-riscv-6.5.0/debian.riscv/abi/riscv64/generic.modules +++ linux-riscv-6.5.0/debian.riscv/abi/riscv64/generic.modules @@ -203,6 +203,8 @@ adl_pci6208 adl_pci7x3x adl_pci8164 +adl_pci9111 +adl_pci9118 adm1025 adm1026 adm1029 @@ -224,6 +226,7 @@ adp5589-keys adp8860_bl adp8870_bl +adq12b adrf6780 ads7828 ads7846 @@ -251,10 +254,12 @@ adv7511 adv7604 adv7842 +adv_pci1710 adv_pci1720 adv_pci1723 adv_pci1724 adv_pci1760 +adv_pci_dio advansys adxl313_core adxl313_i2c @@ -293,6 +298,8 @@ aic79xx aic7xxx aic94xx +aio_aio12_8 +aio_iiro_16 aiptek aircable airo @@ -332,7 +339,14 @@ amdgpu amdxcp amlogic-gxl-crypto +amplc_dio200 +amplc_dio200_common +amplc_dio200_pci +amplc_pc236 amplc_pc236_common +amplc_pc263 +amplc_pci224 +amplc_pci230 amplc_pci236 amplc_pci263 ams-iaq-core @@ -652,6 +666,7 @@ budget-core budget-patch c67x00 +c6xdigio c_can c_can_pci c_can_platform @@ -688,8 +703,10 @@ cavium_ptp cb710 cb710-mmc +cb_pcidas cb_pcidas64 cb_pcidda +cb_pcimdas cb_pcimdda cc10001_adc cc2520 @@ -821,6 +838,7 @@ com90io com90xx comedi +comedi_8254 comedi_8255 comedi_bond comedi_example_test @@ -959,7 +977,16 @@ da9150-gpadc da9210-regulator da9211-regulator +dac02 daqboard2000 +das08 +das08_isa +das08_pci +das16 +das16m1 +das1800 +das6402 +das800 davicom dax_cxl db9 @@ -1048,6 +1075,7 @@ dmard10 dme1737 dmfe +dmm32at dmx3191d dnet dp83640 @@ -1096,6 +1124,12 @@ dst dst_ca dstr +dt2801 +dt2811 +dt2814 +dt2815 +dt2817 +dt282x dt3000 dt3155 dt9812 @@ -1384,6 +1418,7 @@ fit2 fit3 fjes +fl512 flexcan fm10k fm801-gp @@ -2000,6 +2035,7 @@ igc igorplugusb iguanair +ii_pci20kc iio-mux iio-rescale iio-trig-hrtimer @@ -2843,6 +2879,7 @@ mdio-regmap mdio-sun4i mdio-thunder +me4000 me_daq mediatek-ge megachips-stdpxxxx-ge-b850v3-fw @@ -2939,6 +2976,7 @@ mp5416 mp8859 mp886x +mpc624 mpfs mpfs-rng mpfs-sys-controller @@ -3064,6 +3102,7 @@ mtk_t7xx mtouch multipath +multiq3 musb_hdrc mux-adg792a mux-adgs1408 @@ -3255,6 +3294,13 @@ ni_65xx ni_660x ni_670x +ni_at_a2150 +ni_at_ao +ni_atmio +ni_atmio16d +ni_labpc +ni_labpc_common +ni_labpc_pci ni_pcidio ni_pcimio ni_routes_test @@ -3618,6 +3664,18 @@ pci-stub pci200syn pcips2 +pcl711 +pcl724 +pcl726 +pcl730 +pcl812 +pcl816 +pcl818 +pcm3724 +pcmad +pcmda12 +pcmmio +pcmuio pcnet32 pcrypt pcs-lynx @@ -4312,6 +4370,9 @@ rtc-wm8350 rtc-x1205 rtc-zynqmp +rtd520 +rti800 +rti802 rtl2830 rtl2832 rtl2832_sdr @@ -4404,6 +4465,7 @@ s3fwrn5 s3fwrn5_i2c s3fwrn82_uart +s526 s5c73m3 s5h1409 s5h1411 diff -u linux-riscv-6.5.0/debian.riscv/abi/version linux-riscv-6.5.0/debian.riscv/abi/version --- linux-riscv-6.5.0/debian.riscv/abi/version +++ linux-riscv-6.5.0/debian.riscv/abi/version @@ -1 +1 @@ -6.5.0-15.15.1 +6.5.0-21.21.1 diff -u linux-riscv-6.5.0/debian.riscv/changelog linux-riscv-6.5.0/debian.riscv/changelog --- linux-riscv-6.5.0/debian.riscv/changelog +++ linux-riscv-6.5.0/debian.riscv/changelog @@ -1,3 +1,2098 @@ +linux-riscv (6.5.0-25.25.1) mantic; urgency=medium + + * mantic/linux-riscv: 6.5.0-25.25.1 -proposed tracker (LP: #2052033) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/2024.02.05) + + [ Ubuntu: 6.5.0-25.25 ] + + * mantic/linux: 6.5.0-25.25 -proposed tracker (LP: #2052615) + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/2024.02.05) + * [SRU][22.04.04]: mpi3mr driver update (LP: #2045233) + - scsi: mpi3mr: Invoke soft reset upon TSU or event ack time out + - scsi: mpi3mr: Update MPI Headers to version 3.00.28 + - scsi: mpi3mr: Add support for more than 1MB I/O + - scsi: mpi3mr: WRITE SAME implementation + - scsi: mpi3mr: Enhance handling of devices removed after controller reset + - scsi: mpi3mr: Update driver version to 8.5.0.0.0 + - scsi: mpi3mr: Split off bus_reset function from host_reset + - scsi: mpi3mr: Add support for SAS5116 PCI IDs + - scsi: mpi3mr: Add PCI checks where SAS5116 diverges from SAS4116 + - scsi: mpi3mr: Increase maximum number of PHYs to 64 from 32 + - scsi: mpi3mr: Add support for status reply descriptor + - scsi: mpi3mr: driver version upgrade to 8.5.0.0.50 + - scsi: mpi3mr: Refresh sdev queue depth after controller reset + - scsi: mpi3mr: Clean up block devices post controller reset + - scsi: mpi3mr: Block PEL Enable Command on Controller Reset and Unrecoverable + State + - scsi: mpi3mr: Fetch correct device dev handle for status reply descriptor + - scsi: mpi3mr: Support for preallocation of SGL BSG data buffers part-1 + - scsi: mpi3mr: Support for preallocation of SGL BSG data buffers part-2 + - scsi: mpi3mr: Support for preallocation of SGL BSG data buffers part-3 + - scsi: mpi3mr: Update driver version to 8.5.1.0.0 + * The display becomes frozen after some time when a HDMI device is connected. + (LP: #2049027) + - drm/i915/dmc: Don't enable any pipe DMC events + * Audio balancing setting doesn't work with the cirrus codec (LP: #2051050) + - ALSA: hda/cs8409: Suppress vmaster control for Dolphin models + * partproke is broken on empty loopback device (LP: #2049689) + - block: Move checking GENHD_FL_NO_PART to bdev_add_partition() + * CVE-2023-51780 + - atm: Fix Use-After-Free in do_vcc_ioctl + * CVE-2023-6915 + - ida: Fix crash in ida_free when the bitmap is empty + * Update Ubuntu.md (LP: #2051176) + - [Packaging] update Ubuntu.md + * test_021_aslr_dapper_libs from ubuntu_qrt_kernel_security failed on K-5.19 / + J-OEM-6.1 / J-6.2 AMD64 (LP: #1983357) + - [Config]: set ARCH_MMAP_RND_{COMPAT_, }BITS to the maximum + * Intel E810-XXV - NETDEV WATCHDOG: (ice): transmit queue timed out + (LP: #2036239) + - ice: Add driver support for firmware changes for LAG + - ice: alter feature support check for SRIOV and LAG + * Mantic update: upstream stable patchset 2024-01-29 (LP: #2051584) + - Upstream stable to v6.1.67, v6.6.6 + - vdpa/mlx5: preserve CVQ vringh index + - hrtimers: Push pending hrtimers away from outgoing CPU earlier + - i2c: designware: Fix corrupted memory seen in the ISR + - netfilter: ipset: fix race condition between swap/destroy and kernel side + add/del/test + - zstd: Fix array-index-out-of-bounds UBSAN warning + - tg3: Move the [rt]x_dropped counters to tg3_napi + - tg3: Increment tx_dropped in tg3_tso_bug() + - kconfig: fix memory leak from range properties + - drm/amdgpu: correct chunk_ptr to a pointer to chunk. + - x86: Introduce ia32_enabled() + - x86/coco: Disable 32-bit emulation by default on TDX and SEV + - x86/entry: Convert INT 0x80 emulation to IDTENTRY + - x86/entry: Do not allow external 0x80 interrupts + - x86/tdx: Allow 32-bit emulation by default + - dt: dt-extract-compatibles: Handle cfile arguments in generator function + - dt: dt-extract-compatibles: Don't follow symlinks when walking tree + - platform/x86: asus-wmi: Move i8042 filter install to shared asus-wmi code + - of: dynamic: Fix of_reconfig_get_state_change() return value documentation + - platform/x86: wmi: Skip blocks with zero instances + - ipv6: fix potential NULL deref in fib6_add() + - octeontx2-pf: Add missing mutex lock in otx2_get_pauseparam + - octeontx2-af: Check return value of nix_get_nixlf before using nixlf + - hv_netvsc: rndis_filter needs to select NLS + - r8152: Rename RTL8152_UNPLUG to RTL8152_INACCESSIBLE + - r8152: Add RTL8152_INACCESSIBLE checks to more loops + - r8152: Add RTL8152_INACCESSIBLE to r8156b_wait_loading_flash() + - r8152: Add RTL8152_INACCESSIBLE to r8153_pre_firmware_1() + - r8152: Add RTL8152_INACCESSIBLE to r8153_aldps_en() + - mlxbf-bootctl: correctly identify secure boot with development keys + - platform/mellanox: Add null pointer checks for devm_kasprintf() + - platform/mellanox: Check devm_hwmon_device_register_with_groups() return + value + - arcnet: restoring support for multiple Sohard Arcnet cards + - octeontx2-pf: consider both Rx and Tx packet stats for adaptive interrupt + coalescing + - net: stmmac: fix FPE events losing + - xsk: Skip polling event check for unbound socket + - octeontx2-af: fix a use-after-free in rvu_npa_register_reporters + - i40e: Fix unexpected MFS warning message + - iavf: validate tx_coalesce_usecs even if rx_coalesce_usecs is zero + - tcp: fix mid stream window clamp. + - ionic: fix snprintf format length warning + - ionic: Fix dim work handling in split interrupt mode + - ipv4: ip_gre: Avoid skb_pull() failure in ipgre_xmit() + - net: atlantic: Fix NULL dereference of skb pointer in + - net: hns: fix wrong head when modify the tx feature when sending packets + - net: hns: fix fake link up on xge port + - octeontx2-af: Adjust Tx credits when MCS external bypass is disabled + - octeontx2-af: Fix mcs sa cam entries size + - octeontx2-af: Fix mcs stats register address + - octeontx2-af: Add missing mcs flr handler call + - octeontx2-af: Update Tx link register range + - dt-bindings: interrupt-controller: Allow #power-domain-cells + - netfilter: nf_tables: fix 'exist' matching on bigendian arches + - netfilter: nf_tables: validate family when identifying table via handle + - netfilter: xt_owner: Fix for unsafe access of sk->sk_socket + - tcp: do not accept ACK of bytes we never sent + - bpf: sockmap, updating the sg structure should also update curr + - psample: Require 'CAP_NET_ADMIN' when joining "packets" group + - drop_monitor: Require 'CAP_SYS_ADMIN' when joining "events" group + - mm/damon/sysfs: eliminate potential uninitialized variable warning + - tee: optee: Fix supplicant based device enumeration + - RDMA/hns: Fix unnecessary err return when using invalid congest control + algorithm + - RDMA/irdma: Do not modify to SQD on error + - RDMA/irdma: Add wait for suspend on SQD + - arm64: dts: rockchip: Expand reg size of vdec node for RK3328 + - arm64: dts: rockchip: Expand reg size of vdec node for RK3399 + - ASoC: fsl_sai: Fix no frame sync clock issue on i.MX8MP + - RDMA/rtrs-srv: Do not unconditionally enable irq + - RDMA/rtrs-clt: Start hb after path_up + - RDMA/rtrs-srv: Check return values while processing info request + - RDMA/rtrs-srv: Free srv_mr iu only when always_invalidate is true + - RDMA/rtrs-srv: Destroy path files after making sure no IOs in-flight + - RDMA/rtrs-clt: Fix the max_send_wr setting + - RDMA/rtrs-clt: Remove the warnings for req in_use check + - RDMA/bnxt_re: Correct module description string + - RDMA/irdma: Refactor error handling in create CQP + - RDMA/irdma: Fix UAF in irdma_sc_ccq_get_cqe_info() + - hwmon: (acpi_power_meter) Fix 4.29 MW bug + - ASoC: codecs: lpass-tx-macro: set active_decimator correct default value + - hwmon: (nzxt-kraken2) Fix error handling path in kraken2_probe() + - ASoC: wm_adsp: fix memleak in wm_adsp_buffer_populate + - RDMA/core: Fix umem iterator when PAGE_SIZE is greater then HCA pgsz + - RDMA/irdma: Avoid free the non-cqp_request scratch + - drm/bridge: tc358768: select CONFIG_VIDEOMODE_HELPERS + - arm64: dts: imx8mp: imx8mq: Add parkmode-disable-ss-quirk on DWC3 + - ARM: dts: imx6ul-pico: Describe the Ethernet PHY clock + - tracing: Fix a warning when allocating buffered events fails + - scsi: be2iscsi: Fix a memleak in beiscsi_init_wrb_handle() + - ARM: imx: Check return value of devm_kasprintf in imx_mmdc_perf_init + - ARM: dts: imx7: Declare timers compatible with fsl,imx6dl-gpt + - ARM: dts: imx28-xea: Pass the 'model' property + - riscv: fix misaligned access handling of C.SWSP and C.SDSP + - md: don't leave 'MD_RECOVERY_FROZEN' in error path of md_set_readonly() + - rethook: Use __rcu pointer for rethook::handler + - kprobes: consistent rcu api usage for kretprobe holder + - ASoC: amd: yc: Fix non-functional mic on ASUS E1504FA + - nvme-pci: Add sleep quirk for Kingston drives + - io_uring: fix mutex_unlock with unreferenced ctx + - ALSA: usb-audio: Add Pioneer DJM-450 mixer controls + - ALSA: pcm: fix out-of-bounds in snd_pcm_state_names + - ALSA: hda/realtek: add new Framework laptop to quirks + - ALSA: hda/realtek: Add Framework laptop 16 to quirks + - ring-buffer: Test last update in 32bit version of __rb_time_read() + - nilfs2: fix missing error check for sb_set_blocksize call + - nilfs2: prevent WARNING in nilfs_sufile_set_segment_usage() + - cgroup_freezer: cgroup_freezing: Check if not frozen + - checkstack: fix printed address + - tracing: Always update snapshot buffer size + - tracing: Disable snapshot buffer when stopping instance tracers + - tracing: Fix incomplete locking when disabling buffered events + - tracing: Fix a possible race when disabling buffered events + - packet: Move reference count in packet_sock to atomic_long_t + - r8169: fix rtl8125b PAUSE frames blasting when suspended + - regmap: fix bogus error on regcache_sync success + - platform/surface: aggregator: fix recv_buf() return value + - hugetlb: fix null-ptr-deref in hugetlb_vma_lock_write + - mm: fix oops when filemap_map_pmd() without prealloc_pte + - powercap: DTPM: Fix missing cpufreq_cpu_put() calls + - md/raid6: use valid sector values to determine if an I/O should wait on the + reshape + - arm64: dts: mediatek: mt7622: fix memory node warning check + - arm64: dts: mediatek: mt8183-kukui-jacuzzi: fix dsi unnecessary cells + properties + - arm64: dts: mediatek: cherry: Fix interrupt cells for MT6360 on I2C7 + - arm64: dts: mediatek: mt8173-evb: Fix regulator-fixed node names + - arm64: dts: mediatek: mt8195: Fix PM suspend/resume with venc clocks + - arm64: dts: mediatek: mt8183: Fix unit address for scp reserved memory + - arm64: dts: mediatek: mt8183: Move thermal-zones to the root node + - arm64: dts: mediatek: mt8183-evb: Fix unit_address_vs_reg warning on ntc + - coresight: etm4x: Remove bogous __exit annotation for some functions + - hwtracing: hisi_ptt: Add dummy callback pmu::read() + - misc: mei: client.c: return negative error code in mei_cl_write + - misc: mei: client.c: fix problem of return '-EOVERFLOW' in mei_cl_write + - LoongArch: BPF: Don't sign extend memory load operand + - LoongArch: BPF: Don't sign extend function return value + - ring-buffer: Force absolute timestamp on discard of event + - tracing: Set actual size after ring buffer resize + - tracing: Stop current tracer when resizing buffer + - parisc: Reduce size of the bug_table on 64-bit kernel by half + - parisc: Fix asm operand number out of range build error in bug table + - arm64: dts: mediatek: add missing space before { + - arm64: dts: mt8183: kukui: Fix underscores in node names + - x86/sev: Fix kernel crash due to late update to read-only ghcb_version + - gpiolib: sysfs: Fix error handling on failed export + - drm/amd/amdgpu: Fix warnings in amdgpu/amdgpu_display.c + - drm/amdgpu: Add I2C EEPROM support on smu v13_0_6 + - usb: gadget: f_hid: fix report descriptor allocation + - serial: 8250_dw: Add ACPI ID for Granite Rapids-D UART + - parport: Add support for Brainboxes IX/UC/PX parallel cards + - cifs: Fix non-availability of dedup breaking generic/304 + - Revert "xhci: Loosen RPM as default policy to cover for AMD xHC 1.1" + - smb: client: fix potential NULL deref in parse_dfs_referrals() + - ARM: PL011: Fix DMA support + - serial: sc16is7xx: address RX timeout interrupt errata + - serial: 8250: 8250_omap: Clear UART_HAS_RHR_IT_DIS bit + - serial: 8250: 8250_omap: Do not start RX DMA on THRI interrupt + - serial: 8250_omap: Add earlycon support for the AM654 UART controller + - devcoredump: Send uevent once devcd is ready + - x86/CPU/AMD: Check vendor in the AMD microcode callback + - USB: gadget: core: adjust uevent timing on gadget unbind + - cifs: Fix flushing, invalidation and file size with copy_file_range() + - cifs: Fix flushing, invalidation and file size with FICLONE + - MIPS: kernel: Clear FPU states when setting up kernel threads + - KVM: s390/mm: Properly reset no-dat + - KVM: SVM: Update EFER software model on CR0 trap for SEV-ES + - MIPS: Loongson64: Reserve vgabios memory on boot + - MIPS: Loongson64: Handle more memory types passed from firmware + - MIPS: Loongson64: Enable DMA noncoherent support + - riscv: Kconfig: Add select ARM_AMBA to SOC_STARFIVE + - [Config] updateconfigs after enabling ARM_AMBA on riscv + - scsi: sd: Fix sshdr use in sd_suspend_common() + - nouveau: use an rwlock for the event lock. + - modpost: fix section mismatch message for RELA + - drm/amdgpu: Do not program VF copy regs in mmhub v1.8 under SRIOV (v2) + - drm/amdgpu: finalizing mem_partitions at the end of GMC v9 sw_fini + - dm-crypt: start allocating with MAX_ORDER + - r8152: Hold the rtnl_lock for all of reset + - net: dsa: microchip: provide a list of valid protocols for xmit handler + - net/smc: fix missing byte order conversion in CLC handshake + - RDMA/core: Fix uninit-value access in ib_get_eth_speed() + - ARM: dts: imx6q: skov: fix ethernet clock regression + - ARM: dts: rockchip: Fix sdmmc_pwren's pinmux setting for RK3128 + - ARM: dts: bcm2711-rpi-400: Fix delete-node of led_act + - firmware: arm_scmi: Extend perf protocol ops to get number of domains + - firmware: arm_scmi: Extend perf protocol ops to get information of a domain + - firmware: arm_scmi: Fix frequency truncation by promoting multiplier type + - firmware: arm_scmi: Simplify error path in scmi_dvfs_device_opps_add() + - RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned + - RDMA/irdma: Fix support for 64k pages + - io_uring/kbuf: Fix an NULL vs IS_ERR() bug in io_alloc_pbuf_ring() + - io_uring/kbuf: check for buffer list readiness after NULL check + - arm64: dts: imx8-ss-lsio: Add PWM interrupts + - arm64: dts: freescale: imx8-ss-lsio: Fix #pwm-cells + - arm64: dts: imx93: correct mediamix power + - arm64: dts: imx8-apalis: set wifi regulator to always-on + - arm64: dts: rockchip: Fix eMMC Data Strobe PD on rk3588 + - scripts/gdb: fix lx-device-list-bus and lx-device-list-class + - ASoC: amd: yc: Fix non-functional mic on ASUS E1504FA + - ALSA: hda/realtek: Apply quirk for ASUS UM3504DA + - ALSA: hda/realtek: fix speakers on XPS 9530 (2023) + - ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7 + - lib/group_cpus.c: avoid acquiring cpu hotplug lock in group_cpus_evenly + - leds: trigger: netdev: fix RTNL handling to prevent potential deadlock + - nfp: flower: fix for take a mutex lock in soft irq context and rcu lock + - workqueue: Make sure that wq_unbound_cpumask is never empty + - drivers/base/cpu: crash data showing should depends on KEXEC_CORE + - mm/memory_hotplug: add missing mem_hotplug_lock + - mm/memory_hotplug: fix error handling in add_memory_resource() + - drm/atomic-helpers: Invoke end_fb_access while owning plane state + - drm/i915/mst: Fix .mode_valid_ctx() return values + - drm/i915/mst: Reject modes that require the bigjoiner + - arm64: dts: mt7986: change cooling trips + - arm64: dts: mt7986: define 3W max power to both SFP on BPI-R3 + - arm64: dts: mt7986: fix emmc hs400 mode without uboot initialization + - arm64: dts: mediatek: mt8186: fix clock names for power domains + - arm64: dts: mediatek: mt8186: Change gpu speedbin nvmem cell name + - coresight: Fix crash when Perf and sysfs modes are used concurrently + - coresight: ultrasoc-smb: Fix sleep while close preempt in enable_smb + - coresight: ultrasoc-smb: Config SMB buffer before register sink + - coresight: ultrasoc-smb: Fix uninitialized before use buf_hw_base + - ASoC: ops: add correct range check for limiting volume + - nvmem: Do not expect fixed layouts to grab a layout driver + - serial: ma35d1: Validate console index before assignment + - powerpc/ftrace: Fix stack teardown in ftrace_no_trace + - perf metrics: Avoid segv if default metricgroup isn't set + - ASoC: qcom: sc8280xp: Limit speaker digital volumes + - gcc-plugins: randstruct: Update code comment in relayout_struct() + - drm/amdgpu: Fix refclk reporting for SMU v13.0.6 + - drm/amdgpu: Add bootloader status check + - drm/amdgpu: Add bootloader wait for PSP v13 + - drm/amdgpu: Restrict bootloader wait to SMUv13.0.6 + - drm/amdgpu: update retry times for psp vmbx wait + - drm/amdgpu: update retry times for psp BL wait + - drm/amdgpu: Restrict extended wait to PSP v13.0.6 + - Upstream stable to v6.1.68, v6.6.7 + * i915 regression introduced with 5.5 kernel (LP: #2044131) + - drm/i915: Skip some timing checks on BXT/GLK DSI transcoders + * Mantic update: upstream stable patchset 2024-01-26 (LP: #2051366) + - cifs: Fix FALLOC_FL_ZERO_RANGE by setting i_size if EOF moved + - cifs: Fix FALLOC_FL_INSERT_RANGE by setting i_size after EOF moved + - smb: client: report correct st_size for SMB and NFS symlinks + - pinctrl: avoid reload of p state in list iteration + - firewire: core: fix possible memory leak in create_units() + - mmc: sdhci-pci-gli: Disable LPM during initialization + - mmc: cqhci: Increase recovery halt timeout + - mmc: cqhci: Warn of halt or task clear failure + - mmc: cqhci: Fix task clearing in CQE error recovery + - mmc: block: Retry commands in CQE error recovery + - mmc: block: Do not lose cache flush during CQE error recovery + - mmc: block: Be sure to wait while busy in CQE error recovery + - ALSA: hda: Disable power-save on KONTRON SinglePC + - ALSA: hda/realtek: Headset Mic VREF to 100% + - ALSA: hda/realtek: Add supported ALC257 for ChromeOS + - dm-verity: align struct dm_verity_fec_io properly + - scsi: Change SCSI device boolean fields to single bit flags + - scsi: sd: Fix system start for ATA devices + - drm/amd: Enable PCIe PME from D3 + - drm/amdgpu: Force order between a read and write to the same address + - drm/amd/display: Include udelay when waiting for INBOX0 ACK + - drm/amd/display: Remove min_dst_y_next_start check for Z8 + - drm/amd/display: Use DRAM speed from validation for dummy p-state + - drm/amd/display: Update min Z8 residency time to 2100 for DCN314 + - drm/amd/display: fix ABM disablement + - dm verity: initialize fec io before freeing it + - dm verity: don't perform FEC for failed readahead IO + - nvme: check for valid nvme_identify_ns() before using it + - powercap: DTPM: Fix unneeded conversions to micro-Watts + - cpufreq/amd-pstate: Fix the return value of amd_pstate_fast_switch() + - dma-buf: fix check in dma_resv_add_fence + - bcache: revert replacing IS_ERR_OR_NULL with IS_ERR + - iommu/vt-d: Add MTL to quirk list to skip TE disabling + - KVM: PPC: Book3S HV: Fix KVM_RUN clobbering FP/VEC user registers + - powerpc: Don't clobber f0/vs0 during fp|altivec register save + - parisc: Mark ex_table entries 32-bit aligned in assembly.h + - parisc: Mark ex_table entries 32-bit aligned in uaccess.h + - parisc: Use natural CPU alignment for bug_table + - parisc: Mark lock_aligned variables 16-byte aligned on SMP + - parisc: Drop the HP-UX ENOSYM and EREMOTERELEASE error codes + - parisc: Mark jump_table naturally aligned + - parisc: Ensure 32-bit alignment on parisc unwind section + - parisc: Mark altinstructions read-only and 32-bit aligned + - btrfs: add dmesg output for first mount and last unmount of a filesystem + - btrfs: ref-verify: fix memory leaks in btrfs_ref_tree_mod() + - btrfs: fix off-by-one when checking chunk map includes logical address + - btrfs: send: ensure send_fd is writable + - btrfs: make error messages more clear when getting a chunk map + - btrfs: fix 64bit compat send ioctl arguments not initializing version member + - auxdisplay: hd44780: move cursor home after clear display command + - serial: sc16is7xx: Put IOControl register into regmap_volatile + - serial: sc16is7xx: add missing support for rs485 devicetree properties + - dpaa2-eth: increase the needed headroom to account for alignment + - uapi: propagate __struct_group() attributes to the container union + - selftests/net: ipsec: fix constant out of range + - selftests/net: fix a char signedness issue + - selftests/net: unix: fix unused variable compiler warning + - selftests/net: mptcp: fix uninitialized variable warnings + - octeontx2-af: Fix possible buffer overflow + - net: stmmac: xgmac: Disable FPE MMC interrupts + - octeontx2-pf: Fix adding mbox work queue entry when num_vfs > 64 + - octeontx2-af: Install TC filter rules in hardware based on priority + - octeontx2-pf: Restore TC ingress police rules when interface is up + - r8169: prevent potential deadlock in rtl8169_close + - ravb: Fix races between ravb_tx_timeout_work() and net related ops + - net: ravb: Check return value of reset_control_deassert() + - net: ravb: Use pm_runtime_resume_and_get() + - net: ravb: Make write access to CXR35 first before accessing other EMAC + registers + - net: ravb: Start TX queues after HW initialization succeeded + - net: ravb: Stop DMA in case of failures on ravb_open() + - net: ravb: Keep reverse order of operations in ravb_remove() + - octeontx2-af: Initialize 'cntr_val' to fix uninitialized symbol error + - spi: Fix null dereference on suspend + - cpufreq: imx6q: Don't disable 792 Mhz OPP unnecessarily + - iommu/vt-d: Omit devTLB invalidation requests when TES=0 + - iommu/vt-d: Disable PCI ATS in legacy passthrough mode + - iommu/vt-d: Make context clearing consistent with context mapping + - drm/amd/pm: fix a memleak in aldebaran_tables_init + - mmc: sdhci-sprd: Fix vqmmc not shutting down after the card was pulled + - drm/amd/display: Fix MPCC 1DLUT programming + - r8169: fix deadlock on RTL8125 in jumbo mtu mode + - xen: simplify evtchn_do_upcall() call maze + - x86/xen: fix percpu vcpu_info allocation + - smb: client: fix missing mode bits for SMB symlinks + - ksmbd: fix possible deadlock in smb2_open + - drm/i915: Also check for VGA converter in eDP probe + - net: libwx: fix memory leak on msix entry + - drm/amdgpu: correct the amdgpu runtime dereference usage count + - drm/amdgpu: fix memory overflow in the IB test + - drm/amdgpu: Update EEPROM I2C address for smu v13_0_0 + - drm/amd/display: force toggle rate wa for first link training for a retimer + - ACPI: video: Use acpi_video_device for cooling-dev driver data + - iommu/vt-d: Fix incorrect cache invalidation for mm notification + - io_uring: free io_buffer_list entries via RCU + - io_uring: don't guard IORING_OFF_PBUF_RING with SETUP_NO_MMAP + - iommu: Avoid more races around device probe + - ext2: Fix ki_pos update for DIO buffered-io fallback case + - btrfs: free the allocated memory if btrfs_alloc_page_array() fails + - io_uring/kbuf: recycle freed mapped buffer ring entries + - media: v4l2-subdev: Fix a 64bit bug + - netdevsim: Don't accept device bound programs + - net: rswitch: Fix type of ret in rswitch_start_xmit() + - net: rswitch: Fix return value in rswitch_start_xmit() + - net: rswitch: Fix missing dev_kfree_skb_any() in error path + - wifi: iwlwifi: mvm: fix an error code in iwl_mvm_mld_add_sta() + - wifi: mac80211: do not pass AP_VLAN vif pointer to drivers during flush + - net: dsa: mv88e6xxx: fix marvell 6350 switch probing + - dpaa2-eth: recycle the RX buffer only after all processing done + - bpf: Add missed allocation hint for bpf_mem_cache_alloc_flags() + - neighbour: Fix __randomize_layout crash in struct neighbour + - efi/unaccepted: Fix off-by-one when checking for overlapping ranges + - ethtool: don't propagate EOPNOTSUPP from dumps + - bpf, sockmap: af_unix stream sockets need to hold ref for pair sock + - powerpc/pseries/iommu: enable_ddw incorrectly returns direct mapping for SR- + IOV device + - s390/cmma: fix handling of swapper_pg_dir and invalid_pg_dir + - drm/amd/display: Refactor edp power control + - drm/amd/display: Remove power sequencing check + - drm/i915/gsc: Mark internal GSC engine with reserved uabi class + - drm/panel: starry-2081101qfh032011-53g: Fine tune the panel power sequence + - drm/panel: nt36523: fix return value check in nt36523_probe() + - cpufreq/amd-pstate: Fix scaling_min_freq and scaling_max_freq update + - cpufreq/amd-pstate: Only print supported EPP values for performance governor + - iommu: Fix printk arg in of_iommu_get_resv_regions() + - drm/amd/display: refactor ILR to make it work + - drm/amd/display: Reduce default backlight min from 5 nits to 1 nits + - Upstream stable to v6.1.66, v6.6.5 + * Mantic update: upstream stable patchset 2024-01-25 (LP: #2051231) + - afs: Fix afs_server_list to be cleaned up with RCU + - afs: Make error on cell lookup failure consistent with OpenAFS + - drm/panel: auo,b101uan08.3: Fine tune the panel power sequence + - drm/panel: simple: Fix Innolux G101ICE-L01 bus flags + - drm/panel: simple: Fix Innolux G101ICE-L01 timings + - wireguard: use DEV_STATS_INC() + - octeontx2-pf: Fix memory leak during interface down + - ata: pata_isapnp: Add missing error check for devm_ioport_map() + - drm/i915: do not clean GT table on error path + - drm/rockchip: vop: Fix color for RGB888/BGR888 format on VOP full + - HID: fix HID device resource race between HID core and debugging support + - ipv4: Correct/silence an endian warning in __ip_do_redirect + - net: usb: ax88179_178a: fix failed operations during ax88179_reset + - net/smc: avoid data corruption caused by decline + - arm/xen: fix xen_vcpu_info allocation alignment + - octeontx2-pf: Fix ntuple rule creation to direct packet to VF with higher Rx + queue than its PF + - amd-xgbe: handle corner-case during sfp hotplug + - amd-xgbe: handle the corner-case during tx completion + - amd-xgbe: propagate the correct speed and duplex status + - net: axienet: Fix check for partial TX checksum + - afs: Return ENOENT if no cell DNS record can be found + - afs: Fix file locking on R/O volumes to operate in local mode + - arm64: mm: Fix "rodata=on" when CONFIG_RODATA_FULL_DEFAULT_ENABLED=y + - i40e: Fix adding unsupported cloud filters + - nvmet: nul-terminate the NQNs passed in the connect command + - USB: dwc3: qcom: fix resource leaks on probe deferral + - USB: dwc3: qcom: fix ACPI platform device leak + - lockdep: Fix block chain corruption + - cifs: distribute channels across interfaces based on speed + - cifs: account for primary channel in the interface list + - cifs: fix leak of iface for primary channel + - MIPS: KVM: Fix a build warning about variable set but not used + - media: qcom: Initialise V4L2 async notifier later + - media: qcom: camss: Fix V4L2 async notifier error path + - media: qcom: camss: Fix genpd cleanup + - NFSD: Fix "start of NFS reply" pointer passed to nfsd_cache_update() + - NFSD: Fix checksum mismatches in the duplicate reply cache + - ACPI: resource: Skip IRQ override on ASUS ExpertBook B1402CVA + - swiotlb-xen: provide the "max_mapping_size" method + - bcache: replace a mistaken IS_ERR() by IS_ERR_OR_NULL() in + btree_gc_coalesce() + - md: fix bi_status reporting in md_end_clone_io + - bcache: fixup multi-threaded bch_sectors_dirty_init() wake-up race + - io_uring/fs: consider link->flags when getting path for LINKAT + - s390/dasd: protect device queue against concurrent access + - USB: serial: option: add Luat Air72*U series products + - hv_netvsc: fix race of netvsc and VF register_netdevice + - hv_netvsc: Fix race of register_netdevice_notifier and VF register + - hv_netvsc: Mark VF as slave before exposing it to user-mode + - dm-delay: fix a race between delay_presuspend and delay_bio + - bcache: check return value from btree_node_alloc_replacement() + - bcache: prevent potential division by zero error + - bcache: fixup init dirty data errors + - bcache: fixup lock c->root error + - usb: cdnsp: Fix deadlock issue during using NCM gadget + - USB: serial: option: add Fibocom L7xx modules + - USB: serial: option: fix FM101R-GL defines + - USB: serial: option: don't claim interface 4 for ZTE MF290 + - usb: typec: tcpm: Skip hard reset when in error recovery + - USB: dwc2: write HCINT with INTMASK applied + - usb: dwc3: Fix default mode initialization + - usb: dwc3: set the dma max_seg_size + - USB: dwc3: qcom: fix software node leak on probe errors + - USB: dwc3: qcom: fix wakeup after probe deferral + - io_uring: fix off-by one bvec index + - irqchip/gic-v3-its: Flush ITS tables correctly in non-coherent GIC designs + - drm/msm/dsi: use the correct VREG_CTRL_1 value for 4nm cphy + - s390/ism: ism driver implies smc protocol + - rxrpc: Fix RTT determination to use any ACK as a source + - rxrpc: Defer the response to a PING ACK until we've parsed it + - blk-cgroup: avoid to warn !rcu_read_lock_held() in blkg_lookup() + - fs: Pass AT_GETATTR_NOSEC flag to getattr interface function + - net: wangxun: fix kernel panic due to null pointer + - filemap: add a per-mapping stable writes flag + - block: update the stable_writes flag in bdev_add + - PM: tools: Fix sleepgraph syntax error + - net, vrf: Move dstats structure to core + - net: Move {l,t,d}stats allocation to core and convert veth & vrf + - bpf: Fix dev's rx stats for bpf_redirect_peer traffic + - drm/panel: boe-tv101wum-nl6: Fine tune Himax83102-j02 panel HFP and HBP + - s390/ipl: add missing IPL_TYPE_ECKD_DUMP case to ipl_init() + - net: veth: fix ethtool stats reporting + - vsock/test: fix SEQPACKET message bounds test + - net: ipa: fix one GSI register field width + - nvme: blank out authentication fabrics options if not configured + - mm: add a NO_INHERIT flag to the PR_SET_MDWE prctl + - prctl: Disable prctl(PR_SET_MDWE) on parisc + - kselftest/arm64: Fix output formatting for za-fork + - drm/msm/dpu: Add missing safe_lut_tbl in sc8280xp catalog + - drm/ast: Disconnect BMC if physical connector is connected + - thunderbolt: Set lane bonding bit only for downstream port + - ACPI: video: Use acpi_device_fix_up_power_children() + - ACPI: processor_idle: use raw_safe_halt() in acpi_idle_play_dead() + - ACPI: resource: Skip IRQ override on ASUS ExpertBook B1402CVA + - ACPI: PM: Add acpi_device_fix_up_power_children() function + - tls: fix NULL deref on tls_sw_splice_eof() with empty record + - dt-bindings: usb: microchip,usb5744: Add second supply + - usb: misc: onboard-hub: add support for Microchip USB5744 + - platform/x86/amd/pmc: adjust getting DRAM size behavior + - ALSA: hda: ASUS UM5302LA: Added quirks for cs35L41/10431A83 on i2c bus + - ALSA: hda/realtek: Add quirks for ASUS 2024 Zenbooks + - veth: Use tstats per-CPU traffic counters + - USB: xhci-plat: fix legacy PHY double init + - usb: config: fix iteration issue in 'usb_get_bos_descriptor()' + - Upstream stable to v6.1.65, v6.6.4 + * Mantic update: v6.5.13 upstream stable release (LP: #2051142) + - locking/ww_mutex/test: Fix potential workqueue corruption + - btrfs: abort transaction on generation mismatch when marking eb as dirty + - lib/generic-radix-tree.c: Don't overflow in peek() + - x86/retpoline: Make sure there are no unconverted return thunks due to KCSAN + - perf/core: Bail out early if the request AUX area is out of bound + - srcu: Fix srcu_struct node grpmask overflow on 64-bit systems + - selftests/lkdtm: Disable CONFIG_UBSAN_TRAP in test config + - clocksource/drivers/timer-imx-gpt: Fix potential memory leak + - clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware + - srcu: Only accelerate on enqueue time + - smp,csd: Throw an error if a CSD lock is stuck for too long + - cpu/hotplug: Don't offline the last non-isolated CPU + - workqueue: Provide one lock class key per work_on_cpu() callsite + - x86/mm: Drop the 4 MB restriction on minimal NUMA node memory size + - wifi: plfxlc: fix clang-specific fortify warning + - wifi: ath12k: Ignore fragments from uninitialized peer in dp + - wifi: mac80211_hwsim: fix clang-specific fortify warning + - wifi: mac80211: don't return unset power in ieee80211_get_tx_power() + - atl1c: Work around the DMA RX overflow issue + - bpf: Detect IP == ksym.end as part of BPF program + - wifi: ath9k: fix clang-specific fortify warnings + - wifi: ath12k: fix possible out-of-bound read in ath12k_htt_pull_ppdu_stats() + - wifi: ath10k: fix clang-specific fortify warning + - wifi: ath12k: fix possible out-of-bound write in + ath12k_wmi_ext_hal_reg_caps() + - ACPI: APEI: Fix AER info corruption when error status data has multiple + sections + - net: sfp: add quirk for Fiberstone GPON-ONU-34-20BI + - wifi: mt76: mt7921e: Support MT7992 IP in Xiaomi Redmibook 15 Pro (2023) + - net: annotate data-races around sk->sk_tx_queue_mapping + - net: annotate data-races around sk->sk_dst_pending_confirm + - wifi: ath12k: mhi: fix potential memory leak in ath12k_mhi_register() + - wifi: ath10k: Don't touch the CE interrupt registers after power up + - net: sfp: add quirk for FS's 2.5G copper SFP + - vsock: read from socket's error queue + - bpf: Ensure proper register state printing for cond jumps + - wifi: iwlwifi: mvm: fix size check for fw_link_id + - Bluetooth: btusb: Add date->evt_skb is NULL check + - Bluetooth: Fix double free in hci_conn_cleanup + - ACPI: EC: Add quirk for HP 250 G7 Notebook PC + - tsnep: Fix tsnep_request_irq() format-overflow warning + - gpiolib: acpi: Add a ignore interrupt quirk for Peaq C1010 + - platform/chrome: kunit: initialize lock for fake ec_dev + - of: address: Fix address translation when address-size is greater than 2 + - platform/x86: thinkpad_acpi: Add battery quirk for Thinkpad X120e + - drm/gma500: Fix call trace when psb_gem_mm_init() fails + - drm/amdkfd: ratelimited SQ interrupt messages + - drm/komeda: drop all currently held locks if deadlock happens + - drm/amd/display: Blank phantom OTG before enabling + - drm/amd/display: Don't lock phantom pipe on disabling + - drm/amd/display: add seamless pipe topology transition check + - drm/edid: Fixup h/vsync_end instead of h/vtotal + - md: don't rely on 'mddev->pers' to be set in mddev_suspend() + - drm/amdgpu: not to save bo in the case of RAS err_event_athub + - drm/amdkfd: Fix a race condition of vram buffer unref in svm code + - drm/amd: Update `update_pcie_parameters` functions to use uint8_t arguments + - drm/amd/display: use full update for clip size increase of large plane + source + - string.h: add array-wrappers for (v)memdup_user() + - kernel: kexec: copy user-array safely + - kernel: watch_queue: copy user-array safely + - drm_lease.c: copy user-array safely + - drm: vmwgfx_surface.c: copy user-array safely + - drm/msm/dp: skip validity check for DP CTS EDID checksum + - drm/amd: Fix UBSAN array-index-out-of-bounds for SMU7 + - drm/amd: Fix UBSAN array-index-out-of-bounds for Polaris and Tonga + - drm/amdgpu: Fix potential null pointer derefernce + - drm/panel: fix a possible null pointer dereference + - drm/panel/panel-tpo-tpg110: fix a possible null pointer dereference + - drm/radeon: fix a possible null pointer dereference + - drm/amdgpu/vkms: fix a possible null pointer dereference + - drm/panel: st7703: Pick different reset sequence + - drm/amdkfd: Fix shift out-of-bounds issue + - drm/amdgpu: Fix a null pointer access when the smc_rreg pointer is NULL + - drm/amd: Disable PP_PCIE_DPM_MASK when dynamic speed switching not supported + - drm/amd/display: fix num_ways overflow error + - drm/amd: check num of link levels when update pcie param + - arm64: dts: ls208xa: use a pseudo-bus to constrain usb dma size + - selftests/efivarfs: create-read: fix a resource leak + - ASoC: mediatek: mt8188-mt6359: support dynamic pinctrl + - ASoC: soc-card: Add storage for PCI SSID + - ASoC: SOF: Pass PCI SSID to machine driver + - crypto: pcrypt - Fix hungtask for PADATA_RESET + - ASoC: SOF: ipc4: handle EXCEPTION_CAUGHT notification from firmware + - RDMA/hfi1: Use FIELD_GET() to extract Link Width + - scsi: hisi_sas: Set debugfs_dir pointer to NULL after removing debugfs + - scsi: ibmvfc: Remove BUG_ON in the case of an empty event pool + - fs/jfs: Add check for negative db_l2nbperpage + - fs/jfs: Add validity check for db_maxag and db_agpref + - jfs: fix array-index-out-of-bounds in dbFindLeaf + - jfs: fix array-index-out-of-bounds in diAlloc + - HID: lenovo: Detect quirk-free fw on cptkbd and stop applying workaround + - ARM: 9320/1: fix stack depot IRQ stack filter + - ALSA: hda: Fix possible null-ptr-deref when assigning a stream + - gpiolib: of: Add quirk for mt2701-cs42448 ASoC sound + - PCI: tegra194: Use FIELD_GET()/FIELD_PREP() with Link Width fields + - PCI: mvebu: Use FIELD_PREP() with Link Width + - atm: iphase: Do PCI error checks on own line + - PCI: Do error check on own line to split long "if" conditions + - scsi: libfc: Fix potential NULL pointer dereference in fc_lport_ptp_setup() + - PCI: Use FIELD_GET() to extract Link Width + - PCI: Extract ATS disabling to a helper function + - PCI: Disable ATS for specific Intel IPU E2000 devices + - PCI: dwc: Add dw_pcie_link_set_max_link_width() + - PCI: dwc: Add missing PCI_EXP_LNKCAP_MLW handling + - misc: pci_endpoint_test: Add Device ID for R-Car S4-8 PCIe controller + - PCI: Use FIELD_GET() in Sapphire RX 5600 XT Pulse quirk + - ASoC: Intel: soc-acpi-cht: Add Lenovo Yoga Tab 3 Pro YT3-X90 quirk + - crypto: hisilicon/qm - prevent soft lockup in receive loop + - HID: Add quirk for Dell Pro Wireless Keyboard and Mouse KM5221W + - exfat: support handle zero-size directory + - mfd: intel-lpss: Add Intel Lunar Lake-M PCI IDs + - iio: adc: stm32-adc: harden against NULL pointer deref in stm32_adc_probe() + - thunderbolt: Apply USB 3.x bandwidth quirk only in software connection + manager + - tty: vcc: Add check for kstrdup() in vcc_probe() + - dt-bindings: phy: qcom,snps-eusb2-repeater: Add magic tuning overrides + - phy: qualcomm: phy-qcom-eusb2-repeater: Use regmap_fields + - phy: qualcomm: phy-qcom-eusb2-repeater: Zero out untouched tuning regs + - usb: dwc3: core: configure TX/RX threshold for DWC3_IP + - usb: ucsi: glink: use the connector orientation GPIO to provide switch + events + - soundwire: dmi-quirks: update HP Omen match + - f2fs: fix error path of __f2fs_build_free_nids + - f2fs: fix error handling of __get_node_page + - usb: host: xhci: Avoid XHCI resume delay if SSUSB device is not present + - usb: gadget: f_ncm: Always set current gadget in ncm_bind() + - 9p/trans_fd: Annotate data-racy writes to file::f_flags + - 9p: v9fs_listxattr: fix %s null argument warning + - i3c: mipi-i3c-hci: Fix out of bounds access in hci_dma_irq_handler + - i2c: i801: Add support for Intel Birch Stream SoC + - i2c: fix memleak in i2c_new_client_device() + - i2c: sun6i-p2wi: Prevent potential division by zero + - virtio-blk: fix implicit overflow on virtio_max_dma_size + - i3c: master: mipi-i3c-hci: Fix a kernel panic for accessing DAT_data. + - media: gspca: cpia1: shift-out-of-bounds in set_flicker + - media: vivid: avoid integer overflow + - media: ipu-bridge: increase sensor_name size + - gfs2: ignore negated quota changes + - gfs2: fix an oops in gfs2_permission + - media: cobalt: Use FIELD_GET() to extract Link Width + - media: ccs: Fix driver quirk struct documentation + - media: imon: fix access to invalid resource for the second interface + - drm/amd/display: Avoid NULL dereference of timing generator + - kgdb: Flush console before entering kgdb on panic + - riscv: VMAP_STACK overflow detection thread-safe + - i2c: dev: copy userspace array safely + - ASoC: ti: omap-mcbsp: Fix runtime PM underflow warnings + - drm/qxl: prevent memory leak + - ALSA: hda/realtek: Add quirk for ASUS UX7602ZM + - drm/amdgpu: fix software pci_unplug on some chips + - pwm: Fix double shift bug + - mtd: rawnand: tegra: add missing check for platform_get_irq() + - wifi: iwlwifi: Use FW rate for non-data frames + - sched/core: Optimize in_task() and in_interrupt() a bit + - samples/bpf: syscall_tp_user: Rename num_progs into nr_tests + - samples/bpf: syscall_tp_user: Fix array out-of-bound access + - dt-bindings: serial: fix regex pattern for matching serial node children + - SUNRPC: ECONNRESET might require a rebind + - mtd: rawnand: intel: check return value of devm_kasprintf() + - mtd: rawnand: meson: check return value of devm_kasprintf() + - drm/i915/mtl: avoid stringop-overflow warning + - NFSv4.1: fix handling NFS4ERR_DELAY when testing for session trunking + - SUNRPC: Add an IS_ERR() check back to where it was + - NFSv4.1: fix SP4_MACH_CRED protection for pnfs IO + - SUNRPC: Fix RPC client cleaned up the freed pipefs dentries + - RISC-V: hwprobe: Fix vDSO SIGSEGV + - riscv: provide riscv-specific is_trap_insn() + - gfs2: Silence "suspicious RCU usage in gfs2_permission" warning + - drm/i915/tc: Fix -Wformat-truncation in intel_tc_port_init + - vdpa_sim_blk: allocate the buffer zeroed + - vhost-vdpa: fix use after free in vhost_vdpa_probe() + - gcc-plugins: randstruct: Only warn about true flexible arrays + - bpf: handle ldimm64 properly in check_cfg() + - bpf: fix precision backtracking instruction iteration + - net: set SOCK_RCU_FREE before inserting socket into hashtable + - ipvlan: add ipvlan_route_v6_outbound() helper + - tty: Fix uninit-value access in ppp_sync_receive() + - xen/events: avoid using info_for_irq() in xen_send_IPI_one() + - net: hns3: fix add VLAN fail issue + - net: hns3: add barrier in vf mailbox reply process + - net: hns3: fix incorrect capability bit display for copper port + - net: hns3: fix out-of-bounds access may occur when coalesce info is read via + debugfs + - net: hns3: fix variable may not initialized problem in hns3_init_mac_addr() + - net: hns3: fix VF reset fail issue + - net: hns3: fix VF wrong speed and duplex issue + - tipc: Fix kernel-infoleak due to uninitialized TLV value + - net: mvneta: fix calls to page_pool_get_stats + - ppp: limit MRU to 64K + - xen/events: fix delayed eoi list handling + - blk-mq: make sure active queue usage is held for bio_integrity_prep() + - ptp: annotate data-race around q->head and q->tail + - bonding: stop the device in bond_setup_by_slave() + - net: ethernet: cortina: Fix max RX frame define + - net: ethernet: cortina: Handle large frames + - net: ethernet: cortina: Fix MTU max setting + - af_unix: fix use-after-free in unix_stream_read_actor() + - netfilter: nf_conntrack_bridge: initialize err to 0 + - netfilter: nf_tables: fix pointer math issue in nft_byteorder_eval() + - netfilter: nf_tables: bogus ENOENT when destroying element which does not + exist + - net: stmmac: fix rx budget limit check + - net: stmmac: avoid rx queue overrun + - pds_core: use correct index to mask irq + - pds_core: fix up some format-truncation complaints + - gve: Fixes for napi_poll when budget is 0 + - io_uring/fdinfo: remove need for sqpoll lock for thread/pid retrieval + - net/mlx5: Decouple PHC .adjtime and .adjphase implementations + - net/mlx5e: fix double free of encap_header + - net/mlx5e: fix double free of encap_header in update funcs + - net/mlx5e: Fix pedit endianness + - net/mlx5: Consolidate devlink documentation in devlink/mlx5.rst + - net/mlx5e: Make tx_port_ts logic resilient to out-of-order CQEs + - net/mlx5e: Add recovery flow for tx devlink health reporter for unhealthy + PTP SQ + - net/mlx5e: Update doorbell for port timestamping CQ before the software + counter + - net/mlx5: Increase size of irq name buffer + - net/mlx5e: Reduce the size of icosq_str + - net/mlx5e: Check return value of snprintf writing to fw_version buffer + - net/mlx5e: Check return value of snprintf writing to fw_version buffer for + representors + - net: sched: do not offload flows with a helper in act_ct + - macvlan: Don't propagate promisc change to lower dev in passthru + - tools/power/turbostat: Fix a knl bug + - tools/power/turbostat: Enable the C-state Pre-wake printing + - scsi: ufs: core: Expand MCQ queue slot to DeviceQueueDepth + 1 + - cifs: spnego: add ';' in HOST_KEY_LEN + - cifs: fix check of rc in function generate_smb3signingkey + - perf/core: Fix cpuctx refcounting + - i915/perf: Fix NULL deref bugs with drm_dbg() calls + - perf: arm_cspmu: Reject events meant for other PMUs + - drivers: perf: Check find_first_bit() return value + - media: venus: hfi: add checks to perform sanity on queue pointers + - perf intel-pt: Fix async branch flags + - powerpc/perf: Fix disabling BHRB and instruction sampling + - randstruct: Fix gcc-plugin performance mode to stay in group + - bpf: Fix check_stack_write_fixed_off() to correctly spill imm + - bpf: Fix precision tracking for BPF_ALU | BPF_TO_BE | BPF_END + - scsi: mpt3sas: Fix loop logic + - scsi: megaraid_sas: Increase register read retry rount from 3 to 30 for + selected registers + - scsi: ufs: qcom: Update PHY settings only when scaling to higher gears + - scsi: qla2xxx: Fix system crash due to bad pointer access + - scsi: ufs: core: Fix racing issue between ufshcd_mcq_abort() and ISR + - crypto: x86/sha - load modules based on CPU features + - x86/PCI: Avoid PME from D3hot/D3cold for AMD Rembrandt and Phoenix USB4 + - x86/apic/msi: Fix misconfigured non-maskable MSI quirk + - x86/cpu/hygon: Fix the CPU topology evaluation for real + - KVM: x86: hyper-v: Don't auto-enable stimer on write from user-space + - KVM: x86: Ignore MSR_AMD64_TW_CFG access + - KVM: x86: Clear bit12 of ICR after APIC-write VM-exit + - KVM: x86: Fix lapic timer interrupt lost after loading a snapshot. + - mmc: sdhci-pci-gli: GL9755: Mask the replay timer timeout of AER + - sched: psi: fix unprivileged polling against cgroups + - audit: don't take task_lock() in audit_exe_compare() code path + - audit: don't WARN_ON_ONCE(!current->mm) in audit_exe_compare() + - proc: sysctl: prevent aliased sysctls from getting passed to init + - tty/sysrq: replace smp_processor_id() with get_cpu() + - tty: serial: meson: fix hard LOCKUP on crtscts mode + - hvc/xen: fix console unplug + - hvc/xen: fix error path in xen_hvc_init() to always register frontend driver + - hvc/xen: fix event channel handling for secondary consoles + - PCI/sysfs: Protect driver's D3cold preference from user space + - mm/damon/sysfs: remove requested targets when online-commit inputs + - mm/damon/sysfs: update monitoring target regions for online input commit + - watchdog: move softlockup_panic back to early_param + - iommufd: Fix missing update of domains_itree after splitting iopt_area + - fbdev: stifb: Make the STI next font pointer a 32-bit signed offset + - dm crypt: account large pages in cc->n_allocated_pages + - mm/damon/lru_sort: avoid divide-by-zero in hot threshold calculation + - mm/damon/ops-common: avoid divide-by-zero during region hotness calculation + - mm/damon: implement a function for max nr_accesses safe calculation + - mm/damon/core: avoid divide-by-zero during monitoring results update + - mm/damon/sysfs-schemes: handle tried region directory allocation failure + - mm/damon/sysfs-schemes: handle tried regions sysfs directory allocation + failure + - mm/damon/sysfs: check error from damon_sysfs_update_target() + - parisc: Add nop instructions after TLB inserts + - ACPI: resource: Do IRQ override on TongFang GMxXGxx + - regmap: Ensure range selector registers are updated after cache sync + - wifi: ath11k: fix temperature event locking + - wifi: ath11k: fix dfs radar event locking + - wifi: ath11k: fix htt pktlog locking + - wifi: ath11k: fix gtk offload status event locking + - wifi: ath12k: fix htt mlo-offset event locking + - wifi: ath12k: fix dfs-radar and temperature event locking + - mmc: meson-gx: Remove setting of CMD_CFG_ERROR + - genirq/generic_chip: Make irq_remove_generic_chip() irqdomain aware + - sched/core: Fix RQCF_ACT_SKIP leak + - KEYS: trusted: tee: Refactor register SHM usage + - KEYS: trusted: Rollback init_trusted() consistently + - PCI: keystone: Don't discard .remove() callback + - PCI: keystone: Don't discard .probe() callback + - arm64: Restrict CPU_BIG_ENDIAN to GNU as or LLVM IAS 15.x or newer + - arm64: module: Fix PLT counting when CONFIG_RANDOMIZE_BASE=n + - parisc/agp: Use 64-bit LE values in SBA IOMMU PDIR table + - parisc/pdc: Add width field to struct pdc_model + - parisc/power: Add power soft-off when running on qemu + - cpufreq: stats: Fix buffer overflow detection in trans_stats() + - powercap: intel_rapl: Downgrade BIOS locked limits pr_warn() to pr_debug() + - clk: socfpga: Fix undefined behavior bug in struct stratix10_clock_data + - clk: visconti: Fix undefined behavior bug in struct visconti_pll_provider + - clk: qcom: ipq8074: drop the CLK_SET_RATE_PARENT flag from PLL clocks + - clk: qcom: ipq6018: drop the CLK_SET_RATE_PARENT flag from PLL clocks + - ksmbd: fix recursive locking in vfs helpers + - ksmbd: handle malformed smb1 message + - ksmbd: fix slab out of bounds write in smb_inherit_dacl() + - mmc: vub300: fix an error code + - mmc: sdhci_am654: fix start loop index for TAP value parsing + - mmc: Add quirk MMC_QUIRK_BROKEN_CACHE_FLUSH for Micron eMMC Q2J54A + - PCI/ASPM: Fix L1 substate handling in aspm_attr_store_common() + - PCI: kirin: Don't discard .remove() callback + - PCI: exynos: Don't discard .remove() callback + - wifi: wilc1000: use vmm_table as array in wilc struct + - svcrdma: Drop connection after an RDMA Read error + - rcu/tree: Defer setting of jiffies during stall reset + - arm64: dts: qcom: ipq6018: Fix hwlock index for SMEM + - dt-bindings: timer: renesas,rz-mtu3: Fix overflow/underflow interrupt names + - PM: hibernate: Use __get_safe_page() rather than touching the list + - PM: hibernate: Clean up sync_read handling in snapshot_write_next() + - rcu: kmemleak: Ignore kmemleak false positives when RCU-freeing objects + - btrfs: don't arbitrarily slow down delalloc if we're committing + - thermal: intel: powerclamp: fix mismatch in get function for max_idle + - arm64: dts: qcom: ipq5332: Fix hwlock index for SMEM + - arm64: dts: qcom: ipq8074: Fix hwlock index for SMEM + - firmware: qcom_scm: use 64-bit calling convention only when client is 64-bit + - ACPI: FPDT: properly handle invalid FPDT subtables + - arm64: dts: qcom: ipq9574: Fix hwlock index for SMEM + - arm64: dts: qcom: ipq6018: Fix tcsr_mutex register size + - leds: trigger: netdev: Move size check in set_device_name + - mfd: qcom-spmi-pmic: Fix reference leaks in revid helper + - mfd: qcom-spmi-pmic: Fix revid implementation + - ima: annotate iint mutex to avoid lockdep false positive warnings + - ima: detect changes to the backing overlay file + - netfilter: nf_tables: split async and sync catchall in two functions + - ASoC: soc-dai: add flag to mute and unmute stream during trigger + - ASoC: codecs: wsa883x: make use of new mute_unmute_on_trigger flag + - selftests/resctrl: Fix uninitialized .sa_flags + - selftests/resctrl: Remove duplicate feature check from CMT test + - selftests/resctrl: Move _GNU_SOURCE define into Makefile + - selftests/resctrl: Reduce failures due to outliers in MBA/MBM tests + - hid: lenovo: Resend all settings on reset_resume for compact keyboards + - ASoC: codecs: wsa-macro: fix uninitialized stack variables with name prefix + - jbd2: fix potential data lost in recovering journal raced with synchronizing + fs bdev + - quota: explicitly forbid quota files from being encrypted + - kernel/reboot: emergency_restart: Set correct system_state + - i2c: core: Run atomic i2c xfer when !preemptible + - selftests/clone3: Fix broken test under !CONFIG_TIME_NS + - tracing: Have the user copy of synthetic event address use correct context + - driver core: Release all resources during unbind before updating device + links + - mcb: fix error handling for different scenarios when parsing + - dmaengine: stm32-mdma: correct desc prep when channel running + - s390/mm: add missing arch_set_page_dat() call to vmem_crst_alloc() + - s390/cmma: fix detection of DAT pages + - mm/cma: use nth_page() in place of direct struct page manipulation + - mm/memory_hotplug: use pfn math in place of direct struct page manipulation + - mm: make PR_MDWE_REFUSE_EXEC_GAIN an unsigned long + - mtd: cfi_cmdset_0001: Byte swap OTP info + - cxl/region: Do not try to cleanup after cxl_region_setup_targets() fails + - i3c: master: cdns: Fix reading status register + - i3c: master: svc: fix race condition in ibi work thread + - i3c: master: svc: fix wrong data return when IBI happen during start frame + - i3c: master: svc: fix ibi may not return mandatory data byte + - i3c: master: svc: fix check wrong status register in irq handler + - i3c: master: svc: fix SDA keep low when polling IBIWON timeout happen + - i3c: master: svc: fix random hot join failure since timeout error + - cxl/region: Fix x1 root-decoder granularity calculations + - cxl/port: Fix delete_endpoint() vs parent unregistration race + - pmdomain: bcm: bcm2835-power: check if the ASB register is equal to enable + - pmdomain: amlogic: Fix mask for the second NNA mem PD domain + - pmdomain: imx: Make imx pgc power domain also set the fwnode + - PCI: qcom-ep: Add dedicated callback for writing to DBI2 registers + - PCI: Lengthen reset delay for VideoPropulsion Torrent QN16e card + - torture: Add a kthread-creation callback to _torture_create_kthread() + - torture: Add lock_torture writer_fifo module parameter + - torture: Make torture_hrtimeout_*() use TASK_IDLE + - torture: Move stutter_wait() timeouts to hrtimers + - torture: Make torture_hrtimeout_ns() take an hrtimer mode parameter + - rcutorture: Fix stuttering races and other issues + - mm/hugetlb: prepare hugetlb_follow_page_mask() for FOLL_PIN + - mm/hugetlb: use nth_page() in place of direct struct page manipulation + - parisc: Prevent booting 64-bit kernels on PA1.x machines + - parisc/pgtable: Do not drop upper 5 address bits of physical address + - parisc/power: Fix power soft-off when running on qemu + - xhci: Enable RPM on controllers that support low-power states + - fs: add ctime accessors infrastructure + - smb3: fix creating FIFOs when mounting with "sfu" mount option + - smb3: fix touch -h of symlink + - smb3: allow dumping session and tcon id to improve stats analysis and + debugging + - smb3: fix caching of ctime on setxattr + - smb: client: fix use-after-free bug in cifs_debug_data_proc_show() + - smb: client: fix use-after-free in smb2_query_info_compound() + - smb: client: fix potential deadlock when releasing mids + - cifs: reconnect helper should set reconnect for the right channel + - cifs: force interface update before a fresh session setup + - cifs: do not reset chan_max if multichannel is not supported at mount + - cifs: Fix encryption of cleared, but unset rq_iter data buffers + - xfs: recovery should not clear di_flushiter unconditionally + - btrfs: zoned: wait for data BG to be finished on direct IO allocation + - ALSA: info: Fix potential deadlock at disconnection + - ALSA: hda/realtek: Enable Mute LED on HP 255 G8 + - ALSA: hda/realtek - Add Dell ALC295 to pin fall back table + - ALSA: hda/realtek - Enable internal speaker of ASUS K6500ZC + - ALSA: hda/realtek: Enable Mute LED on HP 255 G10 + - ALSA: hda/realtek: Add quirks for HP Laptops + - Revert ncsi: Propagate carrier gain/loss events to the NCSI controller + - Revert "i2c: pxa: move to generic GPIO recovery" + - lsm: fix default return value for vm_enough_memory + - lsm: fix default return value for inode_getsecctx + - sbsa_gwdt: Calculate timeout with 64-bit math + - i2c: designware: Disable TX_EMPTY irq while waiting for block length byte + - s390/ap: fix AP bus crash on early config change callback invocation + - net: ethtool: Fix documentation of ethtool_sprintf() + - net: dsa: lan9303: consequently nested-lock physical MDIO + - net: phylink: initialize carrier state at creation + - gfs2: don't withdraw if init_threads() got interrupted + - i2c: i801: fix potential race in i801_block_transaction_byte_by_byte + - f2fs: do not return EFSCORRUPTED, but try to run online repair + - f2fs: set the default compress_level on ioctl + - f2fs: avoid format-overflow warning + - f2fs: split initial and dynamic conditions for extent_cache + - media: lirc: drop trailing space from scancode transmit + - media: sharp: fix sharp encoding + - media: venus: hfi_parser: Add check to keep the number of codecs within + range + - media: venus: hfi: fix the check to handle session buffer requirement + - media: venus: hfi: add checks to handle capabilities from firmware + - media: ccs: Correctly initialise try compose rectangle + - drm/mediatek/dp: fix memory leak on ->get_edid callback audio detection + - drm/mediatek/dp: fix memory leak on ->get_edid callback error path + - dm-bufio: fix no-sleep mode + - dm-verity: don't use blocking calls from tasklets + - nfsd: fix file memleak on client_opens_release + - NFSD: Update nfsd_cache_append() to use xdr_stream + - LoongArch: Mark __percpu functions as always inline + - riscv: Using TOOLCHAIN_HAS_ZIHINTPAUSE marco replace zihintpause + - riscv: put interrupt entries into .irqentry.text + - riscv: mm: Update the comment of CONFIG_PAGE_OFFSET + - riscv: correct pt_level name via pgtable_l5/4_enabled + - riscv: kprobes: allow writing to x0 + - mmc: sdhci-pci-gli: A workaround to allow GL9750 to enter ASPM L1.2 + - mm: fix for negative counter: nr_file_hugepages + - mm: kmem: drop __GFP_NOFAIL when allocating objcg vectors + - mptcp: deal with large GSO size + - mptcp: add validity check for sending RM_ADDR + - mptcp: fix setsockopt(IP_TOS) subflow locking + - selftests: mptcp: fix fastclose with csum failure + - mmc: sdhci-pci-gli: GL9750: Mask the replay timer timeout of AER + - media: qcom: camss: Fix pm_domain_on sequence in probe + - media: qcom: camss: Fix vfe_get() error jump + - media: qcom: camss: Fix VFE-17x vfe_disable_output() + - media: qcom: camss: Fix VFE-480 vfe_disable_output() + - media: qcom: camss: Fix missing vfe_lite clocks check + - media: qcom: camss: Fix set CSI2_RX_CFG1_VC_MODE when VC is greater than 3 + - media: qcom: camss: Fix invalid clock enable bit disjunction + - media: qcom: camss: Fix csid-gen2 for test pattern generator + - ext4: fix race between writepages and remount + - ext4: make sure allocate pending entry not fail + - ext4: apply umask if ACL support is disabled + - ext4: correct offset of gdb backup in non meta_bg group to update_backups + - ext4: mark buffer new if it is unwritten to avoid stale data exposure + - ext4: correct return value of ext4_convert_meta_bg + - ext4: correct the start block of counting reserved clusters + - ext4: remove gdb backup copy for meta bg in setup_new_flex_group_blocks + - ext4: add missed brelse in update_backups + - ext4: properly sync file size update after O_SYNC direct IO + - ext4: fix racy may inline data check in dio write + - drm/amd/pm: Handle non-terminated overdrive commands. + - drm: bridge: it66121: ->get_edid callback must not return err pointers + - drm/i915/mtl: Support HBR3 rate with C10 phy and eDP in MTL + - drm/i915: Bump GLK CDCLK frequency when driving multiple pipes + - drm/i915: Fix potential spectre vulnerability + - drm/i915: Flush WC GGTT only on required platforms + - drm/amdgpu/smu13: drop compute workload workaround + - drm/amdgpu: don't use pci_is_thunderbolt_attached() + - drm/amdgpu: fix GRBM read timeout when do mes_self_test + - drm/amdgpu: add a retry for IP discovery init + - drm/amdgpu: don't use ATRM for external devices + - drm/amdgpu: fix error handling in amdgpu_vm_init + - drm/amdgpu: fix error handling in amdgpu_bo_list_get() + - drm/amdgpu: lower CS errors to debug severity + - drm/amdgpu: Fix possible null pointer dereference + - drm/amd/display: Guard against invalid RPTR/WPTR being set + - drm/amd/display: Fix DSC not Enabled on Direct MST Sink + - drm/amd/display: fix a NULL pointer dereference in amdgpu_dm_i2c_xfer() + - drm/amd/display: Enable fast plane updates on DCN3.2 and above + - drm/amd/display: Change the DMCUB mailbox memory location from FB to inbox + - powerpc/powernv: Fix fortify source warnings in opal-prd.c + - tracing: Have trace_event_file have ref counters + - net/mlx5e: Avoid referencing skb after free-ing in drop path of + mlx5e_sq_xmit_wqe + - net/mlx5e: Track xmit submission to PTP WQ after populating metadata map + - Linux 6.5.13 + * Mantic update: v6.5.12 upstream stable release (LP: #2051129) + - hwmon: (nct6775) Fix incorrect variable reuse in fan_div calculation + - numa: Generalize numa_map_to_online_node() + - sched/topology: Fix sched_numa_find_nth_cpu() in CPU-less case + - sched/topology: Fix sched_numa_find_nth_cpu() in non-NUMA case + - sched/fair: Fix cfs_rq_is_decayed() on !SMP + - iov_iter, x86: Be consistent about the __user tag on copy_mc_to_user() + - sched/uclamp: Set max_spare_cap_cpu even if max_spare_cap is 0 + - sched/uclamp: Ignore (util == 0) optimization in feec() when p_util_max = 0 + - objtool: Propagate early errors + - sched: Fix stop_one_cpu_nowait() vs hotplug + - nfsd: Handle EOPENSTALE correctly in the filecache + - vfs: fix readahead(2) on block devices + - writeback, cgroup: switch inodes with dirty timestamps to release dying + cgwbs + - x86/srso: Fix SBPB enablement for (possible) future fixed HW + - x86/srso: Print mitigation for retbleed IBPB case + - x86/srso: Fix vulnerability reporting for missing microcode + - x86/srso: Fix unret validation dependencies + - futex: Don't include process MM in futex key on no-MMU + - x86/numa: Introduce numa_fill_memblks() + - ACPI/NUMA: Apply SRAT proximity domain to entire CFMWS window + - x86/sev-es: Allow copy_from_kernel_nofault() in earlier boot + - x86/boot: Fix incorrect startup_gdt_descr.size + - cpu/hotplug: Remove dependancy against cpu_primary_thread_mask + - cpu/SMT: Create topology_smt_thread_allowed() + - cpu/SMT: Make SMT control more robust against enumeration failures + - x86/apic: Fake primary thread mask for XEN/PV + - srcu: Fix callbacks acceleration mishandling + - drivers/clocksource/timer-ti-dm: Don't call clk_get_rate() in stop function + - x86/nmi: Fix out-of-order NMI nesting checks & false positive warning + - pstore/platform: Add check for kstrdup + - perf: Optimize perf_cgroup_switch() + - selftests/x86/lam: Zero out buffer for readlink() + - PCI/MSI: Provide stubs for IMS functions + - string: Adjust strtomem() logic to allow for smaller sources + - genirq/matrix: Exclude managed interrupts in irq_matrix_allocated() + - irqchip/sifive-plic: Fix syscore registration for multi-socket systems + - wifi: ath12k: fix undefined behavior with __fls in dp + - wifi: cfg80211: add flush functions for wiphy work + - wifi: mac80211: move radar detect work to wiphy work + - wifi: mac80211: move scan work to wiphy work + - wifi: mac80211: move offchannel works to wiphy work + - wifi: mac80211: move sched-scan stop work to wiphy work + - wifi: mac80211: fix RCU usage warning in mesh fast-xmit + - wifi: cfg80211: fix off-by-one in element defrag + - wifi: mac80211: fix # of MSDU in A-MSDU calculation + - wifi: iwlwifi: honor the enable_ini value + - wifi: iwlwifi: don't use an uninitialized variable + - i40e: fix potential memory leaks in i40e_remove() + - iavf: Fix promiscuous mode configuration flow messages + - selftests/bpf: Correct map_fd to data_fd in tailcalls + - bpf, x86: save/restore regs with BPF_DW size + - bpf, x86: allow function arguments up to 12 for TRACING + - bpf, x64: Fix tailcall infinite loop + - wifi: cfg80211: fix kernel-doc for wiphy_delayed_work_flush() + - udp: introduce udp->udp_flags + - udp: move udp->no_check6_tx to udp->udp_flags + - udp: move udp->no_check6_rx to udp->udp_flags + - udp: move udp->gro_enabled to udp->udp_flags + - udp: add missing WRITE_ONCE() around up->encap_rcv + - udp: move udp->accept_udp_{l4|fraglist} to udp->udp_flags + - udp: lockless UDP_ENCAP_L2TPINUDP / UDP_GRO + - udp: annotate data-races around udp->encap_type + - udplite: remove UDPLITE_BIT + - udplite: fix various data-races + - selftests/bpf: Skip module_fentry_shadow test when bpf_testmod is not + available + - tcp: call tcp_try_undo_recovery when an RTOd TFO SYNACK is ACKed + - bpf: Fix kfunc callback register type handling + - gve: Use size_add() in call to struct_size() + - mlxsw: Use size_mul() in call to struct_size() + - tls: Use size_add() in call to struct_size() + - tipc: Use size_add() in calls to struct_size() + - net: spider_net: Use size_add() in call to struct_size() + - net: ethernet: mtk_wed: fix EXT_INT_STATUS_RX_FBUF definitions for MT7986 + SoC + - wifi: rtw88: debug: Fix the NULL vs IS_ERR() bug for debugfs_create_file() + - wifi: ath12k: fix DMA unmap warning on NULL DMA address + - wifi: ath11k: fix boot failure with one MSI vector + - wifi: mac80211: fix check for unusable RX result + - PM: sleep: Fix symbol export for _SIMPLE_ variants of _PM_OPS() + - cpufreq: tegra194: fix warning due to missing opp_put + - wifi: mt76: mt7603: rework/fix rx pse hang check + - wifi: mt76: mt7603: improve watchdog reset reliablity + - wifi: mt76: mt7603: improve stuck beacon handling + - wifi: mt76: connac: move connac3 definitions in mt76_connac3_mac.h + - wifi: mt76: remove unused error path in mt76_connac_tx_complete_skb + - wifi: mt76: mt7996: set correct wcid in txp + - wifi: mt76: mt7996: fix beamform mcu cmd configuration + - wifi: mt76: mt7996: fix beamformee ss subfield in EHT PHY cap + - wifi: mt76: mt7996: fix wmm queue mapping + - wifi: mt76: mt7996: fix rx rate report for CBW320-2 + - wifi: mt76: mt7996: fix TWT command format + - wifi: mt76: update beacon size limitation + - wifi: mt76: fix potential memory leak of beacon commands + - wifi: mt76: get rid of false alamrs of tx emission issues + - wifi: mt76: fix per-band IEEE80211_CONF_MONITOR flag comparison + - wifi: mt76: mt7915: fix beamforming availability check + - wifi: ath: dfs_pattern_detector: Fix a memory initialization issue + - tcp_metrics: add missing barriers on delete + - tcp_metrics: properly set tp->snd_ssthresh in tcp_init_metrics() + - tcp_metrics: do not create an entry from tcp_init_metrics() + - wifi: rtlwifi: fix EDCA limit set by BT coexistence + - ACPI: property: Allow _DSD buffer data only for byte accessors + - ACPI: video: Add acpi_backlight=vendor quirk for Toshiba Portégé R100 + - can: etas_es58x: rework the version check logic to silence -Wformat- + truncation + - can: etas_es58x: add missing a blank line after declaration + - wifi: ath11k: fix Tx power value during active CAC + - can: dev: can_restart(): don't crash kernel if carrier is OK + - can: dev: can_restart(): fix race condition between controller restart and + netif_carrier_on() + - can: dev: can_put_echo_skb(): don't crash kernel if can_priv::echo_skb is + accessed out of bounds + - PM / devfreq: rockchip-dfi: Make pmu regmap mandatory + - wifi: wfx: fix case where rates are out of order + - netfilter: nf_tables: Drop pointless memset when dumping rules + - wifi: rtw88: Remove duplicate NULL check before calling usb_kill/free_urb() + - thermal: core: prevent potential string overflow + - r8169: fix rare issue with broken rx after link-down on RTL8125 + - thermal/drivers/mediatek: Fix probe for THERMAL_V2 + - bpf: Fix missed rcu read lock in bpf_task_under_cgroup() + - selftests: netfilter: test for sctp collision processing in nf_conntrack + - net: skb_find_text: Ignore patterns extending past 'to' + - thermal: core: Don't update trip points inside the hysteresis range + - chtls: fix tp->rcv_tstamp initialization + - tcp: fix cookie_init_timestamp() overflows + - wifi: iwlwifi: mvm: update station's MFP flag after association + - wifi: iwlwifi: mvm: fix removing pasn station for responder + - wifi: iwlwifi: mvm: use correct sta ID for IGTK/BIGTK + - wifi: mac80211: don't recreate driver link debugfs in reconfig + - wifi: mac80211: Fix setting vif links + - wifi: iwlwifi: yoyo: swap cdb and jacket bits values + - wifi: iwlwifi: mvm: Correctly set link configuration + - wifi: iwlwifi: mvm: Fix key flags for IGTK on AP interface + - wifi: iwlwifi: mvm: Don't always bind/link the P2P Device interface + - wifi: iwlwifi: mvm: change iwl_mvm_flush_sta() API + - wifi: iwlwifi: mvm: fix iwl_mvm_mac_flush_sta() + - wifi: iwlwifi: mvm: remove TDLS stations from FW + - wifi: iwlwifi: increase number of RX buffers for EHT devices + - wifi: iwlwifi: mvm: fix netif csum flags + - wifi: iwlwifi: pcie: synchronize IRQs before NAPI + - wifi: iwlwifi: mvm: update IGTK in mvmvif upon D3 resume + - wifi: iwlwifi: empty overflow queue during flush + - Bluetooth: ISO: Use defer setup to separate PA sync and BIG sync + - Bluetooth: ISO: Pass BIG encryption info through QoS + - Bluetooth: Make handle of hci_conn be unique + - Bluetooth: hci_sync: Fix Opcode prints in bt_dev_dbg/err + - bpf: Fix unnecessary -EBUSY from htab_lock_bucket + - ACPI: sysfs: Fix create_pnp_modalias() and create_of_modalias() + - mptcp: properly account fastopen data + - ipv6: avoid atomic fragment on GSO packets + - virtio_net: use u64_stats_t infra to avoid data-races + - net: add DEV_STATS_READ() helper + - ipvlan: properly track tx_errors + - regmap: debugfs: Fix a erroneous check after snprintf() + - spi: tegra: Fix missing IRQ check in tegra_slink_probe() + - clk: qcom: ipq5332: Drop set rate parent from gpll0 dependent clocks + - clk: qcom: gcc-msm8996: Remove RPM bus clocks + - clk: qcom: clk-rcg2: Fix clock rate overflow for high parent frequencies + - clk: qcom: mmcc-msm8998: Don't check halt bit on some branch clks + - clk: qcom: mmcc-msm8998: Fix the SMMU GDSC + - clk: qcom: gcc-sm8150: Fix gcc_sdcc2_apps_clk_src + - regulator: mt6358: Fail probe on unknown chip ID + - clk: imx: Select MXC_CLK for CLK_IMX8QXP + - clk: imx: imx8mq: correct error handling path + - clk: imx: imx8qxp: Fix elcdif_pll clock + - clk: renesas: rcar-gen3: Extend SDnH divider table + - clk: renesas: rzg2l: Wait for status bit of SD mux before continuing + - clk: renesas: rzg2l: Lock around writes to mux register + - clk: renesas: rzg2l: Trust value returned by hardware + - clk: renesas: rzg2l: Use FIELD_GET() for PLL register fields + - clk: renesas: rzg2l: Fix computation formula + - clk: linux/clk-provider.h: fix kernel-doc warnings and typos + - spi: nxp-fspi: use the correct ioremap function + - clk: ralink: mtmips: quiet unused variable warning + - clk: keystone: pll: fix a couple NULL vs IS_ERR() checks + - clk: ti: fix double free in of_ti_divider_clk_setup() + - clk: npcm7xx: Fix incorrect kfree + - clk: mediatek: clk-mt6765: Add check for mtk_alloc_clk_data + - clk: mediatek: clk-mt6779: Add check for mtk_alloc_clk_data + - clk: mediatek: clk-mt6797: Add check for mtk_alloc_clk_data + - clk: mediatek: clk-mt7629-eth: Add check for mtk_alloc_clk_data + - clk: mediatek: clk-mt7629: Add check for mtk_alloc_clk_data + - clk: mediatek: clk-mt2701: Add check for mtk_alloc_clk_data + - clk: qcom: config IPQ_APSS_6018 should depend on QCOM_SMEM + - clk: qcom: clk-alpha-pll: introduce stromer plus ops + - clk: qcom: apss-ipq-pll: Use stromer plus ops for stromer plus pll + - clk: qcom: apss-ipq-pll: Fix 'l' value for ipq5332_pll_config + - clk: qcom: ipq9574: drop the CLK_SET_RATE_PARENT flag from GPLL clocks + - clk: qcom: ipq5332: drop the CLK_SET_RATE_PARENT flag from GPLL clocks + - clk: mediatek: fix double free in mtk_clk_register_pllfh() + - platform/x86: wmi: Fix probe failure when failing to register WMI devices + - platform/x86: wmi: Fix opening of char device + - regulator: qcom-rpmh: Fix smps4 regulator for pm8550ve + - hwmon: (axi-fan-control) Fix possible NULL pointer dereference + - hwmon: (coretemp) Fix potentially truncated sysfs attribute name + - Revert "hwmon: (sch56xx-common) Add DMI override table" + - Revert "hwmon: (sch56xx-common) Add automatic module loading on supported + devices" + - hwmon: (sch5627) Use bit macros when accessing the control register + - hwmon: (sch5627) Disallow write access if virtual registers are locked + - hte: tegra: Fix missing error code in tegra_hte_test_probe() + - platform/chrome: cros_ec_lpc: Separate host command and irq disable + - spi: omap2-mcspi: remove redundant dev_err_probe() + - spi: omap2-mcspi: switch to use modern name + - spi: omap2-mcspi: Fix hardcoded reference clock + - drm: bridge: samsung-dsim: Initialize ULPS EXIT for i.MX8M DSIM + - drm: bridge: for GENERIC_PHY_MIPI_DPHY also select GENERIC_PHY + - drm: bridge: samsung-dsim: Fix waiting for empty cmd transfer FIFO on older + Exynos + - drm/rockchip: vop: Fix reset of state in duplicate state crtc funcs + - drm/rockchip: vop: Fix call to crtc reset helper + - drm/rockchip: vop2: Don't crash for invalid duplicate_state + - drm/rockchip: vop2: Add missing call to crtc reset helper + - drm/radeon: possible buffer overflow + - drm: bridge: it66121: Fix invalid connector dereference + - drm/bridge: lt8912b: Fix bridge_detach + - drm/bridge: lt8912b: Fix crash on bridge detach + - drm/bridge: lt8912b: Manually disable HPD only if it was enabled + - drm/bridge: lt8912b: Add missing drm_bridge_attach call + - drm/mediatek: Fix coverity issue with unintentional integer overflow + - x86/tdx: Zero out the missing RSI in TDX_HYPERCALL macro + - drm/bridge: tc358768: Fix use of uninitialized variable + - drm/bridge: tc358768: Fix bit updates + - drm/bridge: tc358768: Use struct videomode + - drm/bridge: tc358768: Print logical values, not raw register values + - drm/bridge: tc358768: Use dev for dbg prints, not priv->dev + - drm/bridge: tc358768: Rename dsibclk to hsbyteclk + - drm/bridge: tc358768: Clean up clock period code + - drm/bridge: tc358768: Fix tc358768_ns_to_cnt() + - drm/aspeed: Convert to platform remove callback returning void + - drm/stm: Convert to platform remove callback returning void + - drm/tve200: Convert to platform remove callback returning void + - drm: Call drm_atomic_helper_shutdown() at shutdown/remove time for misc + drivers + - drm/amdgpu: Increase IH soft ring size for GFX v9.4.3 dGPU + - drm/amdkfd: fix some race conditions in vram buffer alloc/free of svm code + - drm/amdkfd: retry after EBUSY is returned from hmm_ranges_get_pages + - drm/amdkfd: Remove svm range validated_once flag + - drm/amdkfd: Handle errors from svm validate and map + - drm/amd/display: Fix null pointer dereference in error message + - drm/amd/display: Check all enabled planes in dm_check_crtc_cursor + - drm/amd/display: Refactor dm_get_plane_scale helper + - drm/amd/display: Bail from dm_check_crtc_cursor if no relevant change + - io_uring/kbuf: Fix check of BID wrapping in provided buffers + - io_uring/kbuf: Allow the full buffer id space for provided buffers + - drm/mediatek: Add mmsys_dev_num to mt8188 vdosys0 driver data + - drm/mediatek: Fix iommu fault by swapping FBs after updating plane state + - drm/mediatek: Fix iommu fault during crtc enabling + - accel/habanalabs/gaudi2: Fix incorrect string length computation in + gaudi2_psoc_razwi_get_engines() + - drm/rockchip: cdn-dp: Fix some error handling paths in cdn_dp_probe() + - gpu: host1x: Correct allocated size for contexts + - drm/bridge: lt9611uxc: fix the race in the error path + - arm64/arm: xen: enlighten: Fix KPTI checks + - drm/rockchip: Fix type promotion bug in rockchip_gem_iommu_map() + - xenbus: fix error exit in xenbus_init() + - xen-pciback: Consider INTx disabled when MSI/MSI-X is enabled + - drm/msm/dsi: use msm_gem_kernel_put to free TX buffer + - drm/msm/dsi: free TX buffer in unbind + - clocksource/drivers/arm_arch_timer: limit XGene-1 workaround + - drm: mediatek: mtk_dsi: Fix NO_EOT_PACKET settings/handling + - drivers/perf: hisi: use cpuhp_state_remove_instance_nocalls() for + hisi_hns3_pmu uninit process + - drm/amd/pm: Fix a memory leak on an error path + - perf/arm-cmn: Fix DTC domain detection + - drivers/perf: hisi_pcie: Check the type first in pmu::event_init() + - perf: hisi: Fix use-after-free when register pmu fails + - ARM: dts: renesas: blanche: Fix typo in GP_11_2 pin name + - arm64: dts: qcom: sdm845: Fix PSCI power domain names + - arm64: dts: qcom: sdm845: cheza doesn't support LMh node + - arm64: dts: qcom: sc7280: link usb3_phy_wrapper_gcc_usb30_pipe_clk + - arm64: dts: qcom: msm8916: Fix iommu local address range + - arm64: dts: qcom: msm8992-libra: drop duplicated reserved memory + - arm64: dts: qcom: sm6125: Pad APPS IOMMU address to 8 characters + - arm64: dts: qcom: sc7280: Add missing LMH interrupts + - arm64: dts: qcom: qrb2210-rb1: Swap UART index + - arm64: dts: qcom: sc7280: drop incorrect EUD port on SoC side + - arm64: dts: qcom: sm8150: add ref clock to PCIe PHYs + - arm64: dts: qcom: sm8350: fix pinctrl for UART18 + - arm64: dts: qcom: sdm845-mtp: fix WiFi configuration + - ARM64: dts: marvell: cn9310: Use appropriate label for spi1 pins + - arm64: dts: qcom: msm8976: Fix ipc bit shifts + - arm64: dts: qcom: msm8939: Fix iommu local address range + - riscv: dts: allwinner: remove address-cells from intc node + - arm64: dts: qcom: apq8016-sbc: Add missing ADV7533 regulators + - ARM: dts: qcom: apq8026-samsung-matisse-wifi: Fix inverted hall sensor + - ARM: dts: qcom: mdm9615: populate vsdcc fixed regulator + - soc: qcom: llcc: Handle a second device without data corruption + - kunit: Fix missed memory release in kunit_free_suite_set() + - firmware: ti_sci: Mark driver as non removable + - arm64: dts: ti: k3-am625-beagleplay: Fix typo in ramoops reg + - arm64: dts: ti: k3-am62a7-sk: Drop i2c-1 to 100Khz + - firmware: arm_ffa: Assign the missing IDR allocation ID to the FFA device + - firmware: arm_ffa: Allow the FF-A drivers to use 32bit mode of messaging + - ARM: dts: am3517-evm: Fix LED3/4 pinmux + - clk: scmi: Free scmi_clk allocated when the clocks with invalid info are + skipped + - arm64: dts: imx8qm-ss-img: Fix jpegenc compatible entry + - arm64: dts: imx8mp-debix-model-a: Remove USB hub reset-gpios + - arm64: dts: imx8mm: Add sound-dai-cells to micfil node + - arm64: dts: imx8mn: Add sound-dai-cells to micfil node + - arm64: tegra: Fix P3767 card detect polarity + - arm64: tegra: Fix P3767 QSPI speed + - firmware: tegra: Add suspend hook and reset BPMP IPC early on resume + - memory: tegra: Set BPMP msg flags to reset IPC channels + - arm64: tegra: Use correct interrupts for Tegra234 TKE + - selftests/pidfd: Fix ksft print formats + - selftests/resctrl: Ensure the benchmark commands fits to its array + - soc: qcom: pmic_glink: fix connector type to be DisplayPort + - ARM: dts: BCM5301X: Explicitly disable unused switch CPU ports + - iommufd: Add iopt_area_alloc() + - module/decompress: use vmalloc() for gzip decompression workspace + - ASoC: cs35l41: Handle mdsync_down reg write errors + - ASoC: cs35l41: Initialize completion object before requesting IRQ + - ASoC: cs35l41: Verify PM runtime resume errors in IRQ handler + - ASoC: cs35l41: Undo runtime PM changes at driver exit time + - ALSA: hda: cs35l41: Fix unbalanced pm_runtime_get() + - ALSA: hda: cs35l41: Undo runtime PM changes at driver exit time + - KEYS: Include linux/errno.h in linux/verification.h + - crypto: hisilicon/hpre - Fix a erroneous check after snprintf() + - hwrng: bcm2835 - Fix hwrng throughput regression + - hwrng: geode - fix accessing registers + - RDMA/core: Use size_{add,sub,mul}() in calls to struct_size() + - crypto: qat - fix state machines cleanup paths + - crypto: qat - ignore subsequent state up commands + - crypto: qat - fix unregistration of crypto algorithms + - crypto: qat - fix unregistration of compression algorithms + - scsi: ibmvfc: Fix erroneous use of rtas_busy_delay with hcall return code + - ASoC: soc-pcm.c: Make sure DAI parameters cleared if the DAI becomes + inactive + - libnvdimm/of_pmem: Use devm_kstrdup instead of kstrdup and check its return + value + - nd_btt: Make BTT lanes preemptible + - crypto: caam/qi2 - fix Chacha20 + Poly1305 self test failure + - crypto: caam/jr - fix Chacha20 + Poly1305 self test failure + - crypto: qat - increase size of buffers + - ASoC: SOF: ipc4-topology: Use size_add() in call to struct_size() + - PCI: vmd: Correct PCI Header Type Register's multi-function check + - hid: cp2112: Fix duplicate workqueue initialization + - crypto: hisilicon/qm - fix PF queue parameter issue + - ARM: 9321/1: memset: cast the constant byte to unsigned char + - ARM: 9323/1: mm: Fix ARCH_LOW_ADDRESS_LIMIT when CONFIG_ZONE_DMA + - ext4: move 'ix' sanity check to corrent position + - kselftest: vm: fix mdwe's mmap_FIXED test case + - ASoC: fsl: mpc5200_dma.c: Fix warning of Function parameter or member not + described + - backlight: pwm_bl: Disable PWM on shutdown, suspend and remove + - ASoC: fsl-asoc-card: Add comment for mclk in the codec_priv + - dlm: fix no ack after final message + - IB/mlx5: Fix rdma counter binding for RAW QP + - RDMA/hns: Fix printing level of asynchronous events + - RDMA/hns: Fix uninitialized ucmd in hns_roce_create_qp_common() + - RDMA/hns: Fix signed-unsigned mixed comparisons + - RDMA/hns: Add check for SL + - RDMA/hns: The UD mode can only be configured with DCQCN + - ASoC: SOF: core: Ensure sof_ops_free() is still called when probe never ran. + - ASoC: fsl: Fix PM disable depth imbalance in fsl_easrc_probe + - scsi: ufs: core: Leave space for '\0' in utf8 desc string + - RDMA/hfi1: Workaround truncation compilation error + - HID: cp2112: Make irq_chip immutable + - hid: cp2112: Fix IRQ shutdown stopping polling for all IRQs on chip + - HID: uclogic: Fix user-memory-access bug in + uclogic_params_ugee_v2_init_event_hooks() + - HID: uclogic: Fix a work->entry not empty bug in __queue_work() + - sh: bios: Revive earlyprintk support + - HID: logitech-hidpp: Don't restart IO, instead defer hid_connect() only + - HID: logitech-hidpp: Revert "Don't restart communication if not necessary" + - HID: logitech-hidpp: Move get_wireless_feature_index() check to + hidpp_connect_event() + - ASoC: Intel: Skylake: Fix mem leak when parsing UUIDs fails + - PCI: endpoint: Fix double free in __pci_epc_create() + - padata: Fix refcnt handling in padata_free_shell() + - certs: Break circular dependency when selftest is modular + - crypto: qat - fix deadlock in backlog processing + - ASoC: ams-delta.c: use component after check + - erofs: fix erofs_insert_workgroup() lockref usage + - IB/mlx5: Fix init stage error handling to avoid double free of same QP and + UAF + - mfd: core: Un-constify mfd_cell.of_reg + - mfd: core: Ensure disabled devices are skipped without aborting + - mfd: dln2: Fix double put in dln2_probe + - dt-bindings: mfd: mt6397: Split out compatible for MediaTek MT6366 PMIC + - mfd: arizona-spi: Set pdata.hpdet_channel for ACPI enumerated devs + - leds: turris-omnia: Drop unnecessary mutex locking + - leds: turris-omnia: Do not use SMBUS calls + - leds: pwm: Don't disable the PWM when the LED should be off + - leds: trigger: ledtrig-cpu:: Fix 'output may be truncated' issue for 'cpu' + - scripts/gdb: fix usage of MOD_TEXT not defined when CONFIG_MODULES=n + - perf stat: Fix aggr mode initialization + - iio: frequency: adf4350: Use device managed functions and fix power down + issue. + - perf kwork: Fix incorrect and missing free atom in work_push_atom() + - perf kwork: Add the supported subcommands to the document + - perf kwork: Set ordered_events to true in 'struct perf_tool' + - f2fs: compress: fix deadloop in f2fs_write_cache_pages() + - f2fs: compress: fix to avoid use-after-free on dic + - f2fs: compress: fix to avoid redundant compress extension + - f2fs: fix to drop meta_inode's page cache in f2fs_put_super() + - tty: tty_jobctrl: fix pid memleak in disassociate_ctty() + - perf parse-events: Remove unused PE_PMU_EVENT_FAKE token + - perf parse-events: Remove unused PE_KERNEL_PMU_EVENT token + - perf parse-events: Remove ABORT_ON + - perf tools: Revert enable indices setting syntax for BPF map + - perf parse-events: Fix tracepoint name memory leak + - livepatch: Fix missing newline character in klp_resolve_symbols() + - pinctrl: renesas: rzg2l: Make reverse order of enable() for disable() + - perf record: Fix BTF type checks in the off-cpu profiling + - dmaengine: idxd: Register dsa_bus_type before registering idxd sub-drivers + - usb: dwc2: fix possible NULL pointer dereference caused by driver + concurrency + - usb: chipidea: Fix DMA overwrite for Tegra + - usb: chipidea: Simplify Tegra DMA alignment code + - dmaengine: ti: edma: handle irq_of_parse_and_map() errors + - tools/perf: Update call stack check in builtin-lock.c + - misc: st_core: Do not call kfree_skb() under spin_lock_irqsave() + - tools: iio: iio_generic_buffer ensure alignment + - USB: usbip: fix stub_dev hub disconnect + - dmaengine: pxa_dma: Remove an erroneous BUG_ON() in pxad_free_desc() + - f2fs: fix to initialize map.m_pblk in f2fs_precache_extents() + - interconnect: qcom: qdu1000: Set ACV enable_mask + - interconnect: qcom: sc7180: Retire DEFINE_QBCM + - interconnect: qcom: sc7180: Set ACV enable_mask + - interconnect: qcom: sc7280: Set ACV enable_mask + - interconnect: qcom: sc8180x: Set ACV enable_mask + - interconnect: qcom: sc8280xp: Set ACV enable_mask + - interconnect: qcom: sdm670: Retire DEFINE_QBCM + - interconnect: qcom: sdm670: Set ACV enable_mask + - interconnect: qcom: sdm845: Retire DEFINE_QBCM + - interconnect: qcom: sdm845: Set ACV enable_mask + - interconnect: qcom: sm6350: Retire DEFINE_QBCM + - interconnect: qcom: sm6350: Set ACV enable_mask + - interconnect: qcom: sm8150: Retire DEFINE_QBCM + - interconnect: qcom: sm8150: Set ACV enable_mask + - interconnect: qcom: sm8350: Retire DEFINE_QBCM + - interconnect: qcom: sm8350: Set ACV enable_mask + - powerpc: Only define __parse_fpscr() when required + - interconnect: fix error handling in qnoc_probe() + - perf build: Add missing comment about NO_LIBTRACEEVENT=1 + - perf parse-events: Fix for term values that are raw events + - perf pmu: Remove logic for PMU name being NULL + - perf mem-events: Avoid uninitialized read + - s390/ap: re-init AP queues on config on + - modpost: fix tee MODULE_DEVICE_TABLE built on big-endian host + - modpost: fix ishtp MODULE_DEVICE_TABLE built on big-endian host + - perf tools: Do not ignore the default vmlinux.h + - powerpc/40x: Remove stale PTE_ATOMIC_UPDATES macro + - powerpc/xive: Fix endian conversion size + - powerpc: Hide empty pt_regs at base of the stack + - perf trace: Use the right bpf_probe_read(_str) variant for reading user data + - powerpc/vas: Limit open window failure messages in log bufffer + - powerpc/imc-pmu: Use the correct spinlock initializer. + - powerpc/pseries: fix potential memory leak in init_cpu_associativity() + - perf vendor events: Update PMC used in PM_RUN_INST_CMPL event for power10 + platform + - xhci: Loosen RPM as default policy to cover for AMD xHC 1.1 + - usb: host: xhci-plat: fix possible kernel oops while resuming + - perf machine: Avoid out of bounds LBR memory read + - libperf rc_check: Make implicit enabling work for GCC + - perf hist: Add missing puts to hist__account_cycles + - perf vendor events intel: Fix broadwellde tma_info_system_dram_bw_use metric + - perf vendor events intel: Add broadwellde two metrics + - 9p/net: fix possible memory leak in p9_check_errors() + - rtla: Fix uninitialized variable found + - i3c: Fix potential refcount leak in i3c_master_register_new_i3c_devs + - rtc: brcmstb-waketimer: support level alarm_irq + - cxl/pci: Remove unnecessary device reference management in sanitize work + - cxl/pci: Cleanup 'sanitize' to always poll + - cxl/pci: Remove inconsistent usage of dev_err_probe() + - cxl/pci: Clarify devm host for memdev relative setup + - cxl/pci: Fix sanitize notifier setup + - cxl/memdev: Fix sanitize vs decoder setup locking + - cxl/mem: Fix shutdown order + - virt: sevguest: Fix passing a stack buffer as a scatterlist target + - rtc: pcf85363: Allow to wake up system without IRQ + - rtc: pcf85363: fix wrong mask/val parameters in regmap_update_bits call + - cxl/region: Prepare the decoder match range helper for reuse + - cxl/region: Calculate a target position in a region interleave + - cxl/region: Use cxl_calc_interleave_pos() for auto-discovery + - cxl/region: Fix cxl_region_rwsem lock held when returning to user space + - cxl/core/regs: Rename @dev to @host in struct cxl_register_map + - cxl/port: Fix @host confusion in cxl_dport_setup_regs() + - cxl/hdm: Remove broken error path + - pcmcia: cs: fix possible hung task and memory leak pccardd() + - pcmcia: ds: fix refcount leak in pcmcia_device_add() + - pcmcia: ds: fix possible name leak in error path in pcmcia_device_add() + - media: imx-jpeg: initiate a drain of the capture queue in dynamic resolution + change + - media: hantro: Check whether reset op is defined before use + - media: verisilicon: Do not enable G2 postproc downscale if source is + narrower than destination + - media: ov5640: fix vblank unchange issue when work at dvp mode + - media: i2c: max9286: Fix some redundant of_node_put() calls + - media: ov5640: Fix a memory leak when ov5640_probe fails + - media: bttv: fix use after free error due to btv->timeout timer + - media: amphion: handle firmware debug message + - media: mtk-jpegenc: Fix bug in JPEG encode quality selection + - media: s3c-camif: Avoid inappropriate kfree() + - media: vidtv: psi: Add check for kstrdup + - media: vidtv: mux: Add check and kfree for kstrdup + - media: cedrus: Fix clock/reset sequence + - media: cadence: csi2rx: Unregister v4l2 async notifier + - media: dvb-usb-v2: af9035: fix missing unlock + - media: verisilicon: Fixes clock list for rk3588 av1 decoder + - media: imx-jpeg: notify source chagne event when the first picture parsed + - media: platform: mtk-mdp3: fix uninitialized variable in mdp_path_config() + - media: cec: meson: always include meson sub-directory in Makefile + - cpupower: fix reference to nonexistent document + - regmap: prevent noinc writes from clobbering cache + - drm/amdgpu/gfx10,11: use memcpy_to/fromio for MQDs + - drm/amdgpu: don't put MQDs in VRAM on ARM | ARM64 + - pwm: sti: Reduce number of allocations and drop usage of chip_data + - pwm: brcmstb: Utilize appropriate clock APIs in suspend/resume + - Input: synaptics-rmi4 - fix use after free in rmi_unregister_function() + - watchdog: ixp4xx: Make sure restart always works + - llc: verify mac len before reading mac header + - hsr: Prevent use after free in prp_create_tagged_frame() + - tipc: Change nla_policy for bearer-related names to NLA_NUL_STRING + - rxrpc: Fix two connection reaping bugs + - bpf: Check map->usercnt after timer->timer is assigned + - inet: shrink struct flowi_common + - octeontx2-pf: Fix error codes + - octeontx2-pf: Fix holes in error code + - net: page_pool: add missing free_percpu when page_pool_init fail + - dccp: Call security_inet_conn_request() after setting IPv4 addresses. + - dccp/tcp: Call security_inet_conn_request() after setting IPv6 addresses. + - Fix termination state for idr_for_each_entry_ul() + - net: stmmac: xgmac: Enable support for multiple Flexible PPS outputs + - selftests: pmtu.sh: fix result checking + - octeontx2-pf: Free pending and dropped SQEs + - net/smc: fix dangling sock under state SMC_APPFINCLOSEWAIT + - net/smc: allow cdc msg send rather than drop it with NULL sndbuf_desc + - net/smc: put sk reference if close work was canceled + - nvme: fix error-handling for io_uring nvme-passthrough + - riscv: boot: Fix creation of loader.bin + - tg3: power down device only on SYSTEM_POWER_OFF + - nbd: fix uaf in nbd_open + - blk-core: use pr_warn_ratelimited() in bio_check_ro() + - vsock/virtio: remove socket from connected/bound list on shutdown + - r8169: respect userspace disabling IFF_MULTICAST + - net: enetc: shorten enetc_setup_xdp_prog() error message to fit + NETLINK_MAX_FMTMSG_LEN + - i2c: iproc: handle invalid slave state + - netfilter: xt_recent: fix (increase) ipv6 literal buffer length + - netfilter: nat: fix ipv6 nat redirect with mapped and scoped addresses + - net/sched: act_ct: Always fill offloading tuple iifidx + - RISC-V: Don't fail in riscv_of_parent_hartid() for disabled HARTs + - module/decompress: use kvmalloc() consistently + - drm/vc4: tests: Fix UAF in the mock helpers + - drm/syncobj: fix DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE + - ASoC: mediatek: mt8186_mt6366_rt1019_rt5682s: trivial: fix error messages + - ASoC: hdmi-codec: register hpd callback on component probe + - ASoC: dapm: fix clock get name + - spi: spi-zynq-qspi: add spi-mem to driver kconfig dependencies + - arm64/arm: arm_pmuv3: perf: Don't truncate 64-bit registers + - fbdev: imsttfb: fix double free in probe() + - fbdev: imsttfb: fix a resource leak in probe + - fbdev: fsl-diu-fb: mark wr_reg_wa() static + - tracing/kprobes: Fix the order of argument descriptions + - Revert "drm/ast: report connection status on Display Port." + - selftests: mptcp: fix wait_rm_addr/sf parameters + - io_uring/net: ensure socket is marked connected on connect retry + - x86/amd_nb: Use Family 19h Models 60h-7Fh Function 4 IDs + - Revert "PCI/ASPM: Disable only ASPM_STATE_L1 when driver, disables L1" + - btrfs: use u64 for buffer sizes in the tree search ioctls + - bpf, x86: initialize the variable "first_off" in save_args() + - perf parse-events: Fix driver config term + - btrfs: make found_logical_ret parameter mandatory for function + queue_scrub_stripe() + - Linux 6.5.12 + * Mantic update: v6.5.11 upstream stable release (LP: #2051117) + - ASoC: Intel: sof_sdw: add support for SKU 0B14 + - ASoC: simple-card: fixup asoc_simple_probe() error handling + - coresight: tmc-etr: Disable warnings for allocation failures + - ASoC: fsl-asoc-card: use integer type for fll_id and pll_id + - ASoC: core: Do not call link_exit() on uninitialized rtd objects + - ASoC: tlv320adc3xxx: BUG: Correct micbias setting + - net: sched: cls_u32: Fix allocation size in u32_init() + - arm64: dts: imx93: add the Flex-CAN stop mode by GPR + - can: flexcan: remove the auto stop mode for IMX93 + - irqchip/riscv-intc: Mark all INTC nodes as initialized + - irqchip/stm32-exti: add missing DT IRQ flag translation + - dmaengine: ste_dma40: Fix PM disable depth imbalance in d40_probe + - ata: pata_parport: add custom version of wait_after_reset + - ata: pata_parport: fit3: implement IDE command set registers + - powerpc/85xx: Fix math emulation exception + - media: i2c: ov8858: Don't set fwnode in the driver + - Input: synaptics-rmi4 - handle reset delay when using SMBus trsnsport + - fbdev: atyfb: only use ioremap_uc() on i386 and ia64 + - fs/ntfs3: Add ckeck in ni_update_parent() + - fs/ntfs3: Write immediately updated ntfs state + - fs/ntfs3: Use kvmalloc instead of kmalloc(... __GFP_NOWARN) + - fs/ntfs3: Add more attributes checks in mi_enum_attr() + - fs/ntfs3: Fix alternative boot searching + - fs/ntfs3: Add more info into /proc/fs/ntfs3//volinfo + - fs/ntfs3: Do not allow to change label if volume is read-only + - fs/ntfs3: Fix possible NULL-ptr-deref in ni_readpage_cmpr() + - fs/ntfs3: Fix NULL pointer dereference on error in attr_allocate_frame() + - fs/ntfs3: Fix directory element type detection + - fs/ntfs3: Avoid possible memory leak + - spi: npcm-fiu: Fix UMA reads when dummy.nbytes == 0 + - ASoC: soc-dapm: Add helper for comparing widget name + - netfilter: nfnetlink_log: silence bogus compiler warning + - net/mlx5: Bridge, fix peer entry ageing in LAG mode + - x86/efistub: Don't try to print after ExitBootService() + - efi: fix memory leak in krealloc failure handling + - ASoC: rt5650: fix the wrong result of key button + - ASoC: codecs: tas2780: Fix log of failed reset via I2C. + - s390/kasan: handle DCSS mapping in memory holes + - fbdev: omapfb: fix some error codes + - fbdev: uvesafb: Call cn_del_callback() at the end of uvesafb_exit() + - scsi: mpt3sas: Fix in error path + - ASoC: da7219: Correct the process of setting up Gnd switch in AAD + - drm/amdgpu: Unset context priority is now invalid + - gpu/drm: Eliminate DRM_SCHED_PRIORITY_UNSET + - LoongArch: Use SYM_CODE_* to annotate exception handlers + - LoongArch: Export symbol invalid_pud_table for modules building + - LoongArch: Replace kmap_atomic() with kmap_local_page() in + copy_user_highpage() + - LoongArch: Disable WUC for pgprot_writecombine() like ioremap_wc() + - netfilter: nf_tables: audit log object reset once per table + - platform/mellanox: mlxbf-tmfifo: Fix a warning message + - drm/amdgpu: Reserve fences for VM update + - riscv: dts: thead: set dma-noncoherent to soc bus + - net: chelsio: cxgb4: add an error code check in t4_load_phy_fw + - r8152: Check for unplug in rtl_phy_patch_request() + - r8152: Check for unplug in r8153b_ups_en() / r8153c_ups_en() + - powerpc/mm: Fix boot crash with FLATMEM + - ceph_wait_on_conflict_unlink(): grab reference before dropping ->d_lock + - drm/amd/display: Don't use fsleep for PSR exit waits + - rust: make `UnsafeCell` the outer type in `Opaque` + - rust: types: make `Opaque` be `!Unpin` + - perf evlist: Avoid frequency mode for the dummy event + - mmap: fix vma_iterator in error path of vma_merge() + - mmap: fix error paths with dup_anon_vma() + - ALSA: usb-audio: add quirk flag to enable native DSD for McIntosh devices + - PCI: Prevent xHCI driver from claiming AMD VanGogh USB3 DRD device + - usb: storage: set 1.50 as the lower bcdDevice for older "Super Top" + compatibility + - usb: typec: tcpm: Add additional checks for contaminant + - usb: typec: tcpm: Fix NULL pointer dereference in tcpm_pd_svdm() + - usb: raw-gadget: properly handle interrupted requests + - Bluetooth: hci_bcm4377: Mark bcm4378/bcm4387 as BROKEN_LE_CODED + - tty: n_gsm: fix race condition in status line change on dead connections + - tty: 8250: Remove UC-257 and UC-431 + - tty: 8250: Add support for additional Brainboxes UC cards + - tty: 8250: Add support for Brainboxes UP cards + - tty: 8250: Add support for Intashield IS-100 + - tty: 8250: Fix port count of PX-257 + - tty: 8250: Fix up PX-803/PX-857 + - tty: 8250: Add support for additional Brainboxes PX cards + - tty: 8250: Add support for Intashield IX cards + - tty: 8250: Add Brainboxes Oxford Semiconductor-based quirks + - dt-bindings: serial: rs485: Add rs485-rts-active-high + - misc: pci_endpoint_test: Add deviceID for J721S2 PCIe EP device support + - serial: core: Fix runtime PM handling for pending tx + - ALSA: hda: intel-dsp-config: Fix JSL Chromebook quirk detection + - ASoC: SOF: sof-pci-dev: Fix community key quirk detection + - Linux 6.5.11 + * Mantic update: v6.5.11 upstream stable release (LP: #2051117) // black + screen when wake up from s3 with AMD W7600 gfx (LP: #2051341) + - drm/ttm: Reorder sys manager cleanup step + * CVE-2024-0646 + - net: tls, update curr on splice as well + * CVE-2024-0582 + - io_uring: enable io_mem_alloc/free to be used in other parts + - io_uring/kbuf: defer release of mapped buffer rings + * CVE-2024-0565 + - smb: client: fix OOB in receive_encrypted_standard() + * CVE-2023-51781 + - appletalk: Fix Use-After-Free in atalk_ioctl + * Reject connection when malformed L2CAP signal packet is received + (LP: #2047634) + - Bluetooth: L2CAP: Send reject on command corrupted request + * Mantic update: v6.5.10 upstream stable release (LP: #2049412) + - vdpa/mlx5: Fix firmware error on creation of 1k VQs + - smb3: allow controlling length of time directory entries are cached with dir + leases + - smb3: allow controlling maximum number of cached directories + - smb3: do not start laundromat thread when dir leases disabled + - smb: client: do not start laundromat thread on nohandlecache + - smb: client: make laundromat a delayed worker + - smb: client: prevent new fids from being removed by laundromat + - virtio_balloon: Fix endless deflation and inflation on arm64 + - virtio-mmio: fix memory leak of vm_dev + - virtio-crypto: handle config changed by work queue + - virtio_pci: fix the common cfg map size + - vsock/virtio: initialize the_virtio_vsock before using VQs + - vhost: Allow null msg.size on VHOST_IOTLB_INVALIDATE + - arm64: dts: qcom: apq8096-db820c: fix missing clock populate + - arm64: dts: qcom: msm8996-xiaomi: fix missing clock populate + - arm64: dts: rockchip: use codec as clock master on px30-ringneck-haikou + - arm64: dts: rockchip: set codec system-clock-fixed on px30-ringneck-haikou + - arm64: dts: qcom: sa8775p: correct PMIC GPIO label in gpio-ranges + - arm64: dts: rockchip: Add i2s0-2ch-bus-bclk-off pins to RK3399 + - arm64: dts: rockchip: Fix i2s0 pin conflict on ROCK Pi 4 boards + - i40e: sync next_to_clean and next_to_process for programming status desc + - mm: fix vm_brk_flags() to not bail out while holding lock + - hugetlbfs: clear resv_map pointer if mmap fails + - mm/page_alloc: correct start page when guard page debug is enabled + - mm/migrate: fix do_pages_move for compat pointers + - selftests/mm: include mman header to access MREMAP_DONTUNMAP identifier + - mm/mempolicy: fix set_mempolicy_home_node() previous VMA pointer + - hugetlbfs: extend hugetlb_vma_lock to private VMAs + - maple_tree: add GFP_KERNEL to allocations in mas_expected_entries() + - nfsd: lock_rename() needs both directories to live on the same fs + - vdpa_sim_blk: Fix the potential leak of mgmt_dev + - vdpa/mlx5: Fix double release of debugfs entry + - ARM: OMAP1: ams-delta: Fix MODEM initialization failure + - ARM: dts: rockchip: Fix i2c0 register address for RK3128 + - ARM: dts: rockchip: Add missing arm timer interrupt for RK3128 + - ARM: dts: rockchip: Add missing quirk for RK3128's dma engine + - ARM: dts: rockchip: Fix timer clocks for RK3128 + - accel/ivpu: Don't enter d0i3 during FLR + - drm/i915/pmu: Check if pmu is closed before stopping event + - drm/amd: Disable ASPM for VI w/ all Intel systems + - drm/dp_mst: Fix NULL deref in get_mst_branch_device_by_guid_helper() + - btrfs: remove v0 extent handling + - btrfs: fix unwritten extent buffer after snapshotting a new subvolume + - ARM: OMAP: timer32K: fix all kernel-doc warnings + - firmware/imx-dsp: Fix use_after_free in imx_dsp_setup_channels() + - clk: ti: Fix missing omap4 mcbsp functional clock and aliases + - clk: ti: Fix missing omap5 mcbsp functional clock and aliases + - r8169: fix the KCSAN reported data-race in rtl_tx() while reading tp->cur_tx + - r8169: fix the KCSAN reported data-race in rtl_tx while reading + TxDescArray[entry].opts1 + - r8169: fix the KCSAN reported data race in rtl_rx while reading desc->opts1 + - iavf: initialize waitqueues before starting watchdog_task + - i40e: Fix I40E_FLAG_VF_VLAN_PRUNING value + - treewide: Spelling fix in comment + - igb: Fix potential memory leak in igb_add_ethtool_nfc_entry + - net: do not leave an empty skb in write queue + - neighbour: fix various data-races + - igc: Fix ambiguity in the ethtool advertising + - net: ethernet: adi: adin1110: Fix uninitialized variable + - net: ieee802154: adf7242: Fix some potential buffer overflow in + adf7242_stats_show() + - net: usb: smsc95xx: Fix uninit-value access in smsc95xx_read_reg + - r8152: Increase USB control msg timeout to 5000ms as per spec + - r8152: Run the unload routine if we have errors during probe + - r8152: Cancel hw_phy_work if we have an error in probe + - r8152: Release firmware if we have an error in probe + - tcp: fix wrong RTO timeout when received SACK reneging + - wifi: cfg80211: pass correct pointer to rdev_inform_bss() + - wifi: cfg80211: fix assoc response warning on failed links + - wifi: mac80211: don't drop all unprotected public action frames + - net/handshake: fix file ref count in handshake_nl_accept_doit() + - gtp: uapi: fix GTPA_MAX + - gtp: fix fragmentation needed check with gso + - drm/i915/perf: Determine context valid in OA reports + - i40e: Fix wrong check for I40E_TXR_FLAGS_WB_ON_ITR + - netfilter: flowtable: GC pushes back packets to classic path + - net/sched: act_ct: additional checks for outdated flows + - drm/logicvc: Kconfig: select REGMAP and REGMAP_MMIO + - drm/i915/mcr: Hold GT forcewake during steering operations + - iavf: in iavf_down, disable queues when removing the driver + - scsi: sd: Introduce manage_shutdown device flag + - blk-throttle: check for overflow in calculate_bytes_allowed + - kasan: print the original fault addr when access invalid shadow + - iio: afe: rescale: Accept only offset channels + - iio: exynos-adc: request second interupt only when touchscreen mode is used + - iio: adc: xilinx-xadc: Don't clobber preset voltage/temperature thresholds + - iio: adc: xilinx-xadc: Correct temperature offset/scale for UltraScale + - i2c: muxes: i2c-mux-pinctrl: Use of_get_i2c_adapter_by_node() + - i2c: muxes: i2c-mux-gpmux: Use of_get_i2c_adapter_by_node() + - i2c: muxes: i2c-demux-pinctrl: Use of_get_i2c_adapter_by_node() + - i2c: stm32f7: Fix PEC handling in case of SMBUS transfers + - i2c: aspeed: Fix i2c bus hang in slave read + - tracing/kprobes: Fix symbol counting logic by looking at modules as well + - tracing/kprobes: Fix the description of variable length arguments + - misc: fastrpc: Reset metadata buffer to avoid incorrect free + - misc: fastrpc: Free DMA handles for RPC calls with no arguments + - misc: fastrpc: Clean buffers on remote invocation failures + - misc: fastrpc: Unmap only if buffer is unmapped from DSP + - nvmem: imx: correct nregs for i.MX6ULL + - nvmem: imx: correct nregs for i.MX6SLL + - nvmem: imx: correct nregs for i.MX6UL + - x86/tsc: Defer marking TSC unstable to a worker + - x86/i8259: Skip probing when ACPI/MADT advertises PCAT compatibility + - x86/cpu: Add model number for Intel Arrow Lake mobile processor + - perf/core: Fix potential NULL deref + - sparc32: fix a braino in fault handling in csum_and_copy_..._user() + - clk: Sanitize possible_parent_show to Handle Return Value of + of_clk_get_parent_name + - clk: socfpga: gate: Account for the divider in determine_rate + - clk: stm32: Fix a signedness issue in clk_stm32_composite_determine_rate() + - platform/x86: Add s2idle quirk for more Lenovo laptops + - mm/damon/sysfs: check DAMOS regions update progress from before_terminate() + - accel/ivpu/37xx: Fix missing VPUIP interrupts + - Linux 6.5.10 + * CVE-2023-6560 + - io_uring: don't allow discontig pages for IORING_SETUP_NO_MMAP + * CVE-2023-51782 + - net/rose: Fix Use-After-Free in rose_ioctl + * Mantic update: v6.5.9 upstream stable release (LP: #2049202) + - Bluetooth: hci_event: Ignore NULL link key + - Bluetooth: Reject connection with the device which has same BD_ADDR + - Bluetooth: Fix a refcnt underflow problem for hci_conn + - Bluetooth: vhci: Fix race when opening vhci device + - Bluetooth: hci_event: Fix coding style + - Bluetooth: avoid memcmp() out of bounds warning + - Bluetooth: hci_conn: Fix modifying handle while aborting + - ice: fix over-shifted variable + - ice: Fix safe mode when DDP is missing + - ice: reset first in crash dump kernels + - net/smc: return the right falback reason when prefix checks fail + - btrfs: fix stripe length calculation for non-zoned data chunk allocation + - nfc: nci: fix possible NULL pointer dereference in send_acknowledge() + - regmap: fix NULL deref on lookup + - KVM: x86: Mask LVTPC when handling a PMI + - x86/fpu: Allow caller to constrain xfeatures when copying to uabi buffer + - KVM: x86/pmu: Truncate counter value to allowed width on write + - KVM: x86: Constrain guest-supported xfeatures only at KVM_GET_XSAVE{2} + - x86: KVM: SVM: add support for Invalid IPI Vector interception + - x86: KVM: SVM: refresh AVIC inhibition in svm_leave_nested() + - tcp: check mptcp-level constraints for backlog coalescing + - mptcp: more conservative check for zero probes + - selftests: mptcp: join: no RST when rm subflow/addr + - mm: slab: Do not create kmalloc caches smaller than arch_slab_minalign() + - fs/ntfs3: Fix OOB read in ntfs_init_from_boot + - fs/ntfs3: Fix possible null-pointer dereference in hdr_find_e() + - fs/ntfs3: fix panic about slab-out-of-bounds caused by ntfs_list_ea() + - fs/ntfs3: Fix shift-out-of-bounds in ntfs_fill_super + - fs/ntfs3: fix deadlock in mark_as_free_ex + - Revert "net: wwan: iosm: enable runtime pm support for 7560" + - netfilter: nft_payload: fix wrong mac header matching + - drm/i915: Retry gtt fault when out of fence registers + - drm/mediatek: Correctly free sg_table in gem prime vmap + - drm/nouveau/disp: fix DP capable DSM connectors + - drm/edid: add 8 bpc quirk to the BenQ GW2765 + - ALSA: hda/realtek - Fixed ASUS platform headset Mic issue + - ALSA: hda/realtek: Add quirk for ASUS ROG GU603ZV + - ALSA: hda/relatek: Enable Mute LED on HP Laptop 15s-fq5xxx + - ASoC: codecs: wcd938x-sdw: fix use after free on driver unbind + - ASoC: codecs: wcd938x-sdw: fix runtime PM imbalance on probe errors + - ASoC: codecs: wcd938x: drop bogus bind error handling + - ASoC: codecs: wcd938x: fix unbind tear down order + - ASoC: codecs: wcd938x: fix resource leaks on bind errors + - ASoC: codecs: wcd938x: fix regulator leaks on probe errors + - ASoC: codecs: wcd938x: fix runtime PM imbalance on remove + - qed: fix LL2 RX buffer allocation + - xfrm: fix a data-race in xfrm_lookup_with_ifid() + - xfrm6: fix inet6_dev refcount underflow problem + - xfrm: fix a data-race in xfrm_gen_index() + - xfrm: interface: use DEV_STATS_INC() + - net: xfrm: skip policies marked as dead while reinserting policies + - fprobe: Fix to ensure the number of active retprobes is not zero + - wifi: cfg80211: use system_unbound_wq for wiphy work + - net: ipv4: fix return value check in esp_remove_trailer + - net: ipv6: fix return value check in esp_remove_trailer + - net: rfkill: gpio: prevent value glitch during probe + - tcp: fix excessive TLP and RACK timeouts from HZ rounding + - tcp: tsq: relax tcp_small_queue_check() when rtx queue contains a single skb + - tcp: Fix listen() warning with v4-mapped-v6 address. + - docs: fix info about representor identification + - tun: prevent negative ifindex + - gve: Do not fully free QPL pages on prefill errors + - ipv4: fib: annotate races around nh->nh_saddr_genid and nh->nh_saddr + - net: usb: smsc95xx: Fix an error code in smsc95xx_reset() + - octeon_ep: update BQL sent bytes before ringing doorbell + - i40e: prevent crash on probe if hw registers have invalid values + - net: dsa: bcm_sf2: Fix possible memory leak in bcm_sf2_mdio_register() + - bonding: Return pointer to data after pull on skb + - net/sched: sch_hfsc: upgrade 'rt' to 'sc' when it becomes a inner curve + - neighbor: tracing: Move pin6 inside CONFIG_IPV6=y section + - selftests: openvswitch: Catch cases where the tests are killed + - selftests: openvswitch: Fix the ct_tuple for v4 + - selftests: netfilter: Run nft_audit.sh in its own netns + - netfilter: nft_set_rbtree: .deactivate fails if element has expired + - netlink: Correct offload_xstats size + - netfilter: nf_tables: do not refresh timeout when resetting element + - netfilter: nf_tables: do not remove elements if set backend implements + .abort + - netfilter: nf_tables: revert do not remove elements if set backend + implements .abort + - selftests: openvswitch: Add version check for pyroute2 + - net: phy: bcm7xxx: Add missing 16nm EPHY statistics + - net: pktgen: Fix interface flags printing + - net: more strict VIRTIO_NET_HDR_GSO_UDP_L4 validation + - net: mdio-mux: fix C45 access returning -EIO after API change + - net: avoid UAF on deleted altname + - net: fix ifname in netlink ntf during netns move + - net: check for altname conflicts when changing netdev's netns + - iio: light: vcnl4000: Don't power on/off chip in config + - pwr-mlxbf: extend Kconfig to include gpio-mlxbf3 dependency + - ARM: dts: ti: omap: Fix noisy serial with overrun-throttle-ms for mapphone + - arm64: dts: mediatek: Fix "mediatek,merge-mute" and "mediatek,merge-fifo-en" + types + - fs-writeback: do not requeue a clean inode having skipped pages + - btrfs: fix race when refilling delayed refs block reserve + - btrfs: prevent transaction block reserve underflow when starting transaction + - btrfs: return -EUCLEAN for delayed tree ref with a ref count not equals to 1 + - btrfs: initialize start_slot in btrfs_log_prealloc_extents + - i2c: mux: Avoid potential false error message in i2c_mux_add_adapter + - overlayfs: set ctime when setting mtime and atime + - accel/ivpu: Don't flood dmesg with VPU ready message + - gpio: timberdale: Fix potential deadlock on &tgpio->lock + - ata: libata-core: Fix compilation warning in ata_dev_config_ncq() + - ata: libata-eh: Fix compilation warning in ata_eh_link_report() + - tracing: relax trace_event_eval_update() execution with cond_resched() + - wifi: mwifiex: Sanity check tlv_len and tlv_bitmap_len + - wifi: cfg80211: validate AP phy operation before starting it + - wifi: iwlwifi: Ensure ack flag is properly cleared. + - rfkill: sync before userspace visibility/changes + - HID: logitech-hidpp: Add Bluetooth ID for the Logitech M720 Triathlon mouse + - HID: holtek: fix slab-out-of-bounds Write in holtek_kbd_input_event + - Bluetooth: btusb: add shutdown function for QCA6174 + - Bluetooth: Avoid redundant authentication + - Bluetooth: hci_core: Fix build warnings + - wifi: cfg80211: Fix 6GHz scan configuration + - wifi: mac80211: work around Cisco AP 9115 VHT MPDU length + - wifi: mac80211: allow transmitting EAPOL frames with tainted key + - wifi: cfg80211: avoid leaking stack data into trace + - regulator/core: Revert "fix kobject release warning and memory leak in + regulator_register()" + - SUNRPC: Fail quickly when server does not recognize TLS + - SUNRPC/TLS: Lock the lower_xprt during the tls handshake + - nfs: decrement nrequests counter before releasing the req + - sky2: Make sure there is at least one frag_addr available + - ipv4/fib: send notify when delete source address routes + - drm: panel-orientation-quirks: Add quirk for One Mix 2S + - btrfs: fix some -Wmaybe-uninitialized warnings in ioctl.c + - btrfs: error out when COWing block using a stale transaction + - btrfs: error when COWing block from a root that is being deleted + - btrfs: error out when reallocating block for defrag using a stale + transaction + - platform/x86: touchscreen_dmi: Add info for the BUSH Bush Windows tablet + - drm/amd/pm: add unique_id for gc 11.0.3 + - HID: multitouch: Add required quirk for Synaptics 0xcd7e device + - HID: nintendo: reinitialize USB Pro Controller after resuming from suspend + - HID: Add quirk to ignore the touchscreen battery on HP ENVY 15-eu0556ng + - platform/x86: touchscreen_dmi: Add info for the Positivo C4128B + - cpufreq: schedutil: Update next_freq when cpufreq_limits change + - Bluetooth: hci_sync: Fix not handling ISO_LINK in hci_abort_conn_sync + - Bluetooth: hci_sync: Introduce PTR_UINT/UINT_PTR macros + - Bluetooth: ISO: Fix invalid context error + - Bluetooth: hci_sync: delete CIS in BT_OPEN/CONNECT/BOUND when aborting + - Bluetooth: hci_sync: always check if connection is alive before deleting + - net/mlx5: E-switch, register event handler before arming the event + - net/mlx5: Handle fw tracer change ownership event based on MTRC + - net/mlx5e: RX, Fix page_pool allocation failure recovery for striding rq + - net/mlx5e: RX, Fix page_pool allocation failure recovery for legacy rq + - net/mlx5e: XDP, Fix XDP_REDIRECT mpwqe page fragment leaks on shutdown + - net/mlx5e: Take RTNL lock before triggering netdev notifiers + - net/mlx5e: Don't offload internal port if filter device is out device + - net/mlx5e: Fix VF representors reporting zero counters to "ip -s" command + - net/tls: split tls_rx_reader_lock + - tcp: allow again tcp_disconnect() when threads are waiting + - Bluetooth: hci_event: Fix using memcmp when comparing keys + - tcp_bpf: properly release resources on error paths + - mtd: rawnand: qcom: Unmap the right resource upon probe failure + - mtd: rawnand: pl353: Ensure program page operations are successful + - mtd: rawnand: marvell: Ensure program page operations are successful + - mtd: rawnand: arasan: Ensure program page operations are successful + - mtd: rawnand: Ensure the nand chip supports cached reads + - mtd: spinand: micron: correct bitmask for ecc status + - mtd: physmap-core: Restore map_rom fallback + - dt-bindings: mmc: sdhci-msm: correct minimum number of clocks + - mmc: sdhci-pci-gli: fix LPM negotiation so x86/S0ix SoCs can suspend + - mmc: mtk-sd: Use readl_poll_timeout_atomic in msdc_reset_hw + - mmc: core: Fix error propagation for some ioctl commands + - mmc: core: sdio: hold retuning if sdio in 1-bit mode + - pinctrl: qcom: lpass-lpi: fix concurrent register updates + - pNFS: Fix a hang in nfs4_evict_inode() + - pNFS/flexfiles: Check the layout validity in ff_layout_mirror_prepare_stats + - NFSv4.1: fixup use EXCHGID4_FLAG_USE_PNFS_DS for DS server + - ACPI: irq: Fix incorrect return value in acpi_register_gsi() + - ACPI: bus: Move acpi_arm_init() to the place of after acpi_ghes_init() + - perf dlfilter: Fix use of addr_location__exit() in dlfilter__object_code() + - fanotify: limit reporting of event with non-decodeable file handles + - NFS: Fix potential oops in nfs_inode_remove_request() + - nfs42: client needs to strip file mode's suid/sgid bit after ALLOCATE op + - nvme: sanitize metadata bounce buffer for reads + - nvme-pci: add BOGUS_NID for Intel 0a54 device + - nvme-auth: use chap->s2 to indicate bidirectional authentication + - nvmet-auth: complete a request only after freeing the dhchap pointers + - nvme-rdma: do not try to stop unallocated queues + - USB: serial: option: add Telit LE910C4-WWX 0x1035 composition + - USB: serial: option: add entry for Sierra EM9191 with new firmware + - USB: serial: option: add Fibocom to DELL custom modem FM101R-GL + - thunderbolt: Call tb_switch_put() once DisplayPort bandwidth request is + finished + - s390/pci: fix iommu bitmap allocation + - tracing/kprobes: Return EADDRNOTAVAIL when func matches several symbols + - selftests/ftrace: Add new test case which checks non unique symbol + - KEYS: asymmetric: Fix sign/verify on pkcs1pad without a hash + - apple-gmux: Hard Code max brightness for MMIO gmux + - s390/cio: fix a memleak in css_alloc_subchannel + - platform/surface: platform_profile: Propagate error if profile registration + fails + - platform/x86: intel-uncore-freq: Conditionally create attribute for read + frequency + - platform/x86: msi-ec: Fix the 3rd config + - platform/x86: asus-wmi: Change ASUS_WMI_BRN_DOWN code from 0x20 to 0x2e + - platform/x86: asus-wmi: Only map brightness codes when using asus-wmi + backlight control + - platform/x86: asus-wmi: Map 0x2a code, Ignore 0x2b and 0x2c events + - rust: error: fix the description for `ECHILD` + - gpiolib: acpi: Add missing memset(0) to acpi_get_gpiod_from_data() + - gpio: vf610: set value before the direction to avoid a glitch + - gpio: vf610: mask the gpio irq in system suspend and support wakeup + - ASoC: cs35l56: Fix illegal use of init_completion() + - ASoC: pxa: fix a memory leak in probe() + - ASoC: cs42l42: Fix missing include of gpio/consumer.h + - drm/bridge: ti-sn65dsi86: Associate DSI device lifetime with auxiliary + device + - drm/i915/cx0: Only clear/set the Pipe Reset bit of the PHY Lanes Owned + - drm/amdgpu: Fix possible null pointer dereference + - powerpc/mm: Allow ARCH_FORCE_MAX_ORDER up to 12 + - powerpc/qspinlock: Fix stale propagated yield_cpu + - docs: Move rustdoc output, cross-reference it + - rust: docs: fix logo replacement + - phy: mapphone-mdm6600: Fix runtime disable on probe + - phy: mapphone-mdm6600: Fix runtime PM for remove + - phy: mapphone-mdm6600: Fix pinctrl_pm handling for sleep pins + - phy: qcom-qmp-usb: initialize PCS_USB registers + - phy: qcom-qmp-usb: split PCS_USB init table for sc8280xp and sa8775p + - phy: qcom-qmp-combo: Square out 8550 POWER_STATE_CONFIG1 + - phy: qcom-qmp-combo: initialize PCS_USB registers + - efi/unaccepted: Fix soft lockups caused by parallel memory acceptance + - net: move altnames together with the netdevice + - Bluetooth: hci_sock: fix slab oob read in create_monitor_event + - net: rfkill: reduce data->mtx scope in rfkill_fop_open + - docs: rust: update Rust docs output path + - kbuild: remove old Rust docs output path + - Bluetooth: hci_sock: Correctly bounds check and pad HCI_MON_NEW_INDEX name + - mptcp: avoid sending RST when closing the initial subflow + - selftests: mptcp: join: correctly check for no RST + - Linux 6.5.9 + * CVE-2023-51779 + - Bluetooth: af_bluetooth: Fix Use-After-Free in bt_sock_recvmsg + + -- Emil Renner Berthing Wed, 28 Feb 2024 12:50:30 +0100 + +linux-riscv (6.5.0-21.21.1) mantic; urgency=medium + + * mantic/linux-riscv: 6.5.0-21.21.1 -proposed tracker (LP: #2052283) + + [ Ubuntu: 6.5.0-21.21 ] + + * mantic/linux: 6.5.0-21.21 -proposed tracker (LP: #2052603) + * The display becomes frozen after some time when a HDMI device is connected. + (LP: #2049027) + - drm/i915/dmc: Don't enable any pipe DMC events + * partproke is broken on empty loopback device (LP: #2049689) + - block: Move checking GENHD_FL_NO_PART to bdev_add_partition() + * CVE-2023-51781 + - appletalk: Fix Use-After-Free in atalk_ioctl + * CVE-2023-51780 + - atm: Fix Use-After-Free in do_vcc_ioctl + * CVE-2023-6915 + - ida: Fix crash in ida_free when the bitmap is empty + * CVE-2024-0565 + - smb: client: fix OOB in receive_encrypted_standard() + * CVE-2024-0582 + - io_uring: enable io_mem_alloc/free to be used in other parts + - io_uring/kbuf: defer release of mapped buffer rings + * CVE-2024-0646 + - net: tls, update curr on splice as well + + -- Emil Renner Berthing Fri, 16 Feb 2024 13:26:46 +0100 + linux-riscv (6.5.0-17.17.1) mantic; urgency=medium * mantic/linux-riscv: 6.5.0-17.17.1 -proposed tracker (LP: #2048366) diff -u linux-riscv-6.5.0/debian.riscv/config/annotations linux-riscv-6.5.0/debian.riscv/config/annotations --- linux-riscv-6.5.0/debian.riscv/config/annotations +++ linux-riscv-6.5.0/debian.riscv/config/annotations @@ -12,23 +12,16 @@ # ---- Annotations without notes ---- CONFIG_AMBA_PL08X policy<{'riscv64': 'y'}> -CONFIG_ARM_AMBA policy<{'riscv64': 'y'}> -CONFIG_ARM_MHU policy<{'riscv64': 'n'}> -CONFIG_ARM_MHU_V2 policy<{'riscv64': 'n'}> -CONFIG_ARM_PL172_MPMC policy<{'riscv64': 'n'}> CONFIG_CLK_STARFIVE_JH7110_ISP policy<{'riscv64': 'm'}> CONFIG_CLK_STARFIVE_JH7110_PLL policy<{'riscv64': 'y'}> CONFIG_CLK_STARFIVE_JH7110_STG policy<{'riscv64': 'y'}> CONFIG_CLK_STARFIVE_JH7110_VOUT policy<{'riscv64': 'm'}> CONFIG_DMA_VIRTUAL_CHANNELS policy<{'riscv64': 'y'}> CONFIG_DRM_PANEL_SITRONIX_ST7701S policy<{'riscv64': 'm'}> -CONFIG_GPIO_PL061 policy<{'riscv64': 'n'}> -CONFIG_I2C_NOMADIK policy<{'riscv64': 'n'}> CONFIG_IOMMU_DMA policy<{'riscv64': 'y'}> CONFIG_IOMMU_IOVA policy<{'riscv64': 'y'}> CONFIG_IRQ_MSI_IOMMU policy<{'riscv64': 'y'}> CONFIG_LEDS_SUN50I_A100 policy<{'riscv64': 'm'}> -CONFIG_MMC_ARMMMCI policy<{'riscv64': 'n'}> CONFIG_NEED_SG_DMA_FLAGS policy<{'riscv64': 'y'}> CONFIG_NEED_SG_DMA_LENGTH policy<{'riscv64': 'y'}> CONFIG_PCIE_PLDA_HOST policy<{'riscv64': 'y'}> @@ -38,14 +31,6 @@ CONFIG_PHY_STARFIVE_JH7110_USB policy<{'riscv64': 'm'}> -CONFIG_PL320_MBOX policy<{'riscv64': 'n'}> -CONFIG_PL330_DMA policy<{'riscv64': 'n'}> CONFIG_PWM_STARFIVE policy<{'riscv64': 'm'}> CONFIG_PWM_SUN8I_V536 policy<{'riscv64': 'm'}> CONFIG_REGULATOR_SUN20I policy<{'riscv64': 'm'}> -CONFIG_RTC_DRV_PL030 policy<{'riscv64': 'n'}> -CONFIG_RTC_DRV_PL031 policy<{'riscv64': 'n'}> -CONFIG_SERIAL_AMBA_PL010 policy<{'riscv64': 'n'}> -CONFIG_SERIAL_AMBA_PL011 policy<{'riscv64': 'n'}> -CONFIG_SERIO_AMBAKMI policy<{'riscv64': 'n'}> CONFIG_SND_SUN20I_CODEC policy<{'riscv64': 'm'}> -CONFIG_SPI_PL022 policy<{'riscv64': 'n'}> CONFIG_SUN20I_GPADC policy<{'riscv64': 'm'}> diff -u linux-riscv-6.5.0/debian.riscv/reconstruct linux-riscv-6.5.0/debian.riscv/reconstruct --- linux-riscv-6.5.0/debian.riscv/reconstruct +++ linux-riscv-6.5.0/debian.riscv/reconstruct @@ -47,10 +47,13 @@ chmod +x 'debian/tests/rebuild' chmod +x 'debian/tests/ubuntu-regression-suite' chmod +x 'drivers/watchdog/f71808e_wdt.c' +chmod +x 'tools/testing/selftests/netfilter/conntrack_sctp_collision.sh' chmod +x 'tools/testing/selftests/netfilter/nft_audit.sh' +chmod +x 'tools/testing/selftests/netfilter/xt_string.sh' chmod +x 'update-dkms-versions' # Remove any files deleted from the orig. rm -f 'Documentation/devicetree/bindings/media/cdns,csi2rx.txt' +rm -f 'Documentation/networking/device_drivers/ethernet/mellanox/mlx5/devlink.rst' rm -f 'arch/parisc/include/asm/mckinley.h' rm -f 'drivers/media/pci/intel/ipu3/cio2-bridge.c' rm -f 'drivers/media/pci/intel/ipu3/cio2-bridge.h' diff -u linux-riscv-6.5.0/debian.riscv/tracking-bug linux-riscv-6.5.0/debian.riscv/tracking-bug --- linux-riscv-6.5.0/debian.riscv/tracking-bug +++ linux-riscv-6.5.0/debian.riscv/tracking-bug @@ -1 +1 @@ -2048366 2024.01.08-1 +2052033 2024.02.05-1 diff -u linux-riscv-6.5.0/debian/changelog linux-riscv-6.5.0/debian/changelog --- linux-riscv-6.5.0/debian/changelog +++ linux-riscv-6.5.0/debian/changelog @@ -1,3 +1,2098 @@ +linux-riscv (6.5.0-25.25.1) mantic; urgency=medium + + * mantic/linux-riscv: 6.5.0-25.25.1 -proposed tracker (LP: #2052033) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/2024.02.05) + + [ Ubuntu: 6.5.0-25.25 ] + + * mantic/linux: 6.5.0-25.25 -proposed tracker (LP: #2052615) + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/2024.02.05) + * [SRU][22.04.04]: mpi3mr driver update (LP: #2045233) + - scsi: mpi3mr: Invoke soft reset upon TSU or event ack time out + - scsi: mpi3mr: Update MPI Headers to version 3.00.28 + - scsi: mpi3mr: Add support for more than 1MB I/O + - scsi: mpi3mr: WRITE SAME implementation + - scsi: mpi3mr: Enhance handling of devices removed after controller reset + - scsi: mpi3mr: Update driver version to 8.5.0.0.0 + - scsi: mpi3mr: Split off bus_reset function from host_reset + - scsi: mpi3mr: Add support for SAS5116 PCI IDs + - scsi: mpi3mr: Add PCI checks where SAS5116 diverges from SAS4116 + - scsi: mpi3mr: Increase maximum number of PHYs to 64 from 32 + - scsi: mpi3mr: Add support for status reply descriptor + - scsi: mpi3mr: driver version upgrade to 8.5.0.0.50 + - scsi: mpi3mr: Refresh sdev queue depth after controller reset + - scsi: mpi3mr: Clean up block devices post controller reset + - scsi: mpi3mr: Block PEL Enable Command on Controller Reset and Unrecoverable + State + - scsi: mpi3mr: Fetch correct device dev handle for status reply descriptor + - scsi: mpi3mr: Support for preallocation of SGL BSG data buffers part-1 + - scsi: mpi3mr: Support for preallocation of SGL BSG data buffers part-2 + - scsi: mpi3mr: Support for preallocation of SGL BSG data buffers part-3 + - scsi: mpi3mr: Update driver version to 8.5.1.0.0 + * The display becomes frozen after some time when a HDMI device is connected. + (LP: #2049027) + - drm/i915/dmc: Don't enable any pipe DMC events + * Audio balancing setting doesn't work with the cirrus codec (LP: #2051050) + - ALSA: hda/cs8409: Suppress vmaster control for Dolphin models + * partproke is broken on empty loopback device (LP: #2049689) + - block: Move checking GENHD_FL_NO_PART to bdev_add_partition() + * CVE-2023-51780 + - atm: Fix Use-After-Free in do_vcc_ioctl + * CVE-2023-6915 + - ida: Fix crash in ida_free when the bitmap is empty + * Update Ubuntu.md (LP: #2051176) + - [Packaging] update Ubuntu.md + * test_021_aslr_dapper_libs from ubuntu_qrt_kernel_security failed on K-5.19 / + J-OEM-6.1 / J-6.2 AMD64 (LP: #1983357) + - [Config]: set ARCH_MMAP_RND_{COMPAT_, }BITS to the maximum + * Intel E810-XXV - NETDEV WATCHDOG: (ice): transmit queue timed out + (LP: #2036239) + - ice: Add driver support for firmware changes for LAG + - ice: alter feature support check for SRIOV and LAG + * Mantic update: upstream stable patchset 2024-01-29 (LP: #2051584) + - Upstream stable to v6.1.67, v6.6.6 + - vdpa/mlx5: preserve CVQ vringh index + - hrtimers: Push pending hrtimers away from outgoing CPU earlier + - i2c: designware: Fix corrupted memory seen in the ISR + - netfilter: ipset: fix race condition between swap/destroy and kernel side + add/del/test + - zstd: Fix array-index-out-of-bounds UBSAN warning + - tg3: Move the [rt]x_dropped counters to tg3_napi + - tg3: Increment tx_dropped in tg3_tso_bug() + - kconfig: fix memory leak from range properties + - drm/amdgpu: correct chunk_ptr to a pointer to chunk. + - x86: Introduce ia32_enabled() + - x86/coco: Disable 32-bit emulation by default on TDX and SEV + - x86/entry: Convert INT 0x80 emulation to IDTENTRY + - x86/entry: Do not allow external 0x80 interrupts + - x86/tdx: Allow 32-bit emulation by default + - dt: dt-extract-compatibles: Handle cfile arguments in generator function + - dt: dt-extract-compatibles: Don't follow symlinks when walking tree + - platform/x86: asus-wmi: Move i8042 filter install to shared asus-wmi code + - of: dynamic: Fix of_reconfig_get_state_change() return value documentation + - platform/x86: wmi: Skip blocks with zero instances + - ipv6: fix potential NULL deref in fib6_add() + - octeontx2-pf: Add missing mutex lock in otx2_get_pauseparam + - octeontx2-af: Check return value of nix_get_nixlf before using nixlf + - hv_netvsc: rndis_filter needs to select NLS + - r8152: Rename RTL8152_UNPLUG to RTL8152_INACCESSIBLE + - r8152: Add RTL8152_INACCESSIBLE checks to more loops + - r8152: Add RTL8152_INACCESSIBLE to r8156b_wait_loading_flash() + - r8152: Add RTL8152_INACCESSIBLE to r8153_pre_firmware_1() + - r8152: Add RTL8152_INACCESSIBLE to r8153_aldps_en() + - mlxbf-bootctl: correctly identify secure boot with development keys + - platform/mellanox: Add null pointer checks for devm_kasprintf() + - platform/mellanox: Check devm_hwmon_device_register_with_groups() return + value + - arcnet: restoring support for multiple Sohard Arcnet cards + - octeontx2-pf: consider both Rx and Tx packet stats for adaptive interrupt + coalescing + - net: stmmac: fix FPE events losing + - xsk: Skip polling event check for unbound socket + - octeontx2-af: fix a use-after-free in rvu_npa_register_reporters + - i40e: Fix unexpected MFS warning message + - iavf: validate tx_coalesce_usecs even if rx_coalesce_usecs is zero + - tcp: fix mid stream window clamp. + - ionic: fix snprintf format length warning + - ionic: Fix dim work handling in split interrupt mode + - ipv4: ip_gre: Avoid skb_pull() failure in ipgre_xmit() + - net: atlantic: Fix NULL dereference of skb pointer in + - net: hns: fix wrong head when modify the tx feature when sending packets + - net: hns: fix fake link up on xge port + - octeontx2-af: Adjust Tx credits when MCS external bypass is disabled + - octeontx2-af: Fix mcs sa cam entries size + - octeontx2-af: Fix mcs stats register address + - octeontx2-af: Add missing mcs flr handler call + - octeontx2-af: Update Tx link register range + - dt-bindings: interrupt-controller: Allow #power-domain-cells + - netfilter: nf_tables: fix 'exist' matching on bigendian arches + - netfilter: nf_tables: validate family when identifying table via handle + - netfilter: xt_owner: Fix for unsafe access of sk->sk_socket + - tcp: do not accept ACK of bytes we never sent + - bpf: sockmap, updating the sg structure should also update curr + - psample: Require 'CAP_NET_ADMIN' when joining "packets" group + - drop_monitor: Require 'CAP_SYS_ADMIN' when joining "events" group + - mm/damon/sysfs: eliminate potential uninitialized variable warning + - tee: optee: Fix supplicant based device enumeration + - RDMA/hns: Fix unnecessary err return when using invalid congest control + algorithm + - RDMA/irdma: Do not modify to SQD on error + - RDMA/irdma: Add wait for suspend on SQD + - arm64: dts: rockchip: Expand reg size of vdec node for RK3328 + - arm64: dts: rockchip: Expand reg size of vdec node for RK3399 + - ASoC: fsl_sai: Fix no frame sync clock issue on i.MX8MP + - RDMA/rtrs-srv: Do not unconditionally enable irq + - RDMA/rtrs-clt: Start hb after path_up + - RDMA/rtrs-srv: Check return values while processing info request + - RDMA/rtrs-srv: Free srv_mr iu only when always_invalidate is true + - RDMA/rtrs-srv: Destroy path files after making sure no IOs in-flight + - RDMA/rtrs-clt: Fix the max_send_wr setting + - RDMA/rtrs-clt: Remove the warnings for req in_use check + - RDMA/bnxt_re: Correct module description string + - RDMA/irdma: Refactor error handling in create CQP + - RDMA/irdma: Fix UAF in irdma_sc_ccq_get_cqe_info() + - hwmon: (acpi_power_meter) Fix 4.29 MW bug + - ASoC: codecs: lpass-tx-macro: set active_decimator correct default value + - hwmon: (nzxt-kraken2) Fix error handling path in kraken2_probe() + - ASoC: wm_adsp: fix memleak in wm_adsp_buffer_populate + - RDMA/core: Fix umem iterator when PAGE_SIZE is greater then HCA pgsz + - RDMA/irdma: Avoid free the non-cqp_request scratch + - drm/bridge: tc358768: select CONFIG_VIDEOMODE_HELPERS + - arm64: dts: imx8mp: imx8mq: Add parkmode-disable-ss-quirk on DWC3 + - ARM: dts: imx6ul-pico: Describe the Ethernet PHY clock + - tracing: Fix a warning when allocating buffered events fails + - scsi: be2iscsi: Fix a memleak in beiscsi_init_wrb_handle() + - ARM: imx: Check return value of devm_kasprintf in imx_mmdc_perf_init + - ARM: dts: imx7: Declare timers compatible with fsl,imx6dl-gpt + - ARM: dts: imx28-xea: Pass the 'model' property + - riscv: fix misaligned access handling of C.SWSP and C.SDSP + - md: don't leave 'MD_RECOVERY_FROZEN' in error path of md_set_readonly() + - rethook: Use __rcu pointer for rethook::handler + - kprobes: consistent rcu api usage for kretprobe holder + - ASoC: amd: yc: Fix non-functional mic on ASUS E1504FA + - nvme-pci: Add sleep quirk for Kingston drives + - io_uring: fix mutex_unlock with unreferenced ctx + - ALSA: usb-audio: Add Pioneer DJM-450 mixer controls + - ALSA: pcm: fix out-of-bounds in snd_pcm_state_names + - ALSA: hda/realtek: add new Framework laptop to quirks + - ALSA: hda/realtek: Add Framework laptop 16 to quirks + - ring-buffer: Test last update in 32bit version of __rb_time_read() + - nilfs2: fix missing error check for sb_set_blocksize call + - nilfs2: prevent WARNING in nilfs_sufile_set_segment_usage() + - cgroup_freezer: cgroup_freezing: Check if not frozen + - checkstack: fix printed address + - tracing: Always update snapshot buffer size + - tracing: Disable snapshot buffer when stopping instance tracers + - tracing: Fix incomplete locking when disabling buffered events + - tracing: Fix a possible race when disabling buffered events + - packet: Move reference count in packet_sock to atomic_long_t + - r8169: fix rtl8125b PAUSE frames blasting when suspended + - regmap: fix bogus error on regcache_sync success + - platform/surface: aggregator: fix recv_buf() return value + - hugetlb: fix null-ptr-deref in hugetlb_vma_lock_write + - mm: fix oops when filemap_map_pmd() without prealloc_pte + - powercap: DTPM: Fix missing cpufreq_cpu_put() calls + - md/raid6: use valid sector values to determine if an I/O should wait on the + reshape + - arm64: dts: mediatek: mt7622: fix memory node warning check + - arm64: dts: mediatek: mt8183-kukui-jacuzzi: fix dsi unnecessary cells + properties + - arm64: dts: mediatek: cherry: Fix interrupt cells for MT6360 on I2C7 + - arm64: dts: mediatek: mt8173-evb: Fix regulator-fixed node names + - arm64: dts: mediatek: mt8195: Fix PM suspend/resume with venc clocks + - arm64: dts: mediatek: mt8183: Fix unit address for scp reserved memory + - arm64: dts: mediatek: mt8183: Move thermal-zones to the root node + - arm64: dts: mediatek: mt8183-evb: Fix unit_address_vs_reg warning on ntc + - coresight: etm4x: Remove bogous __exit annotation for some functions + - hwtracing: hisi_ptt: Add dummy callback pmu::read() + - misc: mei: client.c: return negative error code in mei_cl_write + - misc: mei: client.c: fix problem of return '-EOVERFLOW' in mei_cl_write + - LoongArch: BPF: Don't sign extend memory load operand + - LoongArch: BPF: Don't sign extend function return value + - ring-buffer: Force absolute timestamp on discard of event + - tracing: Set actual size after ring buffer resize + - tracing: Stop current tracer when resizing buffer + - parisc: Reduce size of the bug_table on 64-bit kernel by half + - parisc: Fix asm operand number out of range build error in bug table + - arm64: dts: mediatek: add missing space before { + - arm64: dts: mt8183: kukui: Fix underscores in node names + - x86/sev: Fix kernel crash due to late update to read-only ghcb_version + - gpiolib: sysfs: Fix error handling on failed export + - drm/amd/amdgpu: Fix warnings in amdgpu/amdgpu_display.c + - drm/amdgpu: Add I2C EEPROM support on smu v13_0_6 + - usb: gadget: f_hid: fix report descriptor allocation + - serial: 8250_dw: Add ACPI ID for Granite Rapids-D UART + - parport: Add support for Brainboxes IX/UC/PX parallel cards + - cifs: Fix non-availability of dedup breaking generic/304 + - Revert "xhci: Loosen RPM as default policy to cover for AMD xHC 1.1" + - smb: client: fix potential NULL deref in parse_dfs_referrals() + - ARM: PL011: Fix DMA support + - serial: sc16is7xx: address RX timeout interrupt errata + - serial: 8250: 8250_omap: Clear UART_HAS_RHR_IT_DIS bit + - serial: 8250: 8250_omap: Do not start RX DMA on THRI interrupt + - serial: 8250_omap: Add earlycon support for the AM654 UART controller + - devcoredump: Send uevent once devcd is ready + - x86/CPU/AMD: Check vendor in the AMD microcode callback + - USB: gadget: core: adjust uevent timing on gadget unbind + - cifs: Fix flushing, invalidation and file size with copy_file_range() + - cifs: Fix flushing, invalidation and file size with FICLONE + - MIPS: kernel: Clear FPU states when setting up kernel threads + - KVM: s390/mm: Properly reset no-dat + - KVM: SVM: Update EFER software model on CR0 trap for SEV-ES + - MIPS: Loongson64: Reserve vgabios memory on boot + - MIPS: Loongson64: Handle more memory types passed from firmware + - MIPS: Loongson64: Enable DMA noncoherent support + - riscv: Kconfig: Add select ARM_AMBA to SOC_STARFIVE + - [Config] updateconfigs after enabling ARM_AMBA on riscv + - scsi: sd: Fix sshdr use in sd_suspend_common() + - nouveau: use an rwlock for the event lock. + - modpost: fix section mismatch message for RELA + - drm/amdgpu: Do not program VF copy regs in mmhub v1.8 under SRIOV (v2) + - drm/amdgpu: finalizing mem_partitions at the end of GMC v9 sw_fini + - dm-crypt: start allocating with MAX_ORDER + - r8152: Hold the rtnl_lock for all of reset + - net: dsa: microchip: provide a list of valid protocols for xmit handler + - net/smc: fix missing byte order conversion in CLC handshake + - RDMA/core: Fix uninit-value access in ib_get_eth_speed() + - ARM: dts: imx6q: skov: fix ethernet clock regression + - ARM: dts: rockchip: Fix sdmmc_pwren's pinmux setting for RK3128 + - ARM: dts: bcm2711-rpi-400: Fix delete-node of led_act + - firmware: arm_scmi: Extend perf protocol ops to get number of domains + - firmware: arm_scmi: Extend perf protocol ops to get information of a domain + - firmware: arm_scmi: Fix frequency truncation by promoting multiplier type + - firmware: arm_scmi: Simplify error path in scmi_dvfs_device_opps_add() + - RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned + - RDMA/irdma: Fix support for 64k pages + - io_uring/kbuf: Fix an NULL vs IS_ERR() bug in io_alloc_pbuf_ring() + - io_uring/kbuf: check for buffer list readiness after NULL check + - arm64: dts: imx8-ss-lsio: Add PWM interrupts + - arm64: dts: freescale: imx8-ss-lsio: Fix #pwm-cells + - arm64: dts: imx93: correct mediamix power + - arm64: dts: imx8-apalis: set wifi regulator to always-on + - arm64: dts: rockchip: Fix eMMC Data Strobe PD on rk3588 + - scripts/gdb: fix lx-device-list-bus and lx-device-list-class + - ASoC: amd: yc: Fix non-functional mic on ASUS E1504FA + - ALSA: hda/realtek: Apply quirk for ASUS UM3504DA + - ALSA: hda/realtek: fix speakers on XPS 9530 (2023) + - ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7 + - lib/group_cpus.c: avoid acquiring cpu hotplug lock in group_cpus_evenly + - leds: trigger: netdev: fix RTNL handling to prevent potential deadlock + - nfp: flower: fix for take a mutex lock in soft irq context and rcu lock + - workqueue: Make sure that wq_unbound_cpumask is never empty + - drivers/base/cpu: crash data showing should depends on KEXEC_CORE + - mm/memory_hotplug: add missing mem_hotplug_lock + - mm/memory_hotplug: fix error handling in add_memory_resource() + - drm/atomic-helpers: Invoke end_fb_access while owning plane state + - drm/i915/mst: Fix .mode_valid_ctx() return values + - drm/i915/mst: Reject modes that require the bigjoiner + - arm64: dts: mt7986: change cooling trips + - arm64: dts: mt7986: define 3W max power to both SFP on BPI-R3 + - arm64: dts: mt7986: fix emmc hs400 mode without uboot initialization + - arm64: dts: mediatek: mt8186: fix clock names for power domains + - arm64: dts: mediatek: mt8186: Change gpu speedbin nvmem cell name + - coresight: Fix crash when Perf and sysfs modes are used concurrently + - coresight: ultrasoc-smb: Fix sleep while close preempt in enable_smb + - coresight: ultrasoc-smb: Config SMB buffer before register sink + - coresight: ultrasoc-smb: Fix uninitialized before use buf_hw_base + - ASoC: ops: add correct range check for limiting volume + - nvmem: Do not expect fixed layouts to grab a layout driver + - serial: ma35d1: Validate console index before assignment + - powerpc/ftrace: Fix stack teardown in ftrace_no_trace + - perf metrics: Avoid segv if default metricgroup isn't set + - ASoC: qcom: sc8280xp: Limit speaker digital volumes + - gcc-plugins: randstruct: Update code comment in relayout_struct() + - drm/amdgpu: Fix refclk reporting for SMU v13.0.6 + - drm/amdgpu: Add bootloader status check + - drm/amdgpu: Add bootloader wait for PSP v13 + - drm/amdgpu: Restrict bootloader wait to SMUv13.0.6 + - drm/amdgpu: update retry times for psp vmbx wait + - drm/amdgpu: update retry times for psp BL wait + - drm/amdgpu: Restrict extended wait to PSP v13.0.6 + - Upstream stable to v6.1.68, v6.6.7 + * i915 regression introduced with 5.5 kernel (LP: #2044131) + - drm/i915: Skip some timing checks on BXT/GLK DSI transcoders + * Mantic update: upstream stable patchset 2024-01-26 (LP: #2051366) + - cifs: Fix FALLOC_FL_ZERO_RANGE by setting i_size if EOF moved + - cifs: Fix FALLOC_FL_INSERT_RANGE by setting i_size after EOF moved + - smb: client: report correct st_size for SMB and NFS symlinks + - pinctrl: avoid reload of p state in list iteration + - firewire: core: fix possible memory leak in create_units() + - mmc: sdhci-pci-gli: Disable LPM during initialization + - mmc: cqhci: Increase recovery halt timeout + - mmc: cqhci: Warn of halt or task clear failure + - mmc: cqhci: Fix task clearing in CQE error recovery + - mmc: block: Retry commands in CQE error recovery + - mmc: block: Do not lose cache flush during CQE error recovery + - mmc: block: Be sure to wait while busy in CQE error recovery + - ALSA: hda: Disable power-save on KONTRON SinglePC + - ALSA: hda/realtek: Headset Mic VREF to 100% + - ALSA: hda/realtek: Add supported ALC257 for ChromeOS + - dm-verity: align struct dm_verity_fec_io properly + - scsi: Change SCSI device boolean fields to single bit flags + - scsi: sd: Fix system start for ATA devices + - drm/amd: Enable PCIe PME from D3 + - drm/amdgpu: Force order between a read and write to the same address + - drm/amd/display: Include udelay when waiting for INBOX0 ACK + - drm/amd/display: Remove min_dst_y_next_start check for Z8 + - drm/amd/display: Use DRAM speed from validation for dummy p-state + - drm/amd/display: Update min Z8 residency time to 2100 for DCN314 + - drm/amd/display: fix ABM disablement + - dm verity: initialize fec io before freeing it + - dm verity: don't perform FEC for failed readahead IO + - nvme: check for valid nvme_identify_ns() before using it + - powercap: DTPM: Fix unneeded conversions to micro-Watts + - cpufreq/amd-pstate: Fix the return value of amd_pstate_fast_switch() + - dma-buf: fix check in dma_resv_add_fence + - bcache: revert replacing IS_ERR_OR_NULL with IS_ERR + - iommu/vt-d: Add MTL to quirk list to skip TE disabling + - KVM: PPC: Book3S HV: Fix KVM_RUN clobbering FP/VEC user registers + - powerpc: Don't clobber f0/vs0 during fp|altivec register save + - parisc: Mark ex_table entries 32-bit aligned in assembly.h + - parisc: Mark ex_table entries 32-bit aligned in uaccess.h + - parisc: Use natural CPU alignment for bug_table + - parisc: Mark lock_aligned variables 16-byte aligned on SMP + - parisc: Drop the HP-UX ENOSYM and EREMOTERELEASE error codes + - parisc: Mark jump_table naturally aligned + - parisc: Ensure 32-bit alignment on parisc unwind section + - parisc: Mark altinstructions read-only and 32-bit aligned + - btrfs: add dmesg output for first mount and last unmount of a filesystem + - btrfs: ref-verify: fix memory leaks in btrfs_ref_tree_mod() + - btrfs: fix off-by-one when checking chunk map includes logical address + - btrfs: send: ensure send_fd is writable + - btrfs: make error messages more clear when getting a chunk map + - btrfs: fix 64bit compat send ioctl arguments not initializing version member + - auxdisplay: hd44780: move cursor home after clear display command + - serial: sc16is7xx: Put IOControl register into regmap_volatile + - serial: sc16is7xx: add missing support for rs485 devicetree properties + - dpaa2-eth: increase the needed headroom to account for alignment + - uapi: propagate __struct_group() attributes to the container union + - selftests/net: ipsec: fix constant out of range + - selftests/net: fix a char signedness issue + - selftests/net: unix: fix unused variable compiler warning + - selftests/net: mptcp: fix uninitialized variable warnings + - octeontx2-af: Fix possible buffer overflow + - net: stmmac: xgmac: Disable FPE MMC interrupts + - octeontx2-pf: Fix adding mbox work queue entry when num_vfs > 64 + - octeontx2-af: Install TC filter rules in hardware based on priority + - octeontx2-pf: Restore TC ingress police rules when interface is up + - r8169: prevent potential deadlock in rtl8169_close + - ravb: Fix races between ravb_tx_timeout_work() and net related ops + - net: ravb: Check return value of reset_control_deassert() + - net: ravb: Use pm_runtime_resume_and_get() + - net: ravb: Make write access to CXR35 first before accessing other EMAC + registers + - net: ravb: Start TX queues after HW initialization succeeded + - net: ravb: Stop DMA in case of failures on ravb_open() + - net: ravb: Keep reverse order of operations in ravb_remove() + - octeontx2-af: Initialize 'cntr_val' to fix uninitialized symbol error + - spi: Fix null dereference on suspend + - cpufreq: imx6q: Don't disable 792 Mhz OPP unnecessarily + - iommu/vt-d: Omit devTLB invalidation requests when TES=0 + - iommu/vt-d: Disable PCI ATS in legacy passthrough mode + - iommu/vt-d: Make context clearing consistent with context mapping + - drm/amd/pm: fix a memleak in aldebaran_tables_init + - mmc: sdhci-sprd: Fix vqmmc not shutting down after the card was pulled + - drm/amd/display: Fix MPCC 1DLUT programming + - r8169: fix deadlock on RTL8125 in jumbo mtu mode + - xen: simplify evtchn_do_upcall() call maze + - x86/xen: fix percpu vcpu_info allocation + - smb: client: fix missing mode bits for SMB symlinks + - ksmbd: fix possible deadlock in smb2_open + - drm/i915: Also check for VGA converter in eDP probe + - net: libwx: fix memory leak on msix entry + - drm/amdgpu: correct the amdgpu runtime dereference usage count + - drm/amdgpu: fix memory overflow in the IB test + - drm/amdgpu: Update EEPROM I2C address for smu v13_0_0 + - drm/amd/display: force toggle rate wa for first link training for a retimer + - ACPI: video: Use acpi_video_device for cooling-dev driver data + - iommu/vt-d: Fix incorrect cache invalidation for mm notification + - io_uring: free io_buffer_list entries via RCU + - io_uring: don't guard IORING_OFF_PBUF_RING with SETUP_NO_MMAP + - iommu: Avoid more races around device probe + - ext2: Fix ki_pos update for DIO buffered-io fallback case + - btrfs: free the allocated memory if btrfs_alloc_page_array() fails + - io_uring/kbuf: recycle freed mapped buffer ring entries + - media: v4l2-subdev: Fix a 64bit bug + - netdevsim: Don't accept device bound programs + - net: rswitch: Fix type of ret in rswitch_start_xmit() + - net: rswitch: Fix return value in rswitch_start_xmit() + - net: rswitch: Fix missing dev_kfree_skb_any() in error path + - wifi: iwlwifi: mvm: fix an error code in iwl_mvm_mld_add_sta() + - wifi: mac80211: do not pass AP_VLAN vif pointer to drivers during flush + - net: dsa: mv88e6xxx: fix marvell 6350 switch probing + - dpaa2-eth: recycle the RX buffer only after all processing done + - bpf: Add missed allocation hint for bpf_mem_cache_alloc_flags() + - neighbour: Fix __randomize_layout crash in struct neighbour + - efi/unaccepted: Fix off-by-one when checking for overlapping ranges + - ethtool: don't propagate EOPNOTSUPP from dumps + - bpf, sockmap: af_unix stream sockets need to hold ref for pair sock + - powerpc/pseries/iommu: enable_ddw incorrectly returns direct mapping for SR- + IOV device + - s390/cmma: fix handling of swapper_pg_dir and invalid_pg_dir + - drm/amd/display: Refactor edp power control + - drm/amd/display: Remove power sequencing check + - drm/i915/gsc: Mark internal GSC engine with reserved uabi class + - drm/panel: starry-2081101qfh032011-53g: Fine tune the panel power sequence + - drm/panel: nt36523: fix return value check in nt36523_probe() + - cpufreq/amd-pstate: Fix scaling_min_freq and scaling_max_freq update + - cpufreq/amd-pstate: Only print supported EPP values for performance governor + - iommu: Fix printk arg in of_iommu_get_resv_regions() + - drm/amd/display: refactor ILR to make it work + - drm/amd/display: Reduce default backlight min from 5 nits to 1 nits + - Upstream stable to v6.1.66, v6.6.5 + * Mantic update: upstream stable patchset 2024-01-25 (LP: #2051231) + - afs: Fix afs_server_list to be cleaned up with RCU + - afs: Make error on cell lookup failure consistent with OpenAFS + - drm/panel: auo,b101uan08.3: Fine tune the panel power sequence + - drm/panel: simple: Fix Innolux G101ICE-L01 bus flags + - drm/panel: simple: Fix Innolux G101ICE-L01 timings + - wireguard: use DEV_STATS_INC() + - octeontx2-pf: Fix memory leak during interface down + - ata: pata_isapnp: Add missing error check for devm_ioport_map() + - drm/i915: do not clean GT table on error path + - drm/rockchip: vop: Fix color for RGB888/BGR888 format on VOP full + - HID: fix HID device resource race between HID core and debugging support + - ipv4: Correct/silence an endian warning in __ip_do_redirect + - net: usb: ax88179_178a: fix failed operations during ax88179_reset + - net/smc: avoid data corruption caused by decline + - arm/xen: fix xen_vcpu_info allocation alignment + - octeontx2-pf: Fix ntuple rule creation to direct packet to VF with higher Rx + queue than its PF + - amd-xgbe: handle corner-case during sfp hotplug + - amd-xgbe: handle the corner-case during tx completion + - amd-xgbe: propagate the correct speed and duplex status + - net: axienet: Fix check for partial TX checksum + - afs: Return ENOENT if no cell DNS record can be found + - afs: Fix file locking on R/O volumes to operate in local mode + - arm64: mm: Fix "rodata=on" when CONFIG_RODATA_FULL_DEFAULT_ENABLED=y + - i40e: Fix adding unsupported cloud filters + - nvmet: nul-terminate the NQNs passed in the connect command + - USB: dwc3: qcom: fix resource leaks on probe deferral + - USB: dwc3: qcom: fix ACPI platform device leak + - lockdep: Fix block chain corruption + - cifs: distribute channels across interfaces based on speed + - cifs: account for primary channel in the interface list + - cifs: fix leak of iface for primary channel + - MIPS: KVM: Fix a build warning about variable set but not used + - media: qcom: Initialise V4L2 async notifier later + - media: qcom: camss: Fix V4L2 async notifier error path + - media: qcom: camss: Fix genpd cleanup + - NFSD: Fix "start of NFS reply" pointer passed to nfsd_cache_update() + - NFSD: Fix checksum mismatches in the duplicate reply cache + - ACPI: resource: Skip IRQ override on ASUS ExpertBook B1402CVA + - swiotlb-xen: provide the "max_mapping_size" method + - bcache: replace a mistaken IS_ERR() by IS_ERR_OR_NULL() in + btree_gc_coalesce() + - md: fix bi_status reporting in md_end_clone_io + - bcache: fixup multi-threaded bch_sectors_dirty_init() wake-up race + - io_uring/fs: consider link->flags when getting path for LINKAT + - s390/dasd: protect device queue against concurrent access + - USB: serial: option: add Luat Air72*U series products + - hv_netvsc: fix race of netvsc and VF register_netdevice + - hv_netvsc: Fix race of register_netdevice_notifier and VF register + - hv_netvsc: Mark VF as slave before exposing it to user-mode + - dm-delay: fix a race between delay_presuspend and delay_bio + - bcache: check return value from btree_node_alloc_replacement() + - bcache: prevent potential division by zero error + - bcache: fixup init dirty data errors + - bcache: fixup lock c->root error + - usb: cdnsp: Fix deadlock issue during using NCM gadget + - USB: serial: option: add Fibocom L7xx modules + - USB: serial: option: fix FM101R-GL defines + - USB: serial: option: don't claim interface 4 for ZTE MF290 + - usb: typec: tcpm: Skip hard reset when in error recovery + - USB: dwc2: write HCINT with INTMASK applied + - usb: dwc3: Fix default mode initialization + - usb: dwc3: set the dma max_seg_size + - USB: dwc3: qcom: fix software node leak on probe errors + - USB: dwc3: qcom: fix wakeup after probe deferral + - io_uring: fix off-by one bvec index + - irqchip/gic-v3-its: Flush ITS tables correctly in non-coherent GIC designs + - drm/msm/dsi: use the correct VREG_CTRL_1 value for 4nm cphy + - s390/ism: ism driver implies smc protocol + - rxrpc: Fix RTT determination to use any ACK as a source + - rxrpc: Defer the response to a PING ACK until we've parsed it + - blk-cgroup: avoid to warn !rcu_read_lock_held() in blkg_lookup() + - fs: Pass AT_GETATTR_NOSEC flag to getattr interface function + - net: wangxun: fix kernel panic due to null pointer + - filemap: add a per-mapping stable writes flag + - block: update the stable_writes flag in bdev_add + - PM: tools: Fix sleepgraph syntax error + - net, vrf: Move dstats structure to core + - net: Move {l,t,d}stats allocation to core and convert veth & vrf + - bpf: Fix dev's rx stats for bpf_redirect_peer traffic + - drm/panel: boe-tv101wum-nl6: Fine tune Himax83102-j02 panel HFP and HBP + - s390/ipl: add missing IPL_TYPE_ECKD_DUMP case to ipl_init() + - net: veth: fix ethtool stats reporting + - vsock/test: fix SEQPACKET message bounds test + - net: ipa: fix one GSI register field width + - nvme: blank out authentication fabrics options if not configured + - mm: add a NO_INHERIT flag to the PR_SET_MDWE prctl + - prctl: Disable prctl(PR_SET_MDWE) on parisc + - kselftest/arm64: Fix output formatting for za-fork + - drm/msm/dpu: Add missing safe_lut_tbl in sc8280xp catalog + - drm/ast: Disconnect BMC if physical connector is connected + - thunderbolt: Set lane bonding bit only for downstream port + - ACPI: video: Use acpi_device_fix_up_power_children() + - ACPI: processor_idle: use raw_safe_halt() in acpi_idle_play_dead() + - ACPI: resource: Skip IRQ override on ASUS ExpertBook B1402CVA + - ACPI: PM: Add acpi_device_fix_up_power_children() function + - tls: fix NULL deref on tls_sw_splice_eof() with empty record + - dt-bindings: usb: microchip,usb5744: Add second supply + - usb: misc: onboard-hub: add support for Microchip USB5744 + - platform/x86/amd/pmc: adjust getting DRAM size behavior + - ALSA: hda: ASUS UM5302LA: Added quirks for cs35L41/10431A83 on i2c bus + - ALSA: hda/realtek: Add quirks for ASUS 2024 Zenbooks + - veth: Use tstats per-CPU traffic counters + - USB: xhci-plat: fix legacy PHY double init + - usb: config: fix iteration issue in 'usb_get_bos_descriptor()' + - Upstream stable to v6.1.65, v6.6.4 + * Mantic update: v6.5.13 upstream stable release (LP: #2051142) + - locking/ww_mutex/test: Fix potential workqueue corruption + - btrfs: abort transaction on generation mismatch when marking eb as dirty + - lib/generic-radix-tree.c: Don't overflow in peek() + - x86/retpoline: Make sure there are no unconverted return thunks due to KCSAN + - perf/core: Bail out early if the request AUX area is out of bound + - srcu: Fix srcu_struct node grpmask overflow on 64-bit systems + - selftests/lkdtm: Disable CONFIG_UBSAN_TRAP in test config + - clocksource/drivers/timer-imx-gpt: Fix potential memory leak + - clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware + - srcu: Only accelerate on enqueue time + - smp,csd: Throw an error if a CSD lock is stuck for too long + - cpu/hotplug: Don't offline the last non-isolated CPU + - workqueue: Provide one lock class key per work_on_cpu() callsite + - x86/mm: Drop the 4 MB restriction on minimal NUMA node memory size + - wifi: plfxlc: fix clang-specific fortify warning + - wifi: ath12k: Ignore fragments from uninitialized peer in dp + - wifi: mac80211_hwsim: fix clang-specific fortify warning + - wifi: mac80211: don't return unset power in ieee80211_get_tx_power() + - atl1c: Work around the DMA RX overflow issue + - bpf: Detect IP == ksym.end as part of BPF program + - wifi: ath9k: fix clang-specific fortify warnings + - wifi: ath12k: fix possible out-of-bound read in ath12k_htt_pull_ppdu_stats() + - wifi: ath10k: fix clang-specific fortify warning + - wifi: ath12k: fix possible out-of-bound write in + ath12k_wmi_ext_hal_reg_caps() + - ACPI: APEI: Fix AER info corruption when error status data has multiple + sections + - net: sfp: add quirk for Fiberstone GPON-ONU-34-20BI + - wifi: mt76: mt7921e: Support MT7992 IP in Xiaomi Redmibook 15 Pro (2023) + - net: annotate data-races around sk->sk_tx_queue_mapping + - net: annotate data-races around sk->sk_dst_pending_confirm + - wifi: ath12k: mhi: fix potential memory leak in ath12k_mhi_register() + - wifi: ath10k: Don't touch the CE interrupt registers after power up + - net: sfp: add quirk for FS's 2.5G copper SFP + - vsock: read from socket's error queue + - bpf: Ensure proper register state printing for cond jumps + - wifi: iwlwifi: mvm: fix size check for fw_link_id + - Bluetooth: btusb: Add date->evt_skb is NULL check + - Bluetooth: Fix double free in hci_conn_cleanup + - ACPI: EC: Add quirk for HP 250 G7 Notebook PC + - tsnep: Fix tsnep_request_irq() format-overflow warning + - gpiolib: acpi: Add a ignore interrupt quirk for Peaq C1010 + - platform/chrome: kunit: initialize lock for fake ec_dev + - of: address: Fix address translation when address-size is greater than 2 + - platform/x86: thinkpad_acpi: Add battery quirk for Thinkpad X120e + - drm/gma500: Fix call trace when psb_gem_mm_init() fails + - drm/amdkfd: ratelimited SQ interrupt messages + - drm/komeda: drop all currently held locks if deadlock happens + - drm/amd/display: Blank phantom OTG before enabling + - drm/amd/display: Don't lock phantom pipe on disabling + - drm/amd/display: add seamless pipe topology transition check + - drm/edid: Fixup h/vsync_end instead of h/vtotal + - md: don't rely on 'mddev->pers' to be set in mddev_suspend() + - drm/amdgpu: not to save bo in the case of RAS err_event_athub + - drm/amdkfd: Fix a race condition of vram buffer unref in svm code + - drm/amd: Update `update_pcie_parameters` functions to use uint8_t arguments + - drm/amd/display: use full update for clip size increase of large plane + source + - string.h: add array-wrappers for (v)memdup_user() + - kernel: kexec: copy user-array safely + - kernel: watch_queue: copy user-array safely + - drm_lease.c: copy user-array safely + - drm: vmwgfx_surface.c: copy user-array safely + - drm/msm/dp: skip validity check for DP CTS EDID checksum + - drm/amd: Fix UBSAN array-index-out-of-bounds for SMU7 + - drm/amd: Fix UBSAN array-index-out-of-bounds for Polaris and Tonga + - drm/amdgpu: Fix potential null pointer derefernce + - drm/panel: fix a possible null pointer dereference + - drm/panel/panel-tpo-tpg110: fix a possible null pointer dereference + - drm/radeon: fix a possible null pointer dereference + - drm/amdgpu/vkms: fix a possible null pointer dereference + - drm/panel: st7703: Pick different reset sequence + - drm/amdkfd: Fix shift out-of-bounds issue + - drm/amdgpu: Fix a null pointer access when the smc_rreg pointer is NULL + - drm/amd: Disable PP_PCIE_DPM_MASK when dynamic speed switching not supported + - drm/amd/display: fix num_ways overflow error + - drm/amd: check num of link levels when update pcie param + - arm64: dts: ls208xa: use a pseudo-bus to constrain usb dma size + - selftests/efivarfs: create-read: fix a resource leak + - ASoC: mediatek: mt8188-mt6359: support dynamic pinctrl + - ASoC: soc-card: Add storage for PCI SSID + - ASoC: SOF: Pass PCI SSID to machine driver + - crypto: pcrypt - Fix hungtask for PADATA_RESET + - ASoC: SOF: ipc4: handle EXCEPTION_CAUGHT notification from firmware + - RDMA/hfi1: Use FIELD_GET() to extract Link Width + - scsi: hisi_sas: Set debugfs_dir pointer to NULL after removing debugfs + - scsi: ibmvfc: Remove BUG_ON in the case of an empty event pool + - fs/jfs: Add check for negative db_l2nbperpage + - fs/jfs: Add validity check for db_maxag and db_agpref + - jfs: fix array-index-out-of-bounds in dbFindLeaf + - jfs: fix array-index-out-of-bounds in diAlloc + - HID: lenovo: Detect quirk-free fw on cptkbd and stop applying workaround + - ARM: 9320/1: fix stack depot IRQ stack filter + - ALSA: hda: Fix possible null-ptr-deref when assigning a stream + - gpiolib: of: Add quirk for mt2701-cs42448 ASoC sound + - PCI: tegra194: Use FIELD_GET()/FIELD_PREP() with Link Width fields + - PCI: mvebu: Use FIELD_PREP() with Link Width + - atm: iphase: Do PCI error checks on own line + - PCI: Do error check on own line to split long "if" conditions + - scsi: libfc: Fix potential NULL pointer dereference in fc_lport_ptp_setup() + - PCI: Use FIELD_GET() to extract Link Width + - PCI: Extract ATS disabling to a helper function + - PCI: Disable ATS for specific Intel IPU E2000 devices + - PCI: dwc: Add dw_pcie_link_set_max_link_width() + - PCI: dwc: Add missing PCI_EXP_LNKCAP_MLW handling + - misc: pci_endpoint_test: Add Device ID for R-Car S4-8 PCIe controller + - PCI: Use FIELD_GET() in Sapphire RX 5600 XT Pulse quirk + - ASoC: Intel: soc-acpi-cht: Add Lenovo Yoga Tab 3 Pro YT3-X90 quirk + - crypto: hisilicon/qm - prevent soft lockup in receive loop + - HID: Add quirk for Dell Pro Wireless Keyboard and Mouse KM5221W + - exfat: support handle zero-size directory + - mfd: intel-lpss: Add Intel Lunar Lake-M PCI IDs + - iio: adc: stm32-adc: harden against NULL pointer deref in stm32_adc_probe() + - thunderbolt: Apply USB 3.x bandwidth quirk only in software connection + manager + - tty: vcc: Add check for kstrdup() in vcc_probe() + - dt-bindings: phy: qcom,snps-eusb2-repeater: Add magic tuning overrides + - phy: qualcomm: phy-qcom-eusb2-repeater: Use regmap_fields + - phy: qualcomm: phy-qcom-eusb2-repeater: Zero out untouched tuning regs + - usb: dwc3: core: configure TX/RX threshold for DWC3_IP + - usb: ucsi: glink: use the connector orientation GPIO to provide switch + events + - soundwire: dmi-quirks: update HP Omen match + - f2fs: fix error path of __f2fs_build_free_nids + - f2fs: fix error handling of __get_node_page + - usb: host: xhci: Avoid XHCI resume delay if SSUSB device is not present + - usb: gadget: f_ncm: Always set current gadget in ncm_bind() + - 9p/trans_fd: Annotate data-racy writes to file::f_flags + - 9p: v9fs_listxattr: fix %s null argument warning + - i3c: mipi-i3c-hci: Fix out of bounds access in hci_dma_irq_handler + - i2c: i801: Add support for Intel Birch Stream SoC + - i2c: fix memleak in i2c_new_client_device() + - i2c: sun6i-p2wi: Prevent potential division by zero + - virtio-blk: fix implicit overflow on virtio_max_dma_size + - i3c: master: mipi-i3c-hci: Fix a kernel panic for accessing DAT_data. + - media: gspca: cpia1: shift-out-of-bounds in set_flicker + - media: vivid: avoid integer overflow + - media: ipu-bridge: increase sensor_name size + - gfs2: ignore negated quota changes + - gfs2: fix an oops in gfs2_permission + - media: cobalt: Use FIELD_GET() to extract Link Width + - media: ccs: Fix driver quirk struct documentation + - media: imon: fix access to invalid resource for the second interface + - drm/amd/display: Avoid NULL dereference of timing generator + - kgdb: Flush console before entering kgdb on panic + - riscv: VMAP_STACK overflow detection thread-safe + - i2c: dev: copy userspace array safely + - ASoC: ti: omap-mcbsp: Fix runtime PM underflow warnings + - drm/qxl: prevent memory leak + - ALSA: hda/realtek: Add quirk for ASUS UX7602ZM + - drm/amdgpu: fix software pci_unplug on some chips + - pwm: Fix double shift bug + - mtd: rawnand: tegra: add missing check for platform_get_irq() + - wifi: iwlwifi: Use FW rate for non-data frames + - sched/core: Optimize in_task() and in_interrupt() a bit + - samples/bpf: syscall_tp_user: Rename num_progs into nr_tests + - samples/bpf: syscall_tp_user: Fix array out-of-bound access + - dt-bindings: serial: fix regex pattern for matching serial node children + - SUNRPC: ECONNRESET might require a rebind + - mtd: rawnand: intel: check return value of devm_kasprintf() + - mtd: rawnand: meson: check return value of devm_kasprintf() + - drm/i915/mtl: avoid stringop-overflow warning + - NFSv4.1: fix handling NFS4ERR_DELAY when testing for session trunking + - SUNRPC: Add an IS_ERR() check back to where it was + - NFSv4.1: fix SP4_MACH_CRED protection for pnfs IO + - SUNRPC: Fix RPC client cleaned up the freed pipefs dentries + - RISC-V: hwprobe: Fix vDSO SIGSEGV + - riscv: provide riscv-specific is_trap_insn() + - gfs2: Silence "suspicious RCU usage in gfs2_permission" warning + - drm/i915/tc: Fix -Wformat-truncation in intel_tc_port_init + - vdpa_sim_blk: allocate the buffer zeroed + - vhost-vdpa: fix use after free in vhost_vdpa_probe() + - gcc-plugins: randstruct: Only warn about true flexible arrays + - bpf: handle ldimm64 properly in check_cfg() + - bpf: fix precision backtracking instruction iteration + - net: set SOCK_RCU_FREE before inserting socket into hashtable + - ipvlan: add ipvlan_route_v6_outbound() helper + - tty: Fix uninit-value access in ppp_sync_receive() + - xen/events: avoid using info_for_irq() in xen_send_IPI_one() + - net: hns3: fix add VLAN fail issue + - net: hns3: add barrier in vf mailbox reply process + - net: hns3: fix incorrect capability bit display for copper port + - net: hns3: fix out-of-bounds access may occur when coalesce info is read via + debugfs + - net: hns3: fix variable may not initialized problem in hns3_init_mac_addr() + - net: hns3: fix VF reset fail issue + - net: hns3: fix VF wrong speed and duplex issue + - tipc: Fix kernel-infoleak due to uninitialized TLV value + - net: mvneta: fix calls to page_pool_get_stats + - ppp: limit MRU to 64K + - xen/events: fix delayed eoi list handling + - blk-mq: make sure active queue usage is held for bio_integrity_prep() + - ptp: annotate data-race around q->head and q->tail + - bonding: stop the device in bond_setup_by_slave() + - net: ethernet: cortina: Fix max RX frame define + - net: ethernet: cortina: Handle large frames + - net: ethernet: cortina: Fix MTU max setting + - af_unix: fix use-after-free in unix_stream_read_actor() + - netfilter: nf_conntrack_bridge: initialize err to 0 + - netfilter: nf_tables: fix pointer math issue in nft_byteorder_eval() + - netfilter: nf_tables: bogus ENOENT when destroying element which does not + exist + - net: stmmac: fix rx budget limit check + - net: stmmac: avoid rx queue overrun + - pds_core: use correct index to mask irq + - pds_core: fix up some format-truncation complaints + - gve: Fixes for napi_poll when budget is 0 + - io_uring/fdinfo: remove need for sqpoll lock for thread/pid retrieval + - net/mlx5: Decouple PHC .adjtime and .adjphase implementations + - net/mlx5e: fix double free of encap_header + - net/mlx5e: fix double free of encap_header in update funcs + - net/mlx5e: Fix pedit endianness + - net/mlx5: Consolidate devlink documentation in devlink/mlx5.rst + - net/mlx5e: Make tx_port_ts logic resilient to out-of-order CQEs + - net/mlx5e: Add recovery flow for tx devlink health reporter for unhealthy + PTP SQ + - net/mlx5e: Update doorbell for port timestamping CQ before the software + counter + - net/mlx5: Increase size of irq name buffer + - net/mlx5e: Reduce the size of icosq_str + - net/mlx5e: Check return value of snprintf writing to fw_version buffer + - net/mlx5e: Check return value of snprintf writing to fw_version buffer for + representors + - net: sched: do not offload flows with a helper in act_ct + - macvlan: Don't propagate promisc change to lower dev in passthru + - tools/power/turbostat: Fix a knl bug + - tools/power/turbostat: Enable the C-state Pre-wake printing + - scsi: ufs: core: Expand MCQ queue slot to DeviceQueueDepth + 1 + - cifs: spnego: add ';' in HOST_KEY_LEN + - cifs: fix check of rc in function generate_smb3signingkey + - perf/core: Fix cpuctx refcounting + - i915/perf: Fix NULL deref bugs with drm_dbg() calls + - perf: arm_cspmu: Reject events meant for other PMUs + - drivers: perf: Check find_first_bit() return value + - media: venus: hfi: add checks to perform sanity on queue pointers + - perf intel-pt: Fix async branch flags + - powerpc/perf: Fix disabling BHRB and instruction sampling + - randstruct: Fix gcc-plugin performance mode to stay in group + - bpf: Fix check_stack_write_fixed_off() to correctly spill imm + - bpf: Fix precision tracking for BPF_ALU | BPF_TO_BE | BPF_END + - scsi: mpt3sas: Fix loop logic + - scsi: megaraid_sas: Increase register read retry rount from 3 to 30 for + selected registers + - scsi: ufs: qcom: Update PHY settings only when scaling to higher gears + - scsi: qla2xxx: Fix system crash due to bad pointer access + - scsi: ufs: core: Fix racing issue between ufshcd_mcq_abort() and ISR + - crypto: x86/sha - load modules based on CPU features + - x86/PCI: Avoid PME from D3hot/D3cold for AMD Rembrandt and Phoenix USB4 + - x86/apic/msi: Fix misconfigured non-maskable MSI quirk + - x86/cpu/hygon: Fix the CPU topology evaluation for real + - KVM: x86: hyper-v: Don't auto-enable stimer on write from user-space + - KVM: x86: Ignore MSR_AMD64_TW_CFG access + - KVM: x86: Clear bit12 of ICR after APIC-write VM-exit + - KVM: x86: Fix lapic timer interrupt lost after loading a snapshot. + - mmc: sdhci-pci-gli: GL9755: Mask the replay timer timeout of AER + - sched: psi: fix unprivileged polling against cgroups + - audit: don't take task_lock() in audit_exe_compare() code path + - audit: don't WARN_ON_ONCE(!current->mm) in audit_exe_compare() + - proc: sysctl: prevent aliased sysctls from getting passed to init + - tty/sysrq: replace smp_processor_id() with get_cpu() + - tty: serial: meson: fix hard LOCKUP on crtscts mode + - hvc/xen: fix console unplug + - hvc/xen: fix error path in xen_hvc_init() to always register frontend driver + - hvc/xen: fix event channel handling for secondary consoles + - PCI/sysfs: Protect driver's D3cold preference from user space + - mm/damon/sysfs: remove requested targets when online-commit inputs + - mm/damon/sysfs: update monitoring target regions for online input commit + - watchdog: move softlockup_panic back to early_param + - iommufd: Fix missing update of domains_itree after splitting iopt_area + - fbdev: stifb: Make the STI next font pointer a 32-bit signed offset + - dm crypt: account large pages in cc->n_allocated_pages + - mm/damon/lru_sort: avoid divide-by-zero in hot threshold calculation + - mm/damon/ops-common: avoid divide-by-zero during region hotness calculation + - mm/damon: implement a function for max nr_accesses safe calculation + - mm/damon/core: avoid divide-by-zero during monitoring results update + - mm/damon/sysfs-schemes: handle tried region directory allocation failure + - mm/damon/sysfs-schemes: handle tried regions sysfs directory allocation + failure + - mm/damon/sysfs: check error from damon_sysfs_update_target() + - parisc: Add nop instructions after TLB inserts + - ACPI: resource: Do IRQ override on TongFang GMxXGxx + - regmap: Ensure range selector registers are updated after cache sync + - wifi: ath11k: fix temperature event locking + - wifi: ath11k: fix dfs radar event locking + - wifi: ath11k: fix htt pktlog locking + - wifi: ath11k: fix gtk offload status event locking + - wifi: ath12k: fix htt mlo-offset event locking + - wifi: ath12k: fix dfs-radar and temperature event locking + - mmc: meson-gx: Remove setting of CMD_CFG_ERROR + - genirq/generic_chip: Make irq_remove_generic_chip() irqdomain aware + - sched/core: Fix RQCF_ACT_SKIP leak + - KEYS: trusted: tee: Refactor register SHM usage + - KEYS: trusted: Rollback init_trusted() consistently + - PCI: keystone: Don't discard .remove() callback + - PCI: keystone: Don't discard .probe() callback + - arm64: Restrict CPU_BIG_ENDIAN to GNU as or LLVM IAS 15.x or newer + - arm64: module: Fix PLT counting when CONFIG_RANDOMIZE_BASE=n + - parisc/agp: Use 64-bit LE values in SBA IOMMU PDIR table + - parisc/pdc: Add width field to struct pdc_model + - parisc/power: Add power soft-off when running on qemu + - cpufreq: stats: Fix buffer overflow detection in trans_stats() + - powercap: intel_rapl: Downgrade BIOS locked limits pr_warn() to pr_debug() + - clk: socfpga: Fix undefined behavior bug in struct stratix10_clock_data + - clk: visconti: Fix undefined behavior bug in struct visconti_pll_provider + - clk: qcom: ipq8074: drop the CLK_SET_RATE_PARENT flag from PLL clocks + - clk: qcom: ipq6018: drop the CLK_SET_RATE_PARENT flag from PLL clocks + - ksmbd: fix recursive locking in vfs helpers + - ksmbd: handle malformed smb1 message + - ksmbd: fix slab out of bounds write in smb_inherit_dacl() + - mmc: vub300: fix an error code + - mmc: sdhci_am654: fix start loop index for TAP value parsing + - mmc: Add quirk MMC_QUIRK_BROKEN_CACHE_FLUSH for Micron eMMC Q2J54A + - PCI/ASPM: Fix L1 substate handling in aspm_attr_store_common() + - PCI: kirin: Don't discard .remove() callback + - PCI: exynos: Don't discard .remove() callback + - wifi: wilc1000: use vmm_table as array in wilc struct + - svcrdma: Drop connection after an RDMA Read error + - rcu/tree: Defer setting of jiffies during stall reset + - arm64: dts: qcom: ipq6018: Fix hwlock index for SMEM + - dt-bindings: timer: renesas,rz-mtu3: Fix overflow/underflow interrupt names + - PM: hibernate: Use __get_safe_page() rather than touching the list + - PM: hibernate: Clean up sync_read handling in snapshot_write_next() + - rcu: kmemleak: Ignore kmemleak false positives when RCU-freeing objects + - btrfs: don't arbitrarily slow down delalloc if we're committing + - thermal: intel: powerclamp: fix mismatch in get function for max_idle + - arm64: dts: qcom: ipq5332: Fix hwlock index for SMEM + - arm64: dts: qcom: ipq8074: Fix hwlock index for SMEM + - firmware: qcom_scm: use 64-bit calling convention only when client is 64-bit + - ACPI: FPDT: properly handle invalid FPDT subtables + - arm64: dts: qcom: ipq9574: Fix hwlock index for SMEM + - arm64: dts: qcom: ipq6018: Fix tcsr_mutex register size + - leds: trigger: netdev: Move size check in set_device_name + - mfd: qcom-spmi-pmic: Fix reference leaks in revid helper + - mfd: qcom-spmi-pmic: Fix revid implementation + - ima: annotate iint mutex to avoid lockdep false positive warnings + - ima: detect changes to the backing overlay file + - netfilter: nf_tables: split async and sync catchall in two functions + - ASoC: soc-dai: add flag to mute and unmute stream during trigger + - ASoC: codecs: wsa883x: make use of new mute_unmute_on_trigger flag + - selftests/resctrl: Fix uninitialized .sa_flags + - selftests/resctrl: Remove duplicate feature check from CMT test + - selftests/resctrl: Move _GNU_SOURCE define into Makefile + - selftests/resctrl: Reduce failures due to outliers in MBA/MBM tests + - hid: lenovo: Resend all settings on reset_resume for compact keyboards + - ASoC: codecs: wsa-macro: fix uninitialized stack variables with name prefix + - jbd2: fix potential data lost in recovering journal raced with synchronizing + fs bdev + - quota: explicitly forbid quota files from being encrypted + - kernel/reboot: emergency_restart: Set correct system_state + - i2c: core: Run atomic i2c xfer when !preemptible + - selftests/clone3: Fix broken test under !CONFIG_TIME_NS + - tracing: Have the user copy of synthetic event address use correct context + - driver core: Release all resources during unbind before updating device + links + - mcb: fix error handling for different scenarios when parsing + - dmaengine: stm32-mdma: correct desc prep when channel running + - s390/mm: add missing arch_set_page_dat() call to vmem_crst_alloc() + - s390/cmma: fix detection of DAT pages + - mm/cma: use nth_page() in place of direct struct page manipulation + - mm/memory_hotplug: use pfn math in place of direct struct page manipulation + - mm: make PR_MDWE_REFUSE_EXEC_GAIN an unsigned long + - mtd: cfi_cmdset_0001: Byte swap OTP info + - cxl/region: Do not try to cleanup after cxl_region_setup_targets() fails + - i3c: master: cdns: Fix reading status register + - i3c: master: svc: fix race condition in ibi work thread + - i3c: master: svc: fix wrong data return when IBI happen during start frame + - i3c: master: svc: fix ibi may not return mandatory data byte + - i3c: master: svc: fix check wrong status register in irq handler + - i3c: master: svc: fix SDA keep low when polling IBIWON timeout happen + - i3c: master: svc: fix random hot join failure since timeout error + - cxl/region: Fix x1 root-decoder granularity calculations + - cxl/port: Fix delete_endpoint() vs parent unregistration race + - pmdomain: bcm: bcm2835-power: check if the ASB register is equal to enable + - pmdomain: amlogic: Fix mask for the second NNA mem PD domain + - pmdomain: imx: Make imx pgc power domain also set the fwnode + - PCI: qcom-ep: Add dedicated callback for writing to DBI2 registers + - PCI: Lengthen reset delay for VideoPropulsion Torrent QN16e card + - torture: Add a kthread-creation callback to _torture_create_kthread() + - torture: Add lock_torture writer_fifo module parameter + - torture: Make torture_hrtimeout_*() use TASK_IDLE + - torture: Move stutter_wait() timeouts to hrtimers + - torture: Make torture_hrtimeout_ns() take an hrtimer mode parameter + - rcutorture: Fix stuttering races and other issues + - mm/hugetlb: prepare hugetlb_follow_page_mask() for FOLL_PIN + - mm/hugetlb: use nth_page() in place of direct struct page manipulation + - parisc: Prevent booting 64-bit kernels on PA1.x machines + - parisc/pgtable: Do not drop upper 5 address bits of physical address + - parisc/power: Fix power soft-off when running on qemu + - xhci: Enable RPM on controllers that support low-power states + - fs: add ctime accessors infrastructure + - smb3: fix creating FIFOs when mounting with "sfu" mount option + - smb3: fix touch -h of symlink + - smb3: allow dumping session and tcon id to improve stats analysis and + debugging + - smb3: fix caching of ctime on setxattr + - smb: client: fix use-after-free bug in cifs_debug_data_proc_show() + - smb: client: fix use-after-free in smb2_query_info_compound() + - smb: client: fix potential deadlock when releasing mids + - cifs: reconnect helper should set reconnect for the right channel + - cifs: force interface update before a fresh session setup + - cifs: do not reset chan_max if multichannel is not supported at mount + - cifs: Fix encryption of cleared, but unset rq_iter data buffers + - xfs: recovery should not clear di_flushiter unconditionally + - btrfs: zoned: wait for data BG to be finished on direct IO allocation + - ALSA: info: Fix potential deadlock at disconnection + - ALSA: hda/realtek: Enable Mute LED on HP 255 G8 + - ALSA: hda/realtek - Add Dell ALC295 to pin fall back table + - ALSA: hda/realtek - Enable internal speaker of ASUS K6500ZC + - ALSA: hda/realtek: Enable Mute LED on HP 255 G10 + - ALSA: hda/realtek: Add quirks for HP Laptops + - Revert ncsi: Propagate carrier gain/loss events to the NCSI controller + - Revert "i2c: pxa: move to generic GPIO recovery" + - lsm: fix default return value for vm_enough_memory + - lsm: fix default return value for inode_getsecctx + - sbsa_gwdt: Calculate timeout with 64-bit math + - i2c: designware: Disable TX_EMPTY irq while waiting for block length byte + - s390/ap: fix AP bus crash on early config change callback invocation + - net: ethtool: Fix documentation of ethtool_sprintf() + - net: dsa: lan9303: consequently nested-lock physical MDIO + - net: phylink: initialize carrier state at creation + - gfs2: don't withdraw if init_threads() got interrupted + - i2c: i801: fix potential race in i801_block_transaction_byte_by_byte + - f2fs: do not return EFSCORRUPTED, but try to run online repair + - f2fs: set the default compress_level on ioctl + - f2fs: avoid format-overflow warning + - f2fs: split initial and dynamic conditions for extent_cache + - media: lirc: drop trailing space from scancode transmit + - media: sharp: fix sharp encoding + - media: venus: hfi_parser: Add check to keep the number of codecs within + range + - media: venus: hfi: fix the check to handle session buffer requirement + - media: venus: hfi: add checks to handle capabilities from firmware + - media: ccs: Correctly initialise try compose rectangle + - drm/mediatek/dp: fix memory leak on ->get_edid callback audio detection + - drm/mediatek/dp: fix memory leak on ->get_edid callback error path + - dm-bufio: fix no-sleep mode + - dm-verity: don't use blocking calls from tasklets + - nfsd: fix file memleak on client_opens_release + - NFSD: Update nfsd_cache_append() to use xdr_stream + - LoongArch: Mark __percpu functions as always inline + - riscv: Using TOOLCHAIN_HAS_ZIHINTPAUSE marco replace zihintpause + - riscv: put interrupt entries into .irqentry.text + - riscv: mm: Update the comment of CONFIG_PAGE_OFFSET + - riscv: correct pt_level name via pgtable_l5/4_enabled + - riscv: kprobes: allow writing to x0 + - mmc: sdhci-pci-gli: A workaround to allow GL9750 to enter ASPM L1.2 + - mm: fix for negative counter: nr_file_hugepages + - mm: kmem: drop __GFP_NOFAIL when allocating objcg vectors + - mptcp: deal with large GSO size + - mptcp: add validity check for sending RM_ADDR + - mptcp: fix setsockopt(IP_TOS) subflow locking + - selftests: mptcp: fix fastclose with csum failure + - mmc: sdhci-pci-gli: GL9750: Mask the replay timer timeout of AER + - media: qcom: camss: Fix pm_domain_on sequence in probe + - media: qcom: camss: Fix vfe_get() error jump + - media: qcom: camss: Fix VFE-17x vfe_disable_output() + - media: qcom: camss: Fix VFE-480 vfe_disable_output() + - media: qcom: camss: Fix missing vfe_lite clocks check + - media: qcom: camss: Fix set CSI2_RX_CFG1_VC_MODE when VC is greater than 3 + - media: qcom: camss: Fix invalid clock enable bit disjunction + - media: qcom: camss: Fix csid-gen2 for test pattern generator + - ext4: fix race between writepages and remount + - ext4: make sure allocate pending entry not fail + - ext4: apply umask if ACL support is disabled + - ext4: correct offset of gdb backup in non meta_bg group to update_backups + - ext4: mark buffer new if it is unwritten to avoid stale data exposure + - ext4: correct return value of ext4_convert_meta_bg + - ext4: correct the start block of counting reserved clusters + - ext4: remove gdb backup copy for meta bg in setup_new_flex_group_blocks + - ext4: add missed brelse in update_backups + - ext4: properly sync file size update after O_SYNC direct IO + - ext4: fix racy may inline data check in dio write + - drm/amd/pm: Handle non-terminated overdrive commands. + - drm: bridge: it66121: ->get_edid callback must not return err pointers + - drm/i915/mtl: Support HBR3 rate with C10 phy and eDP in MTL + - drm/i915: Bump GLK CDCLK frequency when driving multiple pipes + - drm/i915: Fix potential spectre vulnerability + - drm/i915: Flush WC GGTT only on required platforms + - drm/amdgpu/smu13: drop compute workload workaround + - drm/amdgpu: don't use pci_is_thunderbolt_attached() + - drm/amdgpu: fix GRBM read timeout when do mes_self_test + - drm/amdgpu: add a retry for IP discovery init + - drm/amdgpu: don't use ATRM for external devices + - drm/amdgpu: fix error handling in amdgpu_vm_init + - drm/amdgpu: fix error handling in amdgpu_bo_list_get() + - drm/amdgpu: lower CS errors to debug severity + - drm/amdgpu: Fix possible null pointer dereference + - drm/amd/display: Guard against invalid RPTR/WPTR being set + - drm/amd/display: Fix DSC not Enabled on Direct MST Sink + - drm/amd/display: fix a NULL pointer dereference in amdgpu_dm_i2c_xfer() + - drm/amd/display: Enable fast plane updates on DCN3.2 and above + - drm/amd/display: Change the DMCUB mailbox memory location from FB to inbox + - powerpc/powernv: Fix fortify source warnings in opal-prd.c + - tracing: Have trace_event_file have ref counters + - net/mlx5e: Avoid referencing skb after free-ing in drop path of + mlx5e_sq_xmit_wqe + - net/mlx5e: Track xmit submission to PTP WQ after populating metadata map + - Linux 6.5.13 + * Mantic update: v6.5.12 upstream stable release (LP: #2051129) + - hwmon: (nct6775) Fix incorrect variable reuse in fan_div calculation + - numa: Generalize numa_map_to_online_node() + - sched/topology: Fix sched_numa_find_nth_cpu() in CPU-less case + - sched/topology: Fix sched_numa_find_nth_cpu() in non-NUMA case + - sched/fair: Fix cfs_rq_is_decayed() on !SMP + - iov_iter, x86: Be consistent about the __user tag on copy_mc_to_user() + - sched/uclamp: Set max_spare_cap_cpu even if max_spare_cap is 0 + - sched/uclamp: Ignore (util == 0) optimization in feec() when p_util_max = 0 + - objtool: Propagate early errors + - sched: Fix stop_one_cpu_nowait() vs hotplug + - nfsd: Handle EOPENSTALE correctly in the filecache + - vfs: fix readahead(2) on block devices + - writeback, cgroup: switch inodes with dirty timestamps to release dying + cgwbs + - x86/srso: Fix SBPB enablement for (possible) future fixed HW + - x86/srso: Print mitigation for retbleed IBPB case + - x86/srso: Fix vulnerability reporting for missing microcode + - x86/srso: Fix unret validation dependencies + - futex: Don't include process MM in futex key on no-MMU + - x86/numa: Introduce numa_fill_memblks() + - ACPI/NUMA: Apply SRAT proximity domain to entire CFMWS window + - x86/sev-es: Allow copy_from_kernel_nofault() in earlier boot + - x86/boot: Fix incorrect startup_gdt_descr.size + - cpu/hotplug: Remove dependancy against cpu_primary_thread_mask + - cpu/SMT: Create topology_smt_thread_allowed() + - cpu/SMT: Make SMT control more robust against enumeration failures + - x86/apic: Fake primary thread mask for XEN/PV + - srcu: Fix callbacks acceleration mishandling + - drivers/clocksource/timer-ti-dm: Don't call clk_get_rate() in stop function + - x86/nmi: Fix out-of-order NMI nesting checks & false positive warning + - pstore/platform: Add check for kstrdup + - perf: Optimize perf_cgroup_switch() + - selftests/x86/lam: Zero out buffer for readlink() + - PCI/MSI: Provide stubs for IMS functions + - string: Adjust strtomem() logic to allow for smaller sources + - genirq/matrix: Exclude managed interrupts in irq_matrix_allocated() + - irqchip/sifive-plic: Fix syscore registration for multi-socket systems + - wifi: ath12k: fix undefined behavior with __fls in dp + - wifi: cfg80211: add flush functions for wiphy work + - wifi: mac80211: move radar detect work to wiphy work + - wifi: mac80211: move scan work to wiphy work + - wifi: mac80211: move offchannel works to wiphy work + - wifi: mac80211: move sched-scan stop work to wiphy work + - wifi: mac80211: fix RCU usage warning in mesh fast-xmit + - wifi: cfg80211: fix off-by-one in element defrag + - wifi: mac80211: fix # of MSDU in A-MSDU calculation + - wifi: iwlwifi: honor the enable_ini value + - wifi: iwlwifi: don't use an uninitialized variable + - i40e: fix potential memory leaks in i40e_remove() + - iavf: Fix promiscuous mode configuration flow messages + - selftests/bpf: Correct map_fd to data_fd in tailcalls + - bpf, x86: save/restore regs with BPF_DW size + - bpf, x86: allow function arguments up to 12 for TRACING + - bpf, x64: Fix tailcall infinite loop + - wifi: cfg80211: fix kernel-doc for wiphy_delayed_work_flush() + - udp: introduce udp->udp_flags + - udp: move udp->no_check6_tx to udp->udp_flags + - udp: move udp->no_check6_rx to udp->udp_flags + - udp: move udp->gro_enabled to udp->udp_flags + - udp: add missing WRITE_ONCE() around up->encap_rcv + - udp: move udp->accept_udp_{l4|fraglist} to udp->udp_flags + - udp: lockless UDP_ENCAP_L2TPINUDP / UDP_GRO + - udp: annotate data-races around udp->encap_type + - udplite: remove UDPLITE_BIT + - udplite: fix various data-races + - selftests/bpf: Skip module_fentry_shadow test when bpf_testmod is not + available + - tcp: call tcp_try_undo_recovery when an RTOd TFO SYNACK is ACKed + - bpf: Fix kfunc callback register type handling + - gve: Use size_add() in call to struct_size() + - mlxsw: Use size_mul() in call to struct_size() + - tls: Use size_add() in call to struct_size() + - tipc: Use size_add() in calls to struct_size() + - net: spider_net: Use size_add() in call to struct_size() + - net: ethernet: mtk_wed: fix EXT_INT_STATUS_RX_FBUF definitions for MT7986 + SoC + - wifi: rtw88: debug: Fix the NULL vs IS_ERR() bug for debugfs_create_file() + - wifi: ath12k: fix DMA unmap warning on NULL DMA address + - wifi: ath11k: fix boot failure with one MSI vector + - wifi: mac80211: fix check for unusable RX result + - PM: sleep: Fix symbol export for _SIMPLE_ variants of _PM_OPS() + - cpufreq: tegra194: fix warning due to missing opp_put + - wifi: mt76: mt7603: rework/fix rx pse hang check + - wifi: mt76: mt7603: improve watchdog reset reliablity + - wifi: mt76: mt7603: improve stuck beacon handling + - wifi: mt76: connac: move connac3 definitions in mt76_connac3_mac.h + - wifi: mt76: remove unused error path in mt76_connac_tx_complete_skb + - wifi: mt76: mt7996: set correct wcid in txp + - wifi: mt76: mt7996: fix beamform mcu cmd configuration + - wifi: mt76: mt7996: fix beamformee ss subfield in EHT PHY cap + - wifi: mt76: mt7996: fix wmm queue mapping + - wifi: mt76: mt7996: fix rx rate report for CBW320-2 + - wifi: mt76: mt7996: fix TWT command format + - wifi: mt76: update beacon size limitation + - wifi: mt76: fix potential memory leak of beacon commands + - wifi: mt76: get rid of false alamrs of tx emission issues + - wifi: mt76: fix per-band IEEE80211_CONF_MONITOR flag comparison + - wifi: mt76: mt7915: fix beamforming availability check + - wifi: ath: dfs_pattern_detector: Fix a memory initialization issue + - tcp_metrics: add missing barriers on delete + - tcp_metrics: properly set tp->snd_ssthresh in tcp_init_metrics() + - tcp_metrics: do not create an entry from tcp_init_metrics() + - wifi: rtlwifi: fix EDCA limit set by BT coexistence + - ACPI: property: Allow _DSD buffer data only for byte accessors + - ACPI: video: Add acpi_backlight=vendor quirk for Toshiba Portégé R100 + - can: etas_es58x: rework the version check logic to silence -Wformat- + truncation + - can: etas_es58x: add missing a blank line after declaration + - wifi: ath11k: fix Tx power value during active CAC + - can: dev: can_restart(): don't crash kernel if carrier is OK + - can: dev: can_restart(): fix race condition between controller restart and + netif_carrier_on() + - can: dev: can_put_echo_skb(): don't crash kernel if can_priv::echo_skb is + accessed out of bounds + - PM / devfreq: rockchip-dfi: Make pmu regmap mandatory + - wifi: wfx: fix case where rates are out of order + - netfilter: nf_tables: Drop pointless memset when dumping rules + - wifi: rtw88: Remove duplicate NULL check before calling usb_kill/free_urb() + - thermal: core: prevent potential string overflow + - r8169: fix rare issue with broken rx after link-down on RTL8125 + - thermal/drivers/mediatek: Fix probe for THERMAL_V2 + - bpf: Fix missed rcu read lock in bpf_task_under_cgroup() + - selftests: netfilter: test for sctp collision processing in nf_conntrack + - net: skb_find_text: Ignore patterns extending past 'to' + - thermal: core: Don't update trip points inside the hysteresis range + - chtls: fix tp->rcv_tstamp initialization + - tcp: fix cookie_init_timestamp() overflows + - wifi: iwlwifi: mvm: update station's MFP flag after association + - wifi: iwlwifi: mvm: fix removing pasn station for responder + - wifi: iwlwifi: mvm: use correct sta ID for IGTK/BIGTK + - wifi: mac80211: don't recreate driver link debugfs in reconfig + - wifi: mac80211: Fix setting vif links + - wifi: iwlwifi: yoyo: swap cdb and jacket bits values + - wifi: iwlwifi: mvm: Correctly set link configuration + - wifi: iwlwifi: mvm: Fix key flags for IGTK on AP interface + - wifi: iwlwifi: mvm: Don't always bind/link the P2P Device interface + - wifi: iwlwifi: mvm: change iwl_mvm_flush_sta() API + - wifi: iwlwifi: mvm: fix iwl_mvm_mac_flush_sta() + - wifi: iwlwifi: mvm: remove TDLS stations from FW + - wifi: iwlwifi: increase number of RX buffers for EHT devices + - wifi: iwlwifi: mvm: fix netif csum flags + - wifi: iwlwifi: pcie: synchronize IRQs before NAPI + - wifi: iwlwifi: mvm: update IGTK in mvmvif upon D3 resume + - wifi: iwlwifi: empty overflow queue during flush + - Bluetooth: ISO: Use defer setup to separate PA sync and BIG sync + - Bluetooth: ISO: Pass BIG encryption info through QoS + - Bluetooth: Make handle of hci_conn be unique + - Bluetooth: hci_sync: Fix Opcode prints in bt_dev_dbg/err + - bpf: Fix unnecessary -EBUSY from htab_lock_bucket + - ACPI: sysfs: Fix create_pnp_modalias() and create_of_modalias() + - mptcp: properly account fastopen data + - ipv6: avoid atomic fragment on GSO packets + - virtio_net: use u64_stats_t infra to avoid data-races + - net: add DEV_STATS_READ() helper + - ipvlan: properly track tx_errors + - regmap: debugfs: Fix a erroneous check after snprintf() + - spi: tegra: Fix missing IRQ check in tegra_slink_probe() + - clk: qcom: ipq5332: Drop set rate parent from gpll0 dependent clocks + - clk: qcom: gcc-msm8996: Remove RPM bus clocks + - clk: qcom: clk-rcg2: Fix clock rate overflow for high parent frequencies + - clk: qcom: mmcc-msm8998: Don't check halt bit on some branch clks + - clk: qcom: mmcc-msm8998: Fix the SMMU GDSC + - clk: qcom: gcc-sm8150: Fix gcc_sdcc2_apps_clk_src + - regulator: mt6358: Fail probe on unknown chip ID + - clk: imx: Select MXC_CLK for CLK_IMX8QXP + - clk: imx: imx8mq: correct error handling path + - clk: imx: imx8qxp: Fix elcdif_pll clock + - clk: renesas: rcar-gen3: Extend SDnH divider table + - clk: renesas: rzg2l: Wait for status bit of SD mux before continuing + - clk: renesas: rzg2l: Lock around writes to mux register + - clk: renesas: rzg2l: Trust value returned by hardware + - clk: renesas: rzg2l: Use FIELD_GET() for PLL register fields + - clk: renesas: rzg2l: Fix computation formula + - clk: linux/clk-provider.h: fix kernel-doc warnings and typos + - spi: nxp-fspi: use the correct ioremap function + - clk: ralink: mtmips: quiet unused variable warning + - clk: keystone: pll: fix a couple NULL vs IS_ERR() checks + - clk: ti: fix double free in of_ti_divider_clk_setup() + - clk: npcm7xx: Fix incorrect kfree + - clk: mediatek: clk-mt6765: Add check for mtk_alloc_clk_data + - clk: mediatek: clk-mt6779: Add check for mtk_alloc_clk_data + - clk: mediatek: clk-mt6797: Add check for mtk_alloc_clk_data + - clk: mediatek: clk-mt7629-eth: Add check for mtk_alloc_clk_data + - clk: mediatek: clk-mt7629: Add check for mtk_alloc_clk_data + - clk: mediatek: clk-mt2701: Add check for mtk_alloc_clk_data + - clk: qcom: config IPQ_APSS_6018 should depend on QCOM_SMEM + - clk: qcom: clk-alpha-pll: introduce stromer plus ops + - clk: qcom: apss-ipq-pll: Use stromer plus ops for stromer plus pll + - clk: qcom: apss-ipq-pll: Fix 'l' value for ipq5332_pll_config + - clk: qcom: ipq9574: drop the CLK_SET_RATE_PARENT flag from GPLL clocks + - clk: qcom: ipq5332: drop the CLK_SET_RATE_PARENT flag from GPLL clocks + - clk: mediatek: fix double free in mtk_clk_register_pllfh() + - platform/x86: wmi: Fix probe failure when failing to register WMI devices + - platform/x86: wmi: Fix opening of char device + - regulator: qcom-rpmh: Fix smps4 regulator for pm8550ve + - hwmon: (axi-fan-control) Fix possible NULL pointer dereference + - hwmon: (coretemp) Fix potentially truncated sysfs attribute name + - Revert "hwmon: (sch56xx-common) Add DMI override table" + - Revert "hwmon: (sch56xx-common) Add automatic module loading on supported + devices" + - hwmon: (sch5627) Use bit macros when accessing the control register + - hwmon: (sch5627) Disallow write access if virtual registers are locked + - hte: tegra: Fix missing error code in tegra_hte_test_probe() + - platform/chrome: cros_ec_lpc: Separate host command and irq disable + - spi: omap2-mcspi: remove redundant dev_err_probe() + - spi: omap2-mcspi: switch to use modern name + - spi: omap2-mcspi: Fix hardcoded reference clock + - drm: bridge: samsung-dsim: Initialize ULPS EXIT for i.MX8M DSIM + - drm: bridge: for GENERIC_PHY_MIPI_DPHY also select GENERIC_PHY + - drm: bridge: samsung-dsim: Fix waiting for empty cmd transfer FIFO on older + Exynos + - drm/rockchip: vop: Fix reset of state in duplicate state crtc funcs + - drm/rockchip: vop: Fix call to crtc reset helper + - drm/rockchip: vop2: Don't crash for invalid duplicate_state + - drm/rockchip: vop2: Add missing call to crtc reset helper + - drm/radeon: possible buffer overflow + - drm: bridge: it66121: Fix invalid connector dereference + - drm/bridge: lt8912b: Fix bridge_detach + - drm/bridge: lt8912b: Fix crash on bridge detach + - drm/bridge: lt8912b: Manually disable HPD only if it was enabled + - drm/bridge: lt8912b: Add missing drm_bridge_attach call + - drm/mediatek: Fix coverity issue with unintentional integer overflow + - x86/tdx: Zero out the missing RSI in TDX_HYPERCALL macro + - drm/bridge: tc358768: Fix use of uninitialized variable + - drm/bridge: tc358768: Fix bit updates + - drm/bridge: tc358768: Use struct videomode + - drm/bridge: tc358768: Print logical values, not raw register values + - drm/bridge: tc358768: Use dev for dbg prints, not priv->dev + - drm/bridge: tc358768: Rename dsibclk to hsbyteclk + - drm/bridge: tc358768: Clean up clock period code + - drm/bridge: tc358768: Fix tc358768_ns_to_cnt() + - drm/aspeed: Convert to platform remove callback returning void + - drm/stm: Convert to platform remove callback returning void + - drm/tve200: Convert to platform remove callback returning void + - drm: Call drm_atomic_helper_shutdown() at shutdown/remove time for misc + drivers + - drm/amdgpu: Increase IH soft ring size for GFX v9.4.3 dGPU + - drm/amdkfd: fix some race conditions in vram buffer alloc/free of svm code + - drm/amdkfd: retry after EBUSY is returned from hmm_ranges_get_pages + - drm/amdkfd: Remove svm range validated_once flag + - drm/amdkfd: Handle errors from svm validate and map + - drm/amd/display: Fix null pointer dereference in error message + - drm/amd/display: Check all enabled planes in dm_check_crtc_cursor + - drm/amd/display: Refactor dm_get_plane_scale helper + - drm/amd/display: Bail from dm_check_crtc_cursor if no relevant change + - io_uring/kbuf: Fix check of BID wrapping in provided buffers + - io_uring/kbuf: Allow the full buffer id space for provided buffers + - drm/mediatek: Add mmsys_dev_num to mt8188 vdosys0 driver data + - drm/mediatek: Fix iommu fault by swapping FBs after updating plane state + - drm/mediatek: Fix iommu fault during crtc enabling + - accel/habanalabs/gaudi2: Fix incorrect string length computation in + gaudi2_psoc_razwi_get_engines() + - drm/rockchip: cdn-dp: Fix some error handling paths in cdn_dp_probe() + - gpu: host1x: Correct allocated size for contexts + - drm/bridge: lt9611uxc: fix the race in the error path + - arm64/arm: xen: enlighten: Fix KPTI checks + - drm/rockchip: Fix type promotion bug in rockchip_gem_iommu_map() + - xenbus: fix error exit in xenbus_init() + - xen-pciback: Consider INTx disabled when MSI/MSI-X is enabled + - drm/msm/dsi: use msm_gem_kernel_put to free TX buffer + - drm/msm/dsi: free TX buffer in unbind + - clocksource/drivers/arm_arch_timer: limit XGene-1 workaround + - drm: mediatek: mtk_dsi: Fix NO_EOT_PACKET settings/handling + - drivers/perf: hisi: use cpuhp_state_remove_instance_nocalls() for + hisi_hns3_pmu uninit process + - drm/amd/pm: Fix a memory leak on an error path + - perf/arm-cmn: Fix DTC domain detection + - drivers/perf: hisi_pcie: Check the type first in pmu::event_init() + - perf: hisi: Fix use-after-free when register pmu fails + - ARM: dts: renesas: blanche: Fix typo in GP_11_2 pin name + - arm64: dts: qcom: sdm845: Fix PSCI power domain names + - arm64: dts: qcom: sdm845: cheza doesn't support LMh node + - arm64: dts: qcom: sc7280: link usb3_phy_wrapper_gcc_usb30_pipe_clk + - arm64: dts: qcom: msm8916: Fix iommu local address range + - arm64: dts: qcom: msm8992-libra: drop duplicated reserved memory + - arm64: dts: qcom: sm6125: Pad APPS IOMMU address to 8 characters + - arm64: dts: qcom: sc7280: Add missing LMH interrupts + - arm64: dts: qcom: qrb2210-rb1: Swap UART index + - arm64: dts: qcom: sc7280: drop incorrect EUD port on SoC side + - arm64: dts: qcom: sm8150: add ref clock to PCIe PHYs + - arm64: dts: qcom: sm8350: fix pinctrl for UART18 + - arm64: dts: qcom: sdm845-mtp: fix WiFi configuration + - ARM64: dts: marvell: cn9310: Use appropriate label for spi1 pins + - arm64: dts: qcom: msm8976: Fix ipc bit shifts + - arm64: dts: qcom: msm8939: Fix iommu local address range + - riscv: dts: allwinner: remove address-cells from intc node + - arm64: dts: qcom: apq8016-sbc: Add missing ADV7533 regulators + - ARM: dts: qcom: apq8026-samsung-matisse-wifi: Fix inverted hall sensor + - ARM: dts: qcom: mdm9615: populate vsdcc fixed regulator + - soc: qcom: llcc: Handle a second device without data corruption + - kunit: Fix missed memory release in kunit_free_suite_set() + - firmware: ti_sci: Mark driver as non removable + - arm64: dts: ti: k3-am625-beagleplay: Fix typo in ramoops reg + - arm64: dts: ti: k3-am62a7-sk: Drop i2c-1 to 100Khz + - firmware: arm_ffa: Assign the missing IDR allocation ID to the FFA device + - firmware: arm_ffa: Allow the FF-A drivers to use 32bit mode of messaging + - ARM: dts: am3517-evm: Fix LED3/4 pinmux + - clk: scmi: Free scmi_clk allocated when the clocks with invalid info are + skipped + - arm64: dts: imx8qm-ss-img: Fix jpegenc compatible entry + - arm64: dts: imx8mp-debix-model-a: Remove USB hub reset-gpios + - arm64: dts: imx8mm: Add sound-dai-cells to micfil node + - arm64: dts: imx8mn: Add sound-dai-cells to micfil node + - arm64: tegra: Fix P3767 card detect polarity + - arm64: tegra: Fix P3767 QSPI speed + - firmware: tegra: Add suspend hook and reset BPMP IPC early on resume + - memory: tegra: Set BPMP msg flags to reset IPC channels + - arm64: tegra: Use correct interrupts for Tegra234 TKE + - selftests/pidfd: Fix ksft print formats + - selftests/resctrl: Ensure the benchmark commands fits to its array + - soc: qcom: pmic_glink: fix connector type to be DisplayPort + - ARM: dts: BCM5301X: Explicitly disable unused switch CPU ports + - iommufd: Add iopt_area_alloc() + - module/decompress: use vmalloc() for gzip decompression workspace + - ASoC: cs35l41: Handle mdsync_down reg write errors + - ASoC: cs35l41: Initialize completion object before requesting IRQ + - ASoC: cs35l41: Verify PM runtime resume errors in IRQ handler + - ASoC: cs35l41: Undo runtime PM changes at driver exit time + - ALSA: hda: cs35l41: Fix unbalanced pm_runtime_get() + - ALSA: hda: cs35l41: Undo runtime PM changes at driver exit time + - KEYS: Include linux/errno.h in linux/verification.h + - crypto: hisilicon/hpre - Fix a erroneous check after snprintf() + - hwrng: bcm2835 - Fix hwrng throughput regression + - hwrng: geode - fix accessing registers + - RDMA/core: Use size_{add,sub,mul}() in calls to struct_size() + - crypto: qat - fix state machines cleanup paths + - crypto: qat - ignore subsequent state up commands + - crypto: qat - fix unregistration of crypto algorithms + - crypto: qat - fix unregistration of compression algorithms + - scsi: ibmvfc: Fix erroneous use of rtas_busy_delay with hcall return code + - ASoC: soc-pcm.c: Make sure DAI parameters cleared if the DAI becomes + inactive + - libnvdimm/of_pmem: Use devm_kstrdup instead of kstrdup and check its return + value + - nd_btt: Make BTT lanes preemptible + - crypto: caam/qi2 - fix Chacha20 + Poly1305 self test failure + - crypto: caam/jr - fix Chacha20 + Poly1305 self test failure + - crypto: qat - increase size of buffers + - ASoC: SOF: ipc4-topology: Use size_add() in call to struct_size() + - PCI: vmd: Correct PCI Header Type Register's multi-function check + - hid: cp2112: Fix duplicate workqueue initialization + - crypto: hisilicon/qm - fix PF queue parameter issue + - ARM: 9321/1: memset: cast the constant byte to unsigned char + - ARM: 9323/1: mm: Fix ARCH_LOW_ADDRESS_LIMIT when CONFIG_ZONE_DMA + - ext4: move 'ix' sanity check to corrent position + - kselftest: vm: fix mdwe's mmap_FIXED test case + - ASoC: fsl: mpc5200_dma.c: Fix warning of Function parameter or member not + described + - backlight: pwm_bl: Disable PWM on shutdown, suspend and remove + - ASoC: fsl-asoc-card: Add comment for mclk in the codec_priv + - dlm: fix no ack after final message + - IB/mlx5: Fix rdma counter binding for RAW QP + - RDMA/hns: Fix printing level of asynchronous events + - RDMA/hns: Fix uninitialized ucmd in hns_roce_create_qp_common() + - RDMA/hns: Fix signed-unsigned mixed comparisons + - RDMA/hns: Add check for SL + - RDMA/hns: The UD mode can only be configured with DCQCN + - ASoC: SOF: core: Ensure sof_ops_free() is still called when probe never ran. + - ASoC: fsl: Fix PM disable depth imbalance in fsl_easrc_probe + - scsi: ufs: core: Leave space for '\0' in utf8 desc string + - RDMA/hfi1: Workaround truncation compilation error + - HID: cp2112: Make irq_chip immutable + - hid: cp2112: Fix IRQ shutdown stopping polling for all IRQs on chip + - HID: uclogic: Fix user-memory-access bug in + uclogic_params_ugee_v2_init_event_hooks() + - HID: uclogic: Fix a work->entry not empty bug in __queue_work() + - sh: bios: Revive earlyprintk support + - HID: logitech-hidpp: Don't restart IO, instead defer hid_connect() only + - HID: logitech-hidpp: Revert "Don't restart communication if not necessary" + - HID: logitech-hidpp: Move get_wireless_feature_index() check to + hidpp_connect_event() + - ASoC: Intel: Skylake: Fix mem leak when parsing UUIDs fails + - PCI: endpoint: Fix double free in __pci_epc_create() + - padata: Fix refcnt handling in padata_free_shell() + - certs: Break circular dependency when selftest is modular + - crypto: qat - fix deadlock in backlog processing + - ASoC: ams-delta.c: use component after check + - erofs: fix erofs_insert_workgroup() lockref usage + - IB/mlx5: Fix init stage error handling to avoid double free of same QP and + UAF + - mfd: core: Un-constify mfd_cell.of_reg + - mfd: core: Ensure disabled devices are skipped without aborting + - mfd: dln2: Fix double put in dln2_probe + - dt-bindings: mfd: mt6397: Split out compatible for MediaTek MT6366 PMIC + - mfd: arizona-spi: Set pdata.hpdet_channel for ACPI enumerated devs + - leds: turris-omnia: Drop unnecessary mutex locking + - leds: turris-omnia: Do not use SMBUS calls + - leds: pwm: Don't disable the PWM when the LED should be off + - leds: trigger: ledtrig-cpu:: Fix 'output may be truncated' issue for 'cpu' + - scripts/gdb: fix usage of MOD_TEXT not defined when CONFIG_MODULES=n + - perf stat: Fix aggr mode initialization + - iio: frequency: adf4350: Use device managed functions and fix power down + issue. + - perf kwork: Fix incorrect and missing free atom in work_push_atom() + - perf kwork: Add the supported subcommands to the document + - perf kwork: Set ordered_events to true in 'struct perf_tool' + - f2fs: compress: fix deadloop in f2fs_write_cache_pages() + - f2fs: compress: fix to avoid use-after-free on dic + - f2fs: compress: fix to avoid redundant compress extension + - f2fs: fix to drop meta_inode's page cache in f2fs_put_super() + - tty: tty_jobctrl: fix pid memleak in disassociate_ctty() + - perf parse-events: Remove unused PE_PMU_EVENT_FAKE token + - perf parse-events: Remove unused PE_KERNEL_PMU_EVENT token + - perf parse-events: Remove ABORT_ON + - perf tools: Revert enable indices setting syntax for BPF map + - perf parse-events: Fix tracepoint name memory leak + - livepatch: Fix missing newline character in klp_resolve_symbols() + - pinctrl: renesas: rzg2l: Make reverse order of enable() for disable() + - perf record: Fix BTF type checks in the off-cpu profiling + - dmaengine: idxd: Register dsa_bus_type before registering idxd sub-drivers + - usb: dwc2: fix possible NULL pointer dereference caused by driver + concurrency + - usb: chipidea: Fix DMA overwrite for Tegra + - usb: chipidea: Simplify Tegra DMA alignment code + - dmaengine: ti: edma: handle irq_of_parse_and_map() errors + - tools/perf: Update call stack check in builtin-lock.c + - misc: st_core: Do not call kfree_skb() under spin_lock_irqsave() + - tools: iio: iio_generic_buffer ensure alignment + - USB: usbip: fix stub_dev hub disconnect + - dmaengine: pxa_dma: Remove an erroneous BUG_ON() in pxad_free_desc() + - f2fs: fix to initialize map.m_pblk in f2fs_precache_extents() + - interconnect: qcom: qdu1000: Set ACV enable_mask + - interconnect: qcom: sc7180: Retire DEFINE_QBCM + - interconnect: qcom: sc7180: Set ACV enable_mask + - interconnect: qcom: sc7280: Set ACV enable_mask + - interconnect: qcom: sc8180x: Set ACV enable_mask + - interconnect: qcom: sc8280xp: Set ACV enable_mask + - interconnect: qcom: sdm670: Retire DEFINE_QBCM + - interconnect: qcom: sdm670: Set ACV enable_mask + - interconnect: qcom: sdm845: Retire DEFINE_QBCM + - interconnect: qcom: sdm845: Set ACV enable_mask + - interconnect: qcom: sm6350: Retire DEFINE_QBCM + - interconnect: qcom: sm6350: Set ACV enable_mask + - interconnect: qcom: sm8150: Retire DEFINE_QBCM + - interconnect: qcom: sm8150: Set ACV enable_mask + - interconnect: qcom: sm8350: Retire DEFINE_QBCM + - interconnect: qcom: sm8350: Set ACV enable_mask + - powerpc: Only define __parse_fpscr() when required + - interconnect: fix error handling in qnoc_probe() + - perf build: Add missing comment about NO_LIBTRACEEVENT=1 + - perf parse-events: Fix for term values that are raw events + - perf pmu: Remove logic for PMU name being NULL + - perf mem-events: Avoid uninitialized read + - s390/ap: re-init AP queues on config on + - modpost: fix tee MODULE_DEVICE_TABLE built on big-endian host + - modpost: fix ishtp MODULE_DEVICE_TABLE built on big-endian host + - perf tools: Do not ignore the default vmlinux.h + - powerpc/40x: Remove stale PTE_ATOMIC_UPDATES macro + - powerpc/xive: Fix endian conversion size + - powerpc: Hide empty pt_regs at base of the stack + - perf trace: Use the right bpf_probe_read(_str) variant for reading user data + - powerpc/vas: Limit open window failure messages in log bufffer + - powerpc/imc-pmu: Use the correct spinlock initializer. + - powerpc/pseries: fix potential memory leak in init_cpu_associativity() + - perf vendor events: Update PMC used in PM_RUN_INST_CMPL event for power10 + platform + - xhci: Loosen RPM as default policy to cover for AMD xHC 1.1 + - usb: host: xhci-plat: fix possible kernel oops while resuming + - perf machine: Avoid out of bounds LBR memory read + - libperf rc_check: Make implicit enabling work for GCC + - perf hist: Add missing puts to hist__account_cycles + - perf vendor events intel: Fix broadwellde tma_info_system_dram_bw_use metric + - perf vendor events intel: Add broadwellde two metrics + - 9p/net: fix possible memory leak in p9_check_errors() + - rtla: Fix uninitialized variable found + - i3c: Fix potential refcount leak in i3c_master_register_new_i3c_devs + - rtc: brcmstb-waketimer: support level alarm_irq + - cxl/pci: Remove unnecessary device reference management in sanitize work + - cxl/pci: Cleanup 'sanitize' to always poll + - cxl/pci: Remove inconsistent usage of dev_err_probe() + - cxl/pci: Clarify devm host for memdev relative setup + - cxl/pci: Fix sanitize notifier setup + - cxl/memdev: Fix sanitize vs decoder setup locking + - cxl/mem: Fix shutdown order + - virt: sevguest: Fix passing a stack buffer as a scatterlist target + - rtc: pcf85363: Allow to wake up system without IRQ + - rtc: pcf85363: fix wrong mask/val parameters in regmap_update_bits call + - cxl/region: Prepare the decoder match range helper for reuse + - cxl/region: Calculate a target position in a region interleave + - cxl/region: Use cxl_calc_interleave_pos() for auto-discovery + - cxl/region: Fix cxl_region_rwsem lock held when returning to user space + - cxl/core/regs: Rename @dev to @host in struct cxl_register_map + - cxl/port: Fix @host confusion in cxl_dport_setup_regs() + - cxl/hdm: Remove broken error path + - pcmcia: cs: fix possible hung task and memory leak pccardd() + - pcmcia: ds: fix refcount leak in pcmcia_device_add() + - pcmcia: ds: fix possible name leak in error path in pcmcia_device_add() + - media: imx-jpeg: initiate a drain of the capture queue in dynamic resolution + change + - media: hantro: Check whether reset op is defined before use + - media: verisilicon: Do not enable G2 postproc downscale if source is + narrower than destination + - media: ov5640: fix vblank unchange issue when work at dvp mode + - media: i2c: max9286: Fix some redundant of_node_put() calls + - media: ov5640: Fix a memory leak when ov5640_probe fails + - media: bttv: fix use after free error due to btv->timeout timer + - media: amphion: handle firmware debug message + - media: mtk-jpegenc: Fix bug in JPEG encode quality selection + - media: s3c-camif: Avoid inappropriate kfree() + - media: vidtv: psi: Add check for kstrdup + - media: vidtv: mux: Add check and kfree for kstrdup + - media: cedrus: Fix clock/reset sequence + - media: cadence: csi2rx: Unregister v4l2 async notifier + - media: dvb-usb-v2: af9035: fix missing unlock + - media: verisilicon: Fixes clock list for rk3588 av1 decoder + - media: imx-jpeg: notify source chagne event when the first picture parsed + - media: platform: mtk-mdp3: fix uninitialized variable in mdp_path_config() + - media: cec: meson: always include meson sub-directory in Makefile + - cpupower: fix reference to nonexistent document + - regmap: prevent noinc writes from clobbering cache + - drm/amdgpu/gfx10,11: use memcpy_to/fromio for MQDs + - drm/amdgpu: don't put MQDs in VRAM on ARM | ARM64 + - pwm: sti: Reduce number of allocations and drop usage of chip_data + - pwm: brcmstb: Utilize appropriate clock APIs in suspend/resume + - Input: synaptics-rmi4 - fix use after free in rmi_unregister_function() + - watchdog: ixp4xx: Make sure restart always works + - llc: verify mac len before reading mac header + - hsr: Prevent use after free in prp_create_tagged_frame() + - tipc: Change nla_policy for bearer-related names to NLA_NUL_STRING + - rxrpc: Fix two connection reaping bugs + - bpf: Check map->usercnt after timer->timer is assigned + - inet: shrink struct flowi_common + - octeontx2-pf: Fix error codes + - octeontx2-pf: Fix holes in error code + - net: page_pool: add missing free_percpu when page_pool_init fail + - dccp: Call security_inet_conn_request() after setting IPv4 addresses. + - dccp/tcp: Call security_inet_conn_request() after setting IPv6 addresses. + - Fix termination state for idr_for_each_entry_ul() + - net: stmmac: xgmac: Enable support for multiple Flexible PPS outputs + - selftests: pmtu.sh: fix result checking + - octeontx2-pf: Free pending and dropped SQEs + - net/smc: fix dangling sock under state SMC_APPFINCLOSEWAIT + - net/smc: allow cdc msg send rather than drop it with NULL sndbuf_desc + - net/smc: put sk reference if close work was canceled + - nvme: fix error-handling for io_uring nvme-passthrough + - riscv: boot: Fix creation of loader.bin + - tg3: power down device only on SYSTEM_POWER_OFF + - nbd: fix uaf in nbd_open + - blk-core: use pr_warn_ratelimited() in bio_check_ro() + - vsock/virtio: remove socket from connected/bound list on shutdown + - r8169: respect userspace disabling IFF_MULTICAST + - net: enetc: shorten enetc_setup_xdp_prog() error message to fit + NETLINK_MAX_FMTMSG_LEN + - i2c: iproc: handle invalid slave state + - netfilter: xt_recent: fix (increase) ipv6 literal buffer length + - netfilter: nat: fix ipv6 nat redirect with mapped and scoped addresses + - net/sched: act_ct: Always fill offloading tuple iifidx + - RISC-V: Don't fail in riscv_of_parent_hartid() for disabled HARTs + - module/decompress: use kvmalloc() consistently + - drm/vc4: tests: Fix UAF in the mock helpers + - drm/syncobj: fix DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE + - ASoC: mediatek: mt8186_mt6366_rt1019_rt5682s: trivial: fix error messages + - ASoC: hdmi-codec: register hpd callback on component probe + - ASoC: dapm: fix clock get name + - spi: spi-zynq-qspi: add spi-mem to driver kconfig dependencies + - arm64/arm: arm_pmuv3: perf: Don't truncate 64-bit registers + - fbdev: imsttfb: fix double free in probe() + - fbdev: imsttfb: fix a resource leak in probe + - fbdev: fsl-diu-fb: mark wr_reg_wa() static + - tracing/kprobes: Fix the order of argument descriptions + - Revert "drm/ast: report connection status on Display Port." + - selftests: mptcp: fix wait_rm_addr/sf parameters + - io_uring/net: ensure socket is marked connected on connect retry + - x86/amd_nb: Use Family 19h Models 60h-7Fh Function 4 IDs + - Revert "PCI/ASPM: Disable only ASPM_STATE_L1 when driver, disables L1" + - btrfs: use u64 for buffer sizes in the tree search ioctls + - bpf, x86: initialize the variable "first_off" in save_args() + - perf parse-events: Fix driver config term + - btrfs: make found_logical_ret parameter mandatory for function + queue_scrub_stripe() + - Linux 6.5.12 + * Mantic update: v6.5.11 upstream stable release (LP: #2051117) + - ASoC: Intel: sof_sdw: add support for SKU 0B14 + - ASoC: simple-card: fixup asoc_simple_probe() error handling + - coresight: tmc-etr: Disable warnings for allocation failures + - ASoC: fsl-asoc-card: use integer type for fll_id and pll_id + - ASoC: core: Do not call link_exit() on uninitialized rtd objects + - ASoC: tlv320adc3xxx: BUG: Correct micbias setting + - net: sched: cls_u32: Fix allocation size in u32_init() + - arm64: dts: imx93: add the Flex-CAN stop mode by GPR + - can: flexcan: remove the auto stop mode for IMX93 + - irqchip/riscv-intc: Mark all INTC nodes as initialized + - irqchip/stm32-exti: add missing DT IRQ flag translation + - dmaengine: ste_dma40: Fix PM disable depth imbalance in d40_probe + - ata: pata_parport: add custom version of wait_after_reset + - ata: pata_parport: fit3: implement IDE command set registers + - powerpc/85xx: Fix math emulation exception + - media: i2c: ov8858: Don't set fwnode in the driver + - Input: synaptics-rmi4 - handle reset delay when using SMBus trsnsport + - fbdev: atyfb: only use ioremap_uc() on i386 and ia64 + - fs/ntfs3: Add ckeck in ni_update_parent() + - fs/ntfs3: Write immediately updated ntfs state + - fs/ntfs3: Use kvmalloc instead of kmalloc(... __GFP_NOWARN) + - fs/ntfs3: Add more attributes checks in mi_enum_attr() + - fs/ntfs3: Fix alternative boot searching + - fs/ntfs3: Add more info into /proc/fs/ntfs3//volinfo + - fs/ntfs3: Do not allow to change label if volume is read-only + - fs/ntfs3: Fix possible NULL-ptr-deref in ni_readpage_cmpr() + - fs/ntfs3: Fix NULL pointer dereference on error in attr_allocate_frame() + - fs/ntfs3: Fix directory element type detection + - fs/ntfs3: Avoid possible memory leak + - spi: npcm-fiu: Fix UMA reads when dummy.nbytes == 0 + - ASoC: soc-dapm: Add helper for comparing widget name + - netfilter: nfnetlink_log: silence bogus compiler warning + - net/mlx5: Bridge, fix peer entry ageing in LAG mode + - x86/efistub: Don't try to print after ExitBootService() + - efi: fix memory leak in krealloc failure handling + - ASoC: rt5650: fix the wrong result of key button + - ASoC: codecs: tas2780: Fix log of failed reset via I2C. + - s390/kasan: handle DCSS mapping in memory holes + - fbdev: omapfb: fix some error codes + - fbdev: uvesafb: Call cn_del_callback() at the end of uvesafb_exit() + - scsi: mpt3sas: Fix in error path + - ASoC: da7219: Correct the process of setting up Gnd switch in AAD + - drm/amdgpu: Unset context priority is now invalid + - gpu/drm: Eliminate DRM_SCHED_PRIORITY_UNSET + - LoongArch: Use SYM_CODE_* to annotate exception handlers + - LoongArch: Export symbol invalid_pud_table for modules building + - LoongArch: Replace kmap_atomic() with kmap_local_page() in + copy_user_highpage() + - LoongArch: Disable WUC for pgprot_writecombine() like ioremap_wc() + - netfilter: nf_tables: audit log object reset once per table + - platform/mellanox: mlxbf-tmfifo: Fix a warning message + - drm/amdgpu: Reserve fences for VM update + - riscv: dts: thead: set dma-noncoherent to soc bus + - net: chelsio: cxgb4: add an error code check in t4_load_phy_fw + - r8152: Check for unplug in rtl_phy_patch_request() + - r8152: Check for unplug in r8153b_ups_en() / r8153c_ups_en() + - powerpc/mm: Fix boot crash with FLATMEM + - ceph_wait_on_conflict_unlink(): grab reference before dropping ->d_lock + - drm/amd/display: Don't use fsleep for PSR exit waits + - rust: make `UnsafeCell` the outer type in `Opaque` + - rust: types: make `Opaque` be `!Unpin` + - perf evlist: Avoid frequency mode for the dummy event + - mmap: fix vma_iterator in error path of vma_merge() + - mmap: fix error paths with dup_anon_vma() + - ALSA: usb-audio: add quirk flag to enable native DSD for McIntosh devices + - PCI: Prevent xHCI driver from claiming AMD VanGogh USB3 DRD device + - usb: storage: set 1.50 as the lower bcdDevice for older "Super Top" + compatibility + - usb: typec: tcpm: Add additional checks for contaminant + - usb: typec: tcpm: Fix NULL pointer dereference in tcpm_pd_svdm() + - usb: raw-gadget: properly handle interrupted requests + - Bluetooth: hci_bcm4377: Mark bcm4378/bcm4387 as BROKEN_LE_CODED + - tty: n_gsm: fix race condition in status line change on dead connections + - tty: 8250: Remove UC-257 and UC-431 + - tty: 8250: Add support for additional Brainboxes UC cards + - tty: 8250: Add support for Brainboxes UP cards + - tty: 8250: Add support for Intashield IS-100 + - tty: 8250: Fix port count of PX-257 + - tty: 8250: Fix up PX-803/PX-857 + - tty: 8250: Add support for additional Brainboxes PX cards + - tty: 8250: Add support for Intashield IX cards + - tty: 8250: Add Brainboxes Oxford Semiconductor-based quirks + - dt-bindings: serial: rs485: Add rs485-rts-active-high + - misc: pci_endpoint_test: Add deviceID for J721S2 PCIe EP device support + - serial: core: Fix runtime PM handling for pending tx + - ALSA: hda: intel-dsp-config: Fix JSL Chromebook quirk detection + - ASoC: SOF: sof-pci-dev: Fix community key quirk detection + - Linux 6.5.11 + * Mantic update: v6.5.11 upstream stable release (LP: #2051117) // black + screen when wake up from s3 with AMD W7600 gfx (LP: #2051341) + - drm/ttm: Reorder sys manager cleanup step + * CVE-2024-0646 + - net: tls, update curr on splice as well + * CVE-2024-0582 + - io_uring: enable io_mem_alloc/free to be used in other parts + - io_uring/kbuf: defer release of mapped buffer rings + * CVE-2024-0565 + - smb: client: fix OOB in receive_encrypted_standard() + * CVE-2023-51781 + - appletalk: Fix Use-After-Free in atalk_ioctl + * Reject connection when malformed L2CAP signal packet is received + (LP: #2047634) + - Bluetooth: L2CAP: Send reject on command corrupted request + * Mantic update: v6.5.10 upstream stable release (LP: #2049412) + - vdpa/mlx5: Fix firmware error on creation of 1k VQs + - smb3: allow controlling length of time directory entries are cached with dir + leases + - smb3: allow controlling maximum number of cached directories + - smb3: do not start laundromat thread when dir leases disabled + - smb: client: do not start laundromat thread on nohandlecache + - smb: client: make laundromat a delayed worker + - smb: client: prevent new fids from being removed by laundromat + - virtio_balloon: Fix endless deflation and inflation on arm64 + - virtio-mmio: fix memory leak of vm_dev + - virtio-crypto: handle config changed by work queue + - virtio_pci: fix the common cfg map size + - vsock/virtio: initialize the_virtio_vsock before using VQs + - vhost: Allow null msg.size on VHOST_IOTLB_INVALIDATE + - arm64: dts: qcom: apq8096-db820c: fix missing clock populate + - arm64: dts: qcom: msm8996-xiaomi: fix missing clock populate + - arm64: dts: rockchip: use codec as clock master on px30-ringneck-haikou + - arm64: dts: rockchip: set codec system-clock-fixed on px30-ringneck-haikou + - arm64: dts: qcom: sa8775p: correct PMIC GPIO label in gpio-ranges + - arm64: dts: rockchip: Add i2s0-2ch-bus-bclk-off pins to RK3399 + - arm64: dts: rockchip: Fix i2s0 pin conflict on ROCK Pi 4 boards + - i40e: sync next_to_clean and next_to_process for programming status desc + - mm: fix vm_brk_flags() to not bail out while holding lock + - hugetlbfs: clear resv_map pointer if mmap fails + - mm/page_alloc: correct start page when guard page debug is enabled + - mm/migrate: fix do_pages_move for compat pointers + - selftests/mm: include mman header to access MREMAP_DONTUNMAP identifier + - mm/mempolicy: fix set_mempolicy_home_node() previous VMA pointer + - hugetlbfs: extend hugetlb_vma_lock to private VMAs + - maple_tree: add GFP_KERNEL to allocations in mas_expected_entries() + - nfsd: lock_rename() needs both directories to live on the same fs + - vdpa_sim_blk: Fix the potential leak of mgmt_dev + - vdpa/mlx5: Fix double release of debugfs entry + - ARM: OMAP1: ams-delta: Fix MODEM initialization failure + - ARM: dts: rockchip: Fix i2c0 register address for RK3128 + - ARM: dts: rockchip: Add missing arm timer interrupt for RK3128 + - ARM: dts: rockchip: Add missing quirk for RK3128's dma engine + - ARM: dts: rockchip: Fix timer clocks for RK3128 + - accel/ivpu: Don't enter d0i3 during FLR + - drm/i915/pmu: Check if pmu is closed before stopping event + - drm/amd: Disable ASPM for VI w/ all Intel systems + - drm/dp_mst: Fix NULL deref in get_mst_branch_device_by_guid_helper() + - btrfs: remove v0 extent handling + - btrfs: fix unwritten extent buffer after snapshotting a new subvolume + - ARM: OMAP: timer32K: fix all kernel-doc warnings + - firmware/imx-dsp: Fix use_after_free in imx_dsp_setup_channels() + - clk: ti: Fix missing omap4 mcbsp functional clock and aliases + - clk: ti: Fix missing omap5 mcbsp functional clock and aliases + - r8169: fix the KCSAN reported data-race in rtl_tx() while reading tp->cur_tx + - r8169: fix the KCSAN reported data-race in rtl_tx while reading + TxDescArray[entry].opts1 + - r8169: fix the KCSAN reported data race in rtl_rx while reading desc->opts1 + - iavf: initialize waitqueues before starting watchdog_task + - i40e: Fix I40E_FLAG_VF_VLAN_PRUNING value + - treewide: Spelling fix in comment + - igb: Fix potential memory leak in igb_add_ethtool_nfc_entry + - net: do not leave an empty skb in write queue + - neighbour: fix various data-races + - igc: Fix ambiguity in the ethtool advertising + - net: ethernet: adi: adin1110: Fix uninitialized variable + - net: ieee802154: adf7242: Fix some potential buffer overflow in + adf7242_stats_show() + - net: usb: smsc95xx: Fix uninit-value access in smsc95xx_read_reg + - r8152: Increase USB control msg timeout to 5000ms as per spec + - r8152: Run the unload routine if we have errors during probe + - r8152: Cancel hw_phy_work if we have an error in probe + - r8152: Release firmware if we have an error in probe + - tcp: fix wrong RTO timeout when received SACK reneging + - wifi: cfg80211: pass correct pointer to rdev_inform_bss() + - wifi: cfg80211: fix assoc response warning on failed links + - wifi: mac80211: don't drop all unprotected public action frames + - net/handshake: fix file ref count in handshake_nl_accept_doit() + - gtp: uapi: fix GTPA_MAX + - gtp: fix fragmentation needed check with gso + - drm/i915/perf: Determine context valid in OA reports + - i40e: Fix wrong check for I40E_TXR_FLAGS_WB_ON_ITR + - netfilter: flowtable: GC pushes back packets to classic path + - net/sched: act_ct: additional checks for outdated flows + - drm/logicvc: Kconfig: select REGMAP and REGMAP_MMIO + - drm/i915/mcr: Hold GT forcewake during steering operations + - iavf: in iavf_down, disable queues when removing the driver + - scsi: sd: Introduce manage_shutdown device flag + - blk-throttle: check for overflow in calculate_bytes_allowed + - kasan: print the original fault addr when access invalid shadow + - iio: afe: rescale: Accept only offset channels + - iio: exynos-adc: request second interupt only when touchscreen mode is used + - iio: adc: xilinx-xadc: Don't clobber preset voltage/temperature thresholds + - iio: adc: xilinx-xadc: Correct temperature offset/scale for UltraScale + - i2c: muxes: i2c-mux-pinctrl: Use of_get_i2c_adapter_by_node() + - i2c: muxes: i2c-mux-gpmux: Use of_get_i2c_adapter_by_node() + - i2c: muxes: i2c-demux-pinctrl: Use of_get_i2c_adapter_by_node() + - i2c: stm32f7: Fix PEC handling in case of SMBUS transfers + - i2c: aspeed: Fix i2c bus hang in slave read + - tracing/kprobes: Fix symbol counting logic by looking at modules as well + - tracing/kprobes: Fix the description of variable length arguments + - misc: fastrpc: Reset metadata buffer to avoid incorrect free + - misc: fastrpc: Free DMA handles for RPC calls with no arguments + - misc: fastrpc: Clean buffers on remote invocation failures + - misc: fastrpc: Unmap only if buffer is unmapped from DSP + - nvmem: imx: correct nregs for i.MX6ULL + - nvmem: imx: correct nregs for i.MX6SLL + - nvmem: imx: correct nregs for i.MX6UL + - x86/tsc: Defer marking TSC unstable to a worker + - x86/i8259: Skip probing when ACPI/MADT advertises PCAT compatibility + - x86/cpu: Add model number for Intel Arrow Lake mobile processor + - perf/core: Fix potential NULL deref + - sparc32: fix a braino in fault handling in csum_and_copy_..._user() + - clk: Sanitize possible_parent_show to Handle Return Value of + of_clk_get_parent_name + - clk: socfpga: gate: Account for the divider in determine_rate + - clk: stm32: Fix a signedness issue in clk_stm32_composite_determine_rate() + - platform/x86: Add s2idle quirk for more Lenovo laptops + - mm/damon/sysfs: check DAMOS regions update progress from before_terminate() + - accel/ivpu/37xx: Fix missing VPUIP interrupts + - Linux 6.5.10 + * CVE-2023-6560 + - io_uring: don't allow discontig pages for IORING_SETUP_NO_MMAP + * CVE-2023-51782 + - net/rose: Fix Use-After-Free in rose_ioctl + * Mantic update: v6.5.9 upstream stable release (LP: #2049202) + - Bluetooth: hci_event: Ignore NULL link key + - Bluetooth: Reject connection with the device which has same BD_ADDR + - Bluetooth: Fix a refcnt underflow problem for hci_conn + - Bluetooth: vhci: Fix race when opening vhci device + - Bluetooth: hci_event: Fix coding style + - Bluetooth: avoid memcmp() out of bounds warning + - Bluetooth: hci_conn: Fix modifying handle while aborting + - ice: fix over-shifted variable + - ice: Fix safe mode when DDP is missing + - ice: reset first in crash dump kernels + - net/smc: return the right falback reason when prefix checks fail + - btrfs: fix stripe length calculation for non-zoned data chunk allocation + - nfc: nci: fix possible NULL pointer dereference in send_acknowledge() + - regmap: fix NULL deref on lookup + - KVM: x86: Mask LVTPC when handling a PMI + - x86/fpu: Allow caller to constrain xfeatures when copying to uabi buffer + - KVM: x86/pmu: Truncate counter value to allowed width on write + - KVM: x86: Constrain guest-supported xfeatures only at KVM_GET_XSAVE{2} + - x86: KVM: SVM: add support for Invalid IPI Vector interception + - x86: KVM: SVM: refresh AVIC inhibition in svm_leave_nested() + - tcp: check mptcp-level constraints for backlog coalescing + - mptcp: more conservative check for zero probes + - selftests: mptcp: join: no RST when rm subflow/addr + - mm: slab: Do not create kmalloc caches smaller than arch_slab_minalign() + - fs/ntfs3: Fix OOB read in ntfs_init_from_boot + - fs/ntfs3: Fix possible null-pointer dereference in hdr_find_e() + - fs/ntfs3: fix panic about slab-out-of-bounds caused by ntfs_list_ea() + - fs/ntfs3: Fix shift-out-of-bounds in ntfs_fill_super + - fs/ntfs3: fix deadlock in mark_as_free_ex + - Revert "net: wwan: iosm: enable runtime pm support for 7560" + - netfilter: nft_payload: fix wrong mac header matching + - drm/i915: Retry gtt fault when out of fence registers + - drm/mediatek: Correctly free sg_table in gem prime vmap + - drm/nouveau/disp: fix DP capable DSM connectors + - drm/edid: add 8 bpc quirk to the BenQ GW2765 + - ALSA: hda/realtek - Fixed ASUS platform headset Mic issue + - ALSA: hda/realtek: Add quirk for ASUS ROG GU603ZV + - ALSA: hda/relatek: Enable Mute LED on HP Laptop 15s-fq5xxx + - ASoC: codecs: wcd938x-sdw: fix use after free on driver unbind + - ASoC: codecs: wcd938x-sdw: fix runtime PM imbalance on probe errors + - ASoC: codecs: wcd938x: drop bogus bind error handling + - ASoC: codecs: wcd938x: fix unbind tear down order + - ASoC: codecs: wcd938x: fix resource leaks on bind errors + - ASoC: codecs: wcd938x: fix regulator leaks on probe errors + - ASoC: codecs: wcd938x: fix runtime PM imbalance on remove + - qed: fix LL2 RX buffer allocation + - xfrm: fix a data-race in xfrm_lookup_with_ifid() + - xfrm6: fix inet6_dev refcount underflow problem + - xfrm: fix a data-race in xfrm_gen_index() + - xfrm: interface: use DEV_STATS_INC() + - net: xfrm: skip policies marked as dead while reinserting policies + - fprobe: Fix to ensure the number of active retprobes is not zero + - wifi: cfg80211: use system_unbound_wq for wiphy work + - net: ipv4: fix return value check in esp_remove_trailer + - net: ipv6: fix return value check in esp_remove_trailer + - net: rfkill: gpio: prevent value glitch during probe + - tcp: fix excessive TLP and RACK timeouts from HZ rounding + - tcp: tsq: relax tcp_small_queue_check() when rtx queue contains a single skb + - tcp: Fix listen() warning with v4-mapped-v6 address. + - docs: fix info about representor identification + - tun: prevent negative ifindex + - gve: Do not fully free QPL pages on prefill errors + - ipv4: fib: annotate races around nh->nh_saddr_genid and nh->nh_saddr + - net: usb: smsc95xx: Fix an error code in smsc95xx_reset() + - octeon_ep: update BQL sent bytes before ringing doorbell + - i40e: prevent crash on probe if hw registers have invalid values + - net: dsa: bcm_sf2: Fix possible memory leak in bcm_sf2_mdio_register() + - bonding: Return pointer to data after pull on skb + - net/sched: sch_hfsc: upgrade 'rt' to 'sc' when it becomes a inner curve + - neighbor: tracing: Move pin6 inside CONFIG_IPV6=y section + - selftests: openvswitch: Catch cases where the tests are killed + - selftests: openvswitch: Fix the ct_tuple for v4 + - selftests: netfilter: Run nft_audit.sh in its own netns + - netfilter: nft_set_rbtree: .deactivate fails if element has expired + - netlink: Correct offload_xstats size + - netfilter: nf_tables: do not refresh timeout when resetting element + - netfilter: nf_tables: do not remove elements if set backend implements + .abort + - netfilter: nf_tables: revert do not remove elements if set backend + implements .abort + - selftests: openvswitch: Add version check for pyroute2 + - net: phy: bcm7xxx: Add missing 16nm EPHY statistics + - net: pktgen: Fix interface flags printing + - net: more strict VIRTIO_NET_HDR_GSO_UDP_L4 validation + - net: mdio-mux: fix C45 access returning -EIO after API change + - net: avoid UAF on deleted altname + - net: fix ifname in netlink ntf during netns move + - net: check for altname conflicts when changing netdev's netns + - iio: light: vcnl4000: Don't power on/off chip in config + - pwr-mlxbf: extend Kconfig to include gpio-mlxbf3 dependency + - ARM: dts: ti: omap: Fix noisy serial with overrun-throttle-ms for mapphone + - arm64: dts: mediatek: Fix "mediatek,merge-mute" and "mediatek,merge-fifo-en" + types + - fs-writeback: do not requeue a clean inode having skipped pages + - btrfs: fix race when refilling delayed refs block reserve + - btrfs: prevent transaction block reserve underflow when starting transaction + - btrfs: return -EUCLEAN for delayed tree ref with a ref count not equals to 1 + - btrfs: initialize start_slot in btrfs_log_prealloc_extents + - i2c: mux: Avoid potential false error message in i2c_mux_add_adapter + - overlayfs: set ctime when setting mtime and atime + - accel/ivpu: Don't flood dmesg with VPU ready message + - gpio: timberdale: Fix potential deadlock on &tgpio->lock + - ata: libata-core: Fix compilation warning in ata_dev_config_ncq() + - ata: libata-eh: Fix compilation warning in ata_eh_link_report() + - tracing: relax trace_event_eval_update() execution with cond_resched() + - wifi: mwifiex: Sanity check tlv_len and tlv_bitmap_len + - wifi: cfg80211: validate AP phy operation before starting it + - wifi: iwlwifi: Ensure ack flag is properly cleared. + - rfkill: sync before userspace visibility/changes + - HID: logitech-hidpp: Add Bluetooth ID for the Logitech M720 Triathlon mouse + - HID: holtek: fix slab-out-of-bounds Write in holtek_kbd_input_event + - Bluetooth: btusb: add shutdown function for QCA6174 + - Bluetooth: Avoid redundant authentication + - Bluetooth: hci_core: Fix build warnings + - wifi: cfg80211: Fix 6GHz scan configuration + - wifi: mac80211: work around Cisco AP 9115 VHT MPDU length + - wifi: mac80211: allow transmitting EAPOL frames with tainted key + - wifi: cfg80211: avoid leaking stack data into trace + - regulator/core: Revert "fix kobject release warning and memory leak in + regulator_register()" + - SUNRPC: Fail quickly when server does not recognize TLS + - SUNRPC/TLS: Lock the lower_xprt during the tls handshake + - nfs: decrement nrequests counter before releasing the req + - sky2: Make sure there is at least one frag_addr available + - ipv4/fib: send notify when delete source address routes + - drm: panel-orientation-quirks: Add quirk for One Mix 2S + - btrfs: fix some -Wmaybe-uninitialized warnings in ioctl.c + - btrfs: error out when COWing block using a stale transaction + - btrfs: error when COWing block from a root that is being deleted + - btrfs: error out when reallocating block for defrag using a stale + transaction + - platform/x86: touchscreen_dmi: Add info for the BUSH Bush Windows tablet + - drm/amd/pm: add unique_id for gc 11.0.3 + - HID: multitouch: Add required quirk for Synaptics 0xcd7e device + - HID: nintendo: reinitialize USB Pro Controller after resuming from suspend + - HID: Add quirk to ignore the touchscreen battery on HP ENVY 15-eu0556ng + - platform/x86: touchscreen_dmi: Add info for the Positivo C4128B + - cpufreq: schedutil: Update next_freq when cpufreq_limits change + - Bluetooth: hci_sync: Fix not handling ISO_LINK in hci_abort_conn_sync + - Bluetooth: hci_sync: Introduce PTR_UINT/UINT_PTR macros + - Bluetooth: ISO: Fix invalid context error + - Bluetooth: hci_sync: delete CIS in BT_OPEN/CONNECT/BOUND when aborting + - Bluetooth: hci_sync: always check if connection is alive before deleting + - net/mlx5: E-switch, register event handler before arming the event + - net/mlx5: Handle fw tracer change ownership event based on MTRC + - net/mlx5e: RX, Fix page_pool allocation failure recovery for striding rq + - net/mlx5e: RX, Fix page_pool allocation failure recovery for legacy rq + - net/mlx5e: XDP, Fix XDP_REDIRECT mpwqe page fragment leaks on shutdown + - net/mlx5e: Take RTNL lock before triggering netdev notifiers + - net/mlx5e: Don't offload internal port if filter device is out device + - net/mlx5e: Fix VF representors reporting zero counters to "ip -s" command + - net/tls: split tls_rx_reader_lock + - tcp: allow again tcp_disconnect() when threads are waiting + - Bluetooth: hci_event: Fix using memcmp when comparing keys + - tcp_bpf: properly release resources on error paths + - mtd: rawnand: qcom: Unmap the right resource upon probe failure + - mtd: rawnand: pl353: Ensure program page operations are successful + - mtd: rawnand: marvell: Ensure program page operations are successful + - mtd: rawnand: arasan: Ensure program page operations are successful + - mtd: rawnand: Ensure the nand chip supports cached reads + - mtd: spinand: micron: correct bitmask for ecc status + - mtd: physmap-core: Restore map_rom fallback + - dt-bindings: mmc: sdhci-msm: correct minimum number of clocks + - mmc: sdhci-pci-gli: fix LPM negotiation so x86/S0ix SoCs can suspend + - mmc: mtk-sd: Use readl_poll_timeout_atomic in msdc_reset_hw + - mmc: core: Fix error propagation for some ioctl commands + - mmc: core: sdio: hold retuning if sdio in 1-bit mode + - pinctrl: qcom: lpass-lpi: fix concurrent register updates + - pNFS: Fix a hang in nfs4_evict_inode() + - pNFS/flexfiles: Check the layout validity in ff_layout_mirror_prepare_stats + - NFSv4.1: fixup use EXCHGID4_FLAG_USE_PNFS_DS for DS server + - ACPI: irq: Fix incorrect return value in acpi_register_gsi() + - ACPI: bus: Move acpi_arm_init() to the place of after acpi_ghes_init() + - perf dlfilter: Fix use of addr_location__exit() in dlfilter__object_code() + - fanotify: limit reporting of event with non-decodeable file handles + - NFS: Fix potential oops in nfs_inode_remove_request() + - nfs42: client needs to strip file mode's suid/sgid bit after ALLOCATE op + - nvme: sanitize metadata bounce buffer for reads + - nvme-pci: add BOGUS_NID for Intel 0a54 device + - nvme-auth: use chap->s2 to indicate bidirectional authentication + - nvmet-auth: complete a request only after freeing the dhchap pointers + - nvme-rdma: do not try to stop unallocated queues + - USB: serial: option: add Telit LE910C4-WWX 0x1035 composition + - USB: serial: option: add entry for Sierra EM9191 with new firmware + - USB: serial: option: add Fibocom to DELL custom modem FM101R-GL + - thunderbolt: Call tb_switch_put() once DisplayPort bandwidth request is + finished + - s390/pci: fix iommu bitmap allocation + - tracing/kprobes: Return EADDRNOTAVAIL when func matches several symbols + - selftests/ftrace: Add new test case which checks non unique symbol + - KEYS: asymmetric: Fix sign/verify on pkcs1pad without a hash + - apple-gmux: Hard Code max brightness for MMIO gmux + - s390/cio: fix a memleak in css_alloc_subchannel + - platform/surface: platform_profile: Propagate error if profile registration + fails + - platform/x86: intel-uncore-freq: Conditionally create attribute for read + frequency + - platform/x86: msi-ec: Fix the 3rd config + - platform/x86: asus-wmi: Change ASUS_WMI_BRN_DOWN code from 0x20 to 0x2e + - platform/x86: asus-wmi: Only map brightness codes when using asus-wmi + backlight control + - platform/x86: asus-wmi: Map 0x2a code, Ignore 0x2b and 0x2c events + - rust: error: fix the description for `ECHILD` + - gpiolib: acpi: Add missing memset(0) to acpi_get_gpiod_from_data() + - gpio: vf610: set value before the direction to avoid a glitch + - gpio: vf610: mask the gpio irq in system suspend and support wakeup + - ASoC: cs35l56: Fix illegal use of init_completion() + - ASoC: pxa: fix a memory leak in probe() + - ASoC: cs42l42: Fix missing include of gpio/consumer.h + - drm/bridge: ti-sn65dsi86: Associate DSI device lifetime with auxiliary + device + - drm/i915/cx0: Only clear/set the Pipe Reset bit of the PHY Lanes Owned + - drm/amdgpu: Fix possible null pointer dereference + - powerpc/mm: Allow ARCH_FORCE_MAX_ORDER up to 12 + - powerpc/qspinlock: Fix stale propagated yield_cpu + - docs: Move rustdoc output, cross-reference it + - rust: docs: fix logo replacement + - phy: mapphone-mdm6600: Fix runtime disable on probe + - phy: mapphone-mdm6600: Fix runtime PM for remove + - phy: mapphone-mdm6600: Fix pinctrl_pm handling for sleep pins + - phy: qcom-qmp-usb: initialize PCS_USB registers + - phy: qcom-qmp-usb: split PCS_USB init table for sc8280xp and sa8775p + - phy: qcom-qmp-combo: Square out 8550 POWER_STATE_CONFIG1 + - phy: qcom-qmp-combo: initialize PCS_USB registers + - efi/unaccepted: Fix soft lockups caused by parallel memory acceptance + - net: move altnames together with the netdevice + - Bluetooth: hci_sock: fix slab oob read in create_monitor_event + - net: rfkill: reduce data->mtx scope in rfkill_fop_open + - docs: rust: update Rust docs output path + - kbuild: remove old Rust docs output path + - Bluetooth: hci_sock: Correctly bounds check and pad HCI_MON_NEW_INDEX name + - mptcp: avoid sending RST when closing the initial subflow + - selftests: mptcp: join: correctly check for no RST + - Linux 6.5.9 + * CVE-2023-51779 + - Bluetooth: af_bluetooth: Fix Use-After-Free in bt_sock_recvmsg + + -- Emil Renner Berthing Wed, 28 Feb 2024 12:50:30 +0100 + +linux-riscv (6.5.0-21.21.1) mantic; urgency=medium + + * mantic/linux-riscv: 6.5.0-21.21.1 -proposed tracker (LP: #2052283) + + [ Ubuntu: 6.5.0-21.21 ] + + * mantic/linux: 6.5.0-21.21 -proposed tracker (LP: #2052603) + * The display becomes frozen after some time when a HDMI device is connected. + (LP: #2049027) + - drm/i915/dmc: Don't enable any pipe DMC events + * partproke is broken on empty loopback device (LP: #2049689) + - block: Move checking GENHD_FL_NO_PART to bdev_add_partition() + * CVE-2023-51781 + - appletalk: Fix Use-After-Free in atalk_ioctl + * CVE-2023-51780 + - atm: Fix Use-After-Free in do_vcc_ioctl + * CVE-2023-6915 + - ida: Fix crash in ida_free when the bitmap is empty + * CVE-2024-0565 + - smb: client: fix OOB in receive_encrypted_standard() + * CVE-2024-0582 + - io_uring: enable io_mem_alloc/free to be used in other parts + - io_uring/kbuf: defer release of mapped buffer rings + * CVE-2024-0646 + - net: tls, update curr on splice as well + + -- Emil Renner Berthing Fri, 16 Feb 2024 13:26:46 +0100 + linux-riscv (6.5.0-17.17.1) mantic; urgency=medium * mantic/linux-riscv: 6.5.0-17.17.1 -proposed tracker (LP: #2048366) diff -u linux-riscv-6.5.0/debian/control linux-riscv-6.5.0/debian/control --- linux-riscv-6.5.0/debian/control +++ linux-riscv-6.5.0/debian/control @@ -70,7 +70,7 @@ XS-Testsuite: autopkgtest #XS-Testsuite-Depends: gcc-4.7 binutils -Package: linux-riscv-headers-6.5.0-17 +Package: linux-riscv-headers-6.5.0-25 Build-Profiles: Architecture: all Multi-Arch: foreign @@ -80,33 +80,33 @@ Description: Header files related to Linux kernel version 6.5.0 This package provides kernel header files for version 6.5.0, for sites that want the latest kernel headers. Please read - /usr/share/doc/linux-riscv-headers-6.5.0-17/debian.README.gz for details + /usr/share/doc/linux-riscv-headers-6.5.0-25/debian.README.gz for details -Package: linux-riscv-tools-6.5.0-17 +Package: linux-riscv-tools-6.5.0-25 Build-Profiles: Architecture: riscv64 Section: devel Priority: optional Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common -Description: Linux kernel version specific tools for version 6.5.0-17 +Description: Linux kernel version specific tools for version 6.5.0-25 This package provides the architecture dependant parts for kernel version locked tools (such as perf and x86_energy_perf_policy) for - version 6.5.0-17 on + version 6.5.0-25 on . - You probably want to install linux-tools-6.5.0-17-. + You probably want to install linux-tools-6.5.0-25-. -Package: linux-image-6.5.0-17-generic +Package: linux-image-6.5.0-25-generic Build-Profiles: Architecture: riscv64 Section: kernel Priority: optional Provides: linux-image, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules, ${linux:rprovides} -Depends: ${misc:Depends}, ${shlibs:Depends}, kmod, linux-base (>= 4.5ubuntu1~16.04.1), linux-modules-6.5.0-17-generic +Depends: ${misc:Depends}, ${shlibs:Depends}, kmod, linux-base (>= 4.5ubuntu1~16.04.1), linux-modules-6.5.0-25-generic Recommends: , initramfs-tools | linux-initramfs-tool Breaks: flash-kernel (<< 3.90ubuntu2) [arm64 armhf], s390-tools (<< 2.3.0-0ubuntu3) [s390x] -Conflicts: linux-image-unsigned-6.5.0-17-generic -Suggests: fdutils, linux-doc | linux-riscv-source-6.5.0, linux-riscv-tools, linux-headers-6.5.0-17-generic, linux-modules-extra-6.5.0-17-generic +Conflicts: linux-image-unsigned-6.5.0-25-generic +Suggests: fdutils, linux-doc | linux-riscv-source-6.5.0, linux-riscv-tools, linux-headers-6.5.0-25-generic, linux-modules-extra-6.5.0-25-generic Description: Linux kernel image for version 6.5.0 on SMP This package contains the Linux kernel image for version 6.5.0 on SMP. @@ -119,7 +119,7 @@ the linux-generic meta-package, which will ensure that upgrades work correctly, and that supporting packages are also installed. -Package: linux-modules-6.5.0-17-generic +Package: linux-modules-6.5.0-25-generic Build-Profiles: Architecture: riscv64 Section: kernel @@ -139,12 +139,12 @@ the linux-generic meta-package, which will ensure that upgrades work correctly, and that supporting packages are also installed. -Package: linux-modules-extra-6.5.0-17-generic +Package: linux-modules-extra-6.5.0-25-generic Build-Profiles: Architecture: riscv64 Section: kernel Priority: optional -Depends: ${misc:Depends}, ${shlibs:Depends}, linux-modules-6.5.0-17-generic, wireless-regdb +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-modules-6.5.0-25-generic, wireless-regdb Description: Linux kernel extra modules for version 6.5.0 on SMP This package contains the Linux kernel extra modules for version 6.5.0 on SMP. @@ -161,21 +161,21 @@ the linux-generic meta-package, which will ensure that upgrades work correctly, and that supporting packages are also installed. -Package: linux-headers-6.5.0-17-generic +Package: linux-headers-6.5.0-25-generic Build-Profiles: Architecture: riscv64 Section: devel Priority: optional -Depends: ${misc:Depends}, linux-riscv-headers-6.5.0-17, ${shlibs:Depends} +Depends: ${misc:Depends}, linux-riscv-headers-6.5.0-25, ${shlibs:Depends} Provides: linux-headers, linux-headers-3.0 Description: Linux kernel headers for version 6.5.0 on SMP This package provides kernel header files for version 6.5.0 on SMP. . This is for sites that want the latest kernel headers. Please read - /usr/share/doc/linux-headers-6.5.0-17/debian.README.gz for details. + /usr/share/doc/linux-headers-6.5.0-25/debian.README.gz for details. -Package: linux-image-6.5.0-17-generic-dbgsym +Package: linux-image-6.5.0-25-generic-dbgsym Build-Profiles: Architecture: riscv64 Section: devel @@ -192,31 +192,31 @@ is uncompressed, and unstripped. This package also includes the unstripped modules. -Package: linux-tools-6.5.0-17-generic +Package: linux-tools-6.5.0-25-generic Build-Profiles: Architecture: riscv64 Section: devel Priority: optional -Depends: ${misc:Depends}, linux-riscv-tools-6.5.0-17 -Description: Linux kernel version specific tools for version 6.5.0-17 +Depends: ${misc:Depends}, linux-riscv-tools-6.5.0-25 +Description: Linux kernel version specific tools for version 6.5.0-25 This package provides the architecture dependant parts for kernel version locked tools (such as perf and x86_energy_perf_policy) for - version 6.5.0-17 on + version 6.5.0-25 on . -Package: linux-cloud-tools-6.5.0-17-generic +Package: linux-cloud-tools-6.5.0-25-generic Build-Profiles: Architecture: riscv64 Section: devel Priority: optional -Depends: ${misc:Depends}, linux-riscv-cloud-tools-6.5.0-17 -Description: Linux kernel version specific cloud tools for version 6.5.0-17 +Depends: ${misc:Depends}, linux-riscv-cloud-tools-6.5.0-25 +Description: Linux kernel version specific cloud tools for version 6.5.0-25 This package provides the architecture dependant parts for kernel - version locked tools for cloud for version 6.5.0-17 on + version locked tools for cloud for version 6.5.0-25 on . -Package: linux-buildinfo-6.5.0-17-generic +Package: linux-buildinfo-6.5.0-25-generic Build-Profiles: Architecture: riscv64 Section: kernel @@ -230,18 +230,18 @@ You likely do not want to install this package. -Package: linux-modules-iwlwifi-6.5.0-17-generic +Package: linux-modules-iwlwifi-6.5.0-25-generic Build-Profiles: Architecture: riscv64 Section: kernel Priority: optional Depends: ${misc:Depends}, - linux-image-6.5.0-17-generic | linux-image-unsigned-6.5.0-17-generic, + linux-image-6.5.0-25-generic | linux-image-unsigned-6.5.0-25-generic, Built-Using: ${linux:BuiltUsing} -Description: Linux kernel iwlwifi modules for version 6.5.0-17 +Description: Linux kernel iwlwifi modules for version 6.5.0-25 This package provides the Linux kernel iwlwifi modules for version - 6.5.0-17. + 6.5.0-25. . You likely do not want to install this package directly. Instead, install the one of the linux-modules-iwlwifi-generic* meta-packages, diff -u linux-riscv-6.5.0/debian/dkms-versions linux-riscv-6.5.0/debian/dkms-versions --- linux-riscv-6.5.0/debian/dkms-versions +++ linux-riscv-6.5.0/debian/dkms-versions @@ -1,3 +1,3 @@ -zfs-linux 2.2.0-0ubuntu1~23.10 modulename=zfs debpath=pool/universe/z/%package%/zfs-dkms_%version%_all.deb arch=amd64 arch=arm64 arch=ppc64el arch=s390x rprovides=spl-modules rprovides=spl-dkms rprovides=zfs-modules rprovides=zfs-dkms +zfs-linux 2.2.0-0ubuntu1~23.10.1 modulename=zfs debpath=pool/universe/z/%package%/zfs-dkms_%version%_all.deb arch=amd64 arch=arm64 arch=ppc64el arch=s390x rprovides=spl-modules rprovides=spl-dkms rprovides=zfs-modules rprovides=zfs-dkms backport-iwlwifi-dkms 11289-0ubuntu1.23.10.1 modulename=iwlwifi debpath=pool/universe/b/%package%/backport-iwlwifi-dkms_%version%_all.deb arch=amd64 rprovides=iwlwifi-modules rprovides=backport-iwlwifi-dkms type=standalone v4l2loopback 0.12.7-2ubuntu4 modulename=v4l2loopback debpath=pool/universe/v/%package%/v4l2loopback-dkms_%version%_all.deb arch=amd64 rprovides=v4l2loopback-modules rprovides=v4l2loopback-dkms diff -u linux-riscv-6.5.0/drivers/acpi/acpi_video.c linux-riscv-6.5.0/drivers/acpi/acpi_video.c --- linux-riscv-6.5.0/drivers/acpi/acpi_video.c +++ linux-riscv-6.5.0/drivers/acpi/acpi_video.c @@ -254,8 +254,7 @@ static int video_get_max_state(struct thermal_cooling_device *cooling_dev, unsigned long *state) { - struct acpi_device *device = cooling_dev->devdata; - struct acpi_video_device *video = acpi_driver_data(device); + struct acpi_video_device *video = cooling_dev->devdata; *state = video->brightness->count - ACPI_VIDEO_FIRST_LEVEL - 1; return 0; @@ -264,8 +263,7 @@ static int video_get_cur_state(struct thermal_cooling_device *cooling_dev, unsigned long *state) { - struct acpi_device *device = cooling_dev->devdata; - struct acpi_video_device *video = acpi_driver_data(device); + struct acpi_video_device *video = cooling_dev->devdata; unsigned long long level; int offset; @@ -284,8 +282,7 @@ static int video_set_cur_state(struct thermal_cooling_device *cooling_dev, unsigned long state) { - struct acpi_device *device = cooling_dev->devdata; - struct acpi_video_device *video = acpi_driver_data(device); + struct acpi_video_device *video = cooling_dev->devdata; int level; if (state >= video->brightness->count - ACPI_VIDEO_FIRST_LEVEL) @@ -1126,7 +1123,6 @@ strcpy(acpi_device_name(device), ACPI_VIDEO_DEVICE_NAME); strcpy(acpi_device_class(device), ACPI_VIDEO_CLASS); - device->driver_data = data; data->device_id = device_id; data->video = video; @@ -1747,8 +1743,8 @@ device->backlight->props.brightness = acpi_video_get_brightness(device->backlight); - device->cooling_dev = thermal_cooling_device_register("LCD", - device->dev, &video_cooling_ops); + device->cooling_dev = thermal_cooling_device_register("LCD", device, + &video_cooling_ops); if (IS_ERR(device->cooling_dev)) { /* * Set cooling_dev to NULL so we don't crash trying to free it. @@ -2031,7 +2027,7 @@ * HP ZBook Fury 16 G10 requires ACPI video's child devices have _PS0 * evaluated to have functional panel brightness control. */ - acpi_device_fix_up_power_extended(device); + acpi_device_fix_up_power_children(device); pr_info("%s [%s] (multi-head: %s rom: %s post: %s)\n", ACPI_VIDEO_DEVICE_NAME, acpi_device_bid(device), diff -u linux-riscv-6.5.0/drivers/acpi/ec.c linux-riscv-6.5.0/drivers/acpi/ec.c --- linux-riscv-6.5.0/drivers/acpi/ec.c +++ linux-riscv-6.5.0/drivers/acpi/ec.c @@ -1926,6 +1926,16 @@ }, { /* + * HP 250 G7 Notebook PC + */ + .callback = ec_honor_dsdt_gpe, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "HP"), + DMI_MATCH(DMI_PRODUCT_NAME, "HP 250 G7 Notebook PC"), + }, + }, + { + /* * Samsung hardware * https://bugzilla.kernel.org/show_bug.cgi?id=44161 */ diff -u linux-riscv-6.5.0/drivers/acpi/processor_idle.c linux-riscv-6.5.0/drivers/acpi/processor_idle.c --- linux-riscv-6.5.0/drivers/acpi/processor_idle.c +++ linux-riscv-6.5.0/drivers/acpi/processor_idle.c @@ -592,7 +592,7 @@ while (1) { if (cx->entry_method == ACPI_CSTATE_HALT) - safe_halt(); + raw_safe_halt(); else if (cx->entry_method == ACPI_CSTATE_SYSTEMIO) { io_idle(cx->address); } else diff -u linux-riscv-6.5.0/drivers/acpi/resource.c linux-riscv-6.5.0/drivers/acpi/resource.c --- linux-riscv-6.5.0/drivers/acpi/resource.c +++ linux-riscv-6.5.0/drivers/acpi/resource.c @@ -447,6 +447,13 @@ }, }, { + /* Asus ExpertBook B1402CVA */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_BOARD_NAME, "B1402CVA"), + }, + }, + { .ident = "Asus ExpertBook B1502CBA", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), @@ -454,6 +461,13 @@ }, }, { + /* Asus ExpertBook B1402CVA */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_BOARD_NAME, "B1402CVA"), + }, + }, + { .ident = "Asus ExpertBook B2402CBA", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), @@ -496,6 +510,18 @@ } }, { + /* TongFang GMxXGxx/TUXEDO Polaris 15 Gen5 AMD */ + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "GMxXGxx"), + }, + }, + { + /* TongFang GM6XGxX/TUXEDO Stellaris 16 Gen5 AMD */ + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "GM6XGxX"), + }, + }, + { .ident = "MAINGEAR Vector Pro 2 17", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Micro Electronics Inc"), diff -u linux-riscv-6.5.0/drivers/acpi/video_detect.c linux-riscv-6.5.0/drivers/acpi/video_detect.c --- linux-riscv-6.5.0/drivers/acpi/video_detect.c +++ linux-riscv-6.5.0/drivers/acpi/video_detect.c @@ -130,6 +130,16 @@ return 0; } +static int video_detect_portege_r100(const struct dmi_system_id *d) +{ + struct pci_dev *dev; + /* Search for Trident CyberBlade XP4m32 to confirm Portégé R100 */ + dev = pci_get_device(PCI_VENDOR_ID_TRIDENT, 0x2100, NULL); + if (dev) + acpi_backlight_dmi = acpi_backlight_vendor; + return 0; +} + static const struct dmi_system_id video_detect_dmi_table[] = { /* * Models which should use the vendor backlight interface, @@ -271,6 +281,22 @@ }, /* + * Toshiba Portégé R100 has working both acpi_video and toshiba_acpi + * vendor driver. But none of them gets activated as it has a VGA with + * no kernel driver (Trident CyberBlade XP4m32). + * The DMI strings are generic so check for the VGA chip in callback. + */ + { + .callback = video_detect_portege_r100, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Portable PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "Version 1.0"), + DMI_MATCH(DMI_BOARD_NAME, "Portable PC") + }, + }, + + /* * Models which need acpi_video backlight control where the GPU drivers * do not call acpi_video_register_backlight() because no internal panel * is detected. Typically these are all-in-ones (monitors with builtin diff -u linux-riscv-6.5.0/drivers/ata/libata-core.c linux-riscv-6.5.0/drivers/ata/libata-core.c --- linux-riscv-6.5.0/drivers/ata/libata-core.c +++ linux-riscv-6.5.0/drivers/ata/libata-core.c @@ -2624,7 +2624,7 @@ { const u16 *id = dev->id; const char *lba_desc; - char ncq_desc[24]; + char ncq_desc[32]; int ret; dev->flags |= ATA_DFLAG_LBA; diff -u linux-riscv-6.5.0/drivers/ata/libata-eh.c linux-riscv-6.5.0/drivers/ata/libata-eh.c --- linux-riscv-6.5.0/drivers/ata/libata-eh.c +++ linux-riscv-6.5.0/drivers/ata/libata-eh.c @@ -2366,7 +2366,7 @@ struct ata_eh_context *ehc = &link->eh_context; struct ata_queued_cmd *qc; const char *frozen, *desc; - char tries_buf[6] = ""; + char tries_buf[16] = ""; int tag, nr_failed = 0; if (ehc->i.flags & ATA_EHI_QUIET) diff -u linux-riscv-6.5.0/drivers/ata/libata-scsi.c linux-riscv-6.5.0/drivers/ata/libata-scsi.c --- linux-riscv-6.5.0/drivers/ata/libata-scsi.c +++ linux-riscv-6.5.0/drivers/ata/libata-scsi.c @@ -1103,10 +1103,16 @@ /* * Ask the sd driver to issue START STOP UNIT on runtime suspend - * and resume only. For system level suspend/resume, devices - * power state is handled directly by libata EH. + * and resume and shutdown only. For system level suspend/resume, + * devices power state is handled directly by libata EH. + * Given that disks are always spun up on system resume, also + * make sure that the sd driver forces runtime suspended disks + * to be resumed to correctly reflect the power state of the + * device. */ - sdev->manage_runtime_start_stop = true; + sdev->manage_runtime_start_stop = 1; + sdev->manage_shutdown = 1; + sdev->force_runtime_start_on_system_start = 1; } /* diff -u linux-riscv-6.5.0/drivers/ata/pata_parport/pata_parport.c linux-riscv-6.5.0/drivers/ata/pata_parport/pata_parport.c --- linux-riscv-6.5.0/drivers/ata/pata_parport/pata_parport.c +++ linux-riscv-6.5.0/drivers/ata/pata_parport/pata_parport.c @@ -80,6 +80,72 @@ return (nsect == 0x55) && (lbal == 0xaa); } +static int pata_parport_wait_after_reset(struct ata_link *link, + unsigned int devmask, + unsigned long deadline) +{ + struct ata_port *ap = link->ap; + struct pi_adapter *pi = ap->host->private_data; + unsigned int dev0 = devmask & (1 << 0); + unsigned int dev1 = devmask & (1 << 1); + int rc, ret = 0; + + ata_msleep(ap, ATA_WAIT_AFTER_RESET); + + /* always check readiness of the master device */ + rc = ata_sff_wait_ready(link, deadline); + if (rc) { + /* + * some adapters return bogus values if master device is not + * present, so don't abort now if a slave device is present + */ + if (!dev1) + return rc; + ret = -ENODEV; + } + + /* + * if device 1 was found in ata_devchk, wait for register + * access briefly, then wait for BSY to clear. + */ + if (dev1) { + int i; + + pata_parport_dev_select(ap, 1); + + /* + * Wait for register access. Some ATAPI devices fail + * to set nsect/lbal after reset, so don't waste too + * much time on it. We're gonna wait for !BSY anyway. + */ + for (i = 0; i < 2; i++) { + u8 nsect, lbal; + + nsect = pi->proto->read_regr(pi, 0, ATA_REG_NSECT); + lbal = pi->proto->read_regr(pi, 0, ATA_REG_LBAL); + if (nsect == 1 && lbal == 1) + break; + /* give drive a breather */ + ata_msleep(ap, 50); + } + + rc = ata_sff_wait_ready(link, deadline); + if (rc) { + if (rc != -ENODEV) + return rc; + ret = rc; + } + } + + pata_parport_dev_select(ap, 0); + if (dev1) + pata_parport_dev_select(ap, 1); + if (dev0) + pata_parport_dev_select(ap, 0); + + return ret; +} + static int pata_parport_bus_softreset(struct ata_port *ap, unsigned int devmask, unsigned long deadline) { @@ -94,7 +160,7 @@ ap->last_ctl = ap->ctl; /* wait the port to become ready */ - return ata_sff_wait_after_reset(&ap->link, devmask, deadline); + return pata_parport_wait_after_reset(&ap->link, devmask, deadline); } static int pata_parport_softreset(struct ata_link *link, unsigned int *classes, diff -u linux-riscv-6.5.0/drivers/base/dd.c linux-riscv-6.5.0/drivers/base/dd.c --- linux-riscv-6.5.0/drivers/base/dd.c +++ linux-riscv-6.5.0/drivers/base/dd.c @@ -1274,8 +1274,8 @@ if (dev->bus && dev->bus->dma_cleanup) dev->bus->dma_cleanup(dev); - device_links_driver_cleanup(dev); device_unbind_cleanup(dev); + device_links_driver_cleanup(dev); klist_remove(&dev->p->knode_driver); device_pm_check_callbacks(dev); diff -u linux-riscv-6.5.0/drivers/block/nbd.c linux-riscv-6.5.0/drivers/block/nbd.c --- linux-riscv-6.5.0/drivers/block/nbd.c +++ linux-riscv-6.5.0/drivers/block/nbd.c @@ -250,7 +250,6 @@ struct gendisk *disk = nbd->disk; del_gendisk(disk); - put_disk(disk); blk_mq_free_tag_set(&nbd->tag_set); /* @@ -261,7 +260,7 @@ idr_remove(&nbd_index_idr, nbd->index); mutex_unlock(&nbd_index_mutex); destroy_workqueue(nbd->recv_workq); - kfree(nbd); + put_disk(disk); } static void nbd_dev_remove_work(struct work_struct *work) @@ -1609,6 +1608,13 @@ nbd_put(nbd); } +static void nbd_free_disk(struct gendisk *disk) +{ + struct nbd_device *nbd = disk->private_data; + + kfree(nbd); +} + static const struct block_device_operations nbd_fops = { .owner = THIS_MODULE, @@ -1616,6 +1622,7 @@ .release = nbd_release, .ioctl = nbd_ioctl, .compat_ioctl = nbd_ioctl, + .free_disk = nbd_free_disk, }; #if IS_ENABLED(CONFIG_DEBUG_FS) diff -u linux-riscv-6.5.0/drivers/bluetooth/btusb.c linux-riscv-6.5.0/drivers/bluetooth/btusb.c --- linux-riscv-6.5.0/drivers/bluetooth/btusb.c +++ linux-riscv-6.5.0/drivers/bluetooth/btusb.c @@ -2809,6 +2809,9 @@ goto err_free_wc; } + if (data->evt_skb == NULL) + goto err_free_wc; + /* Parse and handle the return WMT event */ wmt_evt = (struct btmtk_hci_wmt_evt *)data->evt_skb->data; if (wmt_evt->whdr.op != hdr->op) { @@ -4393,6 +4396,7 @@ if (id->driver_info & BTUSB_QCA_ROME) { data->setup_on_usb = btusb_setup_qca; + hdev->shutdown = btusb_shutdown_qca; hdev->set_bdaddr = btusb_set_bdaddr_ath3012; hdev->cmd_timeout = btusb_qca_cmd_timeout; set_bit(HCI_QUIRK_SIMULTANEOUS_DISCOVERY, &hdev->quirks); diff -u linux-riscv-6.5.0/drivers/char/agp/parisc-agp.c linux-riscv-6.5.0/drivers/char/agp/parisc-agp.c --- linux-riscv-6.5.0/drivers/char/agp/parisc-agp.c +++ linux-riscv-6.5.0/drivers/char/agp/parisc-agp.c @@ -38,7 +38,7 @@ int lba_cap_offset; - u64 *gatt; + __le64 *gatt; u64 gatt_entries; u64 gart_base; @@ -104,7 +104,7 @@ int i; for (i = 0; i < info->gatt_entries; i++) { - info->gatt[i] = (unsigned long)agp_bridge->scratch_page; + info->gatt[i] = cpu_to_le64(agp_bridge->scratch_page); } return 0; @@ -158,9 +158,9 @@ for (k = 0; k < info->io_pages_per_kpage; k++, j++, paddr += info->io_page_size) { - info->gatt[j] = + info->gatt[j] = cpu_to_le64( parisc_agp_mask_memory(agp_bridge, - paddr, type); + paddr, type)); asm_io_fdc(&info->gatt[j]); } } @@ -184,7 +184,7 @@ io_pg_start = info->io_pages_per_kpage * pg_start; io_pg_count = info->io_pages_per_kpage * mem->page_count; for (i = io_pg_start; i < io_pg_count + io_pg_start; i++) { - info->gatt[i] = agp_bridge->scratch_page; + info->gatt[i] = cpu_to_le64(agp_bridge->scratch_page); } agp_bridge->driver->tlb_flush(mem); @@ -204,7 +204,8 @@ pa |= (ci >> PAGE_SHIFT) & 0xff;/* move CI (8 bits) into lowest byte */ pa |= SBA_PDIR_VALID_BIT; /* set "valid" bit */ - return cpu_to_le64(pa); + /* return native (big-endian) PDIR entry */ + return pa; } static void @@ -251,7 +252,8 @@ agp_ioc_init(void __iomem *ioc_regs) { struct _parisc_agp_info *info = &parisc_agp_info; - u64 iova_base, *io_pdir, io_tlb_ps; + u64 iova_base, io_tlb_ps; + __le64 *io_pdir; int io_tlb_shift; printk(KERN_INFO DRVPFX "IO PDIR shared with sba_iommu\n"); diff -u linux-riscv-6.5.0/drivers/clk/keystone/pll.c linux-riscv-6.5.0/drivers/clk/keystone/pll.c --- linux-riscv-6.5.0/drivers/clk/keystone/pll.c +++ linux-riscv-6.5.0/drivers/clk/keystone/pll.c @@ -281,12 +281,13 @@ clk = clk_register_divider(NULL, clk_name, parent_name, 0, reg, shift, mask, 0, NULL); - if (clk) { - of_clk_add_provider(node, of_clk_src_simple_get, clk); - } else { + if (IS_ERR(clk)) { pr_err("%s: error registering divider %s\n", __func__, clk_name); iounmap(reg); + return; } + + of_clk_add_provider(node, of_clk_src_simple_get, clk); } CLK_OF_DECLARE(pll_divider_clock, "ti,keystone,pll-divider-clock", of_pll_div_clk_init); @@ -328,10 +329,12 @@ clk = clk_register_mux(NULL, clk_name, (const char **)&parents, ARRAY_SIZE(parents) , 0, reg, shift, mask, 0, NULL); - if (clk) - of_clk_add_provider(node, of_clk_src_simple_get, clk); - else + if (IS_ERR(clk)) { pr_err("%s: error registering mux %s\n", __func__, clk_name); + return; + } + + of_clk_add_provider(node, of_clk_src_simple_get, clk); } CLK_OF_DECLARE(pll_mux_clock, "ti,keystone,pll-mux-clock", of_pll_mux_clk_init); diff -u linux-riscv-6.5.0/drivers/clk/qcom/Kconfig linux-riscv-6.5.0/drivers/clk/qcom/Kconfig --- linux-riscv-6.5.0/drivers/clk/qcom/Kconfig +++ linux-riscv-6.5.0/drivers/clk/qcom/Kconfig @@ -131,6 +131,7 @@ tristate "IPQ APSS Clock Controller" select IPQ_APSS_PLL depends on QCOM_APCS_IPC || COMPILE_TEST + depends on QCOM_SMEM help Support for APSS clock controller on IPQ platforms. The APSS clock controller manages the Mux and enable block that feeds the diff -u linux-riscv-6.5.0/drivers/clocksource/arm_arch_timer.c linux-riscv-6.5.0/drivers/clocksource/arm_arch_timer.c --- linux-riscv-6.5.0/drivers/clocksource/arm_arch_timer.c +++ linux-riscv-6.5.0/drivers/clocksource/arm_arch_timer.c @@ -836,8 +836,9 @@ * Note that TVAL is signed, thus has only 31 of its * 32 bits to express magnitude. */ - MIDR_ALL_VERSIONS(MIDR_CPU_MODEL(ARM_CPU_IMP_APM, - APM_CPU_PART_POTENZA)), + MIDR_REV_RANGE(MIDR_CPU_MODEL(ARM_CPU_IMP_APM, + APM_CPU_PART_XGENE), + APM_CPU_VAR_POTENZA, 0x0, 0xf), {}, }; diff -u linux-riscv-6.5.0/drivers/cpufreq/tegra194-cpufreq.c linux-riscv-6.5.0/drivers/cpufreq/tegra194-cpufreq.c --- linux-riscv-6.5.0/drivers/cpufreq/tegra194-cpufreq.c +++ linux-riscv-6.5.0/drivers/cpufreq/tegra194-cpufreq.c @@ -450,6 +450,8 @@ if (IS_ERR(opp)) continue; + dev_pm_opp_put(opp); + ret = dev_pm_opp_enable(cpu_dev, pos->frequency * KHZ); if (ret < 0) return ret; diff -u linux-riscv-6.5.0/drivers/cxl/core/mbox.c linux-riscv-6.5.0/drivers/cxl/core/mbox.c --- linux-riscv-6.5.0/drivers/cxl/core/mbox.c +++ linux-riscv-6.5.0/drivers/cxl/core/mbox.c @@ -1125,20 +1125,7 @@ } EXPORT_SYMBOL_NS_GPL(cxl_dev_state_identify, CXL); -/** - * cxl_mem_sanitize() - Send a sanitization command to the device. - * @mds: The device data for the operation - * @cmd: The specific sanitization command opcode - * - * Return: 0 if the command was executed successfully, regardless of - * whether or not the actual security operation is done in the background, - * such as for the Sanitize case. - * Error return values can be the result of the mailbox command, -EINVAL - * when security requirements are not met or invalid contexts. - * - * See CXL 3.0 @8.2.9.8.5.1 Sanitize and @8.2.9.8.5.2 Secure Erase. - */ -int cxl_mem_sanitize(struct cxl_memdev_state *mds, u16 cmd) +static int __cxl_mem_sanitize(struct cxl_memdev_state *mds, u16 cmd) { int rc; u32 sec_out = 0; @@ -1183,7 +1170,45 @@ return 0; } -EXPORT_SYMBOL_NS_GPL(cxl_mem_sanitize, CXL); + + +/** + * cxl_mem_sanitize() - Send a sanitization command to the device. + * @cxlmd: The device for the operation + * @cmd: The specific sanitization command opcode + * + * Return: 0 if the command was executed successfully, regardless of + * whether or not the actual security operation is done in the background, + * such as for the Sanitize case. + * Error return values can be the result of the mailbox command, -EINVAL + * when security requirements are not met or invalid contexts, or -EBUSY + * if the sanitize operation is already in flight. + * + * See CXL 3.0 @8.2.9.8.5.1 Sanitize and @8.2.9.8.5.2 Secure Erase. + */ +int cxl_mem_sanitize(struct cxl_memdev *cxlmd, u16 cmd) +{ + struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds); + struct cxl_port *endpoint; + int rc; + + /* synchronize with cxl_mem_probe() and decoder write operations */ + device_lock(&cxlmd->dev); + endpoint = cxlmd->endpoint; + down_read(&cxl_region_rwsem); + /* + * Require an endpoint to be safe otherwise the driver can not + * be sure that the device is unmapped. + */ + if (endpoint && endpoint->commit_end == -1) + rc = __cxl_mem_sanitize(mds, cmd); + else + rc = -EBUSY; + up_read(&cxl_region_rwsem); + device_unlock(&cxlmd->dev); + + return rc; +} static int add_dpa_res(struct device *dev, struct resource *parent, struct resource *res, resource_size_t start, diff -u linux-riscv-6.5.0/drivers/cxl/core/port.c linux-riscv-6.5.0/drivers/cxl/core/port.c --- linux-riscv-6.5.0/drivers/cxl/core/port.c +++ linux-riscv-6.5.0/drivers/cxl/core/port.c @@ -28,6 +28,12 @@ * instantiated by the core. */ +/* + * All changes to the interleave configuration occur with this lock held + * for write. + */ +DECLARE_RWSEM(cxl_region_rwsem); + static DEFINE_IDA(cxl_port_ida); static DEFINE_XARRAY(cxl_root_buses); @@ -691,14 +697,14 @@ return ERR_PTR(rc); } -static int cxl_setup_comp_regs(struct device *dev, struct cxl_register_map *map, +static int cxl_setup_comp_regs(struct device *host, struct cxl_register_map *map, resource_size_t component_reg_phys) { if (component_reg_phys == CXL_RESOURCE_NONE) return 0; *map = (struct cxl_register_map) { - .dev = dev, + .host = host, .reg_type = CXL_REGLOC_RBI_COMPONENT, .resource = component_reg_phys, .max_size = CXL_COMPONENT_REG_BLOCK_SIZE, @@ -716,13 +722,23 @@ component_reg_phys); } -static int cxl_dport_setup_regs(struct cxl_dport *dport, +static int cxl_dport_setup_regs(struct device *host, struct cxl_dport *dport, resource_size_t component_reg_phys) { + int rc; + if (dev_is_platform(dport->dport_dev)) return 0; - return cxl_setup_comp_regs(dport->dport_dev, &dport->comp_map, - component_reg_phys); + + /* + * use @dport->dport_dev for the context for error messages during + * register probing, and fixup @host after the fact, since @host may be + * NULL. + */ + rc = cxl_setup_comp_regs(dport->dport_dev, &dport->comp_map, + component_reg_phys); + dport->comp_map.host = host; + return rc; } static struct cxl_port *__devm_cxl_add_port(struct device *host, @@ -983,7 +999,16 @@ if (!dport) return ERR_PTR(-ENOMEM); - if (rcrb != CXL_RESOURCE_NONE) { + dport->dport_dev = dport_dev; + dport->port_id = port_id; + dport->port = port; + + if (rcrb == CXL_RESOURCE_NONE) { + rc = cxl_dport_setup_regs(&port->dev, dport, + component_reg_phys); + if (rc) + return ERR_PTR(rc); + } else { dport->rcrb.base = rcrb; component_reg_phys = __rcrb_to_component(dport_dev, &dport->rcrb, CXL_RCRB_DOWNSTREAM); @@ -992,6 +1017,14 @@ return ERR_PTR(-ENXIO); } + /* + * RCH @dport is not ready to map until associated with its + * memdev + */ + rc = cxl_dport_setup_regs(NULL, dport, component_reg_phys); + if (rc) + return ERR_PTR(rc); + dport->rch = true; } @@ -999,14 +1032,6 @@ dev_dbg(dport_dev, "Component Registers found for dport: %pa\n", &component_reg_phys); - dport->dport_dev = dport_dev; - dport->port_id = port_id; - dport->port = port; - - rc = cxl_dport_setup_regs(dport, component_reg_phys); - if (rc) - return ERR_PTR(rc); - cond_cxl_root_lock(port); rc = add_dport(port, dport); cond_cxl_root_unlock(port); @@ -1217,35 +1242,39 @@ return NULL; } +static struct device *endpoint_host(struct cxl_port *endpoint) +{ + struct cxl_port *port = to_cxl_port(endpoint->dev.parent); + + if (is_cxl_root(port)) + return port->uport_dev; + return &port->dev; +} + static void delete_endpoint(void *data) { struct cxl_memdev *cxlmd = data; struct cxl_port *endpoint = cxlmd->endpoint; - struct cxl_port *parent_port; - struct device *parent; + struct device *host = endpoint_host(endpoint); - parent_port = cxl_mem_find_port(cxlmd, NULL); - if (!parent_port) - goto out; - parent = &parent_port->dev; - - device_lock(parent); - if (parent->driver && !endpoint->dead) { - devm_release_action(parent, cxl_unlink_parent_dport, endpoint); - devm_release_action(parent, cxl_unlink_uport, endpoint); - devm_release_action(parent, unregister_port, endpoint); + device_lock(host); + if (host->driver && !endpoint->dead) { + devm_release_action(host, cxl_unlink_parent_dport, endpoint); + devm_release_action(host, cxl_unlink_uport, endpoint); + devm_release_action(host, unregister_port, endpoint); } cxlmd->endpoint = NULL; - device_unlock(parent); - put_device(parent); -out: + device_unlock(host); put_device(&endpoint->dev); + put_device(host); } int cxl_endpoint_autoremove(struct cxl_memdev *cxlmd, struct cxl_port *endpoint) { + struct device *host = endpoint_host(endpoint); struct device *dev = &cxlmd->dev; + get_device(host); get_device(&endpoint->dev); cxlmd->endpoint = endpoint; cxlmd->depth = endpoint->depth; diff -u linux-riscv-6.5.0/drivers/cxl/core/region.c linux-riscv-6.5.0/drivers/cxl/core/region.c --- linux-riscv-6.5.0/drivers/cxl/core/region.c +++ linux-riscv-6.5.0/drivers/cxl/core/region.c @@ -28,12 +28,6 @@ * 3. Decoder targets */ -/* - * All changes to the interleave configuration occur with this lock held - * for write. - */ -static DECLARE_RWSEM(cxl_region_rwsem); - static struct cxl_region *to_cxl_region(struct device *dev); static ssize_t uuid_show(struct device *dev, struct device_attribute *attr, @@ -294,7 +288,7 @@ */ rc = cxl_region_invalidate_memregion(cxlr); if (rc) - return rc; + goto out; if (commit) { rc = cxl_region_decode_commit(cxlr); @@ -1133,7 +1127,14 @@ } if (is_cxl_root(parent_port)) { - parent_ig = cxlrd->cxlsd.cxld.interleave_granularity; + /* + * Root decoder IG is always set to value in CFMWS which + * may be different than this region's IG. We can use the + * region's IG here since interleave_granularity_store() + * does not allow interleaved host-bridges with + * root IG != region IG. + */ + parent_ig = p->interleave_granularity; parent_iw = cxlrd->cxlsd.cxld.interleave_ways; /* * For purposes of address bit routing, use power-of-2 math for @@ -1196,6 +1197,14 @@ return rc; } + if (iw > 8 || iw > cxlsd->nr_targets) { + dev_dbg(&cxlr->dev, + "%s:%s:%s: ways: %d overflows targets: %d\n", + dev_name(port->uport_dev), dev_name(&port->dev), + dev_name(&cxld->dev), iw, cxlsd->nr_targets); + return -ENXIO; + } + if (test_bit(CXL_REGION_F_AUTO, &cxlr->flags)) { if (cxld->interleave_ways != iw || cxld->interleave_granularity != ig || @@ -1481,6 +1490,14 @@ return 0; } +static int cmp_interleave_pos(const void *a, const void *b) +{ + struct cxl_endpoint_decoder *cxled_a = *(typeof(cxled_a) *)a; + struct cxl_endpoint_decoder *cxled_b = *(typeof(cxled_b) *)b; + + return cxled_a->pos - cxled_b->pos; +} + static struct cxl_port *next_port(struct cxl_port *port) { if (!port->parent_dport) @@ -1488,119 +1505,127 @@ return port->parent_dport->port; } -static int decoder_match_range(struct device *dev, void *data) +static int match_switch_decoder_by_range(struct device *dev, void *data) { - struct cxl_endpoint_decoder *cxled = data; struct cxl_switch_decoder *cxlsd; + struct range *r1, *r2 = data; if (!is_switch_decoder(dev)) return 0; cxlsd = to_cxl_switch_decoder(dev); - return range_contains(&cxlsd->cxld.hpa_range, &cxled->cxld.hpa_range); -} - -static void find_positions(const struct cxl_switch_decoder *cxlsd, - const struct cxl_port *iter_a, - const struct cxl_port *iter_b, int *a_pos, - int *b_pos) -{ - int i; + r1 = &cxlsd->cxld.hpa_range; - for (i = 0, *a_pos = -1, *b_pos = -1; i < cxlsd->nr_targets; i++) { - if (cxlsd->target[i] == iter_a->parent_dport) - *a_pos = i; - else if (cxlsd->target[i] == iter_b->parent_dport) - *b_pos = i; - if (*a_pos >= 0 && *b_pos >= 0) - break; - } + if (is_root_decoder(dev)) + return range_contains(r1, r2); + return (r1->start == r2->start && r1->end == r2->end); } -static int cmp_decode_pos(const void *a, const void *b) +static int find_pos_and_ways(struct cxl_port *port, struct range *range, + int *pos, int *ways) { - struct cxl_endpoint_decoder *cxled_a = *(typeof(cxled_a) *)a; - struct cxl_endpoint_decoder *cxled_b = *(typeof(cxled_b) *)b; - struct cxl_memdev *cxlmd_a = cxled_to_memdev(cxled_a); - struct cxl_memdev *cxlmd_b = cxled_to_memdev(cxled_b); - struct cxl_port *port_a = cxled_to_port(cxled_a); - struct cxl_port *port_b = cxled_to_port(cxled_b); - struct cxl_port *iter_a, *iter_b, *port = NULL; struct cxl_switch_decoder *cxlsd; + struct cxl_port *parent; struct device *dev; - int a_pos, b_pos; - unsigned int seq; + int rc = -ENXIO; - /* Exit early if any prior sorting failed */ - if (cxled_a->pos < 0 || cxled_b->pos < 0) - return 0; - - /* - * Walk up the hierarchy to find a shared port, find the decoder that - * maps the range, compare the relative position of those dport - * mappings. - */ - for (iter_a = port_a; iter_a; iter_a = next_port(iter_a)) { - struct cxl_port *next_a, *next_b; + parent = next_port(port); + if (!parent) + return rc; - next_a = next_port(iter_a); - if (!next_a) - break; + dev = device_find_child(&parent->dev, range, + match_switch_decoder_by_range); + if (!dev) { + dev_err(port->uport_dev, + "failed to find decoder mapping %#llx-%#llx\n", + range->start, range->end); + return rc; + } + cxlsd = to_cxl_switch_decoder(dev); + *ways = cxlsd->cxld.interleave_ways; - for (iter_b = port_b; iter_b; iter_b = next_port(iter_b)) { - next_b = next_port(iter_b); - if (next_a != next_b) - continue; - port = next_a; + for (int i = 0; i < *ways; i++) { + if (cxlsd->target[i] == port->parent_dport) { + *pos = i; + rc = 0; break; } - - if (port) - break; } + put_device(dev); - if (!port) { - dev_err(cxlmd_a->dev.parent, - "failed to find shared port with %s\n", - dev_name(cxlmd_b->dev.parent)); - goto err; - } + return rc; +} - dev = device_find_child(&port->dev, cxled_a, decoder_match_range); - if (!dev) { - struct range *range = &cxled_a->cxld.hpa_range; +/** + * cxl_calc_interleave_pos() - calculate an endpoint position in a region + * @cxled: endpoint decoder member of given region + * + * The endpoint position is calculated by traversing the topology from + * the endpoint to the root decoder and iteratively applying this + * calculation: + * + * position = position * parent_ways + parent_pos; + * + * ...where @position is inferred from switch and root decoder target lists. + * + * Return: position >= 0 on success + * -ENXIO on failure + */ +static int cxl_calc_interleave_pos(struct cxl_endpoint_decoder *cxled) +{ + struct cxl_port *iter, *port = cxled_to_port(cxled); + struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); + struct range *range = &cxled->cxld.hpa_range; + int parent_ways = 0, parent_pos = 0, pos = 0; + int rc; - dev_err(port->uport_dev, - "failed to find decoder that maps %#llx-%#llx\n", - range->start, range->end); - goto err; - } + /* + * Example: the expected interleave order of the 4-way region shown + * below is: mem0, mem2, mem1, mem3 + * + * root_port + * / \ + * host_bridge_0 host_bridge_1 + * | | | | + * mem0 mem1 mem2 mem3 + * + * In the example the calculator will iterate twice. The first iteration + * uses the mem position in the host-bridge and the ways of the host- + * bridge to generate the first, or local, position. The second + * iteration uses the host-bridge position in the root_port and the ways + * of the root_port to refine the position. + * + * A trace of the calculation per endpoint looks like this: + * mem0: pos = 0 * 2 + 0 mem2: pos = 0 * 2 + 0 + * pos = 0 * 2 + 0 pos = 0 * 2 + 1 + * pos: 0 pos: 1 + * + * mem1: pos = 0 * 2 + 1 mem3: pos = 0 * 2 + 1 + * pos = 1 * 2 + 0 pos = 1 * 2 + 1 + * pos: 2 pos = 3 + * + * Note that while this example is simple, the method applies to more + * complex topologies, including those with switches. + */ - cxlsd = to_cxl_switch_decoder(dev); - do { - seq = read_seqbegin(&cxlsd->target_lock); - find_positions(cxlsd, iter_a, iter_b, &a_pos, &b_pos); - } while (read_seqretry(&cxlsd->target_lock, seq)); + /* Iterate from endpoint to root_port refining the position */ + for (iter = port; iter; iter = next_port(iter)) { + if (is_cxl_root(iter)) + break; - put_device(dev); + rc = find_pos_and_ways(iter, range, &parent_pos, &parent_ways); + if (rc) + return rc; - if (a_pos < 0 || b_pos < 0) { - dev_err(port->uport_dev, - "failed to find shared decoder for %s and %s\n", - dev_name(cxlmd_a->dev.parent), - dev_name(cxlmd_b->dev.parent)); - goto err; + pos = pos * parent_ways + parent_pos; } - dev_dbg(port->uport_dev, "%s comes %s %s\n", - dev_name(cxlmd_a->dev.parent), - a_pos - b_pos < 0 ? "before" : "after", - dev_name(cxlmd_b->dev.parent)); - - return a_pos - b_pos; -err: - cxled_a->pos = -1; - return 0; + dev_dbg(&cxlmd->dev, + "decoder:%s parent:%s port:%s range:%#llx-%#llx pos:%d\n", + dev_name(&cxled->cxld.dev), dev_name(cxlmd->dev.parent), + dev_name(&port->dev), range->start, range->end, pos); + + return pos; } static int cxl_region_sort_targets(struct cxl_region *cxlr) @@ -1608,22 +1633,21 @@ struct cxl_region_params *p = &cxlr->params; int i, rc = 0; - sort(p->targets, p->nr_targets, sizeof(p->targets[0]), cmp_decode_pos, - NULL); - for (i = 0; i < p->nr_targets; i++) { struct cxl_endpoint_decoder *cxled = p->targets[i]; + cxled->pos = cxl_calc_interleave_pos(cxled); /* - * Record that sorting failed, but still continue to restore - * cxled->pos with its ->targets[] position so that follow-on - * code paths can reliably do p->targets[cxled->pos] to - * self-reference their entry. + * Record that sorting failed, but still continue to calc + * cxled->pos so that follow-on code paths can reliably + * do p->targets[cxled->pos] to self-reference their entry. */ if (cxled->pos < 0) rc = -ENXIO; - cxled->pos = i; } + /* Keep the cxlr target list in interleave position order */ + sort(p->targets, p->nr_targets, sizeof(p->targets[0]), + cmp_interleave_pos, NULL); dev_dbg(&cxlr->dev, "region sort %s\n", rc ? "failed" : "successful"); return rc; @@ -1659,6 +1683,12 @@ return -ENXIO; } + if (p->nr_targets >= p->interleave_ways) { + dev_dbg(&cxlr->dev, "region already has %d endpoints\n", + p->nr_targets); + return -EINVAL; + } + ep_port = cxled_to_port(cxled); root_port = cxlrd_to_port(cxlrd); dport = cxl_find_dport_by_dev(root_port, ep_port->host_bridge); @@ -1751,7 +1781,7 @@ if (p->nr_targets == p->interleave_ways) { rc = cxl_region_setup_targets(cxlr); if (rc) - goto err_decrement; + return rc; p->state = CXL_CONFIG_ACTIVE; } @@ -1762,13 +1792,27 @@ .end = p->res->end, }; - return 0; + if (p->nr_targets != p->interleave_ways) + return 0; -err_decrement: - p->nr_targets--; - cxled->pos = -1; - p->targets[pos] = NULL; - return rc; + /* + * Test the auto-discovery position calculator function + * against this successfully created user-defined region. + * A fail message here means that this interleave config + * will fail when presented as CXL_REGION_F_AUTO. + */ + for (int i = 0; i < p->nr_targets; i++) { + struct cxl_endpoint_decoder *cxled = p->targets[i]; + int test_pos; + + test_pos = cxl_calc_interleave_pos(cxled); + dev_dbg(&cxled->cxld.dev, + "Test cxl_calc_interleave_pos(): %s test_pos:%d cxled->pos:%d\n", + (test_pos == cxled->pos) ? "success" : "fail", + test_pos, cxled->pos); + } + + return 0; } static int cxl_region_detach(struct cxl_endpoint_decoder *cxled) @@ -2697,7 +2741,7 @@ return rc; } -static int match_decoder_by_range(struct device *dev, void *data) +static int match_root_decoder_by_range(struct device *dev, void *data) { struct range *r1, *r2 = data; struct cxl_root_decoder *cxlrd; @@ -2828,7 +2872,7 @@ int rc; cxlrd_dev = device_find_child(&root->dev, &cxld->hpa_range, - match_decoder_by_range); + match_root_decoder_by_range); if (!cxlrd_dev) { dev_err(cxlmd->dev.parent, "%s:%s no CXL window for range %#llx:%#llx\n", diff -u linux-riscv-6.5.0/drivers/cxl/pci.c linux-riscv-6.5.0/drivers/cxl/pci.c --- linux-riscv-6.5.0/drivers/cxl/pci.c +++ linux-riscv-6.5.0/drivers/cxl/pci.c @@ -128,10 +128,10 @@ reg = readq(cxlds->regs.mbox + CXLDEV_MBOX_BG_CMD_STATUS_OFFSET); opcode = FIELD_GET(CXLDEV_MBOX_BG_CMD_COMMAND_OPCODE_MASK, reg); if (opcode == CXL_MBOX_OP_SANITIZE) { + mutex_lock(&mds->mbox_mutex); if (mds->security.sanitize_node) - sysfs_notify_dirent(mds->security.sanitize_node); - - dev_dbg(cxlds->dev, "Sanitization operation ended\n"); + mod_delayed_work(system_wq, &mds->security.poll_dwork, 0); + mutex_unlock(&mds->mbox_mutex); } else { /* short-circuit the wait in __cxl_pci_mbox_send_cmd() */ rcuwait_wake_up(&mds->mbox_wait); @@ -152,18 +152,16 @@ mutex_lock(&mds->mbox_mutex); if (cxl_mbox_background_complete(cxlds)) { mds->security.poll_tmo_secs = 0; - put_device(cxlds->dev); - if (mds->security.sanitize_node) sysfs_notify_dirent(mds->security.sanitize_node); + mds->security.sanitize_active = false; dev_dbg(cxlds->dev, "Sanitization operation ended\n"); } else { int timeout = mds->security.poll_tmo_secs + 10; mds->security.poll_tmo_secs = min(15 * 60, timeout); - queue_delayed_work(system_wq, &mds->security.poll_dwork, - timeout * HZ); + schedule_delayed_work(&mds->security.poll_dwork, timeout * HZ); } mutex_unlock(&mds->mbox_mutex); } @@ -295,18 +293,15 @@ * and allow userspace to poll(2) for completion. */ if (mbox_cmd->opcode == CXL_MBOX_OP_SANITIZE) { - if (mds->security.poll) { - /* hold the device throughout */ - get_device(cxlds->dev); - - /* give first timeout a second */ - timeout = 1; - mds->security.poll_tmo_secs = timeout; - queue_delayed_work(system_wq, - &mds->security.poll_dwork, - timeout * HZ); - } + if (mds->security.sanitize_active) + return -EBUSY; + /* give first timeout a second */ + timeout = 1; + mds->security.poll_tmo_secs = timeout; + mds->security.sanitize_active = true; + schedule_delayed_work(&mds->security.poll_dwork, + timeout * HZ); dev_dbg(dev, "Sanitization operation started\n"); goto success; } @@ -389,7 +384,9 @@ const int cap = readl(cxlds->regs.mbox + CXLDEV_MBOX_CAPS_OFFSET); struct device *dev = cxlds->dev; unsigned long timeout; + int irq, msgnum; u64 md_status; + u32 ctrl; timeout = jiffies + mbox_ready_timeout * HZ; do { @@ -437,33 +434,26 @@ dev_dbg(dev, "Mailbox payload sized %zu", mds->payload_size); rcuwait_init(&mds->mbox_wait); + INIT_DELAYED_WORK(&mds->security.poll_dwork, cxl_mbox_sanitize_work); - if (cap & CXLDEV_MBOX_CAP_BG_CMD_IRQ) { - u32 ctrl; - int irq, msgnum; - struct pci_dev *pdev = to_pci_dev(cxlds->dev); - - msgnum = FIELD_GET(CXLDEV_MBOX_CAP_IRQ_MSGNUM_MASK, cap); - irq = pci_irq_vector(pdev, msgnum); - if (irq < 0) - goto mbox_poll; - - if (cxl_request_irq(cxlds, irq, cxl_pci_mbox_irq, NULL)) - goto mbox_poll; - - /* enable background command mbox irq support */ - ctrl = readl(cxlds->regs.mbox + CXLDEV_MBOX_CTRL_OFFSET); - ctrl |= CXLDEV_MBOX_CTRL_BG_CMD_IRQ; - writel(ctrl, cxlds->regs.mbox + CXLDEV_MBOX_CTRL_OFFSET); + /* background command interrupts are optional */ + if (!(cap & CXLDEV_MBOX_CAP_BG_CMD_IRQ)) + return 0; + msgnum = FIELD_GET(CXLDEV_MBOX_CAP_IRQ_MSGNUM_MASK, cap); + irq = pci_irq_vector(to_pci_dev(cxlds->dev), msgnum); + if (irq < 0) return 0; - } -mbox_poll: - mds->security.poll = true; - INIT_DELAYED_WORK(&mds->security.poll_dwork, cxl_mbox_sanitize_work); + if (cxl_request_irq(cxlds, irq, NULL, cxl_pci_mbox_irq)) + return 0; + + dev_dbg(cxlds->dev, "Mailbox interrupts enabled\n"); + /* enable background command mbox irq support */ + ctrl = readl(cxlds->regs.mbox + CXLDEV_MBOX_CTRL_OFFSET); + ctrl |= CXLDEV_MBOX_CTRL_BG_CMD_IRQ; + writel(ctrl, cxlds->regs.mbox + CXLDEV_MBOX_CTRL_OFFSET); - dev_dbg(cxlds->dev, "Mailbox interrupts are unsupported"); return 0; } @@ -484,7 +474,7 @@ resource_size_t component_reg_phys; *map = (struct cxl_register_map) { - .dev = &pdev->dev, + .host = &pdev->dev, .resource = CXL_RESOURCE_NONE, }; @@ -883,11 +873,15 @@ if (rc) return rc; - cxlmd = devm_cxl_add_memdev(cxlds); + cxlmd = devm_cxl_add_memdev(&pdev->dev, cxlds); if (IS_ERR(cxlmd)) return PTR_ERR(cxlmd); - rc = cxl_memdev_setup_fw_upload(mds); + rc = devm_cxl_setup_fw_upload(&pdev->dev, mds); + if (rc) + return rc; + + rc = devm_cxl_sanitize_setup_notifier(&pdev->dev, cxlmd); if (rc) return rc; diff -u linux-riscv-6.5.0/drivers/dma/ste_dma40.c linux-riscv-6.5.0/drivers/dma/ste_dma40.c --- linux-riscv-6.5.0/drivers/dma/ste_dma40.c +++ linux-riscv-6.5.0/drivers/dma/ste_dma40.c @@ -3668,6 +3668,7 @@ regulator_disable(base->lcpa_regulator); regulator_put(base->lcpa_regulator); } + pm_runtime_disable(base->dev); report_failure: d40_err(dev, "probe failed\n"); diff -u linux-riscv-6.5.0/drivers/dma/stm32-mdma.c linux-riscv-6.5.0/drivers/dma/stm32-mdma.c --- linux-riscv-6.5.0/drivers/dma/stm32-mdma.c +++ linux-riscv-6.5.0/drivers/dma/stm32-mdma.c @@ -490,7 +490,7 @@ src_maxburst = chan->dma_config.src_maxburst; dst_maxburst = chan->dma_config.dst_maxburst; - ccr = stm32_mdma_read(dmadev, STM32_MDMA_CCR(chan->id)); + ccr = stm32_mdma_read(dmadev, STM32_MDMA_CCR(chan->id)) & ~STM32_MDMA_CCR_EN; ctcr = stm32_mdma_read(dmadev, STM32_MDMA_CTCR(chan->id)); ctbr = stm32_mdma_read(dmadev, STM32_MDMA_CTBR(chan->id)); @@ -966,7 +966,7 @@ if (!desc) return NULL; - ccr = stm32_mdma_read(dmadev, STM32_MDMA_CCR(chan->id)); + ccr = stm32_mdma_read(dmadev, STM32_MDMA_CCR(chan->id)) & ~STM32_MDMA_CCR_EN; ctcr = stm32_mdma_read(dmadev, STM32_MDMA_CTCR(chan->id)); ctbr = stm32_mdma_read(dmadev, STM32_MDMA_CTBR(chan->id)); cbndtr = stm32_mdma_read(dmadev, STM32_MDMA_CBNDTR(chan->id)); diff -u linux-riscv-6.5.0/drivers/firewire/core-device.c linux-riscv-6.5.0/drivers/firewire/core-device.c --- linux-riscv-6.5.0/drivers/firewire/core-device.c +++ linux-riscv-6.5.0/drivers/firewire/core-device.c @@ -717,14 +717,11 @@ fw_unit_attributes, &unit->attribute_group); - if (device_register(&unit->device) < 0) - goto skip_unit; - fw_device_get(device); - continue; - - skip_unit: - kfree(unit); + if (device_register(&unit->device) < 0) { + put_device(&unit->device); + continue; + } } } diff -u linux-riscv-6.5.0/drivers/firewire/sbp2.c linux-riscv-6.5.0/drivers/firewire/sbp2.c --- linux-riscv-6.5.0/drivers/firewire/sbp2.c +++ linux-riscv-6.5.0/drivers/firewire/sbp2.c @@ -1519,8 +1519,9 @@ sdev->use_10_for_rw = 1; if (sbp2_param_exclusive_login) { - sdev->manage_system_start_stop = true; - sdev->manage_runtime_start_stop = true; + sdev->manage_system_start_stop = 1; + sdev->manage_runtime_start_stop = 1; + sdev->manage_shutdown = 1; } if (sdev->type == TYPE_ROM) diff -u linux-riscv-6.5.0/drivers/firmware/arm_ffa/driver.c linux-riscv-6.5.0/drivers/firmware/arm_ffa/driver.c --- linux-riscv-6.5.0/drivers/firmware/arm_ffa/driver.c +++ linux-riscv-6.5.0/drivers/firmware/arm_ffa/driver.c @@ -587,17 +587,9 @@ return 0; } -static void _ffa_mode_32bit_set(struct ffa_device *dev) -{ - dev->mode_32bit = true; -} - static void ffa_mode_32bit_set(struct ffa_device *dev) { - if (drv_info->version > FFA_VERSION_1_0) - return; - - _ffa_mode_32bit_set(dev); + dev->mode_32bit = true; } static int ffa_sync_send_receive(struct ffa_device *dev, @@ -706,7 +698,7 @@ if (drv_info->version > FFA_VERSION_1_0 && !(tpbuf->properties & FFA_PARTITION_AARCH64_EXEC)) - _ffa_mode_32bit_set(ffa_dev); + ffa_mode_32bit_set(ffa_dev); } kfree(pbuf); } diff -u linux-riscv-6.5.0/drivers/firmware/arm_scmi/perf.c linux-riscv-6.5.0/drivers/firmware/arm_scmi/perf.c --- linux-riscv-6.5.0/drivers/firmware/arm_scmi/perf.c +++ linux-riscv-6.5.0/drivers/firmware/arm_scmi/perf.c @@ -124,15 +124,14 @@ struct perf_dom_info { bool set_limits; - bool set_perf; bool perf_limit_notify; bool perf_level_notify; bool perf_fastchannels; u32 opp_count; u32 sustained_freq_khz; u32 sustained_perf_level; - u32 mult_factor; - char name[SCMI_MAX_STR_SIZE]; + unsigned long mult_factor; + struct scmi_perf_domain_info info; struct scmi_opp opp[MAX_OPPS]; struct scmi_fc_info *fc_info; }; @@ -209,7 +208,7 @@ flags = le32_to_cpu(attr->flags); dom_info->set_limits = SUPPORTS_SET_LIMITS(flags); - dom_info->set_perf = SUPPORTS_SET_PERF_LVL(flags); + dom_info->info.set_perf = SUPPORTS_SET_PERF_LVL(flags); dom_info->perf_limit_notify = SUPPORTS_PERF_LIMIT_NOTIFY(flags); dom_info->perf_level_notify = SUPPORTS_PERF_LEVEL_NOTIFY(flags); dom_info->perf_fastchannels = SUPPORTS_PERF_FASTCHANNELS(flags); @@ -223,9 +222,10 @@ dom_info->mult_factor = 1000; else dom_info->mult_factor = - (dom_info->sustained_freq_khz * 1000) / - dom_info->sustained_perf_level; - strscpy(dom_info->name, attr->name, SCMI_SHORT_NAME_MAX_SIZE); + (dom_info->sustained_freq_khz * 1000UL) + / dom_info->sustained_perf_level; + strscpy(dom_info->info.name, attr->name, + SCMI_SHORT_NAME_MAX_SIZE); } ph->xops->xfer_put(ph, t); @@ -237,7 +237,7 @@ if (!ret && PROTOCOL_REV_MAJOR(version) >= 0x3 && SUPPORTS_EXTENDED_NAMES(flags)) ph->hops->extended_name_get(ph, PERF_DOMAIN_NAME_GET, domain, - dom_info->name, SCMI_MAX_STR_SIZE); + dom_info->info.name, SCMI_MAX_STR_SIZE); return ret; } @@ -333,6 +333,36 @@ return ret; } +static int scmi_perf_num_domains_get(const struct scmi_protocol_handle *ph) +{ + struct scmi_perf_info *pi = ph->get_priv(ph); + + return pi->num_domains; +} + +static inline struct perf_dom_info * +scmi_perf_domain_lookup(const struct scmi_protocol_handle *ph, u32 domain) +{ + struct scmi_perf_info *pi = ph->get_priv(ph); + + if (domain >= pi->num_domains) + return ERR_PTR(-EINVAL); + + return pi->dom_info + domain; +} + +static const struct scmi_perf_domain_info * +scmi_perf_info_get(const struct scmi_protocol_handle *ph, u32 domain) +{ + struct perf_dom_info *dom; + + dom = scmi_perf_domain_lookup(ph, domain); + if (IS_ERR(dom)) + return ERR_PTR(-EINVAL); + + return &dom->info; +} + static int scmi_perf_mb_limits_set(const struct scmi_protocol_handle *ph, u32 domain, u32 max_perf, u32 min_perf) { @@ -356,17 +386,6 @@ return ret; } -static inline struct perf_dom_info * -scmi_perf_domain_lookup(const struct scmi_protocol_handle *ph, u32 domain) -{ - struct scmi_perf_info *pi = ph->get_priv(ph); - - if (domain >= pi->num_domains) - return ERR_PTR(-EINVAL); - - return pi->dom_info + domain; -} - static int scmi_perf_limits_set(const struct scmi_protocol_handle *ph, u32 domain, u32 max_perf, u32 min_perf) { @@ -596,7 +615,6 @@ { int idx, ret, domain; unsigned long freq; - struct scmi_opp *opp; struct perf_dom_info *dom; domain = scmi_dev_domain_id(dev); @@ -607,17 +625,14 @@ if (IS_ERR(dom)) return PTR_ERR(dom); - for (opp = dom->opp, idx = 0; idx < dom->opp_count; idx++, opp++) { - freq = opp->perf * dom->mult_factor; + for (idx = 0; idx < dom->opp_count; idx++) { + freq = dom->opp[idx].perf * dom->mult_factor; ret = dev_pm_opp_add(dev, freq, 0); if (ret) { dev_warn(dev, "failed to add opp %luHz\n", freq); - while (idx-- > 0) { - freq = (--opp)->perf * dom->mult_factor; - dev_pm_opp_remove(dev, freq); - } + dev_pm_opp_remove_all_dynamic(dev); return ret; } } @@ -726,6 +741,8 @@ } static const struct scmi_perf_proto_ops perf_proto_ops = { + .num_domains_get = scmi_perf_num_domains_get, + .info_get = scmi_perf_info_get, .limits_set = scmi_perf_limits_set, .limits_get = scmi_perf_limits_get, .level_set = scmi_perf_level_set, diff -u linux-riscv-6.5.0/drivers/firmware/efi/efi.c linux-riscv-6.5.0/drivers/firmware/efi/efi.c --- linux-riscv-6.5.0/drivers/firmware/efi/efi.c +++ linux-riscv-6.5.0/drivers/firmware/efi/efi.c @@ -274,9 +274,13 @@ if (status == EFI_NOT_FOUND) { break; } else if (status == EFI_BUFFER_TOO_SMALL) { - name = krealloc(name, name_size, GFP_KERNEL); - if (!name) + efi_char16_t *name_tmp = + krealloc(name, name_size, GFP_KERNEL); + if (!name_tmp) { + kfree(name); return -ENOMEM; + } + name = name_tmp; continue; } diff -u linux-riscv-6.5.0/drivers/firmware/efi/libstub/x86-stub.c linux-riscv-6.5.0/drivers/firmware/efi/libstub/x86-stub.c --- linux-riscv-6.5.0/drivers/firmware/efi/libstub/x86-stub.c +++ linux-riscv-6.5.0/drivers/firmware/efi/libstub/x86-stub.c @@ -648,11 +648,8 @@ break; case EFI_UNACCEPTED_MEMORY: - if (!IS_ENABLED(CONFIG_UNACCEPTED_MEMORY)) { - efi_warn_once( -"The system has unaccepted memory, but kernel does not support it\nConsider enabling CONFIG_UNACCEPTED_MEMORY\n"); + if (!IS_ENABLED(CONFIG_UNACCEPTED_MEMORY)) continue; - } e820_type = E820_TYPE_RAM; process_unaccepted_memory(d->phys_addr, d->phys_addr + PAGE_SIZE * d->num_pages); diff -u linux-riscv-6.5.0/drivers/firmware/imx/imx-dsp.c linux-riscv-6.5.0/drivers/firmware/imx/imx-dsp.c --- linux-riscv-6.5.0/drivers/firmware/imx/imx-dsp.c +++ linux-riscv-6.5.0/drivers/firmware/imx/imx-dsp.c @@ -115,11 +115,11 @@ dsp_chan->idx = i % 2; dsp_chan->ch = mbox_request_channel_byname(cl, chan_name); if (IS_ERR(dsp_chan->ch)) { - kfree(dsp_chan->name); ret = PTR_ERR(dsp_chan->ch); if (ret != -EPROBE_DEFER) dev_err(dev, "Failed to request mbox chan %s ret %d\n", chan_name, ret); + kfree(dsp_chan->name); goto out; } diff -u linux-riscv-6.5.0/drivers/firmware/ti_sci.c linux-riscv-6.5.0/drivers/firmware/ti_sci.c --- linux-riscv-6.5.0/drivers/firmware/ti_sci.c +++ linux-riscv-6.5.0/drivers/firmware/ti_sci.c @@ -190,19 +190,6 @@ return 0; } -/** - * ti_sci_debugfs_destroy() - clean up log debug file - * @pdev: platform device pointer - * @info: Pointer to SCI entity information - */ -static void ti_sci_debugfs_destroy(struct platform_device *pdev, - struct ti_sci_info *info) -{ - if (IS_ERR(info->debug_region)) - return; - - debugfs_remove(info->d); -} #else /* CONFIG_DEBUG_FS */ static inline int ti_sci_debugfs_create(struct platform_device *dev, struct ti_sci_info *info) @@ -3448,43 +3435,12 @@ return ret; } -static int ti_sci_remove(struct platform_device *pdev) -{ - struct ti_sci_info *info; - struct device *dev = &pdev->dev; - int ret = 0; - - of_platform_depopulate(dev); - - info = platform_get_drvdata(pdev); - - if (info->nb.notifier_call) - unregister_restart_handler(&info->nb); - - mutex_lock(&ti_sci_list_mutex); - if (info->users) - ret = -EBUSY; - else - list_del(&info->node); - mutex_unlock(&ti_sci_list_mutex); - - if (!ret) { - ti_sci_debugfs_destroy(pdev, info); - - /* Safe to free channels since no more users */ - mbox_free_channel(info->chan_tx); - mbox_free_channel(info->chan_rx); - } - - return ret; -} - static struct platform_driver ti_sci_driver = { .probe = ti_sci_probe, - .remove = ti_sci_remove, .driver = { .name = "ti-sci", .of_match_table = of_match_ptr(ti_sci_of_match), + .suppress_bind_attrs = true, }, }; module_platform_driver(ti_sci_driver); diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c @@ -208,7 +208,7 @@ } for (i = 0; i < p->nchunks; i++) { - struct drm_amdgpu_cs_chunk __user **chunk_ptr = NULL; + struct drm_amdgpu_cs_chunk __user *chunk_ptr = NULL; struct drm_amdgpu_cs_chunk user_chunk; uint32_t __user *cdata; @@ -1438,7 +1438,7 @@ if (r == -ENOMEM) DRM_ERROR("Not enough memory for command submission!\n"); else if (r != -ERESTARTSYS && r != -EAGAIN) - DRM_ERROR("Failed to process the buffer list %d!\n", r); + DRM_DEBUG("Failed to process the buffer list %d!\n", r); goto error_fini; } diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -1032,13 +1033,20 @@ */ static int amdgpu_device_asic_init(struct amdgpu_device *adev) { + int ret; + amdgpu_asic_pre_asic_init(adev); if (adev->ip_versions[GC_HWIP][0] == IP_VERSION(9, 4, 3) || - adev->ip_versions[GC_HWIP][0] >= IP_VERSION(11, 0, 0)) - return amdgpu_atomfirmware_asic_init(adev, true); - else + adev->ip_versions[GC_HWIP][0] >= IP_VERSION(11, 0, 0)) { + amdgpu_psp_wait_for_bootloader(adev); + ret = amdgpu_atomfirmware_asic_init(adev, true); + return ret; + } else { return amdgpu_atom_asic_init(adev->mode_info.atom_context); + } + + return 0; } /** @@ -2233,7 +2241,6 @@ */ static int amdgpu_device_ip_early_init(struct amdgpu_device *adev) { - struct drm_device *dev = adev_to_drm(adev); struct pci_dev *parent; int i, r; bool total; @@ -2304,7 +2311,7 @@ (amdgpu_is_atpx_hybrid() || amdgpu_has_atpx_dgpu_power_cntl()) && ((adev->flags & AMD_IS_APU) == 0) && - !pci_is_thunderbolt_attached(to_pci_dev(dev->dev))) + !dev_is_removable(&adev->pdev->dev)) adev->flags |= AMD_IS_PX; if (!(adev->flags & AMD_IS_APU)) { @@ -2318,6 +2325,8 @@ adev->pm.pp_feature &= ~PP_GFXOFF_MASK; if (amdgpu_sriov_vf(adev) && adev->asic_type == CHIP_SIENNA_CICHLID) adev->pm.pp_feature &= ~PP_OVERDRIVE_MASK; + if (!amdgpu_device_pcie_dynamic_switching_supported()) + adev->pm.pp_feature &= ~PP_PCIE_DPM_MASK; total = true; for (i = 0; i < adev->num_ip_blocks; i++) { @@ -4126,7 +4135,7 @@ px = amdgpu_device_supports_px(ddev); - if (px || (!pci_is_thunderbolt_attached(adev->pdev) && + if (px || (!dev_is_removable(&adev->pdev->dev) && apple_gmux_detect(NULL, NULL))) vga_switcheroo_register_client(adev->pdev, &amdgpu_switcheroo_ops, px); @@ -4272,7 +4281,7 @@ px = amdgpu_device_supports_px(adev_to_drm(adev)); - if (px || (!pci_is_thunderbolt_attached(adev->pdev) && + if (px || (!dev_is_removable(&adev->pdev->dev) && apple_gmux_detect(NULL, NULL))) vga_switcheroo_unregister_client(adev->pdev); @@ -4901,6 +4910,9 @@ dev_err(adev->dev, "GPU mode1 reset failed\n"); amdgpu_device_load_pci_state(adev->pdev); + ret = amdgpu_psp_wait_for_bootloader(adev); + if (ret) + return ret; /* wait for asic to come out of reset */ for (i = 0; i < adev->usec_timeout; i++) { @@ -4912,6 +4924,7 @@ } amdgpu_atombios_scratch_regs_engine_hung(adev, false); + return ret; } @@ -5395,7 +5408,8 @@ * Flush RAM to disk so that after reboot * the user can read log and see why the system rebooted. */ - if (need_emergency_restart && amdgpu_ras_get_context(adev)->reboot) { + if (need_emergency_restart && amdgpu_ras_get_context(adev) && + amdgpu_ras_get_context(adev)->reboot) { DRM_WARN("Emergency reboot."); ksys_sync_helper(); diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c @@ -126,7 +126,7 @@ struct drm_crtc *crtc = &amdgpu_crtc->base; unsigned long flags; - unsigned i; + unsigned int i; int vpos, hpos; for (i = 0; i < work->shared_count; ++i) @@ -203,7 +203,7 @@ u64 tiling_flags; int i, r; - work = kzalloc(sizeof *work, GFP_KERNEL); + work = kzalloc(sizeof(*work), GFP_KERNEL); if (work == NULL) return -ENOMEM; @@ -334,18 +334,17 @@ adev = drm_to_adev(dev); /* if we have active crtcs and we don't have a power ref, - take the current one */ + * take the current one + */ if (active && !adev->have_disp_power_ref) { adev->have_disp_power_ref = true; return ret; } - /* if we have no active crtcs, then drop the power ref - we got before */ - if (!active && adev->have_disp_power_ref) { - pm_runtime_put_autosuspend(dev->dev); + /* if we have no active crtcs, then go to + * drop the power ref we got before + */ + if (!active && adev->have_disp_power_ref) adev->have_disp_power_ref = false; - } - out: /* drop the power reference we got coming in here */ pm_runtime_put_autosuspend(dev->dev); @@ -509,11 +508,10 @@ if (amdgpu_connector->router.ddc_valid) amdgpu_i2c_router_select_ddc_port(amdgpu_connector); - if (use_aux) { + if (use_aux) ret = i2c_transfer(&amdgpu_connector->ddc_bus->aux.ddc, msgs, 2); - } else { + else ret = i2c_transfer(&amdgpu_connector->ddc_bus->adapter, msgs, 2); - } if (ret != 2) /* Couldn't find an accessible DDC on this connector */ @@ -522,10 +520,12 @@ * EDID header starts with: * 0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00. * Only the first 6 bytes must be valid as - * drm_edid_block_valid() can fix the last 2 bytes */ + * drm_edid_block_valid() can fix the last 2 bytes + */ if (drm_edid_header_is_valid(buf) < 6) { /* Couldn't find an accessible EDID on this - * connector */ + * connector + */ return false; } return true; @@ -1240,8 +1240,10 @@ obj = drm_gem_object_lookup(file_priv, mode_cmd->handles[0]); if (obj == NULL) { - drm_dbg_kms(dev, "No GEM object associated to handle 0x%08X, " - "can't create framebuffer\n", mode_cmd->handles[0]); + drm_dbg_kms(dev, + "No GEM object associated to handle 0x%08X, can't create framebuffer\n", + mode_cmd->handles[0]); + return ERR_PTR(-ENOENT); } @@ -1434,6 +1436,7 @@ } if (amdgpu_crtc->rmx_type != RMX_OFF) { fixed20_12 a, b; + a.full = dfixed_const(src_v); b.full = dfixed_const(dst_v); amdgpu_crtc->vsc.full = dfixed_div(a, b); @@ -1453,7 +1456,7 @@ * * \param dev Device to query. * \param pipe Crtc to query. - * \param flags Flags from caller (DRM_CALLED_FROM_VBLIRQ or 0). + * \param flags from caller (DRM_CALLED_FROM_VBLIRQ or 0). * For driver internal use only also supports these flags: * * USE_REAL_VBLANKSTART to use the real start of vblank instead @@ -1528,8 +1531,8 @@ /* Called from driver internal vblank counter query code? */ if (flags & GET_DISTANCE_TO_VBLANKSTART) { - /* Caller wants distance from real vbl_start in *hpos */ - *hpos = *vpos - vbl_start; + /* Caller wants distance from real vbl_start in *hpos */ + *hpos = *vpos - vbl_start; } /* Fudge vblank to start a few scanlines earlier to handle the @@ -1551,7 +1554,7 @@ /* In vblank? */ if (in_vbl) - ret |= DRM_SCANOUTPOS_IN_VBLANK; + ret |= DRM_SCANOUTPOS_IN_VBLANK; /* Called from driver internal vblank counter query code? */ if (flags & GET_DISTANCE_TO_VBLANKSTART) { @@ -1659,6 +1662,7 @@ if (amdgpu_crtc->cursor_bo && !adev->enable_virtual_display) { struct amdgpu_bo *aobj = gem_to_amdgpu_bo(amdgpu_crtc->cursor_bo); + r = amdgpu_bo_reserve(aobj, true); if (r == 0) { amdgpu_bo_unpin(aobj); @@ -1666,9 +1670,9 @@ } } - if (fb == NULL || fb->obj[0] == NULL) { + if (!fb || !fb->obj[0]) continue; - } + robj = gem_to_amdgpu_bo(fb->obj[0]); if (!amdgpu_display_robj_is_fb(adev, robj)) { r = amdgpu_bo_reserve(robj, true); @@ -1695,6 +1699,7 @@ if (amdgpu_crtc->cursor_bo && !adev->enable_virtual_display) { struct amdgpu_bo *aobj = gem_to_amdgpu_bo(amdgpu_crtc->cursor_bo); + r = amdgpu_bo_reserve(aobj, true); if (r == 0) { r = amdgpu_bo_pin(aobj, AMDGPU_GEM_DOMAIN_VRAM); diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c @@ -2238,6 +2238,8 @@ pm_runtime_mark_last_busy(ddev->dev); pm_runtime_put_autosuspend(ddev->dev); + pci_wake_from_d3(pdev, TRUE); + /* * For runpm implemented via BACO, PMFW will handle the * timing for BACO in and out: diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h --- linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h @@ -28,7 +28,7 @@ #define AMDGPU_IH_MAX_NUM_IVS 32 #define IH_RING_SIZE (256 * 1024) -#define IH_SW_RING_SIZE (8 * 1024) /* enough for 256 CAM entries */ +#define IH_SW_RING_SIZE (16 * 1024) /* enough for 512 CAM entries */ struct amdgpu_device; struct amdgpu_iv_entry; diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h --- linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h @@ -112,6 +112,7 @@ struct psp_funcs { int (*init_microcode)(struct psp_context *psp); + int (*wait_for_bootloader)(struct psp_context *psp); int (*bootloader_load_kdb)(struct psp_context *psp); int (*bootloader_load_spl)(struct psp_context *psp); int (*bootloader_load_sysdrv)(struct psp_context *psp); @@ -527,6 +528,8 @@ int is_psp_fw_valid(struct psp_bin_desc bin); +int amdgpu_psp_wait_for_bootloader(struct amdgpu_device *adev); + int amdgpu_psp_sysfs_init(struct amdgpu_device *adev); void amdgpu_psp_sysfs_fini(struct amdgpu_device *adev); #endif diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c @@ -1380,7 +1380,8 @@ { struct amdgpu_ras *con = amdgpu_ras_get_context(adev); - sysfs_remove_file_from_group(&adev->dev->kobj, + if (adev->dev->kobj.sd) + sysfs_remove_file_from_group(&adev->dev->kobj, &con->badpages_attr.attr, RAS_FS_NAME); } @@ -1397,7 +1398,8 @@ .attrs = attrs, }; - sysfs_remove_group(&adev->dev->kobj, &group); + if (adev->dev->kobj.sd) + sysfs_remove_group(&adev->dev->kobj, &group); return 0; } @@ -1444,7 +1446,8 @@ if (!obj || !obj->attr_inuse) return -EINVAL; - sysfs_remove_file_from_group(&adev->dev->kobj, + if (adev->dev->kobj.sd) + sysfs_remove_file_from_group(&adev->dev->kobj, &obj->sysfs_attr.attr, RAS_FS_NAME); obj->attr_inuse = 0; diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c @@ -6466,11 +6466,11 @@ nv_grbm_select(adev, 0, 0, 0, 0); mutex_unlock(&adev->srbm_mutex); if (adev->gfx.me.mqd_backup[mqd_idx]) - memcpy(adev->gfx.me.mqd_backup[mqd_idx], mqd, sizeof(*mqd)); + memcpy_fromio(adev->gfx.me.mqd_backup[mqd_idx], mqd, sizeof(*mqd)); } else { /* restore mqd with the backup copy */ if (adev->gfx.me.mqd_backup[mqd_idx]) - memcpy(mqd, adev->gfx.me.mqd_backup[mqd_idx], sizeof(*mqd)); + memcpy_toio(mqd, adev->gfx.me.mqd_backup[mqd_idx], sizeof(*mqd)); /* reset the ring */ ring->wptr = 0; *ring->wptr_cpu_addr = 0; @@ -6744,7 +6744,7 @@ if (amdgpu_in_reset(adev)) { /* for GPU_RESET case */ /* reset MQD to a clean status */ if (adev->gfx.kiq[0].mqd_backup) - memcpy(mqd, adev->gfx.kiq[0].mqd_backup, sizeof(*mqd)); + memcpy_toio(mqd, adev->gfx.kiq[0].mqd_backup, sizeof(*mqd)); /* reset ring buffer */ ring->wptr = 0; @@ -6767,7 +6767,7 @@ mutex_unlock(&adev->srbm_mutex); if (adev->gfx.kiq[0].mqd_backup) - memcpy(adev->gfx.kiq[0].mqd_backup, mqd, sizeof(*mqd)); + memcpy_fromio(adev->gfx.kiq[0].mqd_backup, mqd, sizeof(*mqd)); } return 0; @@ -6788,11 +6788,11 @@ mutex_unlock(&adev->srbm_mutex); if (adev->gfx.mec.mqd_backup[mqd_idx]) - memcpy(adev->gfx.mec.mqd_backup[mqd_idx], mqd, sizeof(*mqd)); + memcpy_fromio(adev->gfx.mec.mqd_backup[mqd_idx], mqd, sizeof(*mqd)); } else { /* restore MQD to a clean status */ if (adev->gfx.mec.mqd_backup[mqd_idx]) - memcpy(mqd, adev->gfx.mec.mqd_backup[mqd_idx], sizeof(*mqd)); + memcpy_toio(mqd, adev->gfx.mec.mqd_backup[mqd_idx], sizeof(*mqd)); /* reset ring buffer */ ring->wptr = 0; atomic64_set((atomic64_t *)ring->wptr_cpu_addr, 0); diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c @@ -83,6 +83,10 @@ MODULE_FIRMWARE("amdgpu/gc_11_0_4_mec.bin"); MODULE_FIRMWARE("amdgpu/gc_11_0_4_rlc.bin"); +static const struct soc15_reg_golden golden_settings_gc_11_0[] = { + SOC15_REG_GOLDEN_VALUE(GC, 0, regTCP_CNTL, 0x20000000, 0x20000000) +}; + static const struct soc15_reg_golden golden_settings_gc_11_0_1[] = { SOC15_REG_GOLDEN_VALUE(GC, 0, regCGTT_GS_NGG_CLK_CTRL, 0x9fff8fff, 0x00000010), @@ -275,6 +279,10 @@ default: break; } + soc15_program_register_sequence(adev, + golden_settings_gc_11_0, + (const u32)ARRAY_SIZE(golden_settings_gc_11_0)); + } static void gfx_v11_0_write_data_to_reg(struct amdgpu_ring *ring, int eng_sel, @@ -390,7 +398,7 @@ adev->wb.wb[index] = cpu_to_le32(0xCAFEDEAD); cpu_ptr = &adev->wb.wb[index]; - r = amdgpu_ib_get(adev, NULL, 16, AMDGPU_IB_POOL_DIRECT, &ib); + r = amdgpu_ib_get(adev, NULL, 20, AMDGPU_IB_POOL_DIRECT, &ib); if (r) { DRM_ERROR("amdgpu: failed to get ib (%ld).\n", r); goto err1; @@ -3684,11 +3692,11 @@ soc21_grbm_select(adev, 0, 0, 0, 0); mutex_unlock(&adev->srbm_mutex); if (adev->gfx.me.mqd_backup[mqd_idx]) - memcpy(adev->gfx.me.mqd_backup[mqd_idx], mqd, sizeof(*mqd)); + memcpy_fromio(adev->gfx.me.mqd_backup[mqd_idx], mqd, sizeof(*mqd)); } else { /* restore mqd with the backup copy */ if (adev->gfx.me.mqd_backup[mqd_idx]) - memcpy(mqd, adev->gfx.me.mqd_backup[mqd_idx], sizeof(*mqd)); + memcpy_toio(mqd, adev->gfx.me.mqd_backup[mqd_idx], sizeof(*mqd)); /* reset the ring */ ring->wptr = 0; *ring->wptr_cpu_addr = 0; @@ -3977,7 +3985,7 @@ if (amdgpu_in_reset(adev)) { /* for GPU_RESET case */ /* reset MQD to a clean status */ if (adev->gfx.kiq[0].mqd_backup) - memcpy(mqd, adev->gfx.kiq[0].mqd_backup, sizeof(*mqd)); + memcpy_toio(mqd, adev->gfx.kiq[0].mqd_backup, sizeof(*mqd)); /* reset ring buffer */ ring->wptr = 0; @@ -4000,7 +4008,7 @@ mutex_unlock(&adev->srbm_mutex); if (adev->gfx.kiq[0].mqd_backup) - memcpy(adev->gfx.kiq[0].mqd_backup, mqd, sizeof(*mqd)); + memcpy_fromio(adev->gfx.kiq[0].mqd_backup, mqd, sizeof(*mqd)); } return 0; @@ -4021,11 +4029,11 @@ mutex_unlock(&adev->srbm_mutex); if (adev->gfx.mec.mqd_backup[mqd_idx]) - memcpy(adev->gfx.mec.mqd_backup[mqd_idx], mqd, sizeof(*mqd)); + memcpy_fromio(adev->gfx.mec.mqd_backup[mqd_idx], mqd, sizeof(*mqd)); } else { /* restore MQD to a clean status */ if (adev->gfx.mec.mqd_backup[mqd_idx]) - memcpy(mqd, adev->gfx.mec.mqd_backup[mqd_idx], sizeof(*mqd)); + memcpy_toio(mqd, adev->gfx.mec.mqd_backup[mqd_idx], sizeof(*mqd)); /* reset ring buffer */ ring->wptr = 0; atomic64_set((atomic64_t *)ring->wptr_cpu_addr, 0); diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c @@ -883,8 +883,8 @@ gpu_addr = adev->wb.gpu_addr + (index * 4); adev->wb.wb[index] = cpu_to_le32(0xCAFEDEAD); memset(&ib, 0, sizeof(ib)); - r = amdgpu_ib_get(adev, NULL, 16, - AMDGPU_IB_POOL_DIRECT, &ib); + + r = amdgpu_ib_get(adev, NULL, 20, AMDGPU_IB_POOL_DIRECT, &ib); if (r) goto err1; diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c @@ -1037,8 +1037,8 @@ gpu_addr = adev->wb.gpu_addr + (index * 4); adev->wb.wb[index] = cpu_to_le32(0xCAFEDEAD); memset(&ib, 0, sizeof(ib)); - r = amdgpu_ib_get(adev, NULL, 16, - AMDGPU_IB_POOL_DIRECT, &ib); + + r = amdgpu_ib_get(adev, NULL, 20, AMDGPU_IB_POOL_DIRECT, &ib); if (r) goto err1; diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c @@ -296,8 +296,8 @@ gpu_addr = adev->wb.gpu_addr + (index * 4); adev->wb.wb[index] = cpu_to_le32(0xCAFEDEAD); memset(&ib, 0, sizeof(ib)); - r = amdgpu_ib_get(adev, NULL, 16, - AMDGPU_IB_POOL_DIRECT, &ib); + + r = amdgpu_ib_get(adev, NULL, 20, AMDGPU_IB_POOL_DIRECT, &ib); if (r) goto err1; diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c linux-riscv-6.5.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -1690,8 +1690,7 @@ DRM_INFO("Display Core v%s initialized on %s\n", DC_VER, dce_version_to_string(adev->dm.dc->ctx->dce_version)); } else { - DRM_INFO("Display Core v%s failed to initialize on %s\n", DC_VER, - dce_version_to_string(adev->dm.dc->ctx->dce_version)); + DRM_INFO("Display Core failed to initialize with v%s!\n", DC_VER); goto error; } @@ -2078,7 +2077,7 @@ struct dmub_srv_create_params create_params; struct dmub_srv_region_params region_params; struct dmub_srv_region_info region_info; - struct dmub_srv_fb_params fb_params; + struct dmub_srv_memory_params memory_params; struct dmub_srv_fb_info *fb_info; struct dmub_srv *dmub_srv; const struct dmcub_firmware_header_v1_0 *hdr; @@ -2178,6 +2177,7 @@ adev->dm.dmub_fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes) + PSP_HEADER_BYTES; + region_params.is_mailbox_in_inbox = false; status = dmub_srv_calc_region_info(dmub_srv, ®ion_params, ®ion_info); @@ -2201,10 +2201,10 @@ return r; /* Rebase the regions on the framebuffer address. */ - memset(&fb_params, 0, sizeof(fb_params)); - fb_params.cpu_addr = adev->dm.dmub_bo_cpu_addr; - fb_params.gpu_addr = adev->dm.dmub_bo_gpu_addr; - fb_params.region_info = ®ion_info; + memset(&memory_params, 0, sizeof(memory_params)); + memory_params.cpu_fb_addr = adev->dm.dmub_bo_cpu_addr; + memory_params.gpu_fb_addr = adev->dm.dmub_bo_gpu_addr; + memory_params.region_info = ®ion_info; adev->dm.dmub_fb_info = kzalloc(sizeof(*adev->dm.dmub_fb_info), GFP_KERNEL); @@ -2216,7 +2216,7 @@ return -ENOMEM; } - status = dmub_srv_calc_fb_info(dmub_srv, &fb_params, fb_info); + status = dmub_srv_calc_mem_info(dmub_srv, &memory_params, fb_info); if (status != DMUB_STATUS_OK) { DRM_ERROR("Error calculating DMUB FB info: %d\n", status); return -EINVAL; @@ -6203,7 +6203,7 @@ dm_new_state->underscan_enable = val; ret = 0; } else if (property == adev->mode_info.abm_level_property) { - dm_new_state->abm_level = val; + dm_new_state->abm_level = val ?: ABM_LEVEL_IMMEDIATE_DISABLE; ret = 0; } @@ -6248,7 +6248,8 @@ *val = dm_state->underscan_enable; ret = 0; } else if (property == adev->mode_info.abm_level_property) { - *val = dm_state->abm_level; + *val = (dm_state->abm_level != ABM_LEVEL_IMMEDIATE_DISABLE) ? + dm_state->abm_level : 0; ret = 0; } @@ -6321,7 +6322,8 @@ state->pbn = 0; if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) - state->abm_level = amdgpu_dm_abm_level; + state->abm_level = amdgpu_dm_abm_level ?: + ABM_LEVEL_IMMEDIATE_DISABLE; __drm_atomic_helper_connector_reset(connector, &state->base); } @@ -7398,6 +7400,9 @@ int i; int result = -EIO; + if (!ddc_service->ddc_pin || !ddc_service->ddc_pin->hw_info.hw_supported) + return result; + cmd.payloads = kcalloc(num, sizeof(struct i2c_payload), GFP_KERNEL); if (!cmd.payloads) @@ -9508,14 +9513,14 @@ struct drm_plane *other; struct drm_plane_state *old_other_state, *new_other_state; struct drm_crtc_state *new_crtc_state; + struct amdgpu_device *adev = drm_to_adev(plane->dev); int i; /* - * TODO: Remove this hack once the checks below are sufficient - * enough to determine when we need to reset all the planes on - * the stream. + * TODO: Remove this hack for all asics once it proves that the + * fast updates works fine on DCN3.2+. */ - if (state->allow_modeset) + if (adev->ip_versions[DCE_HWIP][0] < IP_VERSION(3, 2, 0) && state->allow_modeset) return true; /* Exit early if we know that we're adding or removing the plane. */ @@ -9861,16 +9866,27 @@ } } +static void +dm_get_plane_scale(struct drm_plane_state *plane_state, + int *out_plane_scale_w, int *out_plane_scale_h) +{ + int plane_src_w, plane_src_h; + + dm_get_oriented_plane_size(plane_state, &plane_src_w, &plane_src_h); + *out_plane_scale_w = plane_state->crtc_w * 1000 / plane_src_w; + *out_plane_scale_h = plane_state->crtc_h * 1000 / plane_src_h; +} + static int dm_check_crtc_cursor(struct drm_atomic_state *state, struct drm_crtc *crtc, struct drm_crtc_state *new_crtc_state) { - struct drm_plane *cursor = crtc->cursor, *underlying; + struct drm_plane *cursor = crtc->cursor, *plane, *underlying; + struct drm_plane_state *old_plane_state, *new_plane_state; struct drm_plane_state *new_cursor_state, *new_underlying_state; int i; int cursor_scale_w, cursor_scale_h, underlying_scale_w, underlying_scale_h; - int cursor_src_w, cursor_src_h; - int underlying_src_w, underlying_src_h; + bool any_relevant_change = false; /* On DCE and DCN there is no dedicated hardware cursor plane. We get a * cursor per pipe but it's going to inherit the scaling and @@ -9878,13 +9894,50 @@ * blending properties match the underlying planes'. */ - new_cursor_state = drm_atomic_get_new_plane_state(state, cursor); - if (!new_cursor_state || !new_cursor_state->fb) + /* If no plane was enabled or changed scaling, no need to check again */ + for_each_oldnew_plane_in_state(state, plane, old_plane_state, new_plane_state, i) { + int new_scale_w, new_scale_h, old_scale_w, old_scale_h; + + if (!new_plane_state || !new_plane_state->fb || new_plane_state->crtc != crtc) + continue; + + if (!old_plane_state || !old_plane_state->fb || old_plane_state->crtc != crtc) { + any_relevant_change = true; + break; + } + + if (new_plane_state->fb == old_plane_state->fb && + new_plane_state->crtc_w == old_plane_state->crtc_w && + new_plane_state->crtc_h == old_plane_state->crtc_h) + continue; + + dm_get_plane_scale(new_plane_state, &new_scale_w, &new_scale_h); + dm_get_plane_scale(old_plane_state, &old_scale_w, &old_scale_h); + + if (new_scale_w != old_scale_w || new_scale_h != old_scale_h) { + any_relevant_change = true; + break; + } + } + + if (!any_relevant_change) return 0; - dm_get_oriented_plane_size(new_cursor_state, &cursor_src_w, &cursor_src_h); - cursor_scale_w = new_cursor_state->crtc_w * 1000 / cursor_src_w; - cursor_scale_h = new_cursor_state->crtc_h * 1000 / cursor_src_h; + new_cursor_state = drm_atomic_get_plane_state(state, cursor); + if (IS_ERR(new_cursor_state)) + return PTR_ERR(new_cursor_state); + + if (!new_cursor_state->fb) + return 0; + + dm_get_plane_scale(new_cursor_state, &cursor_scale_w, &cursor_scale_h); + + /* Need to check all enabled planes, even if this commit doesn't change + * their state + */ + i = drm_atomic_add_affected_planes(state, crtc); + if (i) + return i; for_each_new_plane_in_state_reverse(state, underlying, new_underlying_state, i) { /* Narrow down to non-cursor planes on the same CRTC as the cursor */ @@ -9895,10 +9948,8 @@ if (!new_underlying_state->fb) continue; - dm_get_oriented_plane_size(new_underlying_state, - &underlying_src_w, &underlying_src_h); - underlying_scale_w = new_underlying_state->crtc_w * 1000 / underlying_src_w; - underlying_scale_h = new_underlying_state->crtc_h * 1000 / underlying_src_h; + dm_get_plane_scale(new_underlying_state, + &underlying_scale_w, &underlying_scale_h); if (cursor_scale_w != underlying_scale_w || cursor_scale_h != underlying_scale_h) { diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/core/dc.c linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/core/dc.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/core/dc.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/core/dc.c @@ -993,7 +993,8 @@ /* set i2c speed if not done by the respective dcnxxx__resource.c */ if (dc->caps.i2c_speed_in_khz_hdcp == 0) dc->caps.i2c_speed_in_khz_hdcp = dc->caps.i2c_speed_in_khz; - + if (dc->caps.max_optimizable_video_width == 0) + dc->caps.max_optimizable_video_width = 5120; dc->clk_mgr = dc_clk_mgr_create(dc->ctx, dc->res_pool->pp_smu, dc->res_pool->dccg); if (!dc->clk_mgr) goto fail; @@ -1070,53 +1071,6 @@ } } -static void phantom_pipe_blank( - struct dc *dc, - struct timing_generator *tg, - int width, - int height) -{ - struct dce_hwseq *hws = dc->hwseq; - enum dc_color_space color_space; - struct tg_color black_color = {0}; - struct output_pixel_processor *opp = NULL; - uint32_t num_opps, opp_id_src0, opp_id_src1; - uint32_t otg_active_width, otg_active_height; - uint32_t i; - - /* program opp dpg blank color */ - color_space = COLOR_SPACE_SRGB; - color_space_to_black_color(dc, color_space, &black_color); - - otg_active_width = width; - otg_active_height = height; - - /* get the OPTC source */ - tg->funcs->get_optc_source(tg, &num_opps, &opp_id_src0, &opp_id_src1); - ASSERT(opp_id_src0 < dc->res_pool->res_cap->num_opp); - - for (i = 0; i < dc->res_pool->res_cap->num_opp; i++) { - if (dc->res_pool->opps[i] != NULL && dc->res_pool->opps[i]->inst == opp_id_src0) { - opp = dc->res_pool->opps[i]; - break; - } - } - - if (opp && opp->funcs->opp_set_disp_pattern_generator) - opp->funcs->opp_set_disp_pattern_generator( - opp, - CONTROLLER_DP_TEST_PATTERN_SOLID_COLOR, - CONTROLLER_DP_COLOR_SPACE_UDEFINED, - COLOR_DEPTH_UNDEFINED, - &black_color, - otg_active_width, - otg_active_height, - 0); - - if (tg->funcs->is_tg_enabled(tg)) - hws->funcs.wait_for_blank_complete(opp); -} - static void dc_update_viusal_confirm_color(struct dc *dc, struct dc_state *context, struct pipe_ctx *pipe_ctx) { if (dc->ctx->dce_version >= DCN_VERSION_1_0) { @@ -1207,7 +1161,8 @@ main_pipe_width = old_stream->mall_stream_config.paired_stream->dst.width; main_pipe_height = old_stream->mall_stream_config.paired_stream->dst.height; - phantom_pipe_blank(dc, tg, main_pipe_width, main_pipe_height); + if (dc->hwss.blank_phantom) + dc->hwss.blank_phantom(dc, tg, main_pipe_width, main_pipe_height); tg->funcs->enable_crtc(tg); } } @@ -2476,6 +2431,7 @@ } static enum surface_update_type get_scaling_info_update_type( + const struct dc *dc, const struct dc_surface_update *u) { union surface_update_flags *update_flags = &u->surface->update_flags; @@ -2510,6 +2466,12 @@ update_flags->bits.clock_change = 1; } + if (u->scaling_info->src_rect.width > dc->caps.max_optimizable_video_width && + (u->scaling_info->clip_rect.width > u->surface->clip_rect.width || + u->scaling_info->clip_rect.height > u->surface->clip_rect.height)) + /* Changing clip size of a large surface may result in MPC slice count change */ + update_flags->bits.bandwidth_change = 1; + if (u->scaling_info->src_rect.x != u->surface->src_rect.x || u->scaling_info->src_rect.y != u->surface->src_rect.y || u->scaling_info->clip_rect.x != u->surface->clip_rect.x @@ -2547,7 +2509,7 @@ type = get_plane_info_update_type(u); elevate_update_type(&overall_type, type); - type = get_scaling_info_update_type(u); + type = get_scaling_info_update_type(dc, u); elevate_update_type(&overall_type, type); if (u->flip_addr) { @@ -4460,6 +4422,14 @@ update_type, context); } else { + if (!stream_update && + dc->hwss.is_pipe_topology_transition_seamless && + !dc->hwss.is_pipe_topology_transition_seamless( + dc, dc->current_state, context)) { + + DC_LOG_ERROR("performing non-seamless pipe topology transition with surface only update!\n"); + BREAK_TO_DEBUGGER(); + } commit_planes_for_stream( dc, srf_updates, @@ -5302,0 +5273,22 @@ + +/** + ***************************************************************************** + * dc_set_edp_power() - DM controls eDP power to be ON/OFF + * + * Called when DM wants to power on/off eDP. + * Only work on links with flag skip_implict_edp_power_control is set. + * + ***************************************************************************** + */ +void dc_set_edp_power(const struct dc *dc, struct dc_link *edp_link, + bool powerOn) +{ + if (edp_link->connector_signal != SIGNAL_TYPE_EDP) + return; + + if (edp_link->skip_implict_edp_power_control == false) + return; + + edp_link->dc->link_srv->edp_set_panel_power(edp_link, powerOn); +} + diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dc.h linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dc.h --- linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dc.h +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dc.h @@ -229,6 +229,11 @@ uint32_t dmdata_alloc_size; unsigned int max_cursor_size; unsigned int max_video_width; + /* + * max video plane width that can be safely assumed to be always + * supported by single DPP pipe. + */ + unsigned int max_optimizable_video_width; unsigned int min_horizontal_blanking_period; int linear_pitch_alignment; bool dcc_const_color; @@ -1552,6 +1557,7 @@ struct phy_state phy_state; // BW ALLOCATON USB4 ONLY struct dc_dpia_bw_alloc dpia_bw_alloc_config; + bool skip_implict_edp_power_control; }; /* Return an enumerated dc_link. @@ -1571,6 +1577,9 @@ struct dc_link **edp_links, int *edp_num); +void dc_set_edp_power(const struct dc *dc, struct dc_link *edp_link, + bool powerOn); + /* The function initiates detection handshake over the given link. It first * determines if there are display connections over the link. If so it initiates * detection protocols supported by the connected receiver device. The function diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c @@ -1219,7 +1219,7 @@ struct dce_hwseq *hws = link->dc->hwseq; if (link->local_sink && link->local_sink->sink_signal == SIGNAL_TYPE_EDP) { - if (!stream->skip_edp_power_down) + if (!link->skip_implict_edp_power_control) hws->funcs.edp_backlight_control(link, false); link->dc->hwss.set_abm_immediate_disable(pipe_ctx); } diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c @@ -111,7 +111,8 @@ if (pipe_ctx->top_pipe || !pipe_ctx->stream || (!pipe_ctx->plane_state && !old_pipe_ctx->plane_state) || - !tg->funcs->is_tg_enabled(tg)) + !tg->funcs->is_tg_enabled(tg) || + pipe_ctx->stream->mall_stream_config.type == SUBVP_PHANTOM) continue; if (lock) diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c @@ -1846,8 +1846,16 @@ dc->current_state->res_ctx.pipe_ctx[i].stream->mall_stream_config.type == SUBVP_PHANTOM) { struct timing_generator *tg = dc->current_state->res_ctx.pipe_ctx[i].stream_res.tg; - if (tg->funcs->enable_crtc) + if (tg->funcs->enable_crtc) { + if (dc->hwss.blank_phantom) { + int main_pipe_width, main_pipe_height; + + main_pipe_width = dc->current_state->res_ctx.pipe_ctx[i].stream->mall_stream_config.paired_stream->dst.width; + main_pipe_height = dc->current_state->res_ctx.pipe_ctx[i].stream->mall_stream_config.paired_stream->dst.height; + dc->hwss.blank_phantom(dc, tg, main_pipe_width, main_pipe_height); + } tg->funcs->enable_crtc(tg); + } } } /* OTG blank before disabling all front ends */ diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dcn314/dcn314_resource.c linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dcn314/dcn314_resource.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dcn314/dcn314_resource.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dcn314/dcn314_resource.c @@ -868,7 +868,7 @@ static const struct dc_debug_options debug_defaults_drv = { .disable_z10 = false, .enable_z9_disable_interface = true, - .minimum_z8_residency_time = 2000, + .minimum_z8_residency_time = 2100, .psr_skip_crtc_disable = true, .disable_dmcu = true, .force_abm_enable = false, diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dml/dcn20/dcn20_fpu.c @@ -948,10 +948,8 @@ { int plane_count; int i; - unsigned int min_dst_y_next_start_us; plane_count = 0; - min_dst_y_next_start_us = 0; for (i = 0; i < dc->res_pool->pipe_count; i++) { if (context->res_ctx.pipe_ctx[i].plane_state) plane_count++; @@ -973,26 +971,15 @@ else if (context->stream_count == 1 && context->streams[0]->signal == SIGNAL_TYPE_EDP) { struct dc_link *link = context->streams[0]->sink->link; struct dc_stream_status *stream_status = &context->stream_status[0]; - struct dc_stream_state *current_stream = context->streams[0]; int minmum_z8_residency = dc->debug.minimum_z8_residency_time > 0 ? dc->debug.minimum_z8_residency_time : 1000; bool allow_z8 = context->bw_ctx.dml.vba.StutterPeriod > (double)minmum_z8_residency; bool is_pwrseq0 = link->link_index == 0; - bool isFreesyncVideo; - - isFreesyncVideo = current_stream->adjust.v_total_min == current_stream->adjust.v_total_max; - isFreesyncVideo = isFreesyncVideo && current_stream->timing.v_total < current_stream->adjust.v_total_min; - for (i = 0; i < dc->res_pool->pipe_count; i++) { - if (context->res_ctx.pipe_ctx[i].stream == current_stream && isFreesyncVideo) { - min_dst_y_next_start_us = context->res_ctx.pipe_ctx[i].dlg_regs.min_dst_y_next_start_us; - break; - } - } /* Don't support multi-plane configurations */ if (stream_status->plane_count > 1) return DCN_ZSTATE_SUPPORT_DISALLOW; - if (is_pwrseq0 && (context->bw_ctx.dml.vba.StutterPeriod > 5000.0 || min_dst_y_next_start_us > 5000)) + if (is_pwrseq0 && context->bw_ctx.dml.vba.StutterPeriod > 5000.0) return DCN_ZSTATE_SUPPORT_ALLOW; else if (is_pwrseq0 && link->psr_settings.psr_version == DC_PSR_VERSION_1 && !link->panel_config.psr.disable_psr) return allow_z8 ? DCN_ZSTATE_SUPPORT_ALLOW_Z8_Z10_ONLY : DCN_ZSTATE_SUPPORT_ALLOW_Z10_ONLY; diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/link/link_factory.c linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/link/link_factory.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/link/link_factory.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/link/link_factory.c @@ -215,6 +215,7 @@ link_srv->edp_receiver_ready_T9 = edp_receiver_ready_T9; link_srv->edp_receiver_ready_T7 = edp_receiver_ready_T7; link_srv->edp_power_alpm_dpcd_enable = edp_power_alpm_dpcd_enable; + link_srv->edp_set_panel_power = edp_set_panel_power; } /* link dp cts implements dp compliance test automation protocols and manual diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/amdgpu_pm.c linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/amdgpu_pm.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/amdgpu_pm.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/amdgpu_pm.c @@ -734,7 +734,7 @@ if (adev->in_suspend && !adev->in_runpm) return -EPERM; - if (count > 127) + if (count > 127 || count == 0) return -EINVAL; if (*buf == 's') @@ -754,7 +754,8 @@ else return -EINVAL; - memcpy(buf_cpy, buf, count+1); + memcpy(buf_cpy, buf, count); + buf_cpy[count] = 0; tmp_str = buf_cpy; @@ -771,6 +772,9 @@ return -EINVAL; parameter_size++; + if (!tmp_str) + break; + while (isspace(*tmp_str)) tmp_str++; } @@ -2077,6 +2081,7 @@ case IP_VERSION(11, 0, 0): case IP_VERSION(11, 0, 1): case IP_VERSION(11, 0, 2): + case IP_VERSION(11, 0, 3): *states = ATTR_STATE_SUPPORTED; break; default: diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c @@ -2084,14 +2084,14 @@ #define MAX(a, b) ((a) > (b) ? (a) : (b)) static int sienna_cichlid_update_pcie_parameters(struct smu_context *smu, - uint32_t pcie_gen_cap, - uint32_t pcie_width_cap) + uint8_t pcie_gen_cap, + uint8_t pcie_width_cap) { struct smu_11_0_dpm_context *dpm_context = smu->smu_dpm.dpm_context; struct smu_11_0_pcie_table *pcie_table = &dpm_context->dpm_tables.pcie_table; uint8_t *table_member1, *table_member2; - uint32_t min_gen_speed, max_gen_speed; - uint32_t min_lane_width, max_lane_width; + uint8_t min_gen_speed, max_gen_speed; + uint8_t min_lane_width, max_lane_width; uint32_t smu_pcie_arg; int ret, i; @@ -2107,7 +2107,7 @@ min_lane_width = min_lane_width > max_lane_width ? max_lane_width : min_lane_width; - if (!amdgpu_device_pcie_dynamic_switching_supported()) { + if (!(smu->adev->pm.pp_feature & PP_PCIE_DPM_MASK)) { pcie_table->pcie_gen[0] = max_gen_speed; pcie_table->pcie_lane[0] = max_lane_width; } else { diff -u linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c --- linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c @@ -2162,38 +2162,10 @@ } } - if (smu->power_profile_mode == PP_SMC_POWER_PROFILE_COMPUTE && - (((smu->adev->pdev->device == 0x744C) && (smu->adev->pdev->revision == 0xC8)) || - ((smu->adev->pdev->device == 0x744C) && (smu->adev->pdev->revision == 0xCC)))) { - ret = smu_cmn_update_table(smu, - SMU_TABLE_ACTIVITY_MONITOR_COEFF, - WORKLOAD_PPLIB_COMPUTE_BIT, - (void *)(&activity_monitor_external), - false); - if (ret) { - dev_err(smu->adev->dev, "[%s] Failed to get activity monitor!", __func__); - return ret; - } - - ret = smu_cmn_update_table(smu, - SMU_TABLE_ACTIVITY_MONITOR_COEFF, - WORKLOAD_PPLIB_CUSTOM_BIT, - (void *)(&activity_monitor_external), - true); - if (ret) { - dev_err(smu->adev->dev, "[%s] Failed to set activity monitor!", __func__); - return ret; - } - - workload_type = smu_cmn_to_asic_specific_index(smu, - CMN2ASIC_MAPPING_WORKLOAD, - PP_SMC_POWER_PROFILE_CUSTOM); - } else { - /* conv PP_SMC_POWER_PROFILE* to WORKLOAD_PPLIB_*_BIT */ - workload_type = smu_cmn_to_asic_specific_index(smu, + /* conv PP_SMC_POWER_PROFILE* to WORKLOAD_PPLIB_*_BIT */ + workload_type = smu_cmn_to_asic_specific_index(smu, CMN2ASIC_MAPPING_WORKLOAD, smu->power_profile_mode); - } if (workload_type < 0) return -EINVAL; reverted: --- linux-riscv-6.5.0/drivers/gpu/drm/ast/ast_dp.c +++ linux-riscv-6.5.0.orig/drivers/gpu/drm/ast/ast_dp.c @@ -7,17 +7,6 @@ #include #include "ast_drv.h" -bool ast_astdp_is_connected(struct ast_device *ast) -{ - if (!ast_get_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xD1, ASTDP_MCU_FW_EXECUTING)) - return false; - if (!ast_get_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xDF, ASTDP_HPD)) - return false; - if (!ast_get_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xDC, ASTDP_LINK_SUCCESS)) - return false; - return true; -} - int ast_astdp_read_edid(struct drm_device *dev, u8 *ediddata) { struct ast_device *ast = to_ast_device(dev); reverted: --- linux-riscv-6.5.0/drivers/gpu/drm/ast/ast_dp501.c +++ linux-riscv-6.5.0.orig/drivers/gpu/drm/ast/ast_dp501.c @@ -272,9 +272,11 @@ return true; } +bool ast_dp501_read_edid(struct drm_device *dev, u8 *ediddata) -bool ast_dp501_is_connected(struct ast_device *ast) { + struct ast_device *ast = to_ast_device(dev); + u32 i, boot_address, offset, data; + u32 *pEDIDidx; - u32 boot_address, offset, data; if (ast->config_mode == ast_use_p2a) { boot_address = get_fw_base(ast); @@ -290,6 +292,14 @@ data = ast_mindwm(ast, boot_address + offset); if (!(data & AST_DP501_PNP_CONNECTED)) return false; + + /* Read EDID */ + offset = AST_DP501_EDID_DATA; + for (i = 0; i < 128; i += 4) { + data = ast_mindwm(ast, boot_address + offset + i); + pEDIDidx = (u32 *)(ediddata + i); + *pEDIDidx = data; + } } else { if (!ast->dp501_fw_buf) return false; @@ -309,33 +319,10 @@ data = readl(ast->dp501_fw_buf + offset); if (!(data & AST_DP501_PNP_CONNECTED)) return false; - } - return true; -} - -bool ast_dp501_read_edid(struct drm_device *dev, u8 *ediddata) -{ - struct ast_device *ast = to_ast_device(dev); - u32 i, boot_address, offset, data; - u32 *pEDIDidx; - - if (!ast_dp501_is_connected(ast)) - return false; - - if (ast->config_mode == ast_use_p2a) { - boot_address = get_fw_base(ast); /* Read EDID */ offset = AST_DP501_EDID_DATA; for (i = 0; i < 128; i += 4) { - data = ast_mindwm(ast, boot_address + offset + i); - pEDIDidx = (u32 *)(ediddata + i); - *pEDIDidx = data; - } - } else { - /* Read EDID */ - offset = AST_DP501_EDID_DATA; - for (i = 0; i < 128; i += 4) { data = readl(ast->dp501_fw_buf + offset + i); pEDIDidx = (u32 *)(ediddata + i); *pEDIDidx = data; diff -u linux-riscv-6.5.0/drivers/gpu/drm/ast/ast_drv.h linux-riscv-6.5.0/drivers/gpu/drm/ast/ast_drv.h --- linux-riscv-6.5.0/drivers/gpu/drm/ast/ast_drv.h +++ linux-riscv-6.5.0/drivers/gpu/drm/ast/ast_drv.h @@ -153,6 +153,17 @@ return container_of(connector, struct ast_sil164_connector, base); } +struct ast_bmc_connector { + struct drm_connector base; + struct drm_connector *physical_connector; +}; + +static inline struct ast_bmc_connector * +to_ast_bmc_connector(struct drm_connector *connector) +{ + return container_of(connector, struct ast_bmc_connector, base); +} + /* * Device */ @@ -198,7 +209,7 @@ } astdp; struct { struct drm_encoder encoder; - struct drm_connector connector; + struct ast_bmc_connector bmc_connector; } bmc; } output; @@ -472,7 +483,6 @@ /* ast dp501 */ void ast_set_dp501_video_output(struct drm_device *dev, u8 mode); bool ast_backup_fw(struct drm_device *dev, u8 *addr, u32 size); -bool ast_dp501_is_connected(struct ast_device *ast); bool ast_dp501_read_edid(struct drm_device *dev, u8 *ediddata); u8 ast_get_dp501_max_clk(struct drm_device *dev); void ast_init_3rdtx(struct drm_device *dev); @@ -481,7 +491,6 @@ struct ast_i2c_chan *ast_i2c_create(struct drm_device *dev); /* aspeed DP */ -bool ast_astdp_is_connected(struct ast_device *ast); int ast_astdp_read_edid(struct drm_device *dev, u8 *ediddata); void ast_dp_launch(struct drm_device *dev); void ast_dp_power_on_off(struct drm_device *dev, bool no); diff -u linux-riscv-6.5.0/drivers/gpu/drm/ast/ast_mode.c linux-riscv-6.5.0/drivers/gpu/drm/ast/ast_mode.c --- linux-riscv-6.5.0/drivers/gpu/drm/ast/ast_mode.c +++ linux-riscv-6.5.0/drivers/gpu/drm/ast/ast_mode.c @@ -1585,20 +1585,8 @@ return 0; } -static int ast_dp501_connector_helper_detect_ctx(struct drm_connector *connector, - struct drm_modeset_acquire_ctx *ctx, - bool force) -{ - struct ast_device *ast = to_ast_device(connector->dev); - - if (ast_dp501_is_connected(ast)) - return connector_status_connected; - return connector_status_disconnected; -} - static const struct drm_connector_helper_funcs ast_dp501_connector_helper_funcs = { .get_modes = ast_dp501_connector_helper_get_modes, - .detect_ctx = ast_dp501_connector_helper_detect_ctx, }; static const struct drm_connector_funcs ast_dp501_connector_funcs = { @@ -1623,7 +1611,7 @@ connector->interlace_allowed = 0; connector->doublescan_allowed = 0; - connector->polled = DRM_CONNECTOR_POLL_CONNECT | DRM_CONNECTOR_POLL_DISCONNECT; + connector->polled = DRM_CONNECTOR_POLL_CONNECT; return 0; } @@ -1695,20 +1683,8 @@ return 0; } -static int ast_astdp_connector_helper_detect_ctx(struct drm_connector *connector, - struct drm_modeset_acquire_ctx *ctx, - bool force) -{ - struct ast_device *ast = to_ast_device(connector->dev); - - if (ast_astdp_is_connected(ast)) - return connector_status_connected; - return connector_status_disconnected; -} - static const struct drm_connector_helper_funcs ast_astdp_connector_helper_funcs = { .get_modes = ast_astdp_connector_helper_get_modes, - .detect_ctx = ast_astdp_connector_helper_detect_ctx, }; static const struct drm_connector_funcs ast_astdp_connector_funcs = { @@ -1733,7 +1709,7 @@ connector->interlace_allowed = 0; connector->doublescan_allowed = 0; - connector->polled = DRM_CONNECTOR_POLL_CONNECT | DRM_CONNECTOR_POLL_DISCONNECT; + connector->polled = DRM_CONNECTOR_POLL_CONNECT; return 0; } @@ -1770,6 +1746,30 @@ .destroy = drm_encoder_cleanup, }; +static int ast_bmc_connector_helper_detect_ctx(struct drm_connector *connector, + struct drm_modeset_acquire_ctx *ctx, + bool force) +{ + struct ast_bmc_connector *bmc_connector = to_ast_bmc_connector(connector); + struct drm_connector *physical_connector = bmc_connector->physical_connector; + + /* + * Most user-space compositors cannot handle more than one connected + * connector per CRTC. Hence, we only mark the BMC as connected if the + * physical connector is disconnected. If the physical connector's status + * is connected or unknown, the BMC remains disconnected. This has no + * effect on the output of the BMC. + * + * FIXME: Remove this logic once user-space compositors can handle more + * than one connector per CRTC. The BMC should always be connected. + */ + + if (physical_connector && physical_connector->status == connector_status_disconnected) + return connector_status_connected; + + return connector_status_disconnected; +} + static int ast_bmc_connector_helper_get_modes(struct drm_connector *connector) { return drm_add_modes_noedid(connector, 4096, 4096); @@ -1777,6 +1777,7 @@ static const struct drm_connector_helper_funcs ast_bmc_connector_helper_funcs = { .get_modes = ast_bmc_connector_helper_get_modes, + .detect_ctx = ast_bmc_connector_helper_detect_ctx, }; static const struct drm_connector_funcs ast_bmc_connector_funcs = { @@ -1787,12 +1788,33 @@ .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, }; -static int ast_bmc_output_init(struct ast_device *ast) +static int ast_bmc_connector_init(struct drm_device *dev, + struct ast_bmc_connector *bmc_connector, + struct drm_connector *physical_connector) +{ + struct drm_connector *connector = &bmc_connector->base; + int ret; + + ret = drm_connector_init(dev, connector, &ast_bmc_connector_funcs, + DRM_MODE_CONNECTOR_VIRTUAL); + if (ret) + return ret; + + drm_connector_helper_add(connector, &ast_bmc_connector_helper_funcs); + + bmc_connector->physical_connector = physical_connector; + + return 0; +} + +static int ast_bmc_output_init(struct ast_device *ast, + struct drm_connector *physical_connector) { struct drm_device *dev = &ast->base; struct drm_crtc *crtc = &ast->crtc; struct drm_encoder *encoder = &ast->output.bmc.encoder; - struct drm_connector *connector = &ast->output.bmc.connector; + struct ast_bmc_connector *bmc_connector = &ast->output.bmc.bmc_connector; + struct drm_connector *connector = &bmc_connector->base; int ret; ret = drm_encoder_init(dev, encoder, @@ -1802,13 +1824,10 @@ return ret; encoder->possible_crtcs = drm_crtc_mask(crtc); - ret = drm_connector_init(dev, connector, &ast_bmc_connector_funcs, - DRM_MODE_CONNECTOR_VIRTUAL); + ret = ast_bmc_connector_init(dev, bmc_connector, physical_connector); if (ret) return ret; - drm_connector_helper_add(connector, &ast_bmc_connector_helper_funcs); - ret = drm_connector_attach_encoder(connector, encoder); if (ret) return ret; @@ -1867,6 +1886,7 @@ int ast_mode_config_init(struct ast_device *ast) { struct drm_device *dev = &ast->base; + struct drm_connector *physical_connector = NULL; int ret; ret = drmm_mode_config_init(dev); @@ -1908,28 +1928,30 @@ if (ret) return ret; + physical_connector = &ast->output.vga.vga_connector.base; } if (ast->tx_chip_types & AST_TX_SIL164_BIT) { ret = ast_sil164_output_init(ast); if (ret) return ret; + physical_connector = &ast->output.sil164.sil164_connector.base; } if (ast->tx_chip_types & AST_TX_DP501_BIT) { ret = ast_dp501_output_init(ast); if (ret) return ret; + physical_connector = &ast->output.dp501.connector; } if (ast->tx_chip_types & AST_TX_ASTDP_BIT) { ret = ast_astdp_output_init(ast); if (ret) return ret; + physical_connector = &ast->output.astdp.connector; } - ret = ast_bmc_output_init(ast); + ret = ast_bmc_output_init(ast, physical_connector); if (ret) return ret; drm_mode_config_reset(dev); - drm_kms_helper_poll_init(dev); - return 0; } diff -u linux-riscv-6.5.0/drivers/gpu/drm/bridge/samsung-dsim.c linux-riscv-6.5.0/drivers/gpu/drm/bridge/samsung-dsim.c --- linux-riscv-6.5.0/drivers/gpu/drm/bridge/samsung-dsim.c +++ linux-riscv-6.5.0/drivers/gpu/drm/bridge/samsung-dsim.c @@ -384,7 +384,7 @@ [RESET_TYPE] = DSIM_SWRST, [PLL_TIMER] = 500, [STOP_STATE_CNT] = 0xf, - [PHYCTRL_ULPS_EXIT] = 0, + [PHYCTRL_ULPS_EXIT] = DSIM_PHYCTRL_ULPS_EXIT(0xaf), [PHYCTRL_VREG_LP] = 0, [PHYCTRL_SLEW_UP] = 0, [PHYTIMING_LPX] = DSIM_PHYTIMING_LPX(0x06), @@ -412,6 +412,7 @@ .m_min = 41, .m_max = 125, .min_freq = 500, + .has_broken_fifoctrl_emptyhdr = 1, }; static const struct samsung_dsim_driver_data exynos4_dsi_driver_data = { @@ -428,6 +429,7 @@ .m_min = 41, .m_max = 125, .min_freq = 500, + .has_broken_fifoctrl_emptyhdr = 1, }; static const struct samsung_dsim_driver_data exynos5_dsi_driver_data = { @@ -1009,8 +1011,20 @@ do { u32 reg = samsung_dsim_read(dsi, DSIM_FIFOCTRL_REG); - if (reg & DSIM_SFR_HEADER_EMPTY) - return 0; + if (!dsi->driver_data->has_broken_fifoctrl_emptyhdr) { + if (reg & DSIM_SFR_HEADER_EMPTY) + return 0; + } else { + if (!(reg & DSIM_SFR_HEADER_FULL)) { + /* + * Wait a little bit, so the pending data can + * actually leave the FIFO to avoid overflow. + */ + if (!cond_resched()) + usleep_range(950, 1050); + return 0; + } + } if (!cond_resched()) usleep_range(950, 1050); diff -u linux-riscv-6.5.0/drivers/gpu/drm/drm_atomic_helper.c linux-riscv-6.5.0/drivers/gpu/drm/drm_atomic_helper.c --- linux-riscv-6.5.0/drivers/gpu/drm/drm_atomic_helper.c +++ linux-riscv-6.5.0/drivers/gpu/drm/drm_atomic_helper.c @@ -2012,7 +2012,7 @@ return ret; drm_atomic_helper_async_commit(dev, state); - drm_atomic_helper_cleanup_planes(dev, state); + drm_atomic_helper_unprepare_planes(dev, state); return 0; } @@ -2072,7 +2072,7 @@ return 0; err: - drm_atomic_helper_cleanup_planes(dev, state); + drm_atomic_helper_unprepare_planes(dev, state); return ret; } EXPORT_SYMBOL(drm_atomic_helper_commit); @@ -2650,6 +2650,39 @@ } EXPORT_SYMBOL(drm_atomic_helper_prepare_planes); +/** + * drm_atomic_helper_unprepare_planes - release plane resources on aborts + * @dev: DRM device + * @state: atomic state object with old state structures + * + * This function cleans up plane state, specifically framebuffers, from the + * atomic state. It undoes the effects of drm_atomic_helper_prepare_planes() + * when aborting an atomic commit. For cleaning up after a successful commit + * use drm_atomic_helper_cleanup_planes(). + */ +void drm_atomic_helper_unprepare_planes(struct drm_device *dev, + struct drm_atomic_state *state) +{ + struct drm_plane *plane; + struct drm_plane_state *new_plane_state; + int i; + + for_each_new_plane_in_state(state, plane, new_plane_state, i) { + const struct drm_plane_helper_funcs *funcs = plane->helper_private; + + if (funcs->end_fb_access) + funcs->end_fb_access(plane, new_plane_state); + } + + for_each_new_plane_in_state(state, plane, new_plane_state, i) { + const struct drm_plane_helper_funcs *funcs = plane->helper_private; + + if (funcs->cleanup_fb) + funcs->cleanup_fb(plane, new_plane_state); + } +} +EXPORT_SYMBOL(drm_atomic_helper_unprepare_planes); + static bool plane_crtc_active(const struct drm_plane_state *state) { return state->crtc && state->crtc->state->active; @@ -2784,6 +2817,17 @@ funcs->atomic_flush(crtc, old_state); } + + /* + * Signal end of framebuffer access here before hw_done. After hw_done, + * a later commit might have already released the plane state. + */ + for_each_old_plane_in_state(old_state, plane, old_plane_state, i) { + const struct drm_plane_helper_funcs *funcs = plane->helper_private; + + if (funcs->end_fb_access) + funcs->end_fb_access(plane, old_plane_state); + } } EXPORT_SYMBOL(drm_atomic_helper_commit_planes); @@ -2911,40 +2955,22 @@ * configuration. Hence the old configuration must be perserved in @old_state to * be able to call this function. * - * This function must also be called on the new state when the atomic update - * fails at any point after calling drm_atomic_helper_prepare_planes(). + * This function may not be called on the new state when the atomic update + * fails at any point after calling drm_atomic_helper_prepare_planes(). Use + * drm_atomic_helper_unprepare_planes() in this case. */ void drm_atomic_helper_cleanup_planes(struct drm_device *dev, struct drm_atomic_state *old_state) { struct drm_plane *plane; - struct drm_plane_state *old_plane_state, *new_plane_state; + struct drm_plane_state *old_plane_state; int i; - for_each_oldnew_plane_in_state(old_state, plane, old_plane_state, new_plane_state, i) { + for_each_old_plane_in_state(old_state, plane, old_plane_state, i) { const struct drm_plane_helper_funcs *funcs = plane->helper_private; - if (funcs->end_fb_access) - funcs->end_fb_access(plane, new_plane_state); - } - - for_each_oldnew_plane_in_state(old_state, plane, old_plane_state, new_plane_state, i) { - const struct drm_plane_helper_funcs *funcs; - struct drm_plane_state *plane_state; - - /* - * This might be called before swapping when commit is aborted, - * in which case we have to cleanup the new state. - */ - if (old_plane_state == plane->state) - plane_state = new_plane_state; - else - plane_state = old_plane_state; - - funcs = plane->helper_private; - if (funcs->cleanup_fb) - funcs->cleanup_fb(plane, plane_state); + funcs->cleanup_fb(plane, old_plane_state); } } EXPORT_SYMBOL(drm_atomic_helper_cleanup_planes); diff -u linux-riscv-6.5.0/drivers/gpu/drm/drm_edid.c linux-riscv-6.5.0/drivers/gpu/drm/drm_edid.c --- linux-riscv-6.5.0/drivers/gpu/drm/drm_edid.c +++ linux-riscv-6.5.0/drivers/gpu/drm/drm_edid.c @@ -123,6 +123,9 @@ /* AEO model 0 reports 8 bpc, but is a 6 bpc panel */ EDID_QUIRK('A', 'E', 'O', 0, EDID_QUIRK_FORCE_6BPC), + /* BenQ GW2765 */ + EDID_QUIRK('B', 'N', 'Q', 0x78d6, EDID_QUIRK_FORCE_8BPC), + /* BOE model on HP Pavilion 15-n233sl reports 8 bpc, but is a 6 bpc panel */ EDID_QUIRK('B', 'O', 'E', 0x78b, EDID_QUIRK_FORCE_6BPC), @@ -3496,11 +3499,19 @@ mode->vsync_end = mode->vsync_start + vsync_pulse_width; mode->vtotal = mode->vdisplay + vblank; - /* Some EDIDs have bogus h/vtotal values */ - if (mode->hsync_end > mode->htotal) - mode->htotal = mode->hsync_end + 1; - if (mode->vsync_end > mode->vtotal) - mode->vtotal = mode->vsync_end + 1; + /* Some EDIDs have bogus h/vsync_end values */ + if (mode->hsync_end > mode->htotal) { + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] reducing hsync_end %d->%d\n", + connector->base.id, connector->name, + mode->hsync_end, mode->htotal); + mode->hsync_end = mode->htotal; + } + if (mode->vsync_end > mode->vtotal) { + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] reducing vsync_end %d->%d\n", + connector->base.id, connector->name, + mode->vsync_end, mode->vtotal); + mode->vsync_end = mode->vtotal; + } drm_mode_do_interlace_quirk(mode, pt); diff -u linux-riscv-6.5.0/drivers/gpu/drm/i915/display/intel_dp.c linux-riscv-6.5.0/drivers/gpu/drm/i915/display/intel_dp.c --- linux-riscv-6.5.0/drivers/gpu/drm/i915/display/intel_dp.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/display/intel_dp.c @@ -430,7 +430,7 @@ enum phy phy = intel_port_to_phy(i915, dig_port->base.port); if (intel_is_c10phy(i915, phy)) - return intel_dp_is_edp(intel_dp) ? 675000 : 810000; + return 810000; return 2000000; } @@ -1118,6 +1118,10 @@ enum drm_mode_status status; bool dsc = false, bigjoiner = false; + status = intel_cpu_transcoder_mode_valid(dev_priv, mode); + if (status != MODE_OK) + return status; + if (mode->flags & DRM_MODE_FLAG_DBLCLK) return MODE_H_ILLEGAL; @@ -5508,8 +5512,7 @@ * (eg. Acer Chromebook C710), so we'll check it only if multiple * ports are attempting to use the same AUX CH, according to VBT. */ - if (intel_bios_dp_has_shared_aux_ch(encoder->devdata) && - !intel_digital_port_connected(encoder)) { + if (intel_bios_dp_has_shared_aux_ch(encoder->devdata)) { /* * If this fails, presume the DPCD answer came * from some other port using the same AUX CH. @@ -5517,10 +5520,27 @@ * FIXME maybe cleaner to check this before the * DPCD read? Would need sort out the VDD handling... */ - drm_info(&dev_priv->drm, - "[ENCODER:%d:%s] HPD is down, disabling eDP\n", - encoder->base.base.id, encoder->base.name); - goto out_vdd_off; + if (!intel_digital_port_connected(encoder)) { + drm_info(&dev_priv->drm, + "[ENCODER:%d:%s] HPD is down, disabling eDP\n", + encoder->base.base.id, encoder->base.name); + goto out_vdd_off; + } + + /* + * Unfortunately even the HPD based detection fails on + * eg. Asus B360M-A (CFL+CNP), so as a last resort fall + * back to checking for a VGA branch device. Only do this + * on known affected platforms to minimize false positives. + */ + if (DISPLAY_VER(dev_priv) == 9 && drm_dp_is_branch(intel_dp->dpcd) && + (intel_dp->dpcd[DP_DOWNSTREAMPORT_PRESENT] & DP_DWN_STRM_PORT_TYPE_MASK) == + DP_DWN_STRM_PORT_TYPE_ANALOG) { + drm_info(&dev_priv->drm, + "[ENCODER:%d:%s] VGA converter detected, disabling eDP\n", + encoder->base.base.id, encoder->base.name); + goto out_vdd_off; + } } mutex_lock(&dev_priv->drm.mode_config.mutex); diff -u linux-riscv-6.5.0/drivers/gpu/drm/i915/gt/intel_ggtt.c linux-riscv-6.5.0/drivers/gpu/drm/i915/gt/intel_ggtt.c --- linux-riscv-6.5.0/drivers/gpu/drm/i915/gt/intel_ggtt.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/gt/intel_ggtt.c @@ -190,6 +190,21 @@ spin_unlock_irq(&uncore->lock); } +static bool needs_wc_ggtt_mapping(struct drm_i915_private *i915) +{ + /* + * On BXT+/ICL+ writes larger than 64 bit to the GTT pagetable range + * will be dropped. For WC mappings in general we have 64 byte burst + * writes when the WC buffer is flushed, so we can't use it, but have to + * resort to an uncached mapping. The WC issue is easily caught by the + * readback check when writing GTT PTE entries. + */ + if (!IS_GEN9_LP(i915) && GRAPHICS_VER(i915) < 11) + return true; + + return false; +} + static void gen8_ggtt_invalidate(struct i915_ggtt *ggtt) { struct intel_uncore *uncore = ggtt->vm.gt->uncore; @@ -197,8 +212,12 @@ /* * Note that as an uncached mmio write, this will flush the * WCB of the writes into the GGTT before it triggers the invalidate. + * + * Only perform this when GGTT is mapped as WC, see ggtt_probe_common(). */ - intel_uncore_write_fw(uncore, GFX_FLSH_CNTL_GEN6, GFX_FLSH_CNTL_EN); + if (needs_wc_ggtt_mapping(ggtt->vm.i915)) + intel_uncore_write_fw(uncore, GFX_FLSH_CNTL_GEN6, + GFX_FLSH_CNTL_EN); } static void guc_ggtt_invalidate(struct i915_ggtt *ggtt) @@ -902,17 +921,11 @@ GEM_WARN_ON(pci_resource_len(pdev, GEN4_GTTMMADR_BAR) != gen6_gttmmadr_size(i915)); phys_addr = pci_resource_start(pdev, GEN4_GTTMMADR_BAR) + gen6_gttadr_offset(i915); - /* - * On BXT+/ICL+ writes larger than 64 bit to the GTT pagetable range - * will be dropped. For WC mappings in general we have 64 byte burst - * writes when the WC buffer is flushed, so we can't use it, but have to - * resort to an uncached mapping. The WC issue is easily caught by the - * readback check when writing GTT PTE entries. - */ - if (IS_GEN9_LP(i915) || GRAPHICS_VER(i915) >= 11) - ggtt->gsm = ioremap(phys_addr, size); - else + if (needs_wc_ggtt_mapping(i915)) ggtt->gsm = ioremap_wc(phys_addr, size); + else + ggtt->gsm = ioremap(phys_addr, size); + if (!ggtt->gsm) { drm_err(&i915->drm, "Failed to map the ggtt page table\n"); return -ENOMEM; diff -u linux-riscv-6.5.0/drivers/gpu/drm/mediatek/mtk_dp.c linux-riscv-6.5.0/drivers/gpu/drm/mediatek/mtk_dp.c --- linux-riscv-6.5.0/drivers/gpu/drm/mediatek/mtk_dp.c +++ linux-riscv-6.5.0/drivers/gpu/drm/mediatek/mtk_dp.c @@ -1983,7 +1983,6 @@ bool enabled = mtk_dp->enabled; struct edid *new_edid = NULL; struct mtk_dp_audio_cfg *audio_caps = &mtk_dp->info.audio_cur_cfg; - struct cea_sad *sads; if (!enabled) { drm_atomic_bridge_chain_pre_enable(bridge, connector->state->state); @@ -2006,11 +2005,16 @@ */ if (mtk_dp_parse_capabilities(mtk_dp)) { drm_err(mtk_dp->drm_dev, "Can't parse capabilities\n"); + kfree(new_edid); new_edid = NULL; } if (new_edid) { + struct cea_sad *sads; + audio_caps->sad_count = drm_edid_to_sad(new_edid, &sads); + kfree(sads); + audio_caps->detect_monitor = drm_detect_monitor_audio(new_edid); } diff -u linux-riscv-6.5.0/drivers/gpu/drm/mediatek/mtk_drm_crtc.c linux-riscv-6.5.0/drivers/gpu/drm/mediatek/mtk_drm_crtc.c --- linux-riscv-6.5.0/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ linux-riscv-6.5.0/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -407,6 +407,9 @@ unsigned int local_layer; plane_state = to_mtk_plane_state(plane->state); + + /* should not enable layer before crtc enabled */ + plane_state->pending.enable = false; comp = mtk_drm_ddp_comp_for_plane(crtc, plane, &local_layer); if (comp) mtk_ddp_comp_layer_config(comp, local_layer, diff -u linux-riscv-6.5.0/drivers/gpu/drm/mediatek/mtk_drm_drv.c linux-riscv-6.5.0/drivers/gpu/drm/mediatek/mtk_drm_drv.c --- linux-riscv-6.5.0/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ linux-riscv-6.5.0/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -287,6 +287,7 @@ static const struct mtk_mmsys_driver_data mt8188_vdosys0_driver_data = { .main_path = mt8188_mtk_ddp_main, .main_len = ARRAY_SIZE(mt8188_mtk_ddp_main), + .mmsys_dev_num = 1, }; static const struct mtk_mmsys_driver_data mt8192_mmsys_driver_data = { diff -u linux-riscv-6.5.0/drivers/gpu/drm/mediatek/mtk_drm_gem.c linux-riscv-6.5.0/drivers/gpu/drm/mediatek/mtk_drm_gem.c --- linux-riscv-6.5.0/drivers/gpu/drm/mediatek/mtk_drm_gem.c +++ linux-riscv-6.5.0/drivers/gpu/drm/mediatek/mtk_drm_gem.c @@ -121,7 +121,14 @@ int ret; args->pitch = DIV_ROUND_UP(args->width * args->bpp, 8); - args->size = args->pitch * args->height; + + /* + * Multiply 2 variables of different types, + * for example: args->size = args->spacing * args->height; + * may cause coverity issue with unintentional overflow. + */ + args->size = args->pitch; + args->size *= args->height; mtk_gem = mtk_drm_gem_create(dev, args->size, false); if (IS_ERR(mtk_gem)) @@ -239,6 +246,7 @@ npages = obj->size >> PAGE_SHIFT; mtk_gem->pages = kcalloc(npages, sizeof(*mtk_gem->pages), GFP_KERNEL); if (!mtk_gem->pages) { + sg_free_table(sgt); kfree(sgt); return -ENOMEM; } @@ -248,12 +256,15 @@ mtk_gem->kvaddr = vmap(mtk_gem->pages, npages, VM_MAP, pgprot_writecombine(PAGE_KERNEL)); if (!mtk_gem->kvaddr) { + sg_free_table(sgt); kfree(sgt); kfree(mtk_gem->pages); return -ENOMEM; } -out: + sg_free_table(sgt); kfree(sgt); + +out: iosys_map_set_vaddr(map, mtk_gem->kvaddr); return 0; diff -u linux-riscv-6.5.0/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_0_sc8280xp.h linux-riscv-6.5.0/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_0_sc8280xp.h --- linux-riscv-6.5.0/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_0_sc8280xp.h +++ linux-riscv-6.5.0/drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_8_0_sc8280xp.h @@ -221,6 +221,7 @@ .min_llcc_ib = 0, .min_dram_ib = 800000, .danger_lut_tbl = {0xf, 0xffff, 0x0}, + .safe_lut_tbl = {0xfe00, 0xfe00, 0xffff}, .qos_lut_tbl = { {.nentry = ARRAY_SIZE(sc8180x_qos_linear), .entries = sc8180x_qos_linear diff -u linux-riscv-6.5.0/drivers/gpu/drm/msm/dsi/dsi_host.c linux-riscv-6.5.0/drivers/gpu/drm/msm/dsi/dsi_host.c --- linux-riscv-6.5.0/drivers/gpu/drm/msm/dsi/dsi_host.c +++ linux-riscv-6.5.0/drivers/gpu/drm/msm/dsi/dsi_host.c @@ -147,6 +147,7 @@ /* DSI 6G TX buffer*/ struct drm_gem_object *tx_gem_obj; + struct msm_gem_address_space *aspace; /* DSI v2 TX buffer */ void *tx_buf; @@ -1104,8 +1105,10 @@ uint64_t iova; u8 *data; + msm_host->aspace = msm_gem_address_space_get(priv->kms->aspace); + data = msm_gem_kernel_new(dev, size, MSM_BO_WC, - priv->kms->aspace, + msm_host->aspace, &msm_host->tx_gem_obj, &iova); if (IS_ERR(data)) { @@ -1134,10 +1137,10 @@ return 0; } -static void dsi_tx_buf_free(struct msm_dsi_host *msm_host) +void msm_dsi_tx_buf_free(struct mipi_dsi_host *host) { + struct msm_dsi_host *msm_host = to_msm_dsi_host(host); struct drm_device *dev = msm_host->dev; - struct msm_drm_private *priv; /* * This is possible if we're tearing down before we've had a chance to @@ -1148,11 +1151,11 @@ if (!dev) return; - priv = dev->dev_private; if (msm_host->tx_gem_obj) { - msm_gem_unpin_iova(msm_host->tx_gem_obj, priv->kms->aspace); - drm_gem_object_put(msm_host->tx_gem_obj); + msm_gem_kernel_put(msm_host->tx_gem_obj, msm_host->aspace); + msm_gem_address_space_put(msm_host->aspace); msm_host->tx_gem_obj = NULL; + msm_host->aspace = NULL; } if (msm_host->tx_buf) @@ -1938,7 +1941,6 @@ struct msm_dsi_host *msm_host = to_msm_dsi_host(host); DBG(""); - dsi_tx_buf_free(msm_host); if (msm_host->workqueue) { destroy_workqueue(msm_host->workqueue); msm_host->workqueue = NULL; diff -u linux-riscv-6.5.0/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c linux-riscv-6.5.0/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c --- linux-riscv-6.5.0/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c +++ linux-riscv-6.5.0/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c @@ -2050,6 +2050,7 @@ .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE | MIPI_DSI_MODE_LPM, .init_cmds = auo_b101uan08_3_init_cmd, + .lp11_before_reset = true, }; static const struct drm_display_mode boe_tv105wum_nw0_default_mode = { @@ -2104,14 +2105,15 @@ .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE | MIPI_DSI_MODE_LPM, .init_cmds = starry_qfh032011_53g_init_cmd, + .lp11_before_reset = true, }; static const struct drm_display_mode starry_himax83102_j02_default_mode = { - .clock = 161600, + .clock = 162850, .hdisplay = 1200, - .hsync_start = 1200 + 40, - .hsync_end = 1200 + 40 + 20, - .htotal = 1200 + 40 + 20 + 40, + .hsync_start = 1200 + 50, + .hsync_end = 1200 + 50 + 20, + .htotal = 1200 + 50 + 20 + 50, .vdisplay = 1920, .vsync_start = 1920 + 116, .vsync_end = 1920 + 116 + 8, diff -u linux-riscv-6.5.0/drivers/gpu/drm/panel/panel-simple.c linux-riscv-6.5.0/drivers/gpu/drm/panel/panel-simple.c --- linux-riscv-6.5.0/drivers/gpu/drm/panel/panel-simple.c +++ linux-riscv-6.5.0/drivers/gpu/drm/panel/panel-simple.c @@ -2298,13 +2298,13 @@ static const struct display_timing innolux_g101ice_l01_timing = { .pixelclock = { 60400000, 71100000, 74700000 }, .hactive = { 1280, 1280, 1280 }, - .hfront_porch = { 41, 80, 100 }, - .hback_porch = { 40, 79, 99 }, - .hsync_len = { 1, 1, 1 }, + .hfront_porch = { 30, 60, 70 }, + .hback_porch = { 30, 60, 70 }, + .hsync_len = { 22, 40, 60 }, .vactive = { 800, 800, 800 }, - .vfront_porch = { 5, 11, 14 }, - .vback_porch = { 4, 11, 14 }, - .vsync_len = { 1, 1, 1 }, + .vfront_porch = { 3, 8, 14 }, + .vback_porch = { 3, 8, 14 }, + .vsync_len = { 4, 7, 12 }, .flags = DISPLAY_FLAGS_DE_HIGH, }; @@ -2321,6 +2321,7 @@ .disable = 200, }, .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, + .bus_flags = DRM_BUS_FLAG_DE_HIGH, .connector_type = DRM_MODE_CONNECTOR_LVDS, }; diff -u linux-riscv-6.5.0/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c linux-riscv-6.5.0/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c --- linux-riscv-6.5.0/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c +++ linux-riscv-6.5.0/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c @@ -774,9 +774,9 @@ sizeof(metadata->mip_levels)); metadata->num_sizes = num_sizes; metadata->sizes = - memdup_user((struct drm_vmw_size __user *)(unsigned long) + memdup_array_user((struct drm_vmw_size __user *)(unsigned long) req->size_addr, - sizeof(*metadata->sizes) * metadata->num_sizes); + metadata->num_sizes, sizeof(*metadata->sizes)); if (IS_ERR(metadata->sizes)) { ret = PTR_ERR(metadata->sizes); goto out_no_sizes; diff -u linux-riscv-6.5.0/drivers/hid/hid-input.c linux-riscv-6.5.0/drivers/hid/hid-input.c --- linux-riscv-6.5.0/drivers/hid/hid-input.c +++ linux-riscv-6.5.0/drivers/hid/hid-input.c @@ -406,6 +406,8 @@ HID_BATTERY_QUIRK_IGNORE }, { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_HP_SPECTRE_X360_14T_EA100_V2), HID_BATTERY_QUIRK_IGNORE }, + { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_HP_ENVY_X360_15_EU0556NG), + HID_BATTERY_QUIRK_IGNORE }, {} }; diff -u linux-riscv-6.5.0/drivers/hid/hid-logitech-hidpp.c linux-riscv-6.5.0/drivers/hid/hid-logitech-hidpp.c --- linux-riscv-6.5.0/drivers/hid/hid-logitech-hidpp.c +++ linux-riscv-6.5.0/drivers/hid/hid-logitech-hidpp.c @@ -1835,15 +1835,14 @@ /* -------------------------------------------------------------------------- */ #define HIDPP_PAGE_WIRELESS_DEVICE_STATUS 0x1d4b -static int hidpp_set_wireless_feature_index(struct hidpp_device *hidpp) +static int hidpp_get_wireless_feature_index(struct hidpp_device *hidpp, u8 *feature_index) { u8 feature_type; int ret; ret = hidpp_root_get_feature(hidpp, HIDPP_PAGE_WIRELESS_DEVICE_STATUS, - &hidpp->wireless_feature_index, - &feature_type); + feature_index, &feature_type); return ret; } @@ -4249,6 +4248,13 @@ } } + if (hidpp->protocol_major >= 2) { + u8 feature_index; + + if (!hidpp_get_wireless_feature_index(hidpp, &feature_index)) + hidpp->wireless_feature_index = feature_index; + } + if (hidpp->name == hdev->name && hidpp->protocol_major >= 2) { name = hidpp_get_device_name(hidpp); if (name) { @@ -4394,7 +4400,6 @@ bool connected; unsigned int connect_mask = HID_CONNECT_DEFAULT; struct hidpp_ff_private_data data; - bool will_restart = false; /* report_fixup needs drvdata to be set before we call hid_parse */ hidpp = devm_kzalloc(&hdev->dev, sizeof(*hidpp), GFP_KERNEL); @@ -4445,10 +4450,6 @@ return ret; } - if (hidpp->quirks & HIDPP_QUIRK_DELAYED_INIT || - hidpp->quirks & HIDPP_QUIRK_UNIFYING) - will_restart = true; - INIT_WORK(&hidpp->work, delayed_work_cb); mutex_init(&hidpp->send_mutex); init_waitqueue_head(&hidpp->wait); @@ -4460,10 +4461,12 @@ hdev->name); /* - * Plain USB connections need to actually call start and open - * on the transport driver to allow incoming data. + * First call hid_hw_start(hdev, 0) to allow IO without connecting any + * hid subdrivers (hid-input, hidraw). This allows retrieving the dev's + * name and serial number and store these in hdev->name and hdev->uniq, + * before the hid-input and hidraw drivers expose these to userspace. */ - ret = hid_hw_start(hdev, will_restart ? 0 : connect_mask); + ret = hid_hw_start(hdev, 0); if (ret) { hid_err(hdev, "hw start failed\n"); goto hid_hw_start_fail; @@ -4496,15 +4499,6 @@ hidpp_overwrite_name(hdev); } - if (connected && hidpp->protocol_major >= 2) { - ret = hidpp_set_wireless_feature_index(hidpp); - if (ret == -ENOENT) - hidpp->wireless_feature_index = 0; - else if (ret) - goto hid_hw_init_fail; - ret = 0; - } - if (connected && (hidpp->quirks & HIDPP_QUIRK_CLASS_WTP)) { ret = wtp_get_config(hidpp); if (ret) @@ -4518,21 +4512,14 @@ schedule_work(&hidpp->work); flush_work(&hidpp->work); - if (will_restart) { - /* Reset the HID node state */ - hid_device_io_stop(hdev); - hid_hw_close(hdev); - hid_hw_stop(hdev); - - if (hidpp->quirks & HIDPP_QUIRK_DELAYED_INIT) - connect_mask &= ~HID_CONNECT_HIDINPUT; + if (hidpp->quirks & HIDPP_QUIRK_DELAYED_INIT) + connect_mask &= ~HID_CONNECT_HIDINPUT; - /* Now export the actual inputs and hidraw nodes to the world */ - ret = hid_hw_start(hdev, connect_mask); - if (ret) { - hid_err(hdev, "%s:hid_hw_start returned error\n", __func__); - goto hid_hw_start_fail; - } + /* Now export the actual inputs and hidraw nodes to the world */ + ret = hid_connect(hdev, connect_mask); + if (ret) { + hid_err(hdev, "%s:hid_connect returned error %d\n", __func__, ret); + goto hid_hw_init_fail; } if (hidpp->quirks & HIDPP_QUIRK_CLASS_G920) { @@ -4543,6 +4530,11 @@ ret); } + /* + * This relies on logi_dj_ll_close() being a no-op so that DJ connection + * events will still be received. + */ + hid_hw_close(hdev); return ret; hid_hw_init_fail: @@ -4676,6 +4668,8 @@ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb008) }, { /* MX Master mouse over Bluetooth */ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb012) }, + { /* M720 Triathlon mouse over Bluetooth */ + HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb015) }, { /* MX Ergo trackball over Bluetooth */ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb01d) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_LOGITECH, 0xb01e) }, diff -u linux-riscv-6.5.0/drivers/hid/hid-multitouch.c linux-riscv-6.5.0/drivers/hid/hid-multitouch.c --- linux-riscv-6.5.0/drivers/hid/hid-multitouch.c +++ linux-riscv-6.5.0/drivers/hid/hid-multitouch.c @@ -2146,6 +2146,10 @@ /* Synaptics devices */ { .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT, HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8, + USB_VENDOR_ID_SYNAPTICS, 0xcd7e) }, + + { .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT, + HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8, USB_VENDOR_ID_SYNAPTICS, 0xce08) }, { .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT, diff -u linux-riscv-6.5.0/drivers/hwtracing/coresight/coresight-tmc-etr.c linux-riscv-6.5.0/drivers/hwtracing/coresight/coresight-tmc-etr.c --- linux-riscv-6.5.0/drivers/hwtracing/coresight/coresight-tmc-etr.c +++ linux-riscv-6.5.0/drivers/hwtracing/coresight/coresight-tmc-etr.c @@ -610,7 +610,8 @@ flat_buf->vaddr = dma_alloc_noncoherent(real_dev, etr_buf->size, &flat_buf->daddr, - DMA_FROM_DEVICE, GFP_KERNEL); + DMA_FROM_DEVICE, + GFP_KERNEL | __GFP_NOWARN); if (!flat_buf->vaddr) { kfree(flat_buf); return -ENOMEM; diff -u linux-riscv-6.5.0/drivers/i2c/busses/i2c-aspeed.c linux-riscv-6.5.0/drivers/i2c/busses/i2c-aspeed.c --- linux-riscv-6.5.0/drivers/i2c/busses/i2c-aspeed.c +++ linux-riscv-6.5.0/drivers/i2c/busses/i2c-aspeed.c @@ -749,6 +749,8 @@ func_ctrl_reg_val = readl(bus->base + ASPEED_I2C_FUN_CTRL_REG); func_ctrl_reg_val |= ASPEED_I2CD_SLAVE_EN; writel(func_ctrl_reg_val, bus->base + ASPEED_I2C_FUN_CTRL_REG); + + bus->slave_state = ASPEED_I2C_SLAVE_INACTIVE; } static int aspeed_i2c_reg_slave(struct i2c_client *client) @@ -765,7 +767,6 @@ __aspeed_i2c_reg_slave(bus, client->addr); bus->slave = client; - bus->slave_state = ASPEED_I2C_SLAVE_INACTIVE; spin_unlock_irqrestore(&bus->lock, flags); return 0; diff -u linux-riscv-6.5.0/drivers/i2c/busses/i2c-designware-common.c linux-riscv-6.5.0/drivers/i2c/busses/i2c-designware-common.c --- linux-riscv-6.5.0/drivers/i2c/busses/i2c-designware-common.c +++ linux-riscv-6.5.0/drivers/i2c/busses/i2c-designware-common.c @@ -63,7 +63,7 @@ { struct dw_i2c_dev *dev = context; - *val = readl_relaxed(dev->base + reg); + *val = readl(dev->base + reg); return 0; } @@ -72,7 +72,7 @@ { struct dw_i2c_dev *dev = context; - writel_relaxed(val, dev->base + reg); + writel(val, dev->base + reg); return 0; } @@ -81,7 +81,7 @@ { struct dw_i2c_dev *dev = context; - *val = swab32(readl_relaxed(dev->base + reg)); + *val = swab32(readl(dev->base + reg)); return 0; } @@ -90,7 +90,7 @@ { struct dw_i2c_dev *dev = context; - writel_relaxed(swab32(val), dev->base + reg); + writel(swab32(val), dev->base + reg); return 0; } @@ -99,8 +99,8 @@ { struct dw_i2c_dev *dev = context; - *val = readw_relaxed(dev->base + reg) | - (readw_relaxed(dev->base + reg + 2) << 16); + *val = readw(dev->base + reg) | + (readw(dev->base + reg + 2) << 16); return 0; } @@ -109,8 +109,8 @@ { struct dw_i2c_dev *dev = context; - writew_relaxed(val, dev->base + reg); - writew_relaxed(val >> 16, dev->base + reg + 2); + writew(val, dev->base + reg); + writew(val >> 16, dev->base + reg + 2); return 0; } diff -u linux-riscv-6.5.0/drivers/i2c/busses/i2c-i801.c linux-riscv-6.5.0/drivers/i2c/busses/i2c-i801.c --- linux-riscv-6.5.0/drivers/i2c/busses/i2c-i801.c +++ linux-riscv-6.5.0/drivers/i2c/busses/i2c-i801.c @@ -79,6 +79,7 @@ * Meteor Lake-P (SOC) 0x7e22 32 hard yes yes yes * Meteor Lake SoC-S (SOC) 0xae22 32 hard yes yes yes * Meteor Lake PCH-S (PCH) 0x7f23 32 hard yes yes yes + * Birch Stream (SOC) 0x5796 32 hard yes yes yes * * Features supported by this driver: * Software PEC no @@ -231,6 +232,7 @@ #define PCI_DEVICE_ID_INTEL_JASPER_LAKE_SMBUS 0x4da3 #define PCI_DEVICE_ID_INTEL_ALDER_LAKE_P_SMBUS 0x51a3 #define PCI_DEVICE_ID_INTEL_ALDER_LAKE_M_SMBUS 0x54a3 +#define PCI_DEVICE_ID_INTEL_BIRCH_STREAM_SMBUS 0x5796 #define PCI_DEVICE_ID_INTEL_BROXTON_SMBUS 0x5ad4 #define PCI_DEVICE_ID_INTEL_RAPTOR_LAKE_S_SMBUS 0x7a23 #define PCI_DEVICE_ID_INTEL_ALDER_LAKE_S_SMBUS 0x7aa3 @@ -679,15 +681,11 @@ return result ? priv->status : -ETIMEDOUT; } - for (i = 1; i <= len; i++) { - if (i == len && read_write == I2C_SMBUS_READ) - smbcmd |= SMBHSTCNT_LAST_BYTE; - outb_p(smbcmd, SMBHSTCNT(priv)); - - if (i == 1) - outb_p(inb(SMBHSTCNT(priv)) | SMBHSTCNT_START, - SMBHSTCNT(priv)); + if (len == 1 && read_write == I2C_SMBUS_READ) + smbcmd |= SMBHSTCNT_LAST_BYTE; + outb_p(smbcmd | SMBHSTCNT_START, SMBHSTCNT(priv)); + for (i = 1; i <= len; i++) { status = i801_wait_byte_done(priv); if (status) return status; @@ -710,9 +708,12 @@ data->block[0] = len; } - /* Retrieve/store value in SMBBLKDAT */ - if (read_write == I2C_SMBUS_READ) + if (read_write == I2C_SMBUS_READ) { data->block[i] = inb_p(SMBBLKDAT(priv)); + if (i == len - 1) + outb_p(smbcmd | SMBHSTCNT_LAST_BYTE, SMBHSTCNT(priv)); + } + if (read_write == I2C_SMBUS_WRITE && i+1 <= len) outb_p(data->block[i+1], SMBBLKDAT(priv)); @@ -1044,6 +1045,7 @@ { PCI_DEVICE_DATA(INTEL, METEOR_LAKE_P_SMBUS, FEATURES_ICH5 | FEATURE_TCO_CNL) }, { PCI_DEVICE_DATA(INTEL, METEOR_LAKE_SOC_S_SMBUS, FEATURES_ICH5 | FEATURE_TCO_CNL) }, { PCI_DEVICE_DATA(INTEL, METEOR_LAKE_PCH_S_SMBUS, FEATURES_ICH5 | FEATURE_TCO_CNL) }, + { PCI_DEVICE_DATA(INTEL, BIRCH_STREAM_SMBUS, FEATURES_ICH5 | FEATURE_TCO_CNL) }, { 0, } }; diff -u linux-riscv-6.5.0/drivers/i2c/muxes/i2c-demux-pinctrl.c linux-riscv-6.5.0/drivers/i2c/muxes/i2c-demux-pinctrl.c --- linux-riscv-6.5.0/drivers/i2c/muxes/i2c-demux-pinctrl.c +++ linux-riscv-6.5.0/drivers/i2c/muxes/i2c-demux-pinctrl.c @@ -61,7 +61,7 @@ if (ret) goto err; - adap = of_find_i2c_adapter_by_node(priv->chan[new_chan].parent_np); + adap = of_get_i2c_adapter_by_node(priv->chan[new_chan].parent_np); if (!adap) { ret = -ENODEV; goto err_with_revert; diff -u linux-riscv-6.5.0/drivers/i3c/master/svc-i3c-master.c linux-riscv-6.5.0/drivers/i3c/master/svc-i3c-master.c --- linux-riscv-6.5.0/drivers/i3c/master/svc-i3c-master.c +++ linux-riscv-6.5.0/drivers/i3c/master/svc-i3c-master.c @@ -93,6 +93,7 @@ #define SVC_I3C_MINTMASKED 0x098 #define SVC_I3C_MERRWARN 0x09C #define SVC_I3C_MERRWARN_NACK BIT(2) +#define SVC_I3C_MERRWARN_TIMEOUT BIT(20) #define SVC_I3C_MDMACTRL 0x0A0 #define SVC_I3C_MDATACTRL 0x0AC #define SVC_I3C_MDATACTRL_FLUSHTB BIT(0) @@ -175,6 +176,7 @@ * @ibi.slots: Available IBI slots * @ibi.tbq_slot: To be queued IBI slot * @ibi.lock: IBI lock + * @lock: Transfer lock, protect between IBI work thread and callbacks from master */ struct svc_i3c_master { struct i3c_master_controller base; @@ -203,6 +205,7 @@ /* Prevent races within IBI handlers */ spinlock_t lock; } ibi; + struct mutex lock; }; /** @@ -225,6 +228,14 @@ if (SVC_I3C_MSTATUS_ERRWARN(mstatus)) { merrwarn = readl(master->regs + SVC_I3C_MERRWARN); writel(merrwarn, master->regs + SVC_I3C_MERRWARN); + + /* Ignore timeout error */ + if (merrwarn & SVC_I3C_MERRWARN_TIMEOUT) { + dev_dbg(master->dev, "Warning condition: MSTATUS 0x%08x, MERRWARN 0x%08x\n", + mstatus, merrwarn); + return false; + } + dev_err(master->dev, "Error condition: MSTATUS 0x%08x, MERRWARN 0x%08x\n", mstatus, merrwarn); @@ -331,6 +342,7 @@ struct i3c_ibi_slot *slot; unsigned int count; u32 mdatactrl; + int ret, val; u8 *buf; slot = i3c_generic_ibi_get_free_slot(data->ibi_pool); @@ -340,6 +352,13 @@ slot->len = 0; buf = slot->data; + ret = readl_relaxed_poll_timeout(master->regs + SVC_I3C_MSTATUS, val, + SVC_I3C_MSTATUS_COMPLETE(val), 0, 1000); + if (ret) { + dev_err(master->dev, "Timeout when polling for COMPLETE\n"); + return ret; + } + while (SVC_I3C_MSTATUS_RXPEND(readl(master->regs + SVC_I3C_MSTATUS)) && slot->len < SVC_I3C_FIFO_SIZE) { mdatactrl = readl(master->regs + SVC_I3C_MDATACTRL); @@ -384,6 +403,7 @@ u32 status, val; int ret; + mutex_lock(&master->lock); /* Acknowledge the incoming interrupt with the AUTOIBI mechanism */ writel(SVC_I3C_MCTRL_REQUEST_AUTO_IBI | SVC_I3C_MCTRL_IBIRESP_AUTO, @@ -394,6 +414,7 @@ SVC_I3C_MSTATUS_IBIWON(val), 0, 1000); if (ret) { dev_err(master->dev, "Timeout when polling for IBIWON\n"); + svc_i3c_master_emit_stop(master); goto reenable_ibis; } @@ -460,12 +481,13 @@ reenable_ibis: svc_i3c_master_enable_interrupts(master, SVC_I3C_MINT_SLVSTART); + mutex_unlock(&master->lock); } static irqreturn_t svc_i3c_master_irq_handler(int irq, void *dev_id) { struct svc_i3c_master *master = (struct svc_i3c_master *)dev_id; - u32 active = readl(master->regs + SVC_I3C_MINTMASKED); + u32 active = readl(master->regs + SVC_I3C_MSTATUS); if (!SVC_I3C_MSTATUS_SLVSTART(active)) return IRQ_NONE; @@ -1007,6 +1029,9 @@ u32 reg; int ret; + /* clean SVC_I3C_MINT_IBIWON w1c bits */ + writel(SVC_I3C_MINT_IBIWON, master->regs + SVC_I3C_MSTATUS); + writel(SVC_I3C_MCTRL_REQUEST_START_ADDR | xfer_type | SVC_I3C_MCTRL_IBIRESP_NACK | @@ -1025,6 +1050,23 @@ goto emit_stop; } + /* + * According to I3C spec ver 1.1.1, 5.1.2.2.3 Consequence of Controller Starting a Frame + * with I3C Target Address. + * + * The I3C Controller normally should start a Frame, the Address may be arbitrated, and so + * the Controller shall monitor to see whether an In-Band Interrupt request, a Controller + * Role Request (i.e., Secondary Controller requests to become the Active Controller), or + * a Hot-Join Request has been made. + * + * If missed IBIWON check, the wrong data will be return. When IBIWON happen, return failure + * and yield the above events handler. + */ + if (SVC_I3C_MSTATUS_IBIWON(reg)) { + ret = -ENXIO; + goto emit_stop; + } + if (rnw) ret = svc_i3c_master_read(master, in, xfer_len); else @@ -1204,9 +1246,11 @@ cmd->read_len = 0; cmd->continued = false; + mutex_lock(&master->lock); svc_i3c_master_enqueue_xfer(master, xfer); if (!wait_for_completion_timeout(&xfer->comp, msecs_to_jiffies(1000))) svc_i3c_master_dequeue_xfer(master, xfer); + mutex_unlock(&master->lock); ret = xfer->ret; kfree(buf); @@ -1250,9 +1294,11 @@ cmd->read_len = read_len; cmd->continued = false; + mutex_lock(&master->lock); svc_i3c_master_enqueue_xfer(master, xfer); if (!wait_for_completion_timeout(&xfer->comp, msecs_to_jiffies(1000))) svc_i3c_master_dequeue_xfer(master, xfer); + mutex_unlock(&master->lock); if (cmd->read_len != xfer_len) ccc->dests[0].payload.len = cmd->read_len; @@ -1309,9 +1355,11 @@ cmd->continued = (i + 1) < nxfers; } + mutex_lock(&master->lock); svc_i3c_master_enqueue_xfer(master, xfer); if (!wait_for_completion_timeout(&xfer->comp, msecs_to_jiffies(1000))) svc_i3c_master_dequeue_xfer(master, xfer); + mutex_unlock(&master->lock); ret = xfer->ret; svc_i3c_master_free_xfer(xfer); @@ -1347,9 +1395,11 @@ cmd->continued = (i + 1 < nxfers); } + mutex_lock(&master->lock); svc_i3c_master_enqueue_xfer(master, xfer); if (!wait_for_completion_timeout(&xfer->comp, msecs_to_jiffies(1000))) svc_i3c_master_dequeue_xfer(master, xfer); + mutex_unlock(&master->lock); ret = xfer->ret; svc_i3c_master_free_xfer(xfer); @@ -1540,6 +1590,8 @@ INIT_WORK(&master->hj_work, svc_i3c_master_hj_work); INIT_WORK(&master->ibi_work, svc_i3c_master_ibi_work); + mutex_init(&master->lock); + ret = devm_request_irq(dev, master->irq, svc_i3c_master_irq_handler, IRQF_NO_SUSPEND, "svc-i3c-irq", master); if (ret) diff -u linux-riscv-6.5.0/drivers/infiniband/hw/bnxt_re/main.c linux-riscv-6.5.0/drivers/infiniband/hw/bnxt_re/main.c --- linux-riscv-6.5.0/drivers/infiniband/hw/bnxt_re/main.c +++ linux-riscv-6.5.0/drivers/infiniband/hw/bnxt_re/main.c @@ -71,7 +71,7 @@ BNXT_RE_DESC "\n"; MODULE_AUTHOR("Eddie Wai "); -MODULE_DESCRIPTION(BNXT_RE_DESC " Driver"); +MODULE_DESCRIPTION(BNXT_RE_DESC); MODULE_LICENSE("Dual BSD/GPL"); /* globals */ diff -u linux-riscv-6.5.0/drivers/infiniband/hw/hns/hns_roce_hw_v2.c linux-riscv-6.5.0/drivers/infiniband/hw/hns/hns_roce_hw_v2.c --- linux-riscv-6.5.0/drivers/infiniband/hw/hns/hns_roce_hw_v2.c +++ linux-riscv-6.5.0/drivers/infiniband/hw/hns/hns_roce_hw_v2.c @@ -270,7 +270,7 @@ struct hns_roce_dev *hr_dev = to_hr_dev(qp->ibqp.device); int mtu = ib_mtu_enum_to_int(qp->path_mtu); - if (len > qp->max_inline_data || len > mtu) { + if (mtu < 0 || len > qp->max_inline_data || len > mtu) { ibdev_err(&hr_dev->ib_dev, "invalid length of data, data len = %u, max inline len = %u, path mtu = %d.\n", len, qp->max_inline_data, mtu); @@ -4740,6 +4740,9 @@ { struct hns_roce_dev *hr_dev = to_hr_dev(ibqp->device); + if (ibqp->qp_type == IB_QPT_UD) + hr_dev->caps.cong_type = CONG_TYPE_DCQCN; + /* different congestion types match different configurations */ switch (hr_dev->caps.cong_type) { case CONG_TYPE_DCQCN: @@ -4767,10 +4770,15 @@ cong_alg->wnd_mode_sel = WND_LIMIT; break; default: - ibdev_err(&hr_dev->ib_dev, - "error type(%u) for congestion selection.\n", - hr_dev->caps.cong_type); - return -EINVAL; + ibdev_warn(&hr_dev->ib_dev, + "invalid type(%u) for congestion selection.\n", + hr_dev->caps.cong_type); + hr_dev->caps.cong_type = CONG_TYPE_DCQCN; + cong_alg->alg_sel = CONG_DCQCN; + cong_alg->alg_sub_sel = UNSUPPORT_CONG_LEVEL; + cong_alg->dip_vld = DIP_INVALID; + cong_alg->wnd_mode_sel = WND_LIMIT; + break; } return 0; @@ -4836,22 +4844,32 @@ struct hns_roce_qp *hr_qp = to_hr_qp(ibqp); struct ib_device *ibdev = &hr_dev->ib_dev; const struct ib_gid_attr *gid_attr = NULL; + u8 sl = rdma_ah_get_sl(&attr->ah_attr); int is_roce_protocol; u16 vlan_id = 0xffff; bool is_udp = false; + u32 max_sl; u8 ib_port; u8 hr_port; int ret; + max_sl = min_t(u32, MAX_SERVICE_LEVEL, hr_dev->caps.sl_num - 1); + if (unlikely(sl > max_sl)) { + ibdev_err_ratelimited(ibdev, + "failed to fill QPC, sl (%u) shouldn't be larger than %u.\n", + sl, max_sl); + return -EINVAL; + } + /* * If free_mr_en of qp is set, it means that this qp comes from * free mr. This qp will perform the loopback operation. * In the loopback scenario, only sl needs to be set. */ if (hr_qp->free_mr_en) { - hr_reg_write(context, QPC_SL, rdma_ah_get_sl(&attr->ah_attr)); + hr_reg_write(context, QPC_SL, sl); hr_reg_clear(qpc_mask, QPC_SL); - hr_qp->sl = rdma_ah_get_sl(&attr->ah_attr); + hr_qp->sl = sl; return 0; } @@ -4918,14 +4936,7 @@ memcpy(context->dgid, grh->dgid.raw, sizeof(grh->dgid.raw)); memset(qpc_mask->dgid, 0, sizeof(grh->dgid.raw)); - hr_qp->sl = rdma_ah_get_sl(&attr->ah_attr); - if (unlikely(hr_qp->sl > MAX_SERVICE_LEVEL)) { - ibdev_err(ibdev, - "failed to fill QPC, sl (%u) shouldn't be larger than %d.\n", - hr_qp->sl, MAX_SERVICE_LEVEL); - return -EINVAL; - } - + hr_qp->sl = sl; hr_reg_write(context, QPC_SL, hr_qp->sl); hr_reg_clear(qpc_mask, QPC_SL); @@ -5819,7 +5830,7 @@ case HNS_ROCE_EVENT_TYPE_COMM_EST: break; case HNS_ROCE_EVENT_TYPE_SQ_DRAINED: - ibdev_warn(ibdev, "send queue drained.\n"); + ibdev_dbg(ibdev, "send queue drained.\n"); break; case HNS_ROCE_EVENT_TYPE_WQ_CATAS_ERROR: ibdev_err(ibdev, "local work queue 0x%x catast error, sub_event type is: %d\n", @@ -5834,10 +5845,10 @@ irq_work->queue_num, irq_work->sub_type); break; case HNS_ROCE_EVENT_TYPE_SRQ_LIMIT_REACH: - ibdev_warn(ibdev, "SRQ limit reach.\n"); + ibdev_dbg(ibdev, "SRQ limit reach.\n"); break; case HNS_ROCE_EVENT_TYPE_SRQ_LAST_WQE_REACH: - ibdev_warn(ibdev, "SRQ last wqe reach.\n"); + ibdev_dbg(ibdev, "SRQ last wqe reach.\n"); break; case HNS_ROCE_EVENT_TYPE_SRQ_CATAS_ERROR: ibdev_err(ibdev, "SRQ catas error.\n"); diff -u linux-riscv-6.5.0/drivers/infiniband/hw/hns/hns_roce_qp.c linux-riscv-6.5.0/drivers/infiniband/hw/hns/hns_roce_qp.c --- linux-riscv-6.5.0/drivers/infiniband/hw/hns/hns_roce_qp.c +++ linux-riscv-6.5.0/drivers/infiniband/hw/hns/hns_roce_qp.c @@ -1064,7 +1064,7 @@ { struct hns_roce_ib_create_qp_resp resp = {}; struct ib_device *ibdev = &hr_dev->ib_dev; - struct hns_roce_ib_create_qp ucmd; + struct hns_roce_ib_create_qp ucmd = {}; int ret; mutex_init(&hr_qp->mutex); diff -u linux-riscv-6.5.0/drivers/infiniband/hw/irdma/main.h linux-riscv-6.5.0/drivers/infiniband/hw/irdma/main.h --- linux-riscv-6.5.0/drivers/infiniband/hw/irdma/main.h +++ linux-riscv-6.5.0/drivers/infiniband/hw/irdma/main.h @@ -78,7 +78,7 @@ #define MAX_DPC_ITERATIONS 128 -#define IRDMA_EVENT_TIMEOUT 50000 +#define IRDMA_EVENT_TIMEOUT_MS 5000 #define IRDMA_VCHNL_EVENT_TIMEOUT 100000 #define IRDMA_RST_TIMEOUT_HZ 4 diff -u linux-riscv-6.5.0/drivers/infiniband/hw/irdma/verbs.c linux-riscv-6.5.0/drivers/infiniband/hw/irdma/verbs.c --- linux-riscv-6.5.0/drivers/infiniband/hw/irdma/verbs.c +++ linux-riscv-6.5.0/drivers/infiniband/hw/irdma/verbs.c @@ -1098,6 +1098,21 @@ return 0; } +static int irdma_wait_for_suspend(struct irdma_qp *iwqp) +{ + if (!wait_event_timeout(iwqp->iwdev->suspend_wq, + !iwqp->suspend_pending, + msecs_to_jiffies(IRDMA_EVENT_TIMEOUT_MS))) { + iwqp->suspend_pending = false; + ibdev_warn(&iwqp->iwdev->ibdev, + "modify_qp timed out waiting for suspend. qp_id = %d, last_ae = 0x%x\n", + iwqp->ibqp.qp_num, iwqp->last_aeq); + return -EBUSY; + } + + return 0; +} + /** * irdma_modify_qp_roce - modify qp request * @ibqp: qp's pointer for modify @@ -1355,17 +1370,11 @@ info.next_iwarp_state = IRDMA_QP_STATE_SQD; issue_modify_qp = 1; + iwqp->suspend_pending = true; break; case IB_QPS_SQE: case IB_QPS_ERR: case IB_QPS_RESET: - if (iwqp->iwarp_state == IRDMA_QP_STATE_RTS) { - spin_unlock_irqrestore(&iwqp->lock, flags); - info.next_iwarp_state = IRDMA_QP_STATE_SQD; - irdma_hw_modify_qp(iwdev, iwqp, &info, true); - spin_lock_irqsave(&iwqp->lock, flags); - } - if (iwqp->iwarp_state == IRDMA_QP_STATE_ERROR) { spin_unlock_irqrestore(&iwqp->lock, flags); if (udata && udata->inlen) { @@ -1402,6 +1411,11 @@ ctx_info->rem_endpoint_idx = udp_info->arp_idx; if (irdma_hw_modify_qp(iwdev, iwqp, &info, true)) return -EINVAL; + if (info.next_iwarp_state == IRDMA_QP_STATE_SQD) { + ret = irdma_wait_for_suspend(iwqp); + if (ret) + return ret; + } spin_lock_irqsave(&iwqp->lock, flags); if (iwqp->iwarp_state == info.curr_iwarp_state) { iwqp->iwarp_state = info.next_iwarp_state; @@ -2817,7 +2831,7 @@ iwmr->type = reg_type; pgsz_bitmap = (reg_type == IRDMA_MEMREG_TYPE_MEM) ? - iwdev->rf->sc_dev.hw_attrs.page_size_cap : PAGE_SIZE; + iwdev->rf->sc_dev.hw_attrs.page_size_cap : SZ_4K; iwmr->page_size = ib_umem_find_best_pgsz(region, pgsz_bitmap, virt); if (unlikely(!iwmr->page_size)) { @@ -2849,6 +2863,11 @@ int err; u8 lvl; + /* iWarp: Catch page not starting on OS page boundary */ + if (!rdma_protocol_roce(&iwdev->ibdev, 1) && + ib_umem_offset(iwmr->region)) + return -EINVAL; + total = req.sq_pages + req.rq_pages + 1; if (total > iwmr->page_cnt) return -EINVAL; diff -u linux-riscv-6.5.0/drivers/infiniband/hw/mlx5/main.c linux-riscv-6.5.0/drivers/infiniband/hw/mlx5/main.c --- linux-riscv-6.5.0/drivers/infiniband/hw/mlx5/main.c +++ linux-riscv-6.5.0/drivers/infiniband/hw/mlx5/main.c @@ -4052,10 +4052,8 @@ return ret; ret = mlx5_mkey_cache_init(dev); - if (ret) { + if (ret) mlx5_ib_warn(dev, "mr cache init failed %d\n", ret); - mlx5r_umr_resource_cleanup(dev); - } return ret; } diff -u linux-riscv-6.5.0/drivers/input/mouse/synaptics.c linux-riscv-6.5.0/drivers/input/mouse/synaptics.c --- linux-riscv-6.5.0/drivers/input/mouse/synaptics.c +++ linux-riscv-6.5.0/drivers/input/mouse/synaptics.c @@ -1753,6 +1753,7 @@ psmouse_matches_pnp_id(psmouse, topbuttonpad_pnp_ids) && !SYN_CAP_EXT_BUTTONS_STICK(info->ext_cap_10); const struct rmi_device_platform_data pdata = { + .reset_delay_ms = 30, .sensor_pdata = { .sensor_type = rmi_sensor_touchpad, .axis_align.flip_y = true, diff -u linux-riscv-6.5.0/drivers/iommu/intel/iommu.c linux-riscv-6.5.0/drivers/iommu/intel/iommu.c --- linux-riscv-6.5.0/drivers/iommu/intel/iommu.c +++ linux-riscv-6.5.0/drivers/iommu/intel/iommu.c @@ -2451,7 +2451,8 @@ return ret; } - iommu_enable_pci_caps(info); + if (sm_supported(info->iommu) || !domain_type_is_si(info->domain)) + iommu_enable_pci_caps(info); return 0; } @@ -3951,8 +3952,8 @@ */ static void domain_context_clear(struct device_domain_info *info) { - if (!info->iommu || !info->dev || !dev_is_pci(info->dev)) - return; + if (!dev_is_pci(info->dev)) + domain_context_clear_one(info, info->bus, info->devfn); pci_for_each_dma_alias(to_pci_dev(info->dev), &domain_context_clear_one_cb, info); @@ -4886,7 +4887,7 @@ ver = (dev->device >> 8) & 0xff; if (ver != 0x45 && ver != 0x46 && ver != 0x4c && ver != 0x4e && ver != 0x8a && ver != 0x98 && - ver != 0x9a && ver != 0xa7) + ver != 0x9a && ver != 0xa7 && ver != 0x7d) return; if (risky_device(dev)) diff -u linux-riscv-6.5.0/drivers/iommu/iommu.c linux-riscv-6.5.0/drivers/iommu/iommu.c --- linux-riscv-6.5.0/drivers/iommu/iommu.c +++ linux-riscv-6.5.0/drivers/iommu/iommu.c @@ -333,12 +333,13 @@ return min_t(u32, max_pasids, dev->iommu->iommu_dev->max_pasids); } +DEFINE_MUTEX(iommu_probe_device_lock); + static int __iommu_probe_device(struct device *dev, struct list_head *group_list) { const struct iommu_ops *ops = dev->bus->iommu_ops; struct iommu_device *iommu_dev; struct iommu_group *group; - static DEFINE_MUTEX(iommu_probe_device_lock); int ret; if (!ops) @@ -350,10 +351,9 @@ * probably be able to use device_lock() here to minimise the scope, * but for now enforcing a simple global ordering is fine. */ - mutex_lock(&iommu_probe_device_lock); + lockdep_assert_held(&iommu_probe_device_lock); if (!dev_iommu_get(dev)) { - ret = -ENOMEM; - goto err_unlock; + return -ENOMEM; } if (!try_module_get(ops->owner)) { @@ -384,7 +384,6 @@ mutex_unlock(&group->mutex); iommu_group_put(group); - mutex_unlock(&iommu_probe_device_lock); iommu_device_link(iommu_dev, dev); return 0; @@ -399,9 +398,6 @@ err_free: dev_iommu_free(dev); -err_unlock: - mutex_unlock(&iommu_probe_device_lock); - return ret; } @@ -411,7 +407,9 @@ struct iommu_group *group; int ret; + mutex_lock(&iommu_probe_device_lock); ret = __iommu_probe_device(dev, NULL); + mutex_unlock(&iommu_probe_device_lock); if (ret) goto err_out; @@ -1721,7 +1719,9 @@ return 0; } + mutex_lock(&iommu_probe_device_lock); ret = __iommu_probe_device(dev, group_list); + mutex_unlock(&iommu_probe_device_lock); if (ret == -ENODEV) ret = 0; diff -u linux-riscv-6.5.0/drivers/leds/leds-pwm.c linux-riscv-6.5.0/drivers/leds/leds-pwm.c --- linux-riscv-6.5.0/drivers/leds/leds-pwm.c +++ linux-riscv-6.5.0/drivers/leds/leds-pwm.c @@ -53,7 +53,7 @@ duty = led_dat->pwmstate.period - duty; led_dat->pwmstate.duty_cycle = duty; - led_dat->pwmstate.enabled = duty > 0; + led_dat->pwmstate.enabled = true; return pwm_apply_state(led_dat->pwm, &led_dat->pwmstate); } diff -u linux-riscv-6.5.0/drivers/mcb/mcb-core.c linux-riscv-6.5.0/drivers/mcb/mcb-core.c --- linux-riscv-6.5.0/drivers/mcb/mcb-core.c +++ linux-riscv-6.5.0/drivers/mcb/mcb-core.c @@ -246,6 +246,7 @@ return 0; out: + put_device(&dev->dev); return ret; } diff -u linux-riscv-6.5.0/drivers/mcb/mcb-parse.c linux-riscv-6.5.0/drivers/mcb/mcb-parse.c --- linux-riscv-6.5.0/drivers/mcb/mcb-parse.c +++ linux-riscv-6.5.0/drivers/mcb/mcb-parse.c @@ -106,7 +106,7 @@ return 0; err: - put_device(&mdev->dev); + mcb_free_dev(mdev); return ret; } diff -u linux-riscv-6.5.0/drivers/md/dm-crypt.c linux-riscv-6.5.0/drivers/md/dm-crypt.c --- linux-riscv-6.5.0/drivers/md/dm-crypt.c +++ linux-riscv-6.5.0/drivers/md/dm-crypt.c @@ -1680,7 +1680,7 @@ unsigned int nr_iovecs = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; gfp_t gfp_mask = GFP_NOWAIT | __GFP_HIGHMEM; unsigned int remaining_size; - unsigned int order = MAX_ORDER - 1; + unsigned int order = MAX_ORDER; retry: if (unlikely(gfp_mask & __GFP_DIRECT_RECLAIM)) @@ -1700,11 +1700,17 @@ order = min(order, remaining_order); while (order > 0) { + if (unlikely(percpu_counter_read_positive(&cc->n_allocated_pages) + + (1 << order) > dm_crypt_pages_per_client)) + goto decrease_order; pages = alloc_pages(gfp_mask | __GFP_NOMEMALLOC | __GFP_NORETRY | __GFP_NOWARN | __GFP_COMP, order); - if (likely(pages != NULL)) + if (likely(pages != NULL)) { + percpu_counter_add(&cc->n_allocated_pages, 1 << order); goto have_pages; + } +decrease_order: order--; } @@ -1742,10 +1748,13 @@ if (clone->bi_vcnt > 0) { /* bio_for_each_folio_all crashes with an empty bio */ bio_for_each_folio_all(fi, clone) { - if (folio_test_large(fi.folio)) + if (folio_test_large(fi.folio)) { + percpu_counter_sub(&cc->n_allocated_pages, + 1 << folio_order(fi.folio)); folio_put(fi.folio); - else + } else { mempool_free(&fi.folio->page, &cc->page_pool); + } } } } diff -u linux-riscv-6.5.0/drivers/md/md.c linux-riscv-6.5.0/drivers/md/md.c --- linux-riscv-6.5.0/drivers/md/md.c +++ linux-riscv-6.5.0/drivers/md/md.c @@ -449,7 +449,7 @@ set_bit(MD_ALLOW_SB_UPDATE, &mddev->flags); percpu_ref_kill(&mddev->active_io); - if (mddev->pers->prepare_suspend) + if (mddev->pers && mddev->pers->prepare_suspend) mddev->pers->prepare_suspend(mddev); wait_event(mddev->sb_wait, percpu_ref_is_zero(&mddev->active_io)); @@ -6275,6 +6275,9 @@ int err = 0; int did_freeze = 0; + if (mddev->external && test_bit(MD_SB_CHANGE_PENDING, &mddev->sb_flags)) + return -EBUSY; + if (!test_bit(MD_RECOVERY_FROZEN, &mddev->recovery)) { did_freeze = 1; set_bit(MD_RECOVERY_FROZEN, &mddev->recovery); @@ -6289,8 +6292,6 @@ */ md_wakeup_thread_directly(mddev->sync_thread); - if (mddev->external && test_bit(MD_SB_CHANGE_PENDING, &mddev->sb_flags)) - return -EBUSY; mddev_unlock(mddev); wait_event(resync_wait, !test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)); @@ -6303,29 +6304,30 @@ mddev->sync_thread || test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) { pr_warn("md: %s still in use.\n",mdname(mddev)); - if (did_freeze) { - clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); - set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); - md_wakeup_thread(mddev->thread); - } err = -EBUSY; goto out; } + if (mddev->pers) { __md_stop_writes(mddev); - err = -ENXIO; - if (mddev->ro == MD_RDONLY) + if (mddev->ro == MD_RDONLY) { + err = -ENXIO; goto out; + } + mddev->ro = MD_RDONLY; set_disk_ro(mddev->gendisk, 1); + } + +out: + if ((mddev->pers && !err) || did_freeze) { clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); md_wakeup_thread(mddev->thread); sysfs_notify_dirent_safe(mddev->sysfs_state); - err = 0; } -out: + mutex_unlock(&mddev->open_mutex); return err; } @@ -8635,7 +8637,8 @@ struct bio *orig_bio = md_io_acct->orig_bio; struct mddev *mddev = md_io_acct->mddev; - orig_bio->bi_status = bio->bi_status; + if (bio->bi_status && !orig_bio->bi_status) + orig_bio->bi_status = bio->bi_status; bio_end_io_acct(orig_bio, md_io_acct->start_time); bio_put(bio); diff -u linux-riscv-6.5.0/drivers/md/raid5.c linux-riscv-6.5.0/drivers/md/raid5.c --- linux-riscv-6.5.0/drivers/md/raid5.c +++ linux-riscv-6.5.0/drivers/md/raid5.c @@ -5905,11 +5905,11 @@ int dd_idx; for (dd_idx = 0; dd_idx < sh->disks; dd_idx++) { - if (dd_idx == sh->pd_idx) + if (dd_idx == sh->pd_idx || dd_idx == sh->qd_idx) continue; min_sector = min(min_sector, sh->dev[dd_idx].sector); - max_sector = min(max_sector, sh->dev[dd_idx].sector); + max_sector = max(max_sector, sh->dev[dd_idx].sector); } spin_lock_irq(&conf->device_lock); diff -u linux-riscv-6.5.0/drivers/media/i2c/ov5640.c linux-riscv-6.5.0/drivers/media/i2c/ov5640.c --- linux-riscv-6.5.0/drivers/media/i2c/ov5640.c +++ linux-riscv-6.5.0/drivers/media/i2c/ov5640.c @@ -2850,12 +2850,22 @@ return 0; } +static void __v4l2_ctrl_vblank_update(struct ov5640_dev *sensor, u32 vblank) +{ + const struct ov5640_mode_info *mode = sensor->current_mode; + + __v4l2_ctrl_modify_range(sensor->ctrls.vblank, OV5640_MIN_VBLANK, + OV5640_MAX_VTS - mode->height, 1, vblank); + + __v4l2_ctrl_s_ctrl(sensor->ctrls.vblank, vblank); +} + static int ov5640_update_pixel_rate(struct ov5640_dev *sensor) { const struct ov5640_mode_info *mode = sensor->current_mode; enum ov5640_pixel_rate_id pixel_rate_id = mode->pixel_rate; struct v4l2_mbus_framefmt *fmt = &sensor->fmt; - const struct ov5640_timings *timings; + const struct ov5640_timings *timings = ov5640_timings(sensor, mode); s32 exposure_val, exposure_max; unsigned int hblank; unsigned int i = 0; @@ -2874,6 +2884,8 @@ __v4l2_ctrl_s_ctrl_int64(sensor->ctrls.pixel_rate, ov5640_calc_pixel_rate(sensor)); + __v4l2_ctrl_vblank_update(sensor, timings->vblank_def); + return 0; } @@ -2916,15 +2928,12 @@ __v4l2_ctrl_s_ctrl_int64(sensor->ctrls.pixel_rate, pixel_rate); __v4l2_ctrl_s_ctrl(sensor->ctrls.link_freq, i); - timings = ov5640_timings(sensor, mode); hblank = timings->htot - mode->width; __v4l2_ctrl_modify_range(sensor->ctrls.hblank, hblank, hblank, 1, hblank); vblank = timings->vblank_def; - __v4l2_ctrl_modify_range(sensor->ctrls.vblank, OV5640_MIN_VBLANK, - OV5640_MAX_VTS - mode->height, 1, vblank); - __v4l2_ctrl_s_ctrl(sensor->ctrls.vblank, vblank); + __v4l2_ctrl_vblank_update(sensor, vblank); exposure_max = timings->crop.height + vblank - 4; exposure_val = clamp_t(s32, sensor->ctrls.exposure->val, @@ -3919,7 +3928,7 @@ ret = ov5640_sensor_resume(dev); if (ret) { dev_err(dev, "failed to power on\n"); - goto entity_cleanup; + goto free_ctrls; } pm_runtime_set_active(dev); @@ -3944,8 +3953,9 @@ err_pm_runtime: pm_runtime_put_noidle(dev); pm_runtime_disable(dev); - v4l2_ctrl_handler_free(&sensor->ctrls.handler); ov5640_sensor_suspend(dev); +free_ctrls: + v4l2_ctrl_handler_free(&sensor->ctrls.handler); entity_cleanup: media_entity_cleanup(&sensor->sd.entity); mutex_destroy(&sensor->lock); diff -u linux-riscv-6.5.0/drivers/media/pci/intel/ipu-bridge.h linux-riscv-6.5.0/drivers/media/pci/intel/ipu-bridge.h --- linux-riscv-6.5.0/drivers/media/pci/intel/ipu-bridge.h +++ linux-riscv-6.5.0/drivers/media/pci/intel/ipu-bridge.h @@ -103,7 +103,7 @@ struct ipu_node_names { char port[7]; char endpoint[11]; - char remote_port[7]; + char remote_port[9]; char vcm[16]; }; diff -u linux-riscv-6.5.0/drivers/media/platform/amphion/vpu_helpers.c linux-riscv-6.5.0/drivers/media/platform/amphion/vpu_helpers.c --- linux-riscv-6.5.0/drivers/media/platform/amphion/vpu_helpers.c +++ linux-riscv-6.5.0/drivers/media/platform/amphion/vpu_helpers.c @@ -489,6 +489,7 @@ case VPU_MSG_ID_UNSUPPORTED: return "unsupported"; case VPU_MSG_ID_FIRMWARE_XCPT: return "exception"; case VPU_MSG_ID_PIC_SKIPPED: return "skipped"; + case VPU_MSG_ID_DBG_MSG: return "debug msg"; } return ""; } diff -u linux-riscv-6.5.0/drivers/media/platform/amphion/vpu_msgs.c linux-riscv-6.5.0/drivers/media/platform/amphion/vpu_msgs.c --- linux-riscv-6.5.0/drivers/media/platform/amphion/vpu_msgs.c +++ linux-riscv-6.5.0/drivers/media/platform/amphion/vpu_msgs.c @@ -23,6 +23,7 @@ struct vpu_msg_handler { u32 id; void (*done)(struct vpu_inst *inst, struct vpu_rpc_event *pkt); + u32 is_str; }; static void vpu_session_handle_start_done(struct vpu_inst *inst, struct vpu_rpc_event *pkt) @@ -154,7 +155,7 @@ { char *str = (char *)pkt->data; - if (strlen(str)) + if (*str) dev_err(inst->dev, "instance %d firmware error : %s\n", inst->id, str); else dev_err(inst->dev, "instance %d is unsupported stream\n", inst->id); @@ -180,6 +181,21 @@ vpu_inst_unlock(inst); } +static void vpu_session_handle_dbg_msg(struct vpu_inst *inst, struct vpu_rpc_event *pkt) +{ + char *str = (char *)pkt->data; + + if (*str) + dev_info(inst->dev, "instance %d firmware dbg msg : %s\n", inst->id, str); +} + +static void vpu_terminate_string_msg(struct vpu_rpc_event *pkt) +{ + if (pkt->hdr.num == ARRAY_SIZE(pkt->data)) + pkt->hdr.num--; + pkt->data[pkt->hdr.num] = 0; +} + static struct vpu_msg_handler handlers[] = { {VPU_MSG_ID_START_DONE, vpu_session_handle_start_done}, {VPU_MSG_ID_STOP_DONE, vpu_session_handle_stop_done}, @@ -193,9 +209,10 @@ {VPU_MSG_ID_PIC_DECODED, vpu_session_handle_pic_decoded}, {VPU_MSG_ID_DEC_DONE, vpu_session_handle_pic_done}, {VPU_MSG_ID_PIC_EOS, vpu_session_handle_eos}, - {VPU_MSG_ID_UNSUPPORTED, vpu_session_handle_error}, - {VPU_MSG_ID_FIRMWARE_XCPT, vpu_session_handle_firmware_xcpt}, + {VPU_MSG_ID_UNSUPPORTED, vpu_session_handle_error, true}, + {VPU_MSG_ID_FIRMWARE_XCPT, vpu_session_handle_firmware_xcpt, true}, {VPU_MSG_ID_PIC_SKIPPED, vpu_session_handle_pic_skipped}, + {VPU_MSG_ID_DBG_MSG, vpu_session_handle_dbg_msg, true}, }; static int vpu_session_handle_msg(struct vpu_inst *inst, struct vpu_rpc_event *msg) @@ -219,8 +236,12 @@ } } - if (handler && handler->done) - handler->done(inst, msg); + if (handler) { + if (handler->is_str) + vpu_terminate_string_msg(msg); + if (handler->done) + handler->done(inst, msg); + } vpu_response_cmd(inst, msg_id, 1); diff -u linux-riscv-6.5.0/drivers/media/platform/cadence/cdns-csi2rx.c linux-riscv-6.5.0/drivers/media/platform/cadence/cdns-csi2rx.c --- linux-riscv-6.5.0/drivers/media/platform/cadence/cdns-csi2rx.c +++ linux-riscv-6.5.0/drivers/media/platform/cadence/cdns-csi2rx.c @@ -479,8 +479,10 @@ asd = v4l2_async_nf_add_fwnode_remote(&csi2rx->notifier, fwh, struct v4l2_async_subdev); of_node_put(ep); - if (IS_ERR(asd)) + if (IS_ERR(asd)) { + v4l2_async_nf_cleanup(&csi2rx->notifier); return PTR_ERR(asd); + } csi2rx->notifier.ops = &csi2rx_notifier_ops; @@ -543,6 +545,7 @@ return 0; err_cleanup: + v4l2_async_nf_unregister(&csi2rx->notifier); v4l2_async_nf_cleanup(&csi2rx->notifier); err_free_priv: kfree(csi2rx); @@ -553,6 +556,8 @@ { struct csi2rx_priv *csi2rx = platform_get_drvdata(pdev); + v4l2_async_nf_unregister(&csi2rx->notifier); + v4l2_async_nf_cleanup(&csi2rx->notifier); v4l2_async_unregister_subdev(&csi2rx->subdev); kfree(csi2rx); } diff -u linux-riscv-6.5.0/drivers/media/platform/qcom/venus/hfi_venus.c linux-riscv-6.5.0/drivers/media/platform/qcom/venus/hfi_venus.c --- linux-riscv-6.5.0/drivers/media/platform/qcom/venus/hfi_venus.c +++ linux-riscv-6.5.0/drivers/media/platform/qcom/venus/hfi_venus.c @@ -205,6 +205,11 @@ new_wr_idx = wr_idx + dwords; wr_ptr = (u32 *)(queue->qmem.kva + (wr_idx << 2)); + + if (wr_ptr < (u32 *)queue->qmem.kva || + wr_ptr > (u32 *)(queue->qmem.kva + queue->qmem.size - sizeof(*wr_ptr))) + return -EINVAL; + if (new_wr_idx < qsize) { memcpy(wr_ptr, packet, dwords << 2); } else { @@ -272,6 +277,11 @@ } rd_ptr = (u32 *)(queue->qmem.kva + (rd_idx << 2)); + + if (rd_ptr < (u32 *)queue->qmem.kva || + rd_ptr > (u32 *)(queue->qmem.kva + queue->qmem.size - sizeof(*rd_ptr))) + return -EINVAL; + dwords = *rd_ptr >> 2; if (!dwords) return -EINVAL; diff -u linux-riscv-6.5.0/drivers/media/usb/dvb-usb-v2/af9035.c linux-riscv-6.5.0/drivers/media/usb/dvb-usb-v2/af9035.c --- linux-riscv-6.5.0/drivers/media/usb/dvb-usb-v2/af9035.c +++ linux-riscv-6.5.0/drivers/media/usb/dvb-usb-v2/af9035.c @@ -322,8 +322,10 @@ ret = -EOPNOTSUPP; } else if ((msg[0].addr == state->af9033_i2c_addr[0]) || (msg[0].addr == state->af9033_i2c_addr[1])) { - if (msg[0].len < 3 || msg[1].len < 1) - return -EOPNOTSUPP; + if (msg[0].len < 3 || msg[1].len < 1) { + ret = -EOPNOTSUPP; + goto unlock; + } /* demod access via firmware interface */ u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 | msg[0].buf[2]; @@ -383,8 +385,10 @@ ret = -EOPNOTSUPP; } else if ((msg[0].addr == state->af9033_i2c_addr[0]) || (msg[0].addr == state->af9033_i2c_addr[1])) { - if (msg[0].len < 3) - return -EOPNOTSUPP; + if (msg[0].len < 3) { + ret = -EOPNOTSUPP; + goto unlock; + } /* demod access via firmware interface */ u32 reg = msg[0].buf[0] << 16 | msg[0].buf[1] << 8 | msg[0].buf[2]; @@ -459,6 +463,7 @@ ret = -EOPNOTSUPP; } +unlock: mutex_unlock(&d->i2c_mutex); if (ret < 0) diff -u linux-riscv-6.5.0/drivers/misc/fastrpc.c linux-riscv-6.5.0/drivers/misc/fastrpc.c --- linux-riscv-6.5.0/drivers/misc/fastrpc.c +++ linux-riscv-6.5.0/drivers/misc/fastrpc.c @@ -957,6 +957,7 @@ if (err) return err; + memset(ctx->buf->virt, 0, pkt_size); rpra = ctx->buf->virt; list = fastrpc_invoke_buf_start(rpra, ctx->nscalars); pages = fastrpc_phy_page_start(list, ctx->nscalars); @@ -1089,6 +1090,7 @@ } } + /* Clean up fdlist which is updated by DSP */ for (i = 0; i < FASTRPC_MAX_FDLIST; i++) { if (!fdlist[i]) break; @@ -1155,11 +1157,9 @@ if (IS_ERR(ctx)) return PTR_ERR(ctx); - if (ctx->nscalars) { - err = fastrpc_get_args(kernel, ctx); - if (err) - goto bail; - } + err = fastrpc_get_args(kernel, ctx); + if (err) + goto bail; /* make sure that all CPU memory writes are seen by DSP */ dma_wmb(); @@ -1178,20 +1178,18 @@ if (err) goto bail; + /* make sure that all memory writes by DSP are seen by CPU */ + dma_rmb(); + /* populate all the output buffers with results */ + err = fastrpc_put_args(ctx, kernel); + if (err) + goto bail; + /* Check the response from remote dsp */ err = ctx->retval; if (err) goto bail; - if (ctx->nscalars) { - /* make sure that all memory writes by DSP are seen by CPU */ - dma_rmb(); - /* populate all the output buffers with results */ - err = fastrpc_put_args(ctx, kernel); - if (err) - goto bail; - } - bail: if (err != -ERESTARTSYS && err != -ETIMEDOUT) { /* We are done with this compute context */ @@ -1982,11 +1980,13 @@ sc = FASTRPC_SCALARS(FASTRPC_RMID_INIT_MEM_UNMAP, 1, 0); err = fastrpc_internal_invoke(fl, true, FASTRPC_INIT_HANDLE, sc, &args[0]); - fastrpc_map_put(map); - if (err) + if (err) { dev_err(dev, "unmmap\tpt fd = %d, 0x%09llx error\n", map->fd, map->raddr); + return err; + } + fastrpc_map_put(map); - return err; + return 0; } static int fastrpc_req_mem_unmap(struct fastrpc_user *fl, char __user *argp) diff -u linux-riscv-6.5.0/drivers/net/dsa/microchip/ksz_common.c linux-riscv-6.5.0/drivers/net/dsa/microchip/ksz_common.c --- linux-riscv-6.5.0/drivers/net/dsa/microchip/ksz_common.c +++ linux-riscv-6.5.0/drivers/net/dsa/microchip/ksz_common.c @@ -2626,10 +2626,18 @@ { struct ksz_tagger_data *tagger_data; - tagger_data = ksz_tagger_data(ds); - tagger_data->xmit_work_fn = ksz_port_deferred_xmit; - - return 0; + switch (proto) { + case DSA_TAG_PROTO_KSZ8795: + return 0; + case DSA_TAG_PROTO_KSZ9893: + case DSA_TAG_PROTO_KSZ9477: + case DSA_TAG_PROTO_LAN937X: + tagger_data = ksz_tagger_data(ds); + tagger_data->xmit_work_fn = ksz_port_deferred_xmit; + return 0; + default: + return -EPROTONOSUPPORT; + } } static int ksz_port_vlan_filtering(struct dsa_switch *ds, int port, diff -u linux-riscv-6.5.0/drivers/net/dsa/mv88e6xxx/chip.c linux-riscv-6.5.0/drivers/net/dsa/mv88e6xxx/chip.c --- linux-riscv-6.5.0/drivers/net/dsa/mv88e6xxx/chip.c +++ linux-riscv-6.5.0/drivers/net/dsa/mv88e6xxx/chip.c @@ -652,6 +652,18 @@ config->mac_capabilities = MAC_SYM_PAUSE | MAC_10 | MAC_100; } +static void mv88e6351_phylink_get_caps(struct mv88e6xxx_chip *chip, int port, + struct phylink_config *config) +{ + unsigned long *supported = config->supported_interfaces; + + /* Translate the default cmode */ + mv88e6xxx_translate_cmode(chip->ports[port].cmode, supported); + + config->mac_capabilities = MAC_SYM_PAUSE | MAC_10 | MAC_100 | + MAC_1000FD; +} + static int mv88e6352_get_port4_serdes_cmode(struct mv88e6xxx_chip *chip) { u16 reg, val; @@ -4578,7 +4590,7 @@ .vtu_loadpurge = mv88e6352_g1_vtu_loadpurge, .stu_getnext = mv88e6352_g1_stu_getnext, .stu_loadpurge = mv88e6352_g1_stu_loadpurge, - .phylink_get_caps = mv88e6185_phylink_get_caps, + .phylink_get_caps = mv88e6351_phylink_get_caps, }; static const struct mv88e6xxx_ops mv88e6172_ops = { @@ -4683,7 +4695,7 @@ .vtu_loadpurge = mv88e6352_g1_vtu_loadpurge, .stu_getnext = mv88e6352_g1_stu_getnext, .stu_loadpurge = mv88e6352_g1_stu_loadpurge, - .phylink_get_caps = mv88e6185_phylink_get_caps, + .phylink_get_caps = mv88e6351_phylink_get_caps, }; static const struct mv88e6xxx_ops mv88e6176_ops = { @@ -5363,7 +5375,7 @@ .vtu_loadpurge = mv88e6352_g1_vtu_loadpurge, .stu_getnext = mv88e6352_g1_stu_getnext, .stu_loadpurge = mv88e6352_g1_stu_loadpurge, - .phylink_get_caps = mv88e6185_phylink_get_caps, + .phylink_get_caps = mv88e6351_phylink_get_caps, }; static const struct mv88e6xxx_ops mv88e6351_ops = { @@ -5411,7 +5423,7 @@ .stu_loadpurge = mv88e6352_g1_stu_loadpurge, .avb_ops = &mv88e6352_avb_ops, .ptp_ops = &mv88e6352_ptp_ops, - .phylink_get_caps = mv88e6185_phylink_get_caps, + .phylink_get_caps = mv88e6351_phylink_get_caps, }; static const struct mv88e6xxx_ops mv88e6352_ops = { diff -u linux-riscv-6.5.0/drivers/net/ethernet/adi/adin1110.c linux-riscv-6.5.0/drivers/net/ethernet/adi/adin1110.c --- linux-riscv-6.5.0/drivers/net/ethernet/adi/adin1110.c +++ linux-riscv-6.5.0/drivers/net/ethernet/adi/adin1110.c @@ -294,7 +294,7 @@ { struct adin1110_priv *priv = port_priv->priv; u32 header_len = ADIN1110_RD_HEADER_LEN; - struct spi_transfer t; + struct spi_transfer t = {0}; u32 frame_size_no_fcs; struct sk_buff *rxb; u32 frame_size; diff -u linux-riscv-6.5.0/drivers/net/ethernet/amd/pds_core/dev.c linux-riscv-6.5.0/drivers/net/ethernet/amd/pds_core/dev.c --- linux-riscv-6.5.0/drivers/net/ethernet/amd/pds_core/dev.c +++ linux-riscv-6.5.0/drivers/net/ethernet/amd/pds_core/dev.c @@ -254,10 +254,14 @@ struct pds_core_drv_identity drv = {}; size_t sz; int err; + int n; drv.drv_type = cpu_to_le32(PDS_DRIVER_LINUX); - snprintf(drv.driver_ver_str, sizeof(drv.driver_ver_str), - "%s %s", PDS_CORE_DRV_NAME, utsname()->release); + /* Catching the return quiets a Wformat-truncation complaint */ + n = snprintf(drv.driver_ver_str, sizeof(drv.driver_ver_str), + "%s %s", PDS_CORE_DRV_NAME, utsname()->release); + if (n > sizeof(drv.driver_ver_str)) + dev_dbg(pdsc->dev, "release name truncated, don't care\n"); /* Next let's get some info about the device * We use the devcmd_lock at this level in order to diff -u linux-riscv-6.5.0/drivers/net/ethernet/amd/pds_core/devlink.c linux-riscv-6.5.0/drivers/net/ethernet/amd/pds_core/devlink.c --- linux-riscv-6.5.0/drivers/net/ethernet/amd/pds_core/devlink.c +++ linux-riscv-6.5.0/drivers/net/ethernet/amd/pds_core/devlink.c @@ -104,7 +104,7 @@ struct pds_core_fw_list_info fw_list; struct pdsc *pdsc = devlink_priv(dl); union pds_core_dev_comp comp; - char buf[16]; + char buf[32]; int listlen; int err; int i; diff -u linux-riscv-6.5.0/drivers/net/ethernet/engleder/tsnep_main.c linux-riscv-6.5.0/drivers/net/ethernet/engleder/tsnep_main.c --- linux-riscv-6.5.0/drivers/net/ethernet/engleder/tsnep_main.c +++ linux-riscv-6.5.0/drivers/net/ethernet/engleder/tsnep_main.c @@ -1778,14 +1778,14 @@ dev = queue->adapter; } else { if (queue->tx && queue->rx) - sprintf(queue->name, "%s-txrx-%d", name, - queue->rx->queue_index); + snprintf(queue->name, sizeof(queue->name), "%s-txrx-%d", + name, queue->rx->queue_index); else if (queue->tx) - sprintf(queue->name, "%s-tx-%d", name, - queue->tx->queue_index); + snprintf(queue->name, sizeof(queue->name), "%s-tx-%d", + name, queue->tx->queue_index); else - sprintf(queue->name, "%s-rx-%d", name, - queue->rx->queue_index); + snprintf(queue->name, sizeof(queue->name), "%s-rx-%d", + name, queue->rx->queue_index); handler = tsnep_irq_txrx; dev = queue; } diff -u linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c --- linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c +++ linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c @@ -500,11 +500,14 @@ } sprintf(result[j++], "%d", i); - sprintf(result[j++], "%s", dim_state_str[dim->state]); + sprintf(result[j++], "%s", dim->state < ARRAY_SIZE(dim_state_str) ? + dim_state_str[dim->state] : "unknown"); sprintf(result[j++], "%u", dim->profile_ix); - sprintf(result[j++], "%s", dim_cqe_mode_str[dim->mode]); + sprintf(result[j++], "%s", dim->mode < ARRAY_SIZE(dim_cqe_mode_str) ? + dim_cqe_mode_str[dim->mode] : "unknown"); sprintf(result[j++], "%s", - dim_tune_stat_str[dim->tune_state]); + dim->tune_state < ARRAY_SIZE(dim_tune_stat_str) ? + dim_tune_stat_str[dim->tune_state] : "unknown"); sprintf(result[j++], "%u", dim->steps_left); sprintf(result[j++], "%u", dim->steps_right); sprintf(result[j++], "%u", dim->tired); diff -u linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c --- linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +++ linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c @@ -5139,7 +5139,7 @@ struct hns3_nic_priv *priv = netdev_priv(netdev); char format_mac_addr[HNAE3_FORMAT_MAC_ADDR_LEN]; struct hnae3_handle *h = priv->ae_handle; - u8 mac_addr_temp[ETH_ALEN]; + u8 mac_addr_temp[ETH_ALEN] = {0}; int ret = 0; if (h->ae_algo->ops->get_mac_addr) diff -u linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c --- linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +++ linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c @@ -61,6 +61,7 @@ static void hclge_update_fec_stats(struct hclge_dev *hdev); static int hclge_mac_link_status_wait(struct hclge_dev *hdev, int link_ret, int wait_cnt); +static int hclge_update_port_info(struct hclge_dev *hdev); static struct hnae3_ae_algo ae_algo; @@ -3043,6 +3044,9 @@ if (state != hdev->hw.mac.link) { hdev->hw.mac.link = state; + if (state == HCLGE_LINK_STATUS_UP) + hclge_update_port_info(hdev); + client->ops->link_status_change(handle, state); hclge_config_mac_tnl_int(hdev, state); if (rclient && rclient->ops->link_status_change) @@ -10026,8 +10030,6 @@ struct hclge_vport_vlan_cfg *vlan, *tmp; struct hclge_dev *hdev = vport->back; - mutex_lock(&hdev->vport_lock); - list_for_each_entry_safe(vlan, tmp, &vport->vlan_list, node) { if (vlan->vlan_id == vlan_id) { if (is_write_tbl && vlan->hd_tbl_status) @@ -10042,8 +10044,6 @@ break; } } - - mutex_unlock(&hdev->vport_lock); } void hclge_rm_vport_all_vlan_table(struct hclge_vport *vport, bool is_del_list) @@ -10452,11 +10452,16 @@ * handle mailbox. Just record the vlan id, and remove it after * reset finished. */ + mutex_lock(&hdev->vport_lock); if ((test_bit(HCLGE_STATE_RST_HANDLING, &hdev->state) || test_bit(HCLGE_STATE_RST_FAIL, &hdev->state)) && is_kill) { set_bit(vlan_id, vport->vlan_del_fail_bmap); + mutex_unlock(&hdev->vport_lock); return -EBUSY; + } else if (!is_kill && test_bit(vlan_id, vport->vlan_del_fail_bmap)) { + clear_bit(vlan_id, vport->vlan_del_fail_bmap); } + mutex_unlock(&hdev->vport_lock); /* when port base vlan enabled, we use port base vlan as the vlan * filter entry. In this case, we don't update vlan filter table @@ -10471,17 +10476,22 @@ } if (!ret) { - if (!is_kill) + if (!is_kill) { hclge_add_vport_vlan_table(vport, vlan_id, writen_to_tbl); - else if (is_kill && vlan_id != 0) + } else if (is_kill && vlan_id != 0) { + mutex_lock(&hdev->vport_lock); hclge_rm_vport_vlan_table(vport, vlan_id, false); + mutex_unlock(&hdev->vport_lock); + } } else if (is_kill) { /* when remove hw vlan filter failed, record the vlan id, * and try to remove it from hw later, to be consistence * with stack */ + mutex_lock(&hdev->vport_lock); set_bit(vlan_id, vport->vlan_del_fail_bmap); + mutex_unlock(&hdev->vport_lock); } hclge_set_vport_vlan_fltr_change(vport); @@ -10521,6 +10531,7 @@ int i, ret, sync_cnt = 0; u16 vlan_id; + mutex_lock(&hdev->vport_lock); /* start from vport 1 for PF is always alive */ for (i = 0; i < hdev->num_alloc_vport; i++) { struct hclge_vport *vport = &hdev->vport[i]; @@ -10531,21 +10542,26 @@ ret = hclge_set_vlan_filter_hw(hdev, htons(ETH_P_8021Q), vport->vport_id, vlan_id, true); - if (ret && ret != -EINVAL) + if (ret && ret != -EINVAL) { + mutex_unlock(&hdev->vport_lock); return; + } clear_bit(vlan_id, vport->vlan_del_fail_bmap); hclge_rm_vport_vlan_table(vport, vlan_id, false); hclge_set_vport_vlan_fltr_change(vport); sync_cnt++; - if (sync_cnt >= HCLGE_MAX_SYNC_COUNT) + if (sync_cnt >= HCLGE_MAX_SYNC_COUNT) { + mutex_unlock(&hdev->vport_lock); return; + } vlan_id = find_first_bit(vport->vlan_del_fail_bmap, VLAN_N_VID); } } + mutex_unlock(&hdev->vport_lock); hclge_sync_vlan_fltr_state(hdev); } @@ -11652,6 +11668,7 @@ goto err_msi_irq_uninit; if (hdev->hw.mac.media_type == HNAE3_MEDIA_TYPE_COPPER) { + clear_bit(HNAE3_DEV_SUPPORT_FEC_B, ae_dev->caps); if (hnae3_dev_phy_imp_supported(hdev)) ret = hclge_update_tp_port_info(hdev); else diff -u linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c --- linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c +++ linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c @@ -1206,6 +1206,8 @@ test_bit(HCLGEVF_STATE_RST_FAIL, &hdev->state)) && is_kill) { set_bit(vlan_id, hdev->vlan_del_fail_bmap); return -EBUSY; + } else if (!is_kill && test_bit(vlan_id, hdev->vlan_del_fail_bmap)) { + clear_bit(vlan_id, hdev->vlan_del_fail_bmap); } hclgevf_build_send_msg(&send_msg, HCLGE_MBX_SET_VLAN, @@ -1233,20 +1235,25 @@ int ret, sync_cnt = 0; u16 vlan_id; + if (bitmap_empty(hdev->vlan_del_fail_bmap, VLAN_N_VID)) + return; + + rtnl_lock(); vlan_id = find_first_bit(hdev->vlan_del_fail_bmap, VLAN_N_VID); while (vlan_id != VLAN_N_VID) { ret = hclgevf_set_vlan_filter(handle, htons(ETH_P_8021Q), vlan_id, true); if (ret) - return; + break; clear_bit(vlan_id, hdev->vlan_del_fail_bmap); sync_cnt++; if (sync_cnt >= HCLGEVF_MAX_SYNC_COUNT) - return; + break; vlan_id = find_first_bit(hdev->vlan_del_fail_bmap, VLAN_N_VID); } + rtnl_unlock(); } static int hclgevf_en_hw_strip_rxvtag(struct hnae3_handle *handle, bool enable) @@ -1974,8 +1981,18 @@ return HCLGEVF_VECTOR0_EVENT_OTHER; } +static void hclgevf_reset_timer(struct timer_list *t) +{ + struct hclgevf_dev *hdev = from_timer(hdev, t, reset_timer); + + hclgevf_clear_event_cause(hdev, HCLGEVF_VECTOR0_EVENT_RST); + hclgevf_reset_task_schedule(hdev); +} + static irqreturn_t hclgevf_misc_irq_handle(int irq, void *data) { +#define HCLGEVF_RESET_DELAY 5 + enum hclgevf_evt_cause event_cause; struct hclgevf_dev *hdev = data; u32 clearval; @@ -1987,7 +2004,8 @@ switch (event_cause) { case HCLGEVF_VECTOR0_EVENT_RST: - hclgevf_reset_task_schedule(hdev); + mod_timer(&hdev->reset_timer, + jiffies + msecs_to_jiffies(HCLGEVF_RESET_DELAY)); break; case HCLGEVF_VECTOR0_EVENT_MBX: hclgevf_mbx_handler(hdev); @@ -2930,6 +2948,7 @@ HCLGEVF_DRIVER_NAME); hclgevf_task_schedule(hdev, round_jiffies_relative(HZ)); + timer_setup(&hdev->reset_timer, hclgevf_reset_timer, 0); return 0; diff -u linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h --- linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h +++ linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h @@ -219,6 +219,7 @@ enum hnae3_reset_type reset_level; unsigned long reset_pending; enum hnae3_reset_type reset_type; + struct timer_list reset_timer; #define HCLGEVF_RESET_REQUESTED 0 #define HCLGEVF_RESET_PENDING 1 diff -u linux-riscv-6.5.0/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c linux-riscv-6.5.0/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c --- linux-riscv-6.5.0/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c @@ -3841,7 +3841,7 @@ struct i40e_pf *pf = vf->pf; struct i40e_vsi *vsi = NULL; int aq_ret = 0; - int i, ret; + int i; if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE)) { aq_ret = I40E_ERR_PARAM; @@ -3865,8 +3865,10 @@ } cfilter = kzalloc(sizeof(*cfilter), GFP_KERNEL); - if (!cfilter) - return -ENOMEM; + if (!cfilter) { + aq_ret = -ENOMEM; + goto err_out; + } /* parse destination mac address */ for (i = 0; i < ETH_ALEN; i++) @@ -3914,13 +3916,13 @@ /* Adding cloud filter programmed as TC filter */ if (tcf.dst_port) - ret = i40e_add_del_cloud_filter_big_buf(vsi, cfilter, true); + aq_ret = i40e_add_del_cloud_filter_big_buf(vsi, cfilter, true); else - ret = i40e_add_del_cloud_filter(vsi, cfilter, true); - if (ret) { + aq_ret = i40e_add_del_cloud_filter(vsi, cfilter, true); + if (aq_ret) { dev_err(&pf->pdev->dev, "VF %d: Failed to add cloud filter, err %pe aq_err %s\n", - vf->vf_id, ERR_PTR(ret), + vf->vf_id, ERR_PTR(aq_ret), i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status)); goto err_free; } diff -u linux-riscv-6.5.0/drivers/net/ethernet/intel/iavf/iavf.h linux-riscv-6.5.0/drivers/net/ethernet/intel/iavf/iavf.h --- linux-riscv-6.5.0/drivers/net/ethernet/intel/iavf/iavf.h +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/iavf/iavf.h @@ -298,8 +298,6 @@ #define IAVF_FLAG_CLIENT_NEEDS_OPEN BIT(10) #define IAVF_FLAG_CLIENT_NEEDS_CLOSE BIT(11) #define IAVF_FLAG_CLIENT_NEEDS_L2_PARAMS BIT(12) -#define IAVF_FLAG_PROMISC_ON BIT(13) -#define IAVF_FLAG_ALLMULTI_ON BIT(14) #define IAVF_FLAG_LEGACY_RX BIT(15) #define IAVF_FLAG_REINIT_ITR_NEEDED BIT(16) #define IAVF_FLAG_QUEUES_DISABLED BIT(17) @@ -325,10 +323,7 @@ #define IAVF_FLAG_AQ_SET_HENA BIT_ULL(12) #define IAVF_FLAG_AQ_SET_RSS_KEY BIT_ULL(13) #define IAVF_FLAG_AQ_SET_RSS_LUT BIT_ULL(14) -#define IAVF_FLAG_AQ_REQUEST_PROMISC BIT_ULL(15) -#define IAVF_FLAG_AQ_RELEASE_PROMISC BIT_ULL(16) -#define IAVF_FLAG_AQ_REQUEST_ALLMULTI BIT_ULL(17) -#define IAVF_FLAG_AQ_RELEASE_ALLMULTI BIT_ULL(18) +#define IAVF_FLAG_AQ_CONFIGURE_PROMISC_MODE BIT_ULL(15) #define IAVF_FLAG_AQ_ENABLE_VLAN_STRIPPING BIT_ULL(19) #define IAVF_FLAG_AQ_DISABLE_VLAN_STRIPPING BIT_ULL(20) #define IAVF_FLAG_AQ_ENABLE_CHANNELS BIT_ULL(21) @@ -365,6 +360,12 @@ (IAVF_EXTENDED_CAP_SEND_VLAN_V2 | \ IAVF_EXTENDED_CAP_RECV_VLAN_V2) + /* Lock to prevent possible clobbering of + * current_netdev_promisc_flags + */ + spinlock_t current_netdev_promisc_flags_lock; + netdev_features_t current_netdev_promisc_flags; + /* OS defined structs */ struct net_device *netdev; struct pci_dev *pdev; @@ -551,7 +552,8 @@ void iavf_del_ether_addrs(struct iavf_adapter *adapter); void iavf_add_vlans(struct iavf_adapter *adapter); void iavf_del_vlans(struct iavf_adapter *adapter); -void iavf_set_promiscuous(struct iavf_adapter *adapter, int flags); +void iavf_set_promiscuous(struct iavf_adapter *adapter); +bool iavf_promiscuous_mode_changed(struct iavf_adapter *adapter); void iavf_request_stats(struct iavf_adapter *adapter); int iavf_request_reset(struct iavf_adapter *adapter); void iavf_get_hena(struct iavf_adapter *adapter); diff -u linux-riscv-6.5.0/drivers/net/ethernet/intel/iavf/iavf_ethtool.c linux-riscv-6.5.0/drivers/net/ethernet/intel/iavf/iavf_ethtool.c --- linux-riscv-6.5.0/drivers/net/ethernet/intel/iavf/iavf_ethtool.c +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/iavf/iavf_ethtool.c @@ -829,18 +829,10 @@ struct iavf_adapter *adapter = netdev_priv(netdev); int i; - if (ec->rx_coalesce_usecs == 0) { - if (ec->use_adaptive_rx_coalesce) - netif_info(adapter, drv, netdev, "rx-usecs=0, need to disable adaptive-rx for a complete disable\n"); - } else if ((ec->rx_coalesce_usecs < IAVF_MIN_ITR) || - (ec->rx_coalesce_usecs > IAVF_MAX_ITR)) { + if (ec->rx_coalesce_usecs > IAVF_MAX_ITR) { netif_info(adapter, drv, netdev, "Invalid value, rx-usecs range is 0-8160\n"); return -EINVAL; - } else if (ec->tx_coalesce_usecs == 0) { - if (ec->use_adaptive_tx_coalesce) - netif_info(adapter, drv, netdev, "tx-usecs=0, need to disable adaptive-tx for a complete disable\n"); - } else if ((ec->tx_coalesce_usecs < IAVF_MIN_ITR) || - (ec->tx_coalesce_usecs > IAVF_MAX_ITR)) { + } else if (ec->tx_coalesce_usecs > IAVF_MAX_ITR) { netif_info(adapter, drv, netdev, "Invalid value, tx-usecs range is 0-8160\n"); return -EINVAL; } diff -u linux-riscv-6.5.0/drivers/net/ethernet/intel/iavf/iavf_main.c linux-riscv-6.5.0/drivers/net/ethernet/intel/iavf/iavf_main.c --- linux-riscv-6.5.0/drivers/net/ethernet/intel/iavf/iavf_main.c +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/iavf/iavf_main.c @@ -1187,6 +1187,16 @@ } /** + * iavf_promiscuous_mode_changed - check if promiscuous mode bits changed + * @adapter: device specific adapter + */ +bool iavf_promiscuous_mode_changed(struct iavf_adapter *adapter) +{ + return (adapter->current_netdev_promisc_flags ^ adapter->netdev->flags) & + (IFF_PROMISC | IFF_ALLMULTI); +} + +/** * iavf_set_rx_mode - NDO callback to set the netdev filters * @netdev: network interface device structure **/ @@ -1199,19 +1209,10 @@ __dev_mc_sync(netdev, iavf_addr_sync, iavf_addr_unsync); spin_unlock_bh(&adapter->mac_vlan_list_lock); - if (netdev->flags & IFF_PROMISC && - !(adapter->flags & IAVF_FLAG_PROMISC_ON)) - adapter->aq_required |= IAVF_FLAG_AQ_REQUEST_PROMISC; - else if (!(netdev->flags & IFF_PROMISC) && - adapter->flags & IAVF_FLAG_PROMISC_ON) - adapter->aq_required |= IAVF_FLAG_AQ_RELEASE_PROMISC; - - if (netdev->flags & IFF_ALLMULTI && - !(adapter->flags & IAVF_FLAG_ALLMULTI_ON)) - adapter->aq_required |= IAVF_FLAG_AQ_REQUEST_ALLMULTI; - else if (!(netdev->flags & IFF_ALLMULTI) && - adapter->flags & IAVF_FLAG_ALLMULTI_ON) - adapter->aq_required |= IAVF_FLAG_AQ_RELEASE_ALLMULTI; + spin_lock_bh(&adapter->current_netdev_promisc_flags_lock); + if (iavf_promiscuous_mode_changed(adapter)) + adapter->aq_required |= IAVF_FLAG_AQ_CONFIGURE_PROMISC_MODE; + spin_unlock_bh(&adapter->current_netdev_promisc_flags_lock); } /** @@ -1437,9 +1438,9 @@ adapter->aq_required |= IAVF_FLAG_AQ_DEL_FDIR_FILTER; if (!list_empty(&adapter->adv_rss_list_head)) adapter->aq_required |= IAVF_FLAG_AQ_DEL_ADV_RSS_CFG; - adapter->aq_required |= IAVF_FLAG_AQ_DISABLE_QUEUES; } + adapter->aq_required |= IAVF_FLAG_AQ_DISABLE_QUEUES; mod_delayed_work(adapter->wq, &adapter->watchdog_task, 0); } @@ -2162,19 +2163,8 @@ return 0; } - if (adapter->aq_required & IAVF_FLAG_AQ_REQUEST_PROMISC) { - iavf_set_promiscuous(adapter, FLAG_VF_UNICAST_PROMISC | - FLAG_VF_MULTICAST_PROMISC); - return 0; - } - - if (adapter->aq_required & IAVF_FLAG_AQ_REQUEST_ALLMULTI) { - iavf_set_promiscuous(adapter, FLAG_VF_MULTICAST_PROMISC); - return 0; - } - if ((adapter->aq_required & IAVF_FLAG_AQ_RELEASE_PROMISC) || - (adapter->aq_required & IAVF_FLAG_AQ_RELEASE_ALLMULTI)) { - iavf_set_promiscuous(adapter, 0); + if (adapter->aq_required & IAVF_FLAG_AQ_CONFIGURE_PROMISC_MODE) { + iavf_set_promiscuous(adapter); return 0; } @@ -4970,6 +4960,7 @@ spin_lock_init(&adapter->cloud_filter_list_lock); spin_lock_init(&adapter->fdir_fltr_lock); spin_lock_init(&adapter->adv_rss_lock); + spin_lock_init(&adapter->current_netdev_promisc_flags_lock); INIT_LIST_HEAD(&adapter->mac_filter_list); INIT_LIST_HEAD(&adapter->vlan_filter_list); @@ -4982,8 +4973,6 @@ INIT_WORK(&adapter->finish_config, iavf_finish_config); INIT_DELAYED_WORK(&adapter->watchdog_task, iavf_watchdog_task); INIT_DELAYED_WORK(&adapter->client_task, iavf_client_task); - queue_delayed_work(adapter->wq, &adapter->watchdog_task, - msecs_to_jiffies(5 * (pdev->devfn & 0x07))); /* Setup the wait queue for indicating transition to down status */ init_waitqueue_head(&adapter->down_waitqueue); @@ -4994,6 +4983,9 @@ /* Setup the wait queue for indicating virtchannel events */ init_waitqueue_head(&adapter->vc_waitqueue); + queue_delayed_work(adapter->wq, &adapter->watchdog_task, + msecs_to_jiffies(5 * (pdev->devfn & 0x07))); + /* Initialization goes on in the work. Do not add more of it below. */ return 0; err_ioremap: diff -u linux-riscv-6.5.0/drivers/net/ethernet/intel/ice/ice_main.c linux-riscv-6.5.0/drivers/net/ethernet/intel/ice/ice_main.c --- linux-riscv-6.5.0/drivers/net/ethernet/intel/ice/ice_main.c +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/ice/ice_main.c @@ -6,6 +6,7 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #include +#include #include "ice.h" #include "ice_base.h" #include "ice_lib.h" @@ -64,6 +65,7 @@ } static struct workqueue_struct *ice_wq; +struct workqueue_struct *ice_lag_wq; static const struct net_device_ops ice_netdev_safe_mode_ops; static const struct net_device_ops ice_netdev_ops; @@ -3795,6 +3797,7 @@ static void ice_deinit_pf(struct ice_pf *pf) { ice_service_task_stop(pf); + mutex_destroy(&pf->lag_mutex); mutex_destroy(&pf->adev_mutex); mutex_destroy(&pf->sw_mutex); mutex_destroy(&pf->tc_mutex); @@ -3875,6 +3878,7 @@ mutex_init(&pf->sw_mutex); mutex_init(&pf->tc_mutex); mutex_init(&pf->adev_mutex); + mutex_init(&pf->lag_mutex); INIT_HLIST_HEAD(&pf->aq_wait_list); spin_lock_init(&pf->aq_wait_lock); @@ -4632,6 +4636,9 @@ static void ice_deinit_features(struct ice_pf *pf) { + if (ice_is_safe_mode(pf)) + return; + ice_deinit_lag(pf); if (test_bit(ICE_FLAG_DCB_CAPABLE, pf->flags)) ice_cfg_lldp_mib_change(&pf->hw, false); @@ -4963,6 +4970,20 @@ return -EINVAL; } + /* when under a kdump kernel initiate a reset before enabling the + * device in order to clear out any pending DMA transactions. These + * transactions can cause some systems to machine check when doing + * the pcim_enable_device() below. + */ + if (is_kdump_kernel()) { + pci_save_state(pdev); + pci_clear_master(pdev); + err = pcie_flr(pdev); + if (err) + return err; + pci_restore_state(pdev); + } + /* this driver uses devres, see * Documentation/driver-api/driver-model/devres.rst */ @@ -5571,7 +5592,7 @@ */ static int __init ice_module_init(void) { - int status; + int status = -ENOMEM; pr_info("%s\n", ice_driver_string); pr_info("%s\n", ice_copyright); @@ -5579,15 +5600,27 @@ ice_wq = alloc_workqueue("%s", 0, 0, KBUILD_MODNAME); if (!ice_wq) { pr_err("Failed to create workqueue\n"); - return -ENOMEM; + return status; + } + + ice_lag_wq = alloc_ordered_workqueue("ice_lag_wq", 0); + if (!ice_lag_wq) { + pr_err("Failed to create LAG workqueue\n"); + goto err_dest_wq; } status = pci_register_driver(&ice_driver); if (status) { pr_err("failed to register PCI driver, err %d\n", status); - destroy_workqueue(ice_wq); + goto err_dest_lag_wq; } + return 0; + +err_dest_lag_wq: + destroy_workqueue(ice_lag_wq); +err_dest_wq: + destroy_workqueue(ice_wq); return status; } module_init(ice_module_init); @@ -5602,6 +5635,7 @@ { pci_unregister_driver(&ice_driver); destroy_workqueue(ice_wq); + destroy_workqueue(ice_lag_wq); pr_info("module unloaded\n"); } module_exit(ice_module_exit); diff -u linux-riscv-6.5.0/drivers/net/ethernet/intel/igc/igc_ethtool.c linux-riscv-6.5.0/drivers/net/ethernet/intel/igc/igc_ethtool.c --- linux-riscv-6.5.0/drivers/net/ethernet/intel/igc/igc_ethtool.c +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/igc/igc_ethtool.c @@ -1817,7 +1817,7 @@ struct igc_adapter *adapter = netdev_priv(netdev); struct net_device *dev = adapter->netdev; struct igc_hw *hw = &adapter->hw; - u32 advertising; + u16 advertised = 0; /* When adapter in resetting mode, autoneg/speed/duplex * cannot be changed @@ -1842,18 +1842,33 @@ while (test_and_set_bit(__IGC_RESETTING, &adapter->state)) usleep_range(1000, 2000); - ethtool_convert_link_mode_to_legacy_u32(&advertising, - cmd->link_modes.advertising); - /* Converting to legacy u32 drops ETHTOOL_LINK_MODE_2500baseT_Full_BIT. - * We have to check this and convert it to ADVERTISE_2500_FULL - * (aka ETHTOOL_LINK_MODE_2500baseX_Full_BIT) explicitly. - */ - if (ethtool_link_ksettings_test_link_mode(cmd, advertising, 2500baseT_Full)) - advertising |= ADVERTISE_2500_FULL; + if (ethtool_link_ksettings_test_link_mode(cmd, advertising, + 2500baseT_Full)) + advertised |= ADVERTISE_2500_FULL; + + if (ethtool_link_ksettings_test_link_mode(cmd, advertising, + 1000baseT_Full)) + advertised |= ADVERTISE_1000_FULL; + + if (ethtool_link_ksettings_test_link_mode(cmd, advertising, + 100baseT_Full)) + advertised |= ADVERTISE_100_FULL; + + if (ethtool_link_ksettings_test_link_mode(cmd, advertising, + 100baseT_Half)) + advertised |= ADVERTISE_100_HALF; + + if (ethtool_link_ksettings_test_link_mode(cmd, advertising, + 10baseT_Full)) + advertised |= ADVERTISE_10_FULL; + + if (ethtool_link_ksettings_test_link_mode(cmd, advertising, + 10baseT_Half)) + advertised |= ADVERTISE_10_HALF; if (cmd->base.autoneg == AUTONEG_ENABLE) { hw->mac.autoneg = 1; - hw->phy.autoneg_advertised = advertising; + hw->phy.autoneg_advertised = advertised; if (adapter->fc_autoneg) hw->fc.requested_mode = igc_fc_default; } else { diff -u linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeon_ep/octep_main.c linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeon_ep/octep_main.c --- linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeon_ep/octep_main.c +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeon_ep/octep_main.c @@ -715,20 +715,19 @@ hw_desc->dptr = tx_buffer->sglist_dma; } - /* Flush the hw descriptor before writing to doorbell */ - wmb(); - - /* Ring Doorbell to notify the NIC there is a new packet */ - writel(1, iq->doorbell_reg); + netdev_tx_sent_queue(iq->netdev_q, skb->len); + skb_tx_timestamp(skb); atomic_inc(&iq->instr_pending); wi++; if (wi == iq->max_count) wi = 0; iq->host_write_index = wi; + /* Flush the hw descriptor before writing to doorbell */ + wmb(); - netdev_tx_sent_queue(iq->netdev_q, skb->len); + /* Ring Doorbell to notify the NIC there is a new packet */ + writel(1, iq->doorbell_reg); iq->stats.instr_posted++; - skb_tx_timestamp(skb); return NETDEV_TX_OK; dma_map_sg_err: diff -u linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c --- linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c @@ -12,6 +12,7 @@ #include "rvu_reg.h" #include "rvu.h" #include "npc.h" +#include "mcs.h" #include "cgx.h" #include "lmac_common.h" #include "rvu_npc_hash.h" @@ -4389,6 +4390,12 @@ SDP_HW_MAX_FRS << 16 | NIC_HW_MIN_FRS); } + /* Get MCS external bypass status for CN10K-B */ + if (mcs_get_blkcnt() == 1) { + /* Adjust for 2 credits when external bypass is disabled */ + nix_hw->cc_mcs_cnt = is_mcs_bypass(0) ? 0 : 2; + } + /* Set credits for Tx links assuming max packet length allowed. * This will be reconfigured based on MTU set for PF/VF. */ @@ -4412,6 +4419,7 @@ tx_credits = (lmac_fifo_len - lmac_max_frs) / 16; /* Enable credits and set credit pkt count to max allowed */ cfg = (tx_credits << 12) | (0x1FF << 2) | BIT_ULL(1); + cfg |= FIELD_PREP(NIX_AF_LINKX_MCS_CNT_MASK, nix_hw->cc_mcs_cnt); link = iter + slink; nix_hw->tx_credits[link] = tx_credits; @@ -5505,6 +5513,8 @@ ipolicer = &nix_hw->ipolicer[layer]; for (idx = 0; idx < req->prof_count[layer]; idx++) { + if (idx == MAX_BANDPROF_PER_PFFUNC) + break; prof_idx = req->prof_idx[layer][idx]; if (prof_idx >= ipolicer->band_prof.max || ipolicer->pfvf_map[prof_idx] != pcifunc) @@ -5518,8 +5528,6 @@ ipolicer->pfvf_map[prof_idx] = 0x00; ipolicer->match_id[prof_idx] = 0; rvu_free_rsrc(&ipolicer->band_prof, prof_idx); - if (idx == MAX_BANDPROF_PER_PFFUNC) - break; } } mutex_unlock(&rvu->rsrc_lock); diff -u linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/cn10k.c linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/cn10k.c --- linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/cn10k.c +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/cn10k.c @@ -450,6 +450,9 @@ aq->prof.pebs_mantissa = 0; aq->prof_mask.pebs_mantissa = 0xFF; + aq->prof.hl_en = 0; + aq->prof_mask.hl_en = 1; + /* Fill AQ info */ aq->qidx = profile; aq->ctype = NIX_AQ_CTYPE_BANDPROF; diff -u linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c --- linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c @@ -816,7 +816,6 @@ int qidx, sqe_tail, sqe_head; struct otx2_snd_queue *sq; u64 incr, *ptr, val; - int timeout = 1000; ptr = (u64 *)otx2_get_regaddr(pfvf, NIX_LF_SQ_OP_STATUS); for (qidx = 0; qidx < otx2_get_total_tx_queues(pfvf); qidx++) { @@ -825,15 +824,11 @@ continue; incr = (u64)qidx << 32; - while (timeout) { - val = otx2_atomic64_add(incr, ptr); - sqe_head = (val >> 20) & 0x3F; - sqe_tail = (val >> 28) & 0x3F; - if (sqe_head == sqe_tail) - break; - usleep_range(1, 3); - timeout--; - } + val = otx2_atomic64_add(incr, ptr); + sqe_head = (val >> 20) & 0x3F; + sqe_tail = (val >> 28) & 0x3F; + if (sqe_head != sqe_tail) + usleep_range(50, 60); } } diff -u linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h --- linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h @@ -361,13 +361,8 @@ struct list_head flow_list; u32 dmacflt_max_flows; u16 max_flows; -}; - -struct otx2_tc_info { - /* hash table to store TC offloaded flows */ - struct rhashtable flow_table; - struct rhashtable_params flow_ht_params; - unsigned long *tc_entries_bitmap; + struct list_head flow_list_tc; + bool ntuple; }; struct dev_hw_ops { @@ -492,7 +487,6 @@ /* NPC MCAM */ struct otx2_flow_config *flow_cfg; struct otx2_mac_table *mac_table; - struct otx2_tc_info tc_info; u64 reset_count; struct work_struct reset_task; @@ -972,6 +966,7 @@ int otx2_txsch_alloc(struct otx2_nic *pfvf); void otx2_txschq_stop(struct otx2_nic *pfvf); void otx2_txschq_free_one(struct otx2_nic *pfvf, u16 lvl, u16 schq); +void otx2_free_pending_sqe(struct otx2_nic *pfvf); void otx2_sqb_flush(struct otx2_nic *pfvf); int otx2_alloc_rbuf(struct otx2_nic *pfvf, struct otx2_pool *pool, dma_addr_t *dma); @@ -1064,7 +1059,8 @@ void otx2_shutdown_tc(struct otx2_nic *nic); int otx2_setup_tc(struct net_device *netdev, enum tc_setup_type type, void *type_data); -int otx2_tc_alloc_ent_bitmap(struct otx2_nic *nic); +void otx2_tc_apply_ingress_police_rules(struct otx2_nic *nic); + /* CGX/RPM DMAC filters support */ int otx2_dmacflt_get_max_cnt(struct otx2_nic *pf); int otx2_dmacflt_add(struct otx2_nic *pf, const u8 *mac, u32 bit_pos); diff -u linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c --- linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c @@ -565,7 +565,9 @@ otx2_write64(pf, RVU_PF_VFPF_MBOX_INTX(1), intr); otx2_queue_work(mbox, pf->mbox_pfvf_wq, 64, vfs, intr, TYPE_PFVF); - vfs -= 64; + if (intr) + trace_otx2_msg_interrupt(mbox->mbox.pdev, "VF(s) to PF", intr); + vfs = 64; } intr = otx2_read64(pf, RVU_PF_VFPF_MBOX_INTX(0)); @@ -573,7 +575,8 @@ otx2_queue_work(mbox, pf->mbox_pfvf_wq, 0, vfs, intr, TYPE_PFVF); - trace_otx2_msg_interrupt(mbox->mbox.pdev, "VF(s) to PF", intr); + if (intr) + trace_otx2_msg_interrupt(mbox->mbox.pdev, "VF(s) to PF", intr); return IRQ_HANDLED; } @@ -1192,31 +1195,32 @@ }; static char *nix_snd_status_e_str[NIX_SND_STATUS_MAX] = { - "NIX_SND_STATUS_GOOD", - "NIX_SND_STATUS_SQ_CTX_FAULT", - "NIX_SND_STATUS_SQ_CTX_POISON", - "NIX_SND_STATUS_SQB_FAULT", - "NIX_SND_STATUS_SQB_POISON", - "NIX_SND_STATUS_HDR_ERR", - "NIX_SND_STATUS_EXT_ERR", - "NIX_SND_STATUS_JUMP_FAULT", - "NIX_SND_STATUS_JUMP_POISON", - "NIX_SND_STATUS_CRC_ERR", - "NIX_SND_STATUS_IMM_ERR", - "NIX_SND_STATUS_SG_ERR", - "NIX_SND_STATUS_MEM_ERR", - "NIX_SND_STATUS_INVALID_SUBDC", - "NIX_SND_STATUS_SUBDC_ORDER_ERR", - "NIX_SND_STATUS_DATA_FAULT", - "NIX_SND_STATUS_DATA_POISON", - "NIX_SND_STATUS_NPC_DROP_ACTION", - "NIX_SND_STATUS_LOCK_VIOL", - "NIX_SND_STATUS_NPC_UCAST_CHAN_ERR", - "NIX_SND_STATUS_NPC_MCAST_CHAN_ERR", - "NIX_SND_STATUS_NPC_MCAST_ABORT", - "NIX_SND_STATUS_NPC_VTAG_PTR_ERR", - "NIX_SND_STATUS_NPC_VTAG_SIZE_ERR", - "NIX_SND_STATUS_SEND_STATS_ERR", + [NIX_SND_STATUS_GOOD] = "NIX_SND_STATUS_GOOD", + [NIX_SND_STATUS_SQ_CTX_FAULT] = "NIX_SND_STATUS_SQ_CTX_FAULT", + [NIX_SND_STATUS_SQ_CTX_POISON] = "NIX_SND_STATUS_SQ_CTX_POISON", + [NIX_SND_STATUS_SQB_FAULT] = "NIX_SND_STATUS_SQB_FAULT", + [NIX_SND_STATUS_SQB_POISON] = "NIX_SND_STATUS_SQB_POISON", + [NIX_SND_STATUS_HDR_ERR] = "NIX_SND_STATUS_HDR_ERR", + [NIX_SND_STATUS_EXT_ERR] = "NIX_SND_STATUS_EXT_ERR", + [NIX_SND_STATUS_JUMP_FAULT] = "NIX_SND_STATUS_JUMP_FAULT", + [NIX_SND_STATUS_JUMP_POISON] = "NIX_SND_STATUS_JUMP_POISON", + [NIX_SND_STATUS_CRC_ERR] = "NIX_SND_STATUS_CRC_ERR", + [NIX_SND_STATUS_IMM_ERR] = "NIX_SND_STATUS_IMM_ERR", + [NIX_SND_STATUS_SG_ERR] = "NIX_SND_STATUS_SG_ERR", + [NIX_SND_STATUS_MEM_ERR] = "NIX_SND_STATUS_MEM_ERR", + [NIX_SND_STATUS_INVALID_SUBDC] = "NIX_SND_STATUS_INVALID_SUBDC", + [NIX_SND_STATUS_SUBDC_ORDER_ERR] = "NIX_SND_STATUS_SUBDC_ORDER_ERR", + [NIX_SND_STATUS_DATA_FAULT] = "NIX_SND_STATUS_DATA_FAULT", + [NIX_SND_STATUS_DATA_POISON] = "NIX_SND_STATUS_DATA_POISON", + [NIX_SND_STATUS_NPC_DROP_ACTION] = "NIX_SND_STATUS_NPC_DROP_ACTION", + [NIX_SND_STATUS_LOCK_VIOL] = "NIX_SND_STATUS_LOCK_VIOL", + [NIX_SND_STATUS_NPC_UCAST_CHAN_ERR] = "NIX_SND_STAT_NPC_UCAST_CHAN_ERR", + [NIX_SND_STATUS_NPC_MCAST_CHAN_ERR] = "NIX_SND_STAT_NPC_MCAST_CHAN_ERR", + [NIX_SND_STATUS_NPC_MCAST_ABORT] = "NIX_SND_STATUS_NPC_MCAST_ABORT", + [NIX_SND_STATUS_NPC_VTAG_PTR_ERR] = "NIX_SND_STATUS_NPC_VTAG_PTR_ERR", + [NIX_SND_STATUS_NPC_VTAG_SIZE_ERR] = "NIX_SND_STATUS_NPC_VTAG_SIZE_ERR", + [NIX_SND_STATUS_SEND_MEM_FAULT] = "NIX_SND_STATUS_SEND_MEM_FAULT", + [NIX_SND_STATUS_SEND_STATS_ERR] = "NIX_SND_STATUS_SEND_STATS_ERR", }; static irqreturn_t otx2_q_intr_handler(int irq, void *data) @@ -1237,14 +1241,16 @@ continue; if (val & BIT_ULL(42)) { - netdev_err(pf->netdev, "CQ%lld: error reading NIX_LF_CQ_OP_INT, NIX_LF_ERR_INT 0x%llx\n", + netdev_err(pf->netdev, + "CQ%lld: error reading NIX_LF_CQ_OP_INT, NIX_LF_ERR_INT 0x%llx\n", qidx, otx2_read64(pf, NIX_LF_ERR_INT)); } else { if (val & BIT_ULL(NIX_CQERRINT_DOOR_ERR)) netdev_err(pf->netdev, "CQ%lld: Doorbell error", qidx); if (val & BIT_ULL(NIX_CQERRINT_CQE_FAULT)) - netdev_err(pf->netdev, "CQ%lld: Memory fault on CQE write to LLC/DRAM", + netdev_err(pf->netdev, + "CQ%lld: Memory fault on CQE write to LLC/DRAM", qidx); } @@ -1271,7 +1277,8 @@ (val & NIX_SQINT_BITS)); if (val & BIT_ULL(42)) { - netdev_err(pf->netdev, "SQ%lld: error reading NIX_LF_SQ_OP_INT, NIX_LF_ERR_INT 0x%llx\n", + netdev_err(pf->netdev, + "SQ%lld: error reading NIX_LF_SQ_OP_INT, NIX_LF_ERR_INT 0x%llx\n", qidx, otx2_read64(pf, NIX_LF_ERR_INT)); goto done; } @@ -1281,8 +1288,11 @@ goto chk_mnq_err_dbg; sq_op_err_code = FIELD_GET(GENMASK(7, 0), sq_op_err_dbg); - netdev_err(pf->netdev, "SQ%lld: NIX_LF_SQ_OP_ERR_DBG(%llx) err=%s\n", - qidx, sq_op_err_dbg, nix_sqoperr_e_str[sq_op_err_code]); + netdev_err(pf->netdev, + "SQ%lld: NIX_LF_SQ_OP_ERR_DBG(0x%llx) err=%s(%#x)\n", + qidx, sq_op_err_dbg, + nix_sqoperr_e_str[sq_op_err_code], + sq_op_err_code); otx2_write64(pf, NIX_LF_SQ_OP_ERR_DBG, BIT_ULL(44)); @@ -1299,16 +1309,21 @@ goto chk_snd_err_dbg; mnq_err_code = FIELD_GET(GENMASK(7, 0), mnq_err_dbg); - netdev_err(pf->netdev, "SQ%lld: NIX_LF_MNQ_ERR_DBG(%llx) err=%s\n", - qidx, mnq_err_dbg, nix_mnqerr_e_str[mnq_err_code]); + netdev_err(pf->netdev, + "SQ%lld: NIX_LF_MNQ_ERR_DBG(0x%llx) err=%s(%#x)\n", + qidx, mnq_err_dbg, nix_mnqerr_e_str[mnq_err_code], + mnq_err_code); otx2_write64(pf, NIX_LF_MNQ_ERR_DBG, BIT_ULL(44)); chk_snd_err_dbg: snd_err_dbg = otx2_read64(pf, NIX_LF_SEND_ERR_DBG); if (snd_err_dbg & BIT(44)) { snd_err_code = FIELD_GET(GENMASK(7, 0), snd_err_dbg); - netdev_err(pf->netdev, "SQ%lld: NIX_LF_SND_ERR_DBG:0x%llx err=%s\n", - qidx, snd_err_dbg, nix_snd_status_e_str[snd_err_code]); + netdev_err(pf->netdev, + "SQ%lld: NIX_LF_SND_ERR_DBG:0x%llx err=%s(%#x)\n", + qidx, snd_err_dbg, + nix_snd_status_e_str[snd_err_code], + snd_err_code); otx2_write64(pf, NIX_LF_SEND_ERR_DBG, BIT_ULL(44)); } @@ -1588,6 +1603,7 @@ else otx2_cleanup_tx_cqes(pf, cq); } + otx2_free_pending_sqe(pf); otx2_free_sq_res(pf); @@ -1671,6 +1687,14 @@ mutex_unlock(&pf->mbox.lock); } +static void otx2_set_irq_coalesce(struct otx2_nic *pfvf) +{ + int cint; + + for (cint = 0; cint < pfvf->hw.cint_cnt; cint++) + otx2_config_irq_coalescing(pfvf, cint); +} + static void otx2_dim_work(struct work_struct *w) { struct dim_cq_moder cur_moder; @@ -1686,6 +1710,7 @@ CQ_TIMER_THRESH_MAX : cur_moder.usec; pfvf->hw.cq_ecount_wait = (cur_moder.pkts > NAPI_POLL_WEIGHT) ? NAPI_POLL_WEIGHT : cur_moder.pkts; + otx2_set_irq_coalesce(pfvf); dim->state = DIM_START_MEASURE; } @@ -1856,6 +1881,8 @@ if (pf->flags & OTX2_FLAG_DMACFLTR_SUPPORT) otx2_dmacflt_reinstall_flows(pf); + otx2_tc_apply_ingress_police_rules(pf); + err = otx2_rxtx_enable(pf, true); /* If a mbox communication error happens at this point then interface * will end up in a state such that it is in down state but hardware @@ -1920,6 +1947,8 @@ /* Clear RSS enable flag */ rss = &pf->hw.rss_info; rss->enable = false; + if (!netif_is_rxfh_configured(netdev)) + kfree(rss->rss_ctx[DEFAULT_RSS_CONTEXT_GROUP]); /* Cleanup Queue IRQ */ vec = pci_irq_vector(pf->pdev, diff -u linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c --- linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c @@ -512,11 +512,18 @@ { struct dim_sample dim_sample; u64 rx_frames, rx_bytes; + u64 tx_frames, tx_bytes; rx_frames = OTX2_GET_RX_STATS(RX_BCAST) + OTX2_GET_RX_STATS(RX_MCAST) + OTX2_GET_RX_STATS(RX_UCAST); rx_bytes = OTX2_GET_RX_STATS(RX_OCTS); - dim_update_sample(pfvf->napi_events, rx_frames, rx_bytes, &dim_sample); + tx_bytes = OTX2_GET_TX_STATS(TX_OCTS); + tx_frames = OTX2_GET_TX_STATS(TX_UCAST); + + dim_update_sample(pfvf->napi_events, + rx_frames + tx_frames, + rx_bytes + tx_bytes, + &dim_sample); net_dim(&cq_poll->dim, dim_sample); } @@ -558,16 +565,9 @@ if (pfvf->flags & OTX2_FLAG_INTF_DOWN) return workdone; - /* Check for adaptive interrupt coalesce */ - if (workdone != 0 && - ((pfvf->flags & OTX2_FLAG_ADPTV_INT_COAL_ENABLED) == - OTX2_FLAG_ADPTV_INT_COAL_ENABLED)) { - /* Adjust irq coalese using net_dim */ + /* Adjust irq coalese using net_dim */ + if (pfvf->flags & OTX2_FLAG_ADPTV_INT_COAL_ENABLED) otx2_adjust_adaptive_coalese(pfvf, cq_poll); - /* Update irq coalescing */ - for (i = 0; i < pfvf->hw.cint_cnt; i++) - otx2_config_irq_coalescing(pfvf, i); - } if (unlikely(!filled_cnt)) { struct refill_work *work; @@ -1247,9 +1247,11 @@ void otx2_cleanup_tx_cqes(struct otx2_nic *pfvf, struct otx2_cq_queue *cq) { + int tx_pkts = 0, tx_bytes = 0; struct sk_buff *skb = NULL; struct otx2_snd_queue *sq; struct nix_cqe_tx_s *cqe; + struct netdev_queue *txq; int processed_cqe = 0; struct sg_list *sg; int qidx; @@ -1270,12 +1272,20 @@ sg = &sq->sg[cqe->comp.sqe_id]; skb = (struct sk_buff *)sg->skb; if (skb) { + tx_bytes += skb->len; + tx_pkts++; otx2_dma_unmap_skb_frags(pfvf, sg); dev_kfree_skb_any(skb); sg->skb = (u64)NULL; } } + if (likely(tx_pkts)) { + if (qidx >= pfvf->hw.tx_queues) + qidx -= pfvf->hw.xdp_queues; + txq = netdev_get_tx_queue(pfvf->netdev, qidx); + netdev_tx_completed_queue(txq, tx_pkts, tx_bytes); + } /* Free CQEs to HW */ otx2_write64(pfvf, NIX_LF_CQ_OP_DOOR, ((u64)cq->cq_idx << 32) | processed_cqe); @@ -1302,6 +1312,38 @@ return err; } +void otx2_free_pending_sqe(struct otx2_nic *pfvf) +{ + int tx_pkts = 0, tx_bytes = 0; + struct sk_buff *skb = NULL; + struct otx2_snd_queue *sq; + struct netdev_queue *txq; + struct sg_list *sg; + int sq_idx, sqe; + + for (sq_idx = 0; sq_idx < pfvf->hw.tx_queues; sq_idx++) { + sq = &pfvf->qset.sq[sq_idx]; + for (sqe = 0; sqe < sq->sqe_cnt; sqe++) { + sg = &sq->sg[sqe]; + skb = (struct sk_buff *)sg->skb; + if (skb) { + tx_bytes += skb->len; + tx_pkts++; + otx2_dma_unmap_skb_frags(pfvf, sg); + dev_kfree_skb_any(skb); + sg->skb = (u64)NULL; + } + } + + if (!tx_pkts) + continue; + txq = netdev_get_tx_queue(pfvf->netdev, sq_idx); + netdev_tx_completed_queue(txq, tx_pkts, tx_bytes); + tx_pkts = 0; + tx_bytes = 0; + } +} + static void otx2_xdp_sqe_add_sg(struct otx2_snd_queue *sq, u64 dma_addr, int len, int *offset) { diff -u linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c --- linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c @@ -3148,7 +3148,7 @@ OFFLOAD(DIPV6_31_0, 32, U32_MAX, ip6.daddr.s6_addr32[3], 0, dst_ipv4_dst_ipv6.ipv6_layout.ipv6[12]), OFFLOAD(IPV6_HOPLIMIT, 8, U8_MAX, ip6.hop_limit, 0, ttl_hoplimit), - OFFLOAD(IP_DSCP, 16, 0xc00f, ip6, 0, ip_dscp), + OFFLOAD(IP_DSCP, 16, 0x0fc0, ip6, 0, ip_dscp), OFFLOAD(TCP_SPORT, 16, U16_MAX, tcp.source, 0, tcp_sport), OFFLOAD(TCP_DPORT, 16, U16_MAX, tcp.dest, 0, tcp_dport), @@ -3159,21 +3159,31 @@ OFFLOAD(UDP_DPORT, 16, U16_MAX, udp.dest, 0, udp_dport), }; -static unsigned long mask_to_le(unsigned long mask, int size) +static u32 mask_field_get(void *mask, struct mlx5_fields *f) { - __be32 mask_be32; - __be16 mask_be16; - - if (size == 32) { - mask_be32 = (__force __be32)(mask); - mask = (__force unsigned long)cpu_to_le32(be32_to_cpu(mask_be32)); - } else if (size == 16) { - mask_be32 = (__force __be32)(mask); - mask_be16 = *(__be16 *)&mask_be32; - mask = (__force unsigned long)cpu_to_le16(be16_to_cpu(mask_be16)); + switch (f->field_bsize) { + case 32: + return be32_to_cpu(*(__be32 *)mask) & f->field_mask; + case 16: + return be16_to_cpu(*(__be16 *)mask) & (u16)f->field_mask; + default: + return *(u8 *)mask & (u8)f->field_mask; } +} - return mask; +static void mask_field_clear(void *mask, struct mlx5_fields *f) +{ + switch (f->field_bsize) { + case 32: + *(__be32 *)mask &= ~cpu_to_be32(f->field_mask); + break; + case 16: + *(__be16 *)mask &= ~cpu_to_be16((u16)f->field_mask); + break; + default: + *(u8 *)mask &= ~(u8)f->field_mask; + break; + } } static int offload_pedit_fields(struct mlx5e_priv *priv, @@ -3185,11 +3195,12 @@ struct pedit_headers *set_masks, *add_masks, *set_vals, *add_vals; struct pedit_headers_action *hdrs = parse_attr->hdrs; void *headers_c, *headers_v, *action, *vals_p; - u32 *s_masks_p, *a_masks_p, s_mask, a_mask; struct mlx5e_tc_mod_hdr_acts *mod_acts; - unsigned long mask, field_mask; + void *s_masks_p, *a_masks_p; int i, first, last, next_z; struct mlx5_fields *f; + unsigned long mask; + u32 s_mask, a_mask; u8 cmd; mod_acts = &parse_attr->mod_hdr_acts; @@ -3205,15 +3216,11 @@ bool skip; f = &fields[i]; - /* avoid seeing bits set from previous iterations */ - s_mask = 0; - a_mask = 0; - s_masks_p = (void *)set_masks + f->offset; a_masks_p = (void *)add_masks + f->offset; - s_mask = *s_masks_p & f->field_mask; - a_mask = *a_masks_p & f->field_mask; + s_mask = mask_field_get(s_masks_p, f); + a_mask = mask_field_get(a_masks_p, f); if (!s_mask && !a_mask) /* nothing to offload here */ continue; @@ -3240,22 +3247,20 @@ match_mask, f->field_bsize)) skip = true; /* clear to denote we consumed this field */ - *s_masks_p &= ~f->field_mask; + mask_field_clear(s_masks_p, f); } else { cmd = MLX5_ACTION_TYPE_ADD; mask = a_mask; vals_p = (void *)add_vals + f->offset; /* add 0 is no change */ - if ((*(u32 *)vals_p & f->field_mask) == 0) + if (!mask_field_get(vals_p, f)) skip = true; /* clear to denote we consumed this field */ - *a_masks_p &= ~f->field_mask; + mask_field_clear(a_masks_p, f); } if (skip) continue; - mask = mask_to_le(mask, f->field_bsize); - first = find_first_bit(&mask, f->field_bsize); next_z = find_next_zero_bit(&mask, f->field_bsize, first); last = find_last_bit(&mask, f->field_bsize); @@ -3282,10 +3287,9 @@ MLX5_SET(set_action_in, action, field, f->field); if (cmd == MLX5_ACTION_TYPE_SET) { + unsigned long field_mask = f->field_mask; int start; - field_mask = mask_to_le(f->field_mask, f->field_bsize); - /* if field is bit sized it can start not from first bit */ start = find_first_bit(&field_mask, f->field_bsize); @@ -4931,7 +4935,8 @@ if (err) return err; - rpriv->prev_vf_vport_stats = priv->stats.vf_vport; + mlx5e_stats_copy_rep_stats(&rpriv->prev_vf_vport_stats, + &priv->stats.rep_stats); break; default: NL_SET_ERR_MSG_MOD(extack, "mlx5 supports only police action for matchall"); @@ -4971,7 +4976,7 @@ u64 dbytes; u64 dpkts; - cur_stats = priv->stats.vf_vport; + mlx5e_stats_copy_rep_stats(&cur_stats, &priv->stats.rep_stats); dpkts = cur_stats.rx_packets - rpriv->prev_vf_vport_stats.rx_packets; dbytes = cur_stats.rx_bytes - rpriv->prev_vf_vport_stats.rx_bytes; rpriv->prev_vf_vport_stats = cur_stats; diff -u linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c --- linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c @@ -1022,11 +1022,8 @@ return ERR_PTR(err); } -static void mlx5_eswitch_event_handlers_register(struct mlx5_eswitch *esw) +static void mlx5_eswitch_event_handler_register(struct mlx5_eswitch *esw) { - MLX5_NB_INIT(&esw->nb, eswitch_vport_event, NIC_VPORT_CHANGE); - mlx5_eq_notifier_register(esw->dev, &esw->nb); - if (esw->mode == MLX5_ESWITCH_OFFLOADS && mlx5_eswitch_is_funcs_handler(esw->dev)) { MLX5_NB_INIT(&esw->esw_funcs.nb, mlx5_esw_funcs_changed_handler, ESW_FUNCTIONS_CHANGED); @@ -1034,13 +1031,11 @@ } } -static void mlx5_eswitch_event_handlers_unregister(struct mlx5_eswitch *esw) +static void mlx5_eswitch_event_handler_unregister(struct mlx5_eswitch *esw) { if (esw->mode == MLX5_ESWITCH_OFFLOADS && mlx5_eswitch_is_funcs_handler(esw->dev)) mlx5_eq_notifier_unregister(esw->dev, &esw->esw_funcs.nb); - mlx5_eq_notifier_unregister(esw->dev, &esw->nb); - flush_workqueue(esw->work_queue); } @@ -1419,6 +1414,9 @@ mlx5_eswitch_update_num_of_vfs(esw, num_vfs); + MLX5_NB_INIT(&esw->nb, eswitch_vport_event, NIC_VPORT_CHANGE); + mlx5_eq_notifier_register(esw->dev, &esw->nb); + if (esw->mode == MLX5_ESWITCH_LEGACY) { err = esw_legacy_enable(esw); } else { @@ -1431,7 +1429,7 @@ esw->fdb_table.flags |= MLX5_ESW_FDB_CREATED; - mlx5_eswitch_event_handlers_register(esw); + mlx5_eswitch_event_handler_register(esw); esw_info(esw->dev, "Enable: mode(%s), nvfs(%d), necvfs(%d), active vports(%d)\n", esw->mode == MLX5_ESWITCH_LEGACY ? "LEGACY" : "OFFLOADS", @@ -1558,7 +1556,8 @@ */ mlx5_esw_mode_change_notify(esw, MLX5_ESWITCH_LEGACY); - mlx5_eswitch_event_handlers_unregister(esw); + mlx5_eq_notifier_unregister(esw->dev, &esw->nb); + mlx5_eswitch_event_handler_unregister(esw); esw_info(esw->dev, "Disable: mode(%s), nvfs(%d), necvfs(%d), active vports(%d)\n", esw->mode == MLX5_ESWITCH_LEGACY ? "LEGACY" : "OFFLOADS", diff -u linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c --- linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c @@ -384,7 +384,12 @@ static int mlx5_ptp_adjphase(struct ptp_clock_info *ptp, s32 delta) { - return mlx5_ptp_adjtime(ptp, delta); + struct mlx5_clock *clock = container_of(ptp, struct mlx5_clock, ptp_info); + struct mlx5_core_dev *mdev; + + mdev = container_of(clock, struct mlx5_core_dev, clock); + + return mlx5_ptp_adjtime_real_time(mdev, delta); } static int mlx5_ptp_freq_adj_real_time(struct mlx5_core_dev *mdev, long scaled_ppm) diff -u linux-riscv-6.5.0/drivers/net/ethernet/pensando/ionic/ionic_dev.h linux-riscv-6.5.0/drivers/net/ethernet/pensando/ionic/ionic_dev.h --- linux-riscv-6.5.0/drivers/net/ethernet/pensando/ionic/ionic_dev.h +++ linux-riscv-6.5.0/drivers/net/ethernet/pensando/ionic/ionic_dev.h @@ -222,7 +222,7 @@ void *cb_arg; }; -#define IONIC_QUEUE_NAME_MAX_SZ 32 +#define IONIC_QUEUE_NAME_MAX_SZ 16 struct ionic_queue { struct device *dev; diff -u linux-riscv-6.5.0/drivers/net/ethernet/realtek/r8169_main.c linux-riscv-6.5.0/drivers/net/ethernet/realtek/r8169_main.c --- linux-riscv-6.5.0/drivers/net/ethernet/realtek/r8169_main.c +++ linux-riscv-6.5.0/drivers/net/ethernet/realtek/r8169_main.c @@ -196,6 +196,7 @@ /* No threshold before first PCI xfer */ #define RX_FIFO_THRESH (7 << RXCFG_FIFO_SHIFT) #define RX_EARLY_OFF (1 << 11) +#define RX_PAUSE_SLOT_ON (1 << 11) /* 8125b and later */ #define RXCFG_DMA_SHIFT 8 /* Unlimited maximum PCI burst. */ #define RX_DMA_BURST (7 << RXCFG_DMA_SHIFT) @@ -579,6 +580,7 @@ enum rtl_flag { RTL_FLAG_TASK_ENABLED = 0, RTL_FLAG_TASK_RESET_PENDING, + RTL_FLAG_TASK_RESET_NO_QUEUE_WAKE, RTL_FLAG_TASK_TX_TIMEOUT, RTL_FLAG_MAX }; @@ -2305,9 +2307,13 @@ case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_53: RTL_W32(tp, RxConfig, RX128_INT_EN | RX_MULTI_EN | RX_DMA_BURST | RX_EARLY_OFF); break; - case RTL_GIGA_MAC_VER_61 ... RTL_GIGA_MAC_VER_63: + case RTL_GIGA_MAC_VER_61: RTL_W32(tp, RxConfig, RX_FETCH_DFLT_8125 | RX_DMA_BURST); break; + case RTL_GIGA_MAC_VER_63: + RTL_W32(tp, RxConfig, RX_FETCH_DFLT_8125 | RX_DMA_BURST | + RX_PAUSE_SLOT_ON); + break; default: RTL_W32(tp, RxConfig, RX128_INT_EN | RX_DMA_BURST); break; @@ -2595,6 +2601,8 @@ if (dev->flags & IFF_PROMISC) { rx_mode |= AcceptAllPhys; + } else if (!(dev->flags & IFF_MULTICAST)) { + rx_mode &= ~AcceptMulticast; } else if (netdev_mc_count(dev) > MC_FILTER_LIMIT || dev->flags & IFF_ALLMULTI || tp->mac_version == RTL_GIGA_MAC_VER_35) { @@ -4377,7 +4385,7 @@ unsigned int entry = dirty_tx % NUM_TX_DESC; u32 status; - status = le32_to_cpu(tp->TxDescArray[entry].opts1); + status = le32_to_cpu(READ_ONCE(tp->TxDescArray[entry].opts1)); if (status & DescOwn) break; @@ -4407,7 +4415,7 @@ * If skb is NULL then we come here again once a tx irq is * triggered after the last fragment is marked transmitted. */ - if (tp->cur_tx != dirty_tx && skb) + if (READ_ONCE(tp->cur_tx) != dirty_tx && skb) rtl8169_doorbell(tp); } } @@ -4440,7 +4448,7 @@ dma_addr_t addr; u32 status; - status = le32_to_cpu(desc->opts1); + status = le32_to_cpu(READ_ONCE(desc->opts1)); if (status & DescOwn) break; @@ -4580,6 +4588,8 @@ reset: rtl_reset_work(tp); netif_wake_queue(tp->dev); + } else if (test_and_clear_bit(RTL_FLAG_TASK_RESET_NO_QUEUE_WAKE, tp->wk.flags)) { + rtl_reset_work(tp); } out_unlock: rtnl_unlock(); @@ -4609,7 +4619,11 @@ if (netif_carrier_ok(ndev)) { rtl_link_chg_patch(tp); pm_request_resume(d); + netif_wake_queue(tp->dev); } else { + /* In few cases rx is broken after link-down otherwise */ + if (rtl_is_8125(tp)) + rtl_schedule_task(tp, RTL_FLAG_TASK_RESET_NO_QUEUE_WAKE); pm_runtime_idle(d); } @@ -4685,7 +4699,7 @@ rtl8169_down(tp); rtl8169_rx_clear(tp); - cancel_work_sync(&tp->wk.work); + cancel_work(&tp->wk.work); free_irq(tp->irq, tp); @@ -4919,6 +4933,8 @@ if (pci_dev_run_wake(pdev)) pm_runtime_get_noresume(&pdev->dev); + cancel_work_sync(&tp->wk.work); + unregister_netdev(tp->dev); if (tp->dash_type != RTL_DASH_NONE) diff -u linux-riscv-6.5.0/drivers/net/ethernet/renesas/ravb_main.c linux-riscv-6.5.0/drivers/net/ethernet/renesas/ravb_main.c --- linux-riscv-6.5.0/drivers/net/ethernet/renesas/ravb_main.c +++ linux-riscv-6.5.0/drivers/net/ethernet/renesas/ravb_main.c @@ -516,6 +516,15 @@ { struct ravb_private *priv = netdev_priv(ndev); + if (priv->phy_interface == PHY_INTERFACE_MODE_MII) { + ravb_write(ndev, (1000 << 16) | CXR35_SEL_XMII_MII, CXR35); + ravb_modify(ndev, CXR31, CXR31_SEL_LINK0 | CXR31_SEL_LINK1, 0); + } else { + ravb_write(ndev, (1000 << 16) | CXR35_SEL_XMII_RGMII, CXR35); + ravb_modify(ndev, CXR31, CXR31_SEL_LINK0 | CXR31_SEL_LINK1, + CXR31_SEL_LINK0); + } + /* Receive frame limit set register */ ravb_write(ndev, GBETH_RX_BUFF_MAX + ETH_FCS_LEN, RFLR); @@ -538,14 +547,6 @@ /* E-MAC interrupt enable register */ ravb_write(ndev, ECSIPR_ICDIP, ECSIPR); - - if (priv->phy_interface == PHY_INTERFACE_MODE_MII) { - ravb_modify(ndev, CXR31, CXR31_SEL_LINK0 | CXR31_SEL_LINK1, 0); - ravb_write(ndev, (1000 << 16) | CXR35_SEL_XMII_MII, CXR35); - } else { - ravb_modify(ndev, CXR31, CXR31_SEL_LINK0 | CXR31_SEL_LINK1, - CXR31_SEL_LINK0); - } } static void ravb_emac_init_rcar(struct net_device *ndev) @@ -1812,19 +1813,20 @@ if (info->gptp) ravb_ptp_init(ndev, priv->pdev); - netif_tx_start_all_queues(ndev); - /* PHY control start */ error = ravb_phy_start(ndev); if (error) goto out_ptp_stop; + netif_tx_start_all_queues(ndev); + return 0; out_ptp_stop: /* Stop PTP Clock driver */ if (info->gptp) ravb_ptp_stop(ndev); + ravb_stop_dma(ndev); out_free_irq_mgmta: if (!info->multi_irqs) goto out_free_irq; @@ -1875,6 +1877,12 @@ struct net_device *ndev = priv->ndev; int error; + if (!rtnl_trylock()) { + usleep_range(1000, 2000); + schedule_work(&priv->work); + return; + } + netif_tx_stop_all_queues(ndev); /* Stop PTP Clock driver */ @@ -1908,7 +1916,7 @@ */ netdev_err(ndev, "%s: ravb_dmac_init() failed, error %d\n", __func__, error); - return; + goto out_unlock; } ravb_emac_init(ndev); @@ -1918,6 +1926,9 @@ ravb_ptp_init(ndev, priv->pdev); netif_tx_start_all_queues(ndev); + +out_unlock: + rtnl_unlock(); } /* Packet transmit function for Ethernet AVB */ @@ -2646,9 +2657,14 @@ ndev->features = info->net_features; ndev->hw_features = info->net_hw_features; - reset_control_deassert(rstc); + error = reset_control_deassert(rstc); + if (error) + goto out_free_netdev; + pm_runtime_enable(&pdev->dev); - pm_runtime_get_sync(&pdev->dev); + error = pm_runtime_resume_and_get(&pdev->dev); + if (error < 0) + goto out_rpm_disable; if (info->multi_irqs) { if (info->err_mgmt_irqs) @@ -2873,11 +2889,12 @@ out_disable_refclk: clk_disable_unprepare(priv->refclk); out_release: - free_netdev(ndev); - pm_runtime_put(&pdev->dev); +out_rpm_disable: pm_runtime_disable(&pdev->dev); reset_control_assert(rstc); +out_free_netdev: + free_netdev(ndev); return error; } @@ -2887,22 +2904,26 @@ struct ravb_private *priv = netdev_priv(ndev); const struct ravb_hw_info *info = priv->info; - /* Stop PTP Clock driver */ - if (info->ccc_gac) - ravb_ptp_stop(ndev); - - clk_disable_unprepare(priv->gptp_clk); - clk_disable_unprepare(priv->refclk); - - /* Set reset mode */ - ravb_write(ndev, CCC_OPC_RESET, CCC); unregister_netdev(ndev); if (info->nc_queues) netif_napi_del(&priv->napi[RAVB_NC]); netif_napi_del(&priv->napi[RAVB_BE]); + ravb_mdio_release(priv); + + /* Stop PTP Clock driver */ + if (info->ccc_gac) + ravb_ptp_stop(ndev); + dma_free_coherent(ndev->dev.parent, priv->desc_bat_size, priv->desc_bat, priv->desc_bat_dma); + + /* Set reset mode */ + ravb_write(ndev, CCC_OPC_RESET, CCC); + + clk_disable_unprepare(priv->gptp_clk); + clk_disable_unprepare(priv->refclk); + pm_runtime_put_sync(&pdev->dev); pm_runtime_disable(&pdev->dev); reset_control_assert(priv->rstc); diff -u linux-riscv-6.5.0/drivers/net/ethernet/renesas/rswitch.c linux-riscv-6.5.0/drivers/net/ethernet/renesas/rswitch.c --- linux-riscv-6.5.0/drivers/net/ethernet/renesas/rswitch.c +++ linux-riscv-6.5.0/drivers/net/ethernet/renesas/rswitch.c @@ -1491,8 +1491,8 @@ { struct rswitch_device *rdev = netdev_priv(ndev); struct rswitch_gwca_queue *gq = rdev->tx_queue; + netdev_tx_t ret = NETDEV_TX_OK; struct rswitch_ext_desc *desc; - int ret = NETDEV_TX_OK; dma_addr_t dma_addr; if (rswitch_get_num_cur_queues(gq) >= gq->ring_size - 1) { @@ -1504,10 +1504,8 @@ return ret; dma_addr = dma_map_single(ndev->dev.parent, skb->data, skb->len, DMA_TO_DEVICE); - if (dma_mapping_error(ndev->dev.parent, dma_addr)) { - dev_kfree_skb_any(skb); - return ret; - } + if (dma_mapping_error(ndev->dev.parent, dma_addr)) + goto err_kfree; gq->skbs[gq->cur] = skb; desc = &gq->tx_ring[gq->cur]; @@ -1520,10 +1518,8 @@ struct rswitch_gwca_ts_info *ts_info; ts_info = kzalloc(sizeof(*ts_info), GFP_ATOMIC); - if (!ts_info) { - dma_unmap_single(ndev->dev.parent, dma_addr, skb->len, DMA_TO_DEVICE); - return -ENOMEM; - } + if (!ts_info) + goto err_unmap; skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; rdev->ts_tag++; @@ -1546,6 +1542,14 @@ rswitch_modify(rdev->addr, GWTRC(gq->index), 0, BIT(gq->index % 32)); return ret; + +err_unmap: + dma_unmap_single(ndev->dev.parent, dma_addr, skb->len, DMA_TO_DEVICE); + +err_kfree: + dev_kfree_skb_any(skb); + + return ret; } static struct net_device_stats *rswitch_get_stats(struct net_device *ndev) diff -u linux-riscv-6.5.0/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c linux-riscv-6.5.0/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c --- linux-riscv-6.5.0/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ linux-riscv-6.5.0/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -960,7 +960,8 @@ bool *hs_enable = &fpe_cfg->hs_enable; if (is_up && *hs_enable) { - stmmac_fpe_send_mpacket(priv, priv->ioaddr, MPACKET_VERIFY); + stmmac_fpe_send_mpacket(priv, priv->ioaddr, fpe_cfg, + MPACKET_VERIFY); } else { *lo_state = FPE_STATE_OFF; *lp_state = FPE_STATE_OFF; @@ -5223,6 +5224,7 @@ dma_dir = page_pool_get_dma_dir(rx_q->page_pool); buf_sz = DIV_ROUND_UP(priv->dma_conf.dma_buf_sz, PAGE_SIZE) * PAGE_SIZE; + limit = min(priv->dma_conf.dma_rx_size - 1, (unsigned int)limit); if (netif_msg_rx_status(priv)) { void *rx_head; @@ -5258,10 +5260,10 @@ len = 0; } +read_again: if (count >= limit) break; -read_again: buf1_len = 0; buf2_len = 0; entry = next_entry; @@ -5733,6 +5735,7 @@ /* If user has requested FPE enable, quickly response */ if (*hs_enable) stmmac_fpe_send_mpacket(priv, priv->ioaddr, + fpe_cfg, MPACKET_RESPONSE); } @@ -7029,6 +7032,7 @@ if (*lo_state == FPE_STATE_ENTERING_ON && *lp_state == FPE_STATE_ENTERING_ON) { stmmac_fpe_configure(priv, priv->ioaddr, + fpe_cfg, priv->plat->tx_queues_to_use, priv->plat->rx_queues_to_use, *enable); @@ -7047,6 +7051,7 @@ netdev_info(priv->dev, SEND_VERIFY_MPAKCET_FMT, *lo_state, *lp_state); stmmac_fpe_send_mpacket(priv, priv->ioaddr, + fpe_cfg, MPACKET_VERIFY); } /* Sleep then retry */ @@ -7061,6 +7066,7 @@ if (priv->plat->fpe_cfg->hs_enable != enable) { if (enable) { stmmac_fpe_send_mpacket(priv, priv->ioaddr, + priv->plat->fpe_cfg, MPACKET_VERIFY); } else { priv->plat->fpe_cfg->lo_fpe_state = FPE_STATE_OFF; @@ -7512,6 +7518,7 @@ if (priv->dma_cap.fpesel) { /* Disable FPE */ stmmac_fpe_configure(priv, priv->ioaddr, + priv->plat->fpe_cfg, priv->plat->tx_queues_to_use, priv->plat->rx_queues_to_use, false); diff -u linux-riscv-6.5.0/drivers/net/macsec.c linux-riscv-6.5.0/drivers/net/macsec.c --- linux-riscv-6.5.0/drivers/net/macsec.c +++ linux-riscv-6.5.0/drivers/net/macsec.c @@ -3668,9 +3668,9 @@ dev_fetch_sw_netstats(s, dev->tstats); - s->rx_dropped = atomic_long_read(&dev->stats.__rx_dropped); - s->tx_dropped = atomic_long_read(&dev->stats.__tx_dropped); - s->rx_errors = atomic_long_read(&dev->stats.__rx_errors); + s->rx_dropped = DEV_STATS_READ(dev, rx_dropped); + s->tx_dropped = DEV_STATS_READ(dev, tx_dropped); + s->rx_errors = DEV_STATS_READ(dev, rx_errors); } static int macsec_get_iflink(const struct net_device *dev) diff -u linux-riscv-6.5.0/drivers/net/usb/r8152.c linux-riscv-6.5.0/drivers/net/usb/r8152.c --- linux-riscv-6.5.0/drivers/net/usb/r8152.c +++ linux-riscv-6.5.0/drivers/net/usb/r8152.c @@ -764,7 +764,7 @@ /* rtl8152 flags */ enum rtl8152_flags { - RTL8152_UNPLUG = 0, + RTL8152_INACCESSIBLE = 0, RTL8152_SET_RX_MODE, WORK_ENABLE, RTL8152_LINK_CHG, @@ -1212,7 +1212,7 @@ ret = usb_control_msg(tp->udev, tp->pipe_ctrl_in, RTL8152_REQ_GET_REGS, RTL8152_REQT_READ, - value, index, tmp, size, 500); + value, index, tmp, size, USB_CTRL_GET_TIMEOUT); if (ret < 0) memset(data, 0xff, size); else @@ -1235,7 +1235,7 @@ ret = usb_control_msg(tp->udev, tp->pipe_ctrl_out, RTL8152_REQ_SET_REGS, RTL8152_REQT_WRITE, - value, index, tmp, size, 500); + value, index, tmp, size, USB_CTRL_SET_TIMEOUT); kfree(tmp); @@ -1245,7 +1245,7 @@ static void rtl_set_unplug(struct r8152 *tp) { if (tp->udev->state == USB_STATE_NOTATTACHED) { - set_bit(RTL8152_UNPLUG, &tp->flags); + set_bit(RTL8152_INACCESSIBLE, &tp->flags); smp_mb__after_atomic(); } } @@ -1256,7 +1256,7 @@ u16 limit = 64; int ret = 0; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return -ENODEV; /* both size and indix must be 4 bytes align */ @@ -1300,7 +1300,7 @@ u16 byteen_start, byteen_end, byen; u16 limit = 512; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return -ENODEV; /* both size and indix must be 4 bytes align */ @@ -1530,7 +1530,7 @@ struct r8152 *tp = netdev_priv(netdev); int ret; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return -ENODEV; if (phy_id != R8152_PHY_ID) @@ -1546,7 +1546,7 @@ { struct r8152 *tp = netdev_priv(netdev); - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; if (phy_id != R8152_PHY_ID) @@ -1751,7 +1751,7 @@ if (!tp) return; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; if (!test_bit(WORK_ENABLE, &tp->flags)) @@ -1843,7 +1843,7 @@ if (!test_bit(WORK_ENABLE, &tp->flags)) return; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; if (!skb_queue_empty(&tp->tx_queue)) @@ -1864,7 +1864,7 @@ if (!test_bit(WORK_ENABLE, &tp->flags)) return; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; switch (status) { @@ -2608,7 +2608,7 @@ { struct r8152 *tp = from_tasklet(tp, t, tx_tl); - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; if (!test_bit(WORK_ENABLE, &tp->flags)) @@ -2651,7 +2651,7 @@ int ret; /* The rx would be stopped, so skip submitting */ - if (test_bit(RTL8152_UNPLUG, &tp->flags) || + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags) || !test_bit(WORK_ENABLE, &tp->flags) || !netif_carrier_ok(tp->netdev)) return 0; @@ -2858,6 +2858,8 @@ ocp_write_byte(tp, MCU_TYPE_PLA, PLA_CR, CR_RST); for (i = 0; i < 1000; i++) { + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) + break; if (!(ocp_read_byte(tp, MCU_TYPE_PLA, PLA_CR) & CR_RST)) break; usleep_range(100, 400); @@ -3051,7 +3053,7 @@ static int rtl8152_enable(struct r8152 *tp) { - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return -ENODEV; set_tx_qlen(tp); @@ -3138,7 +3140,7 @@ { u32 ocp_data; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return -ENODEV; set_tx_qlen(tp); @@ -3170,7 +3172,7 @@ u32 ocp_data; int i; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) { + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) { rtl_drop_queued_tx(tp); return; } @@ -3187,6 +3189,8 @@ rxdy_gated_en(tp, true); for (i = 0; i < 1000; i++) { + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) + break; ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL); if ((ocp_data & FIFO_EMPTY) == FIFO_EMPTY) break; @@ -3194,6 +3198,8 @@ } for (i = 0; i < 1000; i++) { + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) + break; if (ocp_read_word(tp, MCU_TYPE_PLA, PLA_TCR0) & TCR0_TX_EMPTY) break; usleep_range(1000, 2000); @@ -3624,7 +3630,7 @@ } msleep(20); - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) break; } @@ -3656,6 +3662,8 @@ int i; for (i = 0; i < 500; i++) { + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) + return; if (ocp_read_word(tp, MCU_TYPE_PLA, PLA_BOOT_CTRL) & AUTOLOAD_DONE) break; @@ -3696,6 +3704,8 @@ int i; for (i = 0; i < 500; i++) { + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) + return; if (ocp_read_word(tp, MCU_TYPE_PLA, PLA_BOOT_CTRL) & AUTOLOAD_DONE) break; @@ -4059,6 +4069,9 @@ for (i = 0; wait && i < 5000; i++) { u32 ocp_data; + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) + return -ENODEV; + usleep_range(1000, 2000); ocp_data = ocp_reg_read(tp, OCP_PHY_PATCH_STAT); if ((ocp_data & PATCH_READY) ^ check) @@ -5375,6 +5388,8 @@ int i; for (i = 0; i < 1000; i++) { + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) + break; ocp_data = ocp_read_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL); if (ocp_data & LINK_LIST_READY) break; @@ -5389,6 +5404,8 @@ int i; for (i = 0; i < 100; i++) { + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) + break; if (ocp_read_word(tp, MCU_TYPE_USB, USB_GPHY_CTRL) & GPHY_PATCH_DONE) break; usleep_range(1000, 2000); @@ -5511,6 +5528,8 @@ for (i = 0; i < 104; i++) { u32 ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, USB_WDT1_CTRL); + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) + return -ENODEV; if (!(ocp_data & WTD1_EN)) break; usleep_range(1000, 2000); @@ -5667,6 +5686,8 @@ data &= ~EN_ALDPS; ocp_reg_write(tp, OCP_POWER_CFG, data); for (i = 0; i < 20; i++) { + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) + return; usleep_range(1000, 2000); if (ocp_read_word(tp, MCU_TYPE_PLA, 0xe000) & 0x0100) break; @@ -6020,7 +6041,7 @@ u32 ocp_data; u16 speed; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return -ENODEV; r8156_fc_parameter(tp); @@ -6078,7 +6099,7 @@ u32 ocp_data; u16 speed; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return -ENODEV; set_tx_qlen(tp); @@ -6264,7 +6285,7 @@ static void rtl8152_up(struct r8152 *tp) { - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; r8152_aldps_en(tp, false); @@ -6274,7 +6295,7 @@ static void rtl8152_down(struct r8152 *tp) { - if (test_bit(RTL8152_UNPLUG, &tp->flags)) { + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) { rtl_drop_queued_tx(tp); return; } @@ -6289,7 +6310,7 @@ { u32 ocp_data; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; r8153_u1u2en(tp, false); @@ -6329,7 +6350,7 @@ { u32 ocp_data; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) { + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) { rtl_drop_queued_tx(tp); return; } @@ -6350,7 +6371,7 @@ { u32 ocp_data; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; r8153b_u1u2en(tp, false); @@ -6374,7 +6395,7 @@ { u32 ocp_data; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) { + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) { rtl_drop_queued_tx(tp); return; } @@ -6411,7 +6432,7 @@ { u32 ocp_data; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; r8153b_u1u2en(tp, false); @@ -6492,7 +6513,7 @@ { u32 ocp_data; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; r8153b_u1u2en(tp, false); @@ -6565,7 +6586,7 @@ { u32 ocp_data; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) { + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) { rtl_drop_queued_tx(tp); return; } @@ -6703,7 +6724,7 @@ /* If the device is unplugged or !netif_running(), the workqueue * doesn't need to wake the device, and could return directly. */ - if (test_bit(RTL8152_UNPLUG, &tp->flags) || !netif_running(tp->netdev)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags) || !netif_running(tp->netdev)) return; if (usb_autopm_get_interface(tp->intf) < 0) @@ -6742,7 +6763,7 @@ { struct r8152 *tp = container_of(work, struct r8152, hw_phy_work.work); - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; if (usb_autopm_get_interface(tp->intf) < 0) @@ -6869,7 +6890,7 @@ netif_stop_queue(netdev); res = usb_autopm_get_interface(tp->intf); - if (res < 0 || test_bit(RTL8152_UNPLUG, &tp->flags)) { + if (res < 0 || test_bit(RTL8152_INACCESSIBLE, &tp->flags)) { rtl_drop_queued_tx(tp); rtl_stop_rx(tp); } else { @@ -6902,7 +6923,7 @@ u32 ocp_data; u16 data; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; data = r8152_mdio_read(tp, MII_BMCR); @@ -6946,7 +6967,7 @@ u16 data; int i; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; r8153_u1u2en(tp, false); @@ -6957,7 +6978,7 @@ break; msleep(20); - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) break; } @@ -7086,7 +7107,7 @@ u16 data; int i; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; r8153b_u1u2en(tp, false); @@ -7097,7 +7118,7 @@ break; msleep(20); - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) break; } @@ -7168,7 +7189,7 @@ u16 data; int i; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; r8153b_u1u2en(tp, false); @@ -7188,7 +7209,7 @@ break; msleep(20); - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; } @@ -8017,7 +8038,7 @@ u16 data; int i; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, USB_ECM_OP); @@ -8038,7 +8059,7 @@ break; msleep(20); - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; } @@ -8113,7 +8134,7 @@ u16 data; int i; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; ocp_data = ocp_read_byte(tp, MCU_TYPE_USB, USB_ECM_OP); @@ -8147,7 +8168,7 @@ break; msleep(20); - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; } @@ -8273,6 +8294,8 @@ struct r8152 *tp = usb_get_intfdata(intf); struct net_device *netdev; + rtnl_lock(); + if (!tp) return 0; @@ -8302,18 +8325,15 @@ struct sockaddr sa; if (!tp) - return 0; + goto exit; /* reset the MAC address in case of policy change */ - if (determine_ethernet_addr(tp, &sa) >= 0) { - rtnl_lock(); + if (determine_ethernet_addr(tp, &sa) >= 0) dev_set_mac_address (tp->netdev, &sa, NULL); - rtnl_unlock(); - } netdev = tp->netdev; if (!netif_running(netdev)) - return 0; + goto exit; set_bit(WORK_ENABLE, &tp->flags); if (netif_carrier_ok(netdev)) { @@ -8332,6 +8352,8 @@ if (!list_empty(&tp->rx_done)) napi_schedule(&tp->napi); +exit: + rtnl_unlock(); return 0; } @@ -9176,7 +9198,7 @@ struct mii_ioctl_data *data = if_mii(rq); int res; - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return -ENODEV; res = usb_autopm_get_interface(tp->intf); @@ -9278,7 +9300,7 @@ static void rtl8152_unload(struct r8152 *tp) { - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; if (tp->version != RTL_VER_01) @@ -9287,7 +9309,7 @@ static void rtl8153_unload(struct r8152 *tp) { - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; r8153_power_cut_en(tp, false); @@ -9295,7 +9317,7 @@ static void rtl8153b_unload(struct r8152 *tp) { - if (test_bit(RTL8152_UNPLUG, &tp->flags)) + if (test_bit(RTL8152_INACCESSIBLE, &tp->flags)) return; r8153b_power_cut_en(tp, false); @@ -9512,7 +9534,8 @@ ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), RTL8152_REQ_GET_REGS, RTL8152_REQT_READ, - PLA_TCR0, MCU_TYPE_PLA, tmp, sizeof(*tmp), 500); + PLA_TCR0, MCU_TYPE_PLA, tmp, sizeof(*tmp), + USB_CTRL_GET_TIMEOUT); if (ret > 0) ocp_data = (__le32_to_cpu(*tmp) >> 16) & VERSION_MASK; @@ -9801,6 +9824,10 @@ out1: tasklet_kill(&tp->tx_tl); + cancel_delayed_work_sync(&tp->hw_phy_work); + if (tp->rtl_ops.unload) + tp->rtl_ops.unload(tp); + rtl8152_release_firmware(tp); usb_set_intfdata(intf, NULL); out: free_netdev(netdev); diff -u linux-riscv-6.5.0/drivers/net/veth.c linux-riscv-6.5.0/drivers/net/veth.c --- linux-riscv-6.5.0/drivers/net/veth.c +++ linux-riscv-6.5.0/drivers/net/veth.c @@ -236,8 +236,8 @@ data[tx_idx + j] += *(u64 *)(base + offset); } } while (u64_stats_fetch_retry(&rq_stats->syncp, start)); - pp_idx = tx_idx + VETH_TQ_STATS_LEN; } + pp_idx = idx + dev->real_num_tx_queues * VETH_TQ_STATS_LEN; page_pool_stats: veth_get_page_pool_stats(dev, &data[pp_idx]); @@ -373,7 +373,7 @@ skb_tx_timestamp(skb); if (likely(veth_forward_skb(rcv, skb, rq, use_napi) == NET_RX_SUCCESS)) { if (!use_napi) - dev_lstats_add(dev, length); + dev_sw_netstats_tx_add(dev, 1, length); } else { drop: atomic64_inc(&priv->dropped); @@ -390,10 +390,2 @@ -static u64 veth_stats_tx(struct net_device *dev, u64 *packets, u64 *bytes) -{ - struct veth_priv *priv = netdev_priv(dev); - - dev_lstats_read(dev, packets, bytes); - return atomic64_read(&priv->dropped); -} - static void veth_stats_rx(struct veth_stats *result, struct net_device *dev) @@ -433,24 +425,24 @@ struct veth_priv *priv = netdev_priv(dev); struct net_device *peer; struct veth_stats rx; - u64 packets, bytes; - tot->tx_dropped = veth_stats_tx(dev, &packets, &bytes); - tot->tx_bytes = bytes; - tot->tx_packets = packets; + tot->tx_dropped = atomic64_read(&priv->dropped); + dev_fetch_sw_netstats(tot, dev->tstats); veth_stats_rx(&rx, dev); tot->tx_dropped += rx.xdp_tx_err; tot->rx_dropped = rx.rx_drops + rx.peer_tq_xdp_xmit_err; - tot->rx_bytes = rx.xdp_bytes; - tot->rx_packets = rx.xdp_packets; + tot->rx_bytes += rx.xdp_bytes; + tot->rx_packets += rx.xdp_packets; rcu_read_lock(); peer = rcu_dereference(priv->peer); if (peer) { - veth_stats_tx(peer, &packets, &bytes); - tot->rx_bytes += bytes; - tot->rx_packets += packets; + struct rtnl_link_stats64 tot_peer = {}; + + dev_fetch_sw_netstats(&tot_peer, peer->tstats); + tot->rx_bytes += tot_peer.tx_bytes; + tot->rx_packets += tot_peer.tx_packets; veth_stats_rx(&rx, peer); tot->tx_dropped += rx.peer_tq_xdp_xmit_err; @@ -1500,25 +1492,12 @@ static int veth_dev_init(struct net_device *dev) { - int err; - - dev->lstats = netdev_alloc_pcpu_stats(struct pcpu_lstats); - if (!dev->lstats) - return -ENOMEM; - - err = veth_alloc_queues(dev); - if (err) { - free_percpu(dev->lstats); - return err; - } - - return 0; + return veth_alloc_queues(dev); } static void veth_dev_free(struct net_device *dev) { veth_free_queues(dev); - free_percpu(dev->lstats); } #ifdef CONFIG_NET_POLL_CONTROLLER @@ -1790,6 +1769,7 @@ NETIF_F_HW_VLAN_STAG_RX); dev->needs_free_netdev = true; dev->priv_destructor = veth_dev_free; + dev->pcpu_stat_type = NETDEV_PCPU_STAT_TSTATS; dev->max_mtu = ETH_MAX_MTU; dev->hw_features = VETH_FEATURES; diff -u linux-riscv-6.5.0/drivers/net/wireless/ath/ath11k/dp_rx.c linux-riscv-6.5.0/drivers/net/wireless/ath/ath11k/dp_rx.c --- linux-riscv-6.5.0/drivers/net/wireless/ath/ath11k/dp_rx.c +++ linux-riscv-6.5.0/drivers/net/wireless/ath/ath11k/dp_rx.c @@ -1621,14 +1621,20 @@ u8 pdev_id; pdev_id = FIELD_GET(HTT_T2H_PPDU_STATS_INFO_PDEV_ID, data->hdr); + + rcu_read_lock(); + ar = ath11k_mac_get_ar_by_pdev_id(ab, pdev_id); if (!ar) { ath11k_warn(ab, "invalid pdev id %d on htt pktlog\n", pdev_id); - return; + goto out; } trace_ath11k_htt_pktlog(ar, data->payload, hdr->size, ar->ab->pktlog_defs_checksum); + +out: + rcu_read_unlock(); } static void ath11k_htt_backpressure_event_handler(struct ath11k_base *ab, diff -u linux-riscv-6.5.0/drivers/net/wireless/ath/ath11k/pci.c linux-riscv-6.5.0/drivers/net/wireless/ath/ath11k/pci.c --- linux-riscv-6.5.0/drivers/net/wireless/ath/ath11k/pci.c +++ linux-riscv-6.5.0/drivers/net/wireless/ath/ath11k/pci.c @@ -853,10 +853,16 @@ if (ret) goto err_pci_disable_msi; + ret = ath11k_pci_set_irq_affinity_hint(ab_pci, cpumask_of(0)); + if (ret) { + ath11k_err(ab, "failed to set irq affinity %d\n", ret); + goto err_pci_disable_msi; + } + ret = ath11k_mhi_register(ab_pci); if (ret) { ath11k_err(ab, "failed to register mhi: %d\n", ret); - goto err_pci_disable_msi; + goto err_irq_affinity_cleanup; } ret = ath11k_hal_srng_init(ab); @@ -877,12 +883,6 @@ goto err_ce_free; } - ret = ath11k_pci_set_irq_affinity_hint(ab_pci, cpumask_of(0)); - if (ret) { - ath11k_err(ab, "failed to set irq affinity %d\n", ret); - goto err_free_irq; - } - /* kernel may allocate a dummy vector before request_irq and * then allocate a real vector when request_irq is called. * So get msi_data here again to avoid spurious interrupt @@ -891,19 +891,16 @@ ret = ath11k_pci_config_msi_data(ab_pci); if (ret) { ath11k_err(ab, "failed to config msi_data: %d\n", ret); - goto err_irq_affinity_cleanup; + goto err_free_irq; } ret = ath11k_core_init(ab); if (ret) { ath11k_err(ab, "failed to init core: %d\n", ret); - goto err_irq_affinity_cleanup; + goto err_free_irq; } return 0; -err_irq_affinity_cleanup: - ath11k_pci_set_irq_affinity_hint(ab_pci, NULL); - err_free_irq: ath11k_pcic_free_irq(ab); @@ -916,6 +913,9 @@ err_mhi_unregister: ath11k_mhi_unregister(ab_pci); +err_irq_affinity_cleanup: + ath11k_pci_set_irq_affinity_hint(ab_pci, NULL); + err_pci_disable_msi: ath11k_pci_free_msi(ab_pci); diff -u linux-riscv-6.5.0/drivers/net/wireless/ath/ath12k/dp.c linux-riscv-6.5.0/drivers/net/wireless/ath/ath12k/dp.c --- linux-riscv-6.5.0/drivers/net/wireless/ath/ath12k/dp.c +++ linux-riscv-6.5.0/drivers/net/wireless/ath/ath12k/dp.c @@ -38,6 +38,7 @@ ath12k_dp_rx_peer_tid_cleanup(ar, peer); crypto_free_shash(peer->tfm_mmic); + peer->dp_setup_done = false; spin_unlock_bh(&ab->base_lock); } diff -u linux-riscv-6.5.0/drivers/net/wireless/ath/ath12k/wmi.c linux-riscv-6.5.0/drivers/net/wireless/ath/ath12k/wmi.c --- linux-riscv-6.5.0/drivers/net/wireless/ath/ath12k/wmi.c +++ linux-riscv-6.5.0/drivers/net/wireless/ath/ath12k/wmi.c @@ -3799,6 +3799,12 @@ ath12k_warn(soc, "failed to extract reg cap %d\n", i); return ret; } + + if (reg_cap.phy_id >= MAX_RADIOS) { + ath12k_warn(soc, "unexpected phy id %u\n", reg_cap.phy_id); + return -EINVAL; + } + soc->hal_reg_cap[reg_cap.phy_id] = reg_cap; } return 0; @@ -6228,6 +6234,8 @@ ev->detector_id, ev->segment_id, ev->timestamp, ev->is_chirp, ev->freq_offset, ev->sidx); + rcu_read_lock(); + ar = ath12k_mac_get_ar_by_pdev_id(ab, le32_to_cpu(ev->pdev_id)); if (!ar) { @@ -6245,6 +6253,8 @@ ieee80211_radar_detected(ar->hw); exit: + rcu_read_unlock(); + kfree(tb); } @@ -6263,11 +6273,16 @@ ath12k_dbg(ab, ATH12K_DBG_WMI, "pdev temperature ev temp %d pdev_id %d\n", ev.temp, ev.pdev_id); + rcu_read_lock(); + ar = ath12k_mac_get_ar_by_pdev_id(ab, le32_to_cpu(ev.pdev_id)); if (!ar) { ath12k_warn(ab, "invalid pdev id in pdev temperature ev %d", ev.pdev_id); - return; + goto exit; } + +exit: + rcu_read_unlock(); } static void ath12k_fils_discovery_event(struct ath12k_base *ab, diff -u linux-riscv-6.5.0/drivers/net/wireless/ath/ath9k/htc_drv_debug.c linux-riscv-6.5.0/drivers/net/wireless/ath/ath9k/htc_drv_debug.c --- linux-riscv-6.5.0/drivers/net/wireless/ath/ath9k/htc_drv_debug.c +++ linux-riscv-6.5.0/drivers/net/wireless/ath/ath9k/htc_drv_debug.c @@ -428,7 +428,7 @@ u32 sset, u8 *data) { if (sset == ETH_SS_STATS) - memcpy(data, *ath9k_htc_gstrings_stats, + memcpy(data, ath9k_htc_gstrings_stats, sizeof(ath9k_htc_gstrings_stats)); } diff -u linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c --- linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c @@ -56,43 +56,15 @@ IEEE80211_VIF_SUPPORTS_CQM_RSSI; } - /* - * P2P_DEVICE interface does not have a channel context assigned to it, - * so a dedicated PHY context is allocated to it and the corresponding - * MAC context is bound to it at this stage. - */ - if (vif->type == NL80211_IFTYPE_P2P_DEVICE) { - mvmvif->deflink.phy_ctxt = iwl_mvm_get_free_phy_ctxt(mvm); - if (!mvmvif->deflink.phy_ctxt) { - ret = -ENOSPC; - goto out_free_bf; - } - - iwl_mvm_phy_ctxt_ref(mvm, mvmvif->deflink.phy_ctxt); - ret = iwl_mvm_add_link(mvm, vif, &vif->bss_conf); - if (ret) - goto out_unref_phy; - - ret = iwl_mvm_link_changed(mvm, vif, &vif->bss_conf, - LINK_CONTEXT_MODIFY_ACTIVE | - LINK_CONTEXT_MODIFY_RATES_INFO, - true); - if (ret) - goto out_remove_link; - - ret = iwl_mvm_mld_add_bcast_sta(mvm, vif, &vif->bss_conf); - if (ret) - goto out_remove_link; + ret = iwl_mvm_add_link(mvm, vif, &vif->bss_conf); + if (ret) + goto out_free_bf; - /* Save a pointer to p2p device vif, so it can later be used to - * update the p2p device MAC when a GO is started/stopped - */ + /* Save a pointer to p2p device vif, so it can later be used to + * update the p2p device MAC when a GO is started/stopped + */ + if (vif->type == NL80211_IFTYPE_P2P_DEVICE) mvm->p2p_device_vif = vif; - } else { - ret = iwl_mvm_add_link(mvm, vif, &vif->bss_conf); - if (ret) - goto out_free_bf; - } ret = iwl_mvm_power_update_mac(mvm); if (ret) @@ -119,10 +91,6 @@ goto out_unlock; - out_remove_link: - iwl_mvm_disable_link(mvm, vif, &vif->bss_conf); - out_unref_phy: - iwl_mvm_phy_ctxt_unref(mvm, mvmvif->deflink.phy_ctxt); out_free_bf: if (mvm->bf_allowed_vif == mvmvif) { mvm->bf_allowed_vif = NULL; @@ -130,7 +98,6 @@ IEEE80211_VIF_SUPPORTS_CQM_RSSI); } out_remove_mac: - mvmvif->deflink.phy_ctxt = NULL; mvmvif->link[0] = NULL; iwl_mvm_mld_mac_ctxt_remove(mvm, vif); out_unlock: @@ -185,14 +152,18 @@ iwl_mvm_power_update_mac(mvm); + /* Before the interface removal, mac80211 would cancel the ROC, and the + * ROC worker would be scheduled if needed. The worker would be flushed + * in iwl_mvm_prepare_mac_removal() and thus at this point the link is + * not active. So need only to remove the link. + */ if (vif->type == NL80211_IFTYPE_P2P_DEVICE) { + if (mvmvif->deflink.phy_ctxt) { + iwl_mvm_phy_ctxt_unref(mvm, mvmvif->deflink.phy_ctxt); + mvmvif->deflink.phy_ctxt = NULL; + } mvm->p2p_device_vif = NULL; - - /* P2P device uses only one link */ - iwl_mvm_mld_rm_bcast_sta(mvm, vif, &vif->bss_conf); - iwl_mvm_disable_link(mvm, vif, &vif->bss_conf); - iwl_mvm_phy_ctxt_unref(mvm, mvmvif->deflink.phy_ctxt); - mvmvif->deflink.phy_ctxt = NULL; + iwl_mvm_remove_link(mvm, vif, &vif->bss_conf); } else { iwl_mvm_disable_link(mvm, vif, &vif->bss_conf); } @@ -653,7 +624,7 @@ } /* Update EHT Puncturing info */ - if (changes & BSS_CHANGED_EHT_PUNCTURING && vif->cfg.assoc && has_eht) + if (changes & BSS_CHANGED_EHT_PUNCTURING && vif->cfg.assoc) link_changes |= LINK_CONTEXT_MODIFY_EHT_PARAMS; if (link_changes) { @@ -968,36 +939,29 @@ return 0; } -static int iwl_mvm_link_switch_phy_ctx(struct iwl_mvm *mvm, - struct ieee80211_vif *vif, - struct iwl_mvm_phy_ctxt *new_phy_ctxt) +static int iwl_mvm_mld_roc_link(struct iwl_mvm *mvm, struct ieee80211_vif *vif) { - struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); - int ret = 0; + int ret; lockdep_assert_held(&mvm->mutex); - /* Inorder to change the phy_ctx of a link, the link needs to be - * inactive. Therefore, first deactivate the link, then change its - * phy_ctx, and then activate it again. - */ - ret = iwl_mvm_link_changed(mvm, vif, &vif->bss_conf, - LINK_CONTEXT_MODIFY_ACTIVE, false); - if (WARN(ret, "Failed to deactivate link\n")) + /* The PHY context ID might have changed so need to set it */ + ret = iwl_mvm_link_changed(mvm, vif, &vif->bss_conf, 0, false); + if (WARN(ret, "Failed to set PHY context ID\n")) return ret; - iwl_mvm_phy_ctxt_unref(mvm, mvmvif->deflink.phy_ctxt); - - mvmvif->deflink.phy_ctxt = new_phy_ctxt; + ret = iwl_mvm_link_changed(mvm, vif, &vif->bss_conf, + LINK_CONTEXT_MODIFY_ACTIVE | + LINK_CONTEXT_MODIFY_RATES_INFO, + true); - ret = iwl_mvm_link_changed(mvm, vif, &vif->bss_conf, 0, false); - if (WARN(ret, "Failed to deactivate link\n")) + if (WARN(ret, "Failed linking P2P_DEVICE\n")) return ret; - ret = iwl_mvm_link_changed(mvm, vif, &vif->bss_conf, - LINK_CONTEXT_MODIFY_ACTIVE, true); - WARN(ret, "Failed binding P2P_DEVICE\n"); - return ret; + /* The station and queue allocation must be done only after the linking + * is done, as otherwise the FW might incorrectly configure its state. + */ + return iwl_mvm_mld_add_bcast_sta(mvm, vif, &vif->bss_conf); } static int iwl_mvm_mld_roc(struct ieee80211_hw *hw, struct ieee80211_vif *vif, @@ -1006,7 +970,7 @@ { static const struct iwl_mvm_roc_ops ops = { .add_aux_sta_for_hs20 = iwl_mvm_mld_add_aux_sta, - .switch_phy_ctxt = iwl_mvm_link_switch_phy_ctx, + .link = iwl_mvm_mld_roc_link, }; return iwl_mvm_roc_common(hw, vif, channel, duration, type, &ops); @@ -1089,9 +1053,6 @@ } } - if (err) - goto out_err; - err = 0; if (new_links == 0) { mvmvif->link[0] = &mvmvif->deflink; diff -u linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/pcie/trans.c linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/pcie/trans.c --- linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/pcie/trans.c +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/pcie/trans.c @@ -1263,6 +1263,7 @@ if (test_and_clear_bit(STATUS_DEVICE_ENABLED, &trans->status)) { IWL_DEBUG_INFO(trans, "DEVICE_ENABLED bit was set and is now cleared\n"); + iwl_pcie_synchronize_irqs(trans); iwl_pcie_rx_napi_sync(trans); iwl_pcie_tx_stop(trans); iwl_pcie_rx_stop(trans); diff -u linux-riscv-6.5.0/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c linux-riscv-6.5.0/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c --- linux-riscv-6.5.0/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c +++ linux-riscv-6.5.0/drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c @@ -921,6 +921,14 @@ while (tlv_buf_left >= sizeof(*tlv_rxba)) { tlv_type = le16_to_cpu(tlv_rxba->header.type); tlv_len = le16_to_cpu(tlv_rxba->header.len); + if (size_add(sizeof(tlv_rxba->header), tlv_len) > tlv_buf_left) { + mwifiex_dbg(priv->adapter, WARN, + "TLV size (%zu) overflows event_buf buf_left=%d\n", + size_add(sizeof(tlv_rxba->header), tlv_len), + tlv_buf_left); + return; + } + if (tlv_type != TLV_TYPE_RXBA_SYNC) { mwifiex_dbg(priv->adapter, ERROR, "Wrong TLV id=0x%x\n", tlv_type); @@ -929,6 +937,14 @@ tlv_seq_num = le16_to_cpu(tlv_rxba->seq_num); tlv_bitmap_len = le16_to_cpu(tlv_rxba->bitmap_len); + if (size_add(sizeof(*tlv_rxba), tlv_bitmap_len) > tlv_buf_left) { + mwifiex_dbg(priv->adapter, WARN, + "TLV size (%zu) overflows event_buf buf_left=%d\n", + size_add(sizeof(*tlv_rxba), tlv_bitmap_len), + tlv_buf_left); + return; + } + mwifiex_dbg(priv->adapter, INFO, "%pM tid=%d seq_num=%d bitmap_len=%d\n", tlv_rxba->mac, tlv_rxba->tid, tlv_seq_num, diff -u linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/dma.c linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/dma.c --- linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/dma.c +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/dma.c @@ -330,9 +330,6 @@ if (e->txwi == DMA_DUMMY_DATA) e->txwi = NULL; - if (e->skb == DMA_DUMMY_DATA) - e->skb = NULL; - *prev_e = *e; memset(e, 0, sizeof(*e)); } diff -u linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c --- linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c @@ -151,23 +151,6 @@ return; } - /* error path */ - if (e->skb == DMA_DUMMY_DATA) { - struct mt76_connac_txp_common *txp; - struct mt76_txwi_cache *t; - u16 token; - - txp = mt76_connac_txwi_to_txp(mdev, e->txwi); - if (is_mt76_fw_txp(mdev)) - token = le16_to_cpu(txp->fw.token); - else - token = le16_to_cpu(txp->hw.msdu_id[0]) & - ~MT_MSDU_ID_VALID; - - t = mt76_token_put(mdev, token); - e->skb = t ? t->skb : NULL; - } - if (e->skb) mt76_tx_complete_skb(mdev, e->wcid, e->skb); } diff -u linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7915/main.c linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7915/main.c --- linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7915/main.c +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7915/main.c @@ -646,11 +646,13 @@ mt7915_update_bss_color(hw, vif, &info->he_bss_color); if (changed & (BSS_CHANGED_BEACON | - BSS_CHANGED_BEACON_ENABLED | - BSS_CHANGED_UNSOL_BCAST_PROBE_RESP | - BSS_CHANGED_FILS_DISCOVERY)) + BSS_CHANGED_BEACON_ENABLED)) mt7915_mcu_add_beacon(hw, vif, info->enable_beacon, changed); + if (changed & (BSS_CHANGED_UNSOL_BCAST_PROBE_RESP | + BSS_CHANGED_FILS_DISCOVERY)) + mt7915_mcu_add_inband_discov(dev, vif, changed); + if (set_bss_info == 0) mt7915_mcu_add_bss_info(phy, vif, false); if (set_sta == 0) diff -u linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c --- linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c @@ -1012,13 +1012,13 @@ struct ieee80211_sta *sta, bool bfee) { struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv; - int tx_ant = hweight8(phy->mt76->chainmask) - 1; + int sts = hweight16(phy->mt76->chainmask); if (vif->type != NL80211_IFTYPE_STATION && vif->type != NL80211_IFTYPE_AP) return false; - if (!bfee && tx_ant < 2) + if (!bfee && sts < 2) return false; if (sta->deflink.he_cap.has_he) { @@ -1879,10 +1879,9 @@ memcpy(buf + MT_TXD_SIZE, skb->data, skb->len); } -static void -mt7915_mcu_beacon_inband_discov(struct mt7915_dev *dev, struct ieee80211_vif *vif, - struct sk_buff *rskb, struct bss_info_bcn *bcn, - u32 changed) +int +mt7915_mcu_add_inband_discov(struct mt7915_dev *dev, struct ieee80211_vif *vif, + u32 changed) { #define OFFLOAD_TX_MODE_SU BIT(0) #define OFFLOAD_TX_MODE_MU BIT(1) @@ -1892,14 +1891,27 @@ struct cfg80211_chan_def *chandef = &mvif->phy->mt76->chandef; enum nl80211_band band = chandef->chan->band; struct mt76_wcid *wcid = &dev->mt76.global_wcid; + struct bss_info_bcn *bcn; struct bss_info_inband_discovery *discov; struct ieee80211_tx_info *info; - struct sk_buff *skb = NULL; - struct tlv *tlv; + struct sk_buff *rskb, *skb = NULL; + struct tlv *tlv, *sub_tlv; bool ext_phy = phy != &dev->phy; u8 *buf, interval; int len; + if (vif->bss_conf.nontransmitted) + return 0; + + rskb = __mt76_connac_mcu_alloc_sta_req(&dev->mt76, &mvif->mt76, NULL, + MT7915_MAX_BSS_OFFLOAD_SIZE); + if (IS_ERR(rskb)) + return PTR_ERR(rskb); + + tlv = mt76_connac_mcu_add_tlv(rskb, BSS_INFO_OFFLOAD, sizeof(*bcn)); + bcn = (struct bss_info_bcn *)tlv; + bcn->enable = true; + if (changed & BSS_CHANGED_FILS_DISCOVERY && vif->bss_conf.fils_discovery.max_interval) { interval = vif->bss_conf.fils_discovery.max_interval; @@ -1910,27 +1922,29 @@ skb = ieee80211_get_unsol_bcast_probe_resp_tmpl(hw, vif); } - if (!skb) - return; + if (!skb) { + dev_kfree_skb(rskb); + return -EINVAL; + } info = IEEE80211_SKB_CB(skb); info->control.vif = vif; info->band = band; - info->hw_queue |= FIELD_PREP(MT_TX_HW_QUEUE_PHY, ext_phy); len = sizeof(*discov) + MT_TXD_SIZE + skb->len; len = (len & 0x3) ? ((len | 0x3) + 1) : len; - if (len > (MT7915_MAX_BSS_OFFLOAD_SIZE - rskb->len)) { + if (skb->len > MT7915_MAX_BEACON_SIZE) { dev_err(dev->mt76.dev, "inband discovery size limit exceed\n"); + dev_kfree_skb(rskb); dev_kfree_skb(skb); - return; + return -EINVAL; } - tlv = mt7915_mcu_add_nested_subtlv(rskb, BSS_INFO_BCN_DISCOV, - len, &bcn->sub_ntlv, &bcn->len); - discov = (struct bss_info_inband_discovery *)tlv; + sub_tlv = mt7915_mcu_add_nested_subtlv(rskb, BSS_INFO_BCN_DISCOV, + len, &bcn->sub_ntlv, &bcn->len); + discov = (struct bss_info_inband_discovery *)sub_tlv; discov->tx_mode = OFFLOAD_TX_MODE_SU; /* 0: UNSOL PROBE RESP, 1: FILS DISCOV */ discov->tx_type = !!(changed & BSS_CHANGED_FILS_DISCOVERY); @@ -1938,13 +1952,16 @@ discov->prob_rsp_len = cpu_to_le16(MT_TXD_SIZE + skb->len); discov->enable = true; - buf = (u8 *)tlv + sizeof(*discov); + buf = (u8 *)sub_tlv + sizeof(*discov); mt7915_mac_write_txwi(&dev->mt76, (__le32 *)buf, skb, wcid, 0, NULL, 0, changed); memcpy(buf + MT_TXD_SIZE, skb->data, skb->len); dev_kfree_skb(skb); + + return mt76_mcu_skb_send_msg(&phy->dev->mt76, rskb, + MCU_EXT_CMD(BSS_INFO_UPDATE), true); } int mt7915_mcu_add_beacon(struct ieee80211_hw *hw, struct ieee80211_vif *vif, @@ -1977,11 +1994,14 @@ goto out; skb = ieee80211_beacon_get_template(hw, vif, &offs, 0); - if (!skb) + if (!skb) { + dev_kfree_skb(rskb); return -EINVAL; + } - if (skb->len > MT7915_MAX_BEACON_SIZE - MT_TXD_SIZE) { + if (skb->len > MT7915_MAX_BEACON_SIZE) { dev_err(dev->mt76.dev, "Bcn size limit exceed\n"); + dev_kfree_skb(rskb); dev_kfree_skb(skb); return -EINVAL; } @@ -1994,11 +2014,6 @@ mt7915_mcu_beacon_cont(dev, vif, rskb, skb, bcn, &offs); dev_kfree_skb(skb); - if (changed & BSS_CHANGED_UNSOL_BCAST_PROBE_RESP || - changed & BSS_CHANGED_FILS_DISCOVERY) - mt7915_mcu_beacon_inband_discov(dev, vif, rskb, - bcn, changed); - out: return mt76_mcu_skb_send_msg(&phy->dev->mt76, rskb, MCU_EXT_CMD(BSS_INFO_UPDATE), true); @@ -2687,10 +2702,10 @@ if (mt76_connac_spe_idx(phy->mt76->antenna_mask)) req.tx_path_num = fls(phy->mt76->antenna_mask); - if (cmd == MCU_EXT_CMD(SET_RX_PATH) || - dev->mt76.hw->conf.flags & IEEE80211_CONF_MONITOR) + if (phy->mt76->hw->conf.flags & IEEE80211_CONF_MONITOR) req.switch_reason = CH_SWITCH_NORMAL; - else if (phy->mt76->hw->conf.flags & IEEE80211_CONF_OFFCHANNEL) + else if (phy->mt76->hw->conf.flags & IEEE80211_CONF_OFFCHANNEL || + phy->mt76->hw->conf.flags & IEEE80211_CONF_IDLE) req.switch_reason = CH_SWITCH_SCAN_BYPASS_DPD; else if (!cfg80211_reg_can_beacon(phy->mt76->hw->wiphy, chandef, NL80211_IFTYPE_AP)) diff -u linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h --- linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h @@ -505,6 +505,8 @@ bool add); int mt7915_mcu_update_bss_color(struct mt7915_dev *dev, struct ieee80211_vif *vif, struct cfg80211_he_bss_color *he_bss_color); +int mt7915_mcu_add_inband_discov(struct mt7915_dev *dev, struct ieee80211_vif *vif, + u32 changed); int mt7915_mcu_add_beacon(struct ieee80211_hw *hw, struct ieee80211_vif *vif, int enable, u32 changed); int mt7915_mcu_add_obss_spr(struct mt7915_phy *phy, struct ieee80211_vif *vif, diff -u linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7996/mac.c linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7996/mac.c --- linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7996/mac.c +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7996/mac.c @@ -611,7 +611,9 @@ case IEEE80211_STA_RX_BW_160: status->bw = RATE_INFO_BW_160; break; + /* rxv reports bw 320-1 and 320-2 separately */ case IEEE80211_STA_RX_BW_320: + case IEEE80211_STA_RX_BW_320 + 1: status->bw = RATE_INFO_BW_320; break; default: @@ -1168,11 +1170,9 @@ } txp->fw.token = cpu_to_le16(id); - if (test_bit(MT_WCID_FLAG_4ADDR, &wcid->flags)) - txp->fw.rept_wds_wcid = cpu_to_le16(wcid->idx); - else - txp->fw.rept_wds_wcid = cpu_to_le16(0xfff); - tx_info->skb = DMA_DUMMY_DATA; + txp->fw.rept_wds_wcid = cpu_to_le16(sta ? wcid->idx : 0xfff); + + tx_info->skb = NULL; /* pass partial skb header to fw */ tx_info->buf[1].len = MT_CT_PARSE_LEN; @@ -1228,7 +1228,7 @@ if (likely(t->skb->protocol != cpu_to_be16(ETH_P_PAE))) mt7996_tx_check_aggr(sta, txwi); } else { - wcid_idx = le32_get_bits(txwi[1], MT_TXD1_WLAN_IDX); + wcid_idx = le32_get_bits(txwi[9], MT_TXD9_WLAN_IDX); } __mt76_tx_complete_skb(mdev, wcid_idx, t->skb, free_list); diff -u linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c --- linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7996/mcu.c @@ -1916,7 +1916,7 @@ bcn->bcc_ie_pos = cpu_to_le16(offset - 3); } - buf = (u8 *)bcn + sizeof(*bcn) - MAX_BEACON_SIZE; + buf = (u8 *)bcn + sizeof(*bcn); mt7996_mac_write_txwi(dev, (__le32 *)buf, skb, wcid, NULL, 0, 0, BSS_CHANGED_BEACON); @@ -1934,26 +1934,22 @@ struct sk_buff *skb, *rskb; struct tlv *tlv; struct bss_bcn_content_tlv *bcn; + int len; rskb = __mt7996_mcu_alloc_bss_req(&dev->mt76, &mvif->mt76, - MT7996_BEACON_UPDATE_SIZE); + MT7996_MAX_BSS_OFFLOAD_SIZE); if (IS_ERR(rskb)) return PTR_ERR(rskb); - tlv = mt7996_mcu_add_uni_tlv(rskb, - UNI_BSS_INFO_BCN_CONTENT, sizeof(*bcn)); - bcn = (struct bss_bcn_content_tlv *)tlv; - bcn->enable = en; - - if (!en) - goto out; - skb = ieee80211_beacon_get_template(hw, vif, &offs, 0); - if (!skb) + if (!skb) { + dev_kfree_skb(rskb); return -EINVAL; + } - if (skb->len > MAX_BEACON_SIZE - MT_TXD_SIZE) { + if (skb->len > MT7996_MAX_BEACON_SIZE) { dev_err(dev->mt76.dev, "Bcn size limit exceed\n"); + dev_kfree_skb(rskb); dev_kfree_skb(skb); return -EINVAL; } @@ -1961,11 +1957,18 @@ info = IEEE80211_SKB_CB(skb); info->hw_queue |= FIELD_PREP(MT_TX_HW_QUEUE_PHY, phy->mt76->band_idx); + len = sizeof(*bcn) + MT_TXD_SIZE + skb->len; + tlv = mt7996_mcu_add_uni_tlv(rskb, UNI_BSS_INFO_BCN_CONTENT, len); + bcn = (struct bss_bcn_content_tlv *)tlv; + bcn->enable = en; + if (!en) + goto out; + mt7996_mcu_beacon_cont(dev, vif, rskb, skb, bcn, &offs); /* TODO: subtag - 11v MBSSID */ mt7996_mcu_beacon_cntdwn(vif, rskb, skb, &offs); - dev_kfree_skb(skb); out: + dev_kfree_skb(skb); return mt76_mcu_skb_send_msg(&phy->dev->mt76, rskb, MCU_WMWA_UNI_CMD(BSS_INFO_UPDATE), true); } @@ -1986,9 +1989,13 @@ struct sk_buff *rskb, *skb = NULL; struct tlv *tlv; u8 *buf, interval; + int len; + + if (vif->bss_conf.nontransmitted) + return 0; rskb = __mt7996_mcu_alloc_bss_req(&dev->mt76, &mvif->mt76, - MT7996_INBAND_FRAME_SIZE); + MT7996_MAX_BSS_OFFLOAD_SIZE); if (IS_ERR(rskb)) return PTR_ERR(rskb); @@ -2002,11 +2009,14 @@ skb = ieee80211_get_unsol_bcast_probe_resp_tmpl(hw, vif); } - if (!skb) + if (!skb) { + dev_kfree_skb(rskb); return -EINVAL; + } - if (skb->len > MAX_INBAND_FRAME_SIZE - MT_TXD_SIZE) { + if (skb->len > MT7996_MAX_BEACON_SIZE) { dev_err(dev->mt76.dev, "inband discovery size limit exceed\n"); + dev_kfree_skb(rskb); dev_kfree_skb(skb); return -EINVAL; } @@ -2016,7 +2026,9 @@ info->band = band; info->hw_queue |= FIELD_PREP(MT_TX_HW_QUEUE_PHY, phy->mt76->band_idx); - tlv = mt7996_mcu_add_uni_tlv(rskb, UNI_BSS_INFO_OFFLOAD, sizeof(*discov)); + len = sizeof(*discov) + MT_TXD_SIZE + skb->len; + + tlv = mt7996_mcu_add_uni_tlv(rskb, UNI_BSS_INFO_OFFLOAD, len); discov = (struct bss_inband_discovery_tlv *)tlv; discov->tx_mode = OFFLOAD_TX_MODE_SU; @@ -2027,7 +2039,7 @@ discov->enable = true; discov->wcid = cpu_to_le16(MT7996_WTBL_RESERVED); - buf = (u8 *)tlv + sizeof(*discov) - MAX_INBAND_FRAME_SIZE; + buf = (u8 *)tlv + sizeof(*discov); mt7996_mac_write_txwi(dev, (__le32 *)buf, skb, wcid, NULL, 0, 0, changed); @@ -2580,7 +2592,7 @@ e = (struct edca *)tlv; e->set = WMM_PARAM_SET; - e->queue = ac + mvif->mt76.wmm_idx * MT7996_MAX_WMM_SETS; + e->queue = ac; e->aifs = q->aifs; e->txop = cpu_to_le16(q->txop); @@ -2861,10 +2873,10 @@ .channel_band = ch_band[chandef->chan->band], }; - if (tag == UNI_CHANNEL_RX_PATH || - dev->mt76.hw->conf.flags & IEEE80211_CONF_MONITOR) + if (phy->mt76->hw->conf.flags & IEEE80211_CONF_MONITOR) req.switch_reason = CH_SWITCH_NORMAL; - else if (phy->mt76->hw->conf.flags & IEEE80211_CONF_OFFCHANNEL) + else if (phy->mt76->hw->conf.flags & IEEE80211_CONF_OFFCHANNEL || + phy->mt76->hw->conf.flags & IEEE80211_CONF_IDLE) req.switch_reason = CH_SWITCH_SCAN_BYPASS_DPD; else if (!cfg80211_reg_can_beacon(phy->mt76->hw->wiphy, chandef, NL80211_IFTYPE_AP)) @@ -3208,8 +3220,8 @@ tlv = mt7996_mcu_add_uni_tlv(skb, action, sizeof(*req_mod_en)); req_mod_en = (struct bf_mod_en_ctrl *)tlv; - req_mod_en->bf_num = 2; - req_mod_en->bf_bitmap = GENMASK(0, 0); + req_mod_en->bf_num = 3; + req_mod_en->bf_bitmap = GENMASK(2, 0); break; } default: @@ -3449,7 +3461,9 @@ int cmd) { struct { - u8 _rsv[4]; + /* fixed field */ + u8 bss; + u8 _rsv[3]; __le16 tag; __le16 len; @@ -3467,7 +3481,7 @@ u8 exponent; u8 is_ap; u8 agrt_params; - u8 __rsv2[135]; + u8 __rsv2[23]; } __packed req = { .tag = cpu_to_le16(UNI_CMD_TWT_ARGT_UPDATE), .len = cpu_to_le16(sizeof(req) - 4), @@ -3477,6 +3491,7 @@ .flowid = flow->id, .peer_id = cpu_to_le16(flow->wcid), .duration = flow->duration, + .bss = mvif->mt76.idx, .bss_idx = mvif->mt76.idx, .start_tsf = cpu_to_le64(flow->tsf), .mantissa = flow->mantissa, diff -u linux-riscv-6.5.0/drivers/net/wireless/realtek/rtw88/usb.c linux-riscv-6.5.0/drivers/net/wireless/realtek/rtw88/usb.c --- linux-riscv-6.5.0/drivers/net/wireless/realtek/rtw88/usb.c +++ linux-riscv-6.5.0/drivers/net/wireless/realtek/rtw88/usb.c @@ -628,8 +628,7 @@ for (i = 0; i < RTW_USB_RXCB_NUM; i++) { rxcb = &rtwusb->rx_cb[i]; - if (rxcb->rx_urb) - usb_kill_urb(rxcb->rx_urb); + usb_kill_urb(rxcb->rx_urb); } } @@ -640,10 +639,8 @@ for (i = 0; i < RTW_USB_RXCB_NUM; i++) { rxcb = &rtwusb->rx_cb[i]; - if (rxcb->rx_urb) { - usb_kill_urb(rxcb->rx_urb); - usb_free_urb(rxcb->rx_urb); - } + usb_kill_urb(rxcb->rx_urb); + usb_free_urb(rxcb->rx_urb); } } diff -u linux-riscv-6.5.0/drivers/net/wireless/virtual/mac80211_hwsim.c linux-riscv-6.5.0/drivers/net/wireless/virtual/mac80211_hwsim.c --- linux-riscv-6.5.0/drivers/net/wireless/virtual/mac80211_hwsim.c +++ linux-riscv-6.5.0/drivers/net/wireless/virtual/mac80211_hwsim.c @@ -3170,7 +3170,7 @@ u32 sset, u8 *data) { if (sset == ETH_SS_STATS) - memcpy(data, *mac80211_hwsim_gstrings_stats, + memcpy(data, mac80211_hwsim_gstrings_stats, sizeof(mac80211_hwsim_gstrings_stats)); } diff -u linux-riscv-6.5.0/drivers/nvme/host/core.c linux-riscv-6.5.0/drivers/nvme/host/core.c --- linux-riscv-6.5.0/drivers/nvme/host/core.c +++ linux-riscv-6.5.0/drivers/nvme/host/core.c @@ -2026,6 +2026,13 @@ if (ret) return ret; + if (id->ncap == 0) { + /* namespace not allocated or attached */ + info->is_removed = true; + ret = -ENODEV; + goto error; + } + blk_mq_freeze_queue(ns->disk->queue); lbaf = nvme_lbaf_index(id->flbas); ns->lba_shift = id->lbaf[lbaf].ds; @@ -2083,6 +2090,8 @@ set_bit(NVME_NS_READY, &ns->flags); ret = 0; } + +error: kfree(id); return ret; } diff -u linux-riscv-6.5.0/drivers/nvme/host/pci.c linux-riscv-6.5.0/drivers/nvme/host/pci.c --- linux-riscv-6.5.0/drivers/nvme/host/pci.c +++ linux-riscv-6.5.0/drivers/nvme/host/pci.c @@ -2903,6 +2903,18 @@ if ((dmi_match(DMI_BOARD_VENDOR, "LENOVO")) && dmi_match(DMI_BOARD_NAME, "LNVNB161216")) return NVME_QUIRK_SIMPLE_SUSPEND; + } else if (pdev->vendor == 0x2646 && (pdev->device == 0x2263 || + pdev->device == 0x500f)) { + /* + * Exclude some Kingston NV1 and A2000 devices from + * NVME_QUIRK_SIMPLE_SUSPEND. Do a full suspend to save a + * lot fo energy with s2idle sleep on some TUXEDO platforms. + */ + if (dmi_match(DMI_BOARD_NAME, "NS5X_NS7XAU") || + dmi_match(DMI_BOARD_NAME, "NS5x_7xAU") || + dmi_match(DMI_BOARD_NAME, "NS5x_7xPU") || + dmi_match(DMI_BOARD_NAME, "PH4PRX1_PH6PRX1")) + return NVME_QUIRK_FORCE_NO_SIMPLE_SUSPEND; } return 0; @@ -2933,7 +2945,9 @@ dev->dev = get_device(&pdev->dev); quirks |= check_vendor_combination_bug(pdev); - if (!noacpi && acpi_storage_d3(&pdev->dev)) { + if (!noacpi && + !(quirks & NVME_QUIRK_FORCE_NO_SIMPLE_SUSPEND) && + acpi_storage_d3(&pdev->dev)) { /* * Some systems use a bios work around to ask for D3 on * platforms that support kernel managed suspend. @@ -3329,7 +3343,8 @@ { PCI_VDEVICE(INTEL, 0x0a54), /* Intel P4500/P4600 */ .driver_data = NVME_QUIRK_STRIPE_SIZE | NVME_QUIRK_DEALLOCATE_ZEROES | - NVME_QUIRK_IGNORE_DEV_SUBNQN, }, + NVME_QUIRK_IGNORE_DEV_SUBNQN | + NVME_QUIRK_BOGUS_NID, }, { PCI_VDEVICE(INTEL, 0x0a55), /* Dell Express Flash P4600 */ .driver_data = NVME_QUIRK_STRIPE_SIZE | NVME_QUIRK_DEALLOCATE_ZEROES, }, diff -u linux-riscv-6.5.0/drivers/nvmem/core.c linux-riscv-6.5.0/drivers/nvmem/core.c --- linux-riscv-6.5.0/drivers/nvmem/core.c +++ linux-riscv-6.5.0/drivers/nvmem/core.c @@ -793,6 +793,12 @@ if (!layout_np) return NULL; + /* Fixed layouts don't have a matching driver */ + if (of_device_is_compatible(layout_np, "fixed-layout")) { + of_node_put(layout_np); + return NULL; + } + /* * In case the nvmem device was built-in while the layout was built as a * module, we shall manually request the layout driver loading otherwise diff -u linux-riscv-6.5.0/drivers/of/dynamic.c linux-riscv-6.5.0/drivers/of/dynamic.c --- linux-riscv-6.5.0/drivers/of/dynamic.c +++ linux-riscv-6.5.0/drivers/of/dynamic.c @@ -104,8 +104,9 @@ * * Returns the new state of a device based on the notifier used. * - * Return: 0 on device going from enabled to disabled, 1 on device - * going from disabled to enabled and -1 on no change. + * Return: OF_RECONFIG_CHANGE_REMOVE on device going from enabled to + * disabled, OF_RECONFIG_CHANGE_ADD on device going from disabled to + * enabled and OF_RECONFIG_NO_CHANGE on no change. */ int of_reconfig_get_state_change(unsigned long action, struct of_reconfig_data *pr) { diff -u linux-riscv-6.5.0/drivers/pci/controller/dwc/pcie-qcom-ep.c linux-riscv-6.5.0/drivers/pci/controller/dwc/pcie-qcom-ep.c --- linux-riscv-6.5.0/drivers/pci/controller/dwc/pcie-qcom-ep.c +++ linux-riscv-6.5.0/drivers/pci/controller/dwc/pcie-qcom-ep.c @@ -121,6 +121,7 @@ /* ELBI registers */ #define ELBI_SYS_STTS 0x08 +#define ELBI_CS2_ENABLE 0xa4 /* DBI registers */ #define DBI_CON_STATUS 0x44 @@ -253,6 +254,21 @@ disable_irq(pcie_ep->perst_irq); } +static void qcom_pcie_dw_write_dbi2(struct dw_pcie *pci, void __iomem *base, + u32 reg, size_t size, u32 val) +{ + struct qcom_pcie_ep *pcie_ep = to_pcie_ep(pci); + int ret; + + writel(1, pcie_ep->elbi + ELBI_CS2_ENABLE); + + ret = dw_pcie_write(pci->dbi_base2 + reg, size, val); + if (ret) + dev_err(pci->dev, "Failed to write DBI2 register (0x%x): %d\n", reg, ret); + + writel(0, pcie_ep->elbi + ELBI_CS2_ENABLE); +} + static int qcom_pcie_enable_resources(struct qcom_pcie_ep *pcie_ep) { int ret; @@ -451,6 +467,7 @@ .link_up = qcom_pcie_dw_link_up, .start_link = qcom_pcie_dw_start_link, .stop_link = qcom_pcie_dw_stop_link, + .write_dbi2 = qcom_pcie_dw_write_dbi2, }; static int qcom_pcie_ep_get_io_resources(struct platform_device *pdev, diff -u linux-riscv-6.5.0/drivers/pci/controller/dwc/pcie-tegra194.c linux-riscv-6.5.0/drivers/pci/controller/dwc/pcie-tegra194.c --- linux-riscv-6.5.0/drivers/pci/controller/dwc/pcie-tegra194.c +++ linux-riscv-6.5.0/drivers/pci/controller/dwc/pcie-tegra194.c @@ -9,6 +9,7 @@ * Author: Vidya Sagar */ +#include #include #include #include @@ -347,8 +348,7 @@ */ val = dw_pcie_readw_dbi(pci, pcie->pcie_cap_base + PCI_EXP_LNKSTA); if (val & PCI_EXP_LNKSTA_LBMS) { - current_link_width = (val & PCI_EXP_LNKSTA_NLW) >> - PCI_EXP_LNKSTA_NLW_SHIFT; + current_link_width = FIELD_GET(PCI_EXP_LNKSTA_NLW, val); if (pcie->init_link_width > current_link_width) { dev_warn(pci->dev, "PCIe link is bad, width reduced\n"); val = dw_pcie_readw_dbi(pci, pcie->pcie_cap_base + @@ -761,8 +761,7 @@ val_w = dw_pcie_readw_dbi(&pcie->pci, pcie->pcie_cap_base + PCI_EXP_LNKSTA); - pcie->init_link_width = (val_w & PCI_EXP_LNKSTA_NLW) >> - PCI_EXP_LNKSTA_NLW_SHIFT; + pcie->init_link_width = FIELD_GET(PCI_EXP_LNKSTA_NLW, val_w); val_w = dw_pcie_readw_dbi(&pcie->pci, pcie->pcie_cap_base + PCI_EXP_LNKCTL); @@ -921,7 +920,7 @@ /* Configure Max lane width from DT */ val = dw_pcie_readl_dbi(pci, pcie->pcie_cap_base + PCI_EXP_LNKCAP); val &= ~PCI_EXP_LNKCAP_MLW; - val |= (pcie->num_lanes << PCI_EXP_LNKSTA_NLW_SHIFT); + val |= FIELD_PREP(PCI_EXP_LNKCAP_MLW, pcie->num_lanes); dw_pcie_writel_dbi(pci, pcie->pcie_cap_base + PCI_EXP_LNKCAP, val); /* Clear Slot Clock Configuration bit if SRNS configuration */ diff -u linux-riscv-6.5.0/drivers/pci/controller/vmd.c linux-riscv-6.5.0/drivers/pci/controller/vmd.c --- linux-riscv-6.5.0/drivers/pci/controller/vmd.c +++ linux-riscv-6.5.0/drivers/pci/controller/vmd.c @@ -525,8 +525,7 @@ base = vmd->cfgbar + PCIE_ECAM_OFFSET(bus, PCI_DEVFN(dev, 0), 0); - hdr_type = readb(base + PCI_HEADER_TYPE) & - PCI_HEADER_TYPE_MASK; + hdr_type = readb(base + PCI_HEADER_TYPE); functions = (hdr_type & 0x80) ? 8 : 1; for (fn = 0; fn < functions; fn++) { diff -u linux-riscv-6.5.0/drivers/pci/pci.c linux-riscv-6.5.0/drivers/pci/pci.c --- linux-riscv-6.5.0/drivers/pci/pci.c +++ linux-riscv-6.5.0/drivers/pci/pci.c @@ -732,15 +732,18 @@ { u16 vsec = 0; u32 header; + int ret; if (vendor != dev->vendor) return 0; while ((vsec = pci_find_next_ext_capability(dev, vsec, PCI_EXT_CAP_ID_VNDR))) { - if (pci_read_config_dword(dev, vsec + PCI_VNDR_HEADER, - &header) == PCIBIOS_SUCCESSFUL && - PCI_VNDR_HEADER_ID(header) == cap) + ret = pci_read_config_dword(dev, vsec + PCI_VNDR_HEADER, &header); + if (ret != PCIBIOS_SUCCESSFUL) + continue; + + if (PCI_VNDR_HEADER_ID(header) == cap) return vsec; } @@ -3743,14 +3746,14 @@ return 0; pci_read_config_dword(pdev, pos + PCI_REBAR_CAP, &cap); - cap &= PCI_REBAR_CAP_SIZES; + cap = FIELD_GET(PCI_REBAR_CAP_SIZES, cap); /* Sapphire RX 5600 XT Pulse has an invalid cap dword for BAR 0 */ if (pdev->vendor == PCI_VENDOR_ID_ATI && pdev->device == 0x731f && - bar == 0 && cap == 0x7000) - cap = 0x3f000; + bar == 0 && cap == 0x700) + return 0x3f00; - return cap >> 4; + return cap; } EXPORT_SYMBOL(pci_rebar_get_possible_sizes); @@ -6252,8 +6255,7 @@ pcie_capability_read_word(dev, PCI_EXP_LNKSTA, &lnksta); next_speed = pcie_link_speed[lnksta & PCI_EXP_LNKSTA_CLS]; - next_width = (lnksta & PCI_EXP_LNKSTA_NLW) >> - PCI_EXP_LNKSTA_NLW_SHIFT; + next_width = FIELD_GET(PCI_EXP_LNKSTA_NLW, lnksta); next_bw = next_width * PCIE_SPEED2MBS_ENC(next_speed); @@ -6325,7 +6327,7 @@ pcie_capability_read_dword(dev, PCI_EXP_LNKCAP, &lnkcap); if (lnkcap) - return (lnkcap & PCI_EXP_LNKCAP_MLW) >> 4; + return FIELD_GET(PCI_EXP_LNKCAP_MLW, lnkcap); return PCIE_LNK_WIDTH_UNKNOWN; } diff -u linux-riscv-6.5.0/drivers/pci/pcie/aer.c linux-riscv-6.5.0/drivers/pci/pcie/aer.c --- linux-riscv-6.5.0/drivers/pci/pcie/aer.c +++ linux-riscv-6.5.0/drivers/pci/pcie/aer.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include "../pci.h" @@ -1010,6 +1011,15 @@ continue; } cper_print_aer(pdev, entry.severity, entry.regs); + /* + * Memory for aer_capability_regs(entry.regs) is being allocated from the + * ghes_estatus_pool to protect it from overwriting when multiple sections + * are present in the error status. Thus free the same after processing + * the data. + */ + ghes_estatus_pool_region_free((unsigned long)entry.regs, + sizeof(struct aer_capability_regs)); + if (entry.severity == AER_NONFATAL) pcie_do_recovery(pdev, pci_channel_io_normal, aer_root_reset); diff -u linux-riscv-6.5.0/drivers/pci/pcie/aspm.c linux-riscv-6.5.0/drivers/pci/pcie/aspm.c --- linux-riscv-6.5.0/drivers/pci/pcie/aspm.c +++ linux-riscv-6.5.0/drivers/pci/pcie/aspm.c @@ -1060,7 +1060,8 @@ if (state & PCIE_LINK_STATE_L0S) link->aspm_disable |= ASPM_STATE_L0S; if (state & PCIE_LINK_STATE_L1) - link->aspm_disable |= ASPM_STATE_L1; + /* L1 PM substates require L1 */ + link->aspm_disable |= ASPM_STATE_L1 | ASPM_STATE_L1SS; if (state & PCIE_LINK_STATE_L1_1) link->aspm_disable |= ASPM_STATE_L1_1; if (state & PCIE_LINK_STATE_L1_2) @@ -1259,6 +1260,8 @@ link->aspm_disable &= ~ASPM_STATE_L1; } else { link->aspm_disable |= state; + if (state & ASPM_STATE_L1) + link->aspm_disable |= ASPM_STATE_L1SS; } pcie_config_aspm_link(link, policy_to_aspm_state(link)); diff -u linux-riscv-6.5.0/drivers/pci/probe.c linux-riscv-6.5.0/drivers/pci/probe.c --- linux-riscv-6.5.0/drivers/pci/probe.c +++ linux-riscv-6.5.0/drivers/pci/probe.c @@ -1653,15 +1653,15 @@ static bool pci_ext_cfg_is_aliased(struct pci_dev *dev) { #ifdef CONFIG_PCI_QUIRKS - int pos; + int pos, ret; u32 header, tmp; pci_read_config_dword(dev, PCI_VENDOR_ID, &header); for (pos = PCI_CFG_SPACE_SIZE; pos < PCI_CFG_SPACE_EXP_SIZE; pos += PCI_CFG_SPACE_SIZE) { - if (pci_read_config_dword(dev, pos, &tmp) != PCIBIOS_SUCCESSFUL - || header != tmp) + ret = pci_read_config_dword(dev, pos, &tmp); + if ((ret != PCIBIOS_SUCCESSFUL) || (header != tmp)) return false; } diff -u linux-riscv-6.5.0/drivers/pci/quirks.c linux-riscv-6.5.0/drivers/pci/quirks.c --- linux-riscv-6.5.0/drivers/pci/quirks.c +++ linux-riscv-6.5.0/drivers/pci/quirks.c @@ -703,7 +703,7 @@ /* * In the AMD NL platform, this device ([1022:7912]) has a class code of * PCI_CLASS_SERIAL_USB_XHCI (0x0c0330), which means the xhci driver will - * claim it. + * claim it. The same applies on the VanGogh platform device ([1022:163a]). * * But the dwc3 driver is a more specific driver for this device, and we'd * prefer to use it instead of xhci. To prevent xhci from claiming the @@ -711,7 +711,7 @@ * defines as "USB device (not host controller)". The dwc3 driver can then * claim it based on its Vendor and Device ID. */ -static void quirk_amd_nl_class(struct pci_dev *pdev) +static void quirk_amd_dwc_class(struct pci_dev *pdev) { u32 class = pdev->class; @@ -721,7 +721,9 @@ class, pdev->class); } DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_NL_USB, - quirk_amd_nl_class); + quirk_amd_dwc_class); +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_VANGOGH_USB, + quirk_amd_dwc_class); /* * Synopsys USB 3.x host HAPS platform has a class code of @@ -5396,7 +5398,7 @@ */ static void quirk_intel_qat_vf_cap(struct pci_dev *pdev) { - int pos, i = 0; + int pos, i = 0, ret; u8 next_cap; u16 reg16, *cap; struct pci_cap_saved_state *state; @@ -5442,8 +5444,8 @@ pdev->pcie_mpss = reg16 & PCI_EXP_DEVCAP_PAYLOAD; pdev->cfg_size = PCI_CFG_SPACE_EXP_SIZE; - if (pci_read_config_dword(pdev, PCI_CFG_SPACE_SIZE, &status) != - PCIBIOS_SUCCESSFUL || (status == 0xffffffff)) + ret = pci_read_config_dword(pdev, PCI_CFG_SPACE_SIZE, &status); + if ((ret != PCIBIOS_SUCCESSFUL) || (PCI_POSSIBLE_ERROR(status))) pdev->cfg_size = PCI_CFG_SPACE_SIZE; if (pci_find_saved_cap(pdev, PCI_CAP_ID_EXP)) @@ -5520,6 +5522,12 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0422, quirk_no_ext_tags); #ifdef CONFIG_PCI_ATS +static void quirk_no_ats(struct pci_dev *pdev) +{ + pci_info(pdev, "disabling ATS\n"); + pdev->ats_cap = 0; +} + /* * Some devices require additional driver setup to enable ATS. Don't use * ATS for those devices as ATS will be enabled before the driver has had a @@ -5533,14 +5541,10 @@ (pdev->subsystem_device == 0xce19 || pdev->subsystem_device == 0xcc10 || pdev->subsystem_device == 0xcc08)) - goto no_ats; - else - return; + quirk_no_ats(pdev); + } else { + quirk_no_ats(pdev); } - -no_ats: - pci_info(pdev, "disabling ATS\n"); - pdev->ats_cap = 0; } /* AMD Stoney platform GPU */ @@ -5563,6 +5567,25 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x734f, quirk_amd_harvest_no_ats); /* AMD Raven platform iGPU */ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x15d8, quirk_amd_harvest_no_ats); + +/* + * Intel IPU E2000 revisions before C0 implement incorrect endianness + * in ATS Invalidate Request message body. Disable ATS for those devices. + */ +static void quirk_intel_e2000_no_ats(struct pci_dev *pdev) +{ + if (pdev->revision < 0x20) + quirk_no_ats(pdev); +} +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1451, quirk_intel_e2000_no_ats); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1452, quirk_intel_e2000_no_ats); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1453, quirk_intel_e2000_no_ats); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1454, quirk_intel_e2000_no_ats); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1455, quirk_intel_e2000_no_ats); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1457, quirk_intel_e2000_no_ats); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1459, quirk_intel_e2000_no_ats); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x145a, quirk_intel_e2000_no_ats); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x145c, quirk_intel_e2000_no_ats); #endif /* CONFIG_PCI_ATS */ /* Freescale PCIe doesn't support MSI in RC mode */ @@ -6155,0 +6179,12 @@ + +/* + * Devices known to require a longer delay before first config space access + * after reset recovery or resume from D3cold: + * + * VideoPropulsion (aka Genroco) Torrent QN16e MPEG QAM Modulator + */ +static void pci_fixup_d3cold_delay_1sec(struct pci_dev *pdev) +{ + pdev->d3cold_delay = 1000; +} +DECLARE_PCI_FIXUP_FINAL(0x5555, 0x0004, pci_fixup_d3cold_delay_1sec); diff -u linux-riscv-6.5.0/drivers/perf/arm-cmn.c linux-riscv-6.5.0/drivers/perf/arm-cmn.c --- linux-riscv-6.5.0/drivers/perf/arm-cmn.c +++ linux-riscv-6.5.0/drivers/perf/arm-cmn.c @@ -110,7 +110,9 @@ #define CMN_DTM_PMEVCNTSR 0x240 -#define CMN_DTM_UNIT_INFO 0x0910 +#define CMN650_DTM_UNIT_INFO 0x0910 +#define CMN_DTM_UNIT_INFO 0x0960 +#define CMN_DTM_UNIT_INFO_DTC_DOMAIN GENMASK_ULL(1, 0) #define CMN_DTM_NUM_COUNTERS 4 /* Want more local counters? Why not replicate the whole DTM! Ugh... */ @@ -2007,6 +2009,16 @@ return 0; } +static unsigned int arm_cmn_dtc_domain(struct arm_cmn *cmn, void __iomem *xp_region) +{ + int offset = CMN_DTM_UNIT_INFO; + + if (cmn->part == PART_CMN650 || cmn->part == PART_CI700) + offset = CMN650_DTM_UNIT_INFO; + + return FIELD_GET(CMN_DTM_UNIT_INFO_DTC_DOMAIN, readl_relaxed(xp_region + offset)); +} + static void arm_cmn_init_node_info(struct arm_cmn *cmn, u32 offset, struct arm_cmn_node *node) { int level; @@ -2138,7 +2150,7 @@ if (cmn->part == PART_CMN600) xp->dtc = 0xf; else - xp->dtc = 1 << readl_relaxed(xp_region + CMN_DTM_UNIT_INFO); + xp->dtc = 1 << arm_cmn_dtc_domain(cmn, xp_region); xp->dtm = dtm - cmn->dtms; arm_cmn_init_dtm(dtm++, xp, 0); diff -u linux-riscv-6.5.0/drivers/platform/chrome/cros_ec_lpc.c linux-riscv-6.5.0/drivers/platform/chrome/cros_ec_lpc.c --- linux-riscv-6.5.0/drivers/platform/chrome/cros_ec_lpc.c +++ linux-riscv-6.5.0/drivers/platform/chrome/cros_ec_lpc.c @@ -549,22 +549,36 @@ static int cros_ec_lpc_prepare(struct device *dev) { struct cros_ec_device *ec_dev = dev_get_drvdata(dev); - - return cros_ec_suspend(ec_dev); + return cros_ec_suspend_prepare(ec_dev); } static void cros_ec_lpc_complete(struct device *dev) { struct cros_ec_device *ec_dev = dev_get_drvdata(dev); - cros_ec_resume(ec_dev); + cros_ec_resume_complete(ec_dev); +} + +static int cros_ec_lpc_suspend_late(struct device *dev) +{ + struct cros_ec_device *ec_dev = dev_get_drvdata(dev); + + return cros_ec_suspend_late(ec_dev); +} + +static int cros_ec_lpc_resume_early(struct device *dev) +{ + struct cros_ec_device *ec_dev = dev_get_drvdata(dev); + + return cros_ec_resume_early(ec_dev); } #endif static const struct dev_pm_ops cros_ec_lpc_pm_ops = { #ifdef CONFIG_PM_SLEEP .prepare = cros_ec_lpc_prepare, - .complete = cros_ec_lpc_complete + .complete = cros_ec_lpc_complete, #endif + SET_LATE_SYSTEM_SLEEP_PM_OPS(cros_ec_lpc_suspend_late, cros_ec_lpc_resume_early) }; static struct platform_driver cros_ec_lpc_driver = { diff -u linux-riscv-6.5.0/drivers/platform/mellanox/mlxbf-pmc.c linux-riscv-6.5.0/drivers/platform/mellanox/mlxbf-pmc.c --- linux-riscv-6.5.0/drivers/platform/mellanox/mlxbf-pmc.c +++ linux-riscv-6.5.0/drivers/platform/mellanox/mlxbf-pmc.c @@ -1202,6 +1202,8 @@ attr->dev_attr.show = mlxbf_pmc_event_list_show; attr->nr = blk_num; attr->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL, "event_list"); + if (!attr->dev_attr.attr.name) + return -ENOMEM; pmc->block[blk_num].block_attr[i] = &attr->dev_attr.attr; attr = NULL; @@ -1214,6 +1216,8 @@ attr->nr = blk_num; attr->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL, "enable"); + if (!attr->dev_attr.attr.name) + return -ENOMEM; pmc->block[blk_num].block_attr[++i] = &attr->dev_attr.attr; attr = NULL; } @@ -1240,6 +1244,8 @@ attr->nr = blk_num; attr->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL, "counter%d", j); + if (!attr->dev_attr.attr.name) + return -ENOMEM; pmc->block[blk_num].block_attr[++i] = &attr->dev_attr.attr; attr = NULL; @@ -1251,6 +1257,8 @@ attr->nr = blk_num; attr->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL, "event%d", j); + if (!attr->dev_attr.attr.name) + return -ENOMEM; pmc->block[blk_num].block_attr[++i] = &attr->dev_attr.attr; attr = NULL; } @@ -1283,6 +1291,8 @@ attr->nr = blk_num; attr->dev_attr.attr.name = devm_kasprintf(dev, GFP_KERNEL, events[j].evt_name); + if (!attr->dev_attr.attr.name) + return -ENOMEM; pmc->block[blk_num].block_attr[i] = &attr->dev_attr.attr; attr = NULL; i++; @@ -1311,6 +1321,8 @@ pmc->block[blk_num].block_attr_grp.attrs = pmc->block[blk_num].block_attr; pmc->block[blk_num].block_attr_grp.name = devm_kasprintf( dev, GFP_KERNEL, pmc->block_name[blk_num]); + if (!pmc->block[blk_num].block_attr_grp.name) + return -ENOMEM; pmc->groups[blk_num] = &pmc->block[blk_num].block_attr_grp; return 0; @@ -1442,6 +1454,8 @@ pmc->hwmon_dev = devm_hwmon_device_register_with_groups( dev, "bfperf", pmc, pmc->groups); + if (IS_ERR(pmc->hwmon_dev)) + return PTR_ERR(pmc->hwmon_dev); platform_set_drvdata(pdev, pmc); return 0; diff -u linux-riscv-6.5.0/drivers/platform/mellanox/mlxbf-tmfifo.c linux-riscv-6.5.0/drivers/platform/mellanox/mlxbf-tmfifo.c --- linux-riscv-6.5.0/drivers/platform/mellanox/mlxbf-tmfifo.c +++ linux-riscv-6.5.0/drivers/platform/mellanox/mlxbf-tmfifo.c @@ -607,24 +607,25 @@ if (vring->cur_len + sizeof(u64) <= len) { /* The whole word. */ - if (!IS_VRING_DROP(vring)) { - if (is_rx) + if (is_rx) { + if (!IS_VRING_DROP(vring)) memcpy(addr + vring->cur_len, &data, sizeof(u64)); - else - memcpy(&data, addr + vring->cur_len, - sizeof(u64)); + } else { + memcpy(&data, addr + vring->cur_len, + sizeof(u64)); } vring->cur_len += sizeof(u64); } else { /* Leftover bytes. */ - if (!IS_VRING_DROP(vring)) { - if (is_rx) + if (is_rx) { + if (!IS_VRING_DROP(vring)) memcpy(addr + vring->cur_len, &data, len - vring->cur_len); - else - memcpy(&data, addr + vring->cur_len, - len - vring->cur_len); + } else { + data = 0; + memcpy(&data, addr + vring->cur_len, + len - vring->cur_len); } vring->cur_len = len; } diff -u linux-riscv-6.5.0/drivers/platform/x86/Kconfig linux-riscv-6.5.0/drivers/platform/x86/Kconfig --- linux-riscv-6.5.0/drivers/platform/x86/Kconfig +++ linux-riscv-6.5.0/drivers/platform/x86/Kconfig @@ -263,6 +263,7 @@ depends on RFKILL || RFKILL = n depends on HOTPLUG_PCI depends on ACPI_VIDEO || ACPI_VIDEO = n + depends on SERIO_I8042 || SERIO_I8042 = n select INPUT_SPARSEKMAP select LEDS_CLASS select NEW_LEDS @@ -279,7 +280,6 @@ config ASUS_NB_WMI tristate "Asus Notebook WMI Driver" depends on ASUS_WMI - depends on SERIO_I8042 || SERIO_I8042 = n help This is a driver for newer Asus notebooks. It adds extra features like wireless radio and bluetooth control, leds, hotkeys, backlight... diff -u linux-riscv-6.5.0/drivers/platform/x86/asus-nb-wmi.c linux-riscv-6.5.0/drivers/platform/x86/asus-nb-wmi.c --- linux-riscv-6.5.0/drivers/platform/x86/asus-nb-wmi.c +++ linux-riscv-6.5.0/drivers/platform/x86/asus-nb-wmi.c @@ -501,8 +501,6 @@ static void asus_nb_wmi_quirks(struct asus_wmi_driver *driver) { - int ret; - quirks = &quirk_asus_unknown; dmi_check_system(asus_quirks); @@ -517,20 +515,14 @@ if (tablet_mode_sw != -1) quirks->tablet_switch_mode = tablet_mode_sw; - - if (quirks->i8042_filter) { - ret = i8042_install_filter(quirks->i8042_filter); - if (ret) { - pr_warn("Unable to install key filter\n"); - return; - } - pr_info("Using i8042 filter function for receiving events\n"); - } } static const struct key_entry asus_nb_wmi_keymap[] = { { KE_KEY, ASUS_WMI_BRN_DOWN, { KEY_BRIGHTNESSDOWN } }, { KE_KEY, ASUS_WMI_BRN_UP, { KEY_BRIGHTNESSUP } }, + { KE_KEY, 0x2a, { KEY_SELECTIVE_SCREENSHOT } }, + { KE_IGNORE, 0x2b, }, /* PrintScreen (also send via PS/2) on newer models */ + { KE_IGNORE, 0x2c, }, /* CapsLock (also send via PS/2) on newer models */ { KE_KEY, 0x30, { KEY_VOLUMEUP } }, { KE_KEY, 0x31, { KEY_VOLUMEDOWN } }, { KE_KEY, 0x32, { KEY_MUTE } }, diff -u linux-riscv-6.5.0/drivers/powercap/intel_rapl_common.c linux-riscv-6.5.0/drivers/powercap/intel_rapl_common.c --- linux-riscv-6.5.0/drivers/powercap/intel_rapl_common.c +++ linux-riscv-6.5.0/drivers/powercap/intel_rapl_common.c @@ -892,7 +892,7 @@ return -EINVAL; if (rd->rpl[pl].locked) { - pr_warn("%s:%s:%s locked by BIOS\n", rd->rp->name, rd->name, pl_names[pl]); + pr_debug("%s:%s:%s locked by BIOS\n", rd->rp->name, rd->name, pl_names[pl]); return -EACCES; } diff -u linux-riscv-6.5.0/drivers/ptp/ptp_clock.c linux-riscv-6.5.0/drivers/ptp/ptp_clock.c --- linux-riscv-6.5.0/drivers/ptp/ptp_clock.c +++ linux-riscv-6.5.0/drivers/ptp/ptp_clock.c @@ -56,10 +56,11 @@ dst->t.sec = seconds; dst->t.nsec = remainder; + /* Both WRITE_ONCE() are paired with READ_ONCE() in queue_cnt() */ if (!queue_free(queue)) - queue->head = (queue->head + 1) % PTP_MAX_TIMESTAMPS; + WRITE_ONCE(queue->head, (queue->head + 1) % PTP_MAX_TIMESTAMPS); - queue->tail = (queue->tail + 1) % PTP_MAX_TIMESTAMPS; + WRITE_ONCE(queue->tail, (queue->tail + 1) % PTP_MAX_TIMESTAMPS); spin_unlock_irqrestore(&queue->lock, flags); } diff -u linux-riscv-6.5.0/drivers/regulator/core.c linux-riscv-6.5.0/drivers/regulator/core.c --- linux-riscv-6.5.0/drivers/regulator/core.c +++ linux-riscv-6.5.0/drivers/regulator/core.c @@ -5724,15 +5724,11 @@ mutex_lock(®ulator_list_mutex); regulator_ena_gpio_free(rdev); mutex_unlock(®ulator_list_mutex); - put_device(&rdev->dev); - rdev = NULL; clean: if (dangling_of_gpiod) gpiod_put(config->ena_gpiod); - if (rdev && rdev->dev.of_node) - of_node_put(rdev->dev.of_node); - kfree(rdev); kfree(config); + put_device(&rdev->dev); rinse: if (dangling_cfg_gpiod) gpiod_put(cfg->ena_gpiod); diff -u linux-riscv-6.5.0/drivers/regulator/mt6358-regulator.c linux-riscv-6.5.0/drivers/regulator/mt6358-regulator.c --- linux-riscv-6.5.0/drivers/regulator/mt6358-regulator.c +++ linux-riscv-6.5.0/drivers/regulator/mt6358-regulator.c @@ -688,12 +688,18 @@ const struct mt6358_regulator_info *mt6358_info; int i, max_regulator, ret; - if (mt6397->chip_id == MT6366_CHIP_ID) { - max_regulator = MT6366_MAX_REGULATOR; - mt6358_info = mt6366_regulators; - } else { + switch (mt6397->chip_id) { + case MT6358_CHIP_ID: max_regulator = MT6358_MAX_REGULATOR; mt6358_info = mt6358_regulators; + break; + case MT6366_CHIP_ID: + max_regulator = MT6366_MAX_REGULATOR; + mt6358_info = mt6366_regulators; + break; + default: + dev_err(&pdev->dev, "unsupported chip ID: %d\n", mt6397->chip_id); + return -EINVAL; } ret = mt6358_sync_vcn33_setting(&pdev->dev); diff -u linux-riscv-6.5.0/drivers/s390/crypto/ap_bus.c linux-riscv-6.5.0/drivers/s390/crypto/ap_bus.c --- linux-riscv-6.5.0/drivers/s390/crypto/ap_bus.c +++ linux-riscv-6.5.0/drivers/s390/crypto/ap_bus.c @@ -1039,6 +1039,10 @@ void ap_bus_force_rescan(void) { + /* Only trigger AP bus scans after the initial scan is done */ + if (atomic64_read(&ap_scan_bus_count) <= 0) + return; + /* processing a asynchronous bus rescan */ del_timer(&ap_config_timer); queue_work(system_long_wq, &ap_scan_work); @@ -1882,15 +1886,18 @@ } /* get it and thus adjust reference counter */ get_device(dev); - if (decfg) + if (decfg) { AP_DBF_INFO("%s(%d,%d) new (decfg) queue dev created\n", __func__, ac->id, dom); - else if (chkstop) + } else if (chkstop) { AP_DBF_INFO("%s(%d,%d) new (chkstop) queue dev created\n", __func__, ac->id, dom); - else + } else { + /* nudge the queue's state machine */ + ap_queue_init_state(aq); AP_DBF_INFO("%s(%d,%d) new queue dev created\n", __func__, ac->id, dom); + } goto put_dev_and_continue; } /* handle state changes on already existing queue device */ @@ -1912,10 +1919,8 @@ } else if (!chkstop && aq->chkstop) { /* checkstop off */ aq->chkstop = false; - if (aq->dev_state > AP_DEV_STATE_UNINITIATED) { - aq->dev_state = AP_DEV_STATE_OPERATING; - aq->sm_state = AP_SM_STATE_RESET_START; - } + if (aq->dev_state > AP_DEV_STATE_UNINITIATED) + _ap_queue_init_state(aq); spin_unlock_bh(&aq->lock); AP_DBF_DBG("%s(%d,%d) queue dev checkstop off\n", __func__, ac->id, dom); @@ -1939,10 +1944,8 @@ } else if (!decfg && !aq->config) { /* config on this queue device */ aq->config = true; - if (aq->dev_state > AP_DEV_STATE_UNINITIATED) { - aq->dev_state = AP_DEV_STATE_OPERATING; - aq->sm_state = AP_SM_STATE_RESET_START; - } + if (aq->dev_state > AP_DEV_STATE_UNINITIATED) + _ap_queue_init_state(aq); spin_unlock_bh(&aq->lock); AP_DBF_DBG("%s(%d,%d) queue dev config on\n", __func__, ac->id, dom); diff -u linux-riscv-6.5.0/drivers/s390/crypto/ap_bus.h linux-riscv-6.5.0/drivers/s390/crypto/ap_bus.h --- linux-riscv-6.5.0/drivers/s390/crypto/ap_bus.h +++ linux-riscv-6.5.0/drivers/s390/crypto/ap_bus.h @@ -302,6 +302,7 @@ void ap_queue_prepare_remove(struct ap_queue *aq); void ap_queue_remove(struct ap_queue *aq); void ap_queue_init_state(struct ap_queue *aq); +void _ap_queue_init_state(struct ap_queue *aq); struct ap_card *ap_card_create(int id, int queue_depth, int raw_type, int comp_type, unsigned int functions, int ml); diff -u linux-riscv-6.5.0/drivers/s390/net/Kconfig linux-riscv-6.5.0/drivers/s390/net/Kconfig --- linux-riscv-6.5.0/drivers/s390/net/Kconfig +++ linux-riscv-6.5.0/drivers/s390/net/Kconfig @@ -104,10 +104,11 @@ config ISM tristate "Support for ISM vPCI Adapter" depends on PCI + imply SMC default n help Select this option if you want to use the Internal Shared Memory - vPCI Adapter. + vPCI Adapter. The adapter can be used with the SMC network protocol. To compile as a module choose M. The module name is ism. If unsure, choose N. diff -u linux-riscv-6.5.0/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c linux-riscv-6.5.0/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c --- linux-riscv-6.5.0/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +++ linux-riscv-6.5.0/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c @@ -4861,6 +4861,12 @@ hisi_hba->debugfs_bist_linkrate = SAS_LINK_RATE_1_5_GBPS; } +static void debugfs_exit_v3_hw(struct hisi_hba *hisi_hba) +{ + debugfs_remove_recursive(hisi_hba->debugfs_dir); + hisi_hba->debugfs_dir = NULL; +} + static void debugfs_init_v3_hw(struct hisi_hba *hisi_hba) { struct device *dev = hisi_hba->dev; @@ -4884,18 +4890,13 @@ for (i = 0; i < hisi_sas_debugfs_dump_count; i++) { if (debugfs_alloc_v3_hw(hisi_hba, i)) { - debugfs_remove_recursive(hisi_hba->debugfs_dir); + debugfs_exit_v3_hw(hisi_hba); dev_dbg(dev, "failed to init debugfs!\n"); break; } } } -static void debugfs_exit_v3_hw(struct hisi_hba *hisi_hba) -{ - debugfs_remove_recursive(hisi_hba->debugfs_dir); -} - static int hisi_sas_v3_probe(struct pci_dev *pdev, const struct pci_device_id *id) { diff -u linux-riscv-6.5.0/drivers/scsi/megaraid/megaraid_sas_base.c linux-riscv-6.5.0/drivers/scsi/megaraid/megaraid_sas_base.c --- linux-riscv-6.5.0/drivers/scsi/megaraid/megaraid_sas_base.c +++ linux-riscv-6.5.0/drivers/scsi/megaraid/megaraid_sas_base.c @@ -263,13 +263,13 @@ * Fusion registers could intermittently return all zeroes. * This behavior is transient in nature and subsequent reads will * return valid value. As a workaround in driver, retry readl for - * upto three times until a non-zero value is read. + * up to thirty times until a non-zero value is read. */ if (instance->adapter_type == AERO_SERIES) { do { ret_val = readl(addr); i++; - } while (ret_val == 0 && i < 3); + } while (ret_val == 0 && i < 30); return ret_val; } else { return readl(addr); diff -u linux-riscv-6.5.0/drivers/scsi/mpt3sas/mpt3sas_base.c linux-riscv-6.5.0/drivers/scsi/mpt3sas/mpt3sas_base.c --- linux-riscv-6.5.0/drivers/scsi/mpt3sas/mpt3sas_base.c +++ linux-riscv-6.5.0/drivers/scsi/mpt3sas/mpt3sas_base.c @@ -223,8 +223,8 @@ for (i = 0 ; i < 30 ; i++) { ret_val = readl(addr); - if (ret_val == 0) - continue; + if (ret_val != 0) + break; } return ret_val; diff -u linux-riscv-6.5.0/drivers/scsi/qla2xxx/qla_os.c linux-riscv-6.5.0/drivers/scsi/qla2xxx/qla_os.c --- linux-riscv-6.5.0/drivers/scsi/qla2xxx/qla_os.c +++ linux-riscv-6.5.0/drivers/scsi/qla2xxx/qla_os.c @@ -1835,8 +1835,16 @@ } spin_lock_irqsave(qp->qp_lock_ptr, *flags); - if (ret_cmd && blk_mq_request_started(scsi_cmd_to_rq(cmd))) - sp->done(sp, res); + switch (sp->type) { + case SRB_SCSI_CMD: + if (ret_cmd && blk_mq_request_started(scsi_cmd_to_rq(cmd))) + sp->done(sp, res); + break; + default: + if (ret_cmd) + sp->done(sp, res); + break; + } } else { sp->done(sp, res); } diff -u linux-riscv-6.5.0/drivers/scsi/sd.c linux-riscv-6.5.0/drivers/scsi/sd.c --- linux-riscv-6.5.0/drivers/scsi/sd.c +++ linux-riscv-6.5.0/drivers/scsi/sd.c @@ -221,7 +221,8 @@ return sysfs_emit(buf, "%u\n", sdp->manage_system_start_stop && - sdp->manage_runtime_start_stop); + sdp->manage_runtime_start_stop && + sdp->manage_shutdown); } static DEVICE_ATTR_RO(manage_start_stop); @@ -288,4 +289,33 @@ static DEVICE_ATTR_RW(manage_runtime_start_stop); +static ssize_t manage_shutdown_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct scsi_disk *sdkp = to_scsi_disk(dev); + struct scsi_device *sdp = sdkp->device; + + return sysfs_emit(buf, "%u\n", sdp->manage_shutdown); +} + +static ssize_t manage_shutdown_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct scsi_disk *sdkp = to_scsi_disk(dev); + struct scsi_device *sdp = sdkp->device; + bool v; + + if (!capable(CAP_SYS_ADMIN)) + return -EACCES; + + if (kstrtobool(buf, &v)) + return -EINVAL; + + sdp->manage_shutdown = v; + + return count; +} +static DEVICE_ATTR_RW(manage_shutdown); + static ssize_t allow_restart_show(struct device *dev, struct device_attribute *attr, char *buf) @@ -619,6 +649,7 @@ &dev_attr_manage_start_stop.attr, &dev_attr_manage_system_start_stop.attr, &dev_attr_manage_runtime_start_stop.attr, + &dev_attr_manage_shutdown.attr, &dev_attr_protection_type.attr, &dev_attr_protection_mode.attr, &dev_attr_app_tag_own.attr, @@ -1650,24 +1681,21 @@ return disk_changed ? DISK_EVENT_MEDIA_CHANGE : 0; } -static int sd_sync_cache(struct scsi_disk *sdkp, struct scsi_sense_hdr *sshdr) +static int sd_sync_cache(struct scsi_disk *sdkp) { int retries, res; struct scsi_device *sdp = sdkp->device; const int timeout = sdp->request_queue->rq_timeout * SD_FLUSH_TIMEOUT_MULTIPLIER; - struct scsi_sense_hdr my_sshdr; + struct scsi_sense_hdr sshdr; const struct scsi_exec_args exec_args = { .req_flags = BLK_MQ_REQ_PM, - /* caller might not be interested in sense, but we need it */ - .sshdr = sshdr ? : &my_sshdr, + .sshdr = &sshdr, }; if (!scsi_device_online(sdp)) return -ENODEV; - sshdr = exec_args.sshdr; - for (retries = 3; retries > 0; --retries) { unsigned char cmd[16] = { 0 }; @@ -1692,15 +1720,23 @@ return res; if (scsi_status_is_check_condition(res) && - scsi_sense_valid(sshdr)) { - sd_print_sense_hdr(sdkp, sshdr); + scsi_sense_valid(&sshdr)) { + sd_print_sense_hdr(sdkp, &sshdr); /* we need to evaluate the error return */ - if (sshdr->asc == 0x3a || /* medium not present */ - sshdr->asc == 0x20 || /* invalid command */ - (sshdr->asc == 0x74 && sshdr->ascq == 0x71)) /* drive is password locked */ + if (sshdr.asc == 0x3a || /* medium not present */ + sshdr.asc == 0x20 || /* invalid command */ + (sshdr.asc == 0x74 && sshdr.ascq == 0x71)) /* drive is password locked */ /* this is no error here */ return 0; + /* + * This drive doesn't support sync and there's not much + * we can do because this is called during shutdown + * or suspend so just return success so those operations + * can proceed. + */ + if (sshdr.sense_key == ILLEGAL_REQUEST) + return 0; } switch (host_byte(res)) { @@ -3855,11 +3891,13 @@ if (sdkp->WCE && sdkp->media_present) { sd_printk(KERN_NOTICE, sdkp, "Synchronizing SCSI cache\n"); - sd_sync_cache(sdkp, NULL); + sd_sync_cache(sdkp); } - if (system_state != SYSTEM_RESTART && - sdkp->device->manage_system_start_stop) { + if ((system_state != SYSTEM_RESTART && + sdkp->device->manage_system_start_stop) || + (system_state == SYSTEM_POWER_OFF && + sdkp->device->manage_shutdown)) { sd_printk(KERN_NOTICE, sdkp, "Stopping disk\n"); sd_start_stop_device(sdkp, 0); } @@ -3874,7 +3912,6 @@ static int sd_suspend_common(struct device *dev, bool runtime) { struct scsi_disk *sdkp = dev_get_drvdata(dev); - struct scsi_sense_hdr sshdr; int ret = 0; if (!sdkp) /* E.g.: runtime suspend following sd_remove() */ @@ -3883,24 +3920,13 @@ if (sdkp->WCE && sdkp->media_present) { if (!sdkp->device->silence_suspend) sd_printk(KERN_NOTICE, sdkp, "Synchronizing SCSI cache\n"); - ret = sd_sync_cache(sdkp, &sshdr); - - if (ret) { - /* ignore OFFLINE device */ - if (ret == -ENODEV) - return 0; + ret = sd_sync_cache(sdkp); + /* ignore OFFLINE device */ + if (ret == -ENODEV) + return 0; - if (!scsi_sense_valid(&sshdr) || - sshdr.sense_key != ILLEGAL_REQUEST) - return ret; - - /* - * sshdr.sense_key == ILLEGAL_REQUEST means this drive - * doesn't support sync. There's not much to do and - * suspend shouldn't fail. - */ - ret = 0; - } + if (ret) + return ret; } if (sd_do_start_stop(sdkp->device, runtime)) { @@ -3959,8 +3985,15 @@ static int sd_resume_system(struct device *dev) { - if (pm_runtime_suspended(dev)) + if (pm_runtime_suspended(dev)) { + struct scsi_disk *sdkp = dev_get_drvdata(dev); + struct scsi_device *sdp = sdkp ? sdkp->device : NULL; + + if (sdp && sdp->force_runtime_start_on_system_start) + pm_request_resume(dev); + return 0; + } return sd_resume(dev, false); } diff -u linux-riscv-6.5.0/drivers/spi/spi-nxp-fspi.c linux-riscv-6.5.0/drivers/spi/spi-nxp-fspi.c --- linux-riscv-6.5.0/drivers/spi/spi-nxp-fspi.c +++ linux-riscv-6.5.0/drivers/spi/spi-nxp-fspi.c @@ -760,7 +760,7 @@ f->memmap_len = len > NXP_FSPI_MIN_IOMAP ? len : NXP_FSPI_MIN_IOMAP; - f->ahb_addr = ioremap_wc(f->memmap_phy + f->memmap_start, + f->ahb_addr = ioremap(f->memmap_phy + f->memmap_start, f->memmap_len); if (!f->ahb_addr) { diff -u linux-riscv-6.5.0/drivers/thunderbolt/switch.c linux-riscv-6.5.0/drivers/thunderbolt/switch.c --- linux-riscv-6.5.0/drivers/thunderbolt/switch.c +++ linux-riscv-6.5.0/drivers/thunderbolt/switch.c @@ -1082,7 +1082,7 @@ * Only set bonding if the link was not already bonded. This * avoids the lane adapter to re-enter bonding state. */ - if (width == TB_LINK_WIDTH_SINGLE) { + if (width == TB_LINK_WIDTH_SINGLE && !tb_is_upstream_port(port)) { ret = tb_port_set_lane_bonding(port, true); if (ret) goto err_lane1; diff -u linux-riscv-6.5.0/drivers/tty/n_gsm.c linux-riscv-6.5.0/drivers/tty/n_gsm.c --- linux-riscv-6.5.0/drivers/tty/n_gsm.c +++ linux-riscv-6.5.0/drivers/tty/n_gsm.c @@ -4058,6 +4058,8 @@ static int gsm_modem_update(struct gsm_dlci *dlci, u8 brk) { + if (dlci->gsm->dead) + return -EL2HLT; if (dlci->adaption == 2) { /* Send convergence layer type 2 empty data frame. */ gsm_modem_upd_via_data(dlci, brk); diff -u linux-riscv-6.5.0/drivers/tty/serial/8250/8250_omap.c linux-riscv-6.5.0/drivers/tty/serial/8250/8250_omap.c --- linux-riscv-6.5.0/drivers/tty/serial/8250/8250_omap.c +++ linux-riscv-6.5.0/drivers/tty/serial/8250/8250_omap.c @@ -915,7 +915,7 @@ if (priv->habit & UART_HAS_RHR_IT_DIS) { reg = serial_in(p, UART_OMAP_IER2); reg &= ~UART_OMAP_IER2_RHR_IT_DIS; - serial_out(p, UART_OMAP_IER2, UART_OMAP_IER2_RHR_IT_DIS); + serial_out(p, UART_OMAP_IER2, reg); } dmaengine_tx_status(rxchan, cookie, &state); @@ -1061,7 +1061,7 @@ if (priv->habit & UART_HAS_RHR_IT_DIS) { reg = serial_in(p, UART_OMAP_IER2); reg |= UART_OMAP_IER2_RHR_IT_DIS; - serial_out(p, UART_OMAP_IER2, UART_OMAP_IER2_RHR_IT_DIS); + serial_out(p, UART_OMAP_IER2, reg); } dma_async_issue_pending(dma->rxchan); @@ -1283,10 +1283,12 @@ status = serial_port_in(port, UART_LSR); - if (priv->habit & UART_HAS_EFR2) - am654_8250_handle_rx_dma(up, iir, status); - else - status = omap_8250_handle_rx_dma(up, iir, status); + if ((iir & 0x3f) != UART_IIR_THRI) { + if (priv->habit & UART_HAS_EFR2) + am654_8250_handle_rx_dma(up, iir, status); + else + status = omap_8250_handle_rx_dma(up, iir, status); + } serial8250_modem_status(up); if (status & UART_LSR_THRE && up->dma->tx_err) { diff -u linux-riscv-6.5.0/drivers/tty/serial/sc16is7xx.c linux-riscv-6.5.0/drivers/tty/serial/sc16is7xx.c --- linux-riscv-6.5.0/drivers/tty/serial/sc16is7xx.c +++ linux-riscv-6.5.0/drivers/tty/serial/sc16is7xx.c @@ -486,6 +486,7 @@ case SC16IS7XX_TXLVL_REG: case SC16IS7XX_RXLVL_REG: case SC16IS7XX_IOSTATE_REG: + case SC16IS7XX_IOCONTROL_REG: return true; default: break; @@ -765,6 +766,18 @@ case SC16IS7XX_IIR_RTOI_SRC: case SC16IS7XX_IIR_XOFFI_SRC: rxlen = sc16is7xx_port_read(port, SC16IS7XX_RXLVL_REG); + + /* + * There is a silicon bug that makes the chip report a + * time-out interrupt but no data in the FIFO. This is + * described in errata section 18.1.4. + * + * When this happens, read one byte from the FIFO to + * clear the interrupt. + */ + if (iir == SC16IS7XX_IIR_RTOI_SRC && !rxlen) + rxlen = 1; + if (rxlen) sc16is7xx_handle_rx(port, rxlen, iir); break; @@ -1552,6 +1565,10 @@ goto out_ports; } + ret = uart_get_rs485_mode(&s->p[i].port); + if (ret) + goto out_ports; + /* Disable all interrupts */ sc16is7xx_port_write(&s->p[i].port, SC16IS7XX_IER_REG, 0); /* Disable TX/RX */ diff -u linux-riscv-6.5.0/drivers/tty/serial/serial_core.c linux-riscv-6.5.0/drivers/tty/serial/serial_core.c --- linux-riscv-6.5.0/drivers/tty/serial/serial_core.c +++ linux-riscv-6.5.0/drivers/tty/serial/serial_core.c @@ -147,7 +147,7 @@ /* Increment the runtime PM usage count for the active check below */ err = pm_runtime_get(&port_dev->dev); - if (err < 0) { + if (err < 0 && err != -EINPROGRESS) { pm_runtime_put_noidle(&port_dev->dev); return; } diff -u linux-riscv-6.5.0/drivers/ufs/core/ufshcd.c linux-riscv-6.5.0/drivers/ufs/core/ufshcd.c --- linux-riscv-6.5.0/drivers/ufs/core/ufshcd.c +++ linux-riscv-6.5.0/drivers/ufs/core/ufshcd.c @@ -3665,7 +3665,7 @@ */ ret = utf16s_to_utf8s(uc_str->uc, uc_str->len - QUERY_DESC_HDR_SIZE, - UTF16_BIG_ENDIAN, str, ascii_len); + UTF16_BIG_ENDIAN, str, ascii_len - 1); /* replace non-printable or non-ASCII characters with spaces */ for (i = 0; i < ret; i++) @@ -8798,7 +8798,8 @@ if (ret) goto out; - if (hba->quirks & UFSHCD_QUIRK_REINIT_AFTER_MAX_GEAR_SWITCH) { + if (!hba->pm_op_in_progress && + (hba->quirks & UFSHCD_QUIRK_REINIT_AFTER_MAX_GEAR_SWITCH)) { /* Reset the device and controller before doing reinit */ ufshcd_device_reset(hba); ufshcd_hba_stop(hba); diff -u linux-riscv-6.5.0/drivers/usb/chipidea/host.c linux-riscv-6.5.0/drivers/usb/chipidea/host.c --- linux-riscv-6.5.0/drivers/usb/chipidea/host.c +++ linux-riscv-6.5.0/drivers/usb/chipidea/host.c @@ -30,8 +30,7 @@ }; struct ci_hdrc_dma_aligned_buffer { - void *kmalloc_ptr; - void *old_xfer_buffer; + void *original_buffer; u8 data[]; }; @@ -380,59 +379,52 @@ return 0; } -static void ci_hdrc_free_dma_aligned_buffer(struct urb *urb) +static void ci_hdrc_free_dma_aligned_buffer(struct urb *urb, bool copy_back) { struct ci_hdrc_dma_aligned_buffer *temp; - size_t length; if (!(urb->transfer_flags & URB_ALIGNED_TEMP_BUFFER)) return; + urb->transfer_flags &= ~URB_ALIGNED_TEMP_BUFFER; temp = container_of(urb->transfer_buffer, struct ci_hdrc_dma_aligned_buffer, data); + urb->transfer_buffer = temp->original_buffer; + + if (copy_back && usb_urb_dir_in(urb)) { + size_t length; - if (usb_urb_dir_in(urb)) { if (usb_pipeisoc(urb->pipe)) length = urb->transfer_buffer_length; else length = urb->actual_length; - memcpy(temp->old_xfer_buffer, temp->data, length); + memcpy(temp->original_buffer, temp->data, length); } - urb->transfer_buffer = temp->old_xfer_buffer; - kfree(temp->kmalloc_ptr); - urb->transfer_flags &= ~URB_ALIGNED_TEMP_BUFFER; + kfree(temp); } static int ci_hdrc_alloc_dma_aligned_buffer(struct urb *urb, gfp_t mem_flags) { - struct ci_hdrc_dma_aligned_buffer *temp, *kmalloc_ptr; - const unsigned int ci_hdrc_usb_dma_align = 32; - size_t kmalloc_size; + struct ci_hdrc_dma_aligned_buffer *temp; - if (urb->num_sgs || urb->sg || urb->transfer_buffer_length == 0 || - !((uintptr_t)urb->transfer_buffer & (ci_hdrc_usb_dma_align - 1))) + if (urb->num_sgs || urb->sg || urb->transfer_buffer_length == 0) + return 0; + if (IS_ALIGNED((uintptr_t)urb->transfer_buffer, 4) + && IS_ALIGNED(urb->transfer_buffer_length, 4)) return 0; - /* Allocate a buffer with enough padding for alignment */ - kmalloc_size = urb->transfer_buffer_length + - sizeof(struct ci_hdrc_dma_aligned_buffer) + - ci_hdrc_usb_dma_align - 1; - - kmalloc_ptr = kmalloc(kmalloc_size, mem_flags); - if (!kmalloc_ptr) + temp = kmalloc(sizeof(*temp) + ALIGN(urb->transfer_buffer_length, 4), mem_flags); + if (!temp) return -ENOMEM; - /* Position our struct dma_aligned_buffer such that data is aligned */ - temp = PTR_ALIGN(kmalloc_ptr + 1, ci_hdrc_usb_dma_align) - 1; - temp->kmalloc_ptr = kmalloc_ptr; - temp->old_xfer_buffer = urb->transfer_buffer; if (usb_urb_dir_out(urb)) memcpy(temp->data, urb->transfer_buffer, urb->transfer_buffer_length); - urb->transfer_buffer = temp->data; + temp->original_buffer = urb->transfer_buffer; + urb->transfer_buffer = temp->data; urb->transfer_flags |= URB_ALIGNED_TEMP_BUFFER; return 0; @@ -449,7 +441,7 @@ ret = usb_hcd_map_urb_for_dma(hcd, urb, mem_flags); if (ret) - ci_hdrc_free_dma_aligned_buffer(urb); + ci_hdrc_free_dma_aligned_buffer(urb, false); return ret; } @@ -457,7 +449,7 @@ static void ci_hdrc_unmap_urb_for_dma(struct usb_hcd *hcd, struct urb *urb) { usb_hcd_unmap_urb_for_dma(hcd, urb); - ci_hdrc_free_dma_aligned_buffer(urb); + ci_hdrc_free_dma_aligned_buffer(urb, true); } #ifdef CONFIG_PM_SLEEP diff -u linux-riscv-6.5.0/drivers/usb/dwc3/core.c linux-riscv-6.5.0/drivers/usb/dwc3/core.c --- linux-riscv-6.5.0/drivers/usb/dwc3/core.c +++ linux-riscv-6.5.0/drivers/usb/dwc3/core.c @@ -1094,6 +1094,111 @@ } } +static void dwc3_config_threshold(struct dwc3 *dwc) +{ + u32 reg; + u8 rx_thr_num; + u8 rx_maxburst; + u8 tx_thr_num; + u8 tx_maxburst; + + /* + * Must config both number of packets and max burst settings to enable + * RX and/or TX threshold. + */ + if (!DWC3_IP_IS(DWC3) && dwc->dr_mode == USB_DR_MODE_HOST) { + rx_thr_num = dwc->rx_thr_num_pkt_prd; + rx_maxburst = dwc->rx_max_burst_prd; + tx_thr_num = dwc->tx_thr_num_pkt_prd; + tx_maxburst = dwc->tx_max_burst_prd; + + if (rx_thr_num && rx_maxburst) { + reg = dwc3_readl(dwc->regs, DWC3_GRXTHRCFG); + reg |= DWC31_RXTHRNUMPKTSEL_PRD; + + reg &= ~DWC31_RXTHRNUMPKT_PRD(~0); + reg |= DWC31_RXTHRNUMPKT_PRD(rx_thr_num); + + reg &= ~DWC31_MAXRXBURSTSIZE_PRD(~0); + reg |= DWC31_MAXRXBURSTSIZE_PRD(rx_maxburst); + + dwc3_writel(dwc->regs, DWC3_GRXTHRCFG, reg); + } + + if (tx_thr_num && tx_maxburst) { + reg = dwc3_readl(dwc->regs, DWC3_GTXTHRCFG); + reg |= DWC31_TXTHRNUMPKTSEL_PRD; + + reg &= ~DWC31_TXTHRNUMPKT_PRD(~0); + reg |= DWC31_TXTHRNUMPKT_PRD(tx_thr_num); + + reg &= ~DWC31_MAXTXBURSTSIZE_PRD(~0); + reg |= DWC31_MAXTXBURSTSIZE_PRD(tx_maxburst); + + dwc3_writel(dwc->regs, DWC3_GTXTHRCFG, reg); + } + } + + rx_thr_num = dwc->rx_thr_num_pkt; + rx_maxburst = dwc->rx_max_burst; + tx_thr_num = dwc->tx_thr_num_pkt; + tx_maxburst = dwc->tx_max_burst; + + if (DWC3_IP_IS(DWC3)) { + if (rx_thr_num && rx_maxburst) { + reg = dwc3_readl(dwc->regs, DWC3_GRXTHRCFG); + reg |= DWC3_GRXTHRCFG_PKTCNTSEL; + + reg &= ~DWC3_GRXTHRCFG_RXPKTCNT(~0); + reg |= DWC3_GRXTHRCFG_RXPKTCNT(rx_thr_num); + + reg &= ~DWC3_GRXTHRCFG_MAXRXBURSTSIZE(~0); + reg |= DWC3_GRXTHRCFG_MAXRXBURSTSIZE(rx_maxburst); + + dwc3_writel(dwc->regs, DWC3_GRXTHRCFG, reg); + } + + if (tx_thr_num && tx_maxburst) { + reg = dwc3_readl(dwc->regs, DWC3_GTXTHRCFG); + reg |= DWC3_GTXTHRCFG_PKTCNTSEL; + + reg &= ~DWC3_GTXTHRCFG_TXPKTCNT(~0); + reg |= DWC3_GTXTHRCFG_TXPKTCNT(tx_thr_num); + + reg &= ~DWC3_GTXTHRCFG_MAXTXBURSTSIZE(~0); + reg |= DWC3_GTXTHRCFG_MAXTXBURSTSIZE(tx_maxburst); + + dwc3_writel(dwc->regs, DWC3_GTXTHRCFG, reg); + } + } else { + if (rx_thr_num && rx_maxburst) { + reg = dwc3_readl(dwc->regs, DWC3_GRXTHRCFG); + reg |= DWC31_GRXTHRCFG_PKTCNTSEL; + + reg &= ~DWC31_GRXTHRCFG_RXPKTCNT(~0); + reg |= DWC31_GRXTHRCFG_RXPKTCNT(rx_thr_num); + + reg &= ~DWC31_GRXTHRCFG_MAXRXBURSTSIZE(~0); + reg |= DWC31_GRXTHRCFG_MAXRXBURSTSIZE(rx_maxburst); + + dwc3_writel(dwc->regs, DWC3_GRXTHRCFG, reg); + } + + if (tx_thr_num && tx_maxburst) { + reg = dwc3_readl(dwc->regs, DWC3_GTXTHRCFG); + reg |= DWC31_GTXTHRCFG_PKTCNTSEL; + + reg &= ~DWC31_GTXTHRCFG_TXPKTCNT(~0); + reg |= DWC31_GTXTHRCFG_TXPKTCNT(tx_thr_num); + + reg &= ~DWC31_GTXTHRCFG_MAXTXBURSTSIZE(~0); + reg |= DWC31_GTXTHRCFG_MAXTXBURSTSIZE(tx_maxburst); + + dwc3_writel(dwc->regs, DWC3_GTXTHRCFG, reg); + } + } +} + /** * dwc3_core_init - Low-level initialization of DWC3 Core * @dwc: Pointer to our controller context structure @@ -1246,42 +1351,7 @@ dwc3_writel(dwc->regs, DWC3_GUCTL1, reg); } - /* - * Must config both number of packets and max burst settings to enable - * RX and/or TX threshold. - */ - if (!DWC3_IP_IS(DWC3) && dwc->dr_mode == USB_DR_MODE_HOST) { - u8 rx_thr_num = dwc->rx_thr_num_pkt_prd; - u8 rx_maxburst = dwc->rx_max_burst_prd; - u8 tx_thr_num = dwc->tx_thr_num_pkt_prd; - u8 tx_maxburst = dwc->tx_max_burst_prd; - - if (rx_thr_num && rx_maxburst) { - reg = dwc3_readl(dwc->regs, DWC3_GRXTHRCFG); - reg |= DWC31_RXTHRNUMPKTSEL_PRD; - - reg &= ~DWC31_RXTHRNUMPKT_PRD(~0); - reg |= DWC31_RXTHRNUMPKT_PRD(rx_thr_num); - - reg &= ~DWC31_MAXRXBURSTSIZE_PRD(~0); - reg |= DWC31_MAXRXBURSTSIZE_PRD(rx_maxburst); - - dwc3_writel(dwc->regs, DWC3_GRXTHRCFG, reg); - } - - if (tx_thr_num && tx_maxburst) { - reg = dwc3_readl(dwc->regs, DWC3_GTXTHRCFG); - reg |= DWC31_TXTHRNUMPKTSEL_PRD; - - reg &= ~DWC31_TXTHRNUMPKT_PRD(~0); - reg |= DWC31_TXTHRNUMPKT_PRD(tx_thr_num); - - reg &= ~DWC31_MAXTXBURSTSIZE_PRD(~0); - reg |= DWC31_MAXTXBURSTSIZE_PRD(tx_maxburst); - - dwc3_writel(dwc->regs, DWC3_GTXTHRCFG, reg); - } - } + dwc3_config_threshold(dwc); return 0; @@ -1417,6 +1487,10 @@ u8 lpm_nyet_threshold; u8 tx_de_emphasis; u8 hird_threshold; + u8 rx_thr_num_pkt = 0; + u8 rx_max_burst = 0; + u8 tx_thr_num_pkt = 0; + u8 tx_max_burst = 0; u8 rx_thr_num_pkt_prd = 0; u8 rx_max_burst_prd = 0; u8 tx_thr_num_pkt_prd = 0; @@ -1479,6 +1553,14 @@ "snps,usb2-lpm-disable"); dwc->usb2_gadget_lpm_disable = device_property_read_bool(dev, "snps,usb2-gadget-lpm-disable"); + device_property_read_u8(dev, "snps,rx-thr-num-pkt", + &rx_thr_num_pkt); + device_property_read_u8(dev, "snps,rx-max-burst", + &rx_max_burst); + device_property_read_u8(dev, "snps,tx-thr-num-pkt", + &tx_thr_num_pkt); + device_property_read_u8(dev, "snps,tx-max-burst", + &tx_max_burst); device_property_read_u8(dev, "snps,rx-thr-num-pkt-prd", &rx_thr_num_pkt_prd); device_property_read_u8(dev, "snps,rx-max-burst-prd", @@ -1560,6 +1642,12 @@ dwc->hird_threshold = hird_threshold; + dwc->rx_thr_num_pkt = rx_thr_num_pkt; + dwc->rx_max_burst = rx_max_burst; + + dwc->tx_thr_num_pkt = tx_thr_num_pkt; + dwc->tx_max_burst = tx_max_burst; + dwc->rx_thr_num_pkt_prd = rx_thr_num_pkt_prd; dwc->rx_max_burst_prd = rx_max_burst_prd; @@ -1918,6 +2006,8 @@ pm_runtime_put(dev); + dma_set_max_seg_size(dev, UINT_MAX); + return 0; err_exit_debugfs: diff -u linux-riscv-6.5.0/drivers/usb/gadget/function/f_ncm.c linux-riscv-6.5.0/drivers/usb/gadget/function/f_ncm.c --- linux-riscv-6.5.0/drivers/usb/gadget/function/f_ncm.c +++ linux-riscv-6.5.0/drivers/usb/gadget/function/f_ncm.c @@ -1425,7 +1425,7 @@ struct usb_composite_dev *cdev = c->cdev; struct f_ncm *ncm = func_to_ncm(f); struct usb_string *us; - int status; + int status = 0; struct usb_ep *ep; struct f_ncm_opts *ncm_opts; @@ -1443,22 +1443,17 @@ f->os_desc_table[0].os_desc = &ncm_opts->ncm_os_desc; } - /* - * in drivers/usb/gadget/configfs.c:configfs_composite_bind() - * configurations are bound in sequence with list_for_each_entry, - * in each configuration its functions are bound in sequence - * with list_for_each_entry, so we assume no race condition - * with regard to ncm_opts->bound access - */ - if (!ncm_opts->bound) { - mutex_lock(&ncm_opts->lock); - gether_set_gadget(ncm_opts->net, cdev->gadget); + mutex_lock(&ncm_opts->lock); + gether_set_gadget(ncm_opts->net, cdev->gadget); + if (!ncm_opts->bound) status = gether_register_netdev(ncm_opts->net); - mutex_unlock(&ncm_opts->lock); - if (status) - goto fail; - ncm_opts->bound = true; - } + mutex_unlock(&ncm_opts->lock); + + if (status) + goto fail; + + ncm_opts->bound = true; + us = usb_gstrings_attach(cdev, ncm_strings, ARRAY_SIZE(ncm_string_defs)); if (IS_ERR(us)) { diff -u linux-riscv-6.5.0/drivers/usb/gadget/udc/core.c linux-riscv-6.5.0/drivers/usb/gadget/udc/core.c --- linux-riscv-6.5.0/drivers/usb/gadget/udc/core.c +++ linux-riscv-6.5.0/drivers/usb/gadget/udc/core.c @@ -1635,8 +1635,6 @@ dev_dbg(&udc->dev, "unbinding gadget driver [%s]\n", driver->function); - kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE); - udc->allow_connect = false; cancel_work_sync(&udc->vbus_work); mutex_lock(&udc->connect_lock); @@ -1656,6 +1654,8 @@ driver->is_bound = false; udc->driver = NULL; mutex_unlock(&udc_lock); + + kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE); } /* ------------------------------------------------------------------------- */ diff -u linux-riscv-6.5.0/drivers/usb/misc/onboard_usb_hub.c linux-riscv-6.5.0/drivers/usb/misc/onboard_usb_hub.c --- linux-riscv-6.5.0/drivers/usb/misc/onboard_usb_hub.c +++ linux-riscv-6.5.0/drivers/usb/misc/onboard_usb_hub.c @@ -412,6 +412,8 @@ { USB_DEVICE(VENDOR_ID_MICROCHIP, 0x2412) }, /* USB2412 USB 2.0 */ { USB_DEVICE(VENDOR_ID_MICROCHIP, 0x2514) }, /* USB2514B USB 2.0 */ { USB_DEVICE(VENDOR_ID_MICROCHIP, 0x2517) }, /* USB2517 USB 2.0 */ + { USB_DEVICE(VENDOR_ID_MICROCHIP, 0x2744) }, /* USB5744 USB 2.0 */ + { USB_DEVICE(VENDOR_ID_MICROCHIP, 0x5744) }, /* USB5744 USB 3.0 */ { USB_DEVICE(VENDOR_ID_REALTEK, 0x0411) }, /* RTS5411 USB 3.1 */ { USB_DEVICE(VENDOR_ID_REALTEK, 0x5411) }, /* RTS5411 USB 2.1 */ { USB_DEVICE(VENDOR_ID_REALTEK, 0x0414) }, /* RTS5414 USB 3.2 */ diff -u linux-riscv-6.5.0/drivers/usb/misc/onboard_usb_hub.h linux-riscv-6.5.0/drivers/usb/misc/onboard_usb_hub.h --- linux-riscv-6.5.0/drivers/usb/misc/onboard_usb_hub.h +++ linux-riscv-6.5.0/drivers/usb/misc/onboard_usb_hub.h @@ -14,6 +14,10 @@ .reset_us = 1, }; +static const struct onboard_hub_pdata microchip_usb5744_data = { + .reset_us = 0, +}; + static const struct onboard_hub_pdata realtek_rts5411_data = { .reset_us = 0, }; @@ -38,6 +42,8 @@ { .compatible = "usb424,2412", .data = µchip_usb424_data, }, { .compatible = "usb424,2514", .data = µchip_usb424_data, }, { .compatible = "usb424,2517", .data = µchip_usb424_data, }, + { .compatible = "usb424,2744", .data = µchip_usb5744_data, }, + { .compatible = "usb424,5744", .data = µchip_usb5744_data, }, { .compatible = "usb451,8140", .data = &ti_tusb8041_data, }, { .compatible = "usb451,8142", .data = &ti_tusb8041_data, }, { .compatible = "usb5e3,608", .data = &genesys_gl850g_data, }, diff -u linux-riscv-6.5.0/drivers/usb/serial/option.c linux-riscv-6.5.0/drivers/usb/serial/option.c --- linux-riscv-6.5.0/drivers/usb/serial/option.c +++ linux-riscv-6.5.0/drivers/usb/serial/option.c @@ -203,6 +203,9 @@ #define DELL_PRODUCT_5829E_ESIM 0x81e4 #define DELL_PRODUCT_5829E 0x81e6 +#define DELL_PRODUCT_FM101R_ESIM 0x8213 +#define DELL_PRODUCT_FM101R 0x8215 + #define KYOCERA_VENDOR_ID 0x0c88 #define KYOCERA_PRODUCT_KPC650 0x17da #define KYOCERA_PRODUCT_KPC680 0x180a @@ -606,6 +609,8 @@ #define UNISOC_VENDOR_ID 0x1782 /* TOZED LT70-C based on UNISOC SL8563 uses UNISOC's vendor ID */ #define TOZED_PRODUCT_LT70C 0x4055 +/* Luat Air72*U series based on UNISOC UIS8910 uses UNISOC's vendor ID */ +#define LUAT_PRODUCT_AIR720U 0x4e00 /* Device flags */ @@ -1108,6 +1113,8 @@ .driver_info = RSVD(0) | RSVD(6) }, { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5829E_ESIM), .driver_info = RSVD(0) | RSVD(6) }, + { USB_DEVICE_INTERFACE_CLASS(DELL_VENDOR_ID, DELL_PRODUCT_FM101R, 0xff) }, + { USB_DEVICE_INTERFACE_CLASS(DELL_VENDOR_ID, DELL_PRODUCT_FM101R_ESIM, 0xff) }, { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) }, /* ADU-E100, ADU-310 */ { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) }, { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) }, @@ -1290,6 +1297,7 @@ .driver_info = NCTRL(0) | RSVD(3) }, { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1033, 0xff), /* Telit LE910C1-EUX (ECM) */ .driver_info = NCTRL(0) }, + { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1035, 0xff) }, /* Telit LE910C4-WWX (ECM) */ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE922_USBCFG0), .driver_info = RSVD(0) | RSVD(1) | NCTRL(2) | RSVD(3) }, { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE922_USBCFG1), @@ -1540,7 +1548,8 @@ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0165, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0167, 0xff, 0xff, 0xff), .driver_info = RSVD(4) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0189, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0189, 0xff, 0xff, 0xff), + .driver_info = RSVD(4) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0191, 0xff, 0xff, 0xff), /* ZTE EuFi890 */ .driver_info = RSVD(4) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0196, 0xff, 0xff, 0xff) }, @@ -2243,6 +2252,7 @@ .driver_info = RSVD(4) | RSVD(5) | RSVD(6) }, { USB_DEVICE(0x1782, 0x4d10) }, /* Fibocom L610 (AT mode) */ { USB_DEVICE_INTERFACE_CLASS(0x1782, 0x4d11, 0xff) }, /* Fibocom L610 (ECM/RNDIS mode) */ + { USB_DEVICE_AND_INTERFACE_INFO(0x2cb7, 0x0001, 0xff, 0xff, 0xff) }, /* Fibocom L716-EU (ECM/RNDIS mode) */ { USB_DEVICE(0x2cb7, 0x0104), /* Fibocom NL678 series */ .driver_info = RSVD(4) | RSVD(5) }, { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0105, 0xff), /* Fibocom NL678 series */ @@ -2262,8 +2272,10 @@ { USB_DEVICE_INTERFACE_CLASS(0x305a, 0x1406, 0xff) }, /* GosunCn GM500 ECM/NCM */ { USB_DEVICE_AND_INTERFACE_INFO(OPPO_VENDOR_ID, OPPO_PRODUCT_R11, 0xff, 0xff, 0x30) }, { USB_DEVICE_AND_INTERFACE_INFO(SIERRA_VENDOR_ID, SIERRA_PRODUCT_EM9191, 0xff, 0xff, 0x30) }, + { USB_DEVICE_AND_INTERFACE_INFO(SIERRA_VENDOR_ID, SIERRA_PRODUCT_EM9191, 0xff, 0xff, 0x40) }, { USB_DEVICE_AND_INTERFACE_INFO(SIERRA_VENDOR_ID, SIERRA_PRODUCT_EM9191, 0xff, 0, 0) }, { USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, TOZED_PRODUCT_LT70C, 0xff, 0, 0) }, + { USB_DEVICE_AND_INTERFACE_INFO(UNISOC_VENDOR_ID, LUAT_PRODUCT_AIR720U, 0xff, 0, 0) }, { } /* Terminating entry */ }; MODULE_DEVICE_TABLE(usb, option_ids); diff -u linux-riscv-6.5.0/drivers/usb/typec/tcpm/tcpm.c linux-riscv-6.5.0/drivers/usb/typec/tcpm/tcpm.c --- linux-riscv-6.5.0/drivers/usb/typec/tcpm/tcpm.c +++ linux-riscv-6.5.0/drivers/usb/typec/tcpm/tcpm.c @@ -1625,6 +1625,9 @@ if (PD_VDO_VID(p[0]) != USB_SID_PD) break; + if (IS_ERR_OR_NULL(port->partner)) + break; + if (PD_VDO_SVDM_VER(p[0]) < svdm_version) { typec_partner_set_svdm_version(port->partner, PD_VDO_SVDM_VER(p[0])); @@ -3970,6 +3973,8 @@ port->potential_contaminant = ((port->enter_state == SRC_ATTACH_WAIT && port->state == SRC_UNATTACHED) || (port->enter_state == SNK_ATTACH_WAIT && + port->state == SNK_UNATTACHED) || + (port->enter_state == SNK_DEBOUNCED && port->state == SNK_UNATTACHED)); port->enter_state = port->state; @@ -5450,6 +5455,15 @@ if (port->bist_request == BDO_MODE_TESTDATA && port->tcpc->set_bist_data) port->tcpc->set_bist_data(port->tcpc, false); + switch (port->state) { + case ERROR_RECOVERY: + case PORT_RESET: + case PORT_RESET_WAIT_OFF: + return; + default: + break; + } + if (port->ams != NONE_AMS) port->ams = NONE_AMS; if (port->hard_reset_count < PD_N_HARD_RESET_COUNT) diff -u linux-riscv-6.5.0/drivers/xen/events/events_base.c linux-riscv-6.5.0/drivers/xen/events/events_base.c --- linux-riscv-6.5.0/drivers/xen/events/events_base.c +++ linux-riscv-6.5.0/drivers/xen/events/events_base.c @@ -164,6 +164,8 @@ /* IRQ <-> IPI mapping */ static DEFINE_PER_CPU(int [XEN_NR_IPIS], ipi_to_irq) = {[0 ... XEN_NR_IPIS-1] = -1}; +/* Cache for IPI event channels - needed for hot cpu unplug (avoid RCU usage). */ +static DEFINE_PER_CPU(evtchn_port_t [XEN_NR_IPIS], ipi_to_evtchn) = {[0 ... XEN_NR_IPIS-1] = 0}; /* Event channel distribution data */ static atomic_t channels_on_cpu[NR_CPUS]; @@ -366,6 +368,7 @@ info->u.ipi = ipi; per_cpu(ipi_to_irq, cpu)[ipi] = irq; + per_cpu(ipi_to_evtchn, cpu)[ipi] = evtchn; return xen_irq_info_common_setup(info, irq, IRQT_IPI, evtchn, 0); } @@ -601,7 +604,9 @@ spin_lock_irqsave(&eoi->eoi_list_lock, flags); - if (list_empty(&eoi->eoi_list)) { + elem = list_first_entry_or_null(&eoi->eoi_list, struct irq_info, + eoi_list); + if (!elem || info->eoi_time < elem->eoi_time) { list_add(&info->eoi_list, &eoi->eoi_list); mod_delayed_work_on(info->eoi_cpu, system_wq, &eoi->delayed, delay); @@ -981,6 +986,7 @@ break; case IRQT_IPI: per_cpu(ipi_to_irq, cpu)[ipi_from_irq(irq)] = -1; + per_cpu(ipi_to_evtchn, cpu)[ipi_from_irq(irq)] = 0; break; case IRQT_EVTCHN: dev = info->u.interdomain; @@ -1631,7 +1637,7 @@ void xen_send_IPI_one(unsigned int cpu, enum ipi_vector vector) { - int irq; + evtchn_port_t evtchn; #ifdef CONFIG_X86 if (unlikely(vector == XEN_NMI_VECTOR)) { @@ -1642,9 +1648,9 @@ return; } #endif - irq = per_cpu(ipi_to_irq, cpu)[vector]; - BUG_ON(irq < 0); - notify_remote_via_irq(irq); + evtchn = per_cpu(ipi_to_evtchn, cpu)[vector]; + BUG_ON(evtchn == 0); + notify_remote_via_evtchn(evtchn); } struct evtchn_loop_ctrl { @@ -1702,7 +1708,7 @@ generic_handle_irq(irq); } -static int __xen_evtchn_do_upcall(void) +int xen_evtchn_do_upcall(void) { struct vcpu_info *vcpu_info = __this_cpu_read(xen_vcpu); int ret = vcpu_info->evtchn_upcall_pending ? IRQ_HANDLED : IRQ_NONE; @@ -1740,24 +1746,7 @@ return ret; } - -void xen_evtchn_do_upcall(struct pt_regs *regs) -{ - struct pt_regs *old_regs = set_irq_regs(regs); - - irq_enter(); - - __xen_evtchn_do_upcall(); - - irq_exit(); - set_irq_regs(old_regs); -} - -int xen_hvm_evtchn_do_upcall(void) -{ - return __xen_evtchn_do_upcall(); -} -EXPORT_SYMBOL_GPL(xen_hvm_evtchn_do_upcall); +EXPORT_SYMBOL_GPL(xen_evtchn_do_upcall); /* Rebind a new event channel to an existing irq. */ void rebind_evtchn_irq(evtchn_port_t evtchn, int irq) diff -u linux-riscv-6.5.0/fs/btrfs/block-group.c linux-riscv-6.5.0/fs/btrfs/block-group.c --- linux-riscv-6.5.0/fs/btrfs/block-group.c +++ linux-riscv-6.5.0/fs/btrfs/block-group.c @@ -2587,7 +2587,7 @@ btrfs_set_dev_extent_chunk_offset(leaf, extent, chunk_offset); btrfs_set_dev_extent_length(leaf, extent, num_bytes); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); out: btrfs_free_path(path); return ret; @@ -3011,7 +3011,7 @@ cache->global_root_id); btrfs_set_stack_block_group_flags(&bgi, cache->flags); write_extent_buffer(leaf, &bgi, bi, sizeof(bgi)); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); fail: btrfs_release_path(path); /* diff -u linux-riscv-6.5.0/fs/btrfs/delayed-inode.c linux-riscv-6.5.0/fs/btrfs/delayed-inode.c --- linux-riscv-6.5.0/fs/btrfs/delayed-inode.c +++ linux-riscv-6.5.0/fs/btrfs/delayed-inode.c @@ -1030,7 +1030,7 @@ struct btrfs_inode_item); write_extent_buffer(leaf, &node->inode_item, (unsigned long)inode_item, sizeof(struct btrfs_inode_item)); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); if (!test_bit(BTRFS_DELAYED_NODE_DEL_IREF, &node->flags)) goto out; diff -u linux-riscv-6.5.0/fs/btrfs/disk-io.c linux-riscv-6.5.0/fs/btrfs/disk-io.c --- linux-riscv-6.5.0/fs/btrfs/disk-io.c +++ linux-riscv-6.5.0/fs/btrfs/disk-io.c @@ -872,7 +872,7 @@ } root->node = leaf; - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); root->commit_root = btrfs_root_node(root); set_bit(BTRFS_ROOT_TRACK_DIRTY, &root->state); @@ -947,7 +947,7 @@ root->node = leaf; - btrfs_mark_buffer_dirty(root->node); + btrfs_mark_buffer_dirty(trans, root->node); btrfs_tree_unlock(root->node); return 0; @@ -3152,6 +3152,7 @@ goto fail_alloc; } + btrfs_info(fs_info, "first mount of filesystem %pU", disk_super->fsid); /* * Verify the type first, if that or the checksum value are * corrupted, we'll find out @@ -4426,7 +4427,8 @@ btrfs_close_devices(fs_info->fs_devices); } -void btrfs_mark_buffer_dirty(struct extent_buffer *buf) +void btrfs_mark_buffer_dirty(struct btrfs_trans_handle *trans, + struct extent_buffer *buf) { struct btrfs_fs_info *fs_info = buf->fs_info; u64 transid = btrfs_header_generation(buf); @@ -4440,10 +4442,14 @@ if (unlikely(test_bit(EXTENT_BUFFER_UNMAPPED, &buf->bflags))) return; #endif + /* This is an active transaction (its state < TRANS_STATE_UNBLOCKED). */ + ASSERT(trans->transid == fs_info->generation); btrfs_assert_tree_write_locked(buf); - if (transid != fs_info->generation) + if (transid != fs_info->generation) { WARN(1, KERN_CRIT "btrfs transid mismatch buffer %llu, found %llu running %llu\n", buf->start, transid, fs_info->generation); + btrfs_abort_transaction(trans, -EUCLEAN); + } set_extent_buffer_dirty(buf); #ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY /* diff -u linux-riscv-6.5.0/fs/btrfs/extent-tree.c linux-riscv-6.5.0/fs/btrfs/extent-tree.c --- linux-riscv-6.5.0/fs/btrfs/extent-tree.c +++ linux-riscv-6.5.0/fs/btrfs/extent-tree.c @@ -187,8 +187,10 @@ num_refs = btrfs_extent_refs(leaf, ei); extent_flags = btrfs_extent_flags(leaf, ei); } else { - ret = -EINVAL; - btrfs_print_v0_err(fs_info); + ret = -EUCLEAN; + btrfs_err(fs_info, + "unexpected extent item size, has %u expect >= %zu", + item_size, sizeof(*ei)); if (trans) btrfs_abort_transaction(trans, ret); else @@ -594,7 +596,7 @@ btrfs_set_extent_data_ref_count(leaf, ref, num_refs); } } - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); ret = 0; fail: btrfs_release_path(path); @@ -624,12 +626,12 @@ ref2 = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_shared_data_ref); num_refs = btrfs_shared_data_ref_count(leaf, ref2); - } else if (unlikely(key.type == BTRFS_EXTENT_REF_V0_KEY)) { - btrfs_print_v0_err(trans->fs_info); - btrfs_abort_transaction(trans, -EINVAL); - return -EINVAL; } else { - BUG(); + btrfs_err(trans->fs_info, + "unrecognized backref key (%llu %u %llu)", + key.objectid, key.type, key.offset); + btrfs_abort_transaction(trans, -EUCLEAN); + return -EUCLEAN; } BUG_ON(num_refs < refs_to_drop); @@ -642,7 +644,7 @@ btrfs_set_extent_data_ref_count(leaf, ref1, num_refs); else if (key.type == BTRFS_SHARED_DATA_REF_KEY) btrfs_set_shared_data_ref_count(leaf, ref2, num_refs); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); } return ret; } @@ -660,7 +662,6 @@ leaf = path->nodes[0]; btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); - BUG_ON(key.type == BTRFS_EXTENT_REF_V0_KEY); if (iref) { /* * If type is invalid, we should have bailed out earlier than @@ -881,8 +882,10 @@ leaf = path->nodes[0]; item_size = btrfs_item_size(leaf, path->slots[0]); if (unlikely(item_size < sizeof(*ei))) { - err = -EINVAL; - btrfs_print_v0_err(fs_info); + err = -EUCLEAN; + btrfs_err(fs_info, + "unexpected extent item size, has %llu expect >= %zu", + item_size, sizeof(*ei)); btrfs_abort_transaction(trans, err); goto out; } @@ -994,7 +997,7 @@ * helper to add new inline back ref */ static noinline_for_stack -void setup_inline_extent_backref(struct btrfs_fs_info *fs_info, +void setup_inline_extent_backref(struct btrfs_trans_handle *trans, struct btrfs_path *path, struct btrfs_extent_inline_ref *iref, u64 parent, u64 root_objectid, @@ -1017,7 +1020,7 @@ type = extent_ref_type(parent, owner); size = btrfs_extent_inline_ref_size(type); - btrfs_extend_item(path, size); + btrfs_extend_item(trans, path, size); ei = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item); refs = btrfs_extent_refs(leaf, ei); @@ -1051,7 +1054,7 @@ } else { btrfs_set_extent_inline_ref_offset(leaf, iref, root_objectid); } - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); } static int lookup_extent_backref(struct btrfs_trans_handle *trans, @@ -1084,7 +1087,9 @@ /* * helper to update/remove inline back ref */ -static noinline_for_stack int update_inline_extent_backref(struct btrfs_path *path, +static noinline_for_stack int update_inline_extent_backref( + struct btrfs_trans_handle *trans, + struct btrfs_path *path, struct btrfs_extent_inline_ref *iref, int refs_to_mod, struct btrfs_delayed_extent_op *extent_op) @@ -1192,9 +1197,9 @@ memmove_extent_buffer(leaf, ptr, ptr + size, end - ptr - size); item_size -= size; - btrfs_truncate_item(path, item_size, 1); + btrfs_truncate_item(trans, path, item_size, 1); } - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); return 0; } @@ -1224,9 +1229,10 @@ bytenr, num_bytes, root_objectid, path->slots[0]); return -EUCLEAN; } - ret = update_inline_extent_backref(path, iref, refs_to_add, extent_op); + ret = update_inline_extent_backref(trans, path, iref, + refs_to_add, extent_op); } else if (ret == -ENOENT) { - setup_inline_extent_backref(trans->fs_info, path, iref, parent, + setup_inline_extent_backref(trans, path, iref, parent, root_objectid, owner, offset, refs_to_add, extent_op); ret = 0; @@ -1244,7 +1250,8 @@ BUG_ON(!is_data && refs_to_drop != 1); if (iref) - ret = update_inline_extent_backref(path, iref, -refs_to_drop, NULL); + ret = update_inline_extent_backref(trans, path, iref, + -refs_to_drop, NULL); else if (is_data) ret = remove_extent_data_ref(trans, root, path, refs_to_drop); else @@ -1528,7 +1535,7 @@ if (extent_op) __run_delayed_extent_op(extent_op, leaf, item); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); btrfs_release_path(path); /* now insert the actual backref */ @@ -1683,8 +1690,10 @@ item_size = btrfs_item_size(leaf, path->slots[0]); if (unlikely(item_size < sizeof(*ei))) { - err = -EINVAL; - btrfs_print_v0_err(fs_info); + err = -EUCLEAN; + btrfs_err(fs_info, + "unexpected extent item size, has %u expect >= %zu", + item_size, sizeof(*ei)); btrfs_abort_transaction(trans, err); goto out; } @@ -1692,7 +1701,7 @@ ei = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item); __run_delayed_extent_op(extent_op, leaf, ei); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); out: btrfs_free_path(path); return err; @@ -1715,12 +1724,12 @@ parent = ref->parent; ref_root = ref->root; - if (node->ref_mod != 1) { + if (unlikely(node->ref_mod != 1)) { btrfs_err(trans->fs_info, - "btree block(%llu) has %d references rather than 1: action %d ref_root %llu parent %llu", + "btree block %llu has %d references rather than 1: action %d ref_root %llu parent %llu", node->bytenr, node->ref_mod, node->action, ref_root, parent); - return -EIO; + return -EUCLEAN; } if (node->action == BTRFS_ADD_DELAYED_REF && insert_reserved) { BUG_ON(!extent_op || !extent_op->update_flags); @@ -3113,8 +3122,10 @@ leaf = path->nodes[0]; item_size = btrfs_item_size(leaf, extent_slot); if (unlikely(item_size < sizeof(*ei))) { - ret = -EINVAL; - btrfs_print_v0_err(info); + ret = -EUCLEAN; + btrfs_err(trans->fs_info, + "unexpected extent item size, has %u expect >= %zu", + item_size, sizeof(*ei)); btrfs_abort_transaction(trans, ret); goto out; } @@ -3164,7 +3175,7 @@ } } else { btrfs_set_extent_refs(leaf, ei, refs); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); } if (found_extent) { ret = remove_extent_backref(trans, extent_root, path, @@ -4672,7 +4683,7 @@ btrfs_set_extent_data_ref_count(leaf, ref, ref_mod); } - btrfs_mark_buffer_dirty(path->nodes[0]); + btrfs_mark_buffer_dirty(trans, path->nodes[0]); btrfs_free_path(path); return alloc_reserved_extent(trans, ins->objectid, ins->offset); @@ -4747,7 +4758,7 @@ btrfs_set_extent_inline_ref_offset(leaf, iref, ref->root); } - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); btrfs_free_path(path); return alloc_reserved_extent(trans, node->bytenr, fs_info->nodesize); diff -u linux-riscv-6.5.0/fs/btrfs/extent_io.c linux-riscv-6.5.0/fs/btrfs/extent_io.c --- linux-riscv-6.5.0/fs/btrfs/extent_io.c +++ linux-riscv-6.5.0/fs/btrfs/extent_io.c @@ -724,8 +724,8 @@ * the array will be skipped * * Return: 0 if all pages were able to be allocated; - * -ENOMEM otherwise, and the caller is responsible for freeing all - * non-null page pointers in the array. + * -ENOMEM otherwise, the partially allocated pages would be freed and + * the array slots zeroed */ int btrfs_alloc_page_array(unsigned int nr_pages, struct page **page_array) { @@ -744,8 +744,13 @@ * though alloc_pages_bulk_array() falls back to alloc_page() * if it could not bulk-allocate. So we must be out of memory. */ - if (allocated == last) + if (allocated == last) { + for (int i = 0; i < allocated; i++) { + __free_page(page_array[i]); + page_array[i] = NULL; + } return -ENOMEM; + } memalloc_retry_wait(GFP_NOFS); } diff -u linux-riscv-6.5.0/fs/btrfs/file-item.c linux-riscv-6.5.0/fs/btrfs/file-item.c --- linux-riscv-6.5.0/fs/btrfs/file-item.c +++ linux-riscv-6.5.0/fs/btrfs/file-item.c @@ -194,7 +194,7 @@ btrfs_set_file_extent_encryption(leaf, item, 0); btrfs_set_file_extent_other_encoding(leaf, item, 0); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); out: btrfs_free_path(path); return ret; @@ -811,11 +811,12 @@ * This calls btrfs_truncate_item with the correct args based on the overlap, * and fixes up the key as required. */ -static noinline void truncate_one_csum(struct btrfs_fs_info *fs_info, +static noinline void truncate_one_csum(struct btrfs_trans_handle *trans, struct btrfs_path *path, struct btrfs_key *key, u64 bytenr, u64 len) { + struct btrfs_fs_info *fs_info = trans->fs_info; struct extent_buffer *leaf; const u32 csum_size = fs_info->csum_size; u64 csum_end; @@ -836,7 +837,7 @@ */ u32 new_size = (bytenr - key->offset) >> blocksize_bits; new_size *= csum_size; - btrfs_truncate_item(path, new_size, 1); + btrfs_truncate_item(trans, path, new_size, 1); } else if (key->offset >= bytenr && csum_end > end_byte && end_byte > key->offset) { /* @@ -848,10 +849,10 @@ u32 new_size = (csum_end - end_byte) >> blocksize_bits; new_size *= csum_size; - btrfs_truncate_item(path, new_size, 0); + btrfs_truncate_item(trans, path, new_size, 0); key->offset = end_byte; - btrfs_set_item_key_safe(fs_info, path, key); + btrfs_set_item_key_safe(trans, path, key); } else { BUG(); } @@ -994,7 +995,7 @@ key.offset = end_byte - 1; } else { - truncate_one_csum(fs_info, path, &key, bytenr, len); + truncate_one_csum(trans, path, &key, bytenr, len); if (key.offset < bytenr) break; } @@ -1202,7 +1203,7 @@ diff /= csum_size; diff *= csum_size; - btrfs_extend_item(path, diff); + btrfs_extend_item(trans, path, diff); ret = 0; goto csum; } @@ -1249,7 +1250,7 @@ ins_size /= csum_size; total_bytes += ins_size * fs_info->sectorsize; - btrfs_mark_buffer_dirty(path->nodes[0]); + btrfs_mark_buffer_dirty(trans, path->nodes[0]); if (total_bytes < sums->len) { btrfs_release_path(path); cond_resched(); diff -u linux-riscv-6.5.0/fs/btrfs/file.c linux-riscv-6.5.0/fs/btrfs/file.c --- linux-riscv-6.5.0/fs/btrfs/file.c +++ linux-riscv-6.5.0/fs/btrfs/file.c @@ -368,7 +368,7 @@ btrfs_set_file_extent_offset(leaf, fi, extent_offset); btrfs_set_file_extent_num_bytes(leaf, fi, extent_end - args->start); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); if (update_refs && disk_bytenr > 0) { btrfs_init_generic_ref(&ref, @@ -405,13 +405,13 @@ memcpy(&new_key, &key, sizeof(new_key)); new_key.offset = args->end; - btrfs_set_item_key_safe(fs_info, path, &new_key); + btrfs_set_item_key_safe(trans, path, &new_key); extent_offset += args->end - key.offset; btrfs_set_file_extent_offset(leaf, fi, extent_offset); btrfs_set_file_extent_num_bytes(leaf, fi, extent_end - args->end); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); if (update_refs && disk_bytenr > 0) args->bytes_found += args->end - key.offset; break; @@ -431,7 +431,7 @@ btrfs_set_file_extent_num_bytes(leaf, fi, args->start - key.offset); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); if (update_refs && disk_bytenr > 0) args->bytes_found += extent_end - args->start; if (args->end == extent_end) @@ -536,7 +536,8 @@ if (btrfs_comp_cpu_keys(&key, &slot_key) > 0) path->slots[0]++; } - btrfs_setup_item_for_insert(root, path, &key, args->extent_item_size); + btrfs_setup_item_for_insert(trans, root, path, &key, + args->extent_item_size); args->extent_inserted = true; } @@ -593,7 +594,6 @@ int btrfs_mark_extent_written(struct btrfs_trans_handle *trans, struct btrfs_inode *inode, u64 start, u64 end) { - struct btrfs_fs_info *fs_info = trans->fs_info; struct btrfs_root *root = inode->root; struct extent_buffer *leaf; struct btrfs_path *path; @@ -664,7 +664,7 @@ ino, bytenr, orig_offset, &other_start, &other_end)) { new_key.offset = end; - btrfs_set_item_key_safe(fs_info, path, &new_key); + btrfs_set_item_key_safe(trans, path, &new_key); fi = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_file_extent_item); btrfs_set_file_extent_generation(leaf, fi, @@ -679,7 +679,7 @@ trans->transid); btrfs_set_file_extent_num_bytes(leaf, fi, end - other_start); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); goto out; } } @@ -698,7 +698,7 @@ trans->transid); path->slots[0]++; new_key.offset = start; - btrfs_set_item_key_safe(fs_info, path, &new_key); + btrfs_set_item_key_safe(trans, path, &new_key); fi = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_file_extent_item); @@ -708,7 +708,7 @@ other_end - start); btrfs_set_file_extent_offset(leaf, fi, start - orig_offset); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); goto out; } } @@ -742,7 +742,7 @@ btrfs_set_file_extent_offset(leaf, fi, split - orig_offset); btrfs_set_file_extent_num_bytes(leaf, fi, extent_end - split); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); btrfs_init_generic_ref(&ref, BTRFS_ADD_DELAYED_REF, bytenr, num_bytes, 0); @@ -814,7 +814,7 @@ btrfs_set_file_extent_type(leaf, fi, BTRFS_FILE_EXTENT_REG); btrfs_set_file_extent_generation(leaf, fi, trans->transid); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); } else { fi = btrfs_item_ptr(leaf, del_slot - 1, struct btrfs_file_extent_item); @@ -823,7 +823,7 @@ btrfs_set_file_extent_generation(leaf, fi, trans->transid); btrfs_set_file_extent_num_bytes(leaf, fi, extent_end - key.offset); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); ret = btrfs_del_items(trans, root, path, del_slot, del_nr); if (ret < 0) { @@ -2103,7 +2103,7 @@ btrfs_set_file_extent_ram_bytes(leaf, fi, num_bytes); btrfs_set_file_extent_offset(leaf, fi, 0); btrfs_set_file_extent_generation(leaf, fi, trans->transid); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); goto out; } @@ -2111,7 +2111,7 @@ u64 num_bytes; key.offset = offset; - btrfs_set_item_key_safe(fs_info, path, &key); + btrfs_set_item_key_safe(trans, path, &key); fi = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_file_extent_item); num_bytes = btrfs_file_extent_num_bytes(leaf, fi) + end - @@ -2120,7 +2120,7 @@ btrfs_set_file_extent_ram_bytes(leaf, fi, num_bytes); btrfs_set_file_extent_offset(leaf, fi, 0); btrfs_set_file_extent_generation(leaf, fi, trans->transid); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); goto out; } btrfs_release_path(path); @@ -2272,7 +2272,7 @@ btrfs_set_file_extent_num_bytes(leaf, extent, replace_len); if (extent_info->is_new_extent) btrfs_set_file_extent_generation(leaf, extent, trans->transid); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); btrfs_release_path(path); ret = btrfs_inode_set_file_extent_range(inode, extent_info->file_offset, diff -u linux-riscv-6.5.0/fs/btrfs/inode.c linux-riscv-6.5.0/fs/btrfs/inode.c --- linux-riscv-6.5.0/fs/btrfs/inode.c +++ linux-riscv-6.5.0/fs/btrfs/inode.c @@ -573,7 +573,7 @@ kunmap_local(kaddr); put_page(page); } - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); btrfs_release_path(path); /* @@ -3072,7 +3072,7 @@ btrfs_item_ptr_offset(leaf, path->slots[0]), sizeof(struct btrfs_file_extent_item)); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); btrfs_release_path(path); /* @@ -4134,7 +4134,7 @@ struct btrfs_inode_item); fill_inode_item(trans, leaf, inode_item, &inode->vfs_inode); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); btrfs_set_inode_last_trans(trans, inode); ret = 0; failed: @@ -6476,7 +6476,7 @@ } } - btrfs_mark_buffer_dirty(path->nodes[0]); + btrfs_mark_buffer_dirty(trans, path->nodes[0]); /* * We don't need the path anymore, plus inheriting properties, adding * ACLs, security xattrs, orphan item or adding the link, will result in @@ -7142,8 +7142,15 @@ int ret; alloc_hint = get_extent_allocation_hint(inode, start, len); +again: ret = btrfs_reserve_extent(root, len, len, fs_info->sectorsize, 0, alloc_hint, &ins, 1, 1); + if (ret == -EAGAIN) { + ASSERT(btrfs_is_zoned(fs_info)); + wait_on_bit_io(&inode->root->fs_info->flags, BTRFS_FS_NEED_ZONE_FINISH, + TASK_UNINTERRUPTIBLE); + goto again; + } if (ret) return ERR_PTR(ret); @@ -9630,7 +9637,7 @@ ptr = btrfs_file_extent_inline_start(ei); write_extent_buffer(leaf, symname, ptr, name_len); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); btrfs_free_path(path); d_instantiate_new(dentry, inode); diff -u linux-riscv-6.5.0/fs/btrfs/ioctl.c linux-riscv-6.5.0/fs/btrfs/ioctl.c --- linux-riscv-6.5.0/fs/btrfs/ioctl.c +++ linux-riscv-6.5.0/fs/btrfs/ioctl.c @@ -663,7 +663,7 @@ goto out; } - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); inode_item = &root_item->inode; btrfs_set_stack_inode_generation(inode_item, 1); @@ -1528,7 +1528,7 @@ static noinline int copy_to_sk(struct btrfs_path *path, struct btrfs_key *key, struct btrfs_ioctl_search_key *sk, - size_t *buf_size, + u64 *buf_size, char __user *ubuf, unsigned long *sk_offset, int *num_found) @@ -1660,7 +1660,7 @@ static noinline int search_ioctl(struct inode *inode, struct btrfs_ioctl_search_key *sk, - size_t *buf_size, + u64 *buf_size, char __user *ubuf) { struct btrfs_fs_info *info = btrfs_sb(inode->i_sb); @@ -1733,7 +1733,7 @@ struct btrfs_ioctl_search_args __user *uargs = argp; struct btrfs_ioctl_search_key sk; int ret; - size_t buf_size; + u64 buf_size; if (!capable(CAP_SYS_ADMIN)) return -EPERM; @@ -1763,8 +1763,8 @@ struct btrfs_ioctl_search_args_v2 __user *uarg = argp; struct btrfs_ioctl_search_args_v2 args; int ret; - size_t buf_size; - const size_t buf_limit = SZ_16M; + u64 buf_size; + const u64 buf_limit = SZ_16M; if (!capable(CAP_SYS_ADMIN)) return -EPERM; @@ -2947,7 +2947,7 @@ btrfs_cpu_key_to_disk(&disk_key, &new_root->root_key); btrfs_set_dir_item_key(path->nodes[0], di, &disk_key); - btrfs_mark_buffer_dirty(path->nodes[0]); + btrfs_mark_buffer_dirty(trans, path->nodes[0]); btrfs_release_path(path); btrfs_set_fs_incompat(fs_info, DEFAULT_SUBVOL); @@ -2978,7 +2978,7 @@ static long btrfs_ioctl_space_info(struct btrfs_fs_info *fs_info, void __user *arg) { - struct btrfs_ioctl_space_args space_args; + struct btrfs_ioctl_space_args space_args = { 0 }; struct btrfs_ioctl_space_info space; struct btrfs_ioctl_space_info *dest; struct btrfs_ioctl_space_info *dest_orig; @@ -4338,7 +4338,7 @@ if (compat) { #if defined(CONFIG_64BIT) && defined(CONFIG_COMPAT) - struct btrfs_ioctl_send_args_32 args32; + struct btrfs_ioctl_send_args_32 args32 = { 0 }; ret = copy_from_user(&args32, argp, sizeof(args32)); if (ret) @@ -4351,6 +4351,7 @@ arg->clone_sources = compat_ptr(args32.clone_sources); arg->parent_root = args32.parent_root; arg->flags = args32.flags; + arg->version = args32.version; memcpy(arg->reserved, args32.reserved, sizeof(args32.reserved)); #else diff -u linux-riscv-6.5.0/fs/btrfs/relocation.c linux-riscv-6.5.0/fs/btrfs/relocation.c --- linux-riscv-6.5.0/fs/btrfs/relocation.c +++ linux-riscv-6.5.0/fs/btrfs/relocation.c @@ -466,6 +466,7 @@ * cached. */ static noinline_for_stack struct btrfs_backref_node *build_backref_tree( + struct btrfs_trans_handle *trans, struct reloc_control *rc, struct btrfs_key *node_key, int level, u64 bytenr) { @@ -499,8 +500,8 @@ /* Breadth-first search to build backref cache */ do { - ret = btrfs_backref_add_tree_node(cache, path, iter, node_key, - cur); + ret = btrfs_backref_add_tree_node(trans, cache, path, iter, + node_key, cur); if (ret < 0) { err = ret; goto out; @@ -1180,7 +1181,7 @@ } } if (dirty) - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); if (inode) btrfs_add_delayed_iput(BTRFS_I(inode)); return ret; @@ -1373,13 +1374,13 @@ */ btrfs_set_node_blockptr(parent, slot, new_bytenr); btrfs_set_node_ptr_generation(parent, slot, new_ptr_gen); - btrfs_mark_buffer_dirty(parent); + btrfs_mark_buffer_dirty(trans, parent); btrfs_set_node_blockptr(path->nodes[level], path->slots[level], old_bytenr); btrfs_set_node_ptr_generation(path->nodes[level], path->slots[level], old_ptr_gen); - btrfs_mark_buffer_dirty(path->nodes[level]); + btrfs_mark_buffer_dirty(trans, path->nodes[level]); btrfs_init_generic_ref(&ref, BTRFS_ADD_DELAYED_REF, old_bytenr, blocksize, path->nodes[level]->start); @@ -2516,7 +2517,7 @@ node->eb->start); btrfs_set_node_ptr_generation(upper->eb, slot, trans->transid); - btrfs_mark_buffer_dirty(upper->eb); + btrfs_mark_buffer_dirty(trans, upper->eb); btrfs_init_generic_ref(&ref, BTRFS_ADD_DELAYED_REF, node->eb->start, blocksize, @@ -2803,7 +2804,7 @@ /* Do tree relocation */ rbtree_postorder_for_each_entry_safe(block, next, blocks, rb_node) { - node = build_backref_tree(rc, &block->key, + node = build_backref_tree(trans, rc, &block->key, block->level, block->bytenr); if (IS_ERR(node)) { err = PTR_ERR(node); @@ -3256,12 +3257,13 @@ if (type == BTRFS_TREE_BLOCK_REF_KEY) owner = btrfs_extent_inline_ref_offset(eb, iref); } - } else if (unlikely(item_size == sizeof(struct btrfs_extent_item_v0))) { - btrfs_print_v0_err(eb->fs_info); - btrfs_handle_fs_error(eb->fs_info, -EINVAL, NULL); - return -EINVAL; } else { - BUG(); + btrfs_print_leaf(eb); + btrfs_err(rc->block_group->fs_info, + "unrecognized tree backref at tree block %llu slot %u", + eb->start, path->slots[0]); + btrfs_release_path(path); + return -EUCLEAN; } btrfs_release_path(path); @@ -3831,7 +3833,7 @@ btrfs_set_inode_mode(leaf, item, S_IFREG | 0600); btrfs_set_inode_flags(leaf, item, BTRFS_INODE_NOCOMPRESS | BTRFS_INODE_PREALLOC); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); out: btrfs_free_path(path); return ret; diff -u linux-riscv-6.5.0/fs/btrfs/scrub.c linux-riscv-6.5.0/fs/btrfs/scrub.c --- linux-riscv-6.5.0/fs/btrfs/scrub.c +++ linux-riscv-6.5.0/fs/btrfs/scrub.c @@ -1803,6 +1803,9 @@ */ ASSERT(sctx->cur_stripe < SCRUB_TOTAL_STRIPES); + /* @found_logical_ret must be specified. */ + ASSERT(found_logical_ret); + stripe = &sctx->stripes[sctx->cur_stripe]; scrub_reset_stripe(stripe); ret = scrub_find_fill_first_stripe(bg, &sctx->extent_path, @@ -1811,8 +1814,7 @@ /* Either >0 as no more extents or <0 for error. */ if (ret) return ret; - if (found_logical_ret) - *found_logical_ret = stripe->logical; + *found_logical_ret = stripe->logical; sctx->cur_stripe++; /* We filled one group, submit it. */ @@ -2037,7 +2039,7 @@ path.skip_locking = 1; /* Go through each extent items inside the logical range */ while (cur_logical < logical_end) { - u64 found_logical; + u64 found_logical = U64_MAX; u64 cur_physical = physical + cur_logical - logical_start; /* Canceled? */ @@ -2072,6 +2074,8 @@ if (ret < 0) break; + /* queue_scrub_stripe() returned 0, @found_logical must be updated. */ + ASSERT(found_logical != U64_MAX); cur_logical = found_logical + BTRFS_STRIPE_LEN; /* Don't hold CPU for too long time */ diff -u linux-riscv-6.5.0/fs/btrfs/super.c linux-riscv-6.5.0/fs/btrfs/super.c --- linux-riscv-6.5.0/fs/btrfs/super.c +++ linux-riscv-6.5.0/fs/btrfs/super.c @@ -79,7 +79,10 @@ static void btrfs_put_super(struct super_block *sb) { - close_ctree(btrfs_sb(sb)); + struct btrfs_fs_info *fs_info = btrfs_sb(sb); + + btrfs_info(fs_info, "last unmount of filesystem %pU", fs_info->fs_devices->fsid); + close_ctree(fs_info); } enum { diff -u linux-riscv-6.5.0/fs/btrfs/transaction.c linux-riscv-6.5.0/fs/btrfs/transaction.c --- linux-riscv-6.5.0/fs/btrfs/transaction.c +++ linux-riscv-6.5.0/fs/btrfs/transaction.c @@ -625,14 +625,14 @@ reloc_reserved = true; } - ret = btrfs_block_rsv_add(fs_info, rsv, num_bytes, flush); + ret = btrfs_reserve_metadata_bytes(fs_info, rsv, num_bytes, flush); if (ret) goto reserve_fail; if (delayed_refs_bytes) { - btrfs_migrate_to_delayed_refs_rsv(fs_info, rsv, - delayed_refs_bytes); + btrfs_migrate_to_delayed_refs_rsv(fs_info, delayed_refs_bytes); num_bytes -= delayed_refs_bytes; } + btrfs_block_rsv_add_bytes(rsv, num_bytes, true); if (rsv->space_info->force_alloc) do_chunk_alloc = true; diff -u linux-riscv-6.5.0/fs/btrfs/volumes.c linux-riscv-6.5.0/fs/btrfs/volumes.c --- linux-riscv-6.5.0/fs/btrfs/volumes.c +++ linux-riscv-6.5.0/fs/btrfs/volumes.c @@ -1908,7 +1908,7 @@ ptr = btrfs_device_fsid(dev_item); write_extent_buffer(leaf, trans->fs_info->fs_devices->metadata_uuid, ptr, BTRFS_FSID_SIZE); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); ret = 0; out: @@ -2613,7 +2613,7 @@ if (device->fs_devices->seeding) { btrfs_set_device_generation(leaf, dev_item, device->generation); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); } path->slots[0]++; @@ -2911,7 +2911,7 @@ btrfs_device_get_disk_total_bytes(device)); btrfs_set_device_bytes_used(leaf, dev_item, btrfs_device_get_bytes_used(device)); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); out: btrfs_free_path(path); @@ -3061,15 +3061,16 @@ read_unlock(&em_tree->lock); if (!em) { - btrfs_crit(fs_info, "unable to find logical %llu length %llu", + btrfs_crit(fs_info, + "unable to find chunk map for logical %llu length %llu", logical, length); return ERR_PTR(-EINVAL); } - if (em->start > logical || em->start + em->len < logical) { + if (em->start > logical || em->start + em->len <= logical) { btrfs_crit(fs_info, - "found a bad mapping, wanted %llu-%llu, found %llu-%llu", - logical, length, em->start, em->start + em->len); + "found a bad chunk map, wanted %llu-%llu, found %llu-%llu", + logical, logical + length, em->start, em->start + em->len); free_extent_map(em); return ERR_PTR(-EINVAL); } @@ -3499,7 +3500,7 @@ btrfs_set_balance_flags(leaf, item, bctl->flags); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); out: btrfs_free_path(path); err = btrfs_commit_transaction(trans); @@ -5125,7 +5126,7 @@ ASSERT(space_info); ctl->max_chunk_size = READ_ONCE(space_info->chunk_size); - ctl->max_stripe_size = ctl->max_chunk_size; + ctl->max_stripe_size = min_t(u64, ctl->max_chunk_size, SZ_1G); if (ctl->type & BTRFS_BLOCK_GROUP_SYSTEM) ctl->devs_max = min_t(int, ctl->devs_max, BTRFS_MAX_DEVS_SYS_CHUNK); @@ -7513,7 +7514,7 @@ for (i = 0; i < BTRFS_DEV_STAT_VALUES_MAX; i++) btrfs_set_dev_stats_value(eb, ptr, i, btrfs_dev_stat_read(device, i)); - btrfs_mark_buffer_dirty(eb); + btrfs_mark_buffer_dirty(trans, eb); out: btrfs_free_path(path); diff -u linux-riscv-6.5.0/fs/ceph/mds_client.c linux-riscv-6.5.0/fs/ceph/mds_client.c --- linux-riscv-6.5.0/fs/ceph/mds_client.c +++ linux-riscv-6.5.0/fs/ceph/mds_client.c @@ -868,8 +868,8 @@ if (!d_same_name(udentry, pdentry, &dname)) goto next; + found = dget_dlock(udentry); spin_unlock(&udentry->d_lock); - found = dget(udentry); break; next: spin_unlock(&udentry->d_lock); diff -u linux-riscv-6.5.0/fs/erofs/zdata.c linux-riscv-6.5.0/fs/erofs/zdata.c --- linux-riscv-6.5.0/fs/erofs/zdata.c +++ linux-riscv-6.5.0/fs/erofs/zdata.c @@ -805,6 +805,7 @@ return PTR_ERR(pcl); spin_lock_init(&pcl->obj.lockref.lock); + pcl->obj.lockref.count = 1; /* one ref for this request */ pcl->algorithmformat = map->m_algorithmformat; pcl->length = 0; pcl->partial = true; diff -u linux-riscv-6.5.0/fs/ext4/ext4.h linux-riscv-6.5.0/fs/ext4/ext4.h --- linux-riscv-6.5.0/fs/ext4/ext4.h +++ linux-riscv-6.5.0/fs/ext4/ext4.h @@ -1674,7 +1674,8 @@ /* * Barrier between writepages ops and changing any inode's JOURNAL_DATA - * or EXTENTS flag. + * or EXTENTS flag or between writepages ops and changing DELALLOC or + * DIOREAD_NOLOCK mount options on remount. */ struct percpu_rw_semaphore s_writepages_rwsem; struct dax_device *s_daxdev; diff -u linux-riscv-6.5.0/fs/ext4/extents_status.c linux-riscv-6.5.0/fs/ext4/extents_status.c --- linux-riscv-6.5.0/fs/ext4/extents_status.c +++ linux-riscv-6.5.0/fs/ext4/extents_status.c @@ -152,8 +152,9 @@ static int es_reclaim_extents(struct ext4_inode_info *ei, int *nr_to_scan); static int __es_shrink(struct ext4_sb_info *sbi, int nr_to_scan, struct ext4_inode_info *locked_ei); -static void __revise_pending(struct inode *inode, ext4_lblk_t lblk, - ext4_lblk_t len); +static int __revise_pending(struct inode *inode, ext4_lblk_t lblk, + ext4_lblk_t len, + struct pending_reservation **prealloc); int __init ext4_init_es(void) { @@ -448,6 +449,19 @@ spin_unlock(&sbi->s_es_lock); } +static inline struct pending_reservation *__alloc_pending(bool nofail) +{ + if (!nofail) + return kmem_cache_alloc(ext4_pending_cachep, GFP_ATOMIC); + + return kmem_cache_zalloc(ext4_pending_cachep, GFP_KERNEL | __GFP_NOFAIL); +} + +static inline void __free_pending(struct pending_reservation *pr) +{ + kmem_cache_free(ext4_pending_cachep, pr); +} + /* * Returns true if we cannot fail to allocate memory for this extent_status * entry and cannot reclaim it until its status changes. @@ -836,11 +850,12 @@ { struct extent_status newes; ext4_lblk_t end = lblk + len - 1; - int err1 = 0; - int err2 = 0; + int err1 = 0, err2 = 0, err3 = 0; struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); struct extent_status *es1 = NULL; struct extent_status *es2 = NULL; + struct pending_reservation *pr = NULL; + bool revise_pending = false; if (EXT4_SB(inode->i_sb)->s_mount_state & EXT4_FC_REPLAY) return; @@ -868,11 +883,17 @@ ext4_es_insert_extent_check(inode, &newes); + revise_pending = sbi->s_cluster_ratio > 1 && + test_opt(inode->i_sb, DELALLOC) && + (status & (EXTENT_STATUS_WRITTEN | + EXTENT_STATUS_UNWRITTEN)); retry: if (err1 && !es1) es1 = __es_alloc_extent(true); if ((err1 || err2) && !es2) es2 = __es_alloc_extent(true); + if ((err1 || err2 || err3) && revise_pending && !pr) + pr = __alloc_pending(true); write_lock(&EXT4_I(inode)->i_es_lock); err1 = __es_remove_extent(inode, lblk, end, NULL, es1); @@ -897,13 +918,18 @@ es2 = NULL; } - if (sbi->s_cluster_ratio > 1 && test_opt(inode->i_sb, DELALLOC) && - (status & EXTENT_STATUS_WRITTEN || - status & EXTENT_STATUS_UNWRITTEN)) - __revise_pending(inode, lblk, len); + if (revise_pending) { + err3 = __revise_pending(inode, lblk, len, &pr); + if (err3 != 0) + goto error; + if (pr) { + __free_pending(pr); + pr = NULL; + } + } error: write_unlock(&EXT4_I(inode)->i_es_lock); - if (err1 || err2) + if (err1 || err2 || err3) goto retry; ext4_es_print_tree(inode); @@ -1311,7 +1337,7 @@ rc->ndelonly--; node = rb_next(&pr->rb_node); rb_erase(&pr->rb_node, &tree->root); - kmem_cache_free(ext4_pending_cachep, pr); + __free_pending(pr); if (!node) break; pr = rb_entry(node, struct pending_reservation, @@ -1405,8 +1431,8 @@ } } if (count_reserved) - count_rsvd(inode, lblk, orig_es.es_len - len1 - len2, - &orig_es, &rc); + count_rsvd(inode, orig_es.es_lblk + len1, + orig_es.es_len - len1 - len2, &orig_es, &rc); goto out_get_reserved; } @@ -1907,11 +1933,13 @@ * * @inode - file containing the cluster * @lblk - logical block in the cluster to be added + * @prealloc - preallocated pending entry * * Returns 0 on successful insertion and -ENOMEM on failure. If the * pending reservation is already in the set, returns successfully. */ -static int __insert_pending(struct inode *inode, ext4_lblk_t lblk) +static int __insert_pending(struct inode *inode, ext4_lblk_t lblk, + struct pending_reservation **prealloc) { struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); struct ext4_pending_tree *tree = &EXT4_I(inode)->i_pending_tree; @@ -1937,10 +1965,15 @@ } } - pr = kmem_cache_alloc(ext4_pending_cachep, GFP_ATOMIC); - if (pr == NULL) { - ret = -ENOMEM; - goto out; + if (likely(*prealloc == NULL)) { + pr = __alloc_pending(false); + if (!pr) { + ret = -ENOMEM; + goto out; + } + } else { + pr = *prealloc; + *prealloc = NULL; } pr->lclu = lclu; @@ -1970,7 +2003,7 @@ if (pr != NULL) { tree = &EXT4_I(inode)->i_pending_tree; rb_erase(&pr->rb_node, &tree->root); - kmem_cache_free(ext4_pending_cachep, pr); + __free_pending(pr); } } @@ -2029,10 +2062,10 @@ bool allocated) { struct extent_status newes; - int err1 = 0; - int err2 = 0; + int err1 = 0, err2 = 0, err3 = 0; struct extent_status *es1 = NULL; struct extent_status *es2 = NULL; + struct pending_reservation *pr = NULL; if (EXT4_SB(inode->i_sb)->s_mount_state & EXT4_FC_REPLAY) return; @@ -2052,6 +2085,8 @@ es1 = __es_alloc_extent(true); if ((err1 || err2) && !es2) es2 = __es_alloc_extent(true); + if ((err1 || err2 || err3) && allocated && !pr) + pr = __alloc_pending(true); write_lock(&EXT4_I(inode)->i_es_lock); err1 = __es_remove_extent(inode, lblk, lblk, NULL, es1); @@ -2074,11 +2109,18 @@ es2 = NULL; } - if (allocated) - __insert_pending(inode, lblk); + if (allocated) { + err3 = __insert_pending(inode, lblk, &pr); + if (err3 != 0) + goto error; + if (pr) { + __free_pending(pr); + pr = NULL; + } + } error: write_unlock(&EXT4_I(inode)->i_es_lock); - if (err1 || err2) + if (err1 || err2 || err3) goto retry; ext4_es_print_tree(inode); @@ -2184,21 +2226,24 @@ * @inode - file containing the range * @lblk - logical block defining the start of range * @len - length of range in blocks + * @prealloc - preallocated pending entry * * Used after a newly allocated extent is added to the extents status tree. * Requires that the extents in the range have either written or unwritten * status. Must be called while holding i_es_lock. */ -static void __revise_pending(struct inode *inode, ext4_lblk_t lblk, - ext4_lblk_t len) +static int __revise_pending(struct inode *inode, ext4_lblk_t lblk, + ext4_lblk_t len, + struct pending_reservation **prealloc) { struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); ext4_lblk_t end = lblk + len - 1; ext4_lblk_t first, last; bool f_del = false, l_del = false; + int ret = 0; if (len == 0) - return; + return 0; /* * Two cases - block range within single cluster and block range @@ -2219,7 +2264,9 @@ f_del = __es_scan_range(inode, &ext4_es_is_delonly, first, lblk - 1); if (f_del) { - __insert_pending(inode, first); + ret = __insert_pending(inode, first, prealloc); + if (ret < 0) + goto out; } else { last = EXT4_LBLK_CMASK(sbi, end) + sbi->s_cluster_ratio - 1; @@ -2227,9 +2274,11 @@ l_del = __es_scan_range(inode, &ext4_es_is_delonly, end + 1, last); - if (l_del) - __insert_pending(inode, last); - else + if (l_del) { + ret = __insert_pending(inode, last, prealloc); + if (ret < 0) + goto out; + } else __remove_pending(inode, last); } } else { @@ -2239,16 +2288,22 @@ first, lblk - 1); - if (f_del) - __insert_pending(inode, first); - else + if (f_del) { + ret = __insert_pending(inode, first, prealloc); + if (ret < 0) + goto out; + } else __remove_pending(inode, first); last = EXT4_LBLK_CMASK(sbi, end) + sbi->s_cluster_ratio - 1; if (last != end) l_del = __es_scan_range(inode, &ext4_es_is_delonly, end + 1, last); - if (l_del) - __insert_pending(inode, last); - else + if (l_del) { + ret = __insert_pending(inode, last, prealloc); + if (ret < 0) + goto out; + } else __remove_pending(inode, last); } +out: + return ret; } diff -u linux-riscv-6.5.0/fs/ext4/file.c linux-riscv-6.5.0/fs/ext4/file.c --- linux-riscv-6.5.0/fs/ext4/file.c +++ linux-riscv-6.5.0/fs/ext4/file.c @@ -306,80 +306,38 @@ } static ssize_t ext4_handle_inode_extension(struct inode *inode, loff_t offset, - ssize_t written, size_t count) + ssize_t count) { handle_t *handle; - bool truncate = false; - u8 blkbits = inode->i_blkbits; - ext4_lblk_t written_blk, end_blk; - int ret; - - /* - * Note that EXT4_I(inode)->i_disksize can get extended up to - * inode->i_size while the I/O was running due to writeback of delalloc - * blocks. But, the code in ext4_iomap_alloc() is careful to use - * zeroed/unwritten extents if this is possible; thus we won't leave - * uninitialized blocks in a file even if we didn't succeed in writing - * as much as we intended. - */ - WARN_ON_ONCE(i_size_read(inode) < EXT4_I(inode)->i_disksize); - if (offset + count <= EXT4_I(inode)->i_disksize) { - /* - * We need to ensure that the inode is removed from the orphan - * list if it has been added prematurely, due to writeback of - * delalloc blocks. - */ - if (!list_empty(&EXT4_I(inode)->i_orphan) && inode->i_nlink) { - handle = ext4_journal_start(inode, EXT4_HT_INODE, 2); - - if (IS_ERR(handle)) { - ext4_orphan_del(NULL, inode); - return PTR_ERR(handle); - } - - ext4_orphan_del(handle, inode); - ext4_journal_stop(handle); - } - - return written; - } - - if (written < 0) - goto truncate; + lockdep_assert_held_write(&inode->i_rwsem); handle = ext4_journal_start(inode, EXT4_HT_INODE, 2); - if (IS_ERR(handle)) { - written = PTR_ERR(handle); - goto truncate; - } + if (IS_ERR(handle)) + return PTR_ERR(handle); - if (ext4_update_inode_size(inode, offset + written)) { - ret = ext4_mark_inode_dirty(handle, inode); + if (ext4_update_inode_size(inode, offset + count)) { + int ret = ext4_mark_inode_dirty(handle, inode); if (unlikely(ret)) { - written = ret; ext4_journal_stop(handle); - goto truncate; + return ret; } } - /* - * We may need to truncate allocated but not written blocks beyond EOF. - */ - written_blk = ALIGN(offset + written, 1 << blkbits); - end_blk = ALIGN(offset + count, 1 << blkbits); - if (written_blk < end_blk && ext4_can_truncate(inode)) - truncate = true; - - /* - * Remove the inode from the orphan list if it has been extended and - * everything went OK. - */ - if (!truncate && inode->i_nlink) + if (inode->i_nlink) ext4_orphan_del(handle, inode); ext4_journal_stop(handle); - if (truncate) { -truncate: + return count; +} + +/* + * Clean up the inode after DIO or DAX extending write has completed and the + * inode size has been updated using ext4_handle_inode_extension(). + */ +static void ext4_inode_extension_cleanup(struct inode *inode, ssize_t count) +{ + lockdep_assert_held_write(&inode->i_rwsem); + if (count < 0) { ext4_truncate_failed_write(inode); /* * If the truncate operation failed early, then the inode may @@ -388,9 +346,28 @@ */ if (inode->i_nlink) ext4_orphan_del(NULL, inode); + return; } + /* + * If i_disksize got extended due to writeback of delalloc blocks while + * the DIO was running we could fail to cleanup the orphan list in + * ext4_handle_inode_extension(). Do it now. + */ + if (!list_empty(&EXT4_I(inode)->i_orphan) && inode->i_nlink) { + handle_t *handle = ext4_journal_start(inode, EXT4_HT_INODE, 2); - return written; + if (IS_ERR(handle)) { + /* + * The write has successfully completed. Not much to + * do with the error here so just cleanup the orphan + * list and hope for the best. + */ + ext4_orphan_del(NULL, inode); + return; + } + ext4_orphan_del(handle, inode); + ext4_journal_stop(handle); + } } static int ext4_dio_write_end_io(struct kiocb *iocb, ssize_t size, @@ -399,31 +376,22 @@ loff_t pos = iocb->ki_pos; struct inode *inode = file_inode(iocb->ki_filp); + if (!error && size && flags & IOMAP_DIO_UNWRITTEN) + error = ext4_convert_unwritten_extents(NULL, inode, pos, size); if (error) return error; - - if (size && flags & IOMAP_DIO_UNWRITTEN) { - error = ext4_convert_unwritten_extents(NULL, inode, pos, size); - if (error < 0) - return error; - } /* - * If we are extending the file, we have to update i_size here before - * page cache gets invalidated in iomap_dio_rw(). Otherwise racing - * buffered reads could zero out too much from page cache pages. Update - * of on-disk size will happen later in ext4_dio_write_iter() where - * we have enough information to also perform orphan list handling etc. - * Note that we perform all extending writes synchronously under - * i_rwsem held exclusively so i_size update is safe here in that case. - * If the write was not extending, we cannot see pos > i_size here - * because operations reducing i_size like truncate wait for all - * outstanding DIO before updating i_size. + * Note that EXT4_I(inode)->i_disksize can get extended up to + * inode->i_size while the I/O was running due to writeback of delalloc + * blocks. But the code in ext4_iomap_alloc() is careful to use + * zeroed/unwritten extents if this is possible; thus we won't leave + * uninitialized blocks in a file even if we didn't succeed in writing + * as much as we intended. */ - pos += size; - if (pos > i_size_read(inode)) - i_size_write(inode, pos); - - return 0; + WARN_ON_ONCE(i_size_read(inode) < READ_ONCE(EXT4_I(inode)->i_disksize)); + if (pos + size <= READ_ONCE(EXT4_I(inode)->i_disksize)) + return size; + return ext4_handle_inode_extension(inode, pos, size); } static const struct iomap_dio_ops ext4_dio_write_ops = { @@ -569,18 +537,20 @@ return ext4_buffered_write_iter(iocb, from); } + /* + * Prevent inline data from being created since we are going to allocate + * blocks for DIO. We know the inode does not currently have inline data + * because ext4_should_use_dio() checked for it, but we have to clear + * the state flag before the write checks because a lock cycle could + * introduce races with other writers. + */ + ext4_clear_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA); + ret = ext4_dio_write_checks(iocb, from, &ilock_shared, &extend, &unwritten, &dio_flags); if (ret <= 0) return ret; - /* - * Make sure inline data cannot be created anymore since we are going - * to allocate blocks for DIO. We know the inode does not have any - * inline data now because ext4_dio_supported() checked for that. - */ - ext4_clear_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA); - offset = iocb->ki_pos; count = ret; @@ -606,9 +576,16 @@ dio_flags, NULL, 0); if (ret == -ENOTBLK) ret = 0; - - if (extend) - ret = ext4_handle_inode_extension(inode, offset, ret, count); + if (extend) { + /* + * We always perform extending DIO write synchronously so by + * now the IO is completed and ext4_handle_inode_extension() + * was called. Cleanup the inode in case of error or race with + * writeback of delalloc blocks. + */ + WARN_ON_ONCE(ret == -EIOCBQUEUED); + ext4_inode_extension_cleanup(inode, ret); + } out: if (ilock_shared) @@ -689,8 +666,10 @@ ret = dax_iomap_rw(iocb, from, &ext4_iomap_ops); - if (extend) - ret = ext4_handle_inode_extension(inode, offset, ret, count); + if (extend) { + ret = ext4_handle_inode_extension(inode, offset, ret); + ext4_inode_extension_cleanup(inode, ret); + } out: inode_unlock(inode); if (ret > 0) diff -u linux-riscv-6.5.0/fs/f2fs/data.c linux-riscv-6.5.0/fs/f2fs/data.c --- linux-riscv-6.5.0/fs/f2fs/data.c +++ linux-riscv-6.5.0/fs/f2fs/data.c @@ -2341,8 +2341,10 @@ f2fs_wait_on_block_writeback(inode, blkaddr); if (f2fs_load_compressed_page(sbi, page, blkaddr)) { - if (atomic_dec_and_test(&dic->remaining_pages)) + if (atomic_dec_and_test(&dic->remaining_pages)) { f2fs_decompress_cluster(dic, true); + break; + } continue; } @@ -3020,7 +3022,8 @@ { int ret = 0; int done = 0, retry = 0; - struct page *pages[F2FS_ONSTACK_PAGES]; + struct page *pages_local[F2FS_ONSTACK_PAGES]; + struct page **pages = pages_local; struct folio_batch fbatch; struct f2fs_sb_info *sbi = F2FS_M_SB(mapping); struct bio *bio = NULL; @@ -3044,6 +3047,7 @@ #endif int nr_folios, p, idx; int nr_pages; + unsigned int max_pages = F2FS_ONSTACK_PAGES; pgoff_t index; pgoff_t end; /* Inclusive */ pgoff_t done_index; @@ -3053,6 +3057,15 @@ int submitted = 0; int i; +#ifdef CONFIG_F2FS_FS_COMPRESSION + if (f2fs_compressed_file(inode) && + 1 << cc.log_cluster_size > F2FS_ONSTACK_PAGES) { + pages = f2fs_kzalloc(sbi, sizeof(struct page *) << + cc.log_cluster_size, GFP_NOFS | __GFP_NOFAIL); + max_pages = 1 << cc.log_cluster_size; + } +#endif + folio_batch_init(&fbatch); if (get_dirty_pages(mapping->host) <= @@ -3098,7 +3111,7 @@ add_more: pages[nr_pages] = folio_page(folio, idx); folio_get(folio); - if (++nr_pages == F2FS_ONSTACK_PAGES) { + if (++nr_pages == max_pages) { index = folio->index + idx + 1; folio_batch_release(&fbatch); goto write; @@ -3281,6 +3294,11 @@ if (bio) f2fs_submit_merged_ipu_write(sbi, &bio, NULL); +#ifdef CONFIG_F2FS_FS_COMPRESSION + if (pages != pages_local) + kfree(pages); +#endif + return ret; } diff -u linux-riscv-6.5.0/fs/f2fs/file.c linux-riscv-6.5.0/fs/f2fs/file.c --- linux-riscv-6.5.0/fs/f2fs/file.c +++ linux-riscv-6.5.0/fs/f2fs/file.c @@ -3258,6 +3258,7 @@ return -EOPNOTSUPP; map.m_lblk = 0; + map.m_pblk = 0; map.m_next_pgofs = NULL; map.m_next_extent = &m_next_extent; map.m_seg_type = NO_CHECK_TYPE; @@ -4005,6 +4006,15 @@ F2FS_I(inode)->i_compress_algorithm = option.algorithm; F2FS_I(inode)->i_log_cluster_size = option.log_cluster_size; F2FS_I(inode)->i_cluster_size = BIT(option.log_cluster_size); + /* Set default level */ + if (F2FS_I(inode)->i_compress_algorithm == COMPRESS_ZSTD) + F2FS_I(inode)->i_compress_level = F2FS_ZSTD_DEFAULT_CLEVEL; + else + F2FS_I(inode)->i_compress_level = 0; + /* Adjust mount option level */ + if (option.algorithm == F2FS_OPTION(sbi).compress_algorithm && + F2FS_OPTION(sbi).compress_level) + F2FS_I(inode)->i_compress_level = F2FS_OPTION(sbi).compress_level; f2fs_mark_inode_dirty_sync(inode, true); if (!f2fs_is_compress_backend_ready(inode)) diff -u linux-riscv-6.5.0/fs/f2fs/super.c linux-riscv-6.5.0/fs/f2fs/super.c --- linux-riscv-6.5.0/fs/f2fs/super.c +++ linux-riscv-6.5.0/fs/f2fs/super.c @@ -547,6 +547,29 @@ } #ifdef CONFIG_F2FS_FS_COMPRESSION +static bool is_compress_extension_exist(struct f2fs_sb_info *sbi, + const char *new_ext, bool is_ext) +{ + unsigned char (*ext)[F2FS_EXTENSION_LEN]; + int ext_cnt; + int i; + + if (is_ext) { + ext = F2FS_OPTION(sbi).extensions; + ext_cnt = F2FS_OPTION(sbi).compress_ext_cnt; + } else { + ext = F2FS_OPTION(sbi).noextensions; + ext_cnt = F2FS_OPTION(sbi).nocompress_ext_cnt; + } + + for (i = 0; i < ext_cnt; i++) { + if (!strcasecmp(new_ext, ext[i])) + return true; + } + + return false; +} + /* * 1. The same extension name cannot not appear in both compress and non-compress extension * at the same time. @@ -1149,6 +1172,11 @@ return -EINVAL; } + if (is_compress_extension_exist(sbi, name, true)) { + kfree(name); + break; + } + strcpy(ext[ext_cnt], name); F2FS_OPTION(sbi).compress_ext_cnt++; kfree(name); @@ -1173,6 +1201,11 @@ return -EINVAL; } + if (is_compress_extension_exist(sbi, name, false)) { + kfree(name); + break; + } + strcpy(noext[noext_cnt], name); F2FS_OPTION(sbi).nocompress_ext_cnt++; kfree(name); @@ -1629,7 +1662,7 @@ f2fs_wait_on_all_pages(sbi, F2FS_WB_CP_DATA); - if (err) { + if (err || f2fs_cp_error(sbi)) { truncate_inode_pages_final(NODE_MAPPING(sbi)); truncate_inode_pages_final(META_MAPPING(sbi)); } diff -u linux-riscv-6.5.0/fs/jbd2/recovery.c linux-riscv-6.5.0/fs/jbd2/recovery.c --- linux-riscv-6.5.0/fs/jbd2/recovery.c +++ linux-riscv-6.5.0/fs/jbd2/recovery.c @@ -289,6 +289,8 @@ journal_superblock_t * sb; struct recovery_info info; + errseq_t wb_err; + struct address_space *mapping; memset(&info, 0, sizeof(info)); sb = journal->j_superblock; @@ -306,6 +308,9 @@ return 0; } + wb_err = 0; + mapping = journal->j_fs_dev->bd_inode->i_mapping; + errseq_check_and_advance(&mapping->wb_err, &wb_err); err = do_one_pass(journal, &info, PASS_SCAN); if (!err) err = do_one_pass(journal, &info, PASS_REVOKE); @@ -329,6 +334,9 @@ err2 = sync_blockdev(journal->j_fs_dev); if (!err) err = err2; + err2 = errseq_check_and_advance(&mapping->wb_err, &wb_err); + if (!err) + err = err2; /* Make sure all replayed data is on permanent storage */ if (journal->j_flags & JBD2_BARRIER) { err2 = blkdev_issue_flush(journal->j_fs_dev); diff -u linux-riscv-6.5.0/fs/jfs/jfs_dmap.c linux-riscv-6.5.0/fs/jfs/jfs_dmap.c --- linux-riscv-6.5.0/fs/jfs/jfs_dmap.c +++ linux-riscv-6.5.0/fs/jfs/jfs_dmap.c @@ -87,7 +87,7 @@ static int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks); static int dbFindBits(u32 word, int l2nb); static int dbFindCtl(struct bmap * bmp, int l2nb, int level, s64 * blkno); -static int dbFindLeaf(dmtree_t * tp, int l2nb, int *leafidx); +static int dbFindLeaf(dmtree_t *tp, int l2nb, int *leafidx, bool is_ctl); static int dbFreeBits(struct bmap * bmp, struct dmap * dp, s64 blkno, int nblocks); static int dbFreeDmap(struct bmap * bmp, struct dmap * dp, s64 blkno, @@ -180,7 +180,8 @@ bmp->db_nfree = le64_to_cpu(dbmp_le->dn_nfree); bmp->db_l2nbperpage = le32_to_cpu(dbmp_le->dn_l2nbperpage); - if (bmp->db_l2nbperpage > L2PSIZE - L2MINBLOCKSIZE) { + if (bmp->db_l2nbperpage > L2PSIZE - L2MINBLOCKSIZE || + bmp->db_l2nbperpage < 0) { err = -EINVAL; goto err_release_metapage; } @@ -194,6 +195,12 @@ bmp->db_maxlevel = le32_to_cpu(dbmp_le->dn_maxlevel); bmp->db_maxag = le32_to_cpu(dbmp_le->dn_maxag); bmp->db_agpref = le32_to_cpu(dbmp_le->dn_agpref); + if (bmp->db_maxag >= MAXAG || bmp->db_maxag < 0 || + bmp->db_agpref >= MAXAG || bmp->db_agpref < 0) { + err = -EINVAL; + goto err_release_metapage; + } + bmp->db_aglevel = le32_to_cpu(dbmp_le->dn_aglevel); bmp->db_agheight = le32_to_cpu(dbmp_le->dn_agheight); bmp->db_agwidth = le32_to_cpu(dbmp_le->dn_agwidth); @@ -1710,7 +1717,7 @@ * dbFindLeaf() returns the index of the leaf at which * free space was found. */ - rc = dbFindLeaf((dmtree_t *) dcp, l2nb, &leafidx); + rc = dbFindLeaf((dmtree_t *) dcp, l2nb, &leafidx, true); /* release the buffer. */ @@ -1957,7 +1964,7 @@ * free space. if sufficient free space is found, dbFindLeaf() * returns the index of the leaf at which free space was found. */ - if (dbFindLeaf((dmtree_t *) & dp->tree, l2nb, &leafidx)) + if (dbFindLeaf((dmtree_t *) &dp->tree, l2nb, &leafidx, false)) return -ENOSPC; if (leafidx < 0) @@ -2921,14 +2928,18 @@ * leafidx - return pointer to be set to the index of the leaf * describing at least l2nb free blocks if sufficient * free blocks are found. + * is_ctl - determines if the tree is of type ctl * * RETURN VALUES: * 0 - success * -ENOSPC - insufficient free blocks. */ -static int dbFindLeaf(dmtree_t * tp, int l2nb, int *leafidx) +static int dbFindLeaf(dmtree_t *tp, int l2nb, int *leafidx, bool is_ctl) { int ti, n = 0, k, x = 0; + int max_size; + + max_size = is_ctl ? CTLTREESIZE : TREESIZE; /* first check the root of the tree to see if there is * sufficient free space. @@ -2949,6 +2960,8 @@ /* sufficient free space found. move to the next * level (or quit if this is the last level). */ + if (x + n > max_size) + return -ENOSPC; if (l2nb <= tp->dmt_stree[x + n]) break; } diff -u linux-riscv-6.5.0/fs/jfs/jfs_imap.c linux-riscv-6.5.0/fs/jfs/jfs_imap.c --- linux-riscv-6.5.0/fs/jfs/jfs_imap.c +++ linux-riscv-6.5.0/fs/jfs/jfs_imap.c @@ -1320,7 +1320,7 @@ int diAlloc(struct inode *pip, bool dir, struct inode *ip) { int rc, ino, iagno, addext, extno, bitno, sword; - int nwords, rem, i, agno; + int nwords, rem, i, agno, dn_numag; u32 mask, inosmap, extsmap; struct inode *ipimap; struct metapage *mp; @@ -1356,6 +1356,9 @@ /* get the ag number of this iag */ agno = BLKTOAG(JFS_IP(pip)->agstart, JFS_SBI(pip->i_sb)); + dn_numag = JFS_SBI(pip->i_sb)->bmap->db_numag; + if (agno < 0 || agno > dn_numag) + return -EIO; if (atomic_read(&JFS_SBI(pip->i_sb)->bmap->db_active[agno])) { /* diff -u linux-riscv-6.5.0/fs/nfs/flexfilelayout/flexfilelayout.c linux-riscv-6.5.0/fs/nfs/flexfilelayout/flexfilelayout.c --- linux-riscv-6.5.0/fs/nfs/flexfilelayout/flexfilelayout.c +++ linux-riscv-6.5.0/fs/nfs/flexfilelayout/flexfilelayout.c @@ -2520,9 +2520,9 @@ return i; } -static int -ff_layout_prepare_layoutstats(struct nfs42_layoutstat_args *args) +static int ff_layout_prepare_layoutstats(struct nfs42_layoutstat_args *args) { + struct pnfs_layout_hdr *lo; struct nfs4_flexfile_layout *ff_layout; const int dev_count = PNFS_LAYOUTSTATS_MAXDEV; @@ -2533,11 +2533,14 @@ return -ENOMEM; spin_lock(&args->inode->i_lock); - ff_layout = FF_LAYOUT_FROM_HDR(NFS_I(args->inode)->layout); - args->num_dev = ff_layout_mirror_prepare_stats(&ff_layout->generic_hdr, - &args->devinfo[0], - dev_count, - NFS4_FF_OP_LAYOUTSTATS); + lo = NFS_I(args->inode)->layout; + if (lo && pnfs_layout_is_valid(lo)) { + ff_layout = FF_LAYOUT_FROM_HDR(lo); + args->num_dev = ff_layout_mirror_prepare_stats( + &ff_layout->generic_hdr, &args->devinfo[0], dev_count, + NFS4_FF_OP_LAYOUTSTATS); + } else + args->num_dev = 0; spin_unlock(&args->inode->i_lock); if (!args->num_dev) { kfree(args->devinfo); diff -u linux-riscv-6.5.0/fs/nfs/nfs42proc.c linux-riscv-6.5.0/fs/nfs/nfs42proc.c --- linux-riscv-6.5.0/fs/nfs/nfs42proc.c +++ linux-riscv-6.5.0/fs/nfs/nfs42proc.c @@ -81,7 +81,8 @@ if (status == 0) { if (nfs_should_remove_suid(inode)) { spin_lock(&inode->i_lock); - nfs_set_cache_invalid(inode, NFS_INO_INVALID_MODE); + nfs_set_cache_invalid(inode, + NFS_INO_REVAL_FORCED | NFS_INO_INVALID_MODE); spin_unlock(&inode->i_lock); } status = nfs_post_op_update_inode_force_wcc(inode, diff -u linux-riscv-6.5.0/fs/nfs/nfs4proc.c linux-riscv-6.5.0/fs/nfs/nfs4proc.c --- linux-riscv-6.5.0/fs/nfs/nfs4proc.c +++ linux-riscv-6.5.0/fs/nfs/nfs4proc.c @@ -5621,7 +5621,7 @@ msg->rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_WRITE]; nfs4_init_sequence(&hdr->args.seq_args, &hdr->res.seq_res, 0, 0); - nfs4_state_protect_write(server->nfs_client, clnt, msg, hdr); + nfs4_state_protect_write(hdr->ds_clp ? hdr->ds_clp : server->nfs_client, clnt, msg, hdr); } static void nfs4_proc_commit_rpc_prepare(struct rpc_task *task, struct nfs_commit_data *data) @@ -5662,7 +5662,8 @@ data->res.server = server; msg->rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_COMMIT]; nfs4_init_sequence(&data->args.seq_args, &data->res.seq_res, 1, 0); - nfs4_state_protect(server->nfs_client, NFS_SP4_MACH_CRED_COMMIT, clnt, msg); + nfs4_state_protect(data->ds_clp ? data->ds_clp : server->nfs_client, + NFS_SP4_MACH_CRED_COMMIT, clnt, msg); } static int _nfs4_proc_commit(struct file *dst, struct nfs_commitargs *args, @@ -8870,8 +8871,6 @@ /* Save the EXCHANGE_ID verifier session trunk tests */ memcpy(clp->cl_confirm.data, argp->verifier.data, sizeof(clp->cl_confirm.data)); - if (resp->flags & EXCHGID4_FLAG_USE_PNFS_DS) - set_bit(NFS_CS_DS, &clp->cl_flags); out: trace_nfs4_exchange_id(clp, status); rpc_put_task(task); @@ -8936,6 +8935,7 @@ sp4_how = (adata->clp->cl_sp4_flags == 0 ? SP4_NONE : SP4_MACH_CRED); +try_again: /* Test connection for session trunking. Async exchange_id call */ task = nfs4_run_exchange_id(adata->clp, adata->cred, sp4_how, xprt); if (IS_ERR(task)) @@ -8948,11 +8948,15 @@ if (status == 0) rpc_clnt_xprt_switch_add_xprt(clnt, xprt); - else if (rpc_clnt_xprt_switch_has_addr(clnt, + else if (status != -NFS4ERR_DELAY && rpc_clnt_xprt_switch_has_addr(clnt, (struct sockaddr *)&xprt->addr)) rpc_clnt_xprt_switch_remove_xprt(clnt, xprt); rpc_put_task(task); + if (status == -NFS4ERR_DELAY) { + ssleep(1); + goto try_again; + } } EXPORT_SYMBOL_GPL(nfs4_test_session_trunk); diff -u linux-riscv-6.5.0/fs/nfs/write.c linux-riscv-6.5.0/fs/nfs/write.c --- linux-riscv-6.5.0/fs/nfs/write.c +++ linux-riscv-6.5.0/fs/nfs/write.c @@ -788,6 +788,8 @@ */ static void nfs_inode_remove_request(struct nfs_page *req) { + struct nfs_inode *nfsi = NFS_I(nfs_page_to_inode(req)); + if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { struct folio *folio = nfs_page_to_folio(req->wb_head); struct address_space *mapping = folio_file_mapping(folio); @@ -802,8 +804,8 @@ } if (test_and_clear_bit(PG_INODE_REF, &req->wb_flags)) { + atomic_long_dec(&nfsi->nrequests); nfs_release_request(req); - atomic_long_dec(&NFS_I(nfs_page_to_inode(req))->nrequests); } } diff -u linux-riscv-6.5.0/fs/overlayfs/copy_up.c linux-riscv-6.5.0/fs/overlayfs/copy_up.c --- linux-riscv-6.5.0/fs/overlayfs/copy_up.c +++ linux-riscv-6.5.0/fs/overlayfs/copy_up.c @@ -337,7 +337,7 @@ { struct iattr attr = { .ia_valid = - ATTR_ATIME | ATTR_MTIME | ATTR_ATIME_SET | ATTR_MTIME_SET, + ATTR_ATIME | ATTR_MTIME | ATTR_ATIME_SET | ATTR_MTIME_SET | ATTR_CTIME, .ia_atime = stat->atime, .ia_mtime = stat->mtime, }; diff -u linux-riscv-6.5.0/fs/overlayfs/super.c linux-riscv-6.5.0/fs/overlayfs/super.c --- linux-riscv-6.5.0/fs/overlayfs/super.c +++ linux-riscv-6.5.0/fs/overlayfs/super.c @@ -1467,7 +1467,7 @@ ovl_trusted_xattr_handlers; sb->s_fs_info = ofs; sb->s_flags |= SB_POSIXACL; - sb->s_iflags |= SB_I_SKIP_SYNC | SB_I_IMA_UNVERIFIABLE_SIGNATURE; + sb->s_iflags |= SB_I_SKIP_SYNC; err = -ENOMEM; root_dentry = ovl_get_root(sb, ctx->upper.dentry, oe); diff -u linux-riscv-6.5.0/fs/quota/dquot.c linux-riscv-6.5.0/fs/quota/dquot.c --- linux-riscv-6.5.0/fs/quota/dquot.c +++ linux-riscv-6.5.0/fs/quota/dquot.c @@ -2403,6 +2403,20 @@ if (sb_has_quota_loaded(sb, type)) return -EBUSY; + /* + * Quota files should never be encrypted. They should be thought of as + * filesystem metadata, not user data. New-style internal quota files + * cannot be encrypted by users anyway, but old-style external quota + * files could potentially be incorrectly created in an encrypted + * directory, hence this explicit check. Some reasons why encrypted + * quota files don't work include: (1) some filesystems that support + * encryption don't handle it in their quota_read and quota_write, and + * (2) cleaning up encrypted quota files at unmount would need special + * consideration, as quota files are cleaned up later than user files. + */ + if (IS_ENCRYPTED(inode)) + return -EINVAL; + dqopt->files[type] = igrab(inode); if (!dqopt->files[type]) return -EIO; diff -u linux-riscv-6.5.0/fs/smb/client/cached_dir.c linux-riscv-6.5.0/fs/smb/client/cached_dir.c --- linux-riscv-6.5.0/fs/smb/client/cached_dir.c +++ linux-riscv-6.5.0/fs/smb/client/cached_dir.c @@ -15,10 +15,12 @@ static struct cached_fid *init_cached_dir(const char *path); static void free_cached_dir(struct cached_fid *cfid); static void smb2_close_cached_fid(struct kref *ref); +static void cfids_laundromat_worker(struct work_struct *work); static struct cached_fid *find_or_create_cached_dir(struct cached_fids *cfids, const char *path, - bool lookup_only) + bool lookup_only, + __u32 max_cached_dirs) { struct cached_fid *cfid; @@ -30,7 +32,7 @@ * fully cached or it may be in the process of * being deleted due to a lease break. */ - if (!cfid->has_lease) { + if (!cfid->time || !cfid->has_lease) { spin_unlock(&cfids->cfid_list_lock); return NULL; } @@ -43,7 +45,7 @@ spin_unlock(&cfids->cfid_list_lock); return NULL; } - if (cfids->num_entries >= MAX_CACHED_FIDS) { + if (cfids->num_entries >= max_cached_dirs) { spin_unlock(&cfids->cfid_list_lock); return NULL; } @@ -145,7 +147,7 @@ const char *npath; if (tcon == NULL || tcon->cfids == NULL || tcon->nohandlecache || - is_smb1_server(tcon->ses->server)) + is_smb1_server(tcon->ses->server) || (dir_cache_timeout == 0)) return -EOPNOTSUPP; ses = tcon->ses; @@ -162,21 +164,24 @@ if (!utf16_path) return -ENOMEM; - cfid = find_or_create_cached_dir(cfids, path, lookup_only); + cfid = find_or_create_cached_dir(cfids, path, lookup_only, tcon->max_cached_dirs); if (cfid == NULL) { kfree(utf16_path); return -ENOENT; } /* - * At this point we either have a lease already and we can just - * return it. If not we are guaranteed to be the only thread accessing - * this cfid. + * Return cached fid if it has a lease. Otherwise, it is either a new + * entry or laundromat worker removed it from @cfids->entries. Caller + * will put last reference if the latter. */ + spin_lock(&cfids->cfid_list_lock); if (cfid->has_lease) { + spin_unlock(&cfids->cfid_list_lock); *ret_cfid = cfid; kfree(utf16_path); return 0; } + spin_unlock(&cfids->cfid_list_lock); /* * Skip any prefix paths in @path as lookup_positive_unlocked() ends up @@ -188,9 +193,19 @@ npath = path_no_prefix(cifs_sb, path); if (IS_ERR(npath)) { rc = PTR_ERR(npath); - kfree(utf16_path); - return rc; + goto out; + } + + if (!npath[0]) { + dentry = dget(cifs_sb->root); + } else { + dentry = path_to_dentry(cifs_sb, npath); + if (IS_ERR(dentry)) { + rc = -ENOENT; + goto out; + } } + cfid->dentry = dentry; /* * We do not hold the lock for the open because in case @@ -244,6 +259,15 @@ smb2_set_related(&rqst[1]); + /* + * Set @cfid->has_lease to true before sending out compounded request so + * its lease reference can be put in cached_dir_lease_break() due to a + * potential lease break right after the request is sent or while @cfid + * is still being cached. Concurrent processes won't be to use it yet + * due to @cfid->time being zero. + */ + cfid->has_lease = true; + rc = compound_send_recv(xid, ses, server, flags, 2, rqst, resp_buftype, rsp_iov); @@ -258,6 +282,8 @@ cfid->tcon = tcon; cfid->is_open = true; + spin_lock(&cfids->cfid_list_lock); + o_rsp = (struct smb2_create_rsp *)rsp_iov[0].iov_base; oparms.fid->persistent_fid = o_rsp->PersistentFileId; oparms.fid->volatile_fid = o_rsp->VolatileFileId; @@ -265,18 +291,25 @@ oparms.fid->mid = le64_to_cpu(o_rsp->hdr.MessageId); #endif /* CIFS_DEBUG2 */ - if (o_rsp->OplockLevel != SMB2_OPLOCK_LEVEL_LEASE) + rc = -EINVAL; + if (o_rsp->OplockLevel != SMB2_OPLOCK_LEVEL_LEASE) { + spin_unlock(&cfids->cfid_list_lock); goto oshr_free; + } smb2_parse_contexts(server, o_rsp, &oparms.fid->epoch, oparms.fid->lease_key, &oplock, NULL, NULL); - if (!(oplock & SMB2_LEASE_READ_CACHING_HE)) + if (!(oplock & SMB2_LEASE_READ_CACHING_HE)) { + spin_unlock(&cfids->cfid_list_lock); goto oshr_free; + } qi_rsp = (struct smb2_query_info_rsp *)rsp_iov[1].iov_base; - if (le32_to_cpu(qi_rsp->OutputBufferLength) < sizeof(struct smb2_file_all_info)) + if (le32_to_cpu(qi_rsp->OutputBufferLength) < sizeof(struct smb2_file_all_info)) { + spin_unlock(&cfids->cfid_list_lock); goto oshr_free; + } if (!smb2_validate_and_copy_iov( le16_to_cpu(qi_rsp->OutputBufferOffset), sizeof(struct smb2_file_all_info), @@ -284,57 +317,49 @@ (char *)&cfid->file_all_info)) cfid->file_all_info_is_valid = true; - if (!npath[0]) - dentry = dget(cifs_sb->root); - else { - dentry = path_to_dentry(cifs_sb, npath); - if (IS_ERR(dentry)) { - rc = -ENOENT; - goto oshr_free; - } - } - cfid->dentry = dentry; cfid->time = jiffies; - cfid->has_lease = true; + spin_unlock(&cfids->cfid_list_lock); + /* At this point the directory handle is fully cached */ + rc = 0; oshr_free: - kfree(utf16_path); SMB2_open_free(&rqst[0]); SMB2_query_info_free(&rqst[1]); free_rsp_buf(resp_buftype[0], rsp_iov[0].iov_base); free_rsp_buf(resp_buftype[1], rsp_iov[1].iov_base); - spin_lock(&cfids->cfid_list_lock); - if (rc && !cfid->has_lease) { + if (rc) { + spin_lock(&cfids->cfid_list_lock); if (cfid->on_list) { list_del(&cfid->entry); cfid->on_list = false; cfids->num_entries--; } - rc = -ENOENT; - } - spin_unlock(&cfids->cfid_list_lock); - if (!rc && !cfid->has_lease) { - /* - * We are guaranteed to have two references at this point. - * One for the caller and one for a potential lease. - * Release the Lease-ref so that the directory will be closed - * when the caller closes the cached handle. - */ - kref_put(&cfid->refcount, smb2_close_cached_fid); + if (cfid->has_lease) { + /* + * We are guaranteed to have two references at this + * point. One for the caller and one for a potential + * lease. Release the Lease-ref so that the directory + * will be closed when the caller closes the cached + * handle. + */ + cfid->has_lease = false; + spin_unlock(&cfids->cfid_list_lock); + kref_put(&cfid->refcount, smb2_close_cached_fid); + goto out; + } + spin_unlock(&cfids->cfid_list_lock); } +out: if (rc) { if (cfid->is_open) SMB2_close(0, cfid->tcon, cfid->fid.persistent_fid, cfid->fid.volatile_fid); free_cached_dir(cfid); - cfid = NULL; - } - - if (rc == 0) { + } else { *ret_cfid = cfid; atomic_inc(&tcon->num_remote_opens); } - + kfree(utf16_path); return rc; } @@ -451,6 +476,9 @@ struct cached_fid *cfid, *q; LIST_HEAD(entry); + if (cfids == NULL) + return; + spin_lock(&cfids->cfid_list_lock); list_for_each_entry_safe(cfid, q, &cfids->entries, entry) { list_move(&cfid->entry, &entry); @@ -568,53 +596,51 @@ kfree(cfid); } -static int -cifs_cfids_laundromat_thread(void *p) +static void cfids_laundromat_worker(struct work_struct *work) { - struct cached_fids *cfids = p; + struct cached_fids *cfids; struct cached_fid *cfid, *q; - struct list_head entry; + LIST_HEAD(entry); - while (!kthread_should_stop()) { - ssleep(1); - INIT_LIST_HEAD(&entry); - if (kthread_should_stop()) - return 0; - spin_lock(&cfids->cfid_list_lock); - list_for_each_entry_safe(cfid, q, &cfids->entries, entry) { - if (time_after(jiffies, cfid->time + HZ * 30)) { - list_del(&cfid->entry); - list_add(&cfid->entry, &entry); - cfids->num_entries--; - } - } - spin_unlock(&cfids->cfid_list_lock); + cfids = container_of(work, struct cached_fids, laundromat_work.work); - list_for_each_entry_safe(cfid, q, &entry, entry) { + spin_lock(&cfids->cfid_list_lock); + list_for_each_entry_safe(cfid, q, &cfids->entries, entry) { + if (cfid->time && + time_after(jiffies, cfid->time + HZ * dir_cache_timeout)) { cfid->on_list = false; - list_del(&cfid->entry); + list_move(&cfid->entry, &entry); + cfids->num_entries--; + /* To prevent race with smb2_cached_lease_break() */ + kref_get(&cfid->refcount); + } + } + spin_unlock(&cfids->cfid_list_lock); + + list_for_each_entry_safe(cfid, q, &entry, entry) { + list_del(&cfid->entry); + /* + * Cancel and wait for the work to finish in case we are racing + * with it. + */ + cancel_work_sync(&cfid->lease_break); + if (cfid->has_lease) { /* - * Cancel, and wait for the work to finish in - * case we are racing with it. + * Our lease has not yet been cancelled from the server + * so we need to drop the reference. */ - cancel_work_sync(&cfid->lease_break); - if (cfid->has_lease) { - /* - * We lease has not yet been cancelled from - * the server so we need to drop the reference. - */ - spin_lock(&cfids->cfid_list_lock); - cfid->has_lease = false; - spin_unlock(&cfids->cfid_list_lock); - kref_put(&cfid->refcount, smb2_close_cached_fid); - } + spin_lock(&cfids->cfid_list_lock); + cfid->has_lease = false; + spin_unlock(&cfids->cfid_list_lock); + kref_put(&cfid->refcount, smb2_close_cached_fid); } + /* Drop the extra reference opened above */ + kref_put(&cfid->refcount, smb2_close_cached_fid); } - - return 0; + queue_delayed_work(cifsiod_wq, &cfids->laundromat_work, + dir_cache_timeout * HZ); } - struct cached_fids *init_cached_dirs(void) { struct cached_fids *cfids; @@ -625,19 +651,10 @@ spin_lock_init(&cfids->cfid_list_lock); INIT_LIST_HEAD(&cfids->entries); - /* - * since we're in a cifs function already, we know that - * this will succeed. No need for try_module_get(). - */ - __module_get(THIS_MODULE); - cfids->laundromat = kthread_run(cifs_cfids_laundromat_thread, - cfids, "cifsd-cfid-laundromat"); - if (IS_ERR(cfids->laundromat)) { - cifs_dbg(VFS, "Failed to start cfids laundromat thread.\n"); - kfree(cfids); - module_put(THIS_MODULE); - return NULL; - } + INIT_DELAYED_WORK(&cfids->laundromat_work, cfids_laundromat_worker); + queue_delayed_work(cifsiod_wq, &cfids->laundromat_work, + dir_cache_timeout * HZ); + return cfids; } @@ -650,11 +667,10 @@ struct cached_fid *cfid, *q; LIST_HEAD(entry); - if (cfids->laundromat) { - kthread_stop(cfids->laundromat); - cfids->laundromat = NULL; - module_put(THIS_MODULE); - } + if (cfids == NULL) + return; + + cancel_delayed_work_sync(&cfids->laundromat_work); spin_lock(&cfids->cfid_list_lock); list_for_each_entry_safe(cfid, q, &cfids->entries, entry) { diff -u linux-riscv-6.5.0/fs/smb/client/cifsglob.h linux-riscv-6.5.0/fs/smb/client/cifsglob.h --- linux-riscv-6.5.0/fs/smb/client/cifsglob.h +++ linux-riscv-6.5.0/fs/smb/client/cifsglob.h @@ -951,6 +951,8 @@ struct list_head iface_head; struct kref refcount; size_t speed; + size_t weight_fulfilled; + unsigned int num_channels; unsigned int rdma_capable : 1; unsigned int rss_capable : 1; unsigned int is_active : 1; /* unset if non existent */ @@ -1192,6 +1194,7 @@ __u32 max_chunks; __u32 max_bytes_chunk; __u32 max_bytes_copy; + __u32 max_cached_dirs; #ifdef CONFIG_CIFS_FSCACHE u64 resource_id; /* server resource id */ struct fscache_volume *fscache; /* cookie for share */ @@ -1913,7 +1916,7 @@ * cifsInodeInfo->lock_sem cifsInodeInfo->llist cifs_init_once * ->can_cache_brlcks * cifsInodeInfo->deferred_lock cifsInodeInfo->deferred_closes cifsInodeInfo_alloc - * cached_fid->fid_mutex cifs_tcon->crfid tconInfoAlloc + * cached_fid->fid_mutex cifs_tcon->crfid tcon_info_alloc * cifsFileInfo->fh_mutex cifsFileInfo cifs_new_fileinfo * cifsFileInfo->file_info_lock cifsFileInfo->count cifs_new_fileinfo * ->invalidHandle initiate_cifs_search @@ -1987,6 +1990,7 @@ extern unsigned int cifs_min_rcv; /* min size of big ntwrk buf pool */ extern unsigned int cifs_min_small; /* min size of small buf pool */ extern unsigned int cifs_max_pending; /* MAX requests at once to server*/ +extern unsigned int dir_cache_timeout; /* max time for directory lease caching of dir */ extern bool disable_legacy_dialects; /* forbid vers=1.0 and vers=2.0 mounts */ extern atomic_t mid_count; @@ -2111,6 +2115,7 @@ unsigned int len, skip; unsigned int nents = 0; unsigned long addr; + size_t data_size; int i, j; /* @@ -2126,17 +2131,21 @@ * rqst[1+].rq_iov[0+] data to be encrypted/decrypted */ for (i = 0; i < num_rqst; i++) { + data_size = iov_iter_count(&rqst[i].rq_iter); + /* We really don't want a mixture of pinned and unpinned pages * in the sglist. It's hard to keep track of which is what. * Instead, we convert to a BVEC-type iterator higher up. */ - if (WARN_ON_ONCE(user_backed_iter(&rqst[i].rq_iter))) + if (data_size && + WARN_ON_ONCE(user_backed_iter(&rqst[i].rq_iter))) return -EIO; /* We also don't want to have any extra refs or pins to clean * up in the sglist. */ - if (WARN_ON_ONCE(iov_iter_extract_will_pin(&rqst[i].rq_iter))) + if (data_size && + WARN_ON_ONCE(iov_iter_extract_will_pin(&rqst[i].rq_iter))) return -EIO; for (j = 0; j < rqst[i].rq_nvec; j++) { @@ -2152,7 +2161,8 @@ } skip = 0; } - nents += iov_iter_npages(&rqst[i].rq_iter, INT_MAX); + if (data_size) + nents += iov_iter_npages(&rqst[i].rq_iter, INT_MAX); } nents += DIV_ROUND_UP(offset_in_page(sig) + SMB2_SIGNATURE_SIZE, PAGE_SIZE); return nents; diff -u linux-riscv-6.5.0/fs/smb/client/connect.c linux-riscv-6.5.0/fs/smb/client/connect.c --- linux-riscv-6.5.0/fs/smb/client/connect.c +++ linux-riscv-6.5.0/fs/smb/client/connect.c @@ -156,13 +156,14 @@ /* If server is a channel, select the primary channel */ pserver = CIFS_SERVER_IS_CHAN(server) ? server->primary_server : server; - spin_lock(&pserver->srv_lock); + /* if we need to signal just this channel */ if (!all_channels) { - pserver->tcpStatus = CifsNeedReconnect; - spin_unlock(&pserver->srv_lock); + spin_lock(&server->srv_lock); + if (server->tcpStatus != CifsExiting) + server->tcpStatus = CifsNeedReconnect; + spin_unlock(&server->srv_lock); return; } - spin_unlock(&pserver->srv_lock); spin_lock(&cifs_tcp_ses_lock); list_for_each_entry(ses, &pserver->smb_ses_list, smb_ses_list) { @@ -1882,7 +1883,8 @@ } } - tcon = tconInfoAlloc(); + /* no need to setup directory caching on IPC share, so pass in false */ + tcon = tcon_info_alloc(false); if (tcon == NULL) return -ENOMEM; @@ -2032,6 +2034,12 @@ } } + /* we now account for primary channel in iface->refcount */ + if (ses->chans[0].iface) { + kref_put(&ses->chans[0].iface->refcount, release_iface); + ses->chans[0].server = NULL; + } + sesInfoFree(ses); cifs_put_tcp_session(server, 0); } @@ -2473,8 +2481,9 @@ static struct cifs_tcon * cifs_get_tcon(struct cifs_ses *ses, struct smb3_fs_context *ctx) { - int rc, xid; struct cifs_tcon *tcon; + bool nohandlecache; + int rc, xid; tcon = cifs_find_tcon(ses, ctx); if (tcon) { @@ -2492,11 +2501,17 @@ goto out_fail; } - tcon = tconInfoAlloc(); + if (ses->server->dialect >= SMB20_PROT_ID && + (ses->server->capabilities & SMB2_GLOBAL_CAP_DIRECTORY_LEASING)) + nohandlecache = ctx->nohandlecache; + else + nohandlecache = true; + tcon = tcon_info_alloc(!nohandlecache); if (tcon == NULL) { rc = -ENOMEM; goto out_fail; } + tcon->nohandlecache = nohandlecache; if (ctx->snapshot_time) { if (ses->server->vals->protocol_id == 0) { @@ -2657,10 +2672,7 @@ tcon->retry = ctx->retry; tcon->nocase = ctx->nocase; tcon->broken_sparse_sup = ctx->no_sparse; - if (ses->server->capabilities & SMB2_GLOBAL_CAP_DIRECTORY_LEASING) - tcon->nohandlecache = ctx->nohandlecache; - else - tcon->nohandlecache = true; + tcon->max_cached_dirs = ctx->max_cached_dirs; tcon->nodelete = ctx->nodelete; tcon->local_lease = ctx->local_lease; INIT_LIST_HEAD(&tcon->pending_opens); @@ -3844,8 +3856,12 @@ is_binding = !CIFS_ALL_CHANS_NEED_RECONNECT(ses); spin_unlock(&ses->chan_lock); - if (!is_binding) + if (!is_binding) { ses->ses_status = SES_IN_SETUP; + + /* force iface_list refresh */ + ses->iface_last_update = 0; + } spin_unlock(&ses->ses_lock); /* update ses ip_addr only for primary chan */ diff -u linux-riscv-6.5.0/fs/smb/client/fs_context.c linux-riscv-6.5.0/fs/smb/client/fs_context.c --- linux-riscv-6.5.0/fs/smb/client/fs_context.c +++ linux-riscv-6.5.0/fs/smb/client/fs_context.c @@ -150,6 +150,7 @@ fsparam_u32("closetimeo", Opt_closetimeo), fsparam_u32("echo_interval", Opt_echo_interval), fsparam_u32("max_credits", Opt_max_credits), + fsparam_u32("max_cached_dirs", Opt_max_cached_dirs), fsparam_u32("handletimeout", Opt_handletimeout), fsparam_u64("snapshot", Opt_snapshot), fsparam_u32("max_channels", Opt_max_channels), @@ -1165,6 +1166,14 @@ if (result.uint_32 > 1) ctx->multichannel = true; break; + case Opt_max_cached_dirs: + if (result.uint_32 < 1) { + cifs_errorf(fc, "%s: Invalid max_cached_dirs, needs to be 1 or more\n", + __func__); + goto cifs_parse_mount_err; + } + ctx->max_cached_dirs = result.uint_32; + break; case Opt_handletimeout: ctx->handle_timeout = result.uint_32; if (ctx->handle_timeout > SMB3_MAX_HANDLE_TIMEOUT) { @@ -1593,7 +1602,7 @@ ctx->acregmax = CIFS_DEF_ACTIMEO; ctx->acdirmax = CIFS_DEF_ACTIMEO; ctx->closetimeo = SMB3_DEF_DCLOSETIMEO; - + ctx->max_cached_dirs = MAX_CACHED_FIDS; /* Most clients set timeout to 0, allows server to use its default */ ctx->handle_timeout = 0; /* See MS-SMB2 spec section 2.2.14.2.12 */ diff -u linux-riscv-6.5.0/fs/smb/client/inode.c linux-riscv-6.5.0/fs/smb/client/inode.c --- linux-riscv-6.5.0/fs/smb/client/inode.c +++ linux-riscv-6.5.0/fs/smb/client/inode.c @@ -567,6 +567,10 @@ cifs_dbg(FYI, "Symlink\n"); fattr->cf_mode |= S_IFLNK; fattr->cf_dtype = DT_LNK; + } else if (memcmp("LnxFIFO", pbuf, 8) == 0) { + cifs_dbg(FYI, "FIFO\n"); + fattr->cf_mode |= S_IFIFO; + fattr->cf_dtype = DT_FIFO; } else { fattr->cf_mode |= S_IFREG; /* file? */ fattr->cf_dtype = DT_REG; @@ -738,7 +742,7 @@ fattr->cf_dtype = DT_BLK; } else if (symlink || reparse_tag == IO_REPARSE_TAG_SYMLINK || reparse_tag == IO_REPARSE_TAG_NFS) { - fattr->cf_mode = S_IFLNK; + fattr->cf_mode = S_IFLNK | cifs_sb->ctx->file_mode; fattr->cf_dtype = DT_LNK; } else if (fattr->cf_cifsattrs & ATTR_DIRECTORY) { fattr->cf_mode = S_IFDIR | cifs_sb->ctx->dir_mode; @@ -770,6 +774,8 @@ } if (S_ISLNK(fattr->cf_mode)) { + if (likely(data->symlink_target)) + fattr->cf_eof = strnlen(data->symlink_target, PATH_MAX); fattr->cf_symlink_target = data->symlink_target; data->symlink_target = NULL; } diff -u linux-riscv-6.5.0/fs/smb/client/misc.c linux-riscv-6.5.0/fs/smb/client/misc.c --- linux-riscv-6.5.0/fs/smb/client/misc.c +++ linux-riscv-6.5.0/fs/smb/client/misc.c @@ -113,18 +113,22 @@ } struct cifs_tcon * -tconInfoAlloc(void) +tcon_info_alloc(bool dir_leases_enabled) { struct cifs_tcon *ret_buf; ret_buf = kzalloc(sizeof(*ret_buf), GFP_KERNEL); if (!ret_buf) return NULL; - ret_buf->cfids = init_cached_dirs(); - if (!ret_buf->cfids) { - kfree(ret_buf); - return NULL; + + if (dir_leases_enabled == true) { + ret_buf->cfids = init_cached_dirs(); + if (!ret_buf->cfids) { + kfree(ret_buf); + return NULL; + } } + /* else ret_buf->cfids is already set to NULL above */ atomic_inc(&tconInfoAllocCount); ret_buf->status = TID_NEW; diff -u linux-riscv-6.5.0/fs/smb/client/smb2ops.c linux-riscv-6.5.0/fs/smb/client/smb2ops.c --- linux-riscv-6.5.0/fs/smb/client/smb2ops.c +++ linux-riscv-6.5.0/fs/smb/client/smb2ops.c @@ -756,6 +756,7 @@ unsigned int ret_data_len = 0; struct network_interface_info_ioctl_rsp *out_buf = NULL; struct cifs_ses *ses = tcon->ses; + struct TCP_Server_Info *pserver; /* do not query too frequently */ if (ses->iface_last_update && @@ -780,6 +781,11 @@ if (rc) goto out; + /* check if iface is still active */ + pserver = ses->chans[0].server; + if (pserver && !cifs_chan_is_iface_active(ses, pserver)) + cifs_chan_update_iface(ses, pserver); + out: kfree(out_buf); return rc; @@ -2834,6 +2840,8 @@ usleep_range(512, 2048); } while (++retry_count < 5); + if (!rc && !dfs_rsp) + rc = -EIO; if (rc) { if (!is_retryable_error(rc) && rc != -ENOENT && rc != -EOPNOTSUPP) cifs_tcon_dbg(VFS, "%s: ioctl error: rc=%d\n", __func__, rc); @@ -3424,6 +3432,7 @@ struct inode *inode = file_inode(file); struct cifsInodeInfo *cifsi = CIFS_I(inode); struct cifsFileInfo *cfile = file->private_data; + unsigned long long new_size; long rc; unsigned int xid; __le64 eof; @@ -3454,10 +3463,15 @@ /* * do we also need to change the size of the file? */ - if (keep_size == false && i_size_read(inode) < offset + len) { - eof = cpu_to_le64(offset + len); + new_size = offset + len; + if (keep_size == false && (unsigned long long)i_size_read(inode) < new_size) { + eof = cpu_to_le64(new_size); rc = SMB2_set_eof(xid, tcon, cfile->fid.persistent_fid, cfile->fid.volatile_fid, cfile->pid, &eof); + if (rc >= 0) { + truncate_setsize(inode, new_size); + fscache_resize_cookie(cifs_inode_cookie(inode), new_size); + } } zero_range_exit: @@ -3852,6 +3866,9 @@ if (rc < 0) goto out_2; + truncate_setsize(inode, old_eof + len); + fscache_resize_cookie(cifs_inode_cookie(inode), i_size_read(inode)); + rc = smb2_copychunk_range(xid, cfile, cfile, off, count, off + len); if (rc < 0) goto out_2; @@ -5045,6 +5062,7 @@ struct smb2_hdr *shdr; unsigned int pdu_length = server->pdu_size; unsigned int buf_size; + unsigned int next_cmd; struct mid_q_entry *mid_entry; int next_is_large; char *next_buffer = NULL; @@ -5073,14 +5091,15 @@ next_is_large = server->large_buf; one_more: shdr = (struct smb2_hdr *)buf; - if (shdr->NextCommand) { + next_cmd = le32_to_cpu(shdr->NextCommand); + if (next_cmd) { + if (WARN_ON_ONCE(next_cmd > pdu_length)) + return -1; if (next_is_large) next_buffer = (char *)cifs_buf_get(); else next_buffer = (char *)cifs_small_buf_get(); - memcpy(next_buffer, - buf + le32_to_cpu(shdr->NextCommand), - pdu_length - le32_to_cpu(shdr->NextCommand)); + memcpy(next_buffer, buf + next_cmd, pdu_length - next_cmd); } mid_entry = smb2_find_mid(server, buf); @@ -5104,8 +5123,8 @@ else ret = cifs_handle_standard(server, mid_entry); - if (ret == 0 && shdr->NextCommand) { - pdu_length -= le32_to_cpu(shdr->NextCommand); + if (ret == 0 && next_cmd) { + pdu_length -= next_cmd; server->large_buf = next_is_large; if (next_is_large) server->bigbuf = buf = next_buffer; @@ -5212,7 +5231,7 @@ * over SMB2/SMB3 and Samba will do this with SMB3.1.1 POSIX Extensions */ - if (!S_ISCHR(mode) && !S_ISBLK(mode)) + if (!S_ISCHR(mode) && !S_ISBLK(mode) && !S_ISFIFO(mode)) return rc; cifs_dbg(FYI, "sfu compat create special file\n"); @@ -5260,6 +5279,12 @@ pdev->minor = cpu_to_le64(MINOR(dev)); rc = tcon->ses->server->ops->sync_write(xid, &fid, &io_parms, &bytes_written, iov, 1); + } else if (S_ISFIFO(mode)) { + memcpy(pdev->type, "LnxFIFO", 8); + pdev->major = 0; + pdev->minor = 0; + rc = tcon->ses->server->ops->sync_write(xid, &fid, &io_parms, + &bytes_written, iov, 1); } tcon->ses->server->ops->close(xid, tcon, &fid); d_drop(dentry); diff -u linux-riscv-6.5.0/fs/smb/client/smb2pdu.c linux-riscv-6.5.0/fs/smb/client/smb2pdu.c --- linux-riscv-6.5.0/fs/smb/client/smb2pdu.c +++ linux-riscv-6.5.0/fs/smb/client/smb2pdu.c @@ -3871,7 +3871,7 @@ goto done; /* allocate a dummy tcon struct used for reconnect */ - tcon = tconInfoAlloc(); + tcon = tcon_info_alloc(false); if (!tcon) { resched = true; list_for_each_entry_safe(ses, ses2, &tmp_ses_list, rlist) { diff -u linux-riscv-6.5.0/fs/smb/client/transport.c linux-riscv-6.5.0/fs/smb/client/transport.c --- linux-riscv-6.5.0/fs/smb/client/transport.c +++ linux-riscv-6.5.0/fs/smb/client/transport.c @@ -76,7 +76,7 @@ return temp; } -static void __release_mid(struct kref *refcount) +void __release_mid(struct kref *refcount) { struct mid_q_entry *midEntry = container_of(refcount, struct mid_q_entry, refcount); @@ -156,15 +156,6 @@ mempool_free(midEntry, cifs_mid_poolp); } -void release_mid(struct mid_q_entry *mid) -{ - struct TCP_Server_Info *server = mid->server; - - spin_lock(&server->mid_lock); - kref_put(&mid->refcount, __release_mid); - spin_unlock(&server->mid_lock); -} - void delete_mid(struct mid_q_entry *mid) { diff -u linux-riscv-6.5.0/fs/smb/server/smb2pdu.c linux-riscv-6.5.0/fs/smb/server/smb2pdu.c --- linux-riscv-6.5.0/fs/smb/server/smb2pdu.c +++ linux-riscv-6.5.0/fs/smb/server/smb2pdu.c @@ -2309,7 +2309,8 @@ rc = 0; } else { rc = ksmbd_vfs_setxattr(idmap, path, attr_name, value, - le16_to_cpu(eabuf->EaValueLength), 0); + le16_to_cpu(eabuf->EaValueLength), + 0, true); if (rc < 0) { ksmbd_debug(SMB, "ksmbd_vfs_setxattr is failed(%d)\n", @@ -2372,7 +2373,7 @@ return -EBADF; } - rc = ksmbd_vfs_setxattr(idmap, path, xattr_stream_name, NULL, 0, 0); + rc = ksmbd_vfs_setxattr(idmap, path, xattr_stream_name, NULL, 0, 0, false); if (rc < 0) pr_err("Failed to store XATTR stream name :%d\n", rc); return 0; @@ -2447,7 +2448,7 @@ da.flags = XATTR_DOSINFO_ATTRIB | XATTR_DOSINFO_CREATE_TIME | XATTR_DOSINFO_ITIME; - rc = ksmbd_vfs_set_dos_attrib_xattr(mnt_idmap(path->mnt), path, &da); + rc = ksmbd_vfs_set_dos_attrib_xattr(mnt_idmap(path->mnt), path, &da, false); if (rc) ksmbd_debug(SMB, "failed to store file attribute into xattr\n"); } @@ -2537,7 +2538,7 @@ sizeof(struct create_sd_buf_req)) return -EINVAL; return set_info_sec(work->conn, work->tcon, path, &sd_buf->ntsd, - le32_to_cpu(sd_buf->ccontext.DataLength), true); + le32_to_cpu(sd_buf->ccontext.DataLength), true, false); } static void ksmbd_acls_fattr(struct smb_fattr *fattr, @@ -3080,7 +3081,8 @@ idmap, &path, pntsd, - pntsd_size); + pntsd_size, + false); kfree(pntsd); if (rc) pr_err("failed to store ntacl in xattr : %d\n", @@ -3156,12 +3158,6 @@ if (req->CreateOptions & FILE_DELETE_ON_CLOSE_LE) ksmbd_fd_set_delete_on_close(fp, file_info); - if (need_truncate) { - rc = smb2_create_truncate(&path); - if (rc) - goto err_out; - } - if (req->CreateContextsOffset) { struct create_alloc_size_req *az_req; @@ -3330,11 +3326,12 @@ } err_out: - if (file_present || created) { - inode_unlock(d_inode(parent_path.dentry)); - path_put(&path); - path_put(&parent_path); - } + if (file_present || created) + ksmbd_vfs_kern_path_unlock(&parent_path, &path); + + if (fp && need_truncate) + rc = smb2_create_truncate(&fp->filp->f_path); + ksmbd_revert_fsids(work); err_out1: @@ -5522,7 +5519,7 @@ rc = ksmbd_vfs_setxattr(file_mnt_idmap(fp->filp), &fp->filp->f_path, xattr_stream_name, - NULL, 0, 0); + NULL, 0, 0, true); if (rc < 0) { pr_err("failed to store stream name in xattr: %d\n", rc); @@ -5615,11 +5612,9 @@ if (rc) rc = -EINVAL; out: - if (file_present) { - inode_unlock(d_inode(parent_path.dentry)); - path_put(&path); - path_put(&parent_path); - } + if (file_present) + ksmbd_vfs_kern_path_unlock(&parent_path, &path); + if (!IS_ERR(link_name)) kfree(link_name); kfree(pathname); @@ -5686,7 +5681,8 @@ da.flags = XATTR_DOSINFO_ATTRIB | XATTR_DOSINFO_CREATE_TIME | XATTR_DOSINFO_ITIME; - rc = ksmbd_vfs_set_dos_attrib_xattr(idmap, &filp->f_path, &da); + rc = ksmbd_vfs_set_dos_attrib_xattr(idmap, &filp->f_path, &da, + true); if (rc) ksmbd_debug(SMB, "failed to restore file attribute in EA\n"); @@ -5998,7 +5994,7 @@ fp->saccess |= FILE_SHARE_DELETE_LE; return set_info_sec(fp->conn, fp->tcon, &fp->filp->f_path, pntsd, - buf_len, false); + buf_len, false, true); } /** @@ -7545,7 +7541,8 @@ da.attr = le32_to_cpu(fp->f_ci->m_fattr); ret = ksmbd_vfs_set_dos_attrib_xattr(idmap, - &fp->filp->f_path, &da); + &fp->filp->f_path, + &da, true); if (ret) fp->f_ci->m_fattr = old_fattr; } diff -u linux-riscv-6.5.0/include/acpi/acpi_bus.h linux-riscv-6.5.0/include/acpi/acpi_bus.h --- linux-riscv-6.5.0/include/acpi/acpi_bus.h +++ linux-riscv-6.5.0/include/acpi/acpi_bus.h @@ -533,6 +533,7 @@ int acpi_bus_init_power(struct acpi_device *device); int acpi_device_fix_up_power(struct acpi_device *device); void acpi_device_fix_up_power_extended(struct acpi_device *adev); +void acpi_device_fix_up_power_children(struct acpi_device *adev); int acpi_bus_update_power(acpi_handle handle, int *state_p); int acpi_device_update_power(struct acpi_device *device, int *state_p); bool acpi_bus_power_manageable(acpi_handle handle); diff -u linux-riscv-6.5.0/include/linux/bpf.h linux-riscv-6.5.0/include/linux/bpf.h --- linux-riscv-6.5.0/include/linux/bpf.h +++ linux-riscv-6.5.0/include/linux/bpf.h @@ -890,10 +890,14 @@ aux->ctx_field_size = size; } +static bool bpf_is_ldimm64(const struct bpf_insn *insn) +{ + return insn->code == (BPF_LD | BPF_IMM | BPF_DW); +} + static inline bool bpf_pseudo_func(const struct bpf_insn *insn) { - return insn->code == (BPF_LD | BPF_IMM | BPF_DW) && - insn->src_reg == BPF_PSEUDO_FUNC; + return bpf_is_ldimm64(insn) && insn->src_reg == BPF_PSEUDO_FUNC; } struct bpf_prog_ops { @@ -1016,6 +1020,11 @@ */ #define BPF_TRAMP_F_SHARE_IPMODIFY BIT(6) +/* Indicate that current trampoline is in a tail call context. Then, it has to + * cache and restore tail_call_cnt to avoid infinite tail call loop. + */ +#define BPF_TRAMP_F_TAIL_CALL_CTX BIT(7) + /* Each call __bpf_prog_enter + call bpf_func + call __bpf_prog_exit is ~50 * bytes on x86. */ diff -u linux-riscv-6.5.0/include/linux/dma-fence.h linux-riscv-6.5.0/include/linux/dma-fence.h --- linux-riscv-6.5.0/include/linux/dma-fence.h +++ linux-riscv-6.5.0/include/linux/dma-fence.h @@ -499,6 +499,21 @@ } /** + * dma_fence_is_later_or_same - return true if f1 is later or same as f2 + * @f1: the first fence from the same context + * @f2: the second fence from the same context + * + * Returns true if f1 is chronologically later than f2 or the same fence. Both + * fences must be from the same context, since a seqno is not re-used across + * contexts. + */ +static inline bool dma_fence_is_later_or_same(struct dma_fence *f1, + struct dma_fence *f2) +{ + return f1 == f2 || dma_fence_is_later(f1, f2); +} + +/** * dma_fence_later - return the chronologically later fence * @f1: the first fence from the same context * @f2: the second fence from the same context diff -u linux-riscv-6.5.0/include/linux/fs.h linux-riscv-6.5.0/include/linux/fs.h --- linux-riscv-6.5.0/include/linux/fs.h +++ linux-riscv-6.5.0/include/linux/fs.h @@ -1505,7 +1505,50 @@ kgid_has_mapping(fs_userns, kgid); } -extern struct timespec64 current_time(struct inode *inode); +struct timespec64 current_time(struct inode *inode); +struct timespec64 inode_set_ctime_current(struct inode *inode); + +/** + * inode_get_ctime - fetch the current ctime from the inode + * @inode: inode from which to fetch ctime + * + * Grab the current ctime from the inode and return it. + */ +static inline struct timespec64 inode_get_ctime(const struct inode *inode) +{ + return inode->i_ctime; +} + +/** + * inode_set_ctime_to_ts - set the ctime in the inode + * @inode: inode in which to set the ctime + * @ts: value to set in the ctime field + * + * Set the ctime in @inode to @ts + */ +static inline struct timespec64 inode_set_ctime_to_ts(struct inode *inode, + struct timespec64 ts) +{ + inode->i_ctime = ts; + return ts; +} + +/** + * inode_set_ctime - set the ctime in the inode + * @inode: inode in which to set the ctime + * @sec: tv_sec value to set + * @nsec: tv_nsec value to set + * + * Set the ctime in @inode to { @sec, @nsec } + */ +static inline struct timespec64 inode_set_ctime(struct inode *inode, + time64_t sec, long nsec) +{ + struct timespec64 ts = { .tv_sec = sec, + .tv_nsec = nsec }; + + return inode_set_ctime_to_ts(inode, ts); +} /* * Snapshotting support. diff -u linux-riscv-6.5.0/include/linux/hid.h linux-riscv-6.5.0/include/linux/hid.h --- linux-riscv-6.5.0/include/linux/hid.h +++ linux-riscv-6.5.0/include/linux/hid.h @@ -656,6 +656,7 @@ struct list_head debug_list; spinlock_t debug_list_lock; wait_queue_head_t debug_wait; + struct kref ref; unsigned int id; /* system unique id */ @@ -664,6 +665,8 @@ #endif /* CONFIG_BPF */ }; +void hiddev_free(struct kref *ref); + #define to_hid_device(pdev) \ container_of(pdev, struct hid_device, dev) diff -u linux-riscv-6.5.0/include/linux/io_uring_types.h linux-riscv-6.5.0/include/linux/io_uring_types.h --- linux-riscv-6.5.0/include/linux/io_uring_types.h +++ linux-riscv-6.5.0/include/linux/io_uring_types.h @@ -327,6 +327,9 @@ struct list_head io_buffers_cache; + /* deferred free list, protected by ->uring_lock */ + struct hlist_head io_buf_list; + /* Keep this last, we don't need it for the fast path */ struct wait_queue_head poll_wq; struct io_restriction restrictions; diff -u linux-riscv-6.5.0/include/linux/lsm_hook_defs.h linux-riscv-6.5.0/include/linux/lsm_hook_defs.h --- linux-riscv-6.5.0/include/linux/lsm_hook_defs.h +++ linux-riscv-6.5.0/include/linux/lsm_hook_defs.h @@ -48,7 +48,7 @@ LSM_HOOK(int, 0, syslog, int type) LSM_HOOK(int, 0, settime, const struct timespec64 *ts, const struct timezone *tz) -LSM_HOOK(int, 0, vm_enough_memory, struct mm_struct *mm, long pages) +LSM_HOOK(int, 1, vm_enough_memory, struct mm_struct *mm, long pages) LSM_HOOK(int, 0, bprm_creds_for_exec, struct linux_binprm *bprm) LSM_HOOK(int, 0, bprm_creds_from_file, struct linux_binprm *bprm, struct file *file) LSM_HOOK(int, 0, bprm_check_security, struct linux_binprm *bprm) @@ -273,7 +273,7 @@ LSM_HOOK(void, LSM_RET_VOID, inode_invalidate_secctx, struct inode *inode) LSM_HOOK(int, 0, inode_notifysecctx, struct inode *inode, void *ctx, u32 ctxlen) LSM_HOOK(int, 0, inode_setsecctx, struct dentry *dentry, void *ctx, u32 ctxlen) -LSM_HOOK(int, 0, inode_getsecctx, struct inode *inode, void **ctx, +LSM_HOOK(int, -EOPNOTSUPP, inode_getsecctx, struct inode *inode, void **ctx, u32 *ctxlen) #if defined(CONFIG_SECURITY) && defined(CONFIG_WATCH_QUEUE) diff -u linux-riscv-6.5.0/include/linux/pci.h linux-riscv-6.5.0/include/linux/pci.h --- linux-riscv-6.5.0/include/linux/pci.h +++ linux-riscv-6.5.0/include/linux/pci.h @@ -1627,6 +1627,8 @@ u16 entry; /* Driver uses to specify entry, OS writes */ }; +struct msi_domain_template; + #ifdef CONFIG_PCI_MSI int pci_msi_vec_count(struct pci_dev *dev); void pci_disable_msi(struct pci_dev *dev); @@ -1659,6 +1661,11 @@ void pci_free_irq_vectors(struct pci_dev *dev); int pci_irq_vector(struct pci_dev *dev, unsigned int nr); const struct cpumask *pci_irq_get_affinity(struct pci_dev *pdev, int vec); +bool pci_create_ims_domain(struct pci_dev *pdev, const struct msi_domain_template *template, + unsigned int hwsize, void *data); +struct msi_map pci_ims_alloc_irq(struct pci_dev *pdev, union msi_instance_cookie *icookie, + const struct irq_affinity_desc *affdesc); +void pci_ims_free_irq(struct pci_dev *pdev, struct msi_map map); #else static inline int pci_msi_vec_count(struct pci_dev *dev) { return -ENOSYS; } @@ -1722,6 +1729,25 @@ { return cpu_possible_mask; } + +static inline bool pci_create_ims_domain(struct pci_dev *pdev, + const struct msi_domain_template *template, + unsigned int hwsize, void *data) +{ return false; } + +static inline struct msi_map pci_ims_alloc_irq(struct pci_dev *pdev, + union msi_instance_cookie *icookie, + const struct irq_affinity_desc *affdesc) +{ + struct msi_map map = { .index = -ENOSYS, }; + + return map; +} + +static inline void pci_ims_free_irq(struct pci_dev *pdev, struct msi_map map) +{ +} + #endif /** @@ -2616,14 +2642,6 @@ void pci_uevent_ers(struct pci_dev *pdev, enum pci_ers_result err_type); #endif -struct msi_domain_template; - -bool pci_create_ims_domain(struct pci_dev *pdev, const struct msi_domain_template *template, - unsigned int hwsize, void *data); -struct msi_map pci_ims_alloc_irq(struct pci_dev *pdev, union msi_instance_cookie *icookie, - const struct irq_affinity_desc *affdesc); -void pci_ims_free_irq(struct pci_dev *pdev, struct msi_map map); - #include #define pci_printk(level, pdev, fmt, arg...) \ diff -u linux-riscv-6.5.0/include/linux/pci_ids.h linux-riscv-6.5.0/include/linux/pci_ids.h --- linux-riscv-6.5.0/include/linux/pci_ids.h +++ linux-riscv-6.5.0/include/linux/pci_ids.h @@ -180,6 +180,8 @@ #define PCI_DEVICE_ID_BERKOM_A4T 0xffa4 #define PCI_DEVICE_ID_BERKOM_SCITEL_QUADRO 0xffa8 +#define PCI_VENDOR_ID_ITTIM 0x0b48 + #define PCI_VENDOR_ID_COMPAQ 0x0e11 #define PCI_DEVICE_ID_COMPAQ_TOKENRING 0x0508 #define PCI_DEVICE_ID_COMPAQ_TACHYON 0xa0fc @@ -579,6 +581,7 @@ #define PCI_DEVICE_ID_AMD_1AH_M00H_DF_F3 0x12c3 #define PCI_DEVICE_ID_AMD_1AH_M20H_DF_F3 0x16fb #define PCI_DEVICE_ID_AMD_MI200_DF_F3 0x14d3 +#define PCI_DEVICE_ID_AMD_VANGOGH_USB 0x163a #define PCI_DEVICE_ID_AMD_CNB17H_F3 0x1703 #define PCI_DEVICE_ID_AMD_LANCE 0x2000 #define PCI_DEVICE_ID_AMD_LANCE_HOME 0x2001 diff -u linux-riscv-6.5.0/include/linux/perf_event.h linux-riscv-6.5.0/include/linux/perf_event.h --- linux-riscv-6.5.0/include/linux/perf_event.h +++ linux-riscv-6.5.0/include/linux/perf_event.h @@ -843,11 +843,11 @@ }; /* - * ,-----------------------[1:n]----------------------. - * V V - * perf_event_context <-[1:n]-> perf_event_pmu_context <--- perf_event - * ^ ^ | | - * `--------[1:n]---------' `-[n:1]-> pmu <-[1:n]-' + * ,-----------------------[1:n]------------------------. + * V V + * perf_event_context <-[1:n]-> perf_event_pmu_context <-[1:n]- perf_event + * | | + * `--[n:1]-> pmu <-[1:n]--' * * * struct perf_event_pmu_context lifetime is refcount based and RCU freed @@ -865,6 +865,9 @@ * ctx->mutex pinning the configuration. Since we hold a reference on * group_leader (through the filedesc) it can't go away, therefore it's * associated pmu_ctx must exist and cannot change due to ctx->mutex. + * + * perf_event holds a refcount on perf_event_context + * perf_event holds a refcount on perf_event_pmu_context */ struct perf_event_pmu_context { struct pmu *pmu; @@ -879,6 +882,7 @@ unsigned int embedded : 1; unsigned int nr_events; + unsigned int nr_cgroups; atomic_t refcount; /* event <-> epc */ struct rcu_head rcu_head; diff -u linux-riscv-6.5.0/include/linux/trace_events.h linux-riscv-6.5.0/include/linux/trace_events.h --- linux-riscv-6.5.0/include/linux/trace_events.h +++ linux-riscv-6.5.0/include/linux/trace_events.h @@ -492,6 +492,7 @@ EVENT_FILE_FL_TRIGGER_COND_BIT, EVENT_FILE_FL_PID_FILTER_BIT, EVENT_FILE_FL_WAS_ENABLED_BIT, + EVENT_FILE_FL_FREED_BIT, }; extern struct trace_event_file *trace_get_event_file(const char *instance, @@ -630,6 +631,7 @@ * TRIGGER_COND - When set, one or more triggers has an associated filter * PID_FILTER - When set, the event is filtered based on pid * WAS_ENABLED - Set when enabled to know to clear trace on module removal + * FREED - File descriptor is freed, all fields should be considered invalid */ enum { EVENT_FILE_FL_ENABLED = (1 << EVENT_FILE_FL_ENABLED_BIT), @@ -643,6 +645,7 @@ EVENT_FILE_FL_TRIGGER_COND = (1 << EVENT_FILE_FL_TRIGGER_COND_BIT), EVENT_FILE_FL_PID_FILTER = (1 << EVENT_FILE_FL_PID_FILTER_BIT), EVENT_FILE_FL_WAS_ENABLED = (1 << EVENT_FILE_FL_WAS_ENABLED_BIT), + EVENT_FILE_FL_FREED = (1 << EVENT_FILE_FL_FREED_BIT), }; struct trace_event_file { @@ -671,6 +674,7 @@ * caching and such. Which is mostly OK ;-) */ unsigned long flags; + atomic_t ref; /* ref count for opened files */ atomic_t sm_ref; /* soft-mode reference counter */ atomic_t tm_ref; /* trigger-mode reference counter */ }; diff -u linux-riscv-6.5.0/include/net/bluetooth/hci.h linux-riscv-6.5.0/include/net/bluetooth/hci.h --- linux-riscv-6.5.0/include/net/bluetooth/hci.h +++ linux-riscv-6.5.0/include/net/bluetooth/hci.h @@ -1,6 +1,7 @@ /* BlueZ - Bluetooth protocol stack for Linux Copyright (C) 2000-2001 Qualcomm Incorporated + Copyright 2023 NXP Written 2000,2001 by Maxim Krasnyansky @@ -672,6 +673,8 @@ #define HCI_TX_POWER_INVALID 127 #define HCI_RSSI_INVALID 127 +#define HCI_SYNC_HANDLE_INVALID 0xffff + #define HCI_ROLE_MASTER 0x00 #define HCI_ROLE_SLAVE 0x01 diff -u linux-riscv-6.5.0/include/net/bluetooth/hci_core.h linux-riscv-6.5.0/include/net/bluetooth/hci_core.h --- linux-riscv-6.5.0/include/net/bluetooth/hci_core.h +++ linux-riscv-6.5.0/include/net/bluetooth/hci_core.h @@ -350,7 +350,9 @@ struct list_head list; struct mutex lock; - char name[8]; + struct ida unset_handle_ida; + + const char *name; unsigned long flags; __u16 id; __u8 bus; @@ -978,6 +980,8 @@ HCI_CONN_CREATE_CIS, HCI_CONN_BIG_SYNC, HCI_CONN_BIG_SYNC_FAILED, + HCI_CONN_PA_SYNC, + HCI_CONN_PA_SYNC_FAILED, }; static inline bool hci_conn_ssp_enabled(struct hci_conn *conn) @@ -1301,7 +1305,7 @@ if (c->type != ISO_LINK) continue; - if (handle == c->iso_qos.bcast.big) { + if (handle != BT_ISO_QOS_BIG_UNSET && handle == c->iso_qos.bcast.big) { rcu_read_unlock(); return c; } @@ -1312,6 +1316,52 @@ return NULL; } +static inline struct hci_conn * +hci_conn_hash_lookup_pa_sync_big_handle(struct hci_dev *hdev, __u8 big) +{ + struct hci_conn_hash *h = &hdev->conn_hash; + struct hci_conn *c; + + rcu_read_lock(); + + list_for_each_entry_rcu(c, &h->list, list) { + if (c->type != ISO_LINK || + !test_bit(HCI_CONN_PA_SYNC, &c->flags)) + continue; + + if (c->iso_qos.bcast.big == big) { + rcu_read_unlock(); + return c; + } + } + rcu_read_unlock(); + + return NULL; +} + +static inline struct hci_conn * +hci_conn_hash_lookup_pa_sync_handle(struct hci_dev *hdev, __u16 sync_handle) +{ + struct hci_conn_hash *h = &hdev->conn_hash; + struct hci_conn *c; + + rcu_read_lock(); + + list_for_each_entry_rcu(c, &h->list, list) { + if (c->type != ISO_LINK || + !test_bit(HCI_CONN_PA_SYNC, &c->flags)) + continue; + + if (c->sync_handle == sync_handle) { + rcu_read_unlock(); + return c; + } + } + rcu_read_unlock(); + + return NULL; +} + static inline struct hci_conn *hci_conn_hash_lookup_state(struct hci_dev *hdev, __u8 type, __u16 state) { @@ -1381,7 +1431,9 @@ int hci_conn_check_create_cis(struct hci_conn *conn); struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst, - u8 role); + u8 role, u16 handle); +struct hci_conn *hci_conn_add_unset(struct hci_dev *hdev, int type, + bdaddr_t *dst, u8 role); void hci_conn_del(struct hci_conn *conn); void hci_conn_hash_flush(struct hci_dev *hdev); void hci_conn_check_pending(struct hci_dev *hdev); @@ -1415,7 +1467,8 @@ __u8 data_len, __u8 *data); int hci_pa_create_sync(struct hci_dev *hdev, bdaddr_t *dst, __u8 dst_type, __u8 sid, struct bt_iso_qos *qos); -int hci_le_big_create_sync(struct hci_dev *hdev, struct bt_iso_qos *qos, +int hci_le_big_create_sync(struct hci_dev *hdev, struct hci_conn *hcon, + struct bt_iso_qos *qos, __u16 sync_handle, __u8 num_bis, __u8 bis[]); int hci_conn_check_link_mode(struct hci_conn *conn); int hci_conn_check_secure(struct hci_conn *conn, __u8 sec_level); @@ -1426,6 +1479,7 @@ void hci_conn_enter_active_mode(struct hci_conn *conn, __u8 force_active); void hci_conn_failed(struct hci_conn *conn, u8 status); +u8 hci_conn_set_handle(struct hci_conn *conn, u16 handle); /* * hci_conn_get() and hci_conn_put() are used to control the life-time of an diff -u linux-riscv-6.5.0/include/net/bluetooth/hci_sync.h linux-riscv-6.5.0/include/net/bluetooth/hci_sync.h --- linux-riscv-6.5.0/include/net/bluetooth/hci_sync.h +++ linux-riscv-6.5.0/include/net/bluetooth/hci_sync.h @@ -5,6 +5,9 @@ * Copyright (C) 2021 Intel Corporation */ +#define UINT_PTR(_handle) ((void *)((uintptr_t)_handle)) +#define PTR_UINT(_ptr) ((uintptr_t)((void *)_ptr)) + typedef int (*hci_cmd_sync_work_func_t)(struct hci_dev *hdev, void *data); typedef void (*hci_cmd_sync_work_destroy_t)(struct hci_dev *hdev, void *data, int err); diff -u linux-riscv-6.5.0/include/net/cfg80211.h linux-riscv-6.5.0/include/net/cfg80211.h --- linux-riscv-6.5.0/include/net/cfg80211.h +++ linux-riscv-6.5.0/include/net/cfg80211.h @@ -5827,6 +5827,16 @@ */ void wiphy_work_cancel(struct wiphy *wiphy, struct wiphy_work *work); +/** + * wiphy_work_flush - flush previously queued work + * @wiphy: the wiphy, for debug purposes + * @work: the work to flush, this can be %NULL to flush all work + * + * Flush the work (i.e. run it if pending). This must be called + * under the wiphy mutex acquired by wiphy_lock(). + */ +void wiphy_work_flush(struct wiphy *wiphy, struct wiphy_work *work); + struct wiphy_delayed_work { struct wiphy_work work; struct wiphy *wiphy; @@ -5871,6 +5881,17 @@ struct wiphy_delayed_work *dwork); /** + * wiphy_delayed_work_flush - flush previously queued delayed work + * @wiphy: the wiphy, for debug purposes + * @work: the work to flush + * + * Flush the work (i.e. run it if pending). This must be called + * under the wiphy mutex acquired by wiphy_lock(). + */ +void wiphy_delayed_work_flush(struct wiphy *wiphy, + struct wiphy_delayed_work *dwork); + +/** * struct wireless_dev - wireless device state * * For netdevs, this structure must be allocated by the driver diff -u linux-riscv-6.5.0/include/net/ip_fib.h linux-riscv-6.5.0/include/net/ip_fib.h --- linux-riscv-6.5.0/include/net/ip_fib.h +++ linux-riscv-6.5.0/include/net/ip_fib.h @@ -154,6 +154,7 @@ int fib_nhs; bool fib_nh_is_v6; bool nh_updated; + bool pfsrc_removed; struct nexthop *nh; struct rcu_head rcu; struct fib_nh fib_nh[]; diff -u linux-riscv-6.5.0/include/net/neighbour.h linux-riscv-6.5.0/include/net/neighbour.h --- linux-riscv-6.5.0/include/net/neighbour.h +++ linux-riscv-6.5.0/include/net/neighbour.h @@ -162,7 +162,7 @@ struct rcu_head rcu; struct net_device *dev; netdevice_tracker dev_tracker; - u8 primary_key[0]; + u8 primary_key[]; } __randomize_layout; struct neigh_ops { diff -u linux-riscv-6.5.0/include/net/netfilter/nf_tables.h linux-riscv-6.5.0/include/net/netfilter/nf_tables.h --- linux-riscv-6.5.0/include/net/netfilter/nf_tables.h +++ linux-riscv-6.5.0/include/net/netfilter/nf_tables.h @@ -178,9 +178,9 @@ return *(__force __be32 *)sreg; } -static inline void nft_reg_store64(u32 *dreg, u64 val) +static inline void nft_reg_store64(u64 *dreg, u64 val) { - put_unaligned(val, (u64 *)dreg); + put_unaligned(val, dreg); } static inline u64 nft_reg_load64(const u32 *sreg) diff -u linux-riscv-6.5.0/include/net/sock.h linux-riscv-6.5.0/include/net/sock.h --- linux-riscv-6.5.0/include/net/sock.h +++ linux-riscv-6.5.0/include/net/sock.h @@ -336,7 +336,7 @@ * @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_disconnects: number of disconnect operations performed on this sock * @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 @@ -429,7 +429,7 @@ unsigned int sk_napi_id; #endif int sk_rcvbuf; - int sk_wait_pending; + int sk_disconnects; struct sk_filter __rcu *sk_filter; union { @@ -1189,8 +1189,7 @@ } #define sk_wait_event(__sk, __timeo, __condition, __wait) \ - ({ int __rc; \ - __sk->sk_wait_pending++; \ + ({ int __rc, __dis = __sk->sk_disconnects; \ release_sock(__sk); \ __rc = __condition; \ if (!__rc) { \ @@ -1200,8 +1199,7 @@ } \ sched_annotate_sleep(); \ lock_sock(__sk); \ - __sk->sk_wait_pending--; \ - __rc = __condition; \ + __rc = __dis == __sk->sk_disconnects ? __condition : -EPIPE; \ __rc; \ }) @@ -2008,21 +2006,33 @@ /* sk_tx_queue_mapping accept only upto a 16-bit value */ if (WARN_ON_ONCE((unsigned short)tx_queue >= USHRT_MAX)) return; - sk->sk_tx_queue_mapping = tx_queue; + /* Paired with READ_ONCE() in sk_tx_queue_get() and + * other WRITE_ONCE() because socket lock might be not held. + */ + WRITE_ONCE(sk->sk_tx_queue_mapping, tx_queue); } #define NO_QUEUE_MAPPING USHRT_MAX static inline void sk_tx_queue_clear(struct sock *sk) { - sk->sk_tx_queue_mapping = NO_QUEUE_MAPPING; + /* Paired with READ_ONCE() in sk_tx_queue_get() and + * other WRITE_ONCE() because socket lock might be not held. + */ + WRITE_ONCE(sk->sk_tx_queue_mapping, NO_QUEUE_MAPPING); } static inline int sk_tx_queue_get(const struct sock *sk) { - if (sk && sk->sk_tx_queue_mapping != NO_QUEUE_MAPPING) - return sk->sk_tx_queue_mapping; + if (sk) { + /* Paired with WRITE_ONCE() in sk_tx_queue_clear() + * and sk_tx_queue_set(). + */ + int val = READ_ONCE(sk->sk_tx_queue_mapping); + if (val != NO_QUEUE_MAPPING) + return val; + } return -1; } @@ -2171,7 +2181,7 @@ if (ndst != dst) { rcu_assign_pointer(sk->sk_dst_cache, ndst); sk_tx_queue_clear(sk); - sk->sk_dst_pending_confirm = 0; + WRITE_ONCE(sk->sk_dst_pending_confirm, 0); } } } @@ -2188,7 +2198,7 @@ struct dst_entry *old_dst; sk_tx_queue_clear(sk); - sk->sk_dst_pending_confirm = 0; + WRITE_ONCE(sk->sk_dst_pending_confirm, 0); old_dst = rcu_dereference_protected(sk->sk_dst_cache, lockdep_sock_is_held(sk)); rcu_assign_pointer(sk->sk_dst_cache, dst); @@ -2201,7 +2211,7 @@ struct dst_entry *old_dst; sk_tx_queue_clear(sk); - sk->sk_dst_pending_confirm = 0; + WRITE_ONCE(sk->sk_dst_pending_confirm, 0); old_dst = xchg((__force struct dst_entry **)&sk->sk_dst_cache, dst); dst_release(old_dst); } diff -u linux-riscv-6.5.0/include/net/tcp.h linux-riscv-6.5.0/include/net/tcp.h --- linux-riscv-6.5.0/include/net/tcp.h +++ linux-riscv-6.5.0/include/net/tcp.h @@ -142,6 +142,9 @@ #define TCP_RTO_MAX ((unsigned)(120*HZ)) #define TCP_RTO_MIN ((unsigned)(HZ/5)) #define TCP_TIMEOUT_MIN (2U) /* Min timeout for TCP timers in jiffies */ + +#define TCP_TIMEOUT_MIN_US (2*USEC_PER_MSEC) /* Min TCP timeout in microsecs */ + #define TCP_TIMEOUT_INIT ((unsigned)(1*HZ)) /* RFC6298 2.1 initial RTO value */ #define TCP_TIMEOUT_FALLBACK ((unsigned)(3*HZ)) /* RFC 1122 initial RTO value, now * used as a fallback RTO for the @@ -802,7 +805,7 @@ } /* Convert a nsec timestamp into TCP TSval timestamp (ms based currently) */ -static inline u32 tcp_ns_to_ts(u64 ns) +static inline u64 tcp_ns_to_ts(u64 ns) { return div_u64(ns, NSEC_PER_SEC / TCP_TS_HZ); } @@ -1455,17 +1458,22 @@ return tcp_win_from_space(sk, READ_ONCE(sk->sk_rcvbuf)); } -static inline void tcp_adjust_rcv_ssthresh(struct sock *sk) +static inline void __tcp_adjust_rcv_ssthresh(struct sock *sk, u32 new_ssthresh) { int unused_mem = sk_unused_reserved_mem(sk); struct tcp_sock *tp = tcp_sk(sk); - tp->rcv_ssthresh = min(tp->rcv_ssthresh, 4U * tp->advmss); + tp->rcv_ssthresh = min(tp->rcv_ssthresh, new_ssthresh); if (unused_mem) tp->rcv_ssthresh = max_t(u32, tp->rcv_ssthresh, tcp_win_from_space(sk, unused_mem)); } +static inline void tcp_adjust_rcv_ssthresh(struct sock *sk) +{ + __tcp_adjust_rcv_ssthresh(sk, 4U * tcp_sk(sk)->advmss); +} + void tcp_cleanup_rbuf(struct sock *sk, int copied); void __tcp_cleanup_rbuf(struct sock *sk, int copied); diff -u linux-riscv-6.5.0/include/scsi/scsi_device.h linux-riscv-6.5.0/include/scsi/scsi_device.h --- linux-riscv-6.5.0/include/scsi/scsi_device.h +++ linux-riscv-6.5.0/include/scsi/scsi_device.h @@ -162,8 +162,30 @@ * core. */ unsigned int eh_timeout; /* Error handling timeout */ - bool manage_system_start_stop; /* Let HLD (sd) manage system start/stop */ - bool manage_runtime_start_stop; /* Let HLD (sd) manage runtime start/stop */ + /* + * If true, let the high-level device driver (sd) manage the device + * power state for system suspend/resume (suspend to RAM and + * hibernation) operations. + */ + unsigned manage_system_start_stop:1; + + /* + * If true, let the high-level device driver (sd) manage the device + * power state for runtime device suspand and resume operations. + */ + unsigned manage_runtime_start_stop:1; + + /* + * If true, let the high-level device driver (sd) manage the device + * power state for system shutdown (power off) operations. + */ + unsigned manage_shutdown:1; + + /* + * If set and if the device is runtime suspended, ask the high-level + * device driver (sd) to force a runtime resume of the device. + */ + unsigned force_runtime_start_on_system_start:1; unsigned removable:1; unsigned changed:1; /* Data invalid due to media change */ diff -u linux-riscv-6.5.0/include/uapi/linux/prctl.h linux-riscv-6.5.0/include/uapi/linux/prctl.h --- linux-riscv-6.5.0/include/uapi/linux/prctl.h +++ linux-riscv-6.5.0/include/uapi/linux/prctl.h @@ -283,7 +283,8 @@ /* Memory deny write / execute */ #define PR_SET_MDWE 65 -# define PR_MDWE_REFUSE_EXEC_GAIN 1 +# define PR_MDWE_REFUSE_EXEC_GAIN (1UL << 0) +# define PR_MDWE_NO_INHERIT (1UL << 1) #define PR_GET_MDWE 66 diff -u linux-riscv-6.5.0/include/uapi/linux/stddef.h linux-riscv-6.5.0/include/uapi/linux/stddef.h --- linux-riscv-6.5.0/include/uapi/linux/stddef.h +++ linux-riscv-6.5.0/include/uapi/linux/stddef.h @@ -27,7 +27,7 @@ union { \ struct { MEMBERS } ATTRS; \ struct TAG { MEMBERS } ATTRS NAME; \ - } + } ATTRS #ifdef __cplusplus /* sizeof(struct{}) is 1 in C++, not 0, can't use C version of the macro. */ diff -u linux-riscv-6.5.0/io_uring/fdinfo.c linux-riscv-6.5.0/io_uring/fdinfo.c --- linux-riscv-6.5.0/io_uring/fdinfo.c +++ linux-riscv-6.5.0/io_uring/fdinfo.c @@ -145,13 +145,8 @@ if (has_lock && (ctx->flags & IORING_SETUP_SQPOLL)) { struct io_sq_data *sq = ctx->sq_data; - if (mutex_trylock(&sq->lock)) { - if (sq->thread) { - sq_pid = task_pid_nr(sq->thread); - sq_cpu = task_cpu(sq->thread); - } - mutex_unlock(&sq->lock); - } + sq_pid = sq->task_pid; + sq_cpu = sq->sq_cpu; } seq_printf(m, "SqThread:\t%d\n", sq_pid); diff -u linux-riscv-6.5.0/io_uring/fs.c linux-riscv-6.5.0/io_uring/fs.c --- linux-riscv-6.5.0/io_uring/fs.c +++ linux-riscv-6.5.0/io_uring/fs.c @@ -254,7 +254,7 @@ newf = u64_to_user_ptr(READ_ONCE(sqe->addr2)); lnk->flags = READ_ONCE(sqe->hardlink_flags); - lnk->oldpath = getname(oldf); + lnk->oldpath = getname_uflags(oldf, lnk->flags); if (IS_ERR(lnk->oldpath)) return PTR_ERR(lnk->oldpath); diff -u linux-riscv-6.5.0/io_uring/io_uring.c linux-riscv-6.5.0/io_uring/io_uring.c --- linux-riscv-6.5.0/io_uring/io_uring.c +++ linux-riscv-6.5.0/io_uring/io_uring.c @@ -323,6 +323,7 @@ INIT_LIST_HEAD(&ctx->sqd_list); INIT_LIST_HEAD(&ctx->cq_overflow_list); INIT_LIST_HEAD(&ctx->io_buffers_cache); + INIT_HLIST_HEAD(&ctx->io_buf_list); io_alloc_cache_init(&ctx->rsrc_node_cache, IO_NODE_ALLOC_CACHE_MAX, sizeof(struct io_rsrc_node)); io_alloc_cache_init(&ctx->apoll_cache, IO_ALLOC_CACHE_MAX, @@ -1599,6 +1600,7 @@ if (!(ctx->flags & IORING_SETUP_IOPOLL)) return; + percpu_ref_get(&ctx->refs); mutex_lock(&ctx->uring_lock); while (!wq_list_empty(&ctx->iopoll_list)) { /* let it sleep and repeat later if can't complete a request */ @@ -1616,6 +1618,7 @@ } } mutex_unlock(&ctx->uring_lock); + percpu_ref_put(&ctx->refs); } static int io_iopoll_check(struct io_ring_ctx *ctx, long min) @@ -2659,7 +2662,7 @@ return READ_ONCE(rings->cq.head) == READ_ONCE(rings->cq.tail) ? ret : 0; } -static void io_mem_free(void *ptr) +void io_mem_free(void *ptr) { if (!ptr) return; @@ -2690,6 +2693,7 @@ { struct page **page_array; unsigned int nr_pages; + void *page_addr; int ret, i; *npages = 0; @@ -2711,27 +2715,29 @@ io_pages_free(&page_array, ret > 0 ? ret : 0); return ret < 0 ? ERR_PTR(ret) : ERR_PTR(-EFAULT); } - /* - * Should be a single page. If the ring is small enough that we can - * use a normal page, that is fine. If we need multiple pages, then - * userspace should use a huge page. That's the only way to guarantee - * that we get contigious memory, outside of just being lucky or - * (currently) having low memory fragmentation. - */ - if (page_array[0] != page_array[ret - 1]) - goto err; - /* - * Can't support mapping user allocated ring memory on 32-bit archs - * where it could potentially reside in highmem. Just fail those with - * -EINVAL, just like we did on kernels that didn't support this - * feature. - */ + page_addr = page_address(page_array[0]); for (i = 0; i < nr_pages; i++) { - if (PageHighMem(page_array[i])) { - ret = -EINVAL; + ret = -EINVAL; + + /* + * Can't support mapping user allocated ring memory on 32-bit + * archs where it could potentially reside in highmem. Just + * fail those with -EINVAL, just like we did on kernels that + * didn't support this feature. + */ + if (PageHighMem(page_array[i])) goto err; - } + + /* + * No support for discontig pages for now, should either be a + * single normal page, or a huge page. Later on we can add + * support for remapping discontig pages, for now we will + * just fail them with EINVAL. + */ + if (page_address(page_array[i]) != page_addr) + goto err; + page_addr += PAGE_SIZE; } *pages = page_array; @@ -2768,7 +2774,7 @@ } } -static void *io_mem_alloc(size_t size) +void *io_mem_alloc(size_t size) { gfp_t gfp = GFP_KERNEL_ACCOUNT | __GFP_ZERO | __GFP_NOWARN | __GFP_COMP; void *ret; @@ -2939,6 +2945,7 @@ ctx->mm_account = NULL; } io_rings_free(ctx); + io_kbuf_mmap_list_free(ctx); percpu_ref_exit(&ctx->refs); free_uid(ctx->user); @@ -3133,12 +3140,7 @@ init_completion(&exit.completion); init_task_work(&exit.task_work, io_tctx_exit_cb); exit.ctx = ctx; - /* - * Some may use context even when all refs and requests have been put, - * and they are free to do so while still holding uring_lock or - * completion_lock, see io_req_task_submit(). Apart from other work, - * this lock/unlock section also waits them to finish. - */ + mutex_lock(&ctx->uring_lock); while (!list_empty(&ctx->tctx_list)) { WARN_ON_ONCE(time_after(jiffies, timeout)); @@ -3433,25 +3435,27 @@ struct page *page; void *ptr; - /* Don't allow mmap if the ring was setup without it */ - if (ctx->flags & IORING_SETUP_NO_MMAP) - return ERR_PTR(-EINVAL); - switch (offset & IORING_OFF_MMAP_MASK) { case IORING_OFF_SQ_RING: case IORING_OFF_CQ_RING: + /* Don't allow mmap if the ring was setup without it */ + if (ctx->flags & IORING_SETUP_NO_MMAP) + return ERR_PTR(-EINVAL); ptr = ctx->rings; break; case IORING_OFF_SQES: + /* Don't allow mmap if the ring was setup without it */ + if (ctx->flags & IORING_SETUP_NO_MMAP) + return ERR_PTR(-EINVAL); ptr = ctx->sq_sqes; break; case IORING_OFF_PBUF_RING: { unsigned int bgid; bgid = (offset & ~IORING_OFF_MMAP_MASK) >> IORING_OFF_PBUF_SHIFT; - mutex_lock(&ctx->uring_lock); + rcu_read_lock(); ptr = io_pbuf_get_address(ctx, bgid); - mutex_unlock(&ctx->uring_lock); + rcu_read_unlock(); if (!ptr) return ERR_PTR(-EINVAL); break; diff -u linux-riscv-6.5.0/io_uring/io_uring.h linux-riscv-6.5.0/io_uring/io_uring.h --- linux-riscv-6.5.0/io_uring/io_uring.h +++ linux-riscv-6.5.0/io_uring/io_uring.h @@ -86,6 +86,9 @@ bool io_match_task_safe(struct io_kiocb *head, struct task_struct *task, bool cancel_all); +void *io_mem_alloc(size_t size); +void io_mem_free(void *ptr); + #if defined(CONFIG_PROVE_LOCKING) static inline void io_lockdep_assert_cq_locked(struct io_ring_ctx *ctx) { diff -u linux-riscv-6.5.0/io_uring/kbuf.c linux-riscv-6.5.0/io_uring/kbuf.c --- linux-riscv-6.5.0/io_uring/kbuf.c +++ linux-riscv-6.5.0/io_uring/kbuf.c @@ -19,28 +19,54 @@ #define BGID_ARRAY 64 +/* BIDs are addressed by a 16-bit field in a CQE */ +#define MAX_BIDS_PER_BGID (1 << 16) + struct io_provide_buf { struct file *file; __u64 addr; __u32 len; __u32 bgid; - __u16 nbufs; + __u32 nbufs; __u16 bid; }; +struct io_buf_free { + struct hlist_node list; + void *mem; + size_t size; + int inuse; +}; + +static struct io_buffer_list *__io_buffer_get_list(struct io_ring_ctx *ctx, + struct io_buffer_list *bl, + unsigned int bgid) +{ + if (bl && bgid < BGID_ARRAY) + return &bl[bgid]; + + return xa_load(&ctx->io_bl_xa, bgid); +} + static inline struct io_buffer_list *io_buffer_get_list(struct io_ring_ctx *ctx, unsigned int bgid) { - if (ctx->io_bl && bgid < BGID_ARRAY) - return &ctx->io_bl[bgid]; + lockdep_assert_held(&ctx->uring_lock); - return xa_load(&ctx->io_bl_xa, bgid); + return __io_buffer_get_list(ctx, ctx->io_bl, bgid); } static int io_buffer_add_list(struct io_ring_ctx *ctx, struct io_buffer_list *bl, unsigned int bgid) { + /* + * Store buffer group ID and finally mark the list as visible. + * The normal lookup doesn't care about the visibility as we're + * always under the ->uring_lock, but the RCU lookup from mmap does. + */ bl->bgid = bgid; + smp_store_release(&bl->is_ready, 1); + if (bgid < BGID_ARRAY) return 0; @@ -191,21 +217,40 @@ static __cold int io_init_bl_list(struct io_ring_ctx *ctx) { + struct io_buffer_list *bl; int i; - ctx->io_bl = kcalloc(BGID_ARRAY, sizeof(struct io_buffer_list), - GFP_KERNEL); - if (!ctx->io_bl) + bl = kcalloc(BGID_ARRAY, sizeof(struct io_buffer_list), GFP_KERNEL); + if (!bl) return -ENOMEM; for (i = 0; i < BGID_ARRAY; i++) { - INIT_LIST_HEAD(&ctx->io_bl[i].buf_list); - ctx->io_bl[i].bgid = i; + INIT_LIST_HEAD(&bl[i].buf_list); + bl[i].bgid = i; } + smp_store_release(&ctx->io_bl, bl); return 0; } +/* + * Mark the given mapped range as free for reuse + */ +static void io_kbuf_mark_free(struct io_ring_ctx *ctx, struct io_buffer_list *bl) +{ + struct io_buf_free *ibf; + + hlist_for_each_entry(ibf, &ctx->io_buf_list, list) { + if (bl->buf_ring == ibf->mem) { + ibf->inuse = 0; + return; + } + } + + /* can't happen... */ + WARN_ON_ONCE(1); +} + static int __io_remove_buffers(struct io_ring_ctx *ctx, struct io_buffer_list *bl, unsigned nbufs) { @@ -218,7 +263,11 @@ if (bl->is_mapped) { i = bl->buf_ring->tail - bl->head; if (bl->is_mmap) { - folio_put(virt_to_folio(bl->buf_ring)); + /* + * io_kbuf_list_free() will free the page(s) at + * ->release() time. + */ + io_kbuf_mark_free(ctx, bl); bl->buf_ring = NULL; bl->is_mmap = 0; } else if (bl->buf_nr_pages) { @@ -267,7 +316,7 @@ xa_for_each(&ctx->io_bl_xa, index, bl) { xa_erase(&ctx->io_bl_xa, bl->bgid); __io_remove_buffers(ctx, bl, -1U); - kfree(bl); + kfree_rcu(bl, rcu); } while (!list_empty(&ctx->io_buffers_pages)) { @@ -289,7 +338,7 @@ return -EINVAL; tmp = READ_ONCE(sqe->fd); - if (!tmp || tmp > USHRT_MAX) + if (!tmp || tmp > MAX_BIDS_PER_BGID) return -EINVAL; memset(p, 0, sizeof(*p)); @@ -332,7 +381,7 @@ return -EINVAL; tmp = READ_ONCE(sqe->fd); - if (!tmp || tmp > USHRT_MAX) + if (!tmp || tmp > MAX_BIDS_PER_BGID) return -E2BIG; p->nbufs = tmp; p->addr = READ_ONCE(sqe->addr); @@ -352,7 +401,7 @@ tmp = READ_ONCE(sqe->off); if (tmp > USHRT_MAX) return -E2BIG; - if (tmp + p->nbufs >= USHRT_MAX) + if (tmp + p->nbufs > MAX_BIDS_PER_BGID) return -EINVAL; p->bid = tmp; return 0; @@ -452,7 +501,16 @@ INIT_LIST_HEAD(&bl->buf_list); ret = io_buffer_add_list(ctx, bl, p->bgid); if (ret) { - kfree(bl); + /* + * Doesn't need rcu free as it was never visible, but + * let's keep it consistent throughout. Also can't + * be a lower indexed array group, as adding one + * where lookup failed cannot happen. + */ + if (p->bgid >= BGID_ARRAY) + kfree_rcu(bl, rcu); + else + WARN_ON_ONCE(1); goto err; } } @@ -523,19 +581,63 @@ return -EINVAL; } -static int io_alloc_pbuf_ring(struct io_uring_buf_reg *reg, +/* + * See if we have a suitable region that we can reuse, rather than allocate + * both a new io_buf_free and mem region again. We leave it on the list as + * even a reused entry will need freeing at ring release. + */ +static struct io_buf_free *io_lookup_buf_free_entry(struct io_ring_ctx *ctx, + size_t ring_size) +{ + struct io_buf_free *ibf, *best = NULL; + size_t best_dist; + + hlist_for_each_entry(ibf, &ctx->io_buf_list, list) { + size_t dist; + + if (ibf->inuse || ibf->size < ring_size) + continue; + dist = ibf->size - ring_size; + if (!best || dist < best_dist) { + best = ibf; + if (!dist) + break; + best_dist = dist; + } + } + + return best; +} + +static int io_alloc_pbuf_ring(struct io_ring_ctx *ctx, + struct io_uring_buf_reg *reg, struct io_buffer_list *bl) { - gfp_t gfp = GFP_KERNEL_ACCOUNT | __GFP_ZERO | __GFP_NOWARN | __GFP_COMP; + struct io_buf_free *ibf; size_t ring_size; void *ptr; ring_size = reg->ring_entries * sizeof(struct io_uring_buf_ring); - ptr = (void *) __get_free_pages(gfp, get_order(ring_size)); - if (!ptr) - return -ENOMEM; - bl->buf_ring = ptr; + /* Reuse existing entry, if we can */ + ibf = io_lookup_buf_free_entry(ctx, ring_size); + if (!ibf) { + ptr = io_mem_alloc(ring_size); + if (IS_ERR(ptr)) + return PTR_ERR(ptr); + + /* Allocate and store deferred free entry */ + ibf = kmalloc(sizeof(*ibf), GFP_KERNEL_ACCOUNT); + if (!ibf) { + io_mem_free(ptr); + return -ENOMEM; + } + ibf->mem = ptr; + ibf->size = ring_size; + hlist_add_head(&ibf->list, &ctx->io_buf_list); + } + ibf->inuse = 1; + bl->buf_ring = ibf->mem; bl->is_mapped = 1; bl->is_mmap = 1; return 0; @@ -547,6 +649,8 @@ struct io_buffer_list *bl, *free_bl = NULL; int ret; + lockdep_assert_held(&ctx->uring_lock); + if (copy_from_user(®, arg, sizeof(reg))) return -EFAULT; @@ -591,7 +695,7 @@ if (!(reg.flags & IOU_PBUF_RING_MMAP)) ret = io_pin_pbuf_ring(®, bl); else - ret = io_alloc_pbuf_ring(®, bl); + ret = io_alloc_pbuf_ring(ctx, ®, bl); if (!ret) { bl->nr_entries = reg.ring_entries; @@ -601,7 +705,7 @@ return 0; } - kfree(free_bl); + kfree_rcu(free_bl, rcu); return ret; } @@ -610,6 +714,8 @@ struct io_uring_buf_reg reg; struct io_buffer_list *bl; + lockdep_assert_held(&ctx->uring_lock); + if (copy_from_user(®, arg, sizeof(reg))) return -EFAULT; if (reg.resv[0] || reg.resv[1] || reg.resv[2]) @@ -626,7 +732,7 @@ __io_remove_buffers(ctx, bl, -1U); if (bl->bgid >= BGID_ARRAY) { xa_erase(&ctx->io_bl_xa, bl->bgid); - kfree(bl); + kfree_rcu(bl, rcu); } return 0; } @@ -638,6 +744,30 @@ - bl = io_buffer_get_list(ctx, bgid); + bl = __io_buffer_get_list(ctx, smp_load_acquire(&ctx->io_bl), bgid); + if (!bl || !bl->is_mmap) return NULL; + /* + * Ensure the list is fully setup. Only strictly needed for RCU lookup + * via mmap, and in that case only for the array indexed groups. For + * the xarray lookups, it's either visible and ready, or not at all. + */ + if (!smp_load_acquire(&bl->is_ready)) + return NULL; return bl->buf_ring; } + +/* + * Called at or after ->release(), free the mmap'ed buffers that we used + * for memory mapped provided buffer rings. + */ +void io_kbuf_mmap_list_free(struct io_ring_ctx *ctx) +{ + struct io_buf_free *ibf; + struct hlist_node *tmp; + + hlist_for_each_entry_safe(ibf, tmp, &ctx->io_buf_list, list) { + hlist_del(&ibf->list); + io_mem_free(ibf->mem); + kfree(ibf); + } +} diff -u linux-riscv-6.5.0/io_uring/net.c linux-riscv-6.5.0/io_uring/net.c --- linux-riscv-6.5.0/io_uring/net.c +++ linux-riscv-6.5.0/io_uring/net.c @@ -1461,16 +1461,6 @@ int ret; bool force_nonblock = issue_flags & IO_URING_F_NONBLOCK; - if (connect->in_progress) { - struct socket *socket; - - ret = -ENOTSOCK; - socket = sock_from_file(req->file); - if (socket) - ret = sock_error(socket->sk); - goto out; - } - if (req_has_async_data(req)) { io = req->async_data; } else { @@ -1490,9 +1480,7 @@ && force_nonblock) { if (ret == -EINPROGRESS) { connect->in_progress = true; - return -EAGAIN; - } - if (ret == -ECONNABORTED) { + } else if (ret == -ECONNABORTED) { if (connect->seen_econnaborted) goto out; connect->seen_econnaborted = true; @@ -1506,6 +1494,16 @@ memcpy(req->async_data, &__io, sizeof(__io)); return -EAGAIN; } + if (connect->in_progress) { + /* + * At least bluetooth will return -EBADFD on a re-connect + * attempt, and it's (supposedly) also valid to get -EISCONN + * which means the previous result is good. For both of these, + * grab the sock_error() and use that for the completion. + */ + if (ret == -EBADFD || ret == -EISCONN) + ret = sock_error(sock_from_file(req->file)->sk); + } if (ret == -ERESTARTSYS) ret = -EINTR; out: diff -u linux-riscv-6.5.0/io_uring/rsrc.c linux-riscv-6.5.0/io_uring/rsrc.c --- linux-riscv-6.5.0/io_uring/rsrc.c +++ linux-riscv-6.5.0/io_uring/rsrc.c @@ -1261,7 +1261,7 @@ */ const struct bio_vec *bvec = imu->bvec; - if (offset <= bvec->bv_len) { + if (offset < bvec->bv_len) { /* * Note, huge pages buffers consists of one large * bvec entry and should always go this way. The other diff -u linux-riscv-6.5.0/io_uring/sqpoll.c linux-riscv-6.5.0/io_uring/sqpoll.c --- linux-riscv-6.5.0/io_uring/sqpoll.c +++ linux-riscv-6.5.0/io_uring/sqpoll.c @@ -214,6 +214,7 @@ did_sig = get_signal(&ksig); cond_resched(); mutex_lock(&sqd->lock); + sqd->sq_cpu = raw_smp_processor_id(); } return did_sig || test_bit(IO_SQ_THREAD_SHOULD_STOP, &sqd->state); } @@ -229,10 +230,15 @@ snprintf(buf, sizeof(buf), "iou-sqp-%d", sqd->task_pid); set_task_comm(current, buf); - if (sqd->sq_cpu != -1) + /* reset to our pid after we've set task_comm, for fdinfo */ + sqd->task_pid = current->pid; + + if (sqd->sq_cpu != -1) { set_cpus_allowed_ptr(current, cpumask_of(sqd->sq_cpu)); - else + } else { set_cpus_allowed_ptr(current, cpu_online_mask); + sqd->sq_cpu = raw_smp_processor_id(); + } mutex_lock(&sqd->lock); while (1) { @@ -261,6 +267,7 @@ mutex_unlock(&sqd->lock); cond_resched(); mutex_lock(&sqd->lock); + sqd->sq_cpu = raw_smp_processor_id(); } continue; } @@ -294,6 +301,7 @@ mutex_unlock(&sqd->lock); schedule(); mutex_lock(&sqd->lock); + sqd->sq_cpu = raw_smp_processor_id(); } list_for_each_entry(ctx, &sqd->ctx_list, sqd_list) atomic_andnot(IORING_SQ_NEED_WAKEUP, diff -u linux-riscv-6.5.0/kernel/bpf/core.c linux-riscv-6.5.0/kernel/bpf/core.c --- linux-riscv-6.5.0/kernel/bpf/core.c +++ linux-riscv-6.5.0/kernel/bpf/core.c @@ -613,7 +613,11 @@ if (val < ksym->start) return -1; - if (val >= ksym->end) + /* Ensure that we detect return addresses as part of the program, when + * the final instruction is a call for a program part of the stack + * trace. Therefore, do val > ksym->end instead of val >= ksym->end. + */ + if (val > ksym->end) return 1; return 0; diff -u linux-riscv-6.5.0/kernel/bpf/helpers.c linux-riscv-6.5.0/kernel/bpf/helpers.c --- linux-riscv-6.5.0/kernel/bpf/helpers.c +++ linux-riscv-6.5.0/kernel/bpf/helpers.c @@ -1174,13 +1174,6 @@ ret = -EBUSY; goto out; } - if (!atomic64_read(&map->usercnt)) { - /* maps with timers must be either held by user space - * or pinned in bpffs. - */ - ret = -EPERM; - goto out; - } /* allocate hrtimer via map_kmalloc to use memcg accounting */ t = bpf_map_kmalloc_node(map, sizeof(*t), GFP_ATOMIC, map->numa_node); if (!t) { @@ -1193,7 +1186,21 @@ rcu_assign_pointer(t->callback_fn, NULL); hrtimer_init(&t->timer, clockid, HRTIMER_MODE_REL_SOFT); t->timer.function = bpf_timer_cb; - timer->timer = t; + WRITE_ONCE(timer->timer, t); + /* Guarantee the order between timer->timer and map->usercnt. So + * when there are concurrent uref release and bpf timer init, either + * bpf_timer_cancel_and_free() called by uref release reads a no-NULL + * timer or atomic64_read() below returns a zero usercnt. + */ + smp_mb(); + if (!atomic64_read(&map->usercnt)) { + /* maps with timers must be either held by user space + * or pinned in bpffs. + */ + WRITE_ONCE(timer->timer, NULL); + kfree(t); + ret = -EPERM; + } out: __bpf_spin_unlock_irqrestore(&timer->lock); return ret; @@ -1368,7 +1375,7 @@ /* The subsequent bpf_timer_start/cancel() helpers won't be able to use * this timer, since it won't be initialized. */ - timer->timer = NULL; + WRITE_ONCE(timer->timer, NULL); out: __bpf_spin_unlock_irqrestore(&timer->lock); if (!t) @@ -2167,7 +2174,12 @@ __bpf_kfunc long bpf_task_under_cgroup(struct task_struct *task, struct cgroup *ancestor) { - return task_under_cgroup_hierarchy(task, ancestor); + long ret; + + rcu_read_lock(); + ret = task_under_cgroup_hierarchy(task, ancestor); + rcu_read_unlock(); + return ret; } #endif /* CONFIG_CGROUPS */ diff -u linux-riscv-6.5.0/kernel/bpf/trampoline.c linux-riscv-6.5.0/kernel/bpf/trampoline.c --- linux-riscv-6.5.0/kernel/bpf/trampoline.c +++ linux-riscv-6.5.0/kernel/bpf/trampoline.c @@ -415,8 +415,8 @@ goto out; } - /* clear all bits except SHARE_IPMODIFY */ - tr->flags &= BPF_TRAMP_F_SHARE_IPMODIFY; + /* clear all bits except SHARE_IPMODIFY and TAIL_CALL_CTX */ + tr->flags &= (BPF_TRAMP_F_SHARE_IPMODIFY | BPF_TRAMP_F_TAIL_CALL_CTX); if (tlinks[BPF_TRAMP_FEXIT].nr_links || tlinks[BPF_TRAMP_MODIFY_RETURN].nr_links) { diff -u linux-riscv-6.5.0/kernel/bpf/verifier.c linux-riscv-6.5.0/kernel/bpf/verifier.c --- linux-riscv-6.5.0/kernel/bpf/verifier.c +++ linux-riscv-6.5.0/kernel/bpf/verifier.c @@ -1513,7 +1513,8 @@ if (state->in_async_callback_fn) verbose(env, " async_cb"); verbose(env, "\n"); - mark_verifier_state_clean(env); + if (!print_all) + mark_verifier_state_clean(env); } static inline u32 vlog_alignment(u32 pos) @@ -3192,12 +3193,29 @@ /* Backtrack one insn at a time. If idx is not at the top of recorded * history then previous instruction came from straight line execution. + * Return -ENOENT if we exhausted all instructions within given state. + * + * It's legal to have a bit of a looping with the same starting and ending + * insn index within the same state, e.g.: 3->4->5->3, so just because current + * instruction index is the same as state's first_idx doesn't mean we are + * done. If there is still some jump history left, we should keep going. We + * need to take into account that we might have a jump history between given + * state's parent and itself, due to checkpointing. In this case, we'll have + * history entry recording a jump from last instruction of parent state and + * first instruction of given state. */ static int get_prev_insn_idx(struct bpf_verifier_state *st, int i, u32 *history) { u32 cnt = *history; + if (i == st->first_insn_idx) { + if (cnt == 0) + return -ENOENT; + if (cnt == 1 && st->jmp_history[0].idx == i) + return -ENOENT; + } + if (cnt && st->jmp_history[cnt - 1].idx == i) { i = st->jmp_history[cnt - 1].prev_idx; (*history)--; @@ -3418,7 +3436,12 @@ if (class == BPF_ALU || class == BPF_ALU64) { if (!bt_is_reg_set(bt, dreg)) return 0; - if (opcode == BPF_MOV) { + if (opcode == BPF_END || opcode == BPF_NEG) { + /* sreg is reserved and unused + * dreg still need precision before this insn + */ + return 0; + } else if (opcode == BPF_MOV) { if (BPF_SRC(insn->code) == BPF_X) { /* dreg = sreg * dreg needs precision after this insn @@ -4072,10 +4095,10 @@ * Nothing to be tracked further in the parent state. */ return 0; - if (i == first_idx) - break; subseq_idx = i; i = get_prev_insn_idx(st, i, &history); + if (i == -ENOENT) + break; if (i >= env->prog->len) { /* This can happen if backtracking reached insn 0 * and there are still reg_mask or stack_mask @@ -4350,7 +4373,7 @@ insn->imm != 0 && env->bpf_capable) { struct bpf_reg_state fake_reg = {}; - __mark_reg_known(&fake_reg, (u32)insn->imm); + __mark_reg_known(&fake_reg, insn->imm); fake_reg.type = SCALAR_VALUE; save_register_state(state, spi, &fake_reg, size); } else if (reg && is_spillable_regtype(reg->type)) { @@ -11029,6 +11052,10 @@ break; } case KF_ARG_PTR_TO_CALLBACK: + if (reg->type != PTR_TO_FUNC) { + verbose(env, "arg%d expected pointer to func\n", i); + return -EINVAL; + } meta->subprogno = reg->subprogno; break; case KF_ARG_PTR_TO_REFCOUNTED_KPTR: @@ -13911,6 +13938,8 @@ !sanitize_speculative_path(env, insn, *insn_idx + 1, *insn_idx)) return -EFAULT; + if (env->log.level & BPF_LOG_LEVEL) + print_insn_state(env, this_branch->frame[this_branch->curframe]); *insn_idx += insn->off; return 0; } else if (pred == 0) { @@ -13923,6 +13952,8 @@ *insn_idx + insn->off + 1, *insn_idx)) return -EFAULT; + if (env->log.level & BPF_LOG_LEVEL) + print_insn_state(env, this_branch->frame[this_branch->curframe]); return 0; } @@ -14554,15 +14585,16 @@ struct bpf_verifier_env *env, bool visit_callee) { - int ret; + int ret, insn_sz; - ret = push_insn(t, t + 1, FALLTHROUGH, env, false); + insn_sz = bpf_is_ldimm64(&insns[t]) ? 2 : 1; + ret = push_insn(t, t + insn_sz, FALLTHROUGH, env, false); if (ret) return ret; - mark_prune_point(env, t + 1); + mark_prune_point(env, t + insn_sz); /* when we exit from subprog, we need to record non-linear history */ - mark_jmp_point(env, t + 1); + mark_jmp_point(env, t + insn_sz); if (visit_callee) { mark_prune_point(env, t); @@ -14584,15 +14616,17 @@ static int visit_insn(int t, struct bpf_verifier_env *env) { struct bpf_insn *insns = env->prog->insnsi, *insn = &insns[t]; - int ret; + int ret, insn_sz; if (bpf_pseudo_func(insn)) return visit_func_call_insn(t, insns, env, true); /* All non-branch instructions have a single fall-through edge. */ if (BPF_CLASS(insn->code) != BPF_JMP && - BPF_CLASS(insn->code) != BPF_JMP32) - return push_insn(t, t + 1, FALLTHROUGH, env, false); + BPF_CLASS(insn->code) != BPF_JMP32) { + insn_sz = bpf_is_ldimm64(insn) ? 2 : 1; + return push_insn(t, t + insn_sz, FALLTHROUGH, env, false); + } switch (BPF_OP(insn->code)) { case BPF_EXIT: @@ -14706,11 +14740,21 @@ } for (i = 0; i < insn_cnt; i++) { + struct bpf_insn *insn = &env->prog->insnsi[i]; + if (insn_state[i] != EXPLORED) { verbose(env, "unreachable insn %d\n", i); ret = -EINVAL; goto err_free; } + if (bpf_is_ldimm64(insn)) { + if (insn_state[i + 1] != 0) { + verbose(env, "jump into the middle of ldimm64 insn %d\n", i); + ret = -EINVAL; + goto err_free; + } + i++; /* skip second half of ldimm64 */ + } } ret = 0; /* cfg looks good */ @@ -19384,6 +19428,9 @@ if (!tr) return -ENOMEM; + if (tgt_prog && tgt_prog->aux->tail_call_reachable) + tr->flags = BPF_TRAMP_F_TAIL_CALL_CTX; + prog->aux->dst_trampoline = tr; return 0; } diff -u linux-riscv-6.5.0/kernel/cpu.c linux-riscv-6.5.0/kernel/cpu.c --- linux-riscv-6.5.0/kernel/cpu.c +++ linux-riscv-6.5.0/kernel/cpu.c @@ -625,9 +625,31 @@ } early_param("nosmt", smt_cmdline_disable); -static inline bool cpu_smt_allowed(unsigned int cpu) +/* + * For Archicture supporting partial SMT states check if the thread is allowed. + * Otherwise this has already been checked through cpu_smt_max_threads when + * setting the SMT level. + */ +static inline bool cpu_smt_thread_allowed(unsigned int cpu) +{ +#ifdef CONFIG_SMT_NUM_THREADS_DYNAMIC + return topology_smt_thread_allowed(cpu); +#else + return true; +#endif +} + +static inline bool cpu_bootable(unsigned int cpu) { - if (cpu_smt_control == CPU_SMT_ENABLED) + if (cpu_smt_control == CPU_SMT_ENABLED && cpu_smt_thread_allowed(cpu)) + return true; + + /* All CPUs are bootable if controls are not configured */ + if (cpu_smt_control == CPU_SMT_NOT_IMPLEMENTED) + return true; + + /* All CPUs are bootable if CPU is not SMT capable */ + if (cpu_smt_control == CPU_SMT_NOT_SUPPORTED) return true; if (topology_is_primary_thread(cpu)) @@ -650,22 +672,8 @@ } EXPORT_SYMBOL_GPL(cpu_smt_possible); -static inline bool cpuhp_smt_aware(void) -{ - return topology_smt_supported(); -} - -static inline const struct cpumask *cpuhp_get_primary_thread_mask(void) -{ - return cpu_primary_thread_mask; -} #else -static inline bool cpu_smt_allowed(unsigned int cpu) { return true; } -static inline bool cpuhp_smt_aware(void) { return false; } -static inline const struct cpumask *cpuhp_get_primary_thread_mask(void) -{ - return cpu_present_mask; -} +static inline bool cpu_bootable(unsigned int cpu) { return true; } #endif static inline enum cpuhp_state @@ -768,10 +776,10 @@ * SMT soft disabling on X86 requires to bring the CPU out of the * BIOS 'wait for SIPI' state in order to set the CR4.MCE bit. The * CPU marked itself as booted_once in notify_cpu_starting() so the - * cpu_smt_allowed() check will now return false if this is not the + * cpu_bootable() check will now return false if this is not the * primary sibling. */ - if (!cpu_smt_allowed(cpu)) + if (!cpu_bootable(cpu)) return -ECANCELED; return 0; } @@ -1495,11 +1503,14 @@ /* * Ensure that the control task does not run on the to be offlined * CPU to prevent a deadlock against cfs_b->period_timer. + * Also keep at least one housekeeping cpu onlined to avoid generating + * an empty sched_domain span. */ - cpu = cpumask_any_but(cpu_online_mask, cpu); - if (cpu >= nr_cpu_ids) - return -EBUSY; - return work_on_cpu(cpu, __cpu_down_maps_locked, &work); + for_each_cpu_and(cpu, cpu_online_mask, housekeeping_cpumask(HK_TYPE_DOMAIN)) { + if (cpu != work.cpu) + return work_on_cpu(cpu, __cpu_down_maps_locked, &work); + } + return -EBUSY; } static int cpu_down(unsigned int cpu, enum cpuhp_state target) @@ -1721,7 +1732,7 @@ err = -EBUSY; goto out; } - if (!cpu_smt_allowed(cpu)) { + if (!cpu_bootable(cpu)) { err = -EPERM; goto out; } @@ -1815,6 +1826,16 @@ } early_param("cpuhp.parallel", parallel_bringup_parse_param); +static inline bool cpuhp_smt_aware(void) +{ + return topology_smt_supported(); +} + +static inline const struct cpumask *cpuhp_get_primary_thread_mask(void) +{ + return cpu_primary_thread_mask; +} + /* * On architectures which have enabled parallel bringup this invokes all BP * prepare states for each of the to be onlined APs first. The last state @@ -2068,7 +2089,7 @@ [CPUHP_HRTIMERS_PREPARE] = { .name = "hrtimers:prepare", .startup.single = hrtimers_prepare_cpu, - .teardown.single = hrtimers_dead_cpu, + .teardown.single = NULL, }, [CPUHP_SMPCFD_PREPARE] = { .name = "smpcfd:prepare", @@ -2160,6 +2181,12 @@ .startup.single = NULL, .teardown.single = smpcfd_dying_cpu, }, + [CPUHP_AP_HRTIMERS_DYING] = { + .name = "hrtimers:dying", + .startup.single = NULL, + .teardown.single = hrtimers_cpu_dying, + }, + /* Entry state on starting. Interrupts enabled from here on. Transient * state for synchronsization */ [CPUHP_AP_ONLINE] = { @@ -2648,6 +2675,12 @@ for_each_online_cpu(cpu) { if (topology_is_primary_thread(cpu)) continue; + /* + * Disable can be called with CPU_SMT_ENABLED when changing + * from a higher to lower number of SMT threads per core. + */ + if (ctrlval == CPU_SMT_ENABLED && cpu_smt_thread_allowed(cpu)) + continue; ret = cpu_down_maps_locked(cpu, CPUHP_OFFLINE); if (ret) break; @@ -2682,6 +2715,8 @@ /* Skip online CPUs and CPUs on offline nodes */ if (cpu_online(cpu) || !node_online(cpu_to_node(cpu))) continue; + if (!cpu_smt_thread_allowed(cpu)) + continue; ret = _cpu_up(cpu, 0, CPUHP_ONLINE); if (ret) break; diff -u linux-riscv-6.5.0/kernel/events/core.c linux-riscv-6.5.0/kernel/events/core.c --- linux-riscv-6.5.0/kernel/events/core.c +++ linux-riscv-6.5.0/kernel/events/core.c @@ -375,6 +375,7 @@ EVENT_TIME = 0x4, /* see ctx_resched() for details */ EVENT_CPU = 0x8, + EVENT_CGROUP = 0x10, EVENT_ALL = EVENT_FLEXIBLE | EVENT_PINNED, }; @@ -689,20 +690,26 @@ ___p; \ }) -static void perf_ctx_disable(struct perf_event_context *ctx) +static void perf_ctx_disable(struct perf_event_context *ctx, bool cgroup) { struct perf_event_pmu_context *pmu_ctx; - list_for_each_entry(pmu_ctx, &ctx->pmu_ctx_list, pmu_ctx_entry) + list_for_each_entry(pmu_ctx, &ctx->pmu_ctx_list, pmu_ctx_entry) { + if (cgroup && !pmu_ctx->nr_cgroups) + continue; perf_pmu_disable(pmu_ctx->pmu); + } } -static void perf_ctx_enable(struct perf_event_context *ctx) +static void perf_ctx_enable(struct perf_event_context *ctx, bool cgroup) { struct perf_event_pmu_context *pmu_ctx; - list_for_each_entry(pmu_ctx, &ctx->pmu_ctx_list, pmu_ctx_entry) + list_for_each_entry(pmu_ctx, &ctx->pmu_ctx_list, pmu_ctx_entry) { + if (cgroup && !pmu_ctx->nr_cgroups) + continue; perf_pmu_enable(pmu_ctx->pmu); + } } static void ctx_sched_out(struct perf_event_context *ctx, enum event_type_t event_type); @@ -861,9 +868,9 @@ return; perf_ctx_lock(cpuctx, cpuctx->task_ctx); - perf_ctx_disable(&cpuctx->ctx); + perf_ctx_disable(&cpuctx->ctx, true); - ctx_sched_out(&cpuctx->ctx, EVENT_ALL); + ctx_sched_out(&cpuctx->ctx, EVENT_ALL|EVENT_CGROUP); /* * must not be done before ctxswout due * to update_cgrp_time_from_cpuctx() in @@ -875,9 +882,9 @@ * perf_cgroup_set_timestamp() in ctx_sched_in() * to not have to pass task around */ - ctx_sched_in(&cpuctx->ctx, EVENT_ALL); + ctx_sched_in(&cpuctx->ctx, EVENT_ALL|EVENT_CGROUP); - perf_ctx_enable(&cpuctx->ctx); + perf_ctx_enable(&cpuctx->ctx, true); perf_ctx_unlock(cpuctx, cpuctx->task_ctx); } @@ -970,6 +977,8 @@ if (!is_cgroup_event(event)) return; + event->pmu_ctx->nr_cgroups++; + /* * Because cgroup events are always per-cpu events, * @ctx == &cpuctx->ctx. @@ -990,6 +999,8 @@ if (!is_cgroup_event(event)) return; + event->pmu_ctx->nr_cgroups--; + /* * Because cgroup events are always per-cpu events, * @ctx == &cpuctx->ctx. @@ -2709,9 +2720,9 @@ event_type &= EVENT_ALL; - perf_ctx_disable(&cpuctx->ctx); + perf_ctx_disable(&cpuctx->ctx, false); if (task_ctx) { - perf_ctx_disable(task_ctx); + perf_ctx_disable(task_ctx, false); task_ctx_sched_out(task_ctx, event_type); } @@ -2729,9 +2740,9 @@ perf_event_sched_in(cpuctx, task_ctx); - perf_ctx_enable(&cpuctx->ctx); + perf_ctx_enable(&cpuctx->ctx, false); if (task_ctx) - perf_ctx_enable(task_ctx); + perf_ctx_enable(task_ctx, false); } void perf_pmu_resched(struct pmu *pmu) @@ -3276,6 +3287,9 @@ struct perf_cpu_context *cpuctx = this_cpu_ptr(&perf_cpu_context); struct perf_event_pmu_context *pmu_ctx; int is_active = ctx->is_active; + bool cgroup = event_type & EVENT_CGROUP; + + event_type &= ~EVENT_CGROUP; lockdep_assert_held(&ctx->lock); @@ -3322,8 +3336,11 @@ is_active ^= ctx->is_active; /* changed bits */ - list_for_each_entry(pmu_ctx, &ctx->pmu_ctx_list, pmu_ctx_entry) + list_for_each_entry(pmu_ctx, &ctx->pmu_ctx_list, pmu_ctx_entry) { + if (cgroup && !pmu_ctx->nr_cgroups) + continue; __pmu_ctx_sched_out(pmu_ctx, is_active); + } } /* @@ -3514,7 +3531,7 @@ raw_spin_lock_nested(&next_ctx->lock, SINGLE_DEPTH_NESTING); if (context_equiv(ctx, next_ctx)) { - perf_ctx_disable(ctx); + perf_ctx_disable(ctx, false); /* PMIs are disabled; ctx->nr_pending is stable. */ if (local_read(&ctx->nr_pending) || @@ -3534,7 +3551,7 @@ perf_ctx_sched_task_cb(ctx, false); perf_event_swap_task_ctx_data(ctx, next_ctx); - perf_ctx_enable(ctx); + perf_ctx_enable(ctx, false); /* * RCU_INIT_POINTER here is safe because we've not @@ -3558,13 +3575,13 @@ if (do_switch) { raw_spin_lock(&ctx->lock); - perf_ctx_disable(ctx); + perf_ctx_disable(ctx, false); inside_switch: perf_ctx_sched_task_cb(ctx, false); task_ctx_sched_out(ctx, EVENT_ALL); - perf_ctx_enable(ctx); + perf_ctx_enable(ctx, false); raw_spin_unlock(&ctx->lock); } } @@ -3850,47 +3867,32 @@ return 0; } -static void ctx_pinned_sched_in(struct perf_event_context *ctx, struct pmu *pmu) +static void pmu_groups_sched_in(struct perf_event_context *ctx, + struct perf_event_groups *groups, + struct pmu *pmu) { - struct perf_event_pmu_context *pmu_ctx; int can_add_hw = 1; - - if (pmu) { - visit_groups_merge(ctx, &ctx->pinned_groups, - smp_processor_id(), pmu, - merge_sched_in, &can_add_hw); - } else { - list_for_each_entry(pmu_ctx, &ctx->pmu_ctx_list, pmu_ctx_entry) { - can_add_hw = 1; - visit_groups_merge(ctx, &ctx->pinned_groups, - smp_processor_id(), pmu_ctx->pmu, - merge_sched_in, &can_add_hw); - } - } + visit_groups_merge(ctx, groups, smp_processor_id(), pmu, + merge_sched_in, &can_add_hw); } -static void ctx_flexible_sched_in(struct perf_event_context *ctx, struct pmu *pmu) +static void ctx_groups_sched_in(struct perf_event_context *ctx, + struct perf_event_groups *groups, + bool cgroup) { struct perf_event_pmu_context *pmu_ctx; - int can_add_hw = 1; - if (pmu) { - visit_groups_merge(ctx, &ctx->flexible_groups, - smp_processor_id(), pmu, - merge_sched_in, &can_add_hw); - } else { - list_for_each_entry(pmu_ctx, &ctx->pmu_ctx_list, pmu_ctx_entry) { - can_add_hw = 1; - visit_groups_merge(ctx, &ctx->flexible_groups, - smp_processor_id(), pmu_ctx->pmu, - merge_sched_in, &can_add_hw); - } + list_for_each_entry(pmu_ctx, &ctx->pmu_ctx_list, pmu_ctx_entry) { + if (cgroup && !pmu_ctx->nr_cgroups) + continue; + pmu_groups_sched_in(ctx, groups, pmu_ctx->pmu); } } -static void __pmu_ctx_sched_in(struct perf_event_context *ctx, struct pmu *pmu) +static void __pmu_ctx_sched_in(struct perf_event_context *ctx, + struct pmu *pmu) { - ctx_flexible_sched_in(ctx, pmu); + pmu_groups_sched_in(ctx, &ctx->flexible_groups, pmu); } static void @@ -3898,6 +3900,9 @@ { struct perf_cpu_context *cpuctx = this_cpu_ptr(&perf_cpu_context); int is_active = ctx->is_active; + bool cgroup = event_type & EVENT_CGROUP; + + event_type &= ~EVENT_CGROUP; lockdep_assert_held(&ctx->lock); @@ -3930,11 +3935,11 @@ * in order to give them the best chance of going on. */ if (is_active & EVENT_PINNED) - ctx_pinned_sched_in(ctx, NULL); + ctx_groups_sched_in(ctx, &ctx->pinned_groups, cgroup); /* Then walk through the lower prio flexible groups */ if (is_active & EVENT_FLEXIBLE) - ctx_flexible_sched_in(ctx, NULL); + ctx_groups_sched_in(ctx, &ctx->flexible_groups, cgroup); } static void perf_event_context_sched_in(struct task_struct *task) @@ -3949,11 +3954,11 @@ if (cpuctx->task_ctx == ctx) { perf_ctx_lock(cpuctx, ctx); - perf_ctx_disable(ctx); + perf_ctx_disable(ctx, false); perf_ctx_sched_task_cb(ctx, true); - perf_ctx_enable(ctx); + perf_ctx_enable(ctx, false); perf_ctx_unlock(cpuctx, ctx); goto rcu_unlock; } @@ -3966,7 +3971,7 @@ if (!ctx->nr_events) goto unlock; - perf_ctx_disable(ctx); + perf_ctx_disable(ctx, false); /* * We want to keep the following priority order: * cpu pinned (that don't need to move), task pinned, @@ -3976,7 +3981,7 @@ * events, no need to flip the cpuctx's events around. */ if (!RB_EMPTY_ROOT(&ctx->pinned_groups.tree)) { - perf_ctx_disable(&cpuctx->ctx); + perf_ctx_disable(&cpuctx->ctx, false); ctx_sched_out(&cpuctx->ctx, EVENT_FLEXIBLE); } @@ -3985,9 +3990,9 @@ perf_ctx_sched_task_cb(cpuctx->task_ctx, true); if (!RB_EMPTY_ROOT(&ctx->pinned_groups.tree)) - perf_ctx_enable(&cpuctx->ctx); + perf_ctx_enable(&cpuctx->ctx, false); - perf_ctx_enable(ctx); + perf_ctx_enable(ctx, false); unlock: perf_ctx_unlock(cpuctx, ctx); @@ -4841,6 +4846,11 @@ void *task_ctx_data = NULL; if (!ctx->task) { + /* + * perf_pmu_migrate_context() / __perf_pmu_install_event() + * relies on the fact that find_get_pmu_context() cannot fail + * for CPU contexts. + */ struct perf_cpu_pmu_context *cpc; cpc = per_cpu_ptr(pmu->cpu_pmu_context, event->cpu); @@ -12916,6 +12926,9 @@ int cpu, struct perf_event *event) { struct perf_event_pmu_context *epc; + struct perf_event_context *old_ctx = event->ctx; + + get_ctx(ctx); /* normally find_get_context() */ event->cpu = cpu; epc = find_get_pmu_context(pmu, ctx, event); @@ -12924,6 +12937,11 @@ if (event->state >= PERF_EVENT_STATE_OFF) event->state = PERF_EVENT_STATE_INACTIVE; perf_install_in_context(ctx, event, cpu); + + /* + * Now that event->ctx is updated and visible, put the old ctx. + */ + put_ctx(old_ctx); } static void __perf_pmu_install(struct perf_event_context *ctx, @@ -12962,6 +12980,10 @@ struct perf_event_context *src_ctx, *dst_ctx; LIST_HEAD(events); + /* + * Since per-cpu context is persistent, no need to grab an extra + * reference. + */ src_ctx = &per_cpu_ptr(&perf_cpu_context, src_cpu)->ctx; dst_ctx = &per_cpu_ptr(&perf_cpu_context, dst_cpu)->ctx; @@ -13416,7 +13438,8 @@ !perf_get_aux_event(child_ctr, leader)) return -EINVAL; } - leader->group_generation = parent_event->group_generation; + if (leader) + leader->group_generation = parent_event->group_generation; return 0; } diff -u linux-riscv-6.5.0/kernel/fork.c linux-riscv-6.5.0/kernel/fork.c --- linux-riscv-6.5.0/kernel/fork.c +++ linux-riscv-6.5.0/kernel/fork.c @@ -1298,7 +1298,7 @@ hugetlb_count_init(mm); if (current->mm) { - mm->flags = current->mm->flags & MMF_INIT_MASK; + mm->flags = mmf_init_flags(current->mm->flags); mm->def_flags = current->mm->def_flags & VM_INIT_DEF_MASK; } else { mm->flags = default_dump_filter; diff -u linux-riscv-6.5.0/kernel/locking/lockdep.c linux-riscv-6.5.0/kernel/locking/lockdep.c --- linux-riscv-6.5.0/kernel/locking/lockdep.c +++ linux-riscv-6.5.0/kernel/locking/lockdep.c @@ -3497,7 +3497,8 @@ size = chain_block_size(curr); if (likely(size >= req)) { del_chain_block(0, size, chain_block_next(curr)); - add_chain_block(curr + req, size - req); + if (size > req) + add_chain_block(curr + req, size - req); return curr; } } diff -u linux-riscv-6.5.0/kernel/module/decompress.c linux-riscv-6.5.0/kernel/module/decompress.c --- linux-riscv-6.5.0/kernel/module/decompress.c +++ linux-riscv-6.5.0/kernel/module/decompress.c @@ -100,7 +100,7 @@ s.next_in = buf + gzip_hdr_len; s.avail_in = size - gzip_hdr_len; - s.workspace = kmalloc(zlib_inflate_workspacesize(), GFP_KERNEL); + s.workspace = kvmalloc(zlib_inflate_workspacesize(), GFP_KERNEL); if (!s.workspace) return -ENOMEM; @@ -138,7 +138,7 @@ out_inflate_end: zlib_inflateEnd(&s); out: - kfree(s.workspace); + kvfree(s.workspace); return retval; } #elif defined(CONFIG_MODULE_COMPRESS_XZ) @@ -241,7 +241,7 @@ } wksp_size = zstd_dstream_workspace_bound(header.windowSize); - wksp = vmalloc(wksp_size); + wksp = kvmalloc(wksp_size, GFP_KERNEL); if (!wksp) { retval = -ENOMEM; goto out; @@ -284,7 +284,7 @@ retval = new_size; out: - vfree(wksp); + kvfree(wksp); return retval; } #else diff -u linux-riscv-6.5.0/kernel/sched/core.c linux-riscv-6.5.0/kernel/sched/core.c --- linux-riscv-6.5.0/kernel/sched/core.c +++ linux-riscv-6.5.0/kernel/sched/core.c @@ -2644,9 +2644,11 @@ * it. */ WARN_ON_ONCE(!pending->stop_pending); + preempt_disable(); task_rq_unlock(rq, p, &rf); stop_one_cpu_nowait(task_cpu(p), migration_cpu_stop, &pending->arg, &pending->stop_work); + preempt_enable(); return 0; } out: @@ -2966,12 +2968,13 @@ complete = true; } + preempt_disable(); task_rq_unlock(rq, p, rf); - if (push_task) { stop_one_cpu_nowait(rq->cpu, push_cpu_stop, p, &rq->push_work); } + preempt_enable(); if (complete) complete_all(&pending->done); @@ -3037,12 +3040,13 @@ if (flags & SCA_MIGRATE_ENABLE) p->migration_flags &= ~MDF_PUSH; + preempt_disable(); task_rq_unlock(rq, p, rf); - if (!stop_pending) { stop_one_cpu_nowait(cpu_of(rq), migration_cpu_stop, &pending->arg, &pending->stop_work); } + preempt_enable(); if (flags & SCA_MIGRATE_ENABLE) return 0; @@ -5373,8 +5377,6 @@ /* switch_mm_cid() requires the memory barriers above. */ switch_mm_cid(rq, prev, next); - rq->clock_update_flags &= ~(RQCF_ACT_SKIP|RQCF_REQ_SKIP); - prepare_lock_switch(rq, next, rf); /* Here we just switch the register state and the stack. */ @@ -6630,6 +6632,7 @@ /* Promote REQ to ACT */ rq->clock_update_flags <<= 1; update_rq_clock(rq); + rq->clock_update_flags = RQCF_UPDATED; switch_count = &prev->nivcsw; @@ -6709,8 +6712,6 @@ /* Also unlocks the rq: */ rq = context_switch(rq, prev, next, &rf); } else { - rq->clock_update_flags &= ~(RQCF_ACT_SKIP|RQCF_REQ_SKIP); - rq_unpin_lock(rq, &rf); __balance_callbacks(rq); raw_spin_rq_unlock_irq(rq); @@ -9508,9 +9509,11 @@ * Temporarily drop rq->lock such that we can wake-up the stop task. * Both preemption and IRQs are still disabled. */ + preempt_disable(); raw_spin_rq_unlock(rq); stop_one_cpu_nowait(rq->cpu, __balance_push_cpu_stop, push_task, this_cpu_ptr(&push_work)); + preempt_enable(); /* * At this point need_resched() is true and we'll take the loop in * schedule(). The next pick is obviously going to be the stop task diff -u linux-riscv-6.5.0/kernel/sched/fair.c linux-riscv-6.5.0/kernel/sched/fair.c --- linux-riscv-6.5.0/kernel/sched/fair.c +++ linux-riscv-6.5.0/kernel/sched/fair.c @@ -4348,22 +4348,6 @@ return max(task_util(p), _task_util_est(p)); } -#ifdef CONFIG_UCLAMP_TASK -static inline unsigned long uclamp_task_util(struct task_struct *p, - unsigned long uclamp_min, - unsigned long uclamp_max) -{ - return clamp(task_util_est(p), uclamp_min, uclamp_max); -} -#else -static inline unsigned long uclamp_task_util(struct task_struct *p, - unsigned long uclamp_min, - unsigned long uclamp_max) -{ - return task_util_est(p); -} -#endif - static inline void util_est_enqueue(struct cfs_rq *cfs_rq, struct task_struct *p) { @@ -4654,7 +4638,7 @@ static inline bool cfs_rq_is_decayed(struct cfs_rq *cfs_rq) { - return true; + return !cfs_rq->nr_running; } #define UPDATE_TG 0x0 @@ -7554,7 +7538,7 @@ target = prev_cpu; sync_entity_load_avg(&p->se); - if (!uclamp_task_util(p, p_util_min, p_util_max)) + if (!task_util_est(p) && p_util_min == 0) goto unlock; eenv_task_busy_time(&eenv, p, prev_cpu); @@ -7562,11 +7546,10 @@ for (; pd; pd = pd->next) { unsigned long util_min = p_util_min, util_max = p_util_max; unsigned long cpu_cap, cpu_thermal_cap, util; - unsigned long cur_delta, max_spare_cap = 0; + long prev_spare_cap = -1, max_spare_cap = -1; unsigned long rq_util_min, rq_util_max; - unsigned long prev_spare_cap = 0; + unsigned long cur_delta, base_energy; int max_spare_cap_cpu = -1; - unsigned long base_energy; int fits, max_fits = -1; cpumask_and(cpus, perf_domain_span(pd), cpu_online_mask); @@ -7629,7 +7612,7 @@ prev_spare_cap = cpu_cap; prev_fits = fits; } else if ((fits > max_fits) || - ((fits == max_fits) && (cpu_cap > max_spare_cap))) { + ((fits == max_fits) && ((long)cpu_cap > max_spare_cap))) { /* * Find the CPU with the maximum spare capacity * among the remaining CPUs in the performance @@ -7641,7 +7624,7 @@ } } - if (max_spare_cap_cpu < 0 && prev_spare_cap == 0) + if (max_spare_cap_cpu < 0 && prev_spare_cap < 0) continue; eenv_pd_busy_time(&eenv, cpus, p); @@ -7649,7 +7632,7 @@ base_energy = compute_energy(&eenv, pd, cpus, p, -1); /* Evaluate the energy impact of using prev_cpu. */ - if (prev_spare_cap > 0) { + if (prev_spare_cap > -1) { prev_delta = compute_energy(&eenv, pd, cpus, p, prev_cpu); /* CPU utilization has changed */ @@ -11003,13 +10986,15 @@ busiest->push_cpu = this_cpu; active_balance = 1; } - raw_spin_rq_unlock_irqrestore(busiest, flags); + preempt_disable(); + raw_spin_rq_unlock_irqrestore(busiest, flags); if (active_balance) { stop_one_cpu_nowait(cpu_of(busiest), active_load_balance_cpu_stop, busiest, &busiest->active_balance_work); } + preempt_enable(); } } else { sd->nr_balance_failed = 0; diff -u linux-riscv-6.5.0/kernel/sched/rt.c linux-riscv-6.5.0/kernel/sched/rt.c --- linux-riscv-6.5.0/kernel/sched/rt.c +++ linux-riscv-6.5.0/kernel/sched/rt.c @@ -2109,9 +2109,11 @@ */ push_task = get_push_task(rq); if (push_task) { + preempt_disable(); raw_spin_rq_unlock(rq); stop_one_cpu_nowait(rq->cpu, push_cpu_stop, push_task, &rq->push_work); + preempt_enable(); raw_spin_rq_lock(rq); } @@ -2448,9 +2450,11 @@ double_unlock_balance(this_rq, src_rq); if (push_task) { + preempt_disable(); raw_spin_rq_unlock(this_rq); stop_one_cpu_nowait(src_rq->cpu, push_cpu_stop, push_task, &src_rq->push_work); + preempt_enable(); raw_spin_rq_lock(this_rq); } } diff -u linux-riscv-6.5.0/kernel/sys.c linux-riscv-6.5.0/kernel/sys.c --- linux-riscv-6.5.0/kernel/sys.c +++ linux-riscv-6.5.0/kernel/sys.c @@ -2383,19 +2383,45 @@ } #endif /* CONFIG_ANON_VMA_NAME */ +static inline unsigned long get_current_mdwe(void) +{ + unsigned long ret = 0; + + if (test_bit(MMF_HAS_MDWE, ¤t->mm->flags)) + ret |= PR_MDWE_REFUSE_EXEC_GAIN; + if (test_bit(MMF_HAS_MDWE_NO_INHERIT, ¤t->mm->flags)) + ret |= PR_MDWE_NO_INHERIT; + + return ret; +} + static inline int prctl_set_mdwe(unsigned long bits, unsigned long arg3, unsigned long arg4, unsigned long arg5) { + unsigned long current_bits; + if (arg3 || arg4 || arg5) return -EINVAL; - if (bits & ~(PR_MDWE_REFUSE_EXEC_GAIN)) + if (bits & ~(PR_MDWE_REFUSE_EXEC_GAIN | PR_MDWE_NO_INHERIT)) return -EINVAL; + /* NO_INHERIT only makes sense with REFUSE_EXEC_GAIN */ + if (bits & PR_MDWE_NO_INHERIT && !(bits & PR_MDWE_REFUSE_EXEC_GAIN)) + return -EINVAL; + + /* PARISC cannot allow mdwe as it needs writable stacks */ + if (IS_ENABLED(CONFIG_PARISC)) + return -EINVAL; + + current_bits = get_current_mdwe(); + if (current_bits && current_bits != bits) + return -EPERM; /* Cannot unset the flags */ + + if (bits & PR_MDWE_NO_INHERIT) + set_bit(MMF_HAS_MDWE_NO_INHERIT, ¤t->mm->flags); if (bits & PR_MDWE_REFUSE_EXEC_GAIN) set_bit(MMF_HAS_MDWE, ¤t->mm->flags); - else if (test_bit(MMF_HAS_MDWE, ¤t->mm->flags)) - return -EPERM; /* Cannot unset the flag */ return 0; } @@ -2405,9 +2431,7 @@ { if (arg2 || arg3 || arg4 || arg5) return -EINVAL; - - return test_bit(MMF_HAS_MDWE, ¤t->mm->flags) ? - PR_MDWE_REFUSE_EXEC_GAIN : 0; + return get_current_mdwe(); } static int prctl_get_auxv(void __user *addr, unsigned long len) diff -u linux-riscv-6.5.0/kernel/trace/ring_buffer.c linux-riscv-6.5.0/kernel/trace/ring_buffer.c --- linux-riscv-6.5.0/kernel/trace/ring_buffer.c +++ linux-riscv-6.5.0/kernel/trace/ring_buffer.c @@ -644,8 +644,8 @@ *cnt = rb_time_cnt(top); - /* If top and bottom counts don't match, this interrupted a write */ - if (*cnt != rb_time_cnt(bottom)) + /* If top and msb counts don't match, this interrupted a write */ + if (*cnt != rb_time_cnt(msb)) return false; /* The shift to msb will lose its cnt bits */ @@ -3039,23 +3039,20 @@ local_read(&bpage->write) & ~RB_WRITE_MASK; unsigned long event_length = rb_event_length(event); + /* + * For the before_stamp to be different than the write_stamp + * to make sure that the next event adds an absolute + * value and does not rely on the saved write stamp, which + * is now going to be bogus. + */ + rb_time_set(&cpu_buffer->before_stamp, 0); + /* Something came in, can't discard */ if (!rb_time_cmpxchg(&cpu_buffer->write_stamp, write_stamp, write_stamp - delta)) return false; /* - * It's possible that the event time delta is zero - * (has the same time stamp as the previous event) - * in which case write_stamp and before_stamp could - * be the same. In such a case, force before_stamp - * to be different than write_stamp. It doesn't - * matter what it is, as long as its different. - */ - if (!delta) - rb_time_set(&cpu_buffer->before_stamp, 0); - - /* * If an event were to come in now, it would see that the * write_stamp and the before_stamp are different, and assume * that this event just added itself before updating diff -u linux-riscv-6.5.0/kernel/trace/trace.c linux-riscv-6.5.0/kernel/trace/trace.c --- linux-riscv-6.5.0/kernel/trace/trace.c +++ linux-riscv-6.5.0/kernel/trace/trace.c @@ -2359,13 +2359,7 @@ return global_trace.stop_count; } -/** - * tracing_start - quick start of the tracer - * - * If tracing is enabled but was stopped by tracing_stop, - * this will start the tracer back up. - */ -void tracing_start(void) +static void tracing_start_tr(struct trace_array *tr) { struct trace_buffer *buffer; unsigned long flags; @@ -2373,119 +2367,83 @@ if (tracing_disabled) return; - raw_spin_lock_irqsave(&global_trace.start_lock, flags); - if (--global_trace.stop_count) { - if (global_trace.stop_count < 0) { + raw_spin_lock_irqsave(&tr->start_lock, flags); + if (--tr->stop_count) { + if (WARN_ON_ONCE(tr->stop_count < 0)) { /* Someone screwed up their debugging */ - WARN_ON_ONCE(1); - global_trace.stop_count = 0; + tr->stop_count = 0; } goto out; } /* Prevent the buffers from switching */ - arch_spin_lock(&global_trace.max_lock); + arch_spin_lock(&tr->max_lock); - buffer = global_trace.array_buffer.buffer; + buffer = tr->array_buffer.buffer; if (buffer) ring_buffer_record_enable(buffer); #ifdef CONFIG_TRACER_MAX_TRACE - buffer = global_trace.max_buffer.buffer; + buffer = tr->max_buffer.buffer; if (buffer) ring_buffer_record_enable(buffer); #endif - arch_spin_unlock(&global_trace.max_lock); - - out: - raw_spin_unlock_irqrestore(&global_trace.start_lock, flags); -} - -static void tracing_start_tr(struct trace_array *tr) -{ - struct trace_buffer *buffer; - unsigned long flags; - - if (tracing_disabled) - return; - - /* If global, we need to also start the max tracer */ - if (tr->flags & TRACE_ARRAY_FL_GLOBAL) - return tracing_start(); - - raw_spin_lock_irqsave(&tr->start_lock, flags); - - if (--tr->stop_count) { - if (tr->stop_count < 0) { - /* Someone screwed up their debugging */ - WARN_ON_ONCE(1); - tr->stop_count = 0; - } - goto out; - } - - buffer = tr->array_buffer.buffer; - if (buffer) - ring_buffer_record_enable(buffer); + arch_spin_unlock(&tr->max_lock); out: raw_spin_unlock_irqrestore(&tr->start_lock, flags); } /** - * tracing_stop - quick stop of the tracer + * tracing_start - quick start of the tracer * - * Light weight way to stop tracing. Use in conjunction with - * tracing_start. + * If tracing is enabled but was stopped by tracing_stop, + * this will start the tracer back up. */ -void tracing_stop(void) +void tracing_start(void) + +{ + return tracing_start_tr(&global_trace); +} + +static void tracing_stop_tr(struct trace_array *tr) { struct trace_buffer *buffer; unsigned long flags; - raw_spin_lock_irqsave(&global_trace.start_lock, flags); - if (global_trace.stop_count++) + raw_spin_lock_irqsave(&tr->start_lock, flags); + if (tr->stop_count++) goto out; /* Prevent the buffers from switching */ - arch_spin_lock(&global_trace.max_lock); + arch_spin_lock(&tr->max_lock); - buffer = global_trace.array_buffer.buffer; + buffer = tr->array_buffer.buffer; if (buffer) ring_buffer_record_disable(buffer); #ifdef CONFIG_TRACER_MAX_TRACE - buffer = global_trace.max_buffer.buffer; + buffer = tr->max_buffer.buffer; if (buffer) ring_buffer_record_disable(buffer); #endif - arch_spin_unlock(&global_trace.max_lock); + arch_spin_unlock(&tr->max_lock); out: - raw_spin_unlock_irqrestore(&global_trace.start_lock, flags); + raw_spin_unlock_irqrestore(&tr->start_lock, flags); } -static void tracing_stop_tr(struct trace_array *tr) +/** + * tracing_stop - quick stop of the tracer + * + * Light weight way to stop tracing. Use in conjunction with + * tracing_start. + */ +void tracing_stop(void) { - struct trace_buffer *buffer; - unsigned long flags; - - /* If global, we need to also stop the max tracer */ - if (tr->flags & TRACE_ARRAY_FL_GLOBAL) - return tracing_stop(); - - raw_spin_lock_irqsave(&tr->start_lock, flags); - if (tr->stop_count++) - goto out; - - buffer = tr->array_buffer.buffer; - if (buffer) - ring_buffer_record_disable(buffer); - - out: - raw_spin_unlock_irqrestore(&tr->start_lock, flags); + return tracing_stop_tr(&global_trace); } static int trace_save_cmdline(struct task_struct *tsk) @@ -2769,8 +2727,11 @@ for_each_tracing_cpu(cpu) { page = alloc_pages_node(cpu_to_node(cpu), GFP_KERNEL | __GFP_NORETRY, 0); - if (!page) - goto failed; + /* This is just an optimization and can handle failures */ + if (!page) { + pr_err("Failed to allocate event buffer\n"); + break; + } event = page_address(page); memset(event, 0, sizeof(*event)); @@ -2784,10 +2745,6 @@ WARN_ON_ONCE(1); preempt_enable(); } - - return; - failed: - trace_buffered_event_disable(); } static void enable_trace_buffered_event(void *data) @@ -2822,11 +2779,9 @@ if (--trace_buffered_event_ref) return; - preempt_disable(); /* For each CPU, set the buffer as used. */ - smp_call_function_many(tracing_buffer_mask, - disable_trace_buffered_event, NULL, 1); - preempt_enable(); + on_each_cpu_mask(tracing_buffer_mask, disable_trace_buffered_event, + NULL, true); /* Wait for all current users to finish */ synchronize_rcu(); @@ -2835,17 +2790,19 @@ free_page((unsigned long)per_cpu(trace_buffered_event, cpu)); per_cpu(trace_buffered_event, cpu) = NULL; } + /* - * Make sure trace_buffered_event is NULL before clearing - * trace_buffered_event_cnt. + * Wait for all CPUs that potentially started checking if they can use + * their event buffer only after the previous synchronize_rcu() call and + * they still read a valid pointer from trace_buffered_event. It must be + * ensured they don't see cleared trace_buffered_event_cnt else they + * could wrongly decide to use the pointed-to buffer which is now freed. */ - smp_wmb(); + synchronize_rcu(); - preempt_disable(); - /* Do the work on each cpu */ - smp_call_function_many(tracing_buffer_mask, - enable_trace_buffered_event, NULL, 1); - preempt_enable(); + /* For each CPU, relinquish the buffer */ + on_each_cpu_mask(tracing_buffer_mask, enable_trace_buffered_event, NULL, + true); } static struct trace_buffer *temp_buffer; @@ -5000,6 +4957,20 @@ if (ret) return ret; + mutex_lock(&event_mutex); + + /* Fail if the file is marked for removal */ + if (file->flags & EVENT_FILE_FL_FREED) { + trace_array_put(file->tr); + ret = -ENODEV; + } else { + event_file_get(file); + } + + mutex_unlock(&event_mutex); + if (ret) + return ret; + filp->private_data = inode->i_private; return 0; @@ -5010,6 +4981,7 @@ struct trace_event_file *file = inode->i_private; trace_array_put(file->tr); + event_file_put(file); return 0; } @@ -6345,6 +6317,15 @@ per_cpu_ptr(buf->data, cpu)->entries = val; } +static void update_buffer_entries(struct array_buffer *buf, int cpu) +{ + if (cpu == RING_BUFFER_ALL_CPUS) { + set_buffer_entries(buf, ring_buffer_size(buf->buffer, 0)); + } else { + per_cpu_ptr(buf->data, cpu)->entries = ring_buffer_size(buf->buffer, cpu); + } +} + #ifdef CONFIG_TRACER_MAX_TRACE /* resize @tr's buffer to the size of @size_tr's entries */ static int resize_buffer_duplicate_size(struct array_buffer *trace_buf, @@ -6389,13 +6370,15 @@ if (!tr->array_buffer.buffer) return 0; + /* Do not allow tracing while resizng ring buffer */ + tracing_stop_tr(tr); + ret = ring_buffer_resize(tr->array_buffer.buffer, size, cpu); if (ret < 0) - return ret; + goto out_start; #ifdef CONFIG_TRACER_MAX_TRACE - if (!(tr->flags & TRACE_ARRAY_FL_GLOBAL) || - !tr->current_trace->use_max_tr) + if (!tr->current_trace->use_max_tr) goto out; ret = ring_buffer_resize(tr->max_buffer.buffer, size, cpu); @@ -6420,22 +6403,17 @@ WARN_ON(1); tracing_disabled = 1; } - return ret; + goto out_start; } - if (cpu == RING_BUFFER_ALL_CPUS) - set_buffer_entries(&tr->max_buffer, size); - else - per_cpu_ptr(tr->max_buffer.data, cpu)->entries = size; + update_buffer_entries(&tr->max_buffer, cpu); out: #endif /* CONFIG_TRACER_MAX_TRACE */ - if (cpu == RING_BUFFER_ALL_CPUS) - set_buffer_entries(&tr->array_buffer, size); - else - per_cpu_ptr(tr->array_buffer.data, cpu)->entries = size; - + update_buffer_entries(&tr->array_buffer, cpu); + out_start: + tracing_start_tr(tr); return ret; } diff -u linux-riscv-6.5.0/kernel/trace/trace.h linux-riscv-6.5.0/kernel/trace/trace.h --- linux-riscv-6.5.0/kernel/trace/trace.h +++ linux-riscv-6.5.0/kernel/trace/trace.h @@ -1656,6 +1656,9 @@ char *glob, struct event_trigger_data *trigger_data); +extern void event_file_get(struct trace_event_file *file); +extern void event_file_put(struct trace_event_file *file); + /** * struct event_trigger_ops - callbacks for trace event triggers * diff -u linux-riscv-6.5.0/kernel/trace/trace_events.c linux-riscv-6.5.0/kernel/trace/trace_events.c --- linux-riscv-6.5.0/kernel/trace/trace_events.c +++ linux-riscv-6.5.0/kernel/trace/trace_events.c @@ -990,26 +990,38 @@ } } -static void remove_event_file_dir(struct trace_event_file *file) +void event_file_get(struct trace_event_file *file) { - struct dentry *dir = file->dir; - struct dentry *child; + atomic_inc(&file->ref); +} - if (dir) { - spin_lock(&dir->d_lock); /* probably unneeded */ - list_for_each_entry(child, &dir->d_subdirs, d_child) { - if (d_really_is_positive(child)) /* probably unneeded */ - d_inode(child)->i_private = NULL; - } - spin_unlock(&dir->d_lock); +void event_file_put(struct trace_event_file *file) +{ + if (WARN_ON_ONCE(!atomic_read(&file->ref))) { + if (file->flags & EVENT_FILE_FL_FREED) + kmem_cache_free(file_cachep, file); + return; + } - tracefs_remove(dir); + if (atomic_dec_and_test(&file->ref)) { + /* Count should only go to zero when it is freed */ + if (WARN_ON_ONCE(!(file->flags & EVENT_FILE_FL_FREED))) + return; + kmem_cache_free(file_cachep, file); } +} + +static void remove_event_file_dir(struct trace_event_file *file) +{ + struct dentry *dir = file->dir; + + tracefs_remove(dir); list_del(&file->list); remove_subsystem(file->system); free_event_filter(file->filter); - kmem_cache_free(file_cachep, file); + file->flags |= EVENT_FILE_FL_FREED; + event_file_put(file); } /* @@ -1382,7 +1394,7 @@ flags = file->flags; mutex_unlock(&event_mutex); - if (!file) + if (!file || flags & EVENT_FILE_FL_FREED) return -ENODEV; if (flags & EVENT_FILE_FL_ENABLED && @@ -1420,7 +1432,7 @@ ret = -ENODEV; mutex_lock(&event_mutex); file = event_file_data(filp); - if (likely(file)) + if (likely(file && !(file->flags & EVENT_FILE_FL_FREED))) ret = ftrace_event_enable_disable(file, val); mutex_unlock(&event_mutex); break; @@ -1694,7 +1706,7 @@ mutex_lock(&event_mutex); file = event_file_data(filp); - if (file) + if (file && !(file->flags & EVENT_FILE_FL_FREED)) print_event_filter(file, s); mutex_unlock(&event_mutex); @@ -2777,6 +2789,7 @@ update_event_fields(call, map[i]); } } + cond_resched(); } up_write(&trace_event_sem); } @@ -2809,6 +2822,7 @@ atomic_set(&file->tm_ref, 0); INIT_LIST_HEAD(&file->triggers); list_add(&file->list, &tr->events); + event_file_get(file); return file; } diff -u linux-riscv-6.5.0/kernel/trace/trace_events_synth.c linux-riscv-6.5.0/kernel/trace/trace_events_synth.c --- linux-riscv-6.5.0/kernel/trace/trace_events_synth.c +++ linux-riscv-6.5.0/kernel/trace/trace_events_synth.c @@ -452,7 +452,7 @@ #ifdef CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE if ((unsigned long)str_val < TASK_SIZE) - ret = strncpy_from_user_nofault(str_field, str_val, STR_VAR_LEN_MAX); + ret = strncpy_from_user_nofault(str_field, (const void __user *)str_val, STR_VAR_LEN_MAX); else #endif ret = strncpy_from_kernel_nofault(str_field, str_val, STR_VAR_LEN_MAX); diff -u linux-riscv-6.5.0/kernel/watchdog.c linux-riscv-6.5.0/kernel/watchdog.c --- linux-riscv-6.5.0/kernel/watchdog.c +++ linux-riscv-6.5.0/kernel/watchdog.c @@ -283,6 +283,13 @@ static DEFINE_PER_CPU(bool, softlockup_touch_sync); static unsigned long soft_lockup_nmi_warn; +static int __init softlockup_panic_setup(char *str) +{ + softlockup_panic = simple_strtoul(str, NULL, 0); + return 1; +} +__setup("softlockup_panic=", softlockup_panic_setup); + static int __init nowatchdog_setup(char *str) { watchdog_user_enabled = 0; diff -u linux-riscv-6.5.0/kernel/workqueue.c linux-riscv-6.5.0/kernel/workqueue.c --- linux-riscv-6.5.0/kernel/workqueue.c +++ linux-riscv-6.5.0/kernel/workqueue.c @@ -1596,9 +1596,6 @@ pr_warn_once("workqueue: round-robin CPU selection forced, expect performance impact\n"); } - if (cpumask_empty(wq_unbound_cpumask)) - return cpu; - new_cpu = __this_cpu_read(wq_rr_cpu_last); new_cpu = cpumask_next_and(new_cpu, wq_unbound_cpumask, cpu_online_mask); if (unlikely(new_cpu >= nr_cpu_ids)) { @@ -5571,50 +5568,54 @@ } /** - * work_on_cpu - run a function in thread context on a particular cpu + * work_on_cpu_key - run a function in thread context on a particular cpu * @cpu: the cpu to run on * @fn: the function to run * @arg: the function arg + * @key: The lock class key for lock debugging purposes * * It is up to the caller to ensure that the cpu doesn't go offline. * The caller must not hold any locks which would prevent @fn from completing. * * Return: The value @fn returns. */ -long work_on_cpu(int cpu, long (*fn)(void *), void *arg) +long work_on_cpu_key(int cpu, long (*fn)(void *), + void *arg, struct lock_class_key *key) { struct work_for_cpu wfc = { .fn = fn, .arg = arg }; - INIT_WORK_ONSTACK(&wfc.work, work_for_cpu_fn); + INIT_WORK_ONSTACK_KEY(&wfc.work, work_for_cpu_fn, key); schedule_work_on(cpu, &wfc.work); flush_work(&wfc.work); destroy_work_on_stack(&wfc.work); return wfc.ret; } -EXPORT_SYMBOL_GPL(work_on_cpu); +EXPORT_SYMBOL_GPL(work_on_cpu_key); /** - * work_on_cpu_safe - run a function in thread context on a particular cpu + * work_on_cpu_safe_key - run a function in thread context on a particular cpu * @cpu: the cpu to run on * @fn: the function to run * @arg: the function argument + * @key: The lock class key for lock debugging purposes * * Disables CPU hotplug and calls work_on_cpu(). The caller must not hold * any locks which would prevent @fn from completing. * * Return: The value @fn returns. */ -long work_on_cpu_safe(int cpu, long (*fn)(void *), void *arg) +long work_on_cpu_safe_key(int cpu, long (*fn)(void *), + void *arg, struct lock_class_key *key) { long ret = -ENODEV; cpus_read_lock(); if (cpu_online(cpu)) - ret = work_on_cpu(cpu, fn, arg); + ret = work_on_cpu_key(cpu, fn, arg, key); cpus_read_unlock(); return ret; } -EXPORT_SYMBOL_GPL(work_on_cpu_safe); +EXPORT_SYMBOL_GPL(work_on_cpu_safe_key); #endif /* CONFIG_SMP */ #ifdef CONFIG_FREEZER @@ -6397,6 +6398,17 @@ #endif /* CONFIG_WQ_WATCHDOG */ +static void __init restrict_unbound_cpumask(const char *name, const struct cpumask *mask) +{ + if (!cpumask_intersects(wq_unbound_cpumask, mask)) { + pr_warn("workqueue: Restricting unbound_cpumask (%*pb) with %s (%*pb) leaves no CPU, ignoring\n", + cpumask_pr_args(wq_unbound_cpumask), name, cpumask_pr_args(mask)); + return; + } + + cpumask_and(wq_unbound_cpumask, wq_unbound_cpumask, mask); +} + static void __init wq_numa_init(void) { cpumask_var_t *tbl; @@ -6459,8 +6471,9 @@ BUILD_BUG_ON(__alignof__(struct pool_workqueue) < __alignof__(long long)); BUG_ON(!alloc_cpumask_var(&wq_unbound_cpumask, GFP_KERNEL)); - cpumask_copy(wq_unbound_cpumask, housekeeping_cpumask(HK_TYPE_WQ)); - cpumask_and(wq_unbound_cpumask, wq_unbound_cpumask, housekeeping_cpumask(HK_TYPE_DOMAIN)); + cpumask_copy(wq_unbound_cpumask, cpu_possible_mask); + restrict_unbound_cpumask("HK_TYPE_WQ", housekeeping_cpumask(HK_TYPE_WQ)); + restrict_unbound_cpumask("HK_TYPE_DOMAIN", housekeeping_cpumask(HK_TYPE_DOMAIN)); pwq_cache = KMEM_CACHE(pool_workqueue, SLAB_PANIC); diff -u linux-riscv-6.5.0/lib/idr.c linux-riscv-6.5.0/lib/idr.c --- linux-riscv-6.5.0/lib/idr.c +++ linux-riscv-6.5.0/lib/idr.c @@ -508,7 +508,7 @@ goto delete; xas_store(&xas, xa_mk_value(v)); } else { - if (!test_bit(bit, bitmap->bitmap)) + if (!bitmap || !test_bit(bit, bitmap->bitmap)) goto err; __clear_bit(bit, bitmap->bitmap); xas_set_mark(&xas, XA_FREE_MARK); diff -u linux-riscv-6.5.0/lib/maple_tree.c linux-riscv-6.5.0/lib/maple_tree.c --- linux-riscv-6.5.0/lib/maple_tree.c +++ linux-riscv-6.5.0/lib/maple_tree.c @@ -5729,7 +5729,7 @@ /* Internal nodes */ nr_nodes += DIV_ROUND_UP(nr_nodes, nonleaf_cap); /* Add working room for split (2 nodes) + new parents */ - mas_node_count(mas, nr_nodes + 3); + mas_node_count_gfp(mas, nr_nodes + 3, GFP_KERNEL); /* Detect if allocations run out */ mas->mas_flags |= MA_STATE_PREALLOC; diff -u linux-riscv-6.5.0/lib/test_maple_tree.c linux-riscv-6.5.0/lib/test_maple_tree.c --- linux-riscv-6.5.0/lib/test_maple_tree.c +++ linux-riscv-6.5.0/lib/test_maple_tree.c @@ -9,6 +9,7 @@ #include #include +#include #define MTREE_ALLOC_MAX 0x2000000000000Ul #define CONFIG_MAPLE_SEARCH @@ -1714,17 +1715,21 @@ void *val; MA_STATE(mas, mt, 0, 0); MA_STATE(newmas, mt, 0, 0); + struct rw_semaphore newmt_lock; + + init_rwsem(&newmt_lock); for (i = 0; i <= nr_entries; i++) mtree_store_range(mt, i*10, i*10 + 5, xa_mk_value(i), GFP_KERNEL); mt_set_non_kernel(99999); - mt_init_flags(&newmt, MT_FLAGS_ALLOC_RANGE); + mt_init_flags(&newmt, MT_FLAGS_ALLOC_RANGE | MT_FLAGS_LOCK_EXTERN); + mt_set_external_lock(&newmt, &newmt_lock); newmas.tree = &newmt; mas_reset(&newmas); mas_reset(&mas); - mas_lock(&newmas); + down_write(&newmt_lock); mas.index = 0; mas.last = 0; if (mas_expected_entries(&newmas, nr_entries)) { @@ -1739,10 +1744,10 @@ } rcu_read_unlock(); mas_destroy(&newmas); - mas_unlock(&newmas); mt_validate(&newmt); mt_set_non_kernel(0); - mtree_destroy(&newmt); + __mt_destroy(&newmt); + up_write(&newmt_lock); } static noinline void __init check_iteration(struct maple_tree *mt) @@ -1853,6 +1858,10 @@ void *val; MA_STATE(mas, mt, 0, 0); MA_STATE(newmas, mt, 0, 0); + struct rw_semaphore newmt_lock; + + init_rwsem(&newmt_lock); + mt_set_external_lock(&newmt, &newmt_lock); for (i = 0; i <= nr_entries; i++) mtree_store_range(mt, i*10, i*10 + 5, @@ -1867,7 +1876,7 @@ mas.index = 0; mas.last = 0; rcu_read_lock(); - mas_lock(&newmas); + down_write(&newmt_lock); if (mas_expected_entries(&newmas, nr_entries)) { printk("OOM!"); BUG_ON(1); @@ -1878,11 +1887,11 @@ mas_store(&newmas, val); } mas_destroy(&newmas); - mas_unlock(&newmas); rcu_read_unlock(); mt_validate(&newmt); mt_set_non_kernel(0); - mtree_destroy(&newmt); + __mt_destroy(&newmt); + up_write(&newmt_lock); } } #endif @@ -2489,6 +2498,10 @@ void *tmp; MA_STATE(mas, mt, 0, 0); MA_STATE(newmas, &newmt, 0, 0); + struct rw_semaphore newmt_lock; + + init_rwsem(&newmt_lock); + mt_set_external_lock(&newmt, &newmt_lock); if (!zero_start) i = 1; @@ -2498,9 +2511,9 @@ mtree_store_range(mt, i*10, (i+1)*10 - gap, xa_mk_value(i), GFP_KERNEL); - mt_init_flags(&newmt, MT_FLAGS_ALLOC_RANGE); + mt_init_flags(&newmt, MT_FLAGS_ALLOC_RANGE | MT_FLAGS_LOCK_EXTERN); mt_set_non_kernel(99999); - mas_lock(&newmas); + down_write(&newmt_lock); ret = mas_expected_entries(&newmas, nr_entries); mt_set_non_kernel(0); MT_BUG_ON(mt, ret != 0); @@ -2513,9 +2526,9 @@ } rcu_read_unlock(); mas_destroy(&newmas); - mas_unlock(&newmas); - mtree_destroy(&newmt); + __mt_destroy(&newmt); + up_write(&newmt_lock); } /* Duplicate many sizes of trees. Mainly to test expected entry values */ diff -u linux-riscv-6.5.0/mm/memcontrol.c linux-riscv-6.5.0/mm/memcontrol.c --- linux-riscv-6.5.0/mm/memcontrol.c +++ linux-riscv-6.5.0/mm/memcontrol.c @@ -2868,7 +2868,8 @@ * Moreover, it should not come from DMA buffer and is not readily * reclaimable. So those GFP bits should be masked off. */ -#define OBJCGS_CLEAR_MASK (__GFP_DMA | __GFP_RECLAIMABLE | __GFP_ACCOUNT) +#define OBJCGS_CLEAR_MASK (__GFP_DMA | __GFP_RECLAIMABLE | \ + __GFP_ACCOUNT | __GFP_NOFAIL) /* * mod_objcg_mlstate() may be called with irq enabled, so diff -u linux-riscv-6.5.0/mm/mempolicy.c linux-riscv-6.5.0/mm/mempolicy.c --- linux-riscv-6.5.0/mm/mempolicy.c +++ linux-riscv-6.5.0/mm/mempolicy.c @@ -131,22 +131,26 @@ static struct mempolicy preferred_node_policy[MAX_NUMNODES]; /** - * numa_map_to_online_node - Find closest online node + * numa_nearest_node - Find nearest node by state * @node: Node id to start the search + * @state: State to filter the search * - * Lookup the next closest node by distance if @nid is not online. + * Lookup the closest node by distance if @nid is not in state. * - * Return: this @node if it is online, otherwise the closest node by distance + * Return: this @node if it is in state, otherwise the closest node by distance */ -int numa_map_to_online_node(int node) +int numa_nearest_node(int node, unsigned int state) { int min_dist = INT_MAX, dist, n, min_node; - if (node == NUMA_NO_NODE || node_online(node)) + if (state >= NR_NODE_STATES) + return -EINVAL; + + if (node == NUMA_NO_NODE || node_state(node, state)) return node; min_node = node; - for_each_online_node(n) { + for_each_node_state(n, state) { dist = node_distance(node, n); if (dist < min_dist) { min_dist = dist; @@ -156,7 +160,7 @@ return min_node; } -EXPORT_SYMBOL_GPL(numa_map_to_online_node); +EXPORT_SYMBOL_GPL(numa_nearest_node); struct mempolicy *get_task_policy(struct task_struct *p) { @@ -1543,8 +1547,10 @@ * the home node for vmas we already updated before. */ old = vma_policy(vma); - if (!old) + if (!old) { + prev = vma; continue; + } if (old->mode != MPOL_BIND && old->mode != MPOL_PREFERRED_MANY) { err = -EOPNOTSUPP; break; diff -u linux-riscv-6.5.0/mm/mmap.c linux-riscv-6.5.0/mm/mmap.c --- linux-riscv-6.5.0/mm/mmap.c +++ linux-riscv-6.5.0/mm/mmap.c @@ -600,11 +600,12 @@ * dup_anon_vma() - Helper function to duplicate anon_vma * @dst: The destination VMA * @src: The source VMA + * @dup: Pointer to the destination VMA when successful. * * Returns: 0 on success. */ static inline int dup_anon_vma(struct vm_area_struct *dst, - struct vm_area_struct *src) + struct vm_area_struct *src, struct vm_area_struct **dup) { /* * Easily overlooked: when mprotect shifts the boundary, make sure the @@ -612,9 +613,15 @@ * anon pages imported. */ if (src->anon_vma && !dst->anon_vma) { + int ret; + vma_start_write(dst); dst->anon_vma = src->anon_vma; - return anon_vma_clone(dst, src); + ret = anon_vma_clone(dst, src); + if (ret) + return ret; + + *dup = dst; } return 0; @@ -641,6 +648,7 @@ unsigned long start, unsigned long end, pgoff_t pgoff, struct vm_area_struct *next) { + struct vm_area_struct *anon_dup = NULL; bool remove_next = false; struct vma_prepare vp; @@ -648,7 +656,7 @@ int ret; remove_next = true; - ret = dup_anon_vma(vma, next); + ret = dup_anon_vma(vma, next, &anon_dup); if (ret) return ret; } @@ -680,6 +688,8 @@ return 0; nomem: + if (anon_dup) + unlink_anon_vmas(anon_dup); return -ENOMEM; } @@ -878,6 +888,7 @@ { struct vm_area_struct *curr, *next, *res; struct vm_area_struct *vma, *adjust, *remove, *remove2; + struct vm_area_struct *anon_dup = NULL; struct vma_prepare vp; pgoff_t vma_pgoff; int err = 0; @@ -942,16 +953,16 @@ is_mergeable_anon_vma(prev->anon_vma, next->anon_vma, NULL)) { remove = next; /* case 1 */ vma_end = next->vm_end; - err = dup_anon_vma(prev, next); + err = dup_anon_vma(prev, next, &anon_dup); if (curr) { /* case 6 */ remove = curr; remove2 = next; if (!next->anon_vma) - err = dup_anon_vma(prev, curr); + err = dup_anon_vma(prev, curr, &anon_dup); } } else if (merge_prev) { /* case 2 */ if (curr) { - err = dup_anon_vma(prev, curr); + err = dup_anon_vma(prev, curr, &anon_dup); if (end == curr->vm_end) { /* case 7 */ remove = curr; } else { /* case 5 */ @@ -965,7 +976,7 @@ vma_end = addr; adjust = next; adj_start = -(prev->vm_end - addr); - err = dup_anon_vma(next, prev); + err = dup_anon_vma(next, prev, &anon_dup); } else { /* * Note that cases 3 and 8 are the ONLY ones where prev @@ -978,17 +989,17 @@ if (curr) { /* case 8 */ vma_pgoff = curr->vm_pgoff; remove = curr; - err = dup_anon_vma(next, curr); + err = dup_anon_vma(next, curr, &anon_dup); } } } /* Error in anon_vma clone. */ if (err) - return NULL; + goto anon_vma_fail; if (vma_iter_prealloc(vmi)) - return NULL; + goto prealloc_fail; init_multi_vma_prep(&vp, vma, adjust, remove, remove2); VM_WARN_ON(vp.anon_vma && adjust && adjust->anon_vma && @@ -1021,6 +1032,15 @@ khugepaged_enter_vma(res, vm_flags); return res; + +prealloc_fail: + if (anon_dup) + unlink_anon_vmas(anon_dup); + +anon_vma_fail: + vma_iter_set(vmi, addr); + vma_iter_load(vmi); + return NULL; } /* @@ -3131,13 +3151,13 @@ if (!len) return 0; - if (mmap_write_lock_killable(mm)) - return -EINTR; - /* Until we need other flags, refuse anything except VM_EXEC. */ if ((flags & (~VM_EXEC)) != 0) return -EINVAL; + if (mmap_write_lock_killable(mm)) + return -EINTR; + ret = check_brk_limits(addr, len); if (ret) goto limits_failed; diff -u linux-riscv-6.5.0/mm/page_alloc.c linux-riscv-6.5.0/mm/page_alloc.c --- linux-riscv-6.5.0/mm/page_alloc.c +++ linux-riscv-6.5.0/mm/page_alloc.c @@ -6528,6 +6528,7 @@ next_page = page; current_buddy = page + size; } + page = next_page; if (set_page_guard(zone, current_buddy, high, migratetype)) continue; @@ -6535,7 +6536,6 @@ if (current_buddy != target) { add_to_free_list(current_buddy, zone, high, migratetype); set_buddy_order(current_buddy, high); - page = next_page; } } } diff -u linux-riscv-6.5.0/mm/slab_common.c linux-riscv-6.5.0/mm/slab_common.c --- linux-riscv-6.5.0/mm/slab_common.c +++ linux-riscv-6.5.0/mm/slab_common.c @@ -864,11 +864,13 @@ static unsigned int __kmalloc_minalign(void) { + unsigned int minalign = dma_get_cache_alignment(); + #ifdef CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC if (io_tlb_default_mem.nslabs) - return ARCH_KMALLOC_MINALIGN; + minalign = ARCH_KMALLOC_MINALIGN; #endif - return dma_get_cache_alignment(); + return max(minalign, arch_slab_minalign()); } void __init diff -u linux-riscv-6.5.0/net/9p/trans_fd.c linux-riscv-6.5.0/net/9p/trans_fd.c --- linux-riscv-6.5.0/net/9p/trans_fd.c +++ linux-riscv-6.5.0/net/9p/trans_fd.c @@ -832,14 +832,21 @@ goto out_free_ts; if (!(ts->rd->f_mode & FMODE_READ)) goto out_put_rd; - /* prevent workers from hanging on IO when fd is a pipe */ - ts->rd->f_flags |= O_NONBLOCK; + /* Prevent workers from hanging on IO when fd is a pipe. + * It's technically possible for userspace or concurrent mounts to + * modify this flag concurrently, which will likely result in a + * broken filesystem. However, just having bad flags here should + * not crash the kernel or cause any other sort of bug, so mark this + * particular data race as intentional so that tooling (like KCSAN) + * can allow it and detect further problems. + */ + data_race(ts->rd->f_flags |= O_NONBLOCK); ts->wr = fget(wfd); if (!ts->wr) goto out_put_rd; if (!(ts->wr->f_mode & FMODE_WRITE)) goto out_put_wr; - ts->wr->f_flags |= O_NONBLOCK; + data_race(ts->wr->f_flags |= O_NONBLOCK); client->trans = ts; client->status = Connected; diff -u linux-riscv-6.5.0/net/bluetooth/hci_conn.c linux-riscv-6.5.0/net/bluetooth/hci_conn.c --- linux-riscv-6.5.0/net/bluetooth/hci_conn.c +++ linux-riscv-6.5.0/net/bluetooth/hci_conn.c @@ -153,6 +153,9 @@ hci_conn_hash_del(hdev, conn); + if (HCI_CONN_HANDLE_UNSET(conn->handle)) + ida_free(&hdev->unset_handle_ida, conn->handle); + if (conn->cleanup) conn->cleanup(conn); @@ -169,13 +172,11 @@ hdev->notify(hdev, HCI_NOTIFY_CONN_DEL); } - hci_conn_del_sysfs(conn); - debugfs_remove_recursive(conn->debugfs); - hci_dev_put(hdev); + hci_conn_del_sysfs(conn); - hci_conn_put(conn); + hci_dev_put(hdev); } static void hci_acl_create_connection(struct hci_conn *conn) @@ -734,6 +735,7 @@ }; int count; bool big_term; + bool pa_sync_term; bool big_sync_term; }; @@ -807,7 +809,10 @@ if (d->big_sync_term) hci_le_big_terminate_sync(hdev, d->big); - return hci_le_pa_terminate_sync(hdev, d->sync_handle); + if (d->pa_sync_term) + return hci_le_pa_terminate_sync(hdev, d->sync_handle); + + return 0; } static int hci_le_big_terminate(struct hci_dev *hdev, u8 big, struct hci_conn *conn) @@ -823,6 +828,7 @@ d->big = big; d->sync_handle = conn->sync_handle; + d->pa_sync_term = test_and_clear_bit(HCI_CONN_PA_SYNC, &conn->flags); d->big_sync_term = test_and_clear_bit(HCI_CONN_BIG_SYNC, &conn->flags); ret = hci_cmd_sync_queue(hdev, big_terminate_sync, d, @@ -874,7 +880,7 @@ static int remove_cig_sync(struct hci_dev *hdev, void *data) { - u8 handle = PTR_ERR(data); + u8 handle = PTR_UINT(data); return hci_le_remove_cig_sync(hdev, handle); } @@ -883,7 +889,8 @@ { bt_dev_dbg(hdev, "handle 0x%2.2x", handle); - return hci_cmd_sync_queue(hdev, remove_cig_sync, ERR_PTR(handle), NULL); + return hci_cmd_sync_queue(hdev, remove_cig_sync, UINT_PTR(handle), + NULL); } static void find_cis(struct hci_conn *conn, void *data) @@ -924,31 +931,18 @@ hci_le_remove_cig(hdev, conn->iso_qos.ucast.cig); } -static u16 hci_conn_hash_alloc_unset(struct hci_dev *hdev) +static int hci_conn_hash_alloc_unset(struct hci_dev *hdev) { - struct hci_conn_hash *h = &hdev->conn_hash; - struct hci_conn *c; - u16 handle = HCI_CONN_HANDLE_MAX + 1; - - rcu_read_lock(); - - list_for_each_entry_rcu(c, &h->list, list) { - /* Find the first unused handle */ - if (handle == 0xffff || c->handle != handle) - break; - handle++; - } - rcu_read_unlock(); - - return handle; + return ida_alloc_range(&hdev->unset_handle_ida, HCI_CONN_HANDLE_MAX + 1, + U16_MAX, GFP_ATOMIC); } struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst, - u8 role) + u8 role, u16 handle) { struct hci_conn *conn; - BT_DBG("%s dst %pMR", hdev->name, dst); + bt_dev_dbg(hdev, "dst %pMR handle 0x%4.4x", dst, handle); conn = kzalloc(sizeof(*conn), GFP_KERNEL); if (!conn) @@ -956,7 +950,7 @@ bacpy(&conn->dst, dst); bacpy(&conn->src, &hdev->bdaddr); - conn->handle = hci_conn_hash_alloc_unset(hdev); + conn->handle = handle; conn->hdev = hdev; conn->type = type; conn->role = role; @@ -969,6 +963,7 @@ conn->rssi = HCI_RSSI_INVALID; conn->tx_power = HCI_TX_POWER_INVALID; conn->max_tx_power = HCI_TX_POWER_INVALID; + conn->sync_handle = HCI_SYNC_HANDLE_INVALID; set_bit(HCI_CONN_POWER_SAVE, &conn->flags); conn->disc_timeout = HCI_DISCONN_TIMEOUT; @@ -1040,6 +1035,20 @@ return conn; } +struct hci_conn *hci_conn_add_unset(struct hci_dev *hdev, int type, + bdaddr_t *dst, u8 role) +{ + int handle; + + bt_dev_dbg(hdev, "dst %pMR", dst); + + handle = hci_conn_hash_alloc_unset(hdev); + if (unlikely(handle < 0)) + return NULL; + + return hci_conn_add(hdev, type, dst, role, handle); +} + static void hci_conn_cleanup_child(struct hci_conn *conn, u8 reason) { if (!reason) @@ -1248,9 +1257,44 @@ hci_conn_del(conn); } +/* This function requires the caller holds hdev->lock */ +u8 hci_conn_set_handle(struct hci_conn *conn, u16 handle) +{ + struct hci_dev *hdev = conn->hdev; + + bt_dev_dbg(hdev, "hcon %p handle 0x%4.4x", conn, handle); + + if (conn->handle == handle) + return 0; + + if (handle > HCI_CONN_HANDLE_MAX) { + bt_dev_err(hdev, "Invalid handle: 0x%4.4x > 0x%4.4x", + handle, HCI_CONN_HANDLE_MAX); + return HCI_ERROR_INVALID_PARAMETERS; + } + + /* If abort_reason has been sent it means the connection is being + * aborted and the handle shall not be changed. + */ + if (conn->abort_reason) + return conn->abort_reason; + + if (HCI_CONN_HANDLE_UNSET(conn->handle)) + ida_free(&hdev->unset_handle_ida, conn->handle); + + conn->handle = handle; + + return 0; +} + static void create_le_conn_complete(struct hci_dev *hdev, void *data, int err) { - struct hci_conn *conn = data; + struct hci_conn *conn; + u16 handle = PTR_UINT(data); + + conn = hci_conn_hash_lookup_handle(hdev, handle); + if (!conn) + return; bt_dev_dbg(hdev, "err %d", err); @@ -1275,10 +1319,17 @@ static int hci_connect_le_sync(struct hci_dev *hdev, void *data) { - struct hci_conn *conn = data; + struct hci_conn *conn; + u16 handle = PTR_UINT(data); + + conn = hci_conn_hash_lookup_handle(hdev, handle); + if (!conn) + return 0; bt_dev_dbg(hdev, "conn %p", conn); + conn->state = BT_CONNECT; + return hci_le_create_conn_sync(hdev, conn); } @@ -1337,7 +1388,7 @@ if (conn) { bacpy(&conn->dst, dst); } else { - conn = hci_conn_add(hdev, LE_LINK, dst, role); + conn = hci_conn_add_unset(hdev, LE_LINK, dst, role); if (!conn) return ERR_PTR(-ENOMEM); hci_conn_hold(conn); @@ -1348,10 +1399,10 @@ conn->sec_level = BT_SECURITY_LOW; conn->conn_timeout = conn_timeout; - conn->state = BT_CONNECT; clear_bit(HCI_CONN_SCANNING, &conn->flags); - err = hci_cmd_sync_queue(hdev, hci_connect_le_sync, conn, + err = hci_cmd_sync_queue(hdev, hci_connect_le_sync, + UINT_PTR(conn->handle), create_le_conn_complete); if (err) { hci_conn_del(conn); @@ -1508,7 +1559,7 @@ memcmp(conn->le_per_adv_data, base, base_len))) return ERR_PTR(-EADDRINUSE); - conn = hci_conn_add(hdev, ISO_LINK, dst, HCI_ROLE_MASTER); + conn = hci_conn_add_unset(hdev, ISO_LINK, dst, HCI_ROLE_MASTER); if (!conn) return ERR_PTR(-ENOMEM); @@ -1552,7 +1603,7 @@ BT_DBG("requesting refresh of dst_addr"); - conn = hci_conn_add(hdev, LE_LINK, dst, HCI_ROLE_MASTER); + conn = hci_conn_add_unset(hdev, LE_LINK, dst, HCI_ROLE_MASTER); if (!conn) return ERR_PTR(-ENOMEM); @@ -1589,9 +1640,18 @@ return ERR_PTR(-EOPNOTSUPP); } + /* Reject outgoing connection to device with same BD ADDR against + * CVE-2020-26555 + */ + if (!bacmp(&hdev->bdaddr, dst)) { + bt_dev_dbg(hdev, "Reject connection with same BD_ADDR %pMR\n", + dst); + return ERR_PTR(-ECONNREFUSED); + } + acl = hci_conn_hash_lookup_ba(hdev, ACL_LINK, dst); if (!acl) { - acl = hci_conn_add(hdev, ACL_LINK, dst, HCI_ROLE_MASTER); + acl = hci_conn_add_unset(hdev, ACL_LINK, dst, HCI_ROLE_MASTER); if (!acl) return ERR_PTR(-ENOMEM); } @@ -1651,7 +1711,7 @@ sco = hci_conn_hash_lookup_ba(hdev, type, dst); if (!sco) { - sco = hci_conn_add(hdev, type, dst, HCI_ROLE_MASTER); + sco = hci_conn_add_unset(hdev, type, dst, HCI_ROLE_MASTER); if (!sco) { hci_conn_drop(acl); return ERR_PTR(-ENOMEM); @@ -1719,7 +1779,7 @@ static int set_cig_params_sync(struct hci_dev *hdev, void *data) { - u8 cig_id = PTR_ERR(data); + u8 cig_id = PTR_UINT(data); struct hci_conn *conn; struct bt_iso_qos *qos; struct iso_cig_params pdu; @@ -1829,7 +1889,7 @@ done: if (hci_cmd_sync_queue(hdev, set_cig_params_sync, - ERR_PTR(qos->ucast.cig), NULL) < 0) + UINT_PTR(qos->ucast.cig), NULL) < 0) return false; return true; @@ -1843,7 +1903,7 @@ cis = hci_conn_hash_lookup_cis(hdev, dst, dst_type, qos->ucast.cig, qos->ucast.cis); if (!cis) { - cis = hci_conn_add(hdev, ISO_LINK, dst, HCI_ROLE_MASTER); + cis = hci_conn_add_unset(hdev, ISO_LINK, dst, HCI_ROLE_MASTER); if (!cis) return ERR_PTR(-ENOMEM); cis->cleanup = cis_cleanup; @@ -2078,7 +2138,8 @@ return hci_cmd_sync_queue(hdev, create_pa_sync, cp, create_pa_complete); } -int hci_le_big_create_sync(struct hci_dev *hdev, struct bt_iso_qos *qos, +int hci_le_big_create_sync(struct hci_dev *hdev, struct hci_conn *hcon, + struct bt_iso_qos *qos, __u16 sync_handle, __u8 num_bis, __u8 bis[]) { struct _packed { @@ -2094,6 +2155,9 @@ if (err) return err; + if (hcon) + hcon->iso_qos.bcast.big = qos->bcast.big; + memset(&pdu, 0, sizeof(pdu)); pdu.cp.handle = qos->bcast.big; pdu.cp.sync_handle = cpu_to_le16(sync_handle); @@ -2364,34 +2428,41 @@ if (!test_bit(HCI_CONN_AUTH, &conn->flags)) goto auth; - /* An authenticated FIPS approved combination key has sufficient - * security for security level 4. */ - if (conn->key_type == HCI_LK_AUTH_COMBINATION_P256 && - sec_level == BT_SECURITY_FIPS) - goto encrypt; - - /* An authenticated combination key has sufficient security for - security level 3. */ - if ((conn->key_type == HCI_LK_AUTH_COMBINATION_P192 || - conn->key_type == HCI_LK_AUTH_COMBINATION_P256) && - sec_level == BT_SECURITY_HIGH) - goto encrypt; - - /* An unauthenticated combination key has sufficient security for - security level 1 and 2. */ - if ((conn->key_type == HCI_LK_UNAUTH_COMBINATION_P192 || - conn->key_type == HCI_LK_UNAUTH_COMBINATION_P256) && - (sec_level == BT_SECURITY_MEDIUM || sec_level == BT_SECURITY_LOW)) - goto encrypt; - - /* A combination key has always sufficient security for the security - levels 1 or 2. High security level requires the combination key - is generated using maximum PIN code length (16). - For pre 2.1 units. */ - if (conn->key_type == HCI_LK_COMBINATION && - (sec_level == BT_SECURITY_MEDIUM || sec_level == BT_SECURITY_LOW || - conn->pin_length == 16)) - goto encrypt; + switch (conn->key_type) { + case HCI_LK_AUTH_COMBINATION_P256: + /* An authenticated FIPS approved combination key has + * sufficient security for security level 4 or lower. + */ + if (sec_level <= BT_SECURITY_FIPS) + goto encrypt; + break; + case HCI_LK_AUTH_COMBINATION_P192: + /* An authenticated combination key has sufficient security for + * security level 3 or lower. + */ + if (sec_level <= BT_SECURITY_HIGH) + goto encrypt; + break; + case HCI_LK_UNAUTH_COMBINATION_P192: + case HCI_LK_UNAUTH_COMBINATION_P256: + /* An unauthenticated combination key has sufficient security + * for security level 2 or lower. + */ + if (sec_level <= BT_SECURITY_MEDIUM) + goto encrypt; + break; + case HCI_LK_COMBINATION: + /* A combination key has always sufficient security for the + * security levels 2 or lower. High security level requires the + * combination key is generated using maximum PIN code length + * (16). For pre 2.1 units. + */ + if (sec_level <= BT_SECURITY_MEDIUM || conn->pin_length == 16) + goto encrypt; + break; + default: + break; + } auth: if (test_bit(HCI_CONN_ENCRYPT_PEND, &conn->flags)) @@ -2836,7 +2907,7 @@ static int abort_conn_sync(struct hci_dev *hdev, void *data) { struct hci_conn *conn; - u16 handle = PTR_ERR(data); + u16 handle = PTR_UINT(data); conn = hci_conn_hash_lookup_handle(hdev, handle); if (!conn) @@ -2862,6 +2933,9 @@ /* If the connection is pending check the command opcode since that * might be blocking on hci_cmd_sync_work while waiting its respective * event so we need to hci_cmd_sync_cancel to cancel it. + * + * hci_connect_le serializes the connection attempts so only one + * connection can be in BT_CONNECT at time. */ if (conn->state == BT_CONNECT && hdev->req_status == HCI_REQ_PEND) { switch (hci_skb_event(hdev->sent_cmd)) { @@ -2874,5 +2948,5 @@ } - return hci_cmd_sync_queue(hdev, abort_conn_sync, ERR_PTR(conn->handle), + return hci_cmd_sync_queue(hdev, abort_conn_sync, UINT_PTR(conn->handle), NULL); } diff -u linux-riscv-6.5.0/net/bluetooth/hci_core.c linux-riscv-6.5.0/net/bluetooth/hci_core.c --- linux-riscv-6.5.0/net/bluetooth/hci_core.c +++ linux-riscv-6.5.0/net/bluetooth/hci_core.c @@ -2535,6 +2535,8 @@ mutex_init(&hdev->lock); mutex_init(&hdev->req_lock); + ida_init(&hdev->unset_handle_ida); + INIT_LIST_HEAD(&hdev->mesh_pending); INIT_LIST_HEAD(&hdev->mgmt_pending); INIT_LIST_HEAD(&hdev->reject_list); @@ -2617,7 +2619,11 @@ if (id < 0) return id; - snprintf(hdev->name, sizeof(hdev->name), "hci%d", id); + error = dev_set_name(&hdev->dev, "hci%u", id); + if (error) + return error; + + hdev->name = dev_name(&hdev->dev); hdev->id = id; BT_DBG("%p name %s bus %d", hdev, hdev->name, hdev->bus); @@ -2639,8 +2645,6 @@ if (!IS_ERR_OR_NULL(bt_debugfs)) hdev->debugfs = debugfs_create_dir(hdev->name, bt_debugfs); - dev_set_name(&hdev->dev, "%s", hdev->name); - error = device_add(&hdev->dev); if (error < 0) goto err_wqueue; @@ -2787,6 +2791,7 @@ hci_codec_list_clear(&hdev->local_codecs); hci_dev_unlock(hdev); + ida_destroy(&hdev->unset_handle_ida); ida_simple_remove(&hci_index_ida, hdev->id); kfree_skb(hdev->sent_cmd); kfree_skb(hdev->recv_event); diff -u linux-riscv-6.5.0/net/bluetooth/hci_event.c linux-riscv-6.5.0/net/bluetooth/hci_event.c --- linux-riscv-6.5.0/net/bluetooth/hci_event.c +++ linux-riscv-6.5.0/net/bluetooth/hci_event.c @@ -26,6 +26,8 @@ /* Bluetooth HCI event handling. */ #include +#include +#include #include #include @@ -2333,8 +2335,8 @@ } } else { if (!conn) { - conn = hci_conn_add(hdev, ACL_LINK, &cp->bdaddr, - HCI_ROLE_MASTER); + conn = hci_conn_add_unset(hdev, ACL_LINK, &cp->bdaddr, + HCI_ROLE_MASTER); if (!conn) bt_dev_err(hdev, "no memory for new connection"); } @@ -3149,8 +3151,8 @@ hci_bdaddr_list_lookup_with_flags(&hdev->accept_list, &ev->bdaddr, BDADDR_BREDR)) { - conn = hci_conn_add(hdev, ev->link_type, &ev->bdaddr, - HCI_ROLE_SLAVE); + conn = hci_conn_add_unset(hdev, ev->link_type, + &ev->bdaddr, HCI_ROLE_SLAVE); if (!conn) { bt_dev_err(hdev, "no memory for new conn"); goto unlock; @@ -3180,13 +3182,9 @@ } if (!status) { - conn->handle = __le16_to_cpu(ev->handle); - if (conn->handle > HCI_CONN_HANDLE_MAX) { - bt_dev_err(hdev, "Invalid handle: 0x%4.4x > 0x%4.4x", - conn->handle, HCI_CONN_HANDLE_MAX); - status = HCI_ERROR_INVALID_PARAMETERS; + status = hci_conn_set_handle(conn, __le16_to_cpu(ev->handle)); + if (status) goto done; - } if (conn->type == ACL_LINK) { conn->state = BT_CONFIG; @@ -3272,6 +3270,16 @@ bt_dev_dbg(hdev, "bdaddr %pMR type 0x%x", &ev->bdaddr, ev->link_type); + /* Reject incoming connection from device with same BD ADDR against + * CVE-2020-26555 + */ + if (hdev && !bacmp(&hdev->bdaddr, &ev->bdaddr)) { + bt_dev_dbg(hdev, "Reject connection with same BD_ADDR %pMR\n", + &ev->bdaddr); + hci_reject_conn(hdev, &ev->bdaddr); + return; + } + mask |= hci_proto_connect_ind(hdev, &ev->bdaddr, ev->link_type, &flags); @@ -3309,8 +3317,8 @@ conn = hci_conn_hash_lookup_ba(hdev, ev->link_type, &ev->bdaddr); if (!conn) { - conn = hci_conn_add(hdev, ev->link_type, &ev->bdaddr, - HCI_ROLE_SLAVE); + conn = hci_conn_add_unset(hdev, ev->link_type, &ev->bdaddr, + HCI_ROLE_SLAVE); if (!conn) { bt_dev_err(hdev, "no memory for new connection"); goto unlock; @@ -3869,11 +3877,9 @@ if (conn->state != BT_BOUND && conn->state != BT_CONNECT) continue; - conn->handle = __le16_to_cpu(rp->handle[i]); + if (hci_conn_set_handle(conn, __le16_to_cpu(rp->handle[i]))) + continue; - bt_dev_dbg(hdev, "%p handle 0x%4.4x parent %p", conn, - conn->handle, conn->parent); - if (conn->state == BT_CONNECT) pending = true; } @@ -4725,6 +4731,15 @@ if (!conn) goto unlock; + /* Ignore NULL link key against CVE-2020-26555 */ + if (!crypto_memneq(ev->link_key, ZERO_KEY, HCI_LINK_KEY_SIZE)) { + bt_dev_dbg(hdev, "Ignore NULL link key (ZERO KEY) for %pMR", + &ev->bdaddr); + hci_disconnect(conn, HCI_ERROR_AUTH_FAILURE); + hci_conn_drop(conn); + goto unlock; + } + hci_conn_hold(conn); conn->disc_timeout = HCI_DISCONN_TIMEOUT; hci_conn_drop(conn); @@ -5036,11 +5051,8 @@ switch (status) { case 0x00: - conn->handle = __le16_to_cpu(ev->handle); - if (conn->handle > HCI_CONN_HANDLE_MAX) { - bt_dev_err(hdev, "Invalid handle: 0x%4.4x > 0x%4.4x", - conn->handle, HCI_CONN_HANDLE_MAX); - status = HCI_ERROR_INVALID_PARAMETERS; + status = hci_conn_set_handle(conn, __le16_to_cpu(ev->handle)); + if (status) { conn->state = BT_CLOSED; break; } @@ -5260,8 +5272,8 @@ * available, then do not declare that OOB data is * present. */ - if (!memcmp(data->rand256, ZERO_KEY, 16) || - !memcmp(data->hash256, ZERO_KEY, 16)) + if (!crypto_memneq(data->rand256, ZERO_KEY, 16) || + !crypto_memneq(data->hash256, ZERO_KEY, 16)) return 0x00; return 0x02; @@ -5271,8 +5283,8 @@ * not supported by the hardware, then check that if * P-192 data values are present. */ - if (!memcmp(data->rand192, ZERO_KEY, 16) || - !memcmp(data->hash192, ZERO_KEY, 16)) + if (!crypto_memneq(data->rand192, ZERO_KEY, 16) || + !crypto_memneq(data->hash192, ZERO_KEY, 16)) return 0x00; return 0x01; @@ -5289,7 +5301,7 @@ hci_dev_lock(hdev); conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr); - if (!conn) + if (!conn || !hci_conn_ssp_enabled(conn)) goto unlock; hci_conn_hold(conn); @@ -5536,7 +5548,7 @@ hci_dev_lock(hdev); conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr); - if (!conn) + if (!conn || !hci_conn_ssp_enabled(conn)) goto unlock; /* Reset the authentication requirement to unknown */ @@ -5855,7 +5867,7 @@ if (status) goto unlock; - conn = hci_conn_add(hdev, LE_LINK, bdaddr, role); + conn = hci_conn_add_unset(hdev, LE_LINK, bdaddr, role); if (!conn) { bt_dev_err(hdev, "no memory for new connection"); goto unlock; @@ -5917,17 +5929,11 @@ conn->dst_type = ev_bdaddr_type(hdev, conn->dst_type, NULL); - if (handle > HCI_CONN_HANDLE_MAX) { - bt_dev_err(hdev, "Invalid handle: 0x%4.4x > 0x%4.4x", handle, - HCI_CONN_HANDLE_MAX); - status = HCI_ERROR_INVALID_PARAMETERS; - } - /* All connection failure handling is taken care of by the * hci_conn_failed function which is triggered by the HCI * request completion callbacks used for connecting. */ - if (status) + if (status || hci_conn_set_handle(conn, handle)) goto unlock; /* Drop the connection if it has been aborted */ @@ -5951,7 +5957,6 @@ mgmt_device_connected(hdev, conn, NULL, 0); conn->sec_level = BT_SECURITY_LOW; - conn->handle = handle; conn->state = BT_CONFIG; /* Store current advertising instance as connection advertising instance @@ -6566,20 +6571,38 @@ struct hci_ev_le_pa_sync_established *ev = data; int mask = hdev->link_mode; __u8 flags = 0; + struct hci_conn *pa_sync; bt_dev_dbg(hdev, "status 0x%2.2x", ev->status); - if (ev->status) - return; - hci_dev_lock(hdev); hci_dev_clear_flag(hdev, HCI_PA_SYNC); mask |= hci_proto_connect_ind(hdev, &ev->bdaddr, ISO_LINK, &flags); - if (!(mask & HCI_LM_ACCEPT)) + if (!(mask & HCI_LM_ACCEPT)) { hci_le_pa_term_sync(hdev, ev->handle); + goto unlock; + } + + if (!(flags & HCI_PROTO_DEFER)) + goto unlock; + + if (ev->status) { + /* Add connection to indicate the failed PA sync event */ + pa_sync = hci_conn_add_unset(hdev, ISO_LINK, BDADDR_ANY, + HCI_ROLE_SLAVE); + + if (!pa_sync) + goto unlock; + + set_bit(HCI_CONN_PA_SYNC_FAILED, &pa_sync->flags); + + /* Notify iso layer */ + hci_connect_cfm(pa_sync, ev->status); + } +unlock: hci_dev_unlock(hdev); } @@ -6946,12 +6969,12 @@ cis = hci_conn_hash_lookup_handle(hdev, cis_handle); if (!cis) { - cis = hci_conn_add(hdev, ISO_LINK, &acl->dst, HCI_ROLE_SLAVE); + cis = hci_conn_add(hdev, ISO_LINK, &acl->dst, HCI_ROLE_SLAVE, + cis_handle); if (!cis) { hci_le_reject_cis(hdev, ev->cis_handle); goto unlock; } - cis->handle = cis_handle; } cis->iso_qos.ucast.cig = ev->cig_id; @@ -6968,12 +6991,20 @@ hci_dev_unlock(hdev); } +static int hci_iso_term_big_sync(struct hci_dev *hdev, void *data) +{ + u8 handle = PTR_UINT(data); + + return hci_le_terminate_big_sync(hdev, handle, + HCI_ERROR_LOCAL_HOST_TERM); +} + static void hci_le_create_big_complete_evt(struct hci_dev *hdev, void *data, struct sk_buff *skb) { struct hci_evt_le_create_big_complete *ev = data; struct hci_conn *conn; - __u8 bis_idx = 0; + __u8 i = 0; BT_DBG("%s status 0x%2.2x", hdev->name, ev->status); @@ -6991,7 +7022,9 @@ conn->iso_qos.bcast.big != ev->handle) continue; - conn->handle = __le16_to_cpu(ev->bis_handle[bis_idx++]); + if (hci_conn_set_handle(conn, + __le16_to_cpu(ev->bis_handle[i++]))) + continue; if (!ev->status) { conn->state = BT_CONNECTED; @@ -7010,16 +7043,17 @@ rcu_read_lock(); } - if (!ev->status && !bis_idx) + rcu_read_unlock(); + + if (!ev->status && !i) /* If no BISes have been connected for the BIG, * terminate. This is in case all bound connections * have been closed before the BIG creation * has completed. */ - hci_le_terminate_big_sync(hdev, ev->handle, - HCI_ERROR_LOCAL_HOST_TERM); + hci_cmd_sync_queue(hdev, hci_iso_term_big_sync, + UINT_PTR(ev->handle), NULL); - rcu_read_unlock(); hci_dev_unlock(hdev); } @@ -7028,6 +7062,7 @@ { struct hci_evt_le_big_sync_estabilished *ev = data; struct hci_conn *bis; + struct hci_conn *pa_sync; int i; bt_dev_dbg(hdev, "status 0x%2.2x", ev->status); @@ -7038,6 +7073,15 @@ hci_dev_lock(hdev); + if (!ev->status) { + pa_sync = hci_conn_hash_lookup_pa_sync_big_handle(hdev, ev->handle); + if (pa_sync) + /* Also mark the BIG sync established event on the + * associated PA sync hcon + */ + set_bit(HCI_CONN_BIG_SYNC, &pa_sync->flags); + } + for (i = 0; i < ev->num_bis; i++) { u16 handle = le16_to_cpu(ev->bis[i]); __le32 interval; @@ -7045,12 +7089,15 @@ bis = hci_conn_hash_lookup_handle(hdev, handle); if (!bis) { bis = hci_conn_add(hdev, ISO_LINK, BDADDR_ANY, - HCI_ROLE_SLAVE); + HCI_ROLE_SLAVE, handle); if (!bis) continue; - bis->handle = handle; } + if (ev->status != 0x42) + /* Mark PA sync as established */ + set_bit(HCI_CONN_PA_SYNC, &bis->flags); + bis->iso_qos.bcast.big = ev->handle; memset(&interval, 0, sizeof(interval)); memcpy(&interval, ev->latency, sizeof(ev->latency)); @@ -7087,15 +7134,42 @@ struct hci_evt_le_big_info_adv_report *ev = data; int mask = hdev->link_mode; __u8 flags = 0; + struct hci_conn *pa_sync; bt_dev_dbg(hdev, "sync_handle 0x%4.4x", le16_to_cpu(ev->sync_handle)); hci_dev_lock(hdev); mask |= hci_proto_connect_ind(hdev, BDADDR_ANY, ISO_LINK, &flags); - if (!(mask & HCI_LM_ACCEPT)) + if (!(mask & HCI_LM_ACCEPT)) { hci_le_pa_term_sync(hdev, ev->sync_handle); + goto unlock; + } + + if (!(flags & HCI_PROTO_DEFER)) + goto unlock; + + pa_sync = hci_conn_hash_lookup_pa_sync_handle + (hdev, + le16_to_cpu(ev->sync_handle)); + + if (pa_sync) + goto unlock; + /* Add connection to indicate the PA sync event */ + pa_sync = hci_conn_add_unset(hdev, ISO_LINK, BDADDR_ANY, + HCI_ROLE_SLAVE); + + if (!pa_sync) + goto unlock; + + pa_sync->sync_handle = le16_to_cpu(ev->sync_handle); + set_bit(HCI_CONN_PA_SYNC, &pa_sync->flags); + + /* Notify iso layer */ + hci_connect_cfm(pa_sync, 0x00); + +unlock: hci_dev_unlock(hdev); } diff -u linux-riscv-6.5.0/net/bluetooth/hci_sync.c linux-riscv-6.5.0/net/bluetooth/hci_sync.c --- linux-riscv-6.5.0/net/bluetooth/hci_sync.c +++ linux-riscv-6.5.0/net/bluetooth/hci_sync.c @@ -151,7 +151,7 @@ struct sk_buff *skb; int err = 0; - bt_dev_dbg(hdev, "Opcode 0x%4x", opcode); + bt_dev_dbg(hdev, "Opcode 0x%4.4x", opcode); hci_req_init(&req, hdev); @@ -247,7 +247,7 @@ skb = __hci_cmd_sync_sk(hdev, opcode, plen, param, event, timeout, sk); if (IS_ERR(skb)) { if (!event) - bt_dev_err(hdev, "Opcode 0x%4x failed: %ld", opcode, + bt_dev_err(hdev, "Opcode 0x%4.4x failed: %ld", opcode, PTR_ERR(skb)); return PTR_ERR(skb); } @@ -5291,4 +5291,26 @@ return hci_le_connect_cancel_sync(hdev, conn, reason); + if (conn->type == ISO_LINK) { + /* BLUETOOTH CORE SPECIFICATION Version 5.3 | Vol 4, Part E + * page 1857: + * + * If this command is issued for a CIS on the Central and the + * CIS is successfully terminated before being established, + * then an HCI_LE_CIS_Established event shall also be sent for + * this CIS with the Status Operation Cancelled by Host (0x44). + */ + if (test_bit(HCI_CONN_CREATE_CIS, &conn->flags)) + return hci_disconnect_sync(hdev, conn, reason); + + /* CIS with no Create CIS sent have nothing to cancel */ + if (bacmp(&conn->dst, BDADDR_ANY)) + return HCI_ERROR_LOCAL_HOST_TERM; + + /* There is no way to cancel a BIS without terminating the BIG + * which is done later on connection cleanup. + */ + return 0; + } + if (hdev->hci_ver < BLUETOOTH_VER_1_2) return 0; @@ -5316,11 +5338,27 @@ sizeof(cp), &cp, HCI_CMD_TIMEOUT); } +static int hci_le_reject_cis_sync(struct hci_dev *hdev, struct hci_conn *conn, + u8 reason) +{ + struct hci_cp_le_reject_cis cp; + + memset(&cp, 0, sizeof(cp)); + cp.handle = cpu_to_le16(conn->handle); + cp.reason = reason; + + return __hci_cmd_sync_status(hdev, HCI_OP_LE_REJECT_CIS, + sizeof(cp), &cp, HCI_CMD_TIMEOUT); +} + static int hci_reject_conn_sync(struct hci_dev *hdev, struct hci_conn *conn, u8 reason) { struct hci_cp_reject_conn_req cp; + if (conn->type == ISO_LINK) + return hci_le_reject_cis_sync(hdev, conn, reason); + if (conn->type == SCO_LINK || conn->type == ESCO_LINK) return hci_reject_sco_sync(hdev, conn, reason); @@ -5336,6 +5374,7 @@ { int err = 0; u16 handle = conn->handle; + bool disconnect = false; struct hci_conn *c; switch (conn->state) { @@ -5350,27 +5389,31 @@ err = hci_reject_conn_sync(hdev, conn, reason); break; case BT_OPEN: - /* Cleanup bises that failed to be established */ - if (test_and_clear_bit(HCI_CONN_BIG_SYNC_FAILED, &conn->flags)) { - hci_dev_lock(hdev); + hci_dev_lock(hdev); + + /* Cleanup bis or pa sync connections */ + if (test_and_clear_bit(HCI_CONN_BIG_SYNC_FAILED, &conn->flags) || + test_and_clear_bit(HCI_CONN_PA_SYNC_FAILED, &conn->flags)) { hci_conn_failed(conn, reason); - hci_dev_unlock(hdev); + } else if (test_bit(HCI_CONN_PA_SYNC, &conn->flags) || + test_bit(HCI_CONN_BIG_SYNC, &conn->flags)) { + conn->state = BT_CLOSED; + hci_disconn_cfm(conn, reason); + hci_conn_del(conn); } - break; - default: - hci_dev_lock(hdev); - conn->state = BT_CLOSED; - hci_disconn_cfm(conn, reason); - hci_conn_del(conn); + hci_dev_unlock(hdev); return 0; + case BT_BOUND: + break; + default: + disconnect = true; + break; } hci_dev_lock(hdev); - /* Check if the connection hasn't been cleanup while waiting - * commands to complete. - */ + /* Check if the connection has been cleaned up concurrently */ c = hci_conn_hash_lookup_handle(hdev, handle); if (!c || c != conn) { err = 0; @@ -5382,7 +5425,13 @@ * or in case of LE it was still scanning so it can be cleanup * safely. */ - hci_conn_failed(conn, reason); + if (disconnect) { + conn->state = BT_CLOSED; + hci_disconn_cfm(conn, reason); + hci_conn_del(conn); + } else { + hci_conn_failed(conn, reason); + } unlock: hci_dev_unlock(hdev); @@ -6511,7 +6560,7 @@ static int _update_adv_data_sync(struct hci_dev *hdev, void *data) { - u8 instance = PTR_ERR(data); + u8 instance = PTR_UINT(data); return hci_update_adv_data_sync(hdev, instance); } @@ -6521,3 +6570,3 @@ return hci_cmd_sync_queue(hdev, _update_adv_data_sync, - ERR_PTR(instance), NULL); + UINT_PTR(instance), NULL); } diff -u linux-riscv-6.5.0/net/bluetooth/iso.c linux-riscv-6.5.0/net/bluetooth/iso.c --- linux-riscv-6.5.0/net/bluetooth/iso.c +++ linux-riscv-6.5.0/net/bluetooth/iso.c @@ -51,6 +51,7 @@ /* iso_pinfo flags values */ enum { BT_SK_BIG_SYNC, + BT_SK_PA_SYNC, }; struct iso_pinfo { @@ -75,6 +76,9 @@ static bool check_ucast_qos(struct bt_iso_qos *qos); static bool check_bcast_qos(struct bt_iso_qos *qos); +static bool iso_match_sid(struct sock *sk, void *data); +static bool iso_match_sync_handle(struct sock *sk, void *data); +static void iso_sock_disconn(struct sock *sk); /* ---- ISO timers ---- */ #define ISO_CONN_TIMEOUT (HZ * 40) @@ -601,6 +605,15 @@ iso_sock_kill(sk); } + /* If listening socket stands for a PA sync connection, + * properly disconnect the hcon and socket. + */ + if (iso_pi(parent)->conn && iso_pi(parent)->conn->hcon && + test_bit(HCI_CONN_PA_SYNC, &iso_pi(parent)->conn->hcon->flags)) { + iso_sock_disconn(parent); + return; + } + parent->sk_state = BT_CLOSED; sock_set_flag(parent, SOCK_ZAPPED); } @@ -622,16 +635,14 @@ sock_put(sk); } -static void iso_conn_defer_reject(struct hci_conn *conn) +static void iso_sock_disconn(struct sock *sk) { - struct hci_cp_le_reject_cis cp; - - BT_DBG("conn %p", conn); - - memset(&cp, 0, sizeof(cp)); - cp.handle = cpu_to_le16(conn->handle); - cp.reason = HCI_ERROR_REJ_BAD_ADDR; - hci_send_cmd(conn->hdev, HCI_OP_LE_REJECT_CIS, sizeof(cp), &cp); + sk->sk_state = BT_DISCONN; + iso_sock_set_timer(sk, ISO_DISCONN_TIMEOUT); + iso_conn_lock(iso_pi(sk)->conn); + hci_conn_drop(iso_pi(sk)->conn->hcon); + iso_pi(sk)->conn->hcon = NULL; + iso_conn_unlock(iso_pi(sk)->conn); } static void __iso_sock_close(struct sock *sk) @@ -645,22 +656,19 @@ case BT_CONNECTED: case BT_CONFIG: - if (iso_pi(sk)->conn->hcon) { - sk->sk_state = BT_DISCONN; - iso_sock_set_timer(sk, ISO_DISCONN_TIMEOUT); - iso_conn_lock(iso_pi(sk)->conn); - hci_conn_drop(iso_pi(sk)->conn->hcon); - iso_pi(sk)->conn->hcon = NULL; - iso_conn_unlock(iso_pi(sk)->conn); - } else { + if (iso_pi(sk)->conn->hcon) + iso_sock_disconn(sk); + else iso_chan_del(sk, ECONNRESET); - } break; case BT_CONNECT2: - if (iso_pi(sk)->conn->hcon) - iso_conn_defer_reject(iso_pi(sk)->conn->hcon); - iso_chan_del(sk, ECONNRESET); + if (iso_pi(sk)->conn->hcon && + (test_bit(HCI_CONN_PA_SYNC, &iso_pi(sk)->conn->hcon->flags) || + test_bit(HCI_CONN_PA_SYNC_FAILED, &iso_pi(sk)->conn->hcon->flags))) + iso_sock_disconn(sk); + else + iso_chan_del(sk, ECONNRESET); break; case BT_CONNECT: /* In case of DEFER_SETUP the hcon would be bound to CIG which @@ -1176,6 +1184,29 @@ hci_send_cmd(hdev, HCI_OP_LE_ACCEPT_CIS, sizeof(cp), &cp); } +static void iso_conn_big_sync(struct sock *sk) +{ + int err; + struct hci_dev *hdev; + + hdev = hci_get_route(&iso_pi(sk)->dst, &iso_pi(sk)->src, + iso_pi(sk)->src_type); + + if (!hdev) + return; + + if (!test_and_set_bit(BT_SK_BIG_SYNC, &iso_pi(sk)->flags)) { + err = hci_le_big_create_sync(hdev, iso_pi(sk)->conn->hcon, + &iso_pi(sk)->qos, + iso_pi(sk)->sync_handle, + iso_pi(sk)->bc_num_bis, + iso_pi(sk)->bc_bis); + if (err) + bt_dev_err(hdev, "hci_le_big_create_sync: %d", + err); + } +} + static int iso_sock_recvmsg(struct socket *sock, struct msghdr *msg, size_t len, int flags) { @@ -1188,8 +1219,14 @@ lock_sock(sk); switch (sk->sk_state) { case BT_CONNECT2: - iso_conn_defer_accept(pi->conn->hcon); - sk->sk_state = BT_CONFIG; + if (pi->conn->hcon && + test_bit(HCI_CONN_PA_SYNC, &pi->conn->hcon->flags)) { + iso_conn_big_sync(sk); + sk->sk_state = BT_LISTEN; + } else { + iso_conn_defer_accept(pi->conn->hcon); + sk->sk_state = BT_CONFIG; + } release_sock(sk); return 0; case BT_CONNECT: @@ -1532,11 +1569,18 @@ return ev->handle == iso_pi(sk)->qos.bcast.big; } +static bool iso_match_pa_sync_flag(struct sock *sk, void *data) +{ + return test_bit(BT_SK_PA_SYNC, &iso_pi(sk)->flags); +} + static void iso_conn_ready(struct iso_conn *conn) { - struct sock *parent; + struct sock *parent = NULL; struct sock *sk = conn->sk; - struct hci_ev_le_big_sync_estabilished *ev; + struct hci_ev_le_big_sync_estabilished *ev = NULL; + struct hci_ev_le_pa_sync_established *ev2 = NULL; + struct hci_evt_le_big_info_adv_report *ev3 = NULL; struct hci_conn *hcon; BT_DBG("conn %p", conn); @@ -1548,15 +1592,38 @@ if (!hcon) return; - ev = hci_recv_event_data(hcon->hdev, - HCI_EVT_LE_BIG_SYNC_ESTABILISHED); - if (ev) + if (test_bit(HCI_CONN_BIG_SYNC, &hcon->flags) || + test_bit(HCI_CONN_BIG_SYNC_FAILED, &hcon->flags)) { + ev = hci_recv_event_data(hcon->hdev, + HCI_EVT_LE_BIG_SYNC_ESTABILISHED); + + /* Get reference to PA sync parent socket, if it exists */ parent = iso_get_sock_listen(&hcon->src, &hcon->dst, - iso_match_big, ev); - else + iso_match_pa_sync_flag, NULL); + if (!parent && ev) + parent = iso_get_sock_listen(&hcon->src, + &hcon->dst, + iso_match_big, ev); + } else if (test_bit(HCI_CONN_PA_SYNC_FAILED, &hcon->flags)) { + ev2 = hci_recv_event_data(hcon->hdev, + HCI_EV_LE_PA_SYNC_ESTABLISHED); + if (ev2) + parent = iso_get_sock_listen(&hcon->src, + &hcon->dst, + iso_match_sid, ev2); + } else if (test_bit(HCI_CONN_PA_SYNC, &hcon->flags)) { + ev3 = hci_recv_event_data(hcon->hdev, + HCI_EVT_LE_BIG_INFO_ADV_REPORT); + if (ev3) + parent = iso_get_sock_listen(&hcon->src, + &hcon->dst, + iso_match_sync_handle, ev3); + } + + if (!parent) parent = iso_get_sock_listen(&hcon->src, - BDADDR_ANY, NULL, NULL); + BDADDR_ANY, NULL, NULL); if (!parent) return; @@ -1573,11 +1640,17 @@ iso_sock_init(sk, parent); bacpy(&iso_pi(sk)->src, &hcon->src); - iso_pi(sk)->src_type = hcon->src_type; + + /* Convert from HCI to three-value type */ + if (hcon->src_type == ADDR_LE_DEV_PUBLIC) + iso_pi(sk)->src_type = BDADDR_LE_PUBLIC; + else + iso_pi(sk)->src_type = BDADDR_LE_RANDOM; /* If hcon has no destination address (BDADDR_ANY) it means it - * was created by HCI_EV_LE_BIG_SYNC_ESTABILISHED so we need to - * initialize using the parent socket destination address. + * was created by HCI_EV_LE_BIG_SYNC_ESTABILISHED or + * HCI_EV_LE_PA_SYNC_ESTABLISHED so we need to initialize using + * the parent socket destination address. */ if (!bacmp(&hcon->dst, BDADDR_ANY)) { bacpy(&hcon->dst, &iso_pi(parent)->dst); @@ -1585,13 +1658,23 @@ hcon->sync_handle = iso_pi(parent)->sync_handle; } + if (ev3) { + iso_pi(sk)->qos = iso_pi(parent)->qos; + iso_pi(sk)->qos.bcast.encryption = ev3->encryption; + hcon->iso_qos = iso_pi(sk)->qos; + iso_pi(sk)->bc_num_bis = iso_pi(parent)->bc_num_bis; + memcpy(iso_pi(sk)->bc_bis, iso_pi(parent)->bc_bis, ISO_MAX_NUM_BIS); + set_bit(BT_SK_PA_SYNC, &iso_pi(sk)->flags); + } + bacpy(&iso_pi(sk)->dst, &hcon->dst); iso_pi(sk)->dst_type = hcon->dst_type; hci_conn_hold(hcon); iso_chan_add(conn, sk, parent); - if (ev && ((struct hci_evt_le_big_sync_estabilished *)ev)->status) { + if ((ev && ((struct hci_evt_le_big_sync_estabilished *)ev)->status) || + (ev2 && ev2->status)) { /* Trigger error signal on child socket */ sk->sk_err = ECONNREFUSED; sk->sk_error_report(sk); @@ -1649,7 +1732,7 @@ if (ev1) { sk = iso_get_sock_listen(&hdev->bdaddr, bdaddr, iso_match_sid, ev1); - if (sk) + if (sk && !ev1->status) iso_pi(sk)->sync_handle = le16_to_cpu(ev1->handle); goto done; @@ -1657,16 +1740,21 @@ ev2 = hci_recv_event_data(hdev, HCI_EVT_LE_BIG_INFO_ADV_REPORT); if (ev2) { + /* Try to get PA sync listening socket, if it exists */ sk = iso_get_sock_listen(&hdev->bdaddr, bdaddr, - iso_match_sync_handle, ev2); + iso_match_pa_sync_flag, NULL); + if (!sk) + sk = iso_get_sock_listen(&hdev->bdaddr, bdaddr, + iso_match_sync_handle, ev2); if (sk) { int err; if (ev2->num_bis < iso_pi(sk)->bc_num_bis) iso_pi(sk)->bc_num_bis = ev2->num_bis; - if (!test_and_set_bit(BT_SK_BIG_SYNC, &iso_pi(sk)->flags)) { - err = hci_le_big_create_sync(hdev, + if (!test_bit(BT_SK_DEFER_SETUP, &bt_sk(sk)->flags) && + !test_and_set_bit(BT_SK_BIG_SYNC, &iso_pi(sk)->flags)) { + err = hci_le_big_create_sync(hdev, NULL, &iso_pi(sk)->qos, iso_pi(sk)->sync_handle, iso_pi(sk)->bc_num_bis, @@ -1718,12 +1806,13 @@ BT_DBG("hcon %p bdaddr %pMR status %d", hcon, &hcon->dst, status); - /* Similar to the success case, if HCI_CONN_BIG_SYNC_FAILED is set, - * queue the failed bis connection into the accept queue of the - * listening socket and wake up userspace, to inform the user about - * the BIG sync failed event. + /* Similar to the success case, if HCI_CONN_BIG_SYNC_FAILED or + * HCI_CONN_PA_SYNC_FAILED is set, queue the failed connection + * into the accept queue of the listening socket and wake up + * userspace, to inform the user about the event. */ - if (!status || test_bit(HCI_CONN_BIG_SYNC_FAILED, &hcon->flags)) { + if (!status || test_bit(HCI_CONN_BIG_SYNC_FAILED, &hcon->flags) || + test_bit(HCI_CONN_PA_SYNC_FAILED, &hcon->flags)) { struct iso_conn *conn; conn = iso_conn_add(hcon); diff -u linux-riscv-6.5.0/net/core/dev.c linux-riscv-6.5.0/net/core/dev.c --- linux-riscv-6.5.0/net/core/dev.c +++ linux-riscv-6.5.0/net/core/dev.c @@ -343,7 +343,6 @@ static void __netdev_name_node_alt_destroy(struct netdev_name_node *name_node) { list_del(&name_node->list); - netdev_name_node_del(name_node); kfree(name_node->name); netdev_name_node_free(name_node); } @@ -362,6 +361,8 @@ if (name_node == dev->name_node || name_node->dev != dev) return -EINVAL; + netdev_name_node_del(name_node); + synchronize_rcu(); __netdev_name_node_alt_destroy(name_node); return 0; @@ -378,6 +379,7 @@ /* Device list insertion */ static void list_netdevice(struct net_device *dev) { + struct netdev_name_node *name_node; struct net *net = dev_net(dev); ASSERT_RTNL(); @@ -389,6 +391,9 @@ dev_index_hash(net, dev->ifindex)); write_unlock(&dev_base_lock); + netdev_for_each_altname(dev, name_node) + netdev_name_node_add(net, name_node); + dev_base_seq_inc(net); } @@ -397,8 +402,13 @@ */ static void unlist_netdevice(struct net_device *dev, bool lock) { + struct netdev_name_node *name_node; + ASSERT_RTNL(); + netdev_for_each_altname(dev, name_node) + netdev_name_node_del(name_node); + /* Unlink dev from the device chain */ if (lock) write_lock(&dev_base_lock); @@ -1078,7 +1088,8 @@ for_each_netdev(net, d) { struct netdev_name_node *name_node; - list_for_each_entry(name_node, &d->name_node->list, list) { + + netdev_for_each_altname(d, name_node) { if (!sscanf(name_node->name, name, &i)) continue; if (i < 0 || i >= max_netdevices) @@ -1115,6 +1126,26 @@ return -ENFILE; } +static int dev_prep_valid_name(struct net *net, struct net_device *dev, + const char *want_name, char *out_name) +{ + int ret; + + if (!dev_valid_name(want_name)) + return -EINVAL; + + if (strchr(want_name, '%')) { + ret = __dev_alloc_name(net, want_name, out_name); + return ret < 0 ? ret : 0; + } else if (netdev_name_in_use(net, want_name)) { + return -EEXIST; + } else if (out_name != want_name) { + strscpy(out_name, want_name, IFNAMSIZ); + } + + return 0; +} + static int dev_alloc_name_ns(struct net *net, struct net_device *dev, const char *name) @@ -1152,19 +1183,13 @@ static int dev_get_valid_name(struct net *net, struct net_device *dev, const char *name) { - BUG_ON(!net); - - if (!dev_valid_name(name)) - return -EINVAL; - - if (strchr(name, '%')) - return dev_alloc_name_ns(net, dev, name); - else if (netdev_name_in_use(net, name)) - return -EEXIST; - else if (dev->name != name) - strscpy(dev->name, name, IFNAMSIZ); + char buf[IFNAMSIZ]; + int ret; - return 0; + ret = dev_prep_valid_name(net, dev, name, buf); + if (ret >= 0) + strscpy(dev->name, buf, IFNAMSIZ); + return ret; } /** @@ -9939,6 +9964,54 @@ } EXPORT_SYMBOL(netif_tx_stop_all_queues); +static int netdev_do_alloc_pcpu_stats(struct net_device *dev) +{ + void __percpu *v; + + /* Drivers implementing ndo_get_peer_dev must support tstat + * accounting, so that skb_do_redirect() can bump the dev's + * RX stats upon network namespace switch. + */ + if (dev->netdev_ops->ndo_get_peer_dev && + dev->pcpu_stat_type != NETDEV_PCPU_STAT_TSTATS) + return -EOPNOTSUPP; + + switch (dev->pcpu_stat_type) { + case NETDEV_PCPU_STAT_NONE: + return 0; + case NETDEV_PCPU_STAT_LSTATS: + v = dev->lstats = netdev_alloc_pcpu_stats(struct pcpu_lstats); + break; + case NETDEV_PCPU_STAT_TSTATS: + v = dev->tstats = netdev_alloc_pcpu_stats(struct pcpu_sw_netstats); + break; + case NETDEV_PCPU_STAT_DSTATS: + v = dev->dstats = netdev_alloc_pcpu_stats(struct pcpu_dstats); + break; + default: + return -EINVAL; + } + + return v ? 0 : -ENOMEM; +} + +static void netdev_do_free_pcpu_stats(struct net_device *dev) +{ + switch (dev->pcpu_stat_type) { + case NETDEV_PCPU_STAT_NONE: + return; + case NETDEV_PCPU_STAT_LSTATS: + free_percpu(dev->lstats); + break; + case NETDEV_PCPU_STAT_TSTATS: + free_percpu(dev->tstats); + break; + case NETDEV_PCPU_STAT_DSTATS: + free_percpu(dev->dstats); + break; + } +} + /** * register_netdevice() - register a network device * @dev: device to register @@ -9999,11 +10072,15 @@ goto err_uninit; } + ret = netdev_do_alloc_pcpu_stats(dev); + if (ret) + goto err_uninit; + ret = -EBUSY; if (!dev->ifindex) dev->ifindex = dev_new_index(net); else if (__dev_get_by_index(net, dev->ifindex)) - goto err_uninit; + goto err_free_pcpu; /* Transfer changeable features to wanted_features and enable * software offloads (GSO and GRO). @@ -10106,6 +10183,8 @@ err_uninit_notify: call_netdevice_notifiers(NETDEV_PRE_UNINIT, dev); +err_free_pcpu: + netdev_do_free_pcpu_stats(dev); err_uninit: if (dev->netdev_ops->ndo_uninit) dev->netdev_ops->ndo_uninit(dev); @@ -10358,6 +10437,7 @@ WARN_ON(rcu_access_pointer(dev->ip_ptr)); WARN_ON(rcu_access_pointer(dev->ip6_ptr)); + netdev_do_free_pcpu_stats(dev); if (dev->priv_destructor) dev->priv_destructor(dev); if (dev->needs_free_netdev) @@ -10949,7 +11029,9 @@ int __dev_change_net_namespace(struct net_device *dev, struct net *net, const char *pat, int new_ifindex) { + struct netdev_name_node *name_node; struct net *net_old = dev_net(dev); + char new_name[IFNAMSIZ] = {}; int err, new_nsid; ASSERT_RTNL(); @@ -10976,10 +11058,15 @@ /* We get here if we can't use the current device name */ if (!pat) goto out; - err = dev_get_valid_name(net, dev, pat); + err = dev_prep_valid_name(net, dev, pat, new_name); if (err < 0) goto out; } + /* Check that none of the altnames conflicts. */ + err = -EEXIST; + netdev_for_each_altname(dev, name_node) + if (netdev_name_in_use(net, name_node->name)) + goto out; /* Check that new_ifindex isn't used yet. */ err = -EBUSY; @@ -11044,6 +11131,9 @@ kobject_uevent(&dev->dev.kobj, KOBJ_ADD); netdev_adjacent_add_links(dev); + if (new_name[0]) /* Rename the netdev to prepared name */ + strscpy(dev->name, new_name, IFNAMSIZ); + /* Fixup kobjects */ err = device_rename(&dev->dev, dev->name); WARN_ON(err); diff -u linux-riscv-6.5.0/net/core/filter.c linux-riscv-6.5.0/net/core/filter.c --- linux-riscv-6.5.0/net/core/filter.c +++ linux-riscv-6.5.0/net/core/filter.c @@ -2489,6 +2489,7 @@ net_eq(net, dev_net(dev)))) goto out_drop; skb->dev = dev; + dev_sw_netstats_rx_add(dev, skb->len); return -EAGAIN; } return flags & BPF_F_NEIGH ? @@ -2590,6 +2591,22 @@ return 0; } +static void sk_msg_reset_curr(struct sk_msg *msg) +{ + u32 i = msg->sg.start; + u32 len = 0; + + do { + len += sk_msg_elem(msg, i)->length; + sk_msg_iter_var_next(i); + if (len >= msg->sg.size) + break; + } while (i != msg->sg.end); + + msg->sg.curr = i; + msg->sg.copybreak = 0; +} + static const struct bpf_func_proto bpf_msg_cork_bytes_proto = { .func = bpf_msg_cork_bytes, .gpl_only = false, @@ -2709,6 +2726,7 @@ msg->sg.end - shift + NR_MSG_FRAG_IDS : msg->sg.end - shift; out: + sk_msg_reset_curr(msg); msg->data = sg_virt(&msg->sg.data[first_sge]) + start - offset; msg->data_end = msg->data + bytes; return 0; @@ -2845,6 +2863,7 @@ msg->sg.data[new] = rsge; } + sk_msg_reset_curr(msg); sk_msg_compute_data_pointers(msg); return 0; } @@ -3013,6 +3032,7 @@ sk_mem_uncharge(msg->sk, len - pop); msg->sg.size -= (len - pop); + sk_msg_reset_curr(msg); sk_msg_compute_data_pointers(msg); return 0; } diff -u linux-riscv-6.5.0/net/core/neighbour.c linux-riscv-6.5.0/net/core/neighbour.c --- linux-riscv-6.5.0/net/core/neighbour.c +++ linux-riscv-6.5.0/net/core/neighbour.c @@ -251,7 +251,8 @@ static int neigh_forced_gc(struct neigh_table *tbl) { - int max_clean = atomic_read(&tbl->gc_entries) - tbl->gc_thresh2; + int max_clean = atomic_read(&tbl->gc_entries) - + READ_ONCE(tbl->gc_thresh2); unsigned long tref = jiffies - 5 * HZ; struct neighbour *n, *tmp; int shrunk = 0; @@ -280,7 +281,7 @@ } } - tbl->last_flush = jiffies; + WRITE_ONCE(tbl->last_flush, jiffies); write_unlock_bh(&tbl->lock); @@ -464,17 +465,17 @@ { struct neighbour *n = NULL; unsigned long now = jiffies; - int entries; + int entries, gc_thresh3; if (exempt_from_gc) goto do_alloc; entries = atomic_inc_return(&tbl->gc_entries) - 1; - if (entries >= tbl->gc_thresh3 || - (entries >= tbl->gc_thresh2 && - time_after(now, tbl->last_flush + 5 * HZ))) { - if (!neigh_forced_gc(tbl) && - entries >= tbl->gc_thresh3) { + gc_thresh3 = READ_ONCE(tbl->gc_thresh3); + if (entries >= gc_thresh3 || + (entries >= READ_ONCE(tbl->gc_thresh2) && + time_after(now, READ_ONCE(tbl->last_flush) + 5 * HZ))) { + if (!neigh_forced_gc(tbl) && entries >= gc_thresh3) { net_info_ratelimited("%s: neighbor table overflow!\n", tbl->id); NEIGH_CACHE_STAT_INC(tbl, table_fulls); @@ -955,13 +956,14 @@ if (time_after(jiffies, tbl->last_rand + 300 * HZ)) { struct neigh_parms *p; - tbl->last_rand = jiffies; + + WRITE_ONCE(tbl->last_rand, jiffies); list_for_each_entry(p, &tbl->parms_list, list) p->reachable_time = neigh_rand_reach_time(NEIGH_VAR(p, BASE_REACHABLE_TIME)); } - if (atomic_read(&tbl->entries) < tbl->gc_thresh1) + if (atomic_read(&tbl->entries) < READ_ONCE(tbl->gc_thresh1)) goto out; for (i = 0 ; i < (1 << nht->hash_shift); i++) { @@ -2167,15 +2169,16 @@ ndtmsg->ndtm_pad2 = 0; if (nla_put_string(skb, NDTA_NAME, tbl->id) || - nla_put_msecs(skb, NDTA_GC_INTERVAL, tbl->gc_interval, NDTA_PAD) || - nla_put_u32(skb, NDTA_THRESH1, tbl->gc_thresh1) || - nla_put_u32(skb, NDTA_THRESH2, tbl->gc_thresh2) || - nla_put_u32(skb, NDTA_THRESH3, tbl->gc_thresh3)) + nla_put_msecs(skb, NDTA_GC_INTERVAL, READ_ONCE(tbl->gc_interval), + NDTA_PAD) || + nla_put_u32(skb, NDTA_THRESH1, READ_ONCE(tbl->gc_thresh1)) || + nla_put_u32(skb, NDTA_THRESH2, READ_ONCE(tbl->gc_thresh2)) || + nla_put_u32(skb, NDTA_THRESH3, READ_ONCE(tbl->gc_thresh3))) goto nla_put_failure; { unsigned long now = jiffies; - long flush_delta = now - tbl->last_flush; - long rand_delta = now - tbl->last_rand; + long flush_delta = now - READ_ONCE(tbl->last_flush); + long rand_delta = now - READ_ONCE(tbl->last_rand); struct neigh_hash_table *nht; struct ndt_config ndc = { .ndtc_key_len = tbl->key_len, @@ -2183,7 +2186,7 @@ .ndtc_entries = atomic_read(&tbl->entries), .ndtc_last_flush = jiffies_to_msecs(flush_delta), .ndtc_last_rand = jiffies_to_msecs(rand_delta), - .ndtc_proxy_qlen = tbl->proxy_queue.qlen, + .ndtc_proxy_qlen = READ_ONCE(tbl->proxy_queue.qlen), }; rcu_read_lock(); @@ -2206,17 +2209,17 @@ struct neigh_statistics *st; st = per_cpu_ptr(tbl->stats, cpu); - ndst.ndts_allocs += st->allocs; - ndst.ndts_destroys += st->destroys; - ndst.ndts_hash_grows += st->hash_grows; - ndst.ndts_res_failed += st->res_failed; - ndst.ndts_lookups += st->lookups; - ndst.ndts_hits += st->hits; - ndst.ndts_rcv_probes_mcast += st->rcv_probes_mcast; - ndst.ndts_rcv_probes_ucast += st->rcv_probes_ucast; - ndst.ndts_periodic_gc_runs += st->periodic_gc_runs; - ndst.ndts_forced_gc_runs += st->forced_gc_runs; - ndst.ndts_table_fulls += st->table_fulls; + ndst.ndts_allocs += READ_ONCE(st->allocs); + ndst.ndts_destroys += READ_ONCE(st->destroys); + ndst.ndts_hash_grows += READ_ONCE(st->hash_grows); + ndst.ndts_res_failed += READ_ONCE(st->res_failed); + ndst.ndts_lookups += READ_ONCE(st->lookups); + ndst.ndts_hits += READ_ONCE(st->hits); + ndst.ndts_rcv_probes_mcast += READ_ONCE(st->rcv_probes_mcast); + ndst.ndts_rcv_probes_ucast += READ_ONCE(st->rcv_probes_ucast); + ndst.ndts_periodic_gc_runs += READ_ONCE(st->periodic_gc_runs); + ndst.ndts_forced_gc_runs += READ_ONCE(st->forced_gc_runs); + ndst.ndts_table_fulls += READ_ONCE(st->table_fulls); } if (nla_put_64bit(skb, NDTA_STATS, sizeof(ndst), &ndst, @@ -2445,16 +2448,16 @@ goto errout_tbl_lock; if (tb[NDTA_THRESH1]) - tbl->gc_thresh1 = nla_get_u32(tb[NDTA_THRESH1]); + WRITE_ONCE(tbl->gc_thresh1, nla_get_u32(tb[NDTA_THRESH1])); if (tb[NDTA_THRESH2]) - tbl->gc_thresh2 = nla_get_u32(tb[NDTA_THRESH2]); + WRITE_ONCE(tbl->gc_thresh2, nla_get_u32(tb[NDTA_THRESH2])); if (tb[NDTA_THRESH3]) - tbl->gc_thresh3 = nla_get_u32(tb[NDTA_THRESH3]); + WRITE_ONCE(tbl->gc_thresh3, nla_get_u32(tb[NDTA_THRESH3])); if (tb[NDTA_GC_INTERVAL]) - tbl->gc_interval = nla_get_msecs(tb[NDTA_GC_INTERVAL]); + WRITE_ONCE(tbl->gc_interval, nla_get_msecs(tb[NDTA_GC_INTERVAL])); err = 0; diff -u linux-riscv-6.5.0/net/core/skbuff.c linux-riscv-6.5.0/net/core/skbuff.c --- linux-riscv-6.5.0/net/core/skbuff.c +++ linux-riscv-6.5.0/net/core/skbuff.c @@ -4185,6 +4185,7 @@ unsigned int skb_find_text(struct sk_buff *skb, unsigned int from, unsigned int to, struct ts_config *config) { + unsigned int patlen = config->ops->get_pattern_len(config); struct ts_state state; unsigned int ret; @@ -4196,7 +4197,7 @@ skb_prepare_seq_read(skb, from, to, TS_SKB_CB(&state)); ret = textsearch_find(config, &state); - return (ret <= to - from ? ret : UINT_MAX); + return (ret + patlen <= to - from ? ret : UINT_MAX); } EXPORT_SYMBOL(skb_find_text); diff -u linux-riscv-6.5.0/net/core/skmsg.c linux-riscv-6.5.0/net/core/skmsg.c --- linux-riscv-6.5.0/net/core/skmsg.c +++ linux-riscv-6.5.0/net/core/skmsg.c @@ -826,6 +826,8 @@ if (psock->sk_redir) sock_put(psock->sk_redir); + if (psock->sk_pair) + sock_put(psock->sk_pair); sock_put(psock->sk); kfree(psock); } diff -u linux-riscv-6.5.0/net/core/sock.c linux-riscv-6.5.0/net/core/sock.c --- linux-riscv-6.5.0/net/core/sock.c +++ linux-riscv-6.5.0/net/core/sock.c @@ -600,7 +600,7 @@ INDIRECT_CALL_INET(dst->ops->check, ip6_dst_check, ipv4_dst_check, dst, cookie) == NULL) { sk_tx_queue_clear(sk); - sk->sk_dst_pending_confirm = 0; + WRITE_ONCE(sk->sk_dst_pending_confirm, 0); RCU_INIT_POINTER(sk->sk_dst_cache, NULL); dst_release(dst); return NULL; diff -u linux-riscv-6.5.0/net/dccp/ipv4.c linux-riscv-6.5.0/net/dccp/ipv4.c --- linux-riscv-6.5.0/net/dccp/ipv4.c +++ linux-riscv-6.5.0/net/dccp/ipv4.c @@ -630,9 +630,6 @@ if (dccp_parse_options(sk, dreq, skb)) goto drop_and_free; - if (security_inet_conn_request(sk, skb, req)) - goto drop_and_free; - ireq = inet_rsk(req); sk_rcv_saddr_set(req_to_sk(req), ip_hdr(skb)->daddr); sk_daddr_set(req_to_sk(req), ip_hdr(skb)->saddr); @@ -640,6 +637,9 @@ ireq->ireq_family = AF_INET; ireq->ir_iif = READ_ONCE(sk->sk_bound_dev_if); + if (security_inet_conn_request(sk, skb, req)) + goto drop_and_free; + /* * Step 3: Process LISTEN state * diff -u linux-riscv-6.5.0/net/dccp/ipv6.c linux-riscv-6.5.0/net/dccp/ipv6.c --- linux-riscv-6.5.0/net/dccp/ipv6.c +++ linux-riscv-6.5.0/net/dccp/ipv6.c @@ -360,15 +360,15 @@ if (dccp_parse_options(sk, dreq, skb)) goto drop_and_free; - if (security_inet_conn_request(sk, skb, req)) - goto drop_and_free; - ireq = inet_rsk(req); ireq->ir_v6_rmt_addr = ipv6_hdr(skb)->saddr; ireq->ir_v6_loc_addr = ipv6_hdr(skb)->daddr; ireq->ireq_family = AF_INET6; ireq->ir_mark = inet_request_mark(sk, skb); + if (security_inet_conn_request(sk, skb, req)) + goto drop_and_free; + if (ipv6_opt_accepted(sk, skb, IP6CB(skb)) || np->rxopt.bits.rxinfo || np->rxopt.bits.rxoinfo || np->rxopt.bits.rxhlim || np->rxopt.bits.rxohlim) { diff -u linux-riscv-6.5.0/net/handshake/netlink.c linux-riscv-6.5.0/net/handshake/netlink.c --- linux-riscv-6.5.0/net/handshake/netlink.c +++ linux-riscv-6.5.0/net/handshake/netlink.c @@ -87,29 +87,6 @@ } EXPORT_SYMBOL(handshake_genl_put); -/* - * dup() a kernel socket for use as a user space file descriptor - * in the current process. The kernel socket must have an - * instatiated struct file. - * - * Implicit argument: "current()" - */ -static int handshake_dup(struct socket *sock) -{ - struct file *file; - int newfd; - - file = get_file(sock->file); - newfd = get_unused_fd_flags(O_CLOEXEC); - if (newfd < 0) { - fput(file); - return newfd; - } - - fd_install(newfd, file); - return newfd; -} - int handshake_nl_accept_doit(struct sk_buff *skb, struct genl_info *info) { struct net *net = sock_net(skb->sk); @@ -133,17 +110,20 @@ goto out_status; sock = req->hr_sk->sk_socket; - fd = handshake_dup(sock); + fd = get_unused_fd_flags(O_CLOEXEC); if (fd < 0) { err = fd; goto out_complete; } + err = req->hr_proto->hp_accept(req, info, fd); if (err) { - fput(sock->file); + put_unused_fd(fd); goto out_complete; } + fd_install(fd, get_file(sock->file)); + trace_handshake_cmd_accept(net, req, req->hr_sk, fd); return 0; diff -u linux-riscv-6.5.0/net/hsr/hsr_forward.c linux-riscv-6.5.0/net/hsr/hsr_forward.c --- linux-riscv-6.5.0/net/hsr/hsr_forward.c +++ linux-riscv-6.5.0/net/hsr/hsr_forward.c @@ -342,9 +342,7 @@ skb = skb_copy_expand(frame->skb_std, 0, skb_tailroom(frame->skb_std) + HSR_HLEN, GFP_ATOMIC); - prp_fill_rct(skb, frame, port); - - return skb; + return prp_fill_rct(skb, frame, port); } static void hsr_deliver_master(struct sk_buff *skb, struct net_device *dev, diff -u linux-riscv-6.5.0/net/ipv4/fib_semantics.c linux-riscv-6.5.0/net/ipv4/fib_semantics.c --- linux-riscv-6.5.0/net/ipv4/fib_semantics.c +++ linux-riscv-6.5.0/net/ipv4/fib_semantics.c @@ -1325,15 +1325,18 @@ unsigned char scope) { struct fib_nh *nh; + __be32 saddr; if (nhc->nhc_family != AF_INET) return inet_select_addr(nhc->nhc_dev, 0, scope); nh = container_of(nhc, struct fib_nh, nh_common); - nh->nh_saddr = inet_select_addr(nh->fib_nh_dev, nh->fib_nh_gw4, scope); - nh->nh_saddr_genid = atomic_read(&net->ipv4.dev_addr_genid); + saddr = inet_select_addr(nh->fib_nh_dev, nh->fib_nh_gw4, scope); - return nh->nh_saddr; + WRITE_ONCE(nh->nh_saddr, saddr); + WRITE_ONCE(nh->nh_saddr_genid, atomic_read(&net->ipv4.dev_addr_genid)); + + return saddr; } __be32 fib_result_prefsrc(struct net *net, struct fib_result *res) @@ -1347,8 +1350,9 @@ struct fib_nh *nh; nh = container_of(nhc, struct fib_nh, nh_common); - if (nh->nh_saddr_genid == atomic_read(&net->ipv4.dev_addr_genid)) - return nh->nh_saddr; + if (READ_ONCE(nh->nh_saddr_genid) == + atomic_read(&net->ipv4.dev_addr_genid)) + return READ_ONCE(nh->nh_saddr); } return fib_info_update_nhc_saddr(net, nhc, res->fi->fib_scope); @@ -1887,6 +1891,7 @@ continue; if (fi->fib_prefsrc == local) { fi->fib_flags |= RTNH_F_DEAD; + fi->pfsrc_removed = true; ret++; } } diff -u linux-riscv-6.5.0/net/ipv4/fib_trie.c linux-riscv-6.5.0/net/ipv4/fib_trie.c --- linux-riscv-6.5.0/net/ipv4/fib_trie.c +++ linux-riscv-6.5.0/net/ipv4/fib_trie.c @@ -2027,6 +2027,7 @@ int fib_table_flush(struct net *net, struct fib_table *tb, bool flush_all) { struct trie *t = (struct trie *)tb->tb_data; + struct nl_info info = { .nl_net = net }; struct key_vector *pn = t->kv; unsigned long cindex = 1; struct hlist_node *tmp; @@ -2089,6 +2090,9 @@ fib_notify_alias_delete(net, n->key, &n->leaf, fa, NULL); + if (fi->pfsrc_removed) + rtmsg_fib(RTM_DELROUTE, htonl(n->key), fa, + KEYLENGTH - fa->fa_slen, tb->tb_id, &info, 0); hlist_del_rcu(&fa->fa_list); fib_release_info(fa->fa_info); alias_free_mem_rcu(fa); diff -u linux-riscv-6.5.0/net/ipv4/inet_hashtables.c linux-riscv-6.5.0/net/ipv4/inet_hashtables.c --- linux-riscv-6.5.0/net/ipv4/inet_hashtables.c +++ linux-riscv-6.5.0/net/ipv4/inet_hashtables.c @@ -148,8 +148,14 @@ const struct sock *sk) { #if IS_ENABLED(CONFIG_IPV6) - if (sk->sk_family != tb2->family) - return false; + if (sk->sk_family != tb2->family) { + if (sk->sk_family == AF_INET) + return ipv6_addr_v4mapped(&tb2->v6_rcv_saddr) && + tb2->v6_rcv_saddr.s6_addr32[3] == sk->sk_rcv_saddr; + + return ipv6_addr_v4mapped(&sk->sk_v6_rcv_saddr) && + sk->sk_v6_rcv_saddr.s6_addr32[3] == tb2->rcv_saddr; + } if (sk->sk_family == AF_INET6) return ipv6_addr_equal(&tb2->v6_rcv_saddr, @@ -725,12 +731,12 @@ if (err) goto unlock; } + sock_set_flag(sk, SOCK_RCU_FREE); if (IS_ENABLED(CONFIG_IPV6) && sk->sk_reuseport && sk->sk_family == AF_INET6) __sk_nulls_add_node_tail_rcu(sk, &ilb2->nulls_head); else __sk_nulls_add_node_rcu(sk, &ilb2->nulls_head); - sock_set_flag(sk, SOCK_RCU_FREE); sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1); unlock: spin_unlock(&ilb2->lock); @@ -799,19 +805,7 @@ tb->l3mdev != l3mdev) return false; -#if IS_ENABLED(CONFIG_IPV6) - if (sk->sk_family != tb->family) { - if (sk->sk_family == AF_INET) - return ipv6_addr_v4mapped(&tb->v6_rcv_saddr) && - tb->v6_rcv_saddr.s6_addr32[3] == sk->sk_rcv_saddr; - - return false; - } - - if (sk->sk_family == AF_INET6) - return ipv6_addr_equal(&tb->v6_rcv_saddr, &sk->sk_v6_rcv_saddr); -#endif - return tb->rcv_saddr == sk->sk_rcv_saddr; + return inet_bind2_bucket_addr_match(tb, sk); } bool inet_bind2_bucket_match_addr_any(const struct inet_bind2_bucket *tb, const struct net *net, diff -u linux-riscv-6.5.0/net/ipv4/route.c linux-riscv-6.5.0/net/ipv4/route.c --- linux-riscv-6.5.0/net/ipv4/route.c +++ linux-riscv-6.5.0/net/ipv4/route.c @@ -780,7 +780,7 @@ goto reject_redirect; } - n = __ipv4_neigh_lookup(rt->dst.dev, new_gw); + n = __ipv4_neigh_lookup(rt->dst.dev, (__force u32)new_gw); if (!n) n = neigh_create(&arp_tbl, &new_gw, rt->dst.dev); if (!IS_ERR(n)) { diff -u linux-riscv-6.5.0/net/ipv4/tcp.c linux-riscv-6.5.0/net/ipv4/tcp.c --- linux-riscv-6.5.0/net/ipv4/tcp.c +++ linux-riscv-6.5.0/net/ipv4/tcp.c @@ -829,7 +829,9 @@ */ if (!skb_queue_empty(&sk->sk_receive_queue)) break; - sk_wait_data(sk, &timeo, NULL); + ret = sk_wait_data(sk, &timeo, NULL); + if (ret < 0) + break; if (signal_pending(current)) { ret = sock_intr_errno(timeo); break; @@ -923,10 +925,11 @@ return mss_now; } -/* In some cases, both sendmsg() could have added an skb to the write queue, - * but failed adding payload on it. We need to remove it to consume less +/* In some cases, sendmsg() could have added an skb to the write queue, + * but failed adding payload on it. We need to remove it to consume less * memory, but more importantly be able to generate EPOLLOUT for Edge Trigger - * epoll() users. + * epoll() users. Another reason is that tcp_write_xmit() does not like + * finding an empty skb in the write queue. */ void tcp_remove_empty_skb(struct sock *sk) { @@ -1284,6 +1287,7 @@ wait_for_space: set_bit(SOCK_NOSPACE, &sk->sk_socket->flags); + tcp_remove_empty_skb(sk); if (copied) tcp_push(sk, flags & ~MSG_MORE, mss_now, TCP_NAGLE_PUSH, size_goal); @@ -2442,7 +2446,11 @@ __sk_flush_backlog(sk); } else { tcp_cleanup_rbuf(sk, copied); - sk_wait_data(sk, &timeo, last); + err = sk_wait_data(sk, &timeo, last); + if (err < 0) { + err = copied ? : err; + goto out; + } } if ((flags & MSG_PEEK) && @@ -2966,12 +2974,6 @@ 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); @@ -3367,9 +3369,25 @@ return -EINVAL; tp->window_clamp = 0; } else { - tp->window_clamp = val < SOCK_MIN_RCVBUF / 2 ? - SOCK_MIN_RCVBUF / 2 : val; - tp->rcv_ssthresh = min(tp->rcv_wnd, tp->window_clamp); + u32 new_rcv_ssthresh, old_window_clamp = tp->window_clamp; + u32 new_window_clamp = val < SOCK_MIN_RCVBUF / 2 ? + SOCK_MIN_RCVBUF / 2 : val; + + if (new_window_clamp == old_window_clamp) + return 0; + + tp->window_clamp = new_window_clamp; + if (new_window_clamp < old_window_clamp) { + /* need to apply the reserved mem provisioning only + * when shrinking the window clamp + */ + __tcp_adjust_rcv_ssthresh(sk, tp->window_clamp); + + } else { + new_rcv_ssthresh = min(tp->rcv_wnd, tp->window_clamp); + tp->rcv_ssthresh = max(new_rcv_ssthresh, + tp->rcv_ssthresh); + } } return 0; } diff -u linux-riscv-6.5.0/net/ipv4/tcp_bpf.c linux-riscv-6.5.0/net/ipv4/tcp_bpf.c --- linux-riscv-6.5.0/net/ipv4/tcp_bpf.c +++ linux-riscv-6.5.0/net/ipv4/tcp_bpf.c @@ -307,6 +307,10 @@ } data = tcp_msg_wait_data(sk, psock, timeo); + if (data < 0) { + copied = data; + goto unlock; + } if (data && !sk_psock_queue_empty(psock)) goto msg_bytes_ready; copied = -EAGAIN; @@ -317,6 +321,8 @@ tcp_rcv_space_adjust(sk); if (copied > 0) __tcp_cleanup_rbuf(sk, copied); + +unlock: release_sock(sk); sk_psock_put(sk, psock); return copied; @@ -351,6 +357,10 @@ timeo = sock_rcvtimeo(sk, flags & MSG_DONTWAIT); data = tcp_msg_wait_data(sk, psock, timeo); + if (data < 0) { + ret = data; + goto unlock; + } if (data) { if (!sk_psock_queue_empty(psock)) goto msg_bytes_ready; @@ -361,6 +371,8 @@ copied = -EAGAIN; } ret = copied; + +unlock: release_sock(sk); sk_psock_put(sk, psock); return ret; diff -u linux-riscv-6.5.0/net/ipv4/tcp_input.c linux-riscv-6.5.0/net/ipv4/tcp_input.c --- linux-riscv-6.5.0/net/ipv4/tcp_input.c +++ linux-riscv-6.5.0/net/ipv4/tcp_input.c @@ -2202,16 +2202,17 @@ * restore sanity to the SACK scoreboard. If the apparent reneging * persists until this RTO then we'll clear the SACK scoreboard. */ -static bool tcp_check_sack_reneging(struct sock *sk, int flag) +static bool tcp_check_sack_reneging(struct sock *sk, int *ack_flag) { - if (flag & FLAG_SACK_RENEGING && - flag & FLAG_SND_UNA_ADVANCED) { + if (*ack_flag & FLAG_SACK_RENEGING && + *ack_flag & FLAG_SND_UNA_ADVANCED) { struct tcp_sock *tp = tcp_sk(sk); unsigned long delay = max(usecs_to_jiffies(tp->srtt_us >> 4), msecs_to_jiffies(10)); inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS, delay, TCP_RTO_MAX); + *ack_flag &= ~FLAG_SET_XMIT_TIMER; return true; } return false; @@ -2981,7 +2982,7 @@ tp->prior_ssthresh = 0; /* B. In all the states check for reneging SACKs. */ - if (tcp_check_sack_reneging(sk, flag)) + if (tcp_check_sack_reneging(sk, ack_flag)) return; /* C. Check consistency of the current state. */ @@ -3803,8 +3804,12 @@ * then we can probably ignore it. */ if (before(ack, prior_snd_una)) { + u32 max_window; + + /* do not accept ACK for bytes we never sent. */ + max_window = min_t(u64, tp->max_window, tp->bytes_acked); /* RFC 5961 5.2 [Blind Data Injection Attack].[Mitigation] */ - if (before(ack, prior_snd_una - tp->max_window)) { + if (before(ack, prior_snd_una - max_window)) { if (!(flag & FLAG_NO_CHALLENGE_ACK)) tcp_send_challenge_ack(sk); return -SKB_DROP_REASON_TCP_TOO_OLD_ACK; @@ -6433,22 +6438,23 @@ static void tcp_rcv_synrecv_state_fastopen(struct sock *sk) { + struct tcp_sock *tp = tcp_sk(sk); struct request_sock *req; /* If we are still handling the SYNACK RTO, see if timestamp ECR allows * undo. If peer SACKs triggered fast recovery, we can't undo here. */ - if (inet_csk(sk)->icsk_ca_state == TCP_CA_Loss) - tcp_try_undo_loss(sk, false); + if (inet_csk(sk)->icsk_ca_state == TCP_CA_Loss && !tp->packets_out) + tcp_try_undo_recovery(sk); /* Reset rtx states to prevent spurious retransmits_timed_out() */ - tcp_sk(sk)->retrans_stamp = 0; + tp->retrans_stamp = 0; inet_csk(sk)->icsk_retransmits = 0; /* Once we leave TCP_SYN_RECV or TCP_FIN_WAIT_1, * we no longer need req so release it. */ - req = rcu_dereference_protected(tcp_sk(sk)->fastopen_rsk, + req = rcu_dereference_protected(tp->fastopen_rsk, lockdep_sock_is_held(sk)); reqsk_fastopen_remove(sk, req, false); diff -u linux-riscv-6.5.0/net/ipv4/tcp_output.c linux-riscv-6.5.0/net/ipv4/tcp_output.c --- linux-riscv-6.5.0/net/ipv4/tcp_output.c +++ linux-riscv-6.5.0/net/ipv4/tcp_output.c @@ -1316,7 +1316,7 @@ skb->destructor = skb_is_tcp_pure_ack(skb) ? __sock_wfree : tcp_wfree; refcount_add(skb->truesize, &sk->sk_wmem_alloc); - skb_set_dst_pending_confirm(skb, sk->sk_dst_pending_confirm); + skb_set_dst_pending_confirm(skb, READ_ONCE(sk->sk_dst_pending_confirm)); /* Build TCP header and checksum it. */ th = (struct tcphdr *)skb->data; @@ -2527,6 +2527,18 @@ return true; } +static bool tcp_rtx_queue_empty_or_single_skb(const struct sock *sk) +{ + const struct rb_node *node = sk->tcp_rtx_queue.rb_node; + + /* No skb in the rtx queue. */ + if (!node) + return true; + + /* Only one skb in rtx queue. */ + return !node->rb_left && !node->rb_right; +} + /* TCP Small Queues : * Control number of packets in qdisc/devices to two packets / or ~1 ms. * (These limits are doubled for retransmits) @@ -2564,12 +2576,12 @@ limit += extra_bytes; } if (refcount_read(&sk->sk_wmem_alloc) > limit) { - /* Always send skb if rtx queue is empty. + /* Always send skb if rtx queue is empty or has one skb. * No need to wait for TX completion to call us back, * after softirq/tasklet schedule. * This helps when TX completions are delayed too much. */ - if (tcp_rtx_queue_empty(sk)) + if (tcp_rtx_queue_empty_or_single_skb(sk)) return false; set_bit(TSQ_THROTTLED, &sk->sk_tsq_flags); @@ -2773,7 +2785,7 @@ { struct inet_connection_sock *icsk = inet_csk(sk); struct tcp_sock *tp = tcp_sk(sk); - u32 timeout, rto_delta_us; + u32 timeout, timeout_us, rto_delta_us; int early_retrans; /* Don't do any loss probe on a Fast Open connection before 3WHS @@ -2797,11 +2809,12 @@ * sample is available then probe after TCP_TIMEOUT_INIT. */ if (tp->srtt_us) { - timeout = usecs_to_jiffies(tp->srtt_us >> 2); + timeout_us = tp->srtt_us >> 2; if (tp->packets_out == 1) - timeout += TCP_RTO_MIN; + timeout_us += tcp_rto_min_us(sk); else - timeout += TCP_TIMEOUT_MIN; + timeout_us += TCP_TIMEOUT_MIN_US; + timeout = usecs_to_jiffies(timeout_us); } else { timeout = TCP_TIMEOUT_INIT; } diff -u linux-riscv-6.5.0/net/ipv4/udp.c linux-riscv-6.5.0/net/ipv4/udp.c --- linux-riscv-6.5.0/net/ipv4/udp.c +++ linux-riscv-6.5.0/net/ipv4/udp.c @@ -744,7 +744,7 @@ iph->saddr, uh->source, skb->dev->ifindex, inet_sdif(skb), udptable, NULL); - if (!sk || udp_sk(sk)->encap_type) { + if (!sk || READ_ONCE(udp_sk(sk)->encap_type)) { /* No socket for error: try tunnels before discarding */ if (static_branch_unlikely(&udp_encap_needed_key)) { sk = __udp4_lib_err_encap(net, iph, uh, udptable, sk, skb, @@ -1080,7 +1080,7 @@ u8 tos, scope; __be16 dport; int err, is_udplite = IS_UDPLITE(sk); - int corkreq = READ_ONCE(up->corkflag) || msg->msg_flags&MSG_MORE; + int corkreq = udp_test_bit(CORK, sk) || msg->msg_flags & MSG_MORE; int (*getfrag)(void *, char *, int, int, int, struct sk_buff *); struct sk_buff *skb; struct ip_options_data opt_copy; @@ -1344,11 +1344,11 @@ struct sock *sk = sock->sk; struct udp_sock *up = udp_sk(sk); - if (!up->pending || READ_ONCE(up->corkflag)) + if (!up->pending || udp_test_bit(CORK, sk)) return; lock_sock(sk); - if (up->pending && !READ_ONCE(up->corkflag)) + if (up->pending && !udp_test_bit(CORK, sk)) udp_push_pending_frames(sk); release_sock(sk); } @@ -1897,7 +1897,7 @@ (struct sockaddr *)sin); } - if (udp_sk(sk)->gro_enabled) + if (udp_test_bit(GRO_ENABLED, sk)) udp_cmsg_recv(msg, sk, skb); if (inet->cmsg_flags) @@ -2110,7 +2110,8 @@ } nf_reset_ct(skb); - if (static_branch_unlikely(&udp_encap_needed_key) && up->encap_type) { + if (static_branch_unlikely(&udp_encap_needed_key) && + READ_ONCE(up->encap_type)) { int (*encap_rcv)(struct sock *sk, struct sk_buff *skb); /* @@ -2148,7 +2149,8 @@ /* * UDP-Lite specific tests, ignored on UDP sockets */ - if ((up->pcflag & UDPLITE_RECV_CC) && UDP_SKB_CB(skb)->partial_cov) { + if (udp_test_bit(UDPLITE_RECV_CC, sk) && UDP_SKB_CB(skb)->partial_cov) { + u16 pcrlen = READ_ONCE(up->pcrlen); /* * MIB statistics other than incrementing the error count are @@ -2161,7 +2163,7 @@ * delivery of packets with coverage values less than a value * provided by the application." */ - if (up->pcrlen == 0) { /* full coverage was set */ + if (pcrlen == 0) { /* full coverage was set */ net_dbg_ratelimited("UDPLite: partial coverage %d while full coverage %d requested\n", UDP_SKB_CB(skb)->cscov, skb->len); goto drop; @@ -2172,9 +2174,9 @@ * that it wants x while sender emits packets of smaller size y. * Therefore the above ...()->partial_cov statement is essential. */ - if (UDP_SKB_CB(skb)->cscov < up->pcrlen) { + if (UDP_SKB_CB(skb)->cscov < pcrlen) { net_dbg_ratelimited("UDPLite: coverage %d too small, need min %d\n", - UDP_SKB_CB(skb)->cscov, up->pcrlen); + UDP_SKB_CB(skb)->cscov, pcrlen); goto drop; } } @@ -2643,7 +2645,7 @@ if (encap_destroy) encap_destroy(sk); } - if (up->encap_enabled) + if (udp_test_bit(ENCAP_ENABLED, sk)) static_branch_dec(&udp_encap_needed_key); } } @@ -2683,9 +2685,9 @@ switch (optname) { case UDP_CORK: if (val != 0) { - WRITE_ONCE(up->corkflag, 1); + udp_set_bit(CORK, sk); } else { - WRITE_ONCE(up->corkflag, 0); + udp_clear_bit(CORK, sk); lock_sock(sk); push_pending_frames(sk); release_sock(sk); @@ -2700,17 +2702,17 @@ case UDP_ENCAP_ESPINUDP_NON_IKE: #if IS_ENABLED(CONFIG_IPV6) if (sk->sk_family == AF_INET6) - up->encap_rcv = ipv6_stub->xfrm6_udp_encap_rcv; + WRITE_ONCE(up->encap_rcv, + ipv6_stub->xfrm6_udp_encap_rcv); else #endif - up->encap_rcv = xfrm4_udp_encap_rcv; + WRITE_ONCE(up->encap_rcv, + xfrm4_udp_encap_rcv); #endif fallthrough; case UDP_ENCAP_L2TPINUDP: - up->encap_type = val; - lock_sock(sk); - udp_tunnel_encap_enable(sk->sk_socket); - release_sock(sk); + WRITE_ONCE(up->encap_type, val); + udp_tunnel_encap_enable(sk); break; default: err = -ENOPROTOOPT; @@ -2719,11 +2721,11 @@ break; case UDP_NO_CHECK6_TX: - up->no_check6_tx = valbool; + udp_set_no_check6_tx(sk, valbool); break; case UDP_NO_CHECK6_RX: - up->no_check6_rx = valbool; + udp_set_no_check6_rx(sk, valbool); break; case UDP_SEGMENT: @@ -2733,14 +2735,12 @@ break; case UDP_GRO: - lock_sock(sk); /* when enabling GRO, accept the related GSO packet type */ if (valbool) - udp_tunnel_encap_enable(sk->sk_socket); - up->gro_enabled = valbool; - up->accept_udp_l4 = valbool; - release_sock(sk); + udp_tunnel_encap_enable(sk); + udp_assign_bit(GRO_ENABLED, sk, valbool); + udp_assign_bit(ACCEPT_L4, sk, valbool); break; /* @@ -2755,8 +2755,8 @@ val = 8; else if (val > USHRT_MAX) val = USHRT_MAX; - up->pcslen = val; - up->pcflag |= UDPLITE_SEND_CC; + WRITE_ONCE(up->pcslen, val); + udp_set_bit(UDPLITE_SEND_CC, sk); break; /* The receiver specifies a minimum checksum coverage value. To make @@ -2769,8 +2769,8 @@ val = 8; else if (val > USHRT_MAX) val = USHRT_MAX; - up->pcrlen = val; - up->pcflag |= UDPLITE_RECV_CC; + WRITE_ONCE(up->pcrlen, val); + udp_set_bit(UDPLITE_RECV_CC, sk); break; default: @@ -2808,19 +2808,19 @@ switch (optname) { case UDP_CORK: - val = READ_ONCE(up->corkflag); + val = udp_test_bit(CORK, sk); break; case UDP_ENCAP: - val = up->encap_type; + val = READ_ONCE(up->encap_type); break; case UDP_NO_CHECK6_TX: - val = up->no_check6_tx; + val = udp_get_no_check6_tx(sk); break; case UDP_NO_CHECK6_RX: - val = up->no_check6_rx; + val = udp_get_no_check6_rx(sk); break; case UDP_SEGMENT: @@ -2828,17 +2828,17 @@ break; case UDP_GRO: - val = up->gro_enabled; + val = udp_test_bit(GRO_ENABLED, sk); break; /* The following two cannot be changed on UDP sockets, the return is * always 0 (which corresponds to the full checksum coverage of UDP). */ case UDPLITE_SEND_CSCOV: - val = up->pcslen; + val = READ_ONCE(up->pcslen); break; case UDPLITE_RECV_CSCOV: - val = up->pcrlen; + val = READ_ONCE(up->pcrlen); break; default: diff -u linux-riscv-6.5.0/net/ipv6/ip6_output.c linux-riscv-6.5.0/net/ipv6/ip6_output.c --- linux-riscv-6.5.0/net/ipv6/ip6_output.c +++ linux-riscv-6.5.0/net/ipv6/ip6_output.c @@ -162,7 +162,13 @@ int err; skb_mark_not_on_list(segs); - err = ip6_fragment(net, sk, segs, ip6_finish_output2); + /* Last GSO segment can be smaller than gso_size (and MTU). + * Adding a fragment header would produce an "atomic fragment", + * which is considered harmful (RFC-8021). Avoid that. + */ + err = segs->len > mtu ? + ip6_fragment(net, sk, segs, ip6_finish_output2) : + ip6_finish_output2(net, sk, segs); if (err && ret == 0) ret = err; } diff -u linux-riscv-6.5.0/net/ipv6/udp.c linux-riscv-6.5.0/net/ipv6/udp.c --- linux-riscv-6.5.0/net/ipv6/udp.c +++ linux-riscv-6.5.0/net/ipv6/udp.c @@ -446,7 +446,7 @@ (struct sockaddr *)sin6); } - if (udp_sk(sk)->gro_enabled) + if (udp_test_bit(GRO_ENABLED, sk)) udp_cmsg_recv(msg, sk, skb); if (np->rxopt.all) @@ -604,7 +604,7 @@ sk = __udp6_lib_lookup(net, daddr, uh->dest, saddr, uh->source, inet6_iif(skb), inet6_sdif(skb), udptable, NULL); - if (!sk || udp_sk(sk)->encap_type) { + if (!sk || READ_ONCE(udp_sk(sk)->encap_type)) { /* No socket for error: try tunnels before discarding */ if (static_branch_unlikely(&udpv6_encap_needed_key)) { sk = __udp6_lib_err_encap(net, hdr, offset, uh, @@ -721,7 +721,8 @@ } nf_reset_ct(skb); - if (static_branch_unlikely(&udpv6_encap_needed_key) && up->encap_type) { + if (static_branch_unlikely(&udpv6_encap_needed_key) && + READ_ONCE(up->encap_type)) { int (*encap_rcv)(struct sock *sk, struct sk_buff *skb); /* @@ -759,16 +760,17 @@ /* * UDP-Lite specific tests, ignored on UDP sockets (see net/ipv4/udp.c). */ - if ((up->pcflag & UDPLITE_RECV_CC) && UDP_SKB_CB(skb)->partial_cov) { + if (udp_test_bit(UDPLITE_RECV_CC, sk) && UDP_SKB_CB(skb)->partial_cov) { + u16 pcrlen = READ_ONCE(up->pcrlen); - if (up->pcrlen == 0) { /* full coverage was set */ + if (pcrlen == 0) { /* full coverage was set */ net_dbg_ratelimited("UDPLITE6: partial coverage %d while full coverage %d requested\n", UDP_SKB_CB(skb)->cscov, skb->len); goto drop; } - if (UDP_SKB_CB(skb)->cscov < up->pcrlen) { + if (UDP_SKB_CB(skb)->cscov < pcrlen) { net_dbg_ratelimited("UDPLITE6: coverage %d too small, need min %d\n", - UDP_SKB_CB(skb)->cscov, up->pcrlen); + UDP_SKB_CB(skb)->cscov, pcrlen); goto drop; } } @@ -891,7 +893,7 @@ /* If zero checksum and no_check is not on for * the socket then skip it. */ - if (!uh->check && !udp_sk(sk)->no_check6_rx) + if (!uh->check && !udp_get_no_check6_rx(sk)) continue; if (!first) { first = sk; @@ -1009,7 +1011,7 @@ if (unlikely(rcu_dereference(sk->sk_rx_dst) != dst)) udp6_sk_rx_dst_set(sk, dst); - if (!uh->check && !udp_sk(sk)->no_check6_rx) { + if (!uh->check && !udp_get_no_check6_rx(sk)) { if (refcounted) sock_put(sk); goto report_csum_error; @@ -1031,7 +1033,7 @@ /* Unicast */ sk = __udp6_lib_lookup_skb(skb, uh->source, uh->dest, udptable); if (sk) { - if (!uh->check && !udp_sk(sk)->no_check6_rx) + if (!uh->check && !udp_get_no_check6_rx(sk)) goto report_csum_error; return udp6_unicast_rcv_skb(sk, skb, uh); } @@ -1270,7 +1272,7 @@ kfree_skb(skb); return -EINVAL; } - if (udp_sk(sk)->no_check6_tx) { + if (udp_get_no_check6_tx(sk)) { kfree_skb(skb); return -EINVAL; } @@ -1291,7 +1293,7 @@ if (is_udplite) csum = udplite_csum(skb); - else if (udp_sk(sk)->no_check6_tx) { /* UDP csum disabled */ + else if (udp_get_no_check6_tx(sk)) { /* UDP csum disabled */ skb->ip_summed = CHECKSUM_NONE; goto send; } else if (skb->ip_summed == CHECKSUM_PARTIAL) { /* UDP hardware csum */ @@ -1361,7 +1363,7 @@ int addr_len = msg->msg_namelen; bool connected = false; int ulen = len; - int corkreq = READ_ONCE(up->corkflag) || msg->msg_flags&MSG_MORE; + int corkreq = udp_test_bit(CORK, sk) || msg->msg_flags & MSG_MORE; int err; int is_udplite = IS_UDPLITE(sk); int (*getfrag)(void *, char *, int, int, int, struct sk_buff *); @@ -1673,11 +1675,11 @@ struct sock *sk = sock->sk; struct udp_sock *up = udp_sk(sk); - if (!up->pending || READ_ONCE(up->corkflag)) + if (!up->pending || udp_test_bit(CORK, sk)) return; lock_sock(sk); - if (up->pending && !READ_ONCE(up->corkflag)) + if (up->pending && !udp_test_bit(CORK, sk)) udp_v6_push_pending_frames(sk); release_sock(sk); } @@ -1699,7 +1701,7 @@ if (encap_destroy) encap_destroy(sk); } - if (up->encap_enabled) { + if (udp_test_bit(ENCAP_ENABLED, sk)) { static_branch_dec(&udpv6_encap_needed_key); udp_encap_disable(); } diff -u linux-riscv-6.5.0/net/ipv6/udplite.c linux-riscv-6.5.0/net/ipv6/udplite.c --- linux-riscv-6.5.0/net/ipv6/udplite.c +++ linux-riscv-6.5.0/net/ipv6/udplite.c @@ -17,7 +17,6 @@ static int udplitev6_sk_init(struct sock *sk) { udpv6_init_sock(sk); - udp_sk(sk)->pcflag = UDPLITE_BIT; pr_warn_once("UDP-Lite is deprecated and scheduled to be removed in 2025, " "please contact the netdev mailing list\n"); return 0; diff -u linux-riscv-6.5.0/net/mac80211/cfg.c linux-riscv-6.5.0/net/mac80211/cfg.c --- linux-riscv-6.5.0/net/mac80211/cfg.c +++ linux-riscv-6.5.0/net/mac80211/cfg.c @@ -1860,7 +1860,8 @@ /* VHT can override some HT caps such as the A-MSDU max length */ if (params->vht_capa) ieee80211_vht_cap_ie_to_sta_vht_cap(sdata, sband, - params->vht_capa, link_sta); + params->vht_capa, NULL, + link_sta); if (params->he_capa) ieee80211_he_cap_ie_to_sta_he_cap(sdata, sband, @@ -3120,6 +3121,10 @@ else *dbm = sdata->vif.bss_conf.txpower; + /* INT_MIN indicates no power level was set yet */ + if (*dbm == INT_MIN) + return -EINVAL; + return 0; } diff -u linux-riscv-6.5.0/net/mac80211/ieee80211_i.h linux-riscv-6.5.0/net/mac80211/ieee80211_i.h --- linux-riscv-6.5.0/net/mac80211/ieee80211_i.h +++ linux-riscv-6.5.0/net/mac80211/ieee80211_i.h @@ -1406,7 +1406,7 @@ /* wowlan is enabled -- don't reconfig on resume */ bool wowlan; - struct work_struct radar_detected_work; + struct wiphy_work radar_detected_work; /* number of RX chains the hardware has */ u8 rx_chains; @@ -1483,14 +1483,14 @@ int hw_scan_ies_bufsize; struct cfg80211_scan_info scan_info; - struct work_struct sched_scan_stopped_work; + struct wiphy_work sched_scan_stopped_work; struct ieee80211_sub_if_data __rcu *sched_scan_sdata; struct cfg80211_sched_scan_request __rcu *sched_scan_req; u8 scan_addr[ETH_ALEN]; unsigned long leave_oper_channel_time; enum mac80211_scan_state next_scan_state; - struct delayed_work scan_work; + struct wiphy_delayed_work scan_work; struct ieee80211_sub_if_data __rcu *scan_sdata; /* For backward compatibility only -- do not use */ struct cfg80211_chan_def _oper_chandef; @@ -1583,9 +1583,9 @@ /* * Remain-on-channel support */ - struct delayed_work roc_work; + struct wiphy_delayed_work roc_work; struct list_head roc_list; - struct work_struct hw_roc_start, hw_roc_done; + struct wiphy_work hw_roc_start, hw_roc_done; unsigned long hw_roc_start_time; u64 roc_cookie_counter; @@ -1930,7 +1930,7 @@ u64 *changed); /* scan/BSS handling */ -void ieee80211_scan_work(struct work_struct *work); +void ieee80211_scan_work(struct wiphy *wiphy, struct wiphy_work *work); int ieee80211_request_ibss_scan(struct ieee80211_sub_if_data *sdata, const u8 *ssid, u8 ssid_len, struct ieee80211_channel **channels, @@ -1963,7 +1963,8 @@ struct cfg80211_sched_scan_request *req); int ieee80211_request_sched_scan_stop(struct ieee80211_local *local); void ieee80211_sched_scan_end(struct ieee80211_local *local); -void ieee80211_sched_scan_stopped_work(struct work_struct *work); +void ieee80211_sched_scan_stopped_work(struct wiphy *wiphy, + struct wiphy_work *work); /* off-channel/mgmt-tx */ void ieee80211_offchannel_stop_vifs(struct ieee80211_local *local); @@ -2142,6 +2143,7 @@ ieee80211_vht_cap_ie_to_sta_vht_cap(struct ieee80211_sub_if_data *sdata, struct ieee80211_supported_band *sband, const struct ieee80211_vht_cap *vht_cap_ie, + const struct ieee80211_vht_cap *vht_cap_ie2, struct link_sta_info *link_sta); enum ieee80211_sta_rx_bandwidth ieee80211_sta_cap_rx_bw(struct link_sta_info *link_sta); @@ -2567,7 +2569,8 @@ void ieee80211_dfs_cac_timer(unsigned long data); void ieee80211_dfs_cac_timer_work(struct work_struct *work); void ieee80211_dfs_cac_cancel(struct ieee80211_local *local); -void ieee80211_dfs_radar_detected_work(struct work_struct *work); +void ieee80211_dfs_radar_detected_work(struct wiphy *wiphy, + struct wiphy_work *work); int ieee80211_send_action_csa(struct ieee80211_sub_if_data *sdata, struct cfg80211_csa_settings *csa_settings); diff -u linux-riscv-6.5.0/net/mac80211/mlme.c linux-riscv-6.5.0/net/mac80211/mlme.c --- linux-riscv-6.5.0/net/mac80211/mlme.c +++ linux-riscv-6.5.0/net/mac80211/mlme.c @@ -4202,10 +4202,33 @@ elems->ht_cap_elem, link_sta); - if (elems->vht_cap_elem && !(link->u.mgd.conn_flags & IEEE80211_CONN_DISABLE_VHT)) + if (elems->vht_cap_elem && + !(link->u.mgd.conn_flags & IEEE80211_CONN_DISABLE_VHT)) { + const struct ieee80211_vht_cap *bss_vht_cap = NULL; + const struct cfg80211_bss_ies *ies; + + /* + * Cisco AP module 9115 with FW 17.3 has a bug and sends a + * too large maximum MPDU length in the association response + * (indicating 12k) that it cannot actually process ... + * Work around that. + */ + rcu_read_lock(); + ies = rcu_dereference(cbss->ies); + if (ies) { + const struct element *elem; + + elem = cfg80211_find_elem(WLAN_EID_VHT_CAPABILITY, + ies->data, ies->len); + if (elem && elem->datalen >= sizeof(*bss_vht_cap)) + bss_vht_cap = (const void *)elem->data; + } + ieee80211_vht_cap_ie_to_sta_vht_cap(sdata, sband, elems->vht_cap_elem, - link_sta); + bss_vht_cap, link_sta); + rcu_read_unlock(); + } if (elems->he_operation && !(link->u.mgd.conn_flags & IEEE80211_CONN_DISABLE_HE) && elems->he_cap) { diff -u linux-riscv-6.5.0/net/mac80211/rx.c linux-riscv-6.5.0/net/mac80211/rx.c --- linux-riscv-6.5.0/net/mac80211/rx.c +++ linux-riscv-6.5.0/net/mac80211/rx.c @@ -2112,7 +2112,7 @@ /* either the frame has been decrypted or will be dropped */ status->flag |= RX_FLAG_DECRYPTED; - if (unlikely(ieee80211_is_beacon(fc) && (result & RX_DROP_UNUSABLE) && + if (unlikely(ieee80211_is_beacon(fc) && RX_RES_IS_UNUSABLE(result) && rx->sdata->dev)) cfg80211_rx_unprot_mlme_mgmt(rx->sdata->dev, skb->data, skb->len); @@ -2468,8 +2468,7 @@ /* drop unicast public action frames when using MPF */ if (is_unicast_ether_addr(mgmt->da) && - ieee80211_is_public_action((void *)rx->skb->data, - rx->skb->len)) + ieee80211_is_protected_dual_of_public_action(rx->skb)) return -EACCES; } diff -u linux-riscv-6.5.0/net/mptcp/protocol.c linux-riscv-6.5.0/net/mptcp/protocol.c --- linux-riscv-6.5.0/net/mptcp/protocol.c +++ linux-riscv-6.5.0/net/mptcp/protocol.c @@ -1233,6 +1233,8 @@ mptcp_do_fallback(ssk); } +#define MPTCP_MAX_GSO_SIZE (GSO_LEGACY_MAX_SIZE - (MAX_TCP_HEADER + 1)) + static int mptcp_sendmsg_frag(struct sock *sk, struct sock *ssk, struct mptcp_data_frag *dfrag, struct mptcp_sendmsg_info *info) @@ -1259,6 +1261,8 @@ return -EAGAIN; /* compute send limit */ + if (unlikely(ssk->sk_gso_max_size > MPTCP_MAX_GSO_SIZE)) + ssk->sk_gso_max_size = MPTCP_MAX_GSO_SIZE; info->mss_now = tcp_send_mss(ssk, &info->size_goal, info->flags); copy = info->size_goal; @@ -1300,7 +1304,7 @@ if (copy == 0) { u64 snd_una = READ_ONCE(msk->snd_una); - if (snd_una != msk->snd_nxt) { + if (snd_una != msk->snd_nxt || tcp_write_queue_tail(ssk)) { tcp_remove_empty_skb(ssk); return 0; } @@ -1308,11 +1312,6 @@ zero_window_probe = true; data_seq = snd_una - 1; copy = 1; - - /* all mptcp-level data is acked, no skbs should be present into the - * ssk write queue - */ - WARN_ON_ONCE(reuse_skb); } copy = min_t(size_t, copy, info->limit - info->sent); @@ -1341,7 +1340,6 @@ if (reuse_skb) { TCP_SKB_CB(skb)->tcp_flags &= ~TCPHDR_PSH; mpext->data_len += copy; - WARN_ON_ONCE(zero_window_probe); goto out; } @@ -2342,6 +2340,26 @@ #define MPTCP_CF_PUSH BIT(1) #define MPTCP_CF_FASTCLOSE BIT(2) +/* be sure to send a reset only if the caller asked for it, also + * clean completely the subflow status when the subflow reaches + * TCP_CLOSE state + */ +static void __mptcp_subflow_disconnect(struct sock *ssk, + struct mptcp_subflow_context *subflow, + unsigned int flags) +{ + if (((1 << ssk->sk_state) & (TCPF_CLOSE | TCPF_LISTEN)) || + (flags & MPTCP_CF_FASTCLOSE)) { + /* The MPTCP code never wait on the subflow sockets, TCP-level + * disconnect should never fail + */ + WARN_ON_ONCE(tcp_disconnect(ssk, 0)); + mptcp_subflow_ctx_reset(subflow); + } else { + tcp_shutdown(ssk, SEND_SHUTDOWN); + } +} + /* subflow sockets can be either outgoing (connect) or incoming * (accept). * @@ -2379,7 +2397,7 @@ lock_sock_nested(ssk, SINGLE_DEPTH_NESTING); if ((flags & MPTCP_CF_FASTCLOSE) && !__mptcp_check_fallback(msk)) { - /* be sure to force the tcp_disconnect() path, + /* be sure to force the tcp_close path * to generate the egress reset */ ssk->sk_lingertime = 0; @@ -2389,12 +2407,8 @@ need_push = (flags & MPTCP_CF_PUSH) && __mptcp_retransmit_pending_data(sk); if (!dispose_it) { - /* The MPTCP code never wait on the subflow sockets, TCP-level - * disconnect should never fail - */ - WARN_ON_ONCE(tcp_disconnect(ssk, 0)); + __mptcp_subflow_disconnect(ssk, subflow, flags); msk->subflow->state = SS_UNCONNECTED; - mptcp_subflow_ctx_reset(subflow); release_sock(ssk); goto out; @@ -3069,12 +3083,6 @@ { struct mptcp_sock *msk = mptcp_sk(sk); - /* Deny disconnect if other threads are blocked in sk_wait_event() - * or inet_wait_for_connect(). - */ - if (sk->sk_wait_pending) - return -EBUSY; - /* We are on the fastopen error path. We can't call straight into the * subflows cleanup code due to lock nesting (we are already under * msk->firstsocket lock). @@ -3145,7 +3153,6 @@ inet_sk(nsk)->pinet6 = mptcp_inet6_sk(nsk); #endif - nsk->sk_wait_pending = 0; __mptcp_init_sock(nsk); msk = mptcp_sk(nsk); reverted: --- linux-riscv-6.5.0/net/ncsi/ncsi-aen.c +++ linux-riscv-6.5.0.orig/net/ncsi/ncsi-aen.c @@ -89,11 +89,6 @@ if ((had_link == has_link) || chained) return 0; - if (had_link) - netif_carrier_off(ndp->ndev.dev); - else - netif_carrier_on(ndp->ndev.dev); - if (!ndp->multi_package && !nc->package->multi_channel) { if (had_link) { ndp->flags |= NCSI_DEV_RESHUFFLE; diff -u linux-riscv-6.5.0/net/netfilter/ipset/ip_set_core.c linux-riscv-6.5.0/net/netfilter/ipset/ip_set_core.c --- linux-riscv-6.5.0/net/netfilter/ipset/ip_set_core.c +++ linux-riscv-6.5.0/net/netfilter/ipset/ip_set_core.c @@ -61,6 +61,8 @@ ip_set_dereference((inst)->ip_set_list)[id] #define ip_set_ref_netlink(inst,id) \ rcu_dereference_raw((inst)->ip_set_list)[id] +#define ip_set_dereference_nfnl(p) \ + rcu_dereference_check(p, lockdep_nfnl_is_held(NFNL_SUBSYS_IPSET)) /* The set types are implemented in modules and registered set types * can be found in ip_set_type_list. Adding/deleting types is @@ -708,15 +710,10 @@ static struct ip_set * ip_set_rcu_get(struct net *net, ip_set_id_t index) { - struct ip_set *set; struct ip_set_net *inst = ip_set_pernet(net); - rcu_read_lock(); - /* ip_set_list itself needs to be protected */ - set = rcu_dereference(inst->ip_set_list)[index]; - rcu_read_unlock(); - - return set; + /* ip_set_list and the set pointer need to be protected */ + return ip_set_dereference_nfnl(inst->ip_set_list)[index]; } static inline void @@ -1397,6 +1394,9 @@ ip_set(inst, to_id) = from; write_unlock_bh(&ip_set_ref_lock); + /* Make sure all readers of the old set pointers are completed. */ + synchronize_rcu(); + return 0; } diff -u linux-riscv-6.5.0/net/netfilter/nf_tables_api.c linux-riscv-6.5.0/net/netfilter/nf_tables_api.c --- linux-riscv-6.5.0/net/netfilter/nf_tables_api.c +++ linux-riscv-6.5.0/net/netfilter/nf_tables_api.c @@ -805,7 +805,7 @@ static struct nft_table *nft_table_lookup_byhandle(const struct net *net, const struct nlattr *nla, - u8 genmask, u32 nlpid) + int family, u8 genmask, u32 nlpid) { struct nftables_pernet *nft_net; struct nft_table *table; @@ -813,6 +813,7 @@ nft_net = nft_pernet(net); list_for_each_entry(table, &nft_net->tables, list) { if (be64_to_cpu(nla_get_be64(nla)) == table->handle && + table->family == family && nft_active_genmask(table, genmask)) { if (nft_table_has_owner(table) && nlpid && table->nlpid != nlpid) @@ -1546,7 +1547,7 @@ if (nla[NFTA_TABLE_HANDLE]) { attr = nla[NFTA_TABLE_HANDLE]; - table = nft_table_lookup_byhandle(net, attr, genmask, + table = nft_table_lookup_byhandle(net, attr, family, genmask, NETLINK_CB(skb).portid); } else { attr = nla[NFTA_TABLE_NAME]; @@ -3465,10 +3466,6 @@ goto cont_skip; if (*idx < s_idx) goto cont; - if (*idx > s_idx) { - memset(&cb->args[1], 0, - sizeof(cb->args) - sizeof(cb->args[0])); - } if (prule) handle = prule->handle; else @@ -5553,7 +5550,6 @@ const struct nft_set_ext *ext = nft_set_elem_ext(set, elem->priv); unsigned char *b = skb_tail_pointer(skb); struct nlattr *nest; - u64 timeout = 0; nest = nla_nest_start_noflag(skb, NFTA_LIST_ELEM); if (nest == NULL) @@ -5589,15 +5585,11 @@ htonl(*nft_set_ext_flags(ext)))) goto nla_put_failure; - if (nft_set_ext_exists(ext, NFT_SET_EXT_TIMEOUT)) { - timeout = *nft_set_ext_timeout(ext); - if (nla_put_be64(skb, NFTA_SET_ELEM_TIMEOUT, - nf_jiffies64_to_msecs(timeout), - NFTA_SET_ELEM_PAD)) - goto nla_put_failure; - } else if (set->flags & NFT_SET_TIMEOUT) { - timeout = READ_ONCE(set->timeout); - } + if (nft_set_ext_exists(ext, NFT_SET_EXT_TIMEOUT) && + nla_put_be64(skb, NFTA_SET_ELEM_TIMEOUT, + nf_jiffies64_to_msecs(*nft_set_ext_timeout(ext)), + NFTA_SET_ELEM_PAD)) + goto nla_put_failure; if (nft_set_ext_exists(ext, NFT_SET_EXT_EXPIRATION)) { u64 expires, now = get_jiffies_64(); @@ -5612,9 +5604,6 @@ nf_jiffies64_to_msecs(expires), NFTA_SET_ELEM_PAD)) goto nla_put_failure; - - if (reset) - *nft_set_ext_expiration(ext) = now + timeout; } if (nft_set_ext_exists(ext, NFT_SET_EXT_USERDATA)) { @@ -7219,10 +7208,11 @@ if (err < 0) { NL_SET_BAD_ATTR(extack, attr); - break; + return err; } } - return err; + + return 0; } /* @@ -7617,6 +7607,16 @@ return -1; } +static void audit_log_obj_reset(const struct nft_table *table, + unsigned int base_seq, unsigned int nentries) +{ + char *buf = kasprintf(GFP_ATOMIC, "%s:%u", table->name, base_seq); + + audit_log_nfcfg(buf, table->family, nentries, + AUDIT_NFT_OP_OBJ_RESET, GFP_ATOMIC); + kfree(buf); +} + struct nft_obj_filter { char *table; u32 type; @@ -7631,8 +7631,10 @@ struct net *net = sock_net(skb->sk); int family = nfmsg->nfgen_family; struct nftables_pernet *nft_net; + unsigned int entries = 0; struct nft_object *obj; bool reset = false; + int rc = 0; if (NFNL_MSG_TYPE(cb->nlh->nlmsg_type) == NFT_MSG_GETOBJ_RESET) reset = true; @@ -7645,6 +7647,7 @@ if (family != NFPROTO_UNSPEC && family != table->family) continue; + entries = 0; list_for_each_entry_rcu(obj, &table->objects, list) { if (!nft_is_active(net, obj)) goto cont; @@ -7660,34 +7663,27 @@ filter->type != NFT_OBJECT_UNSPEC && obj->ops->type->type != filter->type) goto cont; - if (reset) { - char *buf = kasprintf(GFP_ATOMIC, - "%s:%u", - table->name, - nft_net->base_seq); - - audit_log_nfcfg(buf, - family, - obj->handle, - AUDIT_NFT_OP_OBJ_RESET, - GFP_ATOMIC); - kfree(buf); - } - - if (nf_tables_fill_obj_info(skb, net, NETLINK_CB(cb->skb).portid, - cb->nlh->nlmsg_seq, - NFT_MSG_NEWOBJ, - NLM_F_MULTI | NLM_F_APPEND, - table->family, table, - obj, reset) < 0) - goto done; + rc = nf_tables_fill_obj_info(skb, net, + NETLINK_CB(cb->skb).portid, + cb->nlh->nlmsg_seq, + NFT_MSG_NEWOBJ, + NLM_F_MULTI | NLM_F_APPEND, + table->family, table, + obj, reset); + if (rc < 0) + break; + + entries++; nl_dump_check_consistent(cb, nlmsg_hdr(skb)); cont: idx++; } + if (reset && entries) + audit_log_obj_reset(table, nft_net->base_seq, entries); + if (rc < 0) + break; } -done: rcu_read_unlock(); cb->args[0] = idx; @@ -7792,7 +7788,7 @@ audit_log_nfcfg(buf, family, - obj->handle, + 1, AUDIT_NFT_OP_OBJ_RESET, GFP_ATOMIC); kfree(buf); @@ -9642,16 +9638,14 @@ call_rcu(&trans->rcu, nft_trans_gc_trans_free); } -static struct nft_trans_gc *nft_trans_gc_catchall(struct nft_trans_gc *gc, - unsigned int gc_seq, - bool sync) +struct nft_trans_gc *nft_trans_gc_catchall_async(struct nft_trans_gc *gc, + unsigned int gc_seq) { - struct nft_set_elem_catchall *catchall, *next; + struct nft_set_elem_catchall *catchall; const struct nft_set *set = gc->set; - struct nft_set_elem *elem; struct nft_set_ext *ext; - list_for_each_entry_safe(catchall, next, &set->catchall_list, list) { + list_for_each_entry_rcu(catchall, &set->catchall_list, list) { ext = nft_set_elem_ext(set, catchall->elem); if (!nft_set_elem_expired(ext)) @@ -9661,35 +9655,44 @@ nft_set_elem_dead(ext); dead_elem: - if (sync) - gc = nft_trans_gc_queue_sync(gc, GFP_ATOMIC); - else - gc = nft_trans_gc_queue_async(gc, gc_seq, GFP_ATOMIC); - + gc = nft_trans_gc_queue_async(gc, gc_seq, GFP_ATOMIC); if (!gc) return NULL; - elem = catchall->elem; - if (sync) { - nft_setelem_data_deactivate(gc->net, gc->set, elem); - nft_setelem_catchall_destroy(catchall); - } - - nft_trans_gc_elem_add(gc, elem->priv); + nft_trans_gc_elem_add(gc, catchall->elem); } return gc; } -struct nft_trans_gc *nft_trans_gc_catchall_async(struct nft_trans_gc *gc, - unsigned int gc_seq) -{ - return nft_trans_gc_catchall(gc, gc_seq, false); -} - struct nft_trans_gc *nft_trans_gc_catchall_sync(struct nft_trans_gc *gc) { - return nft_trans_gc_catchall(gc, 0, true); + struct nft_set_elem_catchall *catchall, *next; + const struct nft_set *set = gc->set; + struct nft_set_elem elem; + struct nft_set_ext *ext; + + WARN_ON_ONCE(!lockdep_commit_lock_is_held(gc->net)); + + list_for_each_entry_safe(catchall, next, &set->catchall_list, list) { + ext = nft_set_elem_ext(set, catchall->elem); + + if (!nft_set_elem_expired(ext)) + continue; + + gc = nft_trans_gc_queue_sync(gc, GFP_KERNEL); + if (!gc) + return NULL; + + memset(&elem, 0, sizeof(elem)); + elem.priv = catchall->elem; + + nft_setelem_data_deactivate(gc->net, gc->set, &elem); + nft_setelem_catchall_destroy(catchall); + nft_trans_gc_elem_add(gc, elem.priv); + } + + return gc; } static void nf_tables_module_autoload_cleanup(struct net *net) diff -u linux-riscv-6.5.0/net/netfilter/nft_exthdr.c linux-riscv-6.5.0/net/netfilter/nft_exthdr.c --- linux-riscv-6.5.0/net/netfilter/nft_exthdr.c +++ linux-riscv-6.5.0/net/netfilter/nft_exthdr.c @@ -214,7 +214,7 @@ offset = i + priv->offset; if (priv->flags & NFT_EXTHDR_F_PRESENT) { - *dest = 1; + nft_reg_store8(dest, 1); } else { if (priv->len % NFT_REG32_SIZE) dest[priv->len / NFT_REG32_SIZE] = 0; @@ -461,7 +461,7 @@ type = bufp[0]; if (type == priv->type) { - *dest = 1; + nft_reg_store8(dest, 1); return; } diff -u linux-riscv-6.5.0/net/netfilter/nft_meta.c linux-riscv-6.5.0/net/netfilter/nft_meta.c --- linux-riscv-6.5.0/net/netfilter/nft_meta.c +++ linux-riscv-6.5.0/net/netfilter/nft_meta.c @@ -63,7 +63,7 @@ { switch (key) { case NFT_META_TIME_NS: - nft_reg_store64(dest, ktime_get_real_ns()); + nft_reg_store64((u64 *)dest, ktime_get_real_ns()); break; case NFT_META_TIME_DAY: nft_reg_store8(dest, nft_meta_weekday()); diff -u linux-riscv-6.5.0/net/netfilter/nft_payload.c linux-riscv-6.5.0/net/netfilter/nft_payload.c --- linux-riscv-6.5.0/net/netfilter/nft_payload.c +++ linux-riscv-6.5.0/net/netfilter/nft_payload.c @@ -179,7 +179,7 @@ switch (priv->base) { case NFT_PAYLOAD_LL_HEADER: - if (!skb_mac_header_was_set(skb)) + if (!skb_mac_header_was_set(skb) || skb_mac_header_len(skb) == 0) goto err; if (skb_vlan_tag_present(skb) && diff -u linux-riscv-6.5.0/net/netfilter/nft_set_rbtree.c linux-riscv-6.5.0/net/netfilter/nft_set_rbtree.c --- linux-riscv-6.5.0/net/netfilter/nft_set_rbtree.c +++ linux-riscv-6.5.0/net/netfilter/nft_set_rbtree.c @@ -568,6 +568,8 @@ nft_rbtree_interval_end(this)) { parent = parent->rb_right; continue; + } else if (nft_set_elem_expired(&rbe->ext)) { + break; } else if (!nft_set_elem_active(&rbe->ext, genmask)) { parent = parent->rb_left; continue; diff -u linux-riscv-6.5.0/net/packet/af_packet.c linux-riscv-6.5.0/net/packet/af_packet.c --- linux-riscv-6.5.0/net/packet/af_packet.c +++ linux-riscv-6.5.0/net/packet/af_packet.c @@ -4298,7 +4298,7 @@ struct sock *sk = sock->sk; if (sk) - atomic_inc(&pkt_sk(sk)->mapped); + atomic_long_inc(&pkt_sk(sk)->mapped); } static void packet_mm_close(struct vm_area_struct *vma) @@ -4308,7 +4308,7 @@ struct sock *sk = sock->sk; if (sk) - atomic_dec(&pkt_sk(sk)->mapped); + atomic_long_dec(&pkt_sk(sk)->mapped); } static const struct vm_operations_struct packet_mmap_ops = { @@ -4403,7 +4403,7 @@ err = -EBUSY; if (!closing) { - if (atomic_read(&po->mapped)) + if (atomic_long_read(&po->mapped)) goto out; if (packet_read_pending(rb)) goto out; @@ -4506,7 +4506,7 @@ err = -EBUSY; mutex_lock(&po->pg_vec_lock); - if (closing || atomic_read(&po->mapped) == 0) { + if (closing || atomic_long_read(&po->mapped) == 0) { err = 0; spin_lock_bh(&rb_queue->lock); swap(rb->pg_vec, pg_vec); @@ -4524,9 +4524,9 @@ po->prot_hook.func = (po->rx_ring.pg_vec) ? tpacket_rcv : packet_rcv; skb_queue_purge(rb_queue); - if (atomic_read(&po->mapped)) - pr_err("packet_mmap: vma is busy: %d\n", - atomic_read(&po->mapped)); + if (atomic_long_read(&po->mapped)) + pr_err("packet_mmap: vma is busy: %ld\n", + atomic_long_read(&po->mapped)); } mutex_unlock(&po->pg_vec_lock); @@ -4604,7 +4604,7 @@ } } - atomic_inc(&po->mapped); + atomic_long_inc(&po->mapped); vma->vm_ops = &packet_mmap_ops; err = 0; diff -u linux-riscv-6.5.0/net/rfkill/core.c linux-riscv-6.5.0/net/rfkill/core.c --- linux-riscv-6.5.0/net/rfkill/core.c +++ linux-riscv-6.5.0/net/rfkill/core.c @@ -48,6 +48,7 @@ bool persistent; bool polling_paused; bool suspended; + bool need_sync; const struct rfkill_ops *ops; void *data; @@ -367,6 +368,17 @@ rfkill_event(rfkill); } +static void rfkill_sync(struct rfkill *rfkill) +{ + lockdep_assert_held(&rfkill_global_mutex); + + if (!rfkill->need_sync) + return; + + rfkill_set_block(rfkill, rfkill_global_states[rfkill->type].cur); + rfkill->need_sync = false; +} + static void rfkill_update_global_state(enum rfkill_type type, bool blocked) { int i; @@ -729,6 +741,10 @@ { struct rfkill *rfkill = to_rfkill(dev); + mutex_lock(&rfkill_global_mutex); + rfkill_sync(rfkill); + mutex_unlock(&rfkill_global_mutex); + return sysfs_emit(buf, "%d\n", (rfkill->state & RFKILL_BLOCK_SW) ? 1 : 0); } @@ -750,6 +766,7 @@ return -EINVAL; mutex_lock(&rfkill_global_mutex); + rfkill_sync(rfkill); rfkill_set_block(rfkill, state); mutex_unlock(&rfkill_global_mutex); @@ -782,6 +799,10 @@ { struct rfkill *rfkill = to_rfkill(dev); + mutex_lock(&rfkill_global_mutex); + rfkill_sync(rfkill); + mutex_unlock(&rfkill_global_mutex); + return sysfs_emit(buf, "%d\n", user_state_from_blocked(rfkill->state)); } @@ -804,6 +825,7 @@ return -EINVAL; mutex_lock(&rfkill_global_mutex); + rfkill_sync(rfkill); rfkill_set_block(rfkill, state == RFKILL_USER_STATE_SOFT_BLOCKED); mutex_unlock(&rfkill_global_mutex); @@ -1031,14 +1053,10 @@ static void rfkill_sync_work(struct work_struct *work) { - struct rfkill *rfkill; - bool cur; - - rfkill = container_of(work, struct rfkill, sync_work); + struct rfkill *rfkill = container_of(work, struct rfkill, sync_work); mutex_lock(&rfkill_global_mutex); - cur = rfkill_global_states[rfkill->type].cur; - rfkill_set_block(rfkill, cur); + rfkill_sync(rfkill); mutex_unlock(&rfkill_global_mutex); } @@ -1086,6 +1104,7 @@ round_jiffies_relative(POLL_INTERVAL)); if (!rfkill->persistent || rfkill_epo_lock_active) { + rfkill->need_sync = true; schedule_work(&rfkill->sync_work); } else { #ifdef CONFIG_RFKILL_INPUT @@ -1158,7 +1177,6 @@ init_waitqueue_head(&data->read_wait); mutex_lock(&rfkill_global_mutex); - mutex_lock(&data->mtx); /* * start getting events from elsewhere but hold mtx to get * startup events added first @@ -1168,11 +1186,13 @@ ev = kzalloc(sizeof(*ev), GFP_KERNEL); if (!ev) goto free; + rfkill_sync(rfkill); rfkill_fill_event(&ev->ev, rfkill, RFKILL_OP_ADD); + mutex_lock(&data->mtx); list_add_tail(&ev->list, &data->events); + mutex_unlock(&data->mtx); } list_add(&data->list, &rfkill_fds); - mutex_unlock(&data->mtx); mutex_unlock(&rfkill_global_mutex); file->private_data = data; @@ -1180,7 +1200,6 @@ return stream_open(inode, file); free: - mutex_unlock(&data->mtx); mutex_unlock(&rfkill_global_mutex); mutex_destroy(&data->mtx); list_for_each_entry_safe(ev, tmp, &data->events, list) diff -u linux-riscv-6.5.0/net/sched/sch_hfsc.c linux-riscv-6.5.0/net/sched/sch_hfsc.c --- linux-riscv-6.5.0/net/sched/sch_hfsc.c +++ linux-riscv-6.5.0/net/sched/sch_hfsc.c @@ -903,6 +903,14 @@ cl->cl_flags |= HFSC_USC; } +static void +hfsc_upgrade_rt(struct hfsc_class *cl) +{ + cl->cl_fsc = cl->cl_rsc; + rtsc_init(&cl->cl_virtual, &cl->cl_fsc, cl->cl_vt, cl->cl_total); + cl->cl_flags |= HFSC_FSC; +} + static const struct nla_policy hfsc_policy[TCA_HFSC_MAX + 1] = { [TCA_HFSC_RSC] = { .len = sizeof(struct tc_service_curve) }, [TCA_HFSC_FSC] = { .len = sizeof(struct tc_service_curve) }, @@ -1012,10 +1020,6 @@ 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; @@ -1066,6 +1070,12 @@ cl->cf_tree = RB_ROOT; sch_tree_lock(sch); + /* Check if the inner class is a misconfigured 'rt' */ + if (!(parent->cl_flags & HFSC_FSC) && parent != &q->root) { + NL_SET_ERR_MSG(extack, + "Forced curve change on parent 'rt' to 'sc'"); + hfsc_upgrade_rt(parent); + } qdisc_class_hash_insert(&q->clhash, &cl->cl_common); list_add_tail(&cl->siblings, &parent->children); if (parent->level == 0) diff -u linux-riscv-6.5.0/net/smc/af_smc.c linux-riscv-6.5.0/net/smc/af_smc.c --- linux-riscv-6.5.0/net/smc/af_smc.c +++ linux-riscv-6.5.0/net/smc/af_smc.c @@ -275,7 +275,7 @@ if (!smc->use_fallback) { rc = smc_close_active(smc); - sock_set_flag(sk, SOCK_DEAD); + smc_sock_set_flag(sk, SOCK_DEAD); sk->sk_shutdown |= SHUTDOWN_MASK; } else { if (sk->sk_state != SMC_CLOSED) { @@ -598,8 +598,12 @@ struct smc_llc_qentry *qentry; int rc; - /* receive CONFIRM LINK request from server over RoCE fabric */ - qentry = smc_llc_wait(link->lgr, NULL, SMC_LLC_WAIT_TIME, + /* Receive CONFIRM LINK request from server over RoCE fabric. + * Increasing the client's timeout by twice as much as the server's + * timeout by default can temporarily avoid decline messages of + * both sides crossing or colliding + */ + qentry = smc_llc_wait(link->lgr, NULL, 2 * SMC_LLC_WAIT_TIME, SMC_LLC_CONFIRM_LINK); if (!qentry) { struct smc_clc_msg_decline dclc; @@ -717,7 +721,7 @@ int bufsize = smc_uncompress_bufsize(clc->d0.dmbe_size); smc->conn.peer_rmbe_idx = clc->d0.dmbe_idx; - smc->conn.peer_token = clc->d0.token; + smc->conn.peer_token = ntohll(clc->d0.token); /* msg header takes up space in the buffer */ smc->conn.peer_rmbe_size = bufsize - sizeof(struct smcd_cdc_msg); atomic_set(&smc->conn.peer_rmbe_space, smc->conn.peer_rmbe_size); @@ -1390,7 +1394,7 @@ if (rc) return rc; } - ini->ism_peer_gid[ini->ism_selected] = aclc->d0.gid; + ini->ism_peer_gid[ini->ism_selected] = ntohll(aclc->d0.gid); /* there is only one lgr role for SMC-D; use server lock */ mutex_lock(&smc_server_lgr_pending); @@ -1722,7 +1726,7 @@ if (new_clcsock) sock_release(new_clcsock); new_sk->sk_state = SMC_CLOSED; - sock_set_flag(new_sk, SOCK_DEAD); + smc_sock_set_flag(new_sk, SOCK_DEAD); sock_put(new_sk); /* final */ *new_smc = NULL; goto out; @@ -2335,7 +2339,7 @@ smc_find_ism_store_rc(rc, ini); return (!rc) ? 0 : ini->rc; } - return SMC_CLC_DECL_NOSMCDEV; + return prfx_rc; } /* listen worker: finish RDMA setup */ diff -u linux-riscv-6.5.0/net/sunrpc/clnt.c linux-riscv-6.5.0/net/sunrpc/clnt.c --- linux-riscv-6.5.0/net/sunrpc/clnt.c +++ linux-riscv-6.5.0/net/sunrpc/clnt.c @@ -111,7 +111,8 @@ pipefs_sb = rpc_get_sb_net(net); if (pipefs_sb) { - __rpc_clnt_remove_pipedir(clnt); + if (pipefs_sb == clnt->pipefs_sb) + __rpc_clnt_remove_pipedir(clnt); rpc_put_sb_net(net); } } @@ -151,6 +152,8 @@ { struct dentry *dentry; + clnt->pipefs_sb = pipefs_sb; + if (clnt->cl_program->pipe_dir_name != NULL) { dentry = rpc_setup_pipedir_sb(pipefs_sb, clnt); if (IS_ERR(dentry)) @@ -2169,6 +2172,7 @@ task->tk_status = 0; switch (status) { case -ECONNREFUSED: + case -ECONNRESET: /* A positive refusal suggests a rebind is needed. */ if (RPC_IS_SOFTCONN(task)) break; @@ -2177,7 +2181,6 @@ goto out_retry; } fallthrough; - case -ECONNRESET: case -ECONNABORTED: case -ENETDOWN: case -ENETUNREACH: @@ -2721,7 +2724,15 @@ out_verifier: trace_rpc_bad_verifier(task); - goto out_garbage; + switch (error) { + case -EPROTONOSUPPORT: + goto out_err; + case -EACCES: + /* Re-encode with a fresh cred */ + fallthrough; + default: + goto out_garbage; + } out_msg_denied: error = -EACCES; diff -u linux-riscv-6.5.0/net/tls/tls_sw.c linux-riscv-6.5.0/net/tls/tls_sw.c --- linux-riscv-6.5.0/net/tls/tls_sw.c +++ linux-riscv-6.5.0/net/tls/tls_sw.c @@ -952,6 +952,8 @@ } sk_msg_page_add(msg_pl, page, part, off); + msg_pl->sg.copybreak = 0; + msg_pl->sg.curr = msg_pl->sg.end; sk_mem_charge(sk, part); *copied += part; try_to_copy -= part; @@ -1229,11 +1231,14 @@ lock_sock(sk); retry: + /* same checks as in tls_sw_push_pending_record() */ rec = ctx->open_rec; if (!rec) goto unlock; msg_pl = &rec->msg_plaintext; + if (msg_pl->sg.size == 0) + goto unlock; /* Check the BPF advisor and perform transmission. */ ret = bpf_exec_tx_verdict(msg_pl, sk, false, TLS_RECORD_TYPE_DATA, @@ -1288,6 +1293,7 @@ struct tls_context *tls_ctx = tls_get_ctx(sk); struct tls_sw_context_rx *ctx = tls_sw_ctx_rx(tls_ctx); DEFINE_WAIT_FUNC(wait, woken_wake_function); + int ret = 0; long timeo; timeo = sock_rcvtimeo(sk, nonblock); @@ -1299,6 +1305,9 @@ if (sk->sk_err) return sock_error(sk); + if (ret < 0) + return ret; + if (!skb_queue_empty(&sk->sk_receive_queue)) { tls_strp_check_rcv(&ctx->strp); if (tls_strp_msg_ready(ctx)) @@ -1317,10 +1326,10 @@ released = true; add_wait_queue(sk_sleep(sk), &wait); sk_set_bit(SOCKWQ_ASYNC_WAITDATA, sk); - sk_wait_event(sk, &timeo, - tls_strp_msg_ready(ctx) || - !sk_psock_queue_empty(psock), - &wait); + ret = sk_wait_event(sk, &timeo, + tls_strp_msg_ready(ctx) || + !sk_psock_queue_empty(psock), + &wait); sk_clear_bit(SOCKWQ_ASYNC_WAITDATA, sk); remove_wait_queue(sk_sleep(sk), &wait); @@ -1484,7 +1493,7 @@ */ aead_size = sizeof(*aead_req) + crypto_aead_reqsize(ctx->aead_recv); aead_size = ALIGN(aead_size, __alignof__(*dctx)); - mem = kmalloc(aead_size + struct_size(dctx, sg, n_sgin + n_sgout), + mem = kmalloc(aead_size + struct_size(dctx, sg, size_add(n_sgin, n_sgout)), sk->sk_allocation); if (!mem) { err = -ENOMEM; @@ -1845,13 +1854,11 @@ return sk_flush_backlog(sk); } -static int tls_rx_reader_lock(struct sock *sk, struct tls_sw_context_rx *ctx, - bool nonblock) +static int tls_rx_reader_acquire(struct sock *sk, struct tls_sw_context_rx *ctx, + bool nonblock) { long timeo; - int err; - - lock_sock(sk); + int ret; timeo = sock_rcvtimeo(sk, nonblock); @@ -1861,30 +1868,36 @@ ctx->reader_contended = 1; add_wait_queue(&ctx->wq, &wait); - sk_wait_event(sk, &timeo, - !READ_ONCE(ctx->reader_present), &wait); + ret = sk_wait_event(sk, &timeo, + !READ_ONCE(ctx->reader_present), &wait); remove_wait_queue(&ctx->wq, &wait); - if (timeo <= 0) { - err = -EAGAIN; - goto err_unlock; - } - if (signal_pending(current)) { - err = sock_intr_errno(timeo); - goto err_unlock; - } + if (timeo <= 0) + return -EAGAIN; + if (signal_pending(current)) + return sock_intr_errno(timeo); + if (ret < 0) + return ret; } WRITE_ONCE(ctx->reader_present, 1); return 0; +} -err_unlock: - release_sock(sk); +static int tls_rx_reader_lock(struct sock *sk, struct tls_sw_context_rx *ctx, + bool nonblock) +{ + int err; + + lock_sock(sk); + err = tls_rx_reader_acquire(sk, ctx, nonblock); + if (err) + release_sock(sk); return err; } -static void tls_rx_reader_unlock(struct sock *sk, struct tls_sw_context_rx *ctx) +static void tls_rx_reader_release(struct sock *sk, struct tls_sw_context_rx *ctx) { if (unlikely(ctx->reader_contended)) { if (wq_has_sleeper(&ctx->wq)) @@ -1896,6 +1909,11 @@ } WRITE_ONCE(ctx->reader_present, 0); +} + +static void tls_rx_reader_unlock(struct sock *sk, struct tls_sw_context_rx *ctx) +{ + tls_rx_reader_release(sk, ctx); release_sock(sk); } diff -u linux-riscv-6.5.0/net/unix/af_unix.c linux-riscv-6.5.0/net/unix/af_unix.c --- linux-riscv-6.5.0/net/unix/af_unix.c +++ linux-riscv-6.5.0/net/unix/af_unix.c @@ -212,8 +212,6 @@ } #endif /* CONFIG_SECURITY_NETWORK */ -#define unix_peer(sk) (unix_sk(sk)->peer) - static inline int unix_our_peer(struct sock *sk, struct sock *osk) { return unix_peer(osk) == sk; @@ -2553,15 +2551,16 @@ if (!(state->flags & MSG_PEEK)) WRITE_ONCE(u->oob_skb, NULL); - + else + skb_get(oob_skb); unix_state_unlock(sk); chunk = state->recv_actor(oob_skb, 0, chunk, state); - if (!(state->flags & MSG_PEEK)) { + if (!(state->flags & MSG_PEEK)) UNIXCB(oob_skb).consumed += 1; - kfree_skb(oob_skb); - } + + consume_skb(oob_skb); mutex_unlock(&u->iolock); diff -u linux-riscv-6.5.0/net/wireless/core.c linux-riscv-6.5.0/net/wireless/core.c --- linux-riscv-6.5.0/net/wireless/core.c +++ linux-riscv-6.5.0/net/wireless/core.c @@ -1049,7 +1049,8 @@ } EXPORT_SYMBOL(wiphy_rfkill_start_polling); -void cfg80211_process_wiphy_works(struct cfg80211_registered_device *rdev) +void cfg80211_process_wiphy_works(struct cfg80211_registered_device *rdev, + struct wiphy_work *end) { unsigned int runaway_limit = 100; unsigned long flags; @@ -1068,6 +1069,10 @@ wk->func(&rdev->wiphy, wk); spin_lock_irqsave(&rdev->wiphy_work_lock, flags); + + if (wk == end) + break; + if (WARN_ON(--runaway_limit == 0)) INIT_LIST_HEAD(&rdev->wiphy_work_list); } @@ -1118,7 +1123,7 @@ #endif /* surely nothing is reachable now, clean up work */ - cfg80211_process_wiphy_works(rdev); + cfg80211_process_wiphy_works(rdev, NULL); wiphy_unlock(&rdev->wiphy); rtnl_unlock(); @@ -1622,7 +1627,7 @@ list_add_tail(&work->entry, &rdev->wiphy_work_list); spin_unlock_irqrestore(&rdev->wiphy_work_lock, flags); - schedule_work(&rdev->wiphy_work); + queue_work(system_unbound_wq, &rdev->wiphy_work); } EXPORT_SYMBOL_GPL(wiphy_work_queue); @@ -1640,6 +1645,21 @@ } EXPORT_SYMBOL_GPL(wiphy_work_cancel); +void wiphy_work_flush(struct wiphy *wiphy, struct wiphy_work *work) +{ + struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy); + unsigned long flags; + bool run; + + spin_lock_irqsave(&rdev->wiphy_work_lock, flags); + run = !work || !list_empty(&work->entry); + spin_unlock_irqrestore(&rdev->wiphy_work_lock, flags); + + if (run) + cfg80211_process_wiphy_works(rdev, work); +} +EXPORT_SYMBOL_GPL(wiphy_work_flush); + void wiphy_delayed_work_timer(struct timer_list *t) { struct wiphy_delayed_work *dwork = from_timer(dwork, t, timer); @@ -1672,6 +1692,16 @@ } EXPORT_SYMBOL_GPL(wiphy_delayed_work_cancel); +void wiphy_delayed_work_flush(struct wiphy *wiphy, + struct wiphy_delayed_work *dwork) +{ + lockdep_assert_held(&wiphy->mtx); + + del_timer_sync(&dwork->timer); + wiphy_work_flush(wiphy, &dwork->work); +} +EXPORT_SYMBOL_GPL(wiphy_delayed_work_flush); + static int __init cfg80211_init(void) { int err; diff -u linux-riscv-6.5.0/net/wireless/core.h linux-riscv-6.5.0/net/wireless/core.h --- linux-riscv-6.5.0/net/wireless/core.h +++ linux-riscv-6.5.0/net/wireless/core.h @@ -464,7 +464,8 @@ struct net_device *dev, enum nl80211_iftype ntype, struct vif_params *params); void cfg80211_process_rdev_events(struct cfg80211_registered_device *rdev); -void cfg80211_process_wiphy_works(struct cfg80211_registered_device *rdev); +void cfg80211_process_wiphy_works(struct cfg80211_registered_device *rdev, + struct wiphy_work *end); void cfg80211_process_wdev_events(struct wireless_dev *wdev); bool cfg80211_does_bw_fit_range(const struct ieee80211_freq_range *freq_range, diff -u linux-riscv-6.5.0/net/wireless/mlme.c linux-riscv-6.5.0/net/wireless/mlme.c --- linux-riscv-6.5.0/net/wireless/mlme.c +++ linux-riscv-6.5.0/net/wireless/mlme.c @@ -43,10 +43,11 @@ for (link_id = 0; link_id < ARRAY_SIZE(data->links); link_id++) { cr.links[link_id].status = data->links[link_id].status; + cr.links[link_id].bss = data->links[link_id].bss; + WARN_ON_ONCE(cr.links[link_id].status != WLAN_STATUS_SUCCESS && (!cr.ap_mld_addr || !cr.links[link_id].bss)); - cr.links[link_id].bss = data->links[link_id].bss; if (!cr.links[link_id].bss) continue; cr.links[link_id].bssid = data->links[link_id].bss->bssid; diff -u linux-riscv-6.5.0/net/wireless/nl80211.c linux-riscv-6.5.0/net/wireless/nl80211.c --- linux-riscv-6.5.0/net/wireless/nl80211.c +++ linux-riscv-6.5.0/net/wireless/nl80211.c @@ -5910,6 +5910,21 @@ nlmsg_free(msg); } +static int nl80211_validate_ap_phy_operation(struct cfg80211_ap_settings *params) +{ + struct ieee80211_channel *channel = params->chandef.chan; + + if ((params->he_cap || params->he_oper) && + (channel->flags & IEEE80211_CHAN_NO_HE)) + return -EOPNOTSUPP; + + if ((params->eht_cap || params->eht_oper) && + (channel->flags & IEEE80211_CHAN_NO_EHT)) + return -EOPNOTSUPP; + + return 0; +} + static int nl80211_start_ap(struct sk_buff *skb, struct genl_info *info) { struct cfg80211_registered_device *rdev = info->user_ptr[0]; @@ -6179,6 +6194,10 @@ if (err) goto out_unlock; + err = nl80211_validate_ap_phy_operation(params); + if (err) + goto out_unlock; + if (info->attrs[NL80211_ATTR_AP_SETTINGS_FLAGS]) params->flags = nla_get_u32( info->attrs[NL80211_ATTR_AP_SETTINGS_FLAGS]); @@ -8483,7 +8502,7 @@ struct cfg80211_registered_device *rdev = info->user_ptr[0]; struct net_device *dev = info->user_ptr[1]; struct wireless_dev *wdev = dev->ieee80211_ptr; - struct mesh_config cfg; + struct mesh_config cfg = {}; u32 mask; int err; diff -u linux-riscv-6.5.0/scripts/gdb/linux/constants.py.in linux-riscv-6.5.0/scripts/gdb/linux/constants.py.in --- linux-riscv-6.5.0/scripts/gdb/linux/constants.py.in +++ linux-riscv-6.5.0/scripts/gdb/linux/constants.py.in @@ -63,10 +63,11 @@ LX_GDBPARSED(IRQ_HIDDEN) /* linux/module.h */ -LX_GDBPARSED(MOD_TEXT) -LX_GDBPARSED(MOD_DATA) -LX_GDBPARSED(MOD_RODATA) -LX_GDBPARSED(MOD_RO_AFTER_INIT) +if IS_BUILTIN(CONFIG_MODULES): + LX_GDBPARSED(MOD_TEXT) + LX_GDBPARSED(MOD_DATA) + LX_GDBPARSED(MOD_RODATA) + LX_GDBPARSED(MOD_RO_AFTER_INIT) /* linux/mount.h */ LX_VALUE(MNT_NOSUID) diff -u linux-riscv-6.5.0/scripts/mod/file2alias.c linux-riscv-6.5.0/scripts/mod/file2alias.c --- linux-riscv-6.5.0/scripts/mod/file2alias.c +++ linux-riscv-6.5.0/scripts/mod/file2alias.c @@ -1348,13 +1348,13 @@ /* Looks like: tee:uuid */ static int do_tee_entry(const char *filename, void *symval, char *alias) { - DEF_FIELD(symval, tee_client_device_id, uuid); + DEF_FIELD_ADDR(symval, tee_client_device_id, uuid); sprintf(alias, "tee:%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", - uuid.b[0], uuid.b[1], uuid.b[2], uuid.b[3], uuid.b[4], - uuid.b[5], uuid.b[6], uuid.b[7], uuid.b[8], uuid.b[9], - uuid.b[10], uuid.b[11], uuid.b[12], uuid.b[13], uuid.b[14], - uuid.b[15]); + uuid->b[0], uuid->b[1], uuid->b[2], uuid->b[3], uuid->b[4], + uuid->b[5], uuid->b[6], uuid->b[7], uuid->b[8], uuid->b[9], + uuid->b[10], uuid->b[11], uuid->b[12], uuid->b[13], uuid->b[14], + uuid->b[15]); add_wildcard(alias); return 1; @@ -1401,10 +1401,10 @@ /* Looks like: ishtp:{guid} */ static int do_ishtp_entry(const char *filename, void *symval, char *alias) { - DEF_FIELD(symval, ishtp_device_id, guid); + DEF_FIELD_ADDR(symval, ishtp_device_id, guid); strcpy(alias, ISHTP_MODULE_PREFIX "{"); - add_guid(alias, guid); + add_guid(alias, *guid); strcat(alias, "}"); return 1; diff -u linux-riscv-6.5.0/scripts/mod/modpost.c linux-riscv-6.5.0/scripts/mod/modpost.c --- linux-riscv-6.5.0/scripts/mod/modpost.c +++ linux-riscv-6.5.0/scripts/mod/modpost.c @@ -1469,6 +1469,7 @@ return; for (rela = start; rela < stop; rela++) { + Elf_Sym *tsym; r.r_offset = TO_NATIVE(rela->r_offset); #if KERNEL_ELFCLASS == ELFCLASS64 if (elf->hdr->e_machine == EM_MIPS) { @@ -1485,7 +1486,8 @@ r.r_info = TO_NATIVE(rela->r_info); r_sym = ELF_R_SYM(r.r_info); #endif - r.r_addend = TO_NATIVE(rela->r_addend); + tsym = elf->symtab_start + r_sym; + r.r_addend = tsym->st_value + TO_NATIVE(rela->r_addend); switch (elf->hdr->e_machine) { case EM_RISCV: if (!strcmp("__ex_table", fromsec) && @@ -1499,7 +1501,7 @@ break; } - check_section_mismatch(mod, elf, elf->symtab_start + r_sym, + check_section_mismatch(mod, elf, tsym, fsecndx, fromsec, r.r_offset, r.r_addend); } } diff -u linux-riscv-6.5.0/security/integrity/ima/ima_api.c linux-riscv-6.5.0/security/integrity/ima/ima_api.c --- linux-riscv-6.5.0/security/integrity/ima/ima_api.c +++ linux-riscv-6.5.0/security/integrity/ima/ima_api.c @@ -243,6 +243,7 @@ { const char *audit_cause = "failed"; struct inode *inode = file_inode(file); + struct inode *real_inode = d_real_inode(file_dentry(file)); const char *filename = file->f_path.dentry->d_name.name; struct ima_max_digest_data hash; struct kstat stat; @@ -302,6 +303,10 @@ iint->ima_hash = tmpbuf; memcpy(iint->ima_hash, &hash, length); iint->version = i_version; + if (real_inode != inode) { + iint->real_ino = real_inode->i_ino; + iint->real_dev = real_inode->i_sb->s_dev; + } /* Possibly temporary failure due to type of read (eg. O_DIRECT) */ if (!result) diff -u linux-riscv-6.5.0/security/integrity/ima/ima_main.c linux-riscv-6.5.0/security/integrity/ima/ima_main.c --- linux-riscv-6.5.0/security/integrity/ima/ima_main.c +++ linux-riscv-6.5.0/security/integrity/ima/ima_main.c @@ -25,6 +25,7 @@ #include #include #include +#include #include "ima.h" @@ -207,7 +208,7 @@ struct lsmblob *blob, char *buf, loff_t size, int mask, enum ima_hooks func) { - struct inode *inode = file_inode(file); + struct inode *backing_inode, *inode = file_inode(file); struct integrity_iint_cache *iint = NULL; struct ima_template_desc *template_desc = NULL; char *pathbuf = NULL; @@ -284,6 +285,19 @@ iint->measured_pcrs = 0; } + /* Detect and re-evaluate changes made to the backing file. */ + backing_inode = d_real_inode(file_dentry(file)); + if (backing_inode != inode && + (action & IMA_DO_MASK) && (iint->flags & IMA_DONE_MASK)) { + if (!IS_I_VERSION(backing_inode) || + backing_inode->i_sb->s_dev != iint->real_dev || + backing_inode->i_ino != iint->real_ino || + !inode_eq_iversion(backing_inode, iint->version)) { + iint->flags &= ~IMA_DONE_MASK; + iint->measured_pcrs = 0; + } + } + /* Determine if already appraised/measured based on bitmask * (IMA_MEASURE, IMA_MEASURED, IMA_XXXX_APPRAISE, IMA_XXXX_APPRAISED, * IMA_AUDIT, IMA_AUDITED) diff -u linux-riscv-6.5.0/security/keys/trusted-keys/trusted_core.c linux-riscv-6.5.0/security/keys/trusted-keys/trusted_core.c --- linux-riscv-6.5.0/security/keys/trusted-keys/trusted_core.c +++ linux-riscv-6.5.0/security/keys/trusted-keys/trusted_core.c @@ -358,17 +358,17 @@ if (!get_random) get_random = kernel_get_random; - static_call_update(trusted_key_seal, - trusted_key_sources[i].ops->seal); - static_call_update(trusted_key_unseal, - trusted_key_sources[i].ops->unseal); - static_call_update(trusted_key_get_random, - get_random); - trusted_key_exit = trusted_key_sources[i].ops->exit; - migratable = trusted_key_sources[i].ops->migratable; - ret = trusted_key_sources[i].ops->init(); - if (!ret) + if (!ret) { + static_call_update(trusted_key_seal, trusted_key_sources[i].ops->seal); + static_call_update(trusted_key_unseal, trusted_key_sources[i].ops->unseal); + static_call_update(trusted_key_get_random, get_random); + + trusted_key_exit = trusted_key_sources[i].ops->exit; + migratable = trusted_key_sources[i].ops->migratable; + } + + if (!ret || ret != -ENODEV) break; } diff -u linux-riscv-6.5.0/sound/hda/intel-dsp-config.c linux-riscv-6.5.0/sound/hda/intel-dsp-config.c --- linux-riscv-6.5.0/sound/hda/intel-dsp-config.c +++ linux-riscv-6.5.0/sound/hda/intel-dsp-config.c @@ -343,6 +343,12 @@ DMI_MATCH(DMI_SYS_VENDOR, "Google"), } }, + { + .ident = "Google firmware", + .matches = { + DMI_MATCH(DMI_BIOS_VERSION, "Google"), + } + }, {} } }, diff -u linux-riscv-6.5.0/sound/pci/hda/cs35l41_hda.c linux-riscv-6.5.0/sound/pci/hda/cs35l41_hda.c --- linux-riscv-6.5.0/sound/pci/hda/cs35l41_hda.c +++ linux-riscv-6.5.0/sound/pci/hda/cs35l41_hda.c @@ -1806,8 +1806,7 @@ ret = component_add(cs35l41->dev, &cs35l41_hda_comp_ops); if (ret) { dev_err(cs35l41->dev, "Register component failed: %d\n", ret); - pm_runtime_disable(cs35l41->dev); - goto err; + goto err_pm; } dev_info(cs35l41->dev, "Cirrus Logic CS35L41 (%x), Revision: %02X\n", regid, reg_revid); @@ -1815,6 +1814,7 @@ return 0; err_pm: + pm_runtime_dont_use_autosuspend(cs35l41->dev); pm_runtime_disable(cs35l41->dev); pm_runtime_put_noidle(cs35l41->dev); @@ -1834,6 +1834,7 @@ struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev); pm_runtime_get_sync(cs35l41->dev); + pm_runtime_dont_use_autosuspend(cs35l41->dev); pm_runtime_disable(cs35l41->dev); if (cs35l41->halo_initialized) diff -u linux-riscv-6.5.0/sound/pci/hda/hda_intel.c linux-riscv-6.5.0/sound/pci/hda/hda_intel.c --- linux-riscv-6.5.0/sound/pci/hda/hda_intel.c +++ linux-riscv-6.5.0/sound/pci/hda/hda_intel.c @@ -2230,6 +2230,8 @@ SND_PCI_QUIRK(0x17aa, 0x36a7, "Lenovo C50 All in one", 0), /* https://bugs.launchpad.net/bugs/1821663 */ SND_PCI_QUIRK(0x1631, 0xe017, "Packard Bell NEC IMEDIA 5204", 0), + /* KONTRON SinglePC may cause a stall at runtime resume */ + SND_PCI_QUIRK(0x1734, 0x1232, "KONTRON SinglePC", 0), {} }; #endif /* CONFIG_PM */ diff -u linux-riscv-6.5.0/sound/pci/hda/patch_cs8409.c linux-riscv-6.5.0/sound/pci/hda/patch_cs8409.c --- linux-riscv-6.5.0/sound/pci/hda/patch_cs8409.c +++ linux-riscv-6.5.0/sound/pci/hda/patch_cs8409.c @@ -1371,6 +1371,7 @@ spec->scodecs[CS8409_CODEC1] = &dolphin_cs42l42_1; spec->scodecs[CS8409_CODEC1]->codec = codec; spec->num_scodecs = 2; + spec->gen.suppress_vmaster = 1; codec->patch_ops = cs8409_dolphin_patch_ops; diff -u linux-riscv-6.5.0/sound/pci/hda/patch_realtek.c linux-riscv-6.5.0/sound/pci/hda/patch_realtek.c --- linux-riscv-6.5.0/sound/pci/hda/patch_realtek.c +++ linux-riscv-6.5.0/sound/pci/hda/patch_realtek.c @@ -1987,6 +1987,7 @@ ALC887_FIXUP_ASUS_AUDIO, ALC887_FIXUP_ASUS_HMIC, ALCS1200A_FIXUP_MIC_VREF, + ALC888VD_FIXUP_MIC_100VREF, }; static void alc889_fixup_coef(struct hda_codec *codec, @@ -2540,6 +2541,13 @@ {} } }, + [ALC888VD_FIXUP_MIC_100VREF] = { + .type = HDA_FIXUP_PINCTLS, + .v.pins = (const struct hda_pintbl[]) { + { 0x18, PIN_VREF100 }, /* headset mic */ + {} + } + }, }; static const struct snd_pci_quirk alc882_fixup_tbl[] = { @@ -2609,6 +2617,7 @@ SND_PCI_QUIRK(0x106b, 0x4a00, "Macbook 5,2", ALC889_FIXUP_MBA11_VREF), SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC882_FIXUP_EAPD), + SND_PCI_QUIRK(0x10ec, 0x12d8, "iBase Elo Touch", ALC888VD_FIXUP_MIC_100VREF), SND_PCI_QUIRK(0x13fe, 0x1009, "Advantech MIT-W101", ALC886_FIXUP_EAPD), SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte EP45-DS3/Z87X-UD3H", ALC889_FIXUP_FRONT_HP_NO_PRESENCE), SND_PCI_QUIRK(0x1458, 0xa0b8, "Gigabyte AZ370-Gaming", ALC1220_FIXUP_GB_DUAL_CODECS), @@ -3256,6 +3265,7 @@ case 0x10ec0230: case 0x10ec0236: case 0x10ec0256: + case 0x10ec0257: case 0x19e58326: alc_write_coef_idx(codec, 0x48, 0x0); alc_update_coef_idx(codec, 0x49, 0x0045, 0x0); @@ -3285,6 +3295,7 @@ case 0x10ec0230: case 0x10ec0236: case 0x10ec0256: + case 0x10ec0257: case 0x19e58326: alc_write_coef_idx(codec, 0x48, 0xd011); alc_update_coef_idx(codec, 0x49, 0x007f, 0x0045); @@ -6496,6 +6507,7 @@ case 0x10ec0236: case 0x10ec0255: case 0x10ec0256: + case 0x10ec0257: case 0x19e58326: alc_update_coef_idx(codec, 0x1b, 0x8000, 1 << 15); /* Reset HP JD */ alc_update_coef_idx(codec, 0x1b, 0x8000, 0 << 15); @@ -7098,6 +7110,24 @@ 0x0); /* Make sure 0x14 was disable */ } } +/* Fix none verb table of Headset Mic pin */ +static void alc_fixup_headset_mic(struct hda_codec *codec, + const struct hda_fixup *fix, int action) +{ + struct alc_spec *spec = codec->spec; + static const struct hda_pintbl pincfgs[] = { + { 0x19, 0x03a1103c }, + { } + }; + + switch (action) { + case HDA_FIXUP_ACT_PRE_PROBE: + snd_hda_apply_pincfgs(codec, pincfgs); + alc_update_coef_idx(codec, 0x45, 0xf<<12 | 1<<10, 5<<12); + spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; + break; + } +} enum { @@ -7365,7 +7395,9 @@ ALC245_FIXUP_HP_X360_MUTE_LEDS, ALC287_FIXUP_THINKPAD_I2S_SPK, ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD, + ALC2XX_FIXUP_HEADSET_MIC, ALC289_FIXUP_DELL_CS35L41_SPI_2, + ALC294_FIXUP_CS35L41_I2C_2, }; /* A special fixup for Lenovo C940 and Yoga Duet 7; @@ -9485,6 +9517,14 @@ .chained = true, .chain_id = ALC289_FIXUP_DUAL_SPK }, + [ALC2XX_FIXUP_HEADSET_MIC] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc_fixup_headset_mic, + }, + [ALC294_FIXUP_CS35L41_I2C_2] = { + .type = HDA_FIXUP_FUNC, + .v.func = cs35l41_fixup_i2c_two, + }, }; static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -9588,6 +9628,7 @@ SND_PCI_QUIRK(0x1028, 0x0b1a, "Dell Precision 5570", ALC289_FIXUP_DUAL_SPK), SND_PCI_QUIRK(0x1028, 0x0b37, "Dell Inspiron 16 Plus 7620 2-in-1", ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS), SND_PCI_QUIRK(0x1028, 0x0b71, "Dell Inspiron 16 Plus 7620", ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS), + SND_PCI_QUIRK(0x1028, 0x0beb, "Dell XPS 15 9530 (2023)", ALC289_FIXUP_DELL_CS35L41_SPI_2), SND_PCI_QUIRK(0x1028, 0x0c03, "Dell Precision 5340", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x0c19, "Dell Precision 3340", ALC236_FIXUP_DELL_DUAL_CODECS), SND_PCI_QUIRK(0x1028, 0x0c1a, "Dell Precision 3340", ALC236_FIXUP_DELL_DUAL_CODECS), @@ -9736,6 +9777,7 @@ SND_PCI_QUIRK(0x103c, 0x8898, "HP EliteBook 845 G8 Notebook PC", ALC285_FIXUP_HP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x103c, 0x88d0, "HP Pavilion 15-eh1xxx (mainboard 88D0)", ALC287_FIXUP_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x8902, "HP OMEN 16", ALC285_FIXUP_HP_MUTE_LED), + SND_PCI_QUIRK(0x103c, 0x890e, "HP 255 G8 Notebook PC", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2), SND_PCI_QUIRK(0x103c, 0x8919, "HP Pavilion Aero Laptop 13-be0xxx", ALC287_FIXUP_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x896d, "HP ZBook Firefly 16 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x896e, "HP EliteBook x360 830 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), @@ -9761,6 +9803,7 @@ SND_PCI_QUIRK(0x103c, 0x89c6, "Zbook Fury 17 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x89ca, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), SND_PCI_QUIRK(0x103c, 0x89d3, "HP EliteBook 645 G9 (MB 89D2)", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), + SND_PCI_QUIRK(0x103c, 0x8a20, "HP Laptop 15s-fq5xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2), SND_PCI_QUIRK(0x103c, 0x8a25, "HP Victus 16-d1xxx (MB 8A25)", ALC245_FIXUP_HP_MUTE_LED_COEFBIT), SND_PCI_QUIRK(0x103c, 0x8a78, "HP Dev One", ALC285_FIXUP_HP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x103c, 0x8aa0, "HP ProBook 440 G9 (MB 8A9E)", ALC236_FIXUP_HP_GPIO_LED), @@ -9770,6 +9813,7 @@ SND_PCI_QUIRK(0x103c, 0x8abb, "HP ZBook Firefly 14 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x8ad1, "HP EliteBook 840 14 inch G9 Notebook PC", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x8ad2, "HP EliteBook 860 16 inch G9 Notebook PC", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), + SND_PCI_QUIRK(0x103c, 0x8b2f, "HP 255 15.6 inch G10 Notebook PC", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2), SND_PCI_QUIRK(0x103c, 0x8b42, "HP", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x8b43, "HP", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x8b44, "HP", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), @@ -9803,12 +9847,16 @@ SND_PCI_QUIRK(0x103c, 0x8c70, "HP EliteBook 835 G11", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x8c71, "HP EliteBook 845 G11", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x8c72, "HP EliteBook 865 G11", ALC287_FIXUP_CS35L41_I2C_2_HP_GPIO_LED), + SND_PCI_QUIRK(0x103c, 0x8ca4, "HP ZBook Fury", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), + SND_PCI_QUIRK(0x103c, 0x8ca7, "HP ZBook Fury", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), + SND_PCI_QUIRK(0x103c, 0x8cf5, "HP ZBook Studio 16", ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED), SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC), SND_PCI_QUIRK(0x1043, 0x103f, "ASUS TX300", ALC282_FIXUP_ASUS_TX300), SND_PCI_QUIRK(0x1043, 0x106d, "Asus K53BE", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x1043, 0x10a1, "ASUS UX391UA", ALC294_FIXUP_ASUS_SPK), SND_PCI_QUIRK(0x1043, 0x10c0, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC), SND_PCI_QUIRK(0x1043, 0x10d0, "ASUS X540LA/X540LJ", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1043, 0x10d3, "ASUS K6500ZC", ALC294_FIXUP_ASUS_SPK), SND_PCI_QUIRK(0x1043, 0x115d, "Asus 1015E", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x1043, 0x11c0, "ASUS X556UR", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1043, 0x125e, "ASUS Q524UQK", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE), @@ -9830,6 +9878,7 @@ SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A), SND_PCI_QUIRK(0x1043, 0x1573, "ASUS GZ301V", ALC285_FIXUP_ASUS_HEADSET_MIC), SND_PCI_QUIRK(0x1043, 0x1662, "ASUS GV301QH", ALC294_FIXUP_ASUS_DUAL_SPK), + SND_PCI_QUIRK(0x1043, 0x1663, "ASUS GU603ZV", ALC285_FIXUP_ASUS_HEADSET_MIC), SND_PCI_QUIRK(0x1043, 0x1683, "ASUS UM3402YAR", ALC287_FIXUP_CS35L41_I2C_2), SND_PCI_QUIRK(0x1043, 0x16b2, "ASUS GU603", ALC289_FIXUP_ASUS_GA401), SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC), @@ -9838,6 +9887,7 @@ SND_PCI_QUIRK(0x1043, 0x17f3, "ROG Ally RC71L_RC71L", ALC294_FIXUP_ASUS_ALLY), SND_PCI_QUIRK(0x1043, 0x1881, "ASUS Zephyrus S/M", ALC294_FIXUP_ASUS_GX502_PINS), SND_PCI_QUIRK(0x1043, 0x18b1, "Asus MJ401TA", ALC256_FIXUP_ASUS_HEADSET_MIC), + SND_PCI_QUIRK(0x1043, 0x18d3, "ASUS UM3504DA", ALC294_FIXUP_CS35L41_I2C_2), SND_PCI_QUIRK(0x1043, 0x18f1, "Asus FX505DT", ALC256_FIXUP_ASUS_HEADSET_MIC), SND_PCI_QUIRK(0x1043, 0x194e, "ASUS UX563FD", ALC294_FIXUP_ASUS_HPE), SND_PCI_QUIRK(0x1043, 0x1970, "ASUS UX550VE", ALC289_FIXUP_ASUS_GA401), @@ -9846,12 +9896,17 @@ SND_PCI_QUIRK(0x1043, 0x19e1, "ASUS UX581LV", ALC295_FIXUP_ASUS_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), SND_PCI_QUIRK(0x1043, 0x1a30, "ASUS X705UD", ALC256_FIXUP_ASUS_MIC), + SND_PCI_QUIRK(0x1043, 0x1a63, "ASUS UX3405MA", ALC245_FIXUP_CS35L41_SPI_2), + SND_PCI_QUIRK(0x1043, 0x1a83, "ASUS UM5302LA", ALC294_FIXUP_CS35L41_I2C_2), SND_PCI_QUIRK(0x1043, 0x1a8f, "ASUS UX582ZS", ALC245_FIXUP_CS35L41_SPI_2), SND_PCI_QUIRK(0x1043, 0x1b11, "ASUS UX431DA", ALC294_FIXUP_ASUS_COEF_1B), SND_PCI_QUIRK(0x1043, 0x1b13, "Asus U41SV", ALC269_FIXUP_INV_DMIC), SND_PCI_QUIRK(0x1043, 0x1b93, "ASUS G614JVR/JIR", ALC245_FIXUP_CS35L41_SPI_2), SND_PCI_QUIRK(0x1043, 0x1bbd, "ASUS Z550MA", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1043, 0x1c03, "ASUS UM3406HA", ALC287_FIXUP_CS35L41_I2C_2), SND_PCI_QUIRK(0x1043, 0x1c23, "Asus X55U", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), + SND_PCI_QUIRK(0x1043, 0x1c33, "ASUS UX5304MA", ALC245_FIXUP_CS35L41_SPI_2), + SND_PCI_QUIRK(0x1043, 0x1c43, "ASUS UX8406MA", ALC245_FIXUP_CS35L41_SPI_2), SND_PCI_QUIRK(0x1043, 0x1c62, "ASUS GU603", ALC289_FIXUP_ASUS_GA401), SND_PCI_QUIRK(0x1043, 0x1c92, "ASUS ROG Strix G15", ALC285_FIXUP_ASUS_G533Z_PINS), SND_PCI_QUIRK(0x1043, 0x1c9f, "ASUS G614JI", ALC285_FIXUP_ASUS_HEADSET_MIC), @@ -9862,6 +9917,7 @@ SND_PCI_QUIRK(0x1043, 0x1d4e, "ASUS TM420", ALC256_FIXUP_ASUS_HPE), SND_PCI_QUIRK(0x1043, 0x1e02, "ASUS UX3402ZA", ALC245_FIXUP_CS35L41_SPI_2), SND_PCI_QUIRK(0x1043, 0x16a3, "ASUS UX3402VA", ALC245_FIXUP_CS35L41_SPI_2), + SND_PCI_QUIRK(0x1043, 0x1f62, "ASUS UX7602ZM", ALC245_FIXUP_CS35L41_SPI_2), SND_PCI_QUIRK(0x1043, 0x1e11, "ASUS Zephyrus G15", ALC289_FIXUP_ASUS_GA502), SND_PCI_QUIRK(0x1043, 0x1e12, "ASUS UM3402", ALC287_FIXUP_CS35L41_I2C_2), SND_PCI_QUIRK(0x1043, 0x1e51, "ASUS Zephyrus M15", ALC294_FIXUP_ASUS_GU502_PINS), @@ -10054,6 +10110,7 @@ SND_PCI_QUIRK(0x17aa, 0x3178, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC), SND_PCI_QUIRK(0x17aa, 0x31af, "ThinkCentre Station", ALC623_FIXUP_LENOVO_THINKSTATION_P340), SND_PCI_QUIRK(0x17aa, 0x3801, "Lenovo Yoga9 14IAP7", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN), + SND_PCI_QUIRK(0x17aa, 0x3882, "Lenovo Yoga Pro 7 14APH8", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN), SND_PCI_QUIRK(0x17aa, 0x3802, "Lenovo Yoga DuetITL 2021", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS), SND_PCI_QUIRK(0x17aa, 0x3813, "Legion 7i 15IMHG05", ALC287_FIXUP_LEGION_15IMHG05_SPEAKERS), SND_PCI_QUIRK(0x17aa, 0x3818, "Lenovo C940 / Yoga Duet 7", ALC298_FIXUP_LENOVO_C940_DUET7), @@ -10125,6 +10182,8 @@ SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", ALC256_FIXUP_INTEL_NUC10), SND_PCI_QUIRK(0x8086, 0x3038, "Intel NUC 13", ALC295_FIXUP_CHROME_BOOK), SND_PCI_QUIRK(0xf111, 0x0001, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0xf111, 0x0005, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0xf111, 0x0006, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE), #if 0 /* Below is a quirk table taken from the old code. @@ -10703,22 +10762,6 @@ {0x12, 0x90a60130}, {0x17, 0x90170110}, {0x21, 0x03211020}), - SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE, - {0x14, 0x90170110}, - {0x21, 0x04211020}), - SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE, - {0x14, 0x90170110}, - {0x21, 0x04211030}), - SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, - ALC295_STANDARD_PINS, - {0x17, 0x21014020}, - {0x18, 0x21a19030}), - SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, - ALC295_STANDARD_PINS, - {0x17, 0x21014040}, - {0x18, 0x21a19050}), - SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, - ALC295_STANDARD_PINS), SND_HDA_PIN_QUIRK(0x10ec0298, 0x1028, "Dell", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE, ALC298_STANDARD_PINS, {0x17, 0x90170110}), @@ -10762,6 +10805,9 @@ SND_HDA_PIN_QUIRK(0x10ec0289, 0x1028, "Dell", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE, {0x19, 0x40000000}, {0x1b, 0x40000000}), + SND_HDA_PIN_QUIRK(0x10ec0295, 0x1028, "Dell", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE, + {0x19, 0x40000000}, + {0x1b, 0x40000000}), SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, {0x19, 0x40000000}, {0x1a, 0x40000000}), @@ -10771,6 +10817,8 @@ SND_HDA_PIN_QUIRK(0x10ec0274, 0x1028, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB, {0x19, 0x40000000}, {0x1a, 0x40000000}), + SND_HDA_PIN_QUIRK(0x10ec0256, 0x1043, "ASUS", ALC2XX_FIXUP_HEADSET_MIC, + {0x19, 0x40000000}), {} }; diff -u linux-riscv-6.5.0/sound/soc/amd/yc/acp6x-mach.c linux-riscv-6.5.0/sound/soc/amd/yc/acp6x-mach.c --- linux-riscv-6.5.0/sound/soc/amd/yc/acp6x-mach.c +++ linux-riscv-6.5.0/sound/soc/amd/yc/acp6x-mach.c @@ -286,6 +286,20 @@ { .driver_data = &acp6x_card, .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "E1504FA"), + } + }, + { + .driver_data = &acp6x_card, + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "E1504FA"), + } + }, + { + .driver_data = &acp6x_card, + .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "Micro-Star International Co., Ltd."), DMI_MATCH(DMI_PRODUCT_NAME, "Bravo 15 B7ED"), } diff -u linux-riscv-6.5.0/sound/soc/codecs/cs35l41-lib.c linux-riscv-6.5.0/sound/soc/codecs/cs35l41-lib.c --- linux-riscv-6.5.0/sound/soc/codecs/cs35l41-lib.c +++ linux-riscv-6.5.0/sound/soc/codecs/cs35l41-lib.c @@ -1244,7 +1244,7 @@ cs35l41_mdsync_down_seq[2].def = pwr_ctrl1; ret = regmap_multi_reg_write(regmap, cs35l41_mdsync_down_seq, ARRAY_SIZE(cs35l41_mdsync_down_seq)); - if (!enable) + if (ret || !enable) break; if (!pll_lock) diff -u linux-riscv-6.5.0/sound/soc/codecs/cs35l41.c linux-riscv-6.5.0/sound/soc/codecs/cs35l41.c --- linux-riscv-6.5.0/sound/soc/codecs/cs35l41.c +++ linux-riscv-6.5.0/sound/soc/codecs/cs35l41.c @@ -386,10 +386,18 @@ struct cs35l41_private *cs35l41 = data; unsigned int status[4] = { 0, 0, 0, 0 }; unsigned int masks[4] = { 0, 0, 0, 0 }; - int ret = IRQ_NONE; unsigned int i; + int ret; - pm_runtime_get_sync(cs35l41->dev); + ret = pm_runtime_resume_and_get(cs35l41->dev); + if (ret < 0) { + dev_err(cs35l41->dev, + "pm_runtime_resume_and_get failed in %s: %d\n", + __func__, ret); + return IRQ_NONE; + } + + ret = IRQ_NONE; for (i = 0; i < ARRAY_SIZE(status); i++) { regmap_read(cs35l41->regmap, @@ -1273,6 +1281,8 @@ regmap_update_bits(cs35l41->regmap, CS35L41_IRQ1_MASK3, CS35L41_INT3_PLL_LOCK_MASK, 0 << CS35L41_INT3_PLL_LOCK_SHIFT); + init_completion(&cs35l41->pll_lock); + ret = devm_request_threaded_irq(cs35l41->dev, cs35l41->irq, NULL, cs35l41_irq, IRQF_ONESHOT | IRQF_SHARED | irq_pol, "cs35l41", cs35l41); @@ -1295,8 +1305,6 @@ if (ret < 0) goto err; - init_completion(&cs35l41->pll_lock); - pm_runtime_set_autosuspend_delay(cs35l41->dev, 3000); pm_runtime_use_autosuspend(cs35l41->dev); pm_runtime_mark_last_busy(cs35l41->dev); @@ -1320,6 +1328,7 @@ return 0; err_pm: + pm_runtime_dont_use_autosuspend(cs35l41->dev); pm_runtime_disable(cs35l41->dev); pm_runtime_put_noidle(cs35l41->dev); @@ -1336,6 +1345,7 @@ void cs35l41_remove(struct cs35l41_private *cs35l41) { pm_runtime_get_sync(cs35l41->dev); + pm_runtime_dont_use_autosuspend(cs35l41->dev); pm_runtime_disable(cs35l41->dev); regmap_write(cs35l41->regmap, CS35L41_IRQ1_MASK1, 0xFFFFFFFF); diff -u linux-riscv-6.5.0/sound/soc/codecs/cs35l56.c linux-riscv-6.5.0/sound/soc/codecs/cs35l56.c --- linux-riscv-6.5.0/sound/soc/codecs/cs35l56.c +++ linux-riscv-6.5.0/sound/soc/codecs/cs35l56.c @@ -879,7 +879,7 @@ mutex_lock(&cs35l56->irq_lock); - init_completion(&cs35l56->init_completion); + reinit_completion(&cs35l56->init_completion); cs35l56_system_reset(cs35l56); diff -u linux-riscv-6.5.0/sound/soc/codecs/cs42l42-sdw.c linux-riscv-6.5.0/sound/soc/codecs/cs42l42-sdw.c --- linux-riscv-6.5.0/sound/soc/codecs/cs42l42-sdw.c +++ linux-riscv-6.5.0/sound/soc/codecs/cs42l42-sdw.c @@ -6,6 +6,7 @@ #include #include +#include #include #include #include diff -u linux-riscv-6.5.0/sound/soc/codecs/hdmi-codec.c linux-riscv-6.5.0/sound/soc/codecs/hdmi-codec.c --- linux-riscv-6.5.0/sound/soc/codecs/hdmi-codec.c +++ linux-riscv-6.5.0/sound/soc/codecs/hdmi-codec.c @@ -895,18 +895,13 @@ void *data) { struct hdmi_codec_priv *hcp = snd_soc_component_get_drvdata(component); - int ret = -ENOTSUPP; if (hcp->hcd.ops->hook_plugged_cb) { hcp->jack = jack; - ret = hcp->hcd.ops->hook_plugged_cb(component->dev->parent, - hcp->hcd.data, - plugged_cb, - component->dev); - if (ret) - hcp->jack = NULL; + return 0; } - return ret; + + return -ENOTSUPP; } static int hdmi_dai_spdif_probe(struct snd_soc_dai *dai) @@ -982,6 +977,21 @@ return ret; } +static int hdmi_probe(struct snd_soc_component *component) +{ + struct hdmi_codec_priv *hcp = snd_soc_component_get_drvdata(component); + int ret = 0; + + if (hcp->hcd.ops->hook_plugged_cb) { + ret = hcp->hcd.ops->hook_plugged_cb(component->dev->parent, + hcp->hcd.data, + plugged_cb, + component->dev); + } + + return ret; +} + static void hdmi_remove(struct snd_soc_component *component) { struct hdmi_codec_priv *hcp = snd_soc_component_get_drvdata(component); @@ -992,6 +1002,7 @@ } static const struct snd_soc_component_driver hdmi_driver = { + .probe = hdmi_probe, .remove = hdmi_remove, .dapm_widgets = hdmi_widgets, .num_dapm_widgets = ARRAY_SIZE(hdmi_widgets), diff -u linux-riscv-6.5.0/sound/soc/codecs/wm_adsp.c linux-riscv-6.5.0/sound/soc/codecs/wm_adsp.c --- linux-riscv-6.5.0/sound/soc/codecs/wm_adsp.c +++ linux-riscv-6.5.0/sound/soc/codecs/wm_adsp.c @@ -1443,12 +1443,12 @@ ret = wm_adsp_buffer_read(buf, caps->region_defs[i].base_offset, ®ion->base_addr); if (ret < 0) - return ret; + goto err; ret = wm_adsp_buffer_read(buf, caps->region_defs[i].size_offset, &offset); if (ret < 0) - return ret; + goto err; region->cumulative_size = offset; @@ -1459,6 +1459,10 @@ } return 0; + +err: + kfree(buf->regions); + return ret; } static void wm_adsp_buffer_clear(struct wm_adsp_compr_buf *buf) diff -u linux-riscv-6.5.0/sound/soc/fsl/fsl_sai.c linux-riscv-6.5.0/sound/soc/fsl/fsl_sai.c --- linux-riscv-6.5.0/sound/soc/fsl/fsl_sai.c +++ linux-riscv-6.5.0/sound/soc/fsl/fsl_sai.c @@ -674,6 +674,20 @@ FSL_SAI_CR3_TRCE_MASK, FSL_SAI_CR3_TRCE((dl_cfg[dl_cfg_idx].mask[tx] & trce_mask))); + /* + * When the TERE and FSD_MSTR enabled before configuring the word width + * There will be no frame sync clock issue, because word width impact + * the generation of frame sync clock. + * + * TERE enabled earlier only for i.MX8MP case for the hardware limitation, + * We need to disable FSD_MSTR before configuring word width, then enable + * FSD_MSTR bit for this specific case. + */ + if (sai->soc_data->mclk_with_tere && sai->mclk_direction_output && + !sai->is_consumer_mode) + regmap_update_bits(sai->regmap, FSL_SAI_xCR4(tx, ofs), + FSL_SAI_CR4_FSD_MSTR, 0); + regmap_update_bits(sai->regmap, FSL_SAI_xCR4(tx, ofs), FSL_SAI_CR4_SYWD_MASK | FSL_SAI_CR4_FRSZ_MASK | FSL_SAI_CR4_CHMOD_MASK, @@ -681,6 +695,13 @@ regmap_update_bits(sai->regmap, FSL_SAI_xCR5(tx, ofs), FSL_SAI_CR5_WNW_MASK | FSL_SAI_CR5_W0W_MASK | FSL_SAI_CR5_FBT_MASK, val_cr5); + + /* Enable FSD_MSTR after configuring word width */ + if (sai->soc_data->mclk_with_tere && sai->mclk_direction_output && + !sai->is_consumer_mode) + regmap_update_bits(sai->regmap, FSL_SAI_xCR4(tx, ofs), + FSL_SAI_CR4_FSD_MSTR, FSL_SAI_CR4_FSD_MSTR); + regmap_write(sai->regmap, FSL_SAI_xMR(tx), ~0UL - ((1 << min(channels, slots)) - 1)); diff -u linux-riscv-6.5.0/sound/soc/intel/boards/sof_sdw.c linux-riscv-6.5.0/sound/soc/intel/boards/sof_sdw.c --- linux-riscv-6.5.0/sound/soc/intel/boards/sof_sdw.c +++ linux-riscv-6.5.0/sound/soc/intel/boards/sof_sdw.c @@ -370,6 +370,16 @@ .callback = sof_sdw_quirk_cb, .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc"), + DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "0B14"), + }, + /* No Jack */ + .driver_data = (void *)SOF_SDW_TGL_HDMI, + }, + + { + .callback = sof_sdw_quirk_cb, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc"), DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "0B29"), }, .driver_data = (void *)(SOF_SDW_TGL_HDMI | diff -u linux-riscv-6.5.0/sound/soc/sof/core.c linux-riscv-6.5.0/sound/soc/sof/core.c --- linux-riscv-6.5.0/sound/soc/sof/core.c +++ linux-riscv-6.5.0/sound/soc/sof/core.c @@ -459,9 +459,10 @@ struct snd_sof_dev *sdev = dev_get_drvdata(dev); struct snd_sof_pdata *pdata = sdev->pdata; int ret; + bool aborted = false; if (IS_ENABLED(CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE)) - cancel_work_sync(&sdev->probe_work); + aborted = cancel_work_sync(&sdev->probe_work); /* * Unregister any registered client device first before IPC and debugfs @@ -487,6 +488,9 @@ snd_sof_free_debug(sdev); snd_sof_remove(sdev); sof_ops_free(sdev); + } else if (aborted) { + /* probe_work never ran */ + sof_ops_free(sdev); } /* release firmware */ diff -u linux-riscv-6.5.0/sound/soc/sof/ipc4-topology.c linux-riscv-6.5.0/sound/soc/sof/ipc4-topology.c --- linux-riscv-6.5.0/sound/soc/sof/ipc4-topology.c +++ linux-riscv-6.5.0/sound/soc/sof/ipc4-topology.c @@ -895,7 +895,8 @@ if (process->init_config == SOF_IPC4_MODULE_INIT_CONFIG_TYPE_BASE_CFG_WITH_EXT) { struct sof_ipc4_base_module_cfg_ext *base_cfg_ext; u32 ext_size = struct_size(base_cfg_ext, pin_formats, - swidget->num_input_pins + swidget->num_output_pins); + size_add(swidget->num_input_pins, + swidget->num_output_pins)); base_cfg_ext = kzalloc(ext_size, GFP_KERNEL); if (!base_cfg_ext) { diff -u linux-riscv-6.5.0/sound/soc/sof/sof-audio.c linux-riscv-6.5.0/sound/soc/sof/sof-audio.c --- linux-riscv-6.5.0/sound/soc/sof/sof-audio.c +++ linux-riscv-6.5.0/sound/soc/sof/sof-audio.c @@ -1032,6 +1032,13 @@ mach = snd_sof_machine_select(sdev); if (mach) { sof_pdata->machine = mach; + + if (sof_pdata->subsystem_id_set) { + mach->mach_params.subsystem_vendor = sof_pdata->subsystem_vendor; + mach->mach_params.subsystem_device = sof_pdata->subsystem_device; + mach->mach_params.subsystem_id_set = true; + } + snd_sof_set_mach_params(mach, sdev); return 0; } diff -u linux-riscv-6.5.0/sound/usb/quirks.c linux-riscv-6.5.0/sound/usb/quirks.c --- linux-riscv-6.5.0/sound/usb/quirks.c +++ linux-riscv-6.5.0/sound/usb/quirks.c @@ -2220,6 +2220,8 @@ QUIRK_FLAG_DSD_RAW), VENDOR_FLG(0x2ab6, /* T+A devices */ QUIRK_FLAG_DSD_RAW), + VENDOR_FLG(0x2afd, /* McIntosh Laboratory, Inc. */ + QUIRK_FLAG_DSD_RAW), VENDOR_FLG(0x2d87, /* Cayin device */ QUIRK_FLAG_DSD_RAW), VENDOR_FLG(0x3336, /* HEM devices */ diff -u linux-riscv-6.5.0/tools/iio/iio_generic_buffer.c linux-riscv-6.5.0/tools/iio/iio_generic_buffer.c --- linux-riscv-6.5.0/tools/iio/iio_generic_buffer.c +++ linux-riscv-6.5.0/tools/iio/iio_generic_buffer.c @@ -54,9 +54,12 @@ static unsigned int size_from_channelarray(struct iio_channel_info *channels, int num_channels) { unsigned int bytes = 0; - int i = 0; + int i = 0, max = 0; + unsigned int misalignment; while (i < num_channels) { + if (channels[i].bytes > max) + max = channels[i].bytes; if (bytes % channels[i].bytes == 0) channels[i].location = bytes; else @@ -66,6 +69,14 @@ bytes = channels[i].location + channels[i].bytes; i++; } + /* + * We want the data in next sample to also be properly aligned so + * we'll add padding at the end if needed. Adding padding only + * works for channel data which size is 2^n bytes. + */ + misalignment = bytes % max; + if (misalignment) + bytes += max - misalignment; return bytes; } diff -u linux-riscv-6.5.0/tools/perf/Makefile.perf linux-riscv-6.5.0/tools/perf/Makefile.perf --- linux-riscv-6.5.0/tools/perf/Makefile.perf +++ linux-riscv-6.5.0/tools/perf/Makefile.perf @@ -69,6 +69,10 @@ # Define NO_LIBDW_DWARF_UNWIND if you do not want libdw support # for dwarf backtrace post unwind. # +# Define NO_LIBTRACEEVENT=1 if you don't want libtraceevent to be linked, +# this will remove multiple features and tools, such as 'perf trace', +# that need it to read tracefs event format files, etc. +# # Define NO_PERF_READ_VDSO32 if you do not want to build perf-read-vdso32 # for reading the 32-bit compatibility VDSO in 64-bit mode # diff -u linux-riscv-6.5.0/tools/perf/builtin-lock.c linux-riscv-6.5.0/tools/perf/builtin-lock.c --- linux-riscv-6.5.0/tools/perf/builtin-lock.c +++ linux-riscv-6.5.0/tools/perf/builtin-lock.c @@ -524,6 +524,7 @@ struct map *kmap; struct symbol *sym; u64 ip; + const char *arch = perf_env__arch(machine->env); if (list_empty(&callstack_filters)) return true; @@ -531,7 +532,21 @@ for (int i = 0; i < max_stack_depth; i++) { struct callstack_filter *filter; - if (!callstack || !callstack[i]) + /* + * In powerpc, the callchain saved by kernel always includes + * first three entries as the NIP (next instruction pointer), + * LR (link register), and the contents of LR save area in the + * second stack frame. In certain scenarios its possible to have + * invalid kernel instruction addresses in either LR or the second + * stack frame's LR. In that case, kernel will store that address as + * zero. + * + * The below check will continue to look into callstack, + * incase first or second callstack index entry has 0 + * address for powerpc. + */ + if (!callstack || (!callstack[i] && (strcmp(arch, "powerpc") || + (i != 1 && i != 2)))) break; ip = callstack[i]; diff -u linux-riscv-6.5.0/tools/perf/pmu-events/arch/powerpc/power10/pmc.json linux-riscv-6.5.0/tools/perf/pmu-events/arch/powerpc/power10/pmc.json --- linux-riscv-6.5.0/tools/perf/pmu-events/arch/powerpc/power10/pmc.json +++ linux-riscv-6.5.0/tools/perf/pmu-events/arch/powerpc/power10/pmc.json @@ -190,7 +190,7 @@ "BriefDescription": "Threshold counter exceeded a value of 128." }, { - "EventCode": "0x400FA", + "EventCode": "0x500FA", "EventName": "PM_RUN_INST_CMPL", "BriefDescription": "PowerPC instruction completed while the run latch is set." } diff -u linux-riscv-6.5.0/tools/perf/util/dlfilter.c linux-riscv-6.5.0/tools/perf/util/dlfilter.c --- linux-riscv-6.5.0/tools/perf/util/dlfilter.c +++ linux-riscv-6.5.0/tools/perf/util/dlfilter.c @@ -280,13 +280,21 @@ return &d->evsel->core.attr; } +static __s32 code_read(__u64 ip, struct map *map, struct machine *machine, void *buf, __u32 len) +{ + u64 offset = map__map_ip(map, ip); + + if (ip + len >= map__end(map)) + len = map__end(map) - ip; + + return dso__data_read_offset(map__dso(map), machine, offset, buf, len); +} + static __s32 dlfilter__object_code(void *ctx, __u64 ip, void *buf, __u32 len) { struct dlfilter *d = (struct dlfilter *)ctx; struct addr_location *al; struct addr_location a; - struct map *map; - u64 offset; __s32 ret; if (!d->ctx_valid) @@ -296,27 +304,17 @@ if (!al) return -1; - map = al->map; - - if (map && ip >= map__start(map) && ip < map__end(map) && + if (al->map && ip >= map__start(al->map) && ip < map__end(al->map) && machine__kernel_ip(d->machine, ip) == machine__kernel_ip(d->machine, d->sample->ip)) - goto have_map; + return code_read(ip, al->map, d->machine, buf, len); addr_location__init(&a); + thread__find_map_fb(al->thread, d->sample->cpumode, ip, &a); - if (!a.map) { - ret = -1; - goto out; - } - - map = a.map; -have_map: - offset = map__map_ip(map, ip); - if (ip + len >= map__end(map)) - len = map__end(map) - ip; - ret = dso__data_read_offset(map__dso(map), d->machine, offset, buf, len); -out: + ret = a.map ? code_read(ip, a.map, d->machine, buf, len) : -1; + addr_location__exit(&a); + return ret; } diff -u linux-riscv-6.5.0/tools/perf/util/header.c linux-riscv-6.5.0/tools/perf/util/header.c --- linux-riscv-6.5.0/tools/perf/util/header.c +++ linux-riscv-6.5.0/tools/perf/util/header.c @@ -746,20 +746,14 @@ * Do a first pass to count number of pmu to avoid lseek so this * works in pipe mode as well. */ - while ((pmu = perf_pmus__scan(pmu))) { - if (!pmu->name) - continue; + while ((pmu = perf_pmus__scan(pmu))) pmu_num++; - } ret = do_write(ff, &pmu_num, sizeof(pmu_num)); if (ret < 0) return ret; while ((pmu = perf_pmus__scan(pmu))) { - if (!pmu->name) - continue; - ret = do_write(ff, &pmu->type, sizeof(pmu->type)); if (ret < 0) return ret; diff -u linux-riscv-6.5.0/tools/perf/util/parse-events.c linux-riscv-6.5.0/tools/perf/util/parse-events.c --- linux-riscv-6.5.0/tools/perf/util/parse-events.c +++ linux-riscv-6.5.0/tools/perf/util/parse-events.c @@ -271,7 +271,7 @@ evsel->core.is_pmu_core = pmu ? pmu->is_core : false; evsel->auto_merge_stats = auto_merge_stats; evsel->pmu = pmu; - evsel->pmu_name = pmu && pmu->name ? strdup(pmu->name) : NULL; + evsel->pmu_name = pmu ? strdup(pmu->name) : NULL; if (name) evsel->name = strdup(name); @@ -446,9 +446,6 @@ if (parse_state->pmu_filter == NULL) return false; - if (pmu->name == NULL) - return true; - return strcmp(parse_state->pmu_filter, pmu->name) != 0; } @@ -793,13 +790,7 @@ parse_events_error__handle(parse_state->error, idx, strdup(errbuf), - strdup( -"Hint:\tValid config terms:\n" -" \tmap:[].value=[value]\n" -" \tmap:[].event=[event]\n" -"\n" -" \twhere is something like [0,3...5] or [all]\n" -" \t(add -v to see detail)")); + NULL); return err; } } @@ -1557,7 +1548,7 @@ } int parse_events_add_pmu(struct parse_events_state *parse_state, - struct list_head *list, char *name, + struct list_head *list, const char *name, struct list_head *head_config, bool auto_merge_stats) { diff -u linux-riscv-6.5.0/tools/perf/util/parse-events.y linux-riscv-6.5.0/tools/perf/util/parse-events.y --- linux-riscv-6.5.0/tools/perf/util/parse-events.y +++ linux-riscv-6.5.0/tools/perf/util/parse-events.y @@ -22,12 +22,6 @@ void parse_events_error(YYLTYPE *loc, void *parse_state, void *scanner, char const *msg); -#define ABORT_ON(val) \ -do { \ - if (val) \ - YYABORT; \ -} while (0) - #define PE_ABORT(val) \ do { \ if (val == -ENOMEM) \ @@ -70,8 +64,6 @@ %token PE_LEGACY_CACHE %token PE_PREFIX_MEM PE_PREFIX_RAW PE_PREFIX_GROUP %token PE_ERROR -%token PE_KERNEL_PMU_EVENT PE_PMU_EVENT_FAKE -%token PE_ARRAY_ALL PE_ARRAY_RANGE %token PE_DRV_CFG_TERM %token PE_TERM_HW %type PE_VALUE @@ -88,9 +80,8 @@ %type PE_MODIFIER_EVENT %type PE_MODIFIER_BP %type PE_EVENT_NAME -%type PE_KERNEL_PMU_EVENT PE_PMU_EVENT_FAKE %type PE_DRV_CFG_TERM -%type name_or_raw name_or_legacy +%type name_or_raw %destructor { free ($$); } %type event_term %destructor { parse_events_term__delete ($$); } @@ -117,10 +108,6 @@ %destructor { free_list_evsel ($$); } %type tracepoint_name %destructor { free ($$.sys); free ($$.event); } -%type array -%type array_term -%type array_terms -%destructor { free ($$.ranges); } %type PE_TERM_HW %destructor { free ($$.str); } @@ -135,7 +122,6 @@ char *sys; char *event; } tracepoint_name; - struct parse_events_array array; struct hardware_term { char *str; u64 num; @@ -326,7 +312,7 @@ } while ((pmu = perf_pmus__scan(pmu)) != NULL) { - char *name = pmu->name; + const char *name = pmu->name; if (parse_events__filter_pmu(parse_state, pmu)) continue; @@ -378,14 +364,2 @@ | -PE_KERNEL_PMU_EVENT sep_dc -{ - struct list_head *list; - int err; - - err = parse_events_multi_pmu_add(_parse_state, $1, NULL, &list); - free($1); - if (err < 0) - YYABORT; - $$ = list; -} -| PE_NAME sep_dc @@ -410,53 +384,2 @@ } -| -PE_KERNEL_PMU_EVENT opt_pmu_config -{ - struct list_head *list; - int err; - - /* frees $2 */ - err = parse_events_multi_pmu_add(_parse_state, $1, $2, &list); - free($1); - if (err < 0) - YYABORT; - $$ = list; -} -| -PE_PMU_EVENT_FAKE sep_dc -{ - struct list_head *list; - int err; - - list = alloc_list(); - if (!list) - YYABORT; - - err = parse_events_add_pmu(_parse_state, list, $1, /*head_config=*/NULL, - /*auto_merge_stats=*/false); - free($1); - if (err < 0) { - free(list); - YYABORT; - } - $$ = list; -} -| -PE_PMU_EVENT_FAKE opt_pmu_config -{ - struct list_head *list; - int err; - - list = alloc_list(); - if (!list) - YYABORT; - - err = parse_events_add_pmu(_parse_state, list, $1, $2, /*auto_merge_stats=*/false); - free($1); - parse_events_terms__delete($2); - if (err < 0) { - free(list); - YYABORT; - } - $$ = list; -} @@ -683,7 +606,9 @@ YYNOMEM; errno = 0; num = strtoull($1 + 1, NULL, 16); - ABORT_ON(errno); + /* Given the lexer will only give [a-fA-F0-9]+ a failure here should be impossible. */ + if (errno) + YYABORT; free($1); err = parse_events_add_numeric(_parse_state, list, PERF_TYPE_RAW, num, $2, /*wildcard=*/false); @@ -796,8 +721,6 @@ name_or_raw: PE_RAW | PE_NAME | PE_LEGACY_CACHE -name_or_legacy: PE_NAME | PE_LEGACY_CACHE - event_term: PE_RAW { @@ -812,7 +735,7 @@ $$ = term; } | -name_or_raw '=' name_or_legacy +name_or_raw '=' name_or_raw { struct parse_events_term *term; int err = parse_events_term__str(&term, PARSE_EVENTS__TERM_TYPE_USER, $1, $3, &@1, &@3); @@ -891,7 +814,7 @@ $$ = term; } | -PE_TERM '=' name_or_legacy +PE_TERM '=' name_or_raw { struct parse_events_term *term; int err = parse_events_term__str(&term, (int)$1, NULL, $3, &@1, &@3); @@ -951,29 +873,0 @@ -name_or_raw array '=' name_or_legacy -{ - struct parse_events_term *term; - int err = parse_events_term__str(&term, PARSE_EVENTS__TERM_TYPE_USER, $1, $4, &@1, &@4); - - if (err) { - free($1); - free($4); - free($2.ranges); - PE_ABORT(err); - } - term->array = $2; - $$ = term; -} -| -name_or_raw array '=' PE_VALUE -{ - struct parse_events_term *term; - int err = parse_events_term__num(&term, PARSE_EVENTS__TERM_TYPE_USER, $1, $4, false, &@1, &@4); - - if (err) { - free($1); - free($2.ranges); - PE_ABORT(err); - } - term->array = $2; - $$ = term; -} -| @@ -994,65 +888,6 @@ $$ = term; } -array: -'[' array_terms ']' -{ - $$ = $2; -} -| -PE_ARRAY_ALL -{ - $$.nr_ranges = 0; - $$.ranges = NULL; -} - -array_terms: -array_terms ',' array_term -{ - struct parse_events_array new_array; - - new_array.nr_ranges = $1.nr_ranges + $3.nr_ranges; - new_array.ranges = realloc($1.ranges, - sizeof(new_array.ranges[0]) * - new_array.nr_ranges); - if (!new_array.ranges) - YYNOMEM; - memcpy(&new_array.ranges[$1.nr_ranges], $3.ranges, - $3.nr_ranges * sizeof(new_array.ranges[0])); - free($3.ranges); - $$ = new_array; -} -| -array_term - -array_term: -PE_VALUE -{ - struct parse_events_array array; - - array.nr_ranges = 1; - array.ranges = malloc(sizeof(array.ranges[0])); - if (!array.ranges) - YYNOMEM; - array.ranges[0].start = $1; - array.ranges[0].length = 1; - $$ = array; -} -| -PE_VALUE PE_ARRAY_RANGE PE_VALUE -{ - struct parse_events_array array; - - ABORT_ON($3 < $1); - array.nr_ranges = 1; - array.ranges = malloc(sizeof(array.ranges[0])); - if (!array.ranges) - YYNOMEM; - array.ranges[0].start = $1; - array.ranges[0].length = $3 - $1 + 1; - $$ = array; -} - sep_dc: ':' | sep_slash_slash_dc: '/' '/' | ':' | diff -u linux-riscv-6.5.0/tools/perf/util/pmu.c linux-riscv-6.5.0/tools/perf/util/pmu.c --- linux-riscv-6.5.0/tools/perf/util/pmu.c +++ linux-riscv-6.5.0/tools/perf/util/pmu.c @@ -29,7 +29,9 @@ #include "fncache.h" #include "util/evsel_config.h" -struct perf_pmu perf_pmu__fake; +struct perf_pmu perf_pmu__fake = { + .name = "fake", +}; /** * struct perf_pmu_format - Values from a format file read from @@ -840,13 +842,13 @@ return NULL; } -char * __weak +const char * __weak pmu_find_real_name(const char *name) { - return (char *)name; + return name; } -char * __weak +const char * __weak pmu_find_alias_name(const char *name __maybe_unused) { return NULL; @@ -866,8 +868,8 @@ LIST_HEAD(format); LIST_HEAD(aliases); __u32 type; - char *name = pmu_find_real_name(lookup_name); - char *alias_name; + const char *name = pmu_find_real_name(lookup_name); + const char *alias_name; /* * The pmu data we store & need consists of the pmu @@ -1710,7 +1712,7 @@ name ?: "N/A", buf, config_name, config); } -int perf_pmu__match(char *pattern, char *name, char *tok) +int perf_pmu__match(const char *pattern, const char *name, const char *tok) { if (!name) return -1; diff -u linux-riscv-6.5.0/tools/testing/selftests/netfilter/Makefile linux-riscv-6.5.0/tools/testing/selftests/netfilter/Makefile --- linux-riscv-6.5.0/tools/testing/selftests/netfilter/Makefile +++ linux-riscv-6.5.0/tools/testing/selftests/netfilter/Makefile @@ -7,12 +7,13 @@ nft_queue.sh nft_meta.sh nf_nat_edemux.sh \ ipip-conntrack-mtu.sh conntrack_tcp_unreplied.sh \ - conntrack_vrf.sh nft_synproxy.sh rpath.sh nft_audit.sh + conntrack_vrf.sh nft_synproxy.sh rpath.sh nft_audit.sh \ + conntrack_sctp_collision.sh xt_string.sh HOSTPKG_CONFIG := pkg-config CFLAGS += $(shell $(HOSTPKG_CONFIG) --cflags libmnl 2>/dev/null) LDLIBS += $(shell $(HOSTPKG_CONFIG) --libs libmnl 2>/dev/null || echo -lmnl) -TEST_GEN_FILES = nf-queue connect_close audit_logread +TEST_GEN_FILES = nf-queue connect_close audit_logread sctp_collision include ../lib.mk diff -u linux-riscv-6.5.0/tools/testing/selftests/netfilter/nft_audit.sh linux-riscv-6.5.0/tools/testing/selftests/netfilter/nft_audit.sh --- linux-riscv-6.5.0/tools/testing/selftests/netfilter/nft_audit.sh +++ linux-riscv-6.5.0/tools/testing/selftests/netfilter/nft_audit.sh @@ -11,6 +11,12 @@ exit $SKIP_RC } +# Run everything in a separate network namespace +[ "${1}" != "run" ] && { unshare -n "${0}" run; exit $?; } + +# give other scripts a chance to finish - audit_logread sees all activity +sleep 1 + logfile=$(mktemp) rulefile=$(mktemp) echo "logging into $logfile" @@ -93,6 +99,12 @@ do_test 'nft add counter t2 c1; add counter t2 c2' \ 'table=t2 family=2 entries=2 op=nft_register_obj' +for ((i = 3; i <= 500; i++)); do + echo "add counter t2 c$i" +done >$rulefile +do_test "nft -f $rulefile" \ +'table=t2 family=2 entries=498 op=nft_register_obj' + # adding/updating quotas do_test 'nft add quota t1 q1 { 10 bytes }' \ @@ -101,6 +113,12 @@ do_test 'nft add quota t2 q1 { 10 bytes }; add quota t2 q2 { 10 bytes }' \ 'table=t2 family=2 entries=2 op=nft_register_obj' +for ((i = 3; i <= 500; i++)); do + echo "add quota t2 q$i { 10 bytes }" +done >$rulefile +do_test "nft -f $rulefile" \ +'table=t2 family=2 entries=498 op=nft_register_obj' + # changing the quota value triggers obj update path do_test 'nft add quota t1 q1 { 20 bytes }' \ 'table=t1 family=2 entries=1 op=nft_register_obj' @@ -150,6 +168,40 @@ do_test 'nft reset set t1 s' \ 'table=t1 family=2 entries=3 op=nft_reset_setelem' +# resetting counters + +do_test 'nft reset counter t1 c1' \ +'table=t1 family=2 entries=1 op=nft_reset_obj' + +do_test 'nft reset counters t1' \ +'table=t1 family=2 entries=1 op=nft_reset_obj' + +do_test 'nft reset counters t2' \ +'table=t2 family=2 entries=342 op=nft_reset_obj +table=t2 family=2 entries=158 op=nft_reset_obj' + +do_test 'nft reset counters' \ +'table=t1 family=2 entries=1 op=nft_reset_obj +table=t2 family=2 entries=341 op=nft_reset_obj +table=t2 family=2 entries=159 op=nft_reset_obj' + +# resetting quotas + +do_test 'nft reset quota t1 q1' \ +'table=t1 family=2 entries=1 op=nft_reset_obj' + +do_test 'nft reset quotas t1' \ +'table=t1 family=2 entries=1 op=nft_reset_obj' + +do_test 'nft reset quotas t2' \ +'table=t2 family=2 entries=315 op=nft_reset_obj +table=t2 family=2 entries=185 op=nft_reset_obj' + +do_test 'nft reset quotas' \ +'table=t1 family=2 entries=1 op=nft_reset_obj +table=t2 family=2 entries=314 op=nft_reset_obj +table=t2 family=2 entries=186 op=nft_reset_obj' + # deleting rules readarray -t handles < <(nft -a list chain t1 c1 | \ diff -u linux-riscv-6.5.0/tools/testing/selftests/resctrl/Makefile linux-riscv-6.5.0/tools/testing/selftests/resctrl/Makefile --- linux-riscv-6.5.0/tools/testing/selftests/resctrl/Makefile +++ linux-riscv-6.5.0/tools/testing/selftests/resctrl/Makefile @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 -CFLAGS = -g -Wall -O2 -D_FORTIFY_SOURCE=2 +CFLAGS = -g -Wall -O2 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE CFLAGS += $(KHDR_INCLUDES) TEST_GEN_PROGS := resctrl_tests diff -u linux-riscv-6.5.0/tools/testing/selftests/resctrl/resctrl.h linux-riscv-6.5.0/tools/testing/selftests/resctrl/resctrl.h --- linux-riscv-6.5.0/tools/testing/selftests/resctrl/resctrl.h +++ linux-riscv-6.5.0/tools/testing/selftests/resctrl/resctrl.h @@ -1,5 +1,4 @@ /* SPDX-License-Identifier: GPL-2.0 */ -#define _GNU_SOURCE #ifndef RESCTRL_H #define RESCTRL_H #include only in patch2: unchanged: --- linux-riscv-6.5.0.orig/Documentation/ABI/testing/sysfs-bus-optee-devices +++ linux-riscv-6.5.0/Documentation/ABI/testing/sysfs-bus-optee-devices @@ -6,3 +6,12 @@ OP-TEE bus provides reference to registered drivers under this directory. The matches Trusted Application (TA) driver and corresponding TA in secure OS. Drivers are free to create needed API under optee-ta- directory. + +What: /sys/bus/tee/devices/optee-ta-/need_supplicant +Date: November 2023 +KernelVersion: 6.7 +Contact: op-tee@lists.trustedfirmware.org +Description: + Allows to distinguish whether an OP-TEE based TA/device requires user-space + tee-supplicant to function properly or not. This attribute will be present for + devices which depend on tee-supplicant to be running. only in patch2: unchanged: --- linux-riscv-6.5.0.orig/Documentation/admin-guide/hw-vuln/srso.rst +++ linux-riscv-6.5.0/Documentation/admin-guide/hw-vuln/srso.rst @@ -46,12 +46,22 @@ The processor is not vulnerable - * 'Vulnerable: no microcode': +* 'Vulnerable': + + The processor is vulnerable and no mitigations have been applied. + + * 'Vulnerable: No microcode': The processor is vulnerable, no microcode extending IBPB functionality to address the vulnerability has been applied. - * 'Mitigation: microcode': + * 'Vulnerable: Safe RET, no microcode': + + The "Safe RET" mitigation (see below) has been applied to protect the + kernel, but the IBPB-extending microcode has not been applied. User + space tasks may still be vulnerable. + + * 'Vulnerable: Microcode, no safe RET': Extended IBPB functionality microcode patch has been applied. It does not address User->Kernel and Guest->Host transitions protection but it @@ -72,11 +82,11 @@ (spec_rstack_overflow=microcode) - * 'Mitigation: safe RET': + * 'Mitigation: Safe RET': - Software-only mitigation. It complements the extended IBPB microcode - patch functionality by addressing User->Kernel and Guest->Host - transitions protection. + Combined microcode/software mitigation. It complements the + extended IBPB microcode patch functionality by addressing + User->Kernel and Guest->Host transitions protection. Selected by default or by spec_rstack_overflow=safe-ret @@ -129,7 +139,7 @@ microcode patch for one's system. This mitigation comes also at a performance cost. -Mitigation: safe RET +Mitigation: Safe RET -------------------- The mitigation works by ensuring all RET instructions speculate to only in patch2: unchanged: --- linux-riscv-6.5.0.orig/Documentation/devicetree/bindings/interrupt-controller/qcom,mpm.yaml +++ linux-riscv-6.5.0/Documentation/devicetree/bindings/interrupt-controller/qcom,mpm.yaml @@ -62,6 +62,9 @@ - description: MPM pin number - description: GIC SPI number for the MPM pin + '#power-domain-cells': + const: 0 + required: - compatible - reg @@ -93,4 +96,5 @@ <86 183>, <90 260>, <91 260>; + #power-domain-cells = <0>; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/Documentation/devicetree/bindings/mfd/mt6397.txt +++ linux-riscv-6.5.0/Documentation/devicetree/bindings/mfd/mt6397.txt @@ -22,8 +22,9 @@ "mediatek,mt6323" for PMIC MT6323 "mediatek,mt6331" for PMIC MT6331 and MT6332 "mediatek,mt6357" for PMIC MT6357 - "mediatek,mt6358" for PMIC MT6358 and MT6366 + "mediatek,mt6358" for PMIC MT6358 "mediatek,mt6359" for PMIC MT6359 + "mediatek,mt6366", "mediatek,mt6358" for PMIC MT6366 "mediatek,mt6397" for PMIC MT6397 Optional subnodes: @@ -40,6 +41,7 @@ - compatible: "mediatek,mt6323-regulator" see ../regulator/mt6323-regulator.txt - compatible: "mediatek,mt6358-regulator" + - compatible: "mediatek,mt6366-regulator", "mediatek-mt6358-regulator" see ../regulator/mt6358-regulator.txt - compatible: "mediatek,mt6397-regulator" see ../regulator/mt6397-regulator.txt only in patch2: unchanged: --- linux-riscv-6.5.0.orig/Documentation/devicetree/bindings/mmc/sdhci-msm.yaml +++ linux-riscv-6.5.0/Documentation/devicetree/bindings/mmc/sdhci-msm.yaml @@ -69,7 +69,7 @@ maxItems: 4 clocks: - minItems: 3 + minItems: 2 items: - description: Main peripheral bus clock, PCLK/HCLK - AHB Bus clock - description: SDC MMC clock, MCLK only in patch2: unchanged: --- linux-riscv-6.5.0.orig/Documentation/devicetree/bindings/phy/qcom,snps-eusb2-repeater.yaml +++ linux-riscv-6.5.0/Documentation/devicetree/bindings/phy/qcom,snps-eusb2-repeater.yaml @@ -27,6 +27,27 @@ vdd3-supply: true + qcom,tune-usb2-disc-thres: + $ref: /schemas/types.yaml#/definitions/uint8 + description: High-Speed disconnect threshold + minimum: 0 + maximum: 7 + default: 0 + + qcom,tune-usb2-amplitude: + $ref: /schemas/types.yaml#/definitions/uint8 + description: High-Speed trasmit amplitude + minimum: 0 + maximum: 15 + default: 8 + + qcom,tune-usb2-preem: + $ref: /schemas/types.yaml#/definitions/uint8 + description: High-Speed TX pre-emphasis tuning + minimum: 0 + maximum: 7 + default: 5 + required: - compatible - reg only in patch2: unchanged: --- linux-riscv-6.5.0.orig/Documentation/devicetree/bindings/serial/rs485.yaml +++ linux-riscv-6.5.0/Documentation/devicetree/bindings/serial/rs485.yaml @@ -29,6 +29,10 @@ default: 0 maximum: 100 + rs485-rts-active-high: + description: drive RTS high when sending (this is the default). + $ref: /schemas/types.yaml#/definitions/flag + rs485-rts-active-low: description: drive RTS low when sending (default is high). $ref: /schemas/types.yaml#/definitions/flag only in patch2: unchanged: --- linux-riscv-6.5.0.orig/Documentation/devicetree/bindings/serial/serial.yaml +++ linux-riscv-6.5.0/Documentation/devicetree/bindings/serial/serial.yaml @@ -96,7 +96,7 @@ rts-gpios: false patternProperties: - "^bluetooth|gnss|gps|mcu$": + "^(bluetooth|gnss|gps|mcu)$": if: type: object then: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml +++ linux-riscv-6.5.0/Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml @@ -169,27 +169,27 @@ - const: tgib0 - const: tgic0 - const: tgid0 - - const: tgiv0 + - const: tciv0 - const: tgie0 - const: tgif0 - const: tgia1 - const: tgib1 - - const: tgiv1 - - const: tgiu1 + - const: tciv1 + - const: tciu1 - const: tgia2 - const: tgib2 - - const: tgiv2 - - const: tgiu2 + - const: tciv2 + - const: tciu2 - const: tgia3 - const: tgib3 - const: tgic3 - const: tgid3 - - const: tgiv3 + - const: tciv3 - const: tgia4 - const: tgib4 - const: tgic4 - const: tgid4 - - const: tgiv4 + - const: tciv4 - const: tgiu5 - const: tgiv5 - const: tgiw5 @@ -197,18 +197,18 @@ - const: tgib6 - const: tgic6 - const: tgid6 - - const: tgiv6 + - const: tciv6 - const: tgia7 - const: tgib7 - const: tgic7 - const: tgid7 - - const: tgiv7 + - const: tciv7 - const: tgia8 - const: tgib8 - const: tgic8 - const: tgid8 - - const: tgiv8 - - const: tgiu8 + - const: tciv8 + - const: tciu8 clocks: maxItems: 1 @@ -285,16 +285,16 @@ , , ; - interrupt-names = "tgia0", "tgib0", "tgic0", "tgid0", "tgiv0", "tgie0", + interrupt-names = "tgia0", "tgib0", "tgic0", "tgid0", "tciv0", "tgie0", "tgif0", - "tgia1", "tgib1", "tgiv1", "tgiu1", - "tgia2", "tgib2", "tgiv2", "tgiu2", - "tgia3", "tgib3", "tgic3", "tgid3", "tgiv3", - "tgia4", "tgib4", "tgic4", "tgid4", "tgiv4", + "tgia1", "tgib1", "tciv1", "tciu1", + "tgia2", "tgib2", "tciv2", "tciu2", + "tgia3", "tgib3", "tgic3", "tgid3", "tciv3", + "tgia4", "tgib4", "tgic4", "tgid4", "tciv4", "tgiu5", "tgiv5", "tgiw5", - "tgia6", "tgib6", "tgic6", "tgid6", "tgiv6", - "tgia7", "tgib7", "tgic7", "tgid7", "tgiv7", - "tgia8", "tgib8", "tgic8", "tgid8", "tgiv8", "tgiu8"; + "tgia6", "tgib6", "tgic6", "tgid6", "tciv6", + "tgia7", "tgib7", "tgic7", "tgid7", "tciv7", + "tgia8", "tgib8", "tgic8", "tgid8", "tciv8", "tciu8"; clocks = <&cpg CPG_MOD R9A07G044_MTU_X_MCK_MTU3>; power-domains = <&cpg>; resets = <&cpg R9A07G044_MTU_X_PRESET_MTU3>; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/Documentation/devicetree/bindings/usb/microchip,usb5744.yaml +++ linux-riscv-6.5.0/Documentation/devicetree/bindings/usb/microchip,usb5744.yaml @@ -36,7 +36,11 @@ vdd-supply: description: - VDD power supply to the hub + 3V3 power supply to the hub + + vdd2-supply: + description: + 1V2 power supply to the hub peer-hub: $ref: /schemas/types.yaml#/definitions/phandle @@ -62,6 +66,7 @@ properties: reset-gpios: false vdd-supply: false + vdd2-supply: false peer-hub: false i2c-bus: false else: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/Documentation/i2c/busses/i2c-i801.rst +++ linux-riscv-6.5.0/Documentation/i2c/busses/i2c-i801.rst @@ -47,6 +47,7 @@ * Intel Alder Lake (PCH) * Intel Raptor Lake (PCH) * Intel Meteor Lake (SOC and PCH) + * Intel Birch Stream (SOC) Datasheets: Publicly available at the Intel website only in patch2: unchanged: --- linux-riscv-6.5.0.orig/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/counters.rst +++ linux-riscv-6.5.0/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/counters.rst @@ -683,6 +683,12 @@ time protocol. - Error + * - `ptp_cq[i]_late_cqe` + - Number of times a CQE has been delivered on the PTP timestamping CQ when + the CQE was not expected since a certain amount of time had elapsed where + the device typically ensures not posting the CQE. + - Error + .. [#ring_global] The corresponding ring and global counters do not share the same name (i.e. do not follow the common naming scheme). only in patch2: unchanged: --- linux-riscv-6.5.0.orig/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/index.rst +++ linux-riscv-6.5.0/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/index.rst @@ -13,7 +13,6 @@ :maxdepth: 2 kconfig - devlink switchdev tracepoints counters only in patch2: unchanged: --- linux-riscv-6.5.0.orig/Documentation/networking/devlink/mlx5.rst +++ linux-riscv-6.5.0/Documentation/networking/devlink/mlx5.rst @@ -18,6 +18,11 @@ * - ``enable_roce`` - driverinit - Type: Boolean + + If the device supports RoCE disablement, RoCE enablement state controls + device support for RoCE capability. Otherwise, the control occurs in the + driver stack. When RoCE is disabled at the driver level, only raw + ethernet QPs are supported. * - ``io_eq_size`` - driverinit - The range is between 64 and 4096. @@ -48,6 +53,9 @@ * ``smfs`` Software managed flow steering. In SMFS mode, the HW steering entities are created and manage through the driver without firmware intervention. + + SMFS mode is faster and provides better rule insertion rate compared to + default DMFS mode. * - ``fdb_large_groups`` - u32 - driverinit @@ -71,7 +79,24 @@ deprecated. Default: disabled + * - ``esw_port_metadata`` + - Boolean + - runtime + - When applicable, disabling eswitch metadata can increase packet rate up + to 20% depending on the use case and packet sizes. + + Eswitch port metadata state controls whether to internally tag packets + with metadata. Metadata tagging must be enabled for multi-port RoCE, + failover between representors and stacked devices. By default metadata is + enabled on the supported devices in E-switch. Metadata is applicable only + for E-switch in switchdev mode and users may disable it when NONE of the + below use cases will be in use: + 1. HCA is in Dual/multi-port RoCE mode. + 2. VF/SF representor bonding (Usually used for Live migration) + 3. Stacked devices + When metadata is disabled, the above use cases will fail to initialize if + users try to enable them. * - ``hairpin_num_queues`` - u32 - driverinit @@ -104,3 +129,160 @@ * - ``fw.version`` - stored, running - Three digit major.minor.subminor firmware version number. + +Health reporters +================ + +tx reporter +----------- +The tx reporter is responsible for reporting and recovering of the following three error scenarios: + +- tx timeout + Report on kernel tx timeout detection. + Recover by searching lost interrupts. +- tx error completion + Report on error tx completion. + Recover by flushing the tx queue and reset it. +- tx PTP port timestamping CQ unhealthy + Report too many CQEs never delivered on port ts CQ. + Recover by flushing and re-creating all PTP channels. + +tx reporter also support on demand diagnose callback, on which it provides +real time information of its send queues status. + +User commands examples: + +- Diagnose send queues status:: + + $ devlink health diagnose pci/0000:82:00.0 reporter tx + +.. note:: + This command has valid output only when interface is up, otherwise the command has empty output. + +- Show number of tx errors indicated, number of recover flows ended successfully, + is autorecover enabled and graceful period from last recover:: + + $ devlink health show pci/0000:82:00.0 reporter tx + +rx reporter +----------- +The rx reporter is responsible for reporting and recovering of the following two error scenarios: + +- rx queues' initialization (population) timeout + Population of rx queues' descriptors on ring initialization is done + in napi context via triggering an irq. In case of a failure to get + the minimum amount of descriptors, a timeout would occur, and + descriptors could be recovered by polling the EQ (Event Queue). +- rx completions with errors (reported by HW on interrupt context) + Report on rx completion error. + Recover (if needed) by flushing the related queue and reset it. + +rx reporter also supports on demand diagnose callback, on which it +provides real time information of its receive queues' status. + +- Diagnose rx queues' status and corresponding completion queue:: + + $ devlink health diagnose pci/0000:82:00.0 reporter rx + +.. note:: + This command has valid output only when interface is up. Otherwise, the command has empty output. + +- Show number of rx errors indicated, number of recover flows ended successfully, + is autorecover enabled, and graceful period from last recover:: + + $ devlink health show pci/0000:82:00.0 reporter rx + +fw reporter +----------- +The fw reporter implements `diagnose` and `dump` callbacks. +It follows symptoms of fw error such as fw syndrome by triggering +fw core dump and storing it into the dump buffer. +The fw reporter diagnose command can be triggered any time by the user to check +current fw status. + +User commands examples: + +- Check fw heath status:: + + $ devlink health diagnose pci/0000:82:00.0 reporter fw + +- Read FW core dump if already stored or trigger new one:: + + $ devlink health dump show pci/0000:82:00.0 reporter fw + +.. note:: + This command can run only on the PF which has fw tracer ownership, + running it on other PF or any VF will return "Operation not permitted". + +fw fatal reporter +----------------- +The fw fatal reporter implements `dump` and `recover` callbacks. +It follows fatal errors indications by CR-space dump and recover flow. +The CR-space dump uses vsc interface which is valid even if the FW command +interface is not functional, which is the case in most FW fatal errors. +The recover function runs recover flow which reloads the driver and triggers fw +reset if needed. +On firmware error, the health buffer is dumped into the dmesg. The log +level is derived from the error's severity (given in health buffer). + +User commands examples: + +- Run fw recover flow manually:: + + $ devlink health recover pci/0000:82:00.0 reporter fw_fatal + +- Read FW CR-space dump if already stored or trigger new one:: + + $ devlink health dump show pci/0000:82:00.1 reporter fw_fatal + +.. note:: + This command can run only on PF. + +vnic reporter +------------- +The vnic reporter implements only the `diagnose` callback. +It is responsible for querying the vnic diagnostic counters from fw and displaying +them in realtime. + +Description of the vnic counters: + +- total_q_under_processor_handle + number of queues in an error state due to + an async error or errored command. +- send_queue_priority_update_flow + number of QP/SQ priority/SL update events. +- cq_overrun + number of times CQ entered an error state due to an overflow. +- async_eq_overrun + number of times an EQ mapped to async events was overrun. + comp_eq_overrun number of times an EQ mapped to completion events was + overrun. +- quota_exceeded_command + number of commands issued and failed due to quota exceeded. +- invalid_command + number of commands issued and failed dues to any reason other than quota + exceeded. +- nic_receive_steering_discard + number of packets that completed RX flow + steering but were discarded due to a mismatch in flow table. +- generated_pkt_steering_fail + number of packets generated by the VNIC experiencing unexpected steering + failure (at any point in steering flow). +- handled_pkt_steering_fail + number of packets handled by the VNIC experiencing unexpected steering + failure (at any point in steering flow owned by the VNIC, including the FDB + for the eswitch owner). + +User commands examples: + +- Diagnose PF/VF vnic counters:: + + $ devlink health diagnose pci/0000:82:00.1 reporter vnic + +- Diagnose representor vnic counters (performed by supplying devlink port of the + representor, which can be obtained via devlink port command):: + + $ devlink health diagnose pci/0000:82:00.1/65537 reporter vnic + +.. note:: + This command can run over all interfaces such as PF/VF and representor ports. only in patch2: unchanged: --- linux-riscv-6.5.0.orig/Documentation/networking/representors.rst +++ linux-riscv-6.5.0/Documentation/networking/representors.rst @@ -162,9 +162,11 @@ The representor netdevice should *not* directly refer to a PCIe device (e.g. through ``net_dev->dev.parent`` / ``SET_NETDEV_DEV()``), either of the representee or of the switchdev function. -Instead, it should implement the ``ndo_get_devlink_port()`` netdevice op, which -the kernel uses to provide the ``phys_switch_id`` and ``phys_port_name`` sysfs -nodes. (Some legacy drivers implement ``ndo_get_port_parent_id()`` and +Instead, the driver should use the ``SET_NETDEV_DEVLINK_PORT`` macro to +assign a devlink port instance to the netdevice before registering the +netdevice; the kernel uses the devlink port to provide the ``phys_switch_id`` +and ``phys_port_name`` sysfs nodes. +(Some legacy drivers implement ``ndo_get_port_parent_id()`` and ``ndo_get_phys_port_name()`` directly, but this is deprecated.) See :ref:`Documentation/networking/devlink/devlink-port.rst ` for the details of this API. only in patch2: unchanged: --- linux-riscv-6.5.0.orig/Documentation/rust/general-information.rst +++ linux-riscv-6.5.0/Documentation/rust/general-information.rst @@ -29,7 +29,7 @@ To read the docs locally in your web browser, run e.g.:: - xdg-open rust/doc/kernel/index.html + xdg-open Documentation/output/rust/rustdoc/kernel/index.html To learn about how to write the documentation, please see coding-guidelines.rst. only in patch2: unchanged: --- linux-riscv-6.5.0.orig/Documentation/rust/index.rst +++ linux-riscv-6.5.0/Documentation/rust/index.rst @@ -6,6 +6,14 @@ Documentation related to Rust within the kernel. To start using Rust in the kernel, please read the quick-start.rst guide. +.. only:: rustdoc and html + + You can also browse `rustdoc documentation `_. + +.. only:: not rustdoc and html + + This documentation does not include rustdoc generated information. + .. toctree:: :maxdepth: 1 only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/Kconfig +++ linux-riscv-6.5.0/arch/Kconfig @@ -34,6 +34,9 @@ config HOTPLUG_SMT bool +config SMT_NUM_THREADS_DYNAMIC + bool + # Selected by HOTPLUG_CORE_SYNC_DEAD or HOTPLUG_CORE_SYNC_FULL config HOTPLUG_CORE_SYNC bool only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm2711-rpi-400.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm2711-rpi-400.dts @@ -36,9 +36,7 @@ gpios = <&gpio 42 GPIO_ACTIVE_HIGH>; }; -&leds { - /delete-node/ led_act; -}; +/delete-node/ &led_act; &pm { /delete-property/ system-power-controller; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm4708-buffalo-wzr-1166dhp-common.dtsi +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm4708-buffalo-wzr-1166dhp-common.dtsi @@ -181,5 +181,13 @@ port@5 { label = "cpu"; }; + + port@7 { + status = "disabled"; + }; + + port@8 { + status = "disabled"; + }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm4708-luxul-xap-1510.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm4708-luxul-xap-1510.dts @@ -85,5 +85,13 @@ port@5 { label = "cpu"; }; + + port@7 { + status = "disabled"; + }; + + port@8 { + status = "disabled"; + }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm4708-luxul-xwc-1000.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm4708-luxul-xwc-1000.dts @@ -88,5 +88,13 @@ port@5 { label = "cpu"; }; + + port@7 { + status = "disabled"; + }; + + port@8 { + status = "disabled"; + }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm4708-netgear-r6250.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm4708-netgear-r6250.dts @@ -122,5 +122,13 @@ port@5 { label = "cpu"; }; + + port@7 { + status = "disabled"; + }; + + port@8 { + status = "disabled"; + }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm4708-smartrg-sr400ac.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm4708-smartrg-sr400ac.dts @@ -145,6 +145,14 @@ port@5 { label = "cpu"; }; + + port@7 { + status = "disabled"; + }; + + port@8 { + status = "disabled"; + }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm47081-buffalo-wzr-600dhp2.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm47081-buffalo-wzr-600dhp2.dts @@ -145,5 +145,13 @@ port@5 { label = "cpu"; }; + + port@7 { + status = "disabled"; + }; + + port@8 { + status = "disabled"; + }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm47081-luxul-xap-1410.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm47081-luxul-xap-1410.dts @@ -81,5 +81,13 @@ port@5 { label = "cpu"; }; + + port@7 { + status = "disabled"; + }; + + port@8 { + status = "disabled"; + }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm47081-luxul-xwr-1200.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm47081-luxul-xwr-1200.dts @@ -148,5 +148,13 @@ port@5 { label = "cpu"; }; + + port@7 { + status = "disabled"; + }; + + port@8 { + status = "disabled"; + }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm4709-netgear-r8000.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm4709-netgear-r8000.dts @@ -227,6 +227,14 @@ label = "wan"; }; + port@5 { + status = "disabled"; + }; + + port@7 { + status = "disabled"; + }; + port@8 { label = "cpu"; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm47094-dlink-dir-885l.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm47094-dlink-dir-885l.dts @@ -143,6 +143,14 @@ label = "wan"; }; + port@5 { + status = "disabled"; + }; + + port@7 { + status = "disabled"; + }; + port@8 { label = "cpu"; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm47094-dlink-dir-890l.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm47094-dlink-dir-890l.dts @@ -191,6 +191,14 @@ label = "wan"; }; + port@5 { + status = "disabled"; + }; + + port@7 { + status = "disabled"; + }; + port@8 { label = "cpu"; phy-mode = "rgmii"; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm47094-luxul-abr-4500.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm47094-luxul-abr-4500.dts @@ -107,5 +107,13 @@ port@5 { label = "cpu"; }; + + port@7 { + status = "disabled"; + }; + + port@8 { + status = "disabled"; + }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm47094-luxul-xap-1610.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm47094-luxul-xap-1610.dts @@ -83,5 +83,13 @@ port@5 { label = "cpu"; }; + + port@7 { + status = "disabled"; + }; + + port@8 { + status = "disabled"; + }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm47094-luxul-xbr-4500.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm47094-luxul-xbr-4500.dts @@ -107,5 +107,13 @@ port@5 { label = "cpu"; }; + + port@7 { + status = "disabled"; + }; + + port@8 { + status = "disabled"; + }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm47094-luxul-xwc-2000.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm47094-luxul-xwc-2000.dts @@ -75,5 +75,13 @@ port@5 { label = "cpu"; }; + + port@7 { + status = "disabled"; + }; + + port@8 { + status = "disabled"; + }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm47094-luxul-xwr-3100.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm47094-luxul-xwr-3100.dts @@ -147,5 +147,13 @@ port@5 { label = "cpu"; }; + + port@7 { + status = "disabled"; + }; + + port@8 { + status = "disabled"; + }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm47094-luxul-xwr-3150-v1.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm47094-luxul-xwr-3150-v1.dts @@ -122,5 +122,13 @@ port@5 { label = "cpu"; }; + + port@7 { + status = "disabled"; + }; + + port@8 { + status = "disabled"; + }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm53015-meraki-mr26.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm53015-meraki-mr26.dts @@ -124,6 +124,14 @@ full-duplex; }; }; + + port@7 { + status = "disabled"; + }; + + port@8 { + status = "disabled"; + }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm53016-meraki-mr32.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm53016-meraki-mr32.dts @@ -185,6 +185,14 @@ full-duplex; }; }; + + port@7 { + status = "disabled"; + }; + + port@8 { + status = "disabled"; + }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/broadcom/bcm953012er.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/broadcom/bcm953012er.dts @@ -84,6 +84,14 @@ label = "cpu"; ethernet = <&gmac0>; }; + + port@7 { + status = "disabled"; + }; + + port@8 { + status = "disabled"; + }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/nxp/imx/imx6q-skov-reve-mi1010ait-1cp1.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/nxp/imx/imx6q-skov-reve-mi1010ait-1cp1.dts @@ -37,9 +37,9 @@ &clks { assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, - <&clks IMX6QDL_CLK_LDB_DI1_SEL>; + <&clks IMX6QDL_CLK_LDB_DI1_SEL>, <&clks IMX6QDL_CLK_ENET_REF_SEL>; assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>, - <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>; + <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>, <&clk50m_phy>; }; &hdmi { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/nxp/imx/imx6ul-pico.dtsi +++ linux-riscv-6.5.0/arch/arm/boot/dts/nxp/imx/imx6ul-pico.dtsi @@ -121,6 +121,8 @@ max-speed = <100>; interrupt-parent = <&gpio5>; interrupts = <6 IRQ_TYPE_LEVEL_LOW>; + clocks = <&clks IMX6UL_CLK_ENET_REF>; + clock-names = "rmii-ref"; }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/nxp/imx/imx7s.dtsi +++ linux-riscv-6.5.0/arch/arm/boot/dts/nxp/imx/imx7s.dtsi @@ -454,7 +454,7 @@ }; gpt1: timer@302d0000 { - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; reg = <0x302d0000 0x10000>; interrupts = ; clocks = <&clks IMX7D_GPT1_ROOT_CLK>, @@ -463,7 +463,7 @@ }; gpt2: timer@302e0000 { - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; reg = <0x302e0000 0x10000>; interrupts = ; clocks = <&clks IMX7D_GPT2_ROOT_CLK>, @@ -473,7 +473,7 @@ }; gpt3: timer@302f0000 { - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; reg = <0x302f0000 0x10000>; interrupts = ; clocks = <&clks IMX7D_GPT3_ROOT_CLK>, @@ -483,7 +483,7 @@ }; gpt4: timer@30300000 { - compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; + compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt"; reg = <0x30300000 0x10000>; interrupts = ; clocks = <&clks IMX7D_GPT4_ROOT_CLK>, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/nxp/mxs/imx28-xea.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/nxp/mxs/imx28-xea.dts @@ -8,6 +8,7 @@ #include "imx28-lwe.dtsi" / { + model = "Liebherr XEA board"; compatible = "lwn,imx28-xea", "fsl,imx28"; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/qcom/qcom-apq8026-samsung-matisse-wifi.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/qcom/qcom-apq8026-samsung-matisse-wifi.dts @@ -45,11 +45,11 @@ event-hall-sensor { label = "Hall Effect Sensor"; - gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>; - interrupts = <&tlmm 110 IRQ_TYPE_EDGE_FALLING>; + gpios = <&tlmm 110 GPIO_ACTIVE_LOW>; linux,input-type = ; linux,code = ; debounce-interval = <15>; + linux,can-disable; wakeup-source; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/qcom/qcom-mdm9615.dtsi +++ linux-riscv-6.5.0/arch/arm/boot/dts/qcom/qcom-mdm9615.dtsi @@ -46,14 +46,12 @@ }; }; - regulators { - vsdcc_fixed: vsdcc-regulator { - compatible = "regulator-fixed"; - regulator-name = "SDCC Power"; - regulator-min-microvolt = <2700000>; - regulator-max-microvolt = <2700000>; - regulator-always-on; - }; + vsdcc_fixed: vsdcc-regulator { + compatible = "regulator-fixed"; + regulator-name = "SDCC Power"; + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <2700000>; + regulator-always-on; }; soc: soc { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/renesas/r8a7792-blanche.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/renesas/r8a7792-blanche.dts @@ -239,7 +239,7 @@ }; keyboard_pins: keyboard { - pins = "GP_3_10", "GP_3_11", "GP_3_12", "GP_3_15", "GP_11_02"; + pins = "GP_3_10", "GP_3_11", "GP_3_12", "GP_3_15", "GP_11_2"; bias-pull-up; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/rockchip/rk3128.dtsi +++ linux-riscv-6.5.0/arch/arm/boot/dts/rockchip/rk3128.dtsi @@ -64,7 +64,8 @@ compatible = "arm,armv7-timer"; interrupts = , , - ; + , + ; arm,cpu-registers-not-fw-configured; clock-frequency = <24000000>; }; @@ -233,7 +234,7 @@ compatible = "rockchip,rk3128-timer", "rockchip,rk3288-timer"; reg = <0x20044000 0x20>; interrupts = ; - clocks = <&cru PCLK_TIMER>, <&xin24m>; + clocks = <&cru PCLK_TIMER>, <&cru SCLK_TIMER0>; clock-names = "pclk", "timer"; }; @@ -241,7 +242,7 @@ compatible = "rockchip,rk3128-timer", "rockchip,rk3288-timer"; reg = <0x20044020 0x20>; interrupts = ; - clocks = <&cru PCLK_TIMER>, <&xin24m>; + clocks = <&cru PCLK_TIMER>, <&cru SCLK_TIMER1>; clock-names = "pclk", "timer"; }; @@ -249,7 +250,7 @@ compatible = "rockchip,rk3128-timer", "rockchip,rk3288-timer"; reg = <0x20044040 0x20>; interrupts = ; - clocks = <&cru PCLK_TIMER>, <&xin24m>; + clocks = <&cru PCLK_TIMER>, <&cru SCLK_TIMER2>; clock-names = "pclk", "timer"; }; @@ -257,7 +258,7 @@ compatible = "rockchip,rk3128-timer", "rockchip,rk3288-timer"; reg = <0x20044060 0x20>; interrupts = ; - clocks = <&cru PCLK_TIMER>, <&xin24m>; + clocks = <&cru PCLK_TIMER>, <&cru SCLK_TIMER3>; clock-names = "pclk", "timer"; }; @@ -265,7 +266,7 @@ compatible = "rockchip,rk3128-timer", "rockchip,rk3288-timer"; reg = <0x20044080 0x20>; interrupts = ; - clocks = <&cru PCLK_TIMER>, <&xin24m>; + clocks = <&cru PCLK_TIMER>, <&cru SCLK_TIMER4>; clock-names = "pclk", "timer"; }; @@ -273,7 +274,7 @@ compatible = "rockchip,rk3128-timer", "rockchip,rk3288-timer"; reg = <0x200440a0 0x20>; interrupts = ; - clocks = <&cru PCLK_TIMER>, <&xin24m>; + clocks = <&cru PCLK_TIMER>, <&cru SCLK_TIMER5>; clock-names = "pclk", "timer"; }; @@ -426,7 +427,7 @@ i2c0: i2c@20072000 { compatible = "rockchip,rk3128-i2c", "rockchip,rk3288-i2c"; - reg = <20072000 0x1000>; + reg = <0x20072000 0x1000>; interrupts = ; clock-names = "i2c"; clocks = <&cru PCLK_I2C0>; @@ -458,6 +459,7 @@ interrupts = , ; arm,pl330-broken-no-flushp; + arm,pl330-periph-burst; clocks = <&cru ACLK_DMAC>; clock-names = "apb_pclk"; #dma-cells = <1>; @@ -793,7 +795,7 @@ }; sdmmc_pwren: sdmmc-pwren { - rockchip,pins = <1 RK_PB6 1 &pcfg_pull_default>; + rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_default>; }; sdmmc_bus4: sdmmc-bus4 { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/ti/omap/am3517-evm.dts +++ linux-riscv-6.5.0/arch/arm/boot/dts/ti/omap/am3517-evm.dts @@ -271,13 +271,6 @@ >; }; - leds_pins: leds-pins { - pinctrl-single,pins = < - OMAP3_WKUP_IOPAD(0x2a24, PIN_OUTPUT_PULLUP | MUX_MODE4) /* jtag_emu0.gpio_11 */ - OMAP3_WKUP_IOPAD(0x2a26, PIN_OUTPUT_PULLUP | MUX_MODE4) /* jtag_emu1.gpio_31 */ - >; - }; - mmc1_pins: mmc1-pins { pinctrl-single,pins = < OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */ @@ -355,3 +348,12 @@ >; }; }; + +&omap3_pmx_wkup { + leds_pins: leds-pins { + pinctrl-single,pins = < + OMAP3_WKUP_IOPAD(0x2a24, PIN_OUTPUT_PULLUP | MUX_MODE4) /* jtag_emu0.gpio_11 */ + OMAP3_WKUP_IOPAD(0x2a26, PIN_OUTPUT_PULLUP | MUX_MODE4) /* jtag_emu1.gpio_31 */ + >; + }; +}; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/ti/omap/omap4-l4-abe.dtsi +++ linux-riscv-6.5.0/arch/arm/boot/dts/ti/omap/omap4-l4-abe.dtsi @@ -109,6 +109,8 @@ reg = <0x0 0xff>, /* MPU private access */ <0x49022000 0xff>; /* L3 Interconnect */ reg-names = "mpu", "dma"; + clocks = <&abe_clkctrl OMAP4_MCBSP1_CLKCTRL 24>; + clock-names = "fck"; interrupts = ; interrupt-names = "common"; ti,buffer-size = <128>; @@ -142,6 +144,8 @@ reg = <0x0 0xff>, /* MPU private access */ <0x49024000 0xff>; /* L3 Interconnect */ reg-names = "mpu", "dma"; + clocks = <&abe_clkctrl OMAP4_MCBSP2_CLKCTRL 24>; + clock-names = "fck"; interrupts = ; interrupt-names = "common"; ti,buffer-size = <128>; @@ -175,6 +179,8 @@ reg = <0x0 0xff>, /* MPU private access */ <0x49026000 0xff>; /* L3 Interconnect */ reg-names = "mpu", "dma"; + clocks = <&abe_clkctrl OMAP4_MCBSP3_CLKCTRL 24>; + clock-names = "fck"; interrupts = ; interrupt-names = "common"; ti,buffer-size = <128>; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/ti/omap/omap4-l4.dtsi +++ linux-riscv-6.5.0/arch/arm/boot/dts/ti/omap/omap4-l4.dtsi @@ -2043,6 +2043,8 @@ compatible = "ti,omap4-mcbsp"; reg = <0x0 0xff>; /* L4 Interconnect */ reg-names = "mpu"; + clocks = <&l4_per_clkctrl OMAP4_MCBSP4_CLKCTRL 24>; + clock-names = "fck"; interrupts = ; interrupt-names = "common"; ti,buffer-size = <128>; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/boot/dts/ti/omap/omap5-l4-abe.dtsi +++ linux-riscv-6.5.0/arch/arm/boot/dts/ti/omap/omap5-l4-abe.dtsi @@ -109,6 +109,8 @@ reg = <0x0 0xff>, /* MPU private access */ <0x49022000 0xff>; /* L3 Interconnect */ reg-names = "mpu", "dma"; + clocks = <&abe_clkctrl OMAP5_MCBSP1_CLKCTRL 24>; + clock-names = "fck"; interrupts = ; interrupt-names = "common"; ti,buffer-size = <128>; @@ -142,6 +144,8 @@ reg = <0x0 0xff>, /* MPU private access */ <0x49024000 0xff>; /* L3 Interconnect */ reg-names = "mpu", "dma"; + clocks = <&abe_clkctrl OMAP5_MCBSP2_CLKCTRL 24>; + clock-names = "fck"; interrupts = ; interrupt-names = "common"; ti,buffer-size = <128>; @@ -175,6 +179,8 @@ reg = <0x0 0xff>, /* MPU private access */ <0x49026000 0xff>; /* L3 Interconnect */ reg-names = "mpu", "dma"; + clocks = <&abe_clkctrl OMAP5_MCBSP3_CLKCTRL 24>; + clock-names = "fck"; interrupts = ; interrupt-names = "common"; ti,buffer-size = <128>; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/include/asm/arm_pmuv3.h +++ linux-riscv-6.5.0/arch/arm/include/asm/arm_pmuv3.h @@ -23,6 +23,8 @@ #define PMUSERENR __ACCESS_CP15(c9, 0, c14, 0) #define PMINTENSET __ACCESS_CP15(c9, 0, c14, 1) #define PMINTENCLR __ACCESS_CP15(c9, 0, c14, 2) +#define PMCEID2 __ACCESS_CP15(c9, 0, c14, 4) +#define PMCEID3 __ACCESS_CP15(c9, 0, c14, 5) #define PMMIR __ACCESS_CP15(c9, 0, c14, 6) #define PMCCFILTR __ACCESS_CP15(c14, 0, c15, 7) @@ -150,21 +152,6 @@ return read_sysreg(PMCCNTR); } -static inline void write_pmxevcntr(u32 val) -{ - write_sysreg(val, PMXEVCNTR); -} - -static inline u32 read_pmxevcntr(void) -{ - return read_sysreg(PMXEVCNTR); -} - -static inline void write_pmxevtyper(u32 val) -{ - write_sysreg(val, PMXEVTYPER); -} - static inline void write_pmcntenset(u32 val) { write_sysreg(val, PMCNTENSET); @@ -205,16 +192,6 @@ write_sysreg(val, PMUSERENR); } -static inline u32 read_pmceid0(void) -{ - return read_sysreg(PMCEID0); -} - -static inline u32 read_pmceid1(void) -{ - return read_sysreg(PMCEID1); -} - static inline void kvm_set_pmu_events(u32 set, struct perf_event_attr *attr) {} static inline void kvm_clr_pmu_events(u32 clr) {} static inline bool kvm_pmu_counter_deferred(struct perf_event_attr *attr) @@ -229,6 +206,7 @@ /* PMU Version in DFR Register */ #define ARMV8_PMU_DFR_VER_NI 0 +#define ARMV8_PMU_DFR_VER_V3P1 0x4 #define ARMV8_PMU_DFR_VER_V3P4 0x5 #define ARMV8_PMU_DFR_VER_V3P5 0x6 #define ARMV8_PMU_DFR_VER_IMP_DEF 0xF @@ -249,4 +227,24 @@ return pmuver >= ARMV8_PMU_DFR_VER_V3P5; } +static inline u64 read_pmceid0(void) +{ + u64 val = read_sysreg(PMCEID0); + + if (read_pmuver() >= ARMV8_PMU_DFR_VER_V3P1) + val |= (u64)read_sysreg(PMCEID2) << 32; + + return val; +} + +static inline u64 read_pmceid1(void) +{ + u64 val = read_sysreg(PMCEID1); + + if (read_pmuver() >= ARMV8_PMU_DFR_VER_V3P1) + val |= (u64)read_sysreg(PMCEID3) << 32; + + return val; +} + #endif only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/include/asm/dma.h +++ linux-riscv-6.5.0/arch/arm/include/asm/dma.h @@ -12,6 +12,9 @@ extern phys_addr_t arm_dma_zone_size; \ arm_dma_zone_size && arm_dma_zone_size < (0x100000000ULL - PAGE_OFFSET) ? \ (PAGE_OFFSET + arm_dma_zone_size) : 0xffffffffUL; }) + +extern phys_addr_t arm_dma_limit; +#define ARCH_LOW_ADDRESS_LIMIT arm_dma_limit #endif #ifdef CONFIG_ISA_DMA_API only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/include/asm/exception.h +++ linux-riscv-6.5.0/arch/arm/include/asm/exception.h @@ -10,10 +10,6 @@ #include -#ifdef CONFIG_FUNCTION_GRAPH_TRACER #define __exception_irq_entry __irq_entry -#else -#define __exception_irq_entry -#endif #endif /* __ASM_ARM_EXCEPTION_H */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/lib/memset.S +++ linux-riscv-6.5.0/arch/arm/lib/memset.S @@ -17,6 +17,7 @@ ENTRY(mmioset) WEAK(memset) UNWIND( .fnstart ) + and r1, r1, #255 @ cast to unsigned char ands r3, r0, #3 @ 1 unaligned? mov ip, r0 @ preserve r0 as return value bne 6f @ 1 only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/mach-imx/mmdc.c +++ linux-riscv-6.5.0/arch/arm/mach-imx/mmdc.c @@ -501,6 +501,10 @@ name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "mmdc%d", ret); + if (!name) { + ret = -ENOMEM; + goto pmu_release_id; + } pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk; pmu_mmdc->devtype_data = (struct fsl_mmdc_devtype_data *)of_id->data; @@ -523,9 +527,10 @@ pmu_register_err: pr_warn("MMDC Perf PMU failed (%d), disabled\n", ret); - ida_simple_remove(&mmdc_ida, pmu_mmdc->id); cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node); hrtimer_cancel(&pmu_mmdc->hrtimer); +pmu_release_id: + ida_simple_remove(&mmdc_ida, pmu_mmdc->id); pmu_free: kfree(pmu_mmdc); return ret; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/mach-omap1/board-ams-delta.c +++ linux-riscv-6.5.0/arch/arm/mach-omap1/board-ams-delta.c @@ -550,6 +550,7 @@ &ams_delta_nand_device, &ams_delta_lcd_device, &cx20442_codec_device, + &modem_nreset_device, }; static struct gpiod_lookup_table *ams_delta_gpio_tables[] __initdata = { @@ -782,26 +783,28 @@ { }, }; +static int ams_delta_modem_pm_activate(struct device *dev) +{ + modem_priv.regulator = regulator_get(dev, "RESET#"); + if (IS_ERR(modem_priv.regulator)) + return -EPROBE_DEFER; + + return 0; +} + +static struct dev_pm_domain ams_delta_modem_pm_domain = { + .activate = ams_delta_modem_pm_activate, +}; + static struct platform_device ams_delta_modem_device = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM1, .dev = { .platform_data = ams_delta_modem_ports, + .pm_domain = &ams_delta_modem_pm_domain, }, }; -static int __init modem_nreset_init(void) -{ - int err; - - err = platform_device_register(&modem_nreset_device); - if (err) - pr_err("Couldn't register the modem regulator device\n"); - - return err; -} - - /* * This function expects MODEM IRQ number already assigned to the port. * The MODEM device requires its RESET# pin kept high during probe. @@ -833,37 +836,6 @@ } arch_initcall_sync(ams_delta_modem_init); -static int __init late_init(void) -{ - int err; - - err = modem_nreset_init(); - if (err) - return err; - - /* - * Once the modem device is registered, the modem_nreset - * regulator can be requested on behalf of that device. - */ - modem_priv.regulator = regulator_get(&ams_delta_modem_device.dev, - "RESET#"); - if (IS_ERR(modem_priv.regulator)) { - err = PTR_ERR(modem_priv.regulator); - goto unregister; - } - return 0; - -unregister: - platform_device_unregister(&ams_delta_modem_device); - return err; -} - -static void __init ams_delta_init_late(void) -{ - omap1_init_late(); - late_init(); -} - static void __init ams_delta_map_io(void) { omap1_map_io(); @@ -877,7 +849,7 @@ .init_early = omap1_init_early, .init_irq = omap1_init_irq, .init_machine = ams_delta_init, - .init_late = ams_delta_init_late, + .init_late = omap1_init_late, .init_time = omap1_timer_init, .restart = omap1_restart, MACHINE_END only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/mach-omap1/timer32k.c +++ linux-riscv-6.5.0/arch/arm/mach-omap1/timer32k.c @@ -176,17 +176,18 @@ return sync32k_cnt_reg ? readl_relaxed(sync32k_cnt_reg) : 0; } +static struct timespec64 persistent_ts; +static cycles_t cycles; +static unsigned int persistent_mult, persistent_shift; + /** * omap_read_persistent_clock64 - Return time from a persistent clock. + * @ts: &struct timespec64 for the returned time * * Reads the time from a source which isn't disabled during PM, the * 32k sync timer. Convert the cycles elapsed since last read into * nsecs and adds to a monotonically increasing timespec64. */ -static struct timespec64 persistent_ts; -static cycles_t cycles; -static unsigned int persistent_mult, persistent_shift; - static void omap_read_persistent_clock64(struct timespec64 *ts) { unsigned long long nsecs; @@ -206,10 +207,9 @@ /** * omap_init_clocksource_32k - setup and register counter 32k as a * kernel clocksource - * @pbase: base addr of counter_32k module - * @size: size of counter_32k to map + * @vbase: base addr of counter_32k module * - * Returns 0 upon success or negative error code upon failure. + * Returns: %0 upon success or negative error code upon failure. * */ static int __init omap_init_clocksource_32k(void __iomem *vbase) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm/xen/enlighten.c +++ linux-riscv-6.5.0/arch/arm/xen/enlighten.c @@ -164,9 +164,6 @@ BUG_ON(err); per_cpu(xen_vcpu, cpu) = vcpup; - if (!xen_kernel_unmapped_at_usr()) - xen_setup_runstate_info(cpu); - after_register_vcpu_info: enable_percpu_irq(xen_events_irq, 0); return 0; @@ -207,7 +204,7 @@ static irqreturn_t xen_arm_callback(int irq, void *arg) { - xen_hvm_evtchn_do_upcall(); + xen_evtchn_do_upcall(); return IRQ_HANDLED; } @@ -487,7 +484,8 @@ * for secondary CPUs as they are brought up. * For uniformity we use VCPUOP_register_vcpu_info even on cpu0. */ - xen_vcpu_info = alloc_percpu(struct vcpu_info); + xen_vcpu_info = __alloc_percpu(sizeof(struct vcpu_info), + 1 << fls(sizeof(struct vcpu_info) - 1)); if (xen_vcpu_info == NULL) return -ENOMEM; @@ -523,9 +521,6 @@ return -EINVAL; } - if (!xen_kernel_unmapped_at_usr()) - xen_time_setup_guest(); - if (xen_initial_domain()) pvclock_gtod_register_notifier(&xen_pvclock_gtod_notifier); @@ -535,7 +530,13 @@ } early_initcall(xen_guest_init); -static int __init xen_pm_init(void) +static int xen_starting_runstate_cpu(unsigned int cpu) +{ + xen_setup_runstate_info(cpu); + return 0; +} + +static int __init xen_late_init(void) { if (!xen_domain()) return -ENODEV; @@ -548,9 +549,16 @@ do_settimeofday64(&ts); } - return 0; + if (xen_kernel_unmapped_at_usr()) + return 0; + + xen_time_setup_guest(); + + return cpuhp_setup_state(CPUHP_AP_ARM_XEN_RUNSTATE_STARTING, + "arm/xen_runstate:starting", + xen_starting_runstate_cpu, NULL); } -late_initcall(xen_pm_init); +late_initcall(xen_late_init); /* empty stubs */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi @@ -1186,26 +1186,34 @@ dma-coherent; }; - usb0: usb@3100000 { - status = "disabled"; - compatible = "snps,dwc3"; - reg = <0x0 0x3100000 0x0 0x10000>; - interrupts = <0 80 0x4>; /* Level high type */ - dr_mode = "host"; - snps,quirk-frame-length-adjustment = <0x20>; - snps,dis_rxdet_inp3_quirk; - snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; - }; + bus: bus { + #address-cells = <2>; + #size-cells = <2>; + compatible = "simple-bus"; + ranges; + dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x00000000>; + + usb0: usb@3100000 { + compatible = "snps,dwc3"; + reg = <0x0 0x3100000 0x0 0x10000>; + interrupts = <0 80 0x4>; /* Level high type */ + dr_mode = "host"; + snps,quirk-frame-length-adjustment = <0x20>; + snps,dis_rxdet_inp3_quirk; + snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; + status = "disabled"; + }; - usb1: usb@3110000 { - status = "disabled"; - compatible = "snps,dwc3"; - reg = <0x0 0x3110000 0x0 0x10000>; - interrupts = <0 81 0x4>; /* Level high type */ - dr_mode = "host"; - snps,quirk-frame-length-adjustment = <0x20>; - snps,dis_rxdet_inp3_quirk; - snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; + usb1: usb@3110000 { + compatible = "snps,dwc3"; + reg = <0x0 0x3110000 0x0 0x10000>; + interrupts = <0 81 0x4>; /* Level high type */ + dr_mode = "host"; + snps,quirk-frame-length-adjustment = <0x20>; + snps,dis_rxdet_inp3_quirk; + snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; + status = "disabled"; + }; }; ccn@4000000 { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/freescale/imx8-apalis-v1.1.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/freescale/imx8-apalis-v1.1.dtsi @@ -82,12 +82,9 @@ pinctrl-0 = <&pinctrl_wifi_pdn>; gpio = <&lsio_gpio1 28 GPIO_ACTIVE_HIGH>; enable-active-high; + regulator-always-on; regulator-name = "wifi_pwrdn_fake_regulator"; regulator-settling-time-us = <100>; - - regulator-state-mem { - regulator-off-in-suspend; - }; }; reg_pcie_switch: regulator-pcie-switch { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/freescale/imx8-ss-lsio.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/freescale/imx8-ss-lsio.dtsi @@ -36,7 +36,8 @@ <&pwm0_lpcg 1>; assigned-clocks = <&clk IMX_SC_R_PWM_0 IMX_SC_PM_CLK_PER>; assigned-clock-rates = <24000000>; - #pwm-cells = <2>; + #pwm-cells = <3>; + interrupts = ; status = "disabled"; }; @@ -48,7 +49,8 @@ <&pwm1_lpcg 1>; assigned-clocks = <&clk IMX_SC_R_PWM_1 IMX_SC_PM_CLK_PER>; assigned-clock-rates = <24000000>; - #pwm-cells = <2>; + #pwm-cells = <3>; + interrupts = ; status = "disabled"; }; @@ -60,7 +62,8 @@ <&pwm2_lpcg 1>; assigned-clocks = <&clk IMX_SC_R_PWM_2 IMX_SC_PM_CLK_PER>; assigned-clock-rates = <24000000>; - #pwm-cells = <2>; + #pwm-cells = <3>; + interrupts = ; status = "disabled"; }; @@ -72,7 +75,8 @@ <&pwm3_lpcg 1>; assigned-clocks = <&clk IMX_SC_R_PWM_3 IMX_SC_PM_CLK_PER>; assigned-clock-rates = <24000000>; - #pwm-cells = <2>; + #pwm-cells = <3>; + interrupts = ; status = "disabled"; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/freescale/imx8mm.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/freescale/imx8mm.dtsi @@ -399,6 +399,7 @@ "pll8k", "pll11k", "clkext3"; dmas = <&sdma2 24 25 0x80000000>; dma-names = "rx"; + #sound-dai-cells = <0>; status = "disabled"; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/freescale/imx8mn.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/freescale/imx8mn.dtsi @@ -371,6 +371,7 @@ "pll8k", "pll11k", "clkext3"; dmas = <&sdma2 24 25 0x80000000>; dma-names = "rx"; + #sound-dai-cells = <0>; status = "disabled"; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/freescale/imx8mq.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/freescale/imx8mq.dtsi @@ -1457,6 +1457,7 @@ phys = <&usb3_phy0>, <&usb3_phy0>; phy-names = "usb2-phy", "usb3-phy"; power-domains = <&pgc_otg1>; + snps,parkmode-disable-ss-quirk; status = "disabled"; }; @@ -1488,6 +1489,7 @@ phys = <&usb3_phy1>, <&usb3_phy1>; phy-names = "usb2-phy", "usb3-phy"; power-domains = <&pgc_otg2>; + snps,parkmode-disable-ss-quirk; status = "disabled"; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/freescale/imx8qm-ss-img.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/freescale/imx8qm-ss-img.dtsi @@ -8,5 +8,5 @@ }; &jpegenc { - compatible = "nxp,imx8qm-jpgdec", "nxp,imx8qxp-jpgenc"; + compatible = "nxp,imx8qm-jpgenc", "nxp,imx8qxp-jpgenc"; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/freescale/imx93.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/freescale/imx93.dtsi @@ -146,7 +146,7 @@ #size-cells = <1>; ranges; - anomix_ns_gpr: syscon@44210000 { + aonmix_ns_gpr: syscon@44210000 { compatible = "fsl,imx93-aonmix-ns-syscfg", "syscon"; reg = <0x44210000 0x1000>; }; @@ -280,6 +280,7 @@ assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>; assigned-clock-rates = <40000000>; fsl,clk-source = /bits/ 8 <0>; + fsl,stop-mode = <&aonmix_ns_gpr 0x14 0>; status = "disabled"; }; @@ -333,7 +334,7 @@ compatible = "fsl,imx93-src-slice"; reg = <0x44462400 0x400>, <0x44465800 0x400>; #power-domain-cells = <0>; - clocks = <&clk IMX93_CLK_MEDIA_AXI>, + clocks = <&clk IMX93_CLK_NIC_MEDIA_GATE>, <&clk IMX93_CLK_MEDIA_APB>; }; }; @@ -532,6 +533,7 @@ assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>; assigned-clock-rates = <40000000>; fsl,clk-source = /bits/ 8 <0>; + fsl,stop-mode = <&wakeupmix_gpr 0x0c 2>; status = "disabled"; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/marvell/cn9130-crb.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/marvell/cn9130-crb.dtsi @@ -120,7 +120,7 @@ "mpp59", "mpp60", "mpp61"; marvell,function = "sdio"; }; - cp0_spi0_pins: cp0-spi-pins-0 { + cp0_spi1_pins: cp0-spi-pins-1 { marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16"; marvell,function = "spi1"; }; @@ -170,7 +170,7 @@ &cp0_spi1 { pinctrl-names = "default"; - pinctrl-0 = <&cp0_spi0_pins>; + pinctrl-0 = <&cp0_spi1_pins>; reg = <0x700680 0x50>, /* control */ <0x2000000 0x1000000>; /* CS0 */ status = "okay"; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/marvell/cn9130-db.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/marvell/cn9130-db.dtsi @@ -307,7 +307,7 @@ &cp0_spi1 { status = "disabled"; pinctrl-names = "default"; - pinctrl-0 = <&cp0_spi0_pins>; + pinctrl-0 = <&cp0_spi1_pins>; reg = <0x700680 0x50>; flash@0 { @@ -371,7 +371,7 @@ "mpp59", "mpp60", "mpp61"; marvell,function = "sdio"; }; - cp0_spi0_pins: cp0-spi-pins-0 { + cp0_spi1_pins: cp0-spi-pins-1 { marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16"; marvell,function = "spi1"; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts +++ linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts @@ -73,7 +73,7 @@ }; }; - memory { + memory@40000000 { reg = <0 0x40000000 0 0x40000000>; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts +++ linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts @@ -55,7 +55,7 @@ }; }; - memory { + memory@40000000 { reg = <0 0x40000000 0 0x20000000>; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts +++ linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dts @@ -126,6 +126,7 @@ compatible = "sff,sfp"; i2c-bus = <&i2c_sfp1>; los-gpios = <&pio 46 GPIO_ACTIVE_HIGH>; + maximum-power-milliwatt = <3000>; mod-def0-gpios = <&pio 49 GPIO_ACTIVE_LOW>; tx-disable-gpios = <&pio 20 GPIO_ACTIVE_HIGH>; tx-fault-gpios = <&pio 7 GPIO_ACTIVE_HIGH>; @@ -137,6 +138,7 @@ i2c-bus = <&i2c_sfp2>; los-gpios = <&pio 31 GPIO_ACTIVE_HIGH>; mod-def0-gpios = <&pio 47 GPIO_ACTIVE_LOW>; + maximum-power-milliwatt = <3000>; tx-disable-gpios = <&pio 15 GPIO_ACTIVE_HIGH>; tx-fault-gpios = <&pio 48 GPIO_ACTIVE_HIGH>; }; @@ -150,16 +152,16 @@ trip = <&cpu_trip_active_high>; }; - cpu-active-low { + cpu-active-med { /* active: set fan to cooling level 1 */ cooling-device = <&fan 1 1>; - trip = <&cpu_trip_active_low>; + trip = <&cpu_trip_active_med>; }; - cpu-passive { - /* passive: set fan to cooling level 0 */ + cpu-active-low { + /* active: set fan to cooling level 0 */ cooling-device = <&fan 0 0>; - trip = <&cpu_trip_passive>; + trip = <&cpu_trip_active_low>; }; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/mediatek/mt8173-evb.dts +++ linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt8173-evb.dts @@ -44,7 +44,7 @@ id-gpio = <&pio 16 GPIO_ACTIVE_HIGH>; }; - usb_p1_vbus: regulator@0 { + usb_p1_vbus: regulator-usb-p1 { compatible = "regulator-fixed"; regulator-name = "usb_vbus"; regulator-min-microvolt = <5000000>; @@ -53,7 +53,7 @@ enable-active-high; }; - usb_p0_vbus: regulator@1 { + usb_p0_vbus: regulator-usb-p0 { compatible = "regulator-fixed"; regulator-name = "vbus"; regulator-min-microvolt = <5000000>; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/mediatek/mt8183-evb.dts +++ linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt8183-evb.dts @@ -31,14 +31,14 @@ #address-cells = <2>; #size-cells = <2>; ranges; - scp_mem_reserved: scp_mem_region { + scp_mem_reserved: memory@50000000 { compatible = "shared-dma-pool"; reg = <0 0x50000000 0 0x2900000>; no-map; }; }; - ntc@0 { + thermal-sensor { compatible = "murata,ncp03wf104"; pullup-uv = <1800000>; pullup-ohm = <390000>; @@ -155,8 +155,8 @@ }; &pio { - i2c_pins_0: i2c0{ - pins_i2c{ + i2c_pins_0: i2c0 { + pins_i2c { pinmux = , ; mediatek,pull-up-adv = <3>; @@ -164,8 +164,8 @@ }; }; - i2c_pins_1: i2c1{ - pins_i2c{ + i2c_pins_1: i2c1 { + pins_i2c { pinmux = , ; mediatek,pull-up-adv = <3>; @@ -173,8 +173,8 @@ }; }; - i2c_pins_2: i2c2{ - pins_i2c{ + i2c_pins_2: i2c2 { + pins_i2c { pinmux = , ; mediatek,pull-up-adv = <3>; @@ -182,8 +182,8 @@ }; }; - i2c_pins_3: i2c3{ - pins_i2c{ + i2c_pins_3: i2c3 { + pins_i2c { pinmux = , ; mediatek,pull-up-adv = <3>; @@ -191,8 +191,8 @@ }; }; - i2c_pins_4: i2c4{ - pins_i2c{ + i2c_pins_4: i2c4 { + pins_i2c { pinmux = , ; mediatek,pull-up-adv = <3>; @@ -200,8 +200,8 @@ }; }; - i2c_pins_5: i2c5{ - pins_i2c{ + i2c_pins_5: i2c5 { + pins_i2c { pinmux = , ; mediatek,pull-up-adv = <3>; @@ -209,8 +209,8 @@ }; }; - spi_pins_0: spi0{ - pins_spi{ + spi_pins_0: spi0 { + pins_spi { pinmux = , , , @@ -324,8 +324,8 @@ }; }; - spi_pins_1: spi1{ - pins_spi{ + spi_pins_1: spi1 { + pins_spi { pinmux = , , , @@ -334,8 +334,8 @@ }; }; - spi_pins_2: spi2{ - pins_spi{ + spi_pins_2: spi2 { + pins_spi { pinmux = , , , @@ -344,8 +344,8 @@ }; }; - spi_pins_3: spi3{ - pins_spi{ + spi_pins_3: spi3 { + pins_spi { pinmux = , , , @@ -354,8 +354,8 @@ }; }; - spi_pins_4: spi4{ - pins_spi{ + spi_pins_4: spi4 { + pins_spi { pinmux = , , , @@ -364,8 +364,8 @@ }; }; - spi_pins_5: spi5{ - pins_spi{ + spi_pins_5: spi5 { + pins_spi { pinmux = , , , only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi @@ -91,6 +91,8 @@ &dsi0 { status = "okay"; + /delete-property/#size-cells; + /delete-property/#address-cells; /delete-node/panel@0; ports { port { @@ -441,20 +443,20 @@ }; touchscreen_pins: touchscreen-pins { - touch_int_odl { + touch-int-odl { pinmux = ; input-enable; bias-pull-up; }; - touch_rst_l { + touch-rst-l { pinmux = ; output-high; }; }; trackpad_pins: trackpad-pins { - trackpad_int { + trackpad-int { pinmux = ; input-enable; bias-disable; /* pulled externally */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi @@ -108,7 +108,7 @@ #size-cells = <2>; ranges; - scp_mem_reserved: scp_mem_region { + scp_mem_reserved: memory@50000000 { compatible = "shared-dma-pool"; reg = <0 0x50000000 0 0x2900000>; no-map; @@ -432,7 +432,7 @@ &pio { aud_pins_default: audiopins { - pins_bus { + pins-bus { pinmux = , , , @@ -454,7 +454,7 @@ }; aud_pins_tdm_out_on: audiotdmouton { - pins_bus { + pins-bus { pinmux = , , , @@ -466,7 +466,7 @@ }; aud_pins_tdm_out_off: audiotdmoutoff { - pins_bus { + pins-bus { pinmux = , , , @@ -480,13 +480,13 @@ }; bt_pins: bt-pins { - pins_bt_en { + pins-bt-en { pinmux = ; output-low; }; }; - ec_ap_int_odl: ec_ap_int_odl { + ec_ap_int_odl: ec-ap-int-odl { pins1 { pinmux = ; input-enable; @@ -494,7 +494,7 @@ }; }; - h1_int_od_l: h1_int_od_l { + h1_int_od_l: h1-int-od-l { pins1 { pinmux = ; input-enable; @@ -502,7 +502,7 @@ }; i2c0_pins: i2c0 { - pins_bus { + pins-bus { pinmux = , ; mediatek,pull-up-adv = <3>; @@ -511,7 +511,7 @@ }; i2c1_pins: i2c1 { - pins_bus { + pins-bus { pinmux = , ; mediatek,pull-up-adv = <3>; @@ -520,7 +520,7 @@ }; i2c2_pins: i2c2 { - pins_bus { + pins-bus { pinmux = , ; bias-disable; @@ -529,7 +529,7 @@ }; i2c3_pins: i2c3 { - pins_bus { + pins-bus { pinmux = , ; mediatek,pull-up-adv = <3>; @@ -538,7 +538,7 @@ }; i2c4_pins: i2c4 { - pins_bus { + pins-bus { pinmux = , ; bias-disable; @@ -547,7 +547,7 @@ }; i2c5_pins: i2c5 { - pins_bus { + pins-bus { pinmux = , ; mediatek,pull-up-adv = <3>; @@ -556,7 +556,7 @@ }; i2c6_pins: i2c6 { - pins_bus { + pins-bus { pinmux = , ; bias-disable; @@ -564,7 +564,7 @@ }; mmc0_pins_default: mmc0-pins-default { - pins_cmd_dat { + pins-cmd-dat { pinmux = , , , @@ -579,13 +579,13 @@ mediatek,pull-up-adv = <01>; }; - pins_clk { + pins-clk { pinmux = ; drive-strength = ; mediatek,pull-down-adv = <10>; }; - pins_rst { + pins-rst { pinmux = ; drive-strength = ; mediatek,pull-down-adv = <01>; @@ -593,7 +593,7 @@ }; mmc0_pins_uhs: mmc0-pins-uhs { - pins_cmd_dat { + pins-cmd-dat { pinmux = , , , @@ -608,19 +608,19 @@ mediatek,pull-up-adv = <01>; }; - pins_clk { + pins-clk { pinmux = ; drive-strength = ; mediatek,pull-down-adv = <10>; }; - pins_ds { + pins-ds { pinmux = ; drive-strength = ; mediatek,pull-down-adv = <10>; }; - pins_rst { + pins-rst { pinmux = ; drive-strength = ; mediatek,pull-up-adv = <01>; @@ -628,7 +628,7 @@ }; mmc1_pins_default: mmc1-pins-default { - pins_cmd_dat { + pins-cmd-dat { pinmux = , , , @@ -638,7 +638,7 @@ mediatek,pull-up-adv = <10>; }; - pins_clk { + pins-clk { pinmux = ; input-enable; mediatek,pull-down-adv = <10>; @@ -646,7 +646,7 @@ }; mmc1_pins_uhs: mmc1-pins-uhs { - pins_cmd_dat { + pins-cmd-dat { pinmux = , , , @@ -657,7 +657,7 @@ mediatek,pull-up-adv = <10>; }; - pins_clk { + pins-clk { pinmux = ; drive-strength = ; mediatek,pull-down-adv = <10>; @@ -665,15 +665,15 @@ }; }; - panel_pins_default: panel_pins_default { - panel_reset { + panel_pins_default: panel-pins-default { + panel-reset { pinmux = ; output-low; bias-pull-up; }; }; - pwm0_pin_default: pwm0_pin_default { + pwm0_pin_default: pwm0-pin-default { pins1 { pinmux = ; output-high; @@ -685,14 +685,14 @@ }; scp_pins: scp { - pins_scp_uart { + pins-scp-uart { pinmux = , ; }; }; spi0_pins: spi0 { - pins_spi{ + pins-spi { pinmux = , , , @@ -702,7 +702,7 @@ }; spi1_pins: spi1 { - pins_spi{ + pins-spi { pinmux = , , , @@ -712,20 +712,20 @@ }; spi2_pins: spi2 { - pins_spi{ + pins-spi { pinmux = , , ; bias-disable; }; - pins_spi_mi { + pins-spi-mi { pinmux = ; mediatek,pull-down-adv = <00>; }; }; spi3_pins: spi3 { - pins_spi{ + pins-spi { pinmux = , , , @@ -735,7 +735,7 @@ }; spi4_pins: spi4 { - pins_spi{ + pins-spi { pinmux = , , , @@ -745,7 +745,7 @@ }; spi5_pins: spi5 { - pins_spi{ + pins-spi { pinmux = , , , @@ -755,63 +755,63 @@ }; uart0_pins_default: uart0-pins-default { - pins_rx { + pins-rx { pinmux = ; input-enable; bias-pull-up; }; - pins_tx { + pins-tx { pinmux = ; }; }; uart1_pins_default: uart1-pins-default { - pins_rx { + pins-rx { pinmux = ; input-enable; bias-pull-up; }; - pins_tx { + pins-tx { pinmux = ; }; - pins_rts { + pins-rts { pinmux = ; output-enable; }; - pins_cts { + pins-cts { pinmux = ; input-enable; }; }; uart1_pins_sleep: uart1-pins-sleep { - pins_rx { + pins-rx { pinmux = ; input-enable; bias-pull-up; }; - pins_tx { + pins-tx { pinmux = ; }; - pins_rts { + pins-rts { pinmux = ; output-enable; }; - pins_cts { + pins-cts { pinmux = ; input-enable; }; }; wifi_pins_pwrseq: wifi-pins-pwrseq { - pins_wifi_enable { + pins-wifi-enable { pinmux = ; output-low; }; }; wifi_pins_wakeup: wifi-pins-wakeup { - pins_wifi_wakeup { + pins-wifi-wakeup { pinmux = ; input-enable; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/mediatek/mt8183-pumpkin.dts +++ linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt8183-pumpkin.dts @@ -193,7 +193,7 @@ &pio { i2c_pins_0: i2c0 { - pins_i2c{ + pins_i2c { pinmux = , ; mediatek,pull-up-adv = <3>; @@ -202,7 +202,7 @@ }; i2c_pins_1: i2c1 { - pins_i2c{ + pins_i2c { pinmux = , ; mediatek,pull-up-adv = <3>; @@ -211,7 +211,7 @@ }; i2c_pins_2: i2c2 { - pins_i2c{ + pins_i2c { pinmux = , ; mediatek,pull-up-adv = <3>; @@ -220,7 +220,7 @@ }; i2c_pins_3: i2c3 { - pins_i2c{ + pins_i2c { pinmux = , ; mediatek,pull-up-adv = <3>; @@ -229,7 +229,7 @@ }; i2c_pins_4: i2c4 { - pins_i2c{ + pins_i2c { pinmux = , ; mediatek,pull-up-adv = <3>; @@ -238,7 +238,7 @@ }; i2c_pins_5: i2c5 { - pins_i2c{ + pins_i2c { pinmux = , ; mediatek,pull-up-adv = <3>; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/mediatek/mt8183.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt8183.dtsi @@ -1210,127 +1210,6 @@ nvmem-cell-names = "calibration-data"; }; - thermal_zones: thermal-zones { - cpu_thermal: cpu-thermal { - polling-delay-passive = <100>; - polling-delay = <500>; - thermal-sensors = <&thermal 0>; - sustainable-power = <5000>; - - trips { - threshold: trip-point0 { - temperature = <68000>; - hysteresis = <2000>; - type = "passive"; - }; - - target: trip-point1 { - temperature = <80000>; - hysteresis = <2000>; - type = "passive"; - }; - - cpu_crit: cpu-crit { - temperature = <115000>; - hysteresis = <2000>; - type = "critical"; - }; - }; - - cooling-maps { - map0 { - trip = <&target>; - cooling-device = <&cpu0 - THERMAL_NO_LIMIT - THERMAL_NO_LIMIT>, - <&cpu1 - THERMAL_NO_LIMIT - THERMAL_NO_LIMIT>, - <&cpu2 - THERMAL_NO_LIMIT - THERMAL_NO_LIMIT>, - <&cpu3 - THERMAL_NO_LIMIT - THERMAL_NO_LIMIT>; - contribution = <3072>; - }; - map1 { - trip = <&target>; - cooling-device = <&cpu4 - THERMAL_NO_LIMIT - THERMAL_NO_LIMIT>, - <&cpu5 - THERMAL_NO_LIMIT - THERMAL_NO_LIMIT>, - <&cpu6 - THERMAL_NO_LIMIT - THERMAL_NO_LIMIT>, - <&cpu7 - THERMAL_NO_LIMIT - THERMAL_NO_LIMIT>; - contribution = <1024>; - }; - }; - }; - - /* The tzts1 ~ tzts6 don't need to polling */ - /* The tzts1 ~ tzts6 don't need to thermal throttle */ - - tzts1: tzts1 { - polling-delay-passive = <0>; - polling-delay = <0>; - thermal-sensors = <&thermal 1>; - sustainable-power = <5000>; - trips {}; - cooling-maps {}; - }; - - tzts2: tzts2 { - polling-delay-passive = <0>; - polling-delay = <0>; - thermal-sensors = <&thermal 2>; - sustainable-power = <5000>; - trips {}; - cooling-maps {}; - }; - - tzts3: tzts3 { - polling-delay-passive = <0>; - polling-delay = <0>; - thermal-sensors = <&thermal 3>; - sustainable-power = <5000>; - trips {}; - cooling-maps {}; - }; - - tzts4: tzts4 { - polling-delay-passive = <0>; - polling-delay = <0>; - thermal-sensors = <&thermal 4>; - sustainable-power = <5000>; - trips {}; - cooling-maps {}; - }; - - tzts5: tzts5 { - polling-delay-passive = <0>; - polling-delay = <0>; - thermal-sensors = <&thermal 5>; - sustainable-power = <5000>; - trips {}; - cooling-maps {}; - }; - - tztsABB: tztsABB { - polling-delay-passive = <0>; - polling-delay = <0>; - thermal-sensors = <&thermal 6>; - sustainable-power = <5000>; - trips {}; - cooling-maps {}; - }; - }; - pwm0: pwm@1100e000 { compatible = "mediatek,mt8183-disp-pwm"; reg = <0 0x1100e000 0 0x1000>; @@ -2105,4 +1984,125 @@ power-domains = <&spm MT8183_POWER_DOMAIN_CAM>; }; }; + + thermal_zones: thermal-zones { + cpu_thermal: cpu-thermal { + polling-delay-passive = <100>; + polling-delay = <500>; + thermal-sensors = <&thermal 0>; + sustainable-power = <5000>; + + trips { + threshold: trip-point0 { + temperature = <68000>; + hysteresis = <2000>; + type = "passive"; + }; + + target: trip-point1 { + temperature = <80000>; + hysteresis = <2000>; + type = "passive"; + }; + + cpu_crit: cpu-crit { + temperature = <115000>; + hysteresis = <2000>; + type = "critical"; + }; + }; + + cooling-maps { + map0 { + trip = <&target>; + cooling-device = <&cpu0 + THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>, + <&cpu1 + THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>, + <&cpu2 + THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>, + <&cpu3 + THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>; + contribution = <3072>; + }; + map1 { + trip = <&target>; + cooling-device = <&cpu4 + THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>, + <&cpu5 + THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>, + <&cpu6 + THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>, + <&cpu7 + THERMAL_NO_LIMIT + THERMAL_NO_LIMIT>; + contribution = <1024>; + }; + }; + }; + + /* The tzts1 ~ tzts6 don't need to polling */ + /* The tzts1 ~ tzts6 don't need to thermal throttle */ + + tzts1: tzts1 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&thermal 1>; + sustainable-power = <5000>; + trips {}; + cooling-maps {}; + }; + + tzts2: tzts2 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&thermal 2>; + sustainable-power = <5000>; + trips {}; + cooling-maps {}; + }; + + tzts3: tzts3 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&thermal 3>; + sustainable-power = <5000>; + trips {}; + cooling-maps {}; + }; + + tzts4: tzts4 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&thermal 4>; + sustainable-power = <5000>; + trips {}; + cooling-maps {}; + }; + + tzts5: tzts5 { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&thermal 5>; + sustainable-power = <5000>; + trips {}; + cooling-maps {}; + }; + + tztsABB: tztsABB { + polling-delay-passive = <0>; + polling-delay = <0>; + thermal-sensors = <&thermal 6>; + sustainable-power = <5000>; + trips {}; + cooling-maps {}; + }; + }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/mediatek/mt8186.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt8186.dtsi @@ -924,7 +924,8 @@ reg = ; clocks = <&topckgen CLK_TOP_SENINF>, <&topckgen CLK_TOP_SENINF1>; - clock-names = "csirx_top0", "csirx_top1"; + clock-names = "subsys-csirx-top0", + "subsys-csirx-top1"; #power-domain-cells = <0>; }; @@ -942,7 +943,8 @@ reg = ; clocks = <&topckgen CLK_TOP_AUDIODSP>, <&topckgen CLK_TOP_ADSP_BUS>; - clock-names = "audioadsp", "adsp_bus"; + clock-names = "audioadsp", + "subsys-adsp-bus"; #address-cells = <1>; #size-cells = <0>; #power-domain-cells = <1>; @@ -975,8 +977,11 @@ <&mmsys CLK_MM_SMI_COMMON>, <&mmsys CLK_MM_SMI_GALS>, <&mmsys CLK_MM_SMI_IOMMU>; - clock-names = "disp", "mdp", "smi_infra", "smi_common", - "smi_gals", "smi_iommu"; + clock-names = "disp", "mdp", + "subsys-smi-infra", + "subsys-smi-common", + "subsys-smi-gals", + "subsys-smi-iommu"; mediatek,infracfg = <&infracfg_ao>; #address-cells = <1>; #size-cells = <0>; @@ -993,15 +998,17 @@ power-domain@MT8186_POWER_DOMAIN_CAM { reg = ; - clocks = <&topckgen CLK_TOP_CAM>, - <&topckgen CLK_TOP_SENINF>, + clocks = <&topckgen CLK_TOP_SENINF>, <&topckgen CLK_TOP_SENINF1>, <&topckgen CLK_TOP_SENINF2>, <&topckgen CLK_TOP_SENINF3>, + <&camsys CLK_CAM2MM_GALS>, <&topckgen CLK_TOP_CAMTM>, - <&camsys CLK_CAM2MM_GALS>; - clock-names = "cam-top", "cam0", "cam1", "cam2", - "cam3", "cam-tm", "gals"; + <&topckgen CLK_TOP_CAM>; + clock-names = "cam0", "cam1", "cam2", + "cam3", "gals", + "subsys-cam-tm", + "subsys-cam-top"; mediatek,infracfg = <&infracfg_ao>; #address-cells = <1>; #size-cells = <0>; @@ -1020,9 +1027,9 @@ power-domain@MT8186_POWER_DOMAIN_IMG { reg = ; - clocks = <&topckgen CLK_TOP_IMG1>, - <&imgsys1 CLK_IMG1_GALS_IMG1>; - clock-names = "img-top", "gals"; + clocks = <&imgsys1 CLK_IMG1_GALS_IMG1>, + <&topckgen CLK_TOP_IMG1>; + clock-names = "gals", "subsys-img-top"; mediatek,infracfg = <&infracfg_ao>; #address-cells = <1>; #size-cells = <0>; @@ -1041,8 +1048,11 @@ <&ipesys CLK_IPE_LARB20>, <&ipesys CLK_IPE_SMI_SUBCOM>, <&ipesys CLK_IPE_GALS_IPE>; - clock-names = "ipe-top", "ipe-larb0", "ipe-larb1", - "ipe-smi", "ipe-gals"; + clock-names = "subsys-ipe-top", + "subsys-ipe-larb0", + "subsys-ipe-larb1", + "subsys-ipe-smi", + "subsys-ipe-gals"; mediatek,infracfg = <&infracfg_ao>; #power-domain-cells = <0>; }; @@ -1061,7 +1071,9 @@ clocks = <&topckgen CLK_TOP_WPE>, <&wpesys CLK_WPE_SMI_LARB8_CK_EN>, <&wpesys CLK_WPE_SMI_LARB8_PCLK_EN>; - clock-names = "wpe0", "larb-ck", "larb-pclk"; + clock-names = "wpe0", + "subsys-larb-ck", + "subsys-larb-pclk"; mediatek,infracfg = <&infracfg_ao>; #power-domain-cells = <0>; }; @@ -1656,7 +1668,7 @@ #address-cells = <1>; #size-cells = <1>; - gpu_speedbin: gpu-speed-bin@59c { + gpu_speedbin: gpu-speedbin@59c { reg = <0x59c 0x4>; bits = <0 3>; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi @@ -362,7 +362,7 @@ pinctrl-0 = <&i2c7_pins>; pmic@34 { - #interrupt-cells = <1>; + #interrupt-cells = <2>; compatible = "mediatek,mt6360"; reg = <0x34>; interrupt-controller; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/nvidia/tegra234-p3767.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/nvidia/tegra234-p3767.dtsi @@ -28,7 +28,7 @@ flash@0 { compatible = "jedec,spi-nor"; reg = <0>; - spi-max-frequency = <136000000>; + spi-max-frequency = <102000000>; spi-tx-bus-width = <4>; spi-rx-bus-width = <4>; }; @@ -42,7 +42,7 @@ mmc@3400000 { status = "okay"; bus-width = <4>; - cd-gpios = <&gpio TEGRA234_MAIN_GPIO(G, 7) GPIO_ACTIVE_HIGH>; + cd-gpios = <&gpio TEGRA234_MAIN_GPIO(G, 7) GPIO_ACTIVE_LOW>; disable-wp; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/qcom/ipq5332.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/ipq5332.dtsi @@ -135,7 +135,7 @@ reg = <0x0 0x4a800000 0x0 0x100000>; no-map; - hwlocks = <&tcsr_mutex 0>; + hwlocks = <&tcsr_mutex 3>; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/qcom/ipq6018.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/ipq6018.dtsi @@ -207,7 +207,7 @@ smem { compatible = "qcom,smem"; memory-region = <&smem_region>; - hwlocks = <&tcsr_mutex 0>; + hwlocks = <&tcsr_mutex 3>; }; soc: soc@0 { @@ -389,7 +389,7 @@ tcsr_mutex: hwlock@1905000 { compatible = "qcom,ipq6018-tcsr-mutex", "qcom,tcsr-mutex"; - reg = <0x0 0x01905000 0x0 0x1000>; + reg = <0x0 0x01905000 0x0 0x20000>; #hwlock-cells = <1>; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/qcom/ipq9574.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/ipq9574.dtsi @@ -174,7 +174,7 @@ smem@4aa00000 { compatible = "qcom,smem"; reg = <0x0 0x4aa00000 0x0 0x100000>; - hwlocks = <&tcsr_mutex 0>; + hwlocks = <&tcsr_mutex 3>; no-map; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/qcom/msm8916.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/msm8916.dtsi @@ -1805,7 +1805,7 @@ #size-cells = <1>; #iommu-cells = <1>; compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1"; - ranges = <0 0x01e20000 0x40000>; + ranges = <0 0x01e20000 0x20000>; reg = <0x01ef0000 0x3000>; clocks = <&gcc GCC_SMMU_CFG_CLK>, <&gcc GCC_APSS_TCU_CLK>; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/qcom/msm8976.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/msm8976.dtsi @@ -303,7 +303,7 @@ smp2p-modem { compatible = "qcom,smp2p"; interrupts = ; - qcom,ipc = <&apcs 8 13>; + qcom,ipc = <&apcs 8 14>; qcom,local-pid = <0>; qcom,remote-pid = <1>; @@ -326,7 +326,7 @@ smp2p-wcnss { compatible = "qcom,smp2p"; interrupts = ; - qcom,ipc = <&apcs 8 17>; + qcom,ipc = <&apcs 8 18>; qcom,local-pid = <0>; qcom,remote-pid = <4>; @@ -428,9 +428,9 @@ #address-cells = <1>; #size-cells = <0>; - qcom,ipc-1 = <&apcs 8 12>; + qcom,ipc-1 = <&apcs 8 13>; qcom,ipc-2 = <&apcs 8 9>; - qcom,ipc-3 = <&apcs 8 18>; + qcom,ipc-3 = <&apcs 8 19>; apps_smsm: apps@0 { reg = <0>; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts @@ -109,11 +109,6 @@ qcom,client-id = <1>; }; - audio_mem: audio@cb400000 { - reg = <0 0xcb000000 0 0x400000>; - no-mem; - }; - qseecom_mem: qseecom@cb400000 { reg = <0 0xcb400000 0 0x1c00000>; no-mem; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi @@ -11,26 +11,24 @@ #include / { - clocks { - divclk1_cdc: divclk1 { - compatible = "gpio-gate-clock"; - clocks = <&rpmcc RPM_SMD_DIV_CLK1>; - #clock-cells = <0>; - enable-gpios = <&pm8994_gpios 15 GPIO_ACTIVE_HIGH>; + divclk1_cdc: divclk1 { + compatible = "gpio-gate-clock"; + clocks = <&rpmcc RPM_SMD_DIV_CLK1>; + #clock-cells = <0>; + enable-gpios = <&pm8994_gpios 15 GPIO_ACTIVE_HIGH>; - pinctrl-names = "default"; - pinctrl-0 = <&divclk1_default>; - }; + pinctrl-names = "default"; + pinctrl-0 = <&divclk1_default>; + }; - divclk4: divclk4 { - compatible = "fixed-clock"; - #clock-cells = <0>; - clock-frequency = <32768>; - clock-output-names = "divclk4"; + divclk4: divclk4 { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <32768>; + clock-output-names = "divclk4"; - pinctrl-names = "default"; - pinctrl-0 = <&divclk4_pin_a>; - }; + pinctrl-names = "default"; + pinctrl-0 = <&divclk4_pin_a>; }; gpio-keys { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts @@ -13,7 +13,7 @@ compatible = "qcom,qrb2210-rb1", "qcom,qrb2210", "qcom,qcm2290"; aliases { - serial0 = &uart0; + serial0 = &uart4; sdhc1 = &sdhc_1; sdhc2 = &sdhc_2; }; @@ -94,7 +94,7 @@ }; /* UART connected to the Micro-USB port via a FTDI chip */ -&uart0 { +&uart4 { compatible = "qcom,geni-debug-uart"; status = "okay"; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/qcom/sa8775p-pmics.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/sa8775p-pmics.dtsi @@ -173,7 +173,7 @@ compatible = "qcom,pmm8654au-gpio", "qcom,spmi-gpio"; reg = <0x8800>; gpio-controller; - gpio-ranges = <&pmm8654au_2_gpios 0 0 12>; + gpio-ranges = <&pmm8654au_1_gpios 0 0 12>; #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi @@ -143,16 +143,20 @@ }; }; +&cpufreq_hw { + /delete-property/ interrupts-extended; /* reference to lmh_cluster[01] */ +}; + &psci { - /delete-node/ cpu0; - /delete-node/ cpu1; - /delete-node/ cpu2; - /delete-node/ cpu3; - /delete-node/ cpu4; - /delete-node/ cpu5; - /delete-node/ cpu6; - /delete-node/ cpu7; - /delete-node/ cpu-cluster0; + /delete-node/ power-domain-cpu0; + /delete-node/ power-domain-cpu1; + /delete-node/ power-domain-cpu2; + /delete-node/ power-domain-cpu3; + /delete-node/ power-domain-cpu4; + /delete-node/ power-domain-cpu5; + /delete-node/ power-domain-cpu6; + /delete-node/ power-domain-cpu7; + /delete-node/ power-domain-cluster; }; &cpus { @@ -275,6 +279,14 @@ &CLUSTER_SLEEP_0>; }; +&lmh_cluster0 { + status = "disabled"; +}; + +&lmh_cluster1 { + status = "disabled"; +}; + /* * Reserved memory changes * @@ -338,6 +350,8 @@ &apps_rsc { + /delete-property/ power-domains; + regulators-0 { compatible = "qcom,pm8998-rpmh-regulators"; qcom,pmic-id = "a"; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/qcom/sdm845-mtp.dts +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/sdm845-mtp.dts @@ -715,6 +715,8 @@ vdd-1.8-xo-supply = <&vreg_l7a_1p8>; vdd-1.3-rfa-supply = <&vreg_l17a_1p3>; vdd-3.3-ch0-supply = <&vreg_l25a_3p3>; + + qcom,snoc-host-cap-8bit-quirk; }; /* PINCTRL - additions to nodes defined in sdm845.dtsi */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/qcom/sm6125.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/qcom/sm6125.dtsi @@ -1204,7 +1204,7 @@ apps_smmu: iommu@c600000 { compatible = "qcom,sm6125-smmu-500", "qcom,smmu-500", "arm,mmu-500"; - reg = <0xc600000 0x80000>; + reg = <0x0c600000 0x80000>; interrupts = , , , only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts +++ linux-riscv-6.5.0/arch/arm64/boot/dts/rockchip/px30-ringneck-haikou.dts @@ -68,15 +68,17 @@ simple-audio-card,format = "i2s"; simple-audio-card,name = "Haikou,I2S-codec"; simple-audio-card,mclk-fs = <512>; + simple-audio-card,frame-master = <&sgtl5000_codec>; + simple-audio-card,bitclock-master = <&sgtl5000_codec>; - simple-audio-card,codec { - clocks = <&sgtl5000_clk>; + sgtl5000_codec: simple-audio-card,codec { sound-dai = <&sgtl5000>; + // Prevent the dai subsystem from overwriting the clock + // frequency. We are using a fixed-frequency oscillator. + system-clock-fixed; }; simple-audio-card,cpu { - bitclock-master; - frame-master; sound-dai = <&i2s0_8ch>; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/rockchip/rk3328.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/rockchip/rk3328.dtsi @@ -668,7 +668,7 @@ vdec: video-codec@ff360000 { compatible = "rockchip,rk3328-vdec", "rockchip,rk3399-vdec"; - reg = <0x0 0xff360000 0x0 0x400>; + reg = <0x0 0xff360000 0x0 0x480>; interrupts = ; clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>, <&cru SCLK_VDEC_CABAC>, <&cru SCLK_VDEC_CORE>; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi @@ -493,6 +493,7 @@ &i2s0 { pinctrl-0 = <&i2s0_2ch_bus>; + pinctrl-1 = <&i2s0_2ch_bus_bclk_off>; rockchip,capture-channels = <2>; rockchip,playback-channels = <2>; status = "okay"; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/rockchip/rk3399.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/rockchip/rk3399.dtsi @@ -1082,7 +1082,9 @@ power-domain@RK3399_PD_VDU { reg = ; clocks = <&cru ACLK_VDU>, - <&cru HCLK_VDU>; + <&cru HCLK_VDU>, + <&cru SCLK_VDU_CA>, + <&cru SCLK_VDU_CORE>; pm_qos = <&qos_video_m1_r>, <&qos_video_m1_w>; #power-domain-cells = <0>; @@ -1358,7 +1360,7 @@ vdec: video-codec@ff660000 { compatible = "rockchip,rk3399-vdec"; - reg = <0x0 0xff660000 0x0 0x400>; + reg = <0x0 0xff660000 0x0 0x480>; interrupts = ; clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>, <&cru SCLK_VDU_CA>, <&cru SCLK_VDU_CORE>; @@ -2426,6 +2428,16 @@ <3 RK_PD1 1 &pcfg_pull_none>, <3 RK_PD2 1 &pcfg_pull_none>, <3 RK_PD3 1 &pcfg_pull_none>, + <3 RK_PD7 1 &pcfg_pull_none>, + <4 RK_PA0 1 &pcfg_pull_none>; + }; + + i2s0_2ch_bus_bclk_off: i2s0-2ch-bus-bclk-off { + rockchip,pins = + <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>, + <3 RK_PD1 1 &pcfg_pull_none>, + <3 RK_PD2 1 &pcfg_pull_none>, + <3 RK_PD3 1 &pcfg_pull_none>, <3 RK_PD7 1 &pcfg_pull_none>, <4 RK_PA0 1 &pcfg_pull_none>; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi +++ linux-riscv-6.5.0/arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi @@ -369,7 +369,7 @@ emmc_data_strobe: emmc-data-strobe { rockchip,pins = /* emmc_data_strobe */ - <2 RK_PA2 1 &pcfg_pull_none>; + <2 RK_PA2 1 &pcfg_pull_down>; }; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts +++ linux-riscv-6.5.0/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts @@ -58,7 +58,7 @@ ramoops: ramoops@9ca00000 { compatible = "ramoops"; - reg = <0x00 0x9c700000 0x00 0x00100000>; + reg = <0x00 0x9ca00000 0x00 0x00100000>; record-size = <0x8000>; console-size = <0x8000>; ftrace-size = <0x00>; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts +++ linux-riscv-6.5.0/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts @@ -232,7 +232,7 @@ status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_i2c1_pins_default>; - clock-frequency = <400000>; + clock-frequency = <100000>; exp1: gpio@22 { compatible = "ti,tca6424"; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/include/asm/arm_pmuv3.h +++ linux-riscv-6.5.0/arch/arm64/include/asm/arm_pmuv3.h @@ -46,12 +46,12 @@ ID_AA64DFR0_EL1_PMUVer_SHIFT); } -static inline void write_pmcr(u32 val) +static inline void write_pmcr(u64 val) { write_sysreg(val, pmcr_el0); } -static inline u32 read_pmcr(void) +static inline u64 read_pmcr(void) { return read_sysreg(pmcr_el0); } @@ -71,21 +71,6 @@ return read_sysreg(pmccntr_el0); } -static inline void write_pmxevcntr(u32 val) -{ - write_sysreg(val, pmxevcntr_el0); -} - -static inline u32 read_pmxevcntr(void) -{ - return read_sysreg(pmxevcntr_el0); -} - -static inline void write_pmxevtyper(u32 val) -{ - write_sysreg(val, pmxevtyper_el0); -} - static inline void write_pmcntenset(u32 val) { write_sysreg(val, pmcntenset_el0); @@ -106,7 +91,7 @@ write_sysreg(val, pmintenclr_el1); } -static inline void write_pmccfiltr(u32 val) +static inline void write_pmccfiltr(u64 val) { write_sysreg(val, pmccfiltr_el0); } @@ -126,12 +111,12 @@ write_sysreg(val, pmuserenr_el0); } -static inline u32 read_pmceid0(void) +static inline u64 read_pmceid0(void) { return read_sysreg(pmceid0_el0); } -static inline u32 read_pmceid1(void) +static inline u64 read_pmceid1(void) { return read_sysreg(pmceid1_el0); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/include/asm/setup.h +++ linux-riscv-6.5.0/arch/arm64/include/asm/setup.h @@ -21,9 +21,22 @@ extern bool rodata_enabled; extern bool rodata_full; - if (arg && !strcmp(arg, "full")) { + if (!arg) + return false; + + if (!strcmp(arg, "full")) { + rodata_enabled = rodata_full = true; + return true; + } + + if (!strcmp(arg, "off")) { + rodata_enabled = rodata_full = false; + return true; + } + + if (!strcmp(arg, "on")) { rodata_enabled = true; - rodata_full = true; + rodata_full = false; return true; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/kvm/guest.c +++ linux-riscv-6.5.0/arch/arm64/kvm/guest.c @@ -874,7 +874,7 @@ break; case ARM_CPU_IMP_APM: switch (part_number) { - case APM_CPU_PART_POTENZA: + case APM_CPU_PART_XGENE: return KVM_ARM_TARGET_XGENE_POTENZA; } break; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/arm64/mm/pageattr.c +++ linux-riscv-6.5.0/arch/arm64/mm/pageattr.c @@ -29,8 +29,8 @@ * * KFENCE pool requires page-granular mapping if initialized late. */ - return (rodata_enabled && rodata_full) || debug_pagealloc_enabled() || - arm64_kfence_can_set_direct_map(); + return rodata_full || debug_pagealloc_enabled() || + arm64_kfence_can_set_direct_map(); } static int change_page_range(pte_t *ptep, unsigned long addr, void *data) @@ -105,8 +105,7 @@ * If we are manipulating read-only permissions, apply the same * change to the linear mapping of the pages that back this VM area. */ - if (rodata_enabled && - rodata_full && (pgprot_val(set_mask) == PTE_RDONLY || + if (rodata_full && (pgprot_val(set_mask) == PTE_RDONLY || pgprot_val(clear_mask) == PTE_RDONLY)) { for (i = 0; i < area->nr_pages; i++) { __change_memory_common((u64)page_address(area->pages[i]), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/loongarch/include/asm/io.h +++ linux-riscv-6.5.0/arch/loongarch/include/asm/io.h @@ -54,10 +54,9 @@ * @offset: bus address of the memory * @size: size of the resource to map */ -extern pgprot_t pgprot_wc; - #define ioremap_wc(offset, size) \ - ioremap_prot((offset), (size), pgprot_val(pgprot_wc)) + ioremap_prot((offset), (size), \ + pgprot_val(wc_enabled ? PAGE_KERNEL_WUC : PAGE_KERNEL_SUC)) #define ioremap_cache(offset, size) \ ioremap_prot((offset), (size), pgprot_val(PAGE_KERNEL)) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/loongarch/include/asm/linkage.h +++ linux-riscv-6.5.0/arch/loongarch/include/asm/linkage.h @@ -33,4 +33,12 @@ .cfi_endproc; \ SYM_END(name, SYM_T_FUNC) +#define SYM_CODE_START(name) \ + SYM_START(name, SYM_L_GLOBAL, SYM_A_ALIGN) \ + .cfi_startproc; + +#define SYM_CODE_END(name) \ + .cfi_endproc; \ + SYM_END(name, SYM_T_NONE) + #endif only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/loongarch/include/asm/percpu.h +++ linux-riscv-6.5.0/arch/loongarch/include/asm/percpu.h @@ -32,7 +32,7 @@ #define __my_cpu_offset __my_cpu_offset #define PERCPU_OP(op, asm_op, c_op) \ -static inline unsigned long __percpu_##op(void *ptr, \ +static __always_inline unsigned long __percpu_##op(void *ptr, \ unsigned long val, int size) \ { \ unsigned long ret; \ @@ -63,7 +63,7 @@ PERCPU_OP(or, or, |) #undef PERCPU_OP -static inline unsigned long __percpu_read(void *ptr, int size) +static __always_inline unsigned long __percpu_read(void *ptr, int size) { unsigned long ret; @@ -100,7 +100,7 @@ return ret; } -static inline void __percpu_write(void *ptr, unsigned long val, int size) +static __always_inline void __percpu_write(void *ptr, unsigned long val, int size) { switch (size) { case 1: @@ -132,8 +132,8 @@ } } -static inline unsigned long __percpu_xchg(void *ptr, unsigned long val, - int size) +static __always_inline unsigned long __percpu_xchg(void *ptr, unsigned long val, + int size) { switch (size) { case 1: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/loongarch/include/asm/pgtable-bits.h +++ linux-riscv-6.5.0/arch/loongarch/include/asm/pgtable-bits.h @@ -105,13 +105,15 @@ return __pgprot(prot); } +extern bool wc_enabled; + #define pgprot_writecombine pgprot_writecombine static inline pgprot_t pgprot_writecombine(pgprot_t _prot) { unsigned long prot = pgprot_val(_prot); - prot = (prot & ~_CACHE_MASK) | _CACHE_WUC; + prot = (prot & ~_CACHE_MASK) | (wc_enabled ? _CACHE_WUC : _CACHE_SUC); return __pgprot(prot); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/loongarch/kernel/entry.S +++ linux-riscv-6.5.0/arch/loongarch/kernel/entry.S @@ -18,7 +18,7 @@ .text .cfi_sections .debug_frame .align 5 -SYM_FUNC_START(handle_syscall) +SYM_CODE_START(handle_syscall) csrrd t0, PERCPU_BASE_KS la.pcrel t1, kernelsp add.d t1, t1, t0 @@ -66,7 +66,7 @@ bl do_syscall RESTORE_ALL_AND_RET -SYM_FUNC_END(handle_syscall) +SYM_CODE_END(handle_syscall) _ASM_NOKPROBE(handle_syscall) SYM_CODE_START(ret_from_fork) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/loongarch/kernel/genex.S +++ linux-riscv-6.5.0/arch/loongarch/kernel/genex.S @@ -31,7 +31,7 @@ 1: jr ra SYM_FUNC_END(__arch_cpu_idle) -SYM_FUNC_START(handle_vint) +SYM_CODE_START(handle_vint) BACKUP_T0T1 SAVE_ALL la_abs t1, __arch_cpu_idle @@ -46,11 +46,11 @@ la_abs t0, do_vint jirl ra, t0, 0 RESTORE_ALL_AND_RET -SYM_FUNC_END(handle_vint) +SYM_CODE_END(handle_vint) -SYM_FUNC_START(except_vec_cex) +SYM_CODE_START(except_vec_cex) b cache_parity_error -SYM_FUNC_END(except_vec_cex) +SYM_CODE_END(except_vec_cex) .macro build_prep_badv csrrd t0, LOONGARCH_CSR_BADV @@ -66,7 +66,7 @@ .macro BUILD_HANDLER exception handler prep .align 5 - SYM_FUNC_START(handle_\exception) + SYM_CODE_START(handle_\exception) 666: BACKUP_T0T1 SAVE_ALL @@ -76,7 +76,7 @@ jirl ra, t0, 0 668: RESTORE_ALL_AND_RET - SYM_FUNC_END(handle_\exception) + SYM_CODE_END(handle_\exception) SYM_DATA(unwind_hint_\exception, .word 668b - 666b) .endm @@ -93,7 +93,7 @@ BUILD_HANDLER watch watch none BUILD_HANDLER reserved reserved none /* others */ -SYM_FUNC_START(handle_sys) +SYM_CODE_START(handle_sys) la_abs t0, handle_syscall jr t0 -SYM_FUNC_END(handle_sys) +SYM_CODE_END(handle_sys) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/loongarch/kernel/setup.c +++ linux-riscv-6.5.0/arch/loongarch/kernel/setup.c @@ -161,19 +161,19 @@ } #ifdef CONFIG_ARCH_WRITECOMBINE -pgprot_t pgprot_wc = PAGE_KERNEL_WUC; +bool wc_enabled = true; #else -pgprot_t pgprot_wc = PAGE_KERNEL_SUC; +bool wc_enabled = false; #endif -EXPORT_SYMBOL(pgprot_wc); +EXPORT_SYMBOL(wc_enabled); static int __init setup_writecombine(char *p) { if (!strcmp(p, "on")) - pgprot_wc = PAGE_KERNEL_WUC; + wc_enabled = true; else if (!strcmp(p, "off")) - pgprot_wc = PAGE_KERNEL_SUC; + wc_enabled = false; else pr_warn("Unknown writecombine setting \"%s\".\n", p); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/loongarch/mm/init.c +++ linux-riscv-6.5.0/arch/loongarch/mm/init.c @@ -68,11 +68,11 @@ { void *vfrom, *vto; - vto = kmap_atomic(to); - vfrom = kmap_atomic(from); + vfrom = kmap_local_page(from); + vto = kmap_local_page(to); copy_page(vto, vfrom); - kunmap_atomic(vfrom); - kunmap_atomic(vto); + kunmap_local(vfrom); + kunmap_local(vto); /* Make sure this page is cleared on other CPU's too before using it */ smp_wmb(); } @@ -267,6 +267,7 @@ pgd_t invalid_pg_dir[_PTRS_PER_PGD] __page_aligned_bss; #ifndef __PAGETABLE_PUD_FOLDED pud_t invalid_pud_table[PTRS_PER_PUD] __page_aligned_bss; +EXPORT_SYMBOL(invalid_pud_table); #endif #ifndef __PAGETABLE_PMD_FOLDED pmd_t invalid_pmd_table[PTRS_PER_PMD] __page_aligned_bss; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/loongarch/mm/tlbex.S +++ linux-riscv-6.5.0/arch/loongarch/mm/tlbex.S @@ -17,7 +17,7 @@ #define PTRS_PER_PTE_BITS (PAGE_SHIFT - 3) .macro tlb_do_page_fault, write - SYM_FUNC_START(tlb_do_page_fault_\write) + SYM_CODE_START(tlb_do_page_fault_\write) SAVE_ALL csrrd a2, LOONGARCH_CSR_BADV move a0, sp @@ -25,13 +25,13 @@ li.w a1, \write bl do_page_fault RESTORE_ALL_AND_RET - SYM_FUNC_END(tlb_do_page_fault_\write) + SYM_CODE_END(tlb_do_page_fault_\write) .endm tlb_do_page_fault 0 tlb_do_page_fault 1 -SYM_FUNC_START(handle_tlb_protect) +SYM_CODE_START(handle_tlb_protect) BACKUP_T0T1 SAVE_ALL move a0, sp @@ -41,9 +41,9 @@ la_abs t0, do_page_fault jirl ra, t0, 0 RESTORE_ALL_AND_RET -SYM_FUNC_END(handle_tlb_protect) +SYM_CODE_END(handle_tlb_protect) -SYM_FUNC_START(handle_tlb_load) +SYM_CODE_START(handle_tlb_load) csrwr t0, EXCEPTION_KS0 csrwr t1, EXCEPTION_KS1 csrwr ra, EXCEPTION_KS2 @@ -187,16 +187,16 @@ csrrd ra, EXCEPTION_KS2 la_abs t0, tlb_do_page_fault_0 jr t0 -SYM_FUNC_END(handle_tlb_load) +SYM_CODE_END(handle_tlb_load) -SYM_FUNC_START(handle_tlb_load_ptw) +SYM_CODE_START(handle_tlb_load_ptw) csrwr t0, LOONGARCH_CSR_KS0 csrwr t1, LOONGARCH_CSR_KS1 la_abs t0, tlb_do_page_fault_0 jr t0 -SYM_FUNC_END(handle_tlb_load_ptw) +SYM_CODE_END(handle_tlb_load_ptw) -SYM_FUNC_START(handle_tlb_store) +SYM_CODE_START(handle_tlb_store) csrwr t0, EXCEPTION_KS0 csrwr t1, EXCEPTION_KS1 csrwr ra, EXCEPTION_KS2 @@ -343,16 +343,16 @@ csrrd ra, EXCEPTION_KS2 la_abs t0, tlb_do_page_fault_1 jr t0 -SYM_FUNC_END(handle_tlb_store) +SYM_CODE_END(handle_tlb_store) -SYM_FUNC_START(handle_tlb_store_ptw) +SYM_CODE_START(handle_tlb_store_ptw) csrwr t0, LOONGARCH_CSR_KS0 csrwr t1, LOONGARCH_CSR_KS1 la_abs t0, tlb_do_page_fault_1 jr t0 -SYM_FUNC_END(handle_tlb_store_ptw) +SYM_CODE_END(handle_tlb_store_ptw) -SYM_FUNC_START(handle_tlb_modify) +SYM_CODE_START(handle_tlb_modify) csrwr t0, EXCEPTION_KS0 csrwr t1, EXCEPTION_KS1 csrwr ra, EXCEPTION_KS2 @@ -497,16 +497,16 @@ csrrd ra, EXCEPTION_KS2 la_abs t0, tlb_do_page_fault_1 jr t0 -SYM_FUNC_END(handle_tlb_modify) +SYM_CODE_END(handle_tlb_modify) -SYM_FUNC_START(handle_tlb_modify_ptw) +SYM_CODE_START(handle_tlb_modify_ptw) csrwr t0, LOONGARCH_CSR_KS0 csrwr t1, LOONGARCH_CSR_KS1 la_abs t0, tlb_do_page_fault_1 jr t0 -SYM_FUNC_END(handle_tlb_modify_ptw) +SYM_CODE_END(handle_tlb_modify_ptw) -SYM_FUNC_START(handle_tlb_refill) +SYM_CODE_START(handle_tlb_refill) csrwr t0, LOONGARCH_CSR_TLBRSAVE csrrd t0, LOONGARCH_CSR_PGD lddir t0, t0, 3 @@ -521,4 +521,4 @@ tlbfill csrrd t0, LOONGARCH_CSR_TLBRSAVE ertn -SYM_FUNC_END(handle_tlb_refill) +SYM_CODE_END(handle_tlb_refill) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/loongarch/net/bpf_jit.c +++ linux-riscv-6.5.0/arch/loongarch/net/bpf_jit.c @@ -855,8 +855,6 @@ /* function return */ case BPF_JMP | BPF_EXIT: - emit_sext_32(ctx, regmap[BPF_REG_0], true); - if (i == ctx->prog->len - 1) break; @@ -907,14 +905,8 @@ } break; case BPF_DW: - if (is_signed_imm12(off)) { - emit_insn(ctx, ldd, dst, src, off); - } else if (is_signed_imm14(off)) { - emit_insn(ctx, ldptrd, dst, src, off); - } else { - move_imm(ctx, t1, off, is32); - emit_insn(ctx, ldxd, dst, src, t1); - } + move_imm(ctx, t1, off, is32); + emit_insn(ctx, ldxd, dst, src, t1); break; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/mips/Kconfig +++ linux-riscv-6.5.0/arch/mips/Kconfig @@ -482,6 +482,7 @@ config MACH_LOONGSON64 bool "Loongson 64-bit family of machines" + select ARCH_DMA_DEFAULT_COHERENT select ARCH_SPARSEMEM_ENABLE select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_MIGHT_HAVE_PC_SERIO @@ -1273,6 +1274,7 @@ select CPU_SUPPORTS_MSA select CPU_DIEI_BROKEN if !LOONGSON3_ENHANCEMENT select CPU_MIPSR2_IRQ_VI + select DMA_NONCOHERENT select WEAK_ORDERING select WEAK_REORDERING_BEYOND_LLSC select MIPS_ASID_BITS_VARIABLE only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/mips/include/asm/mach-loongson64/boot_param.h +++ linux-riscv-6.5.0/arch/mips/include/asm/mach-loongson64/boot_param.h @@ -14,7 +14,11 @@ #define ADAPTER_ROM 8 #define ACPI_TABLE 9 #define SMBIOS_TABLE 10 -#define MAX_MEMORY_TYPE 11 +#define UMA_VIDEO_RAM 11 +#define VUMA_VIDEO_RAM 12 +#define MAX_MEMORY_TYPE 13 + +#define MEM_SIZE_IS_IN_BYTES (1 << 31) #define LOONGSON3_BOOT_MEM_MAP_MAX 128 struct efi_memory_map_loongson { @@ -117,7 +121,8 @@ u64 pci_io_start_addr; u64 pci_io_end_addr; u64 pci_config_addr; - u32 dma_mask_bits; + u16 dma_mask_bits; + u16 dma_noncoherent; } __packed; struct interface_info { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/mips/kvm/mmu.c +++ linux-riscv-6.5.0/arch/mips/kvm/mmu.c @@ -592,7 +592,7 @@ gfn_t gfn = gpa >> PAGE_SHIFT; int srcu_idx, err; kvm_pfn_t pfn; - pte_t *ptep, entry, old_pte; + pte_t *ptep, entry; bool writeable; unsigned long prot_bits; unsigned long mmu_seq; @@ -664,7 +664,6 @@ entry = pfn_pte(pfn, __pgprot(prot_bits)); /* Write the PTE */ - old_pte = *ptep; set_pte(ptep, entry); err = 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/mips/loongson64/env.c +++ linux-riscv-6.5.0/arch/mips/loongson64/env.c @@ -13,6 +13,8 @@ * Copyright (C) 2009 Lemote Inc. * Author: Wu Zhangjin, wuzhangjin@gmail.com */ + +#include #include #include #include @@ -147,8 +149,14 @@ loongson_sysconf.dma_mask_bits = eirq_source->dma_mask_bits; if (loongson_sysconf.dma_mask_bits < 32 || - loongson_sysconf.dma_mask_bits > 64) + loongson_sysconf.dma_mask_bits > 64) { loongson_sysconf.dma_mask_bits = 32; + dma_default_coherent = true; + } else { + dma_default_coherent = !eirq_source->dma_noncoherent; + } + + pr_info("Firmware: Coherent DMA: %s\n", dma_default_coherent ? "on" : "off"); loongson_sysconf.restart_addr = boot_p->reset_system.ResetWarm; loongson_sysconf.poweroff_addr = boot_p->reset_system.Shutdown; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/mips/loongson64/init.c +++ linux-riscv-6.5.0/arch/mips/loongson64/init.c @@ -49,8 +49,7 @@ void __init szmem(unsigned int node) { u32 i, mem_type; - static unsigned long num_physpages; - u64 node_id, node_psize, start_pfn, end_pfn, mem_start, mem_size; + phys_addr_t node_id, mem_start, mem_size; /* Otherwise come from DTB */ if (loongson_sysconf.fw_interface != LOONGSON_LEFI) @@ -64,30 +63,46 @@ mem_type = loongson_memmap->map[i].mem_type; mem_size = loongson_memmap->map[i].mem_size; - mem_start = loongson_memmap->map[i].mem_start; + + /* Memory size comes in MB if MEM_SIZE_IS_IN_BYTES not set */ + if (mem_size & MEM_SIZE_IS_IN_BYTES) + mem_size &= ~MEM_SIZE_IS_IN_BYTES; + else + mem_size = mem_size << 20; + + mem_start = (node_id << 44) | loongson_memmap->map[i].mem_start; switch (mem_type) { case SYSTEM_RAM_LOW: case SYSTEM_RAM_HIGH: - start_pfn = ((node_id << 44) + mem_start) >> PAGE_SHIFT; - node_psize = (mem_size << 20) >> PAGE_SHIFT; - end_pfn = start_pfn + node_psize; - num_physpages += node_psize; - pr_info("Node%d: mem_type:%d, mem_start:0x%llx, mem_size:0x%llx MB\n", - (u32)node_id, mem_type, mem_start, mem_size); - pr_info(" start_pfn:0x%llx, end_pfn:0x%llx, num_physpages:0x%lx\n", - start_pfn, end_pfn, num_physpages); - memblock_add_node(PFN_PHYS(start_pfn), - PFN_PHYS(node_psize), node, + case UMA_VIDEO_RAM: + pr_info("Node %d, mem_type:%d\t[%pa], %pa bytes usable\n", + (u32)node_id, mem_type, &mem_start, &mem_size); + memblock_add_node(mem_start, mem_size, node, MEMBLOCK_NONE); break; case SYSTEM_RAM_RESERVED: - pr_info("Node%d: mem_type:%d, mem_start:0x%llx, mem_size:0x%llx MB\n", - (u32)node_id, mem_type, mem_start, mem_size); - memblock_reserve(((node_id << 44) + mem_start), mem_size << 20); + case VIDEO_ROM: + case ADAPTER_ROM: + case ACPI_TABLE: + case SMBIOS_TABLE: + pr_info("Node %d, mem_type:%d\t[%pa], %pa bytes reserved\n", + (u32)node_id, mem_type, &mem_start, &mem_size); + memblock_reserve(mem_start, mem_size); + break; + /* We should not reserve VUMA_VIDEO_RAM as it overlaps with MMIO */ + case VUMA_VIDEO_RAM: + default: + pr_info("Node %d, mem_type:%d\t[%pa], %pa bytes unhandled\n", + (u32)node_id, mem_type, &mem_start, &mem_size); break; } } + + /* Reserve vgabios if it comes from firmware */ + if (loongson_sysconf.vgabios_addr) + memblock_reserve(virt_to_phys((void *)loongson_sysconf.vgabios_addr), + SZ_256K); } #ifndef CONFIG_NUMA only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/parisc/Kconfig +++ linux-riscv-6.5.0/arch/parisc/Kconfig @@ -107,9 +107,12 @@ default n config GENERIC_BUG - bool - default y + def_bool y depends on BUG + select GENERIC_BUG_RELATIVE_POINTERS if 64BIT + +config GENERIC_BUG_RELATIVE_POINTERS + bool config GENERIC_HWEIGHT bool only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/parisc/include/asm/alternative.h +++ linux-riscv-6.5.0/arch/parisc/include/asm/alternative.h @@ -34,7 +34,8 @@ /* Alternative SMP implementation. */ #define ALTERNATIVE(cond, replacement) "!0:" \ - ".section .altinstructions, \"aw\" !" \ + ".section .altinstructions, \"a\" !" \ + ".align 4 !" \ ".word (0b-4-.) !" \ ".hword 1, " __stringify(cond) " !" \ ".word " __stringify(replacement) " !" \ @@ -44,7 +45,8 @@ /* to replace one single instructions by a new instruction */ #define ALTERNATIVE(from, to, cond, replacement)\ - .section .altinstructions, "aw" ! \ + .section .altinstructions, "a" ! \ + .align 4 ! \ .word (from - .) ! \ .hword (to - from)/4, cond ! \ .word replacement ! \ @@ -52,7 +54,8 @@ /* to replace multiple instructions by new code */ #define ALTERNATIVE_CODE(from, num_instructions, cond, new_instr_ptr)\ - .section .altinstructions, "aw" ! \ + .section .altinstructions, "a" ! \ + .align 4 ! \ .word (from - .) ! \ .hword -num_instructions, cond ! \ .word (new_instr_ptr - .) ! \ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/parisc/include/asm/assembly.h +++ linux-riscv-6.5.0/arch/parisc/include/asm/assembly.h @@ -574,6 +574,7 @@ */ #define ASM_EXCEPTIONTABLE_ENTRY(fault_addr, except_addr) \ .section __ex_table,"aw" ! \ + .align 4 ! \ .word (fault_addr - .), (except_addr - .) ! \ .previous only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/parisc/include/asm/bug.h +++ linux-riscv-6.5.0/arch/parisc/include/asm/bug.h @@ -17,24 +17,27 @@ #define PARISC_BUG_BREAK_ASM "break 0x1f, 0x1fff" #define PARISC_BUG_BREAK_INSN 0x03ffe01f /* PARISC_BUG_BREAK_ASM */ -#if defined(CONFIG_64BIT) -#define ASM_WORD_INSN ".dword\t" +#ifdef CONFIG_GENERIC_BUG_RELATIVE_POINTERS +# define __BUG_REL(val) ".word " __stringify(val) " - ." #else -#define ASM_WORD_INSN ".word\t" +# define __BUG_REL(val) ".word " __stringify(val) #endif + #ifdef CONFIG_DEBUG_BUGVERBOSE #define BUG() \ do { \ asm volatile("\n" \ "1:\t" PARISC_BUG_BREAK_ASM "\n" \ - "\t.pushsection __bug_table,\"aw\"\n" \ - "2:\t" ASM_WORD_INSN "1b, %c0\n" \ - "\t.short %c1, %c2\n" \ - "\t.org 2b+%c3\n" \ + "\t.pushsection __bug_table,\"a\"\n" \ + "\t.align 4\n" \ + "2:\t" __BUG_REL(1b) "\n" \ + "\t" __BUG_REL(%c0) "\n" \ + "\t.short %1, %2\n" \ + "\t.blockz %3-2*4-2*2\n" \ "\t.popsection" \ : : "i" (__FILE__), "i" (__LINE__), \ - "i" (0), "i" (sizeof(struct bug_entry)) ); \ + "i" (0), "i" (sizeof(struct bug_entry)) ); \ unreachable(); \ } while(0) @@ -51,10 +54,12 @@ do { \ asm volatile("\n" \ "1:\t" PARISC_BUG_BREAK_ASM "\n" \ - "\t.pushsection __bug_table,\"aw\"\n" \ - "2:\t" ASM_WORD_INSN "1b, %c0\n" \ - "\t.short %c1, %c2\n" \ - "\t.org 2b+%c3\n" \ + "\t.pushsection __bug_table,\"a\"\n" \ + "\t.align 4\n" \ + "2:\t" __BUG_REL(1b) "\n" \ + "\t" __BUG_REL(%c0) "\n" \ + "\t.short %1, %2\n" \ + "\t.blockz %3-2*4-2*2\n" \ "\t.popsection" \ : : "i" (__FILE__), "i" (__LINE__), \ "i" (BUGFLAG_WARNING|(flags)), \ @@ -65,10 +70,11 @@ do { \ asm volatile("\n" \ "1:\t" PARISC_BUG_BREAK_ASM "\n" \ - "\t.pushsection __bug_table,\"aw\"\n" \ - "2:\t" ASM_WORD_INSN "1b\n" \ - "\t.short %c0\n" \ - "\t.org 2b+%c1\n" \ + "\t.pushsection __bug_table,\"a\"\n" \ + "\t.align 4\n" \ + "2:\t" __BUG_REL(1b) "\n" \ + "\t.short %0\n" \ + "\t.blockz %1-4-2\n" \ "\t.popsection" \ : : "i" (BUGFLAG_WARNING|(flags)), \ "i" (sizeof(struct bug_entry)) ); \ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/parisc/include/asm/jump_label.h +++ linux-riscv-6.5.0/arch/parisc/include/asm/jump_label.h @@ -15,10 +15,12 @@ asm_volatile_goto("1:\n\t" "nop\n\t" ".pushsection __jump_table, \"aw\"\n\t" + ".align %1\n\t" ".word 1b - ., %l[l_yes] - .\n\t" __stringify(ASM_ULONG_INSN) " %c0 - .\n\t" ".popsection\n\t" - : : "i" (&((char *)key)[branch]) : : l_yes); + : : "i" (&((char *)key)[branch]), "i" (sizeof(long)) + : : l_yes); return false; l_yes: @@ -30,10 +32,12 @@ asm_volatile_goto("1:\n\t" "b,n %l[l_yes]\n\t" ".pushsection __jump_table, \"aw\"\n\t" + ".align %1\n\t" ".word 1b - ., %l[l_yes] - .\n\t" __stringify(ASM_ULONG_INSN) " %c0 - .\n\t" ".popsection\n\t" - : : "i" (&((char *)key)[branch]) : : l_yes); + : : "i" (&((char *)key)[branch]), "i" (sizeof(long)) + : : l_yes); return false; l_yes: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/parisc/include/asm/uaccess.h +++ linux-riscv-6.5.0/arch/parisc/include/asm/uaccess.h @@ -41,6 +41,7 @@ #define ASM_EXCEPTIONTABLE_ENTRY( fault_addr, except_addr )\ ".section __ex_table,\"aw\"\n" \ + ".align 4\n" \ ".word (" #fault_addr " - .), (" #except_addr " - .)\n\t" \ ".previous\n" only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/parisc/include/uapi/asm/errno.h +++ linux-riscv-6.5.0/arch/parisc/include/uapi/asm/errno.h @@ -75,7 +75,6 @@ /* We now return you to your regularly scheduled HPUX. */ -#define ENOSYM 215 /* symbol does not exist in executable */ #define ENOTSOCK 216 /* Socket operation on non-socket */ #define EDESTADDRREQ 217 /* Destination address required */ #define EMSGSIZE 218 /* Message too long */ @@ -101,7 +100,6 @@ #define ETIMEDOUT 238 /* Connection timed out */ #define ECONNREFUSED 239 /* Connection refused */ #define EREFUSED ECONNREFUSED /* for HP's NFS apparently */ -#define EREMOTERELEASE 240 /* Remote peer released connection */ #define EHOSTDOWN 241 /* Host is down */ #define EHOSTUNREACH 242 /* No route to host */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/parisc/include/uapi/asm/pdc.h +++ linux-riscv-6.5.0/arch/parisc/include/uapi/asm/pdc.h @@ -472,6 +472,7 @@ unsigned long arch_rev; unsigned long pot_key; unsigned long curr_key; + unsigned long width; /* default of PSW_W bit (1=enabled) */ }; struct pdc_cache_cf { /* for PDC_CACHE (I/D-caches) */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/parisc/kernel/entry.S +++ linux-riscv-6.5.0/arch/parisc/kernel/entry.S @@ -36,6 +36,24 @@ .level 2.0 #endif +/* + * We need seven instructions after a TLB insert for it to take effect. + * The PA8800/PA8900 processors are an exception and need 12 instructions. + * The RFI changes both IAOQ_Back and IAOQ_Front, so it counts as one. + */ +#ifdef CONFIG_64BIT +#define NUM_PIPELINE_INSNS 12 +#else +#define NUM_PIPELINE_INSNS 7 +#endif + + /* Insert num nops */ + .macro insert_nops num + .rept \num + nop + .endr + .endm + /* Get aligned page_table_lock address for this mm from cr28/tr4 */ .macro get_ptl reg mfctl %cr28,\reg @@ -415,24 +433,20 @@ 3: .endm - /* Release page_table_lock without reloading lock address. - We use an ordered store to ensure all prior accesses are - performed prior to releasing the lock. */ - .macro ptl_unlock0 spc,tmp,tmp2 + /* Release page_table_lock if for user space. We use an ordered + store to ensure all prior accesses are performed prior to + releasing the lock. Note stw may not be executed, so we + provide one extra nop when CONFIG_TLB_PTLOCK is defined. */ + .macro ptl_unlock spc,tmp,tmp2 #ifdef CONFIG_TLB_PTLOCK -98: ldi __ARCH_SPIN_LOCK_UNLOCKED_VAL, \tmp2 +98: get_ptl \tmp + ldi __ARCH_SPIN_LOCK_UNLOCKED_VAL, \tmp2 or,COND(=) %r0,\spc,%r0 stw,ma \tmp2,0(\tmp) 99: ALTERNATIVE(98b, 99b, ALT_COND_NO_SMP, INSN_NOP) -#endif - .endm - - /* Release page_table_lock. */ - .macro ptl_unlock1 spc,tmp,tmp2 -#ifdef CONFIG_TLB_PTLOCK -98: get_ptl \tmp - ptl_unlock0 \spc,\tmp,\tmp2 -99: ALTERNATIVE(98b, 99b, ALT_COND_NO_SMP, INSN_NOP) + insert_nops NUM_PIPELINE_INSNS - 4 +#else + insert_nops NUM_PIPELINE_INSNS - 1 #endif .endm @@ -461,13 +475,13 @@ * to a CPU TLB 4k PFN (4k => 12 bits to shift) */ #define PAGE_ADD_SHIFT (PAGE_SHIFT-12) #define PAGE_ADD_HUGE_SHIFT (REAL_HPAGE_SHIFT-12) + #define PFN_START_BIT (63-ASM_PFN_PTE_SHIFT+(63-58)-PAGE_ADD_SHIFT) /* Drop prot bits and convert to page addr for iitlbt and idtlbt */ .macro convert_for_tlb_insert20 pte,tmp #ifdef CONFIG_HUGETLB_PAGE copy \pte,\tmp - extrd,u \tmp,(63-ASM_PFN_PTE_SHIFT)+(63-58)+PAGE_ADD_SHIFT,\ - 64-PAGE_SHIFT-PAGE_ADD_SHIFT,\pte + extrd,u \tmp,PFN_START_BIT,PFN_START_BIT+1,\pte depdi _PAGE_SIZE_ENCODING_DEFAULT,63,\ (63-58)+PAGE_ADD_SHIFT,\pte @@ -475,8 +489,7 @@ depdi _HUGE_PAGE_SIZE_ENCODING_DEFAULT,63,\ (63-58)+PAGE_ADD_HUGE_SHIFT,\pte #else /* Huge pages disabled */ - extrd,u \pte,(63-ASM_PFN_PTE_SHIFT)+(63-58)+PAGE_ADD_SHIFT,\ - 64-PAGE_SHIFT-PAGE_ADD_SHIFT,\pte + extrd,u \pte,PFN_START_BIT,PFN_START_BIT+1,\pte depdi _PAGE_SIZE_ENCODING_DEFAULT,63,\ (63-58)+PAGE_ADD_SHIFT,\pte #endif @@ -1124,7 +1137,7 @@ idtlbt pte,prot - ptl_unlock1 spc,t0,t1 + ptl_unlock spc,t0,t1 rfir nop @@ -1133,6 +1146,7 @@ idtlbt pte,prot + insert_nops NUM_PIPELINE_INSNS - 1 rfir nop @@ -1150,7 +1164,7 @@ idtlbt pte,prot - ptl_unlock1 spc,t0,t1 + ptl_unlock spc,t0,t1 rfir nop @@ -1159,6 +1173,7 @@ idtlbt pte,prot + insert_nops NUM_PIPELINE_INSNS - 1 rfir nop @@ -1184,7 +1199,7 @@ mtsp t1, %sr1 /* Restore sr1 */ - ptl_unlock1 spc,t0,t1 + ptl_unlock spc,t0,t1 rfir nop @@ -1194,6 +1209,7 @@ idtlba pte,(va) idtlbp prot,(va) + insert_nops NUM_PIPELINE_INSNS - 1 rfir nop @@ -1217,7 +1233,7 @@ mtsp t1, %sr1 /* Restore sr1 */ - ptl_unlock1 spc,t0,t1 + ptl_unlock spc,t0,t1 rfir nop @@ -1227,6 +1243,7 @@ idtlba pte,(va) idtlbp prot,(va) + insert_nops NUM_PIPELINE_INSNS - 1 rfir nop @@ -1246,7 +1263,7 @@ idtlbt pte,prot - ptl_unlock1 spc,t0,t1 + ptl_unlock spc,t0,t1 rfir nop @@ -1255,6 +1272,7 @@ idtlbt pte,prot + insert_nops NUM_PIPELINE_INSNS - 1 rfir nop @@ -1274,7 +1292,7 @@ idtlbt pte,prot - ptl_unlock1 spc,t0,t1 + ptl_unlock spc,t0,t1 rfir nop @@ -1283,6 +1301,7 @@ idtlbt pte,prot + insert_nops NUM_PIPELINE_INSNS - 1 rfir nop @@ -1319,7 +1338,7 @@ iitlbt pte,prot - ptl_unlock1 spc,t0,t1 + ptl_unlock spc,t0,t1 rfir nop @@ -1343,7 +1362,7 @@ iitlbt pte,prot - ptl_unlock1 spc,t0,t1 + ptl_unlock spc,t0,t1 rfir nop @@ -1352,6 +1371,7 @@ iitlbt pte,prot + insert_nops NUM_PIPELINE_INSNS - 1 rfir nop @@ -1377,7 +1397,7 @@ mtsp t1, %sr1 /* Restore sr1 */ - ptl_unlock1 spc,t0,t1 + ptl_unlock spc,t0,t1 rfir nop @@ -1401,7 +1421,7 @@ mtsp t1, %sr1 /* Restore sr1 */ - ptl_unlock1 spc,t0,t1 + ptl_unlock spc,t0,t1 rfir nop @@ -1411,6 +1431,7 @@ iitlba pte,(%sr0, va) iitlbp prot,(%sr0, va) + insert_nops NUM_PIPELINE_INSNS - 1 rfir nop @@ -1431,7 +1452,7 @@ iitlbt pte,prot - ptl_unlock1 spc,t0,t1 + ptl_unlock spc,t0,t1 rfir nop @@ -1451,7 +1472,7 @@ iitlbt pte,prot - ptl_unlock1 spc,t0,t1 + ptl_unlock spc,t0,t1 rfir nop @@ -1460,6 +1481,7 @@ iitlbt pte,prot + insert_nops NUM_PIPELINE_INSNS - 1 rfir nop @@ -1481,7 +1503,7 @@ idtlbt pte,prot - ptl_unlock0 spc,t0,t1 + ptl_unlock spc,t0,t1 rfir nop #else @@ -1507,7 +1529,7 @@ mtsp t1, %sr1 /* Restore sr1 */ - ptl_unlock0 spc,t0,t1 + ptl_unlock spc,t0,t1 rfir nop @@ -1527,7 +1549,7 @@ idtlbt pte,prot - ptl_unlock0 spc,t0,t1 + ptl_unlock spc,t0,t1 rfir nop #endif only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/parisc/kernel/head.S +++ linux-riscv-6.5.0/arch/parisc/kernel/head.S @@ -70,9 +70,8 @@ stw,ma %arg2,4(%r1) stw,ma %arg3,4(%r1) -#if !defined(CONFIG_64BIT) && defined(CONFIG_PA20) - /* This 32-bit kernel was compiled for PA2.0 CPUs. Check current CPU - * and halt kernel if we detect a PA1.x CPU. */ +#if defined(CONFIG_PA20) + /* check for 64-bit capable CPU as required by current kernel */ ldi 32,%r10 mtctl %r10,%cr11 .level 2.0 only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/parisc/kernel/vmlinux.lds.S +++ linux-riscv-6.5.0/arch/parisc/kernel/vmlinux.lds.S @@ -130,6 +130,7 @@ RO_DATA(8) /* unwind info */ + . = ALIGN(4); .PARISC.unwind : { __start___unwind = .; *(.PARISC.unwind) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/powerpc/Kconfig +++ linux-riscv-6.5.0/arch/powerpc/Kconfig @@ -917,7 +917,7 @@ default "6" if PPC32 && PPC_64K_PAGES range 4 10 if PPC32 && PPC_256K_PAGES default "4" if PPC32 && PPC_256K_PAGES - range 10 10 + range 10 12 default "10" help The kernel page allocator limits the size of maximal physically only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/powerpc/include/asm/nohash/32/pte-40x.h +++ linux-riscv-6.5.0/arch/powerpc/include/asm/nohash/32/pte-40x.h @@ -69,9 +69,6 @@ #define _PTE_NONE_MASK 0 -/* Until my rework is finished, 40x still needs atomic PTE updates */ -#define PTE_ATOMIC_UPDATES 1 - #define _PAGE_BASE_NC (_PAGE_PRESENT | _PAGE_ACCESSED) #define _PAGE_BASE (_PAGE_BASE_NC) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/powerpc/kernel/fpu.S +++ linux-riscv-6.5.0/arch/powerpc/kernel/fpu.S @@ -23,6 +23,15 @@ #include #ifdef CONFIG_VSX +#define __REST_1FPVSR(n,c,base) \ +BEGIN_FTR_SECTION \ + b 2f; \ +END_FTR_SECTION_IFSET(CPU_FTR_VSX); \ + REST_FPR(n,base); \ + b 3f; \ +2: REST_VSR(n,c,base); \ +3: + #define __REST_32FPVSRS(n,c,base) \ BEGIN_FTR_SECTION \ b 2f; \ @@ -41,9 +50,11 @@ 2: SAVE_32VSRS(n,c,base); \ 3: #else +#define __REST_1FPVSR(n,b,base) REST_FPR(n, base) #define __REST_32FPVSRS(n,b,base) REST_32FPRS(n, base) #define __SAVE_32FPVSRS(n,b,base) SAVE_32FPRS(n, base) #endif +#define REST_1FPVSR(n,c,base) __REST_1FPVSR(n,__REG_##c,__REG_##base) #define REST_32FPVSRS(n,c,base) __REST_32FPVSRS(n,__REG_##c,__REG_##base) #define SAVE_32FPVSRS(n,c,base) __SAVE_32FPVSRS(n,__REG_##c,__REG_##base) @@ -67,6 +78,7 @@ SAVE_32FPVSRS(0, R4, R3) mffs fr0 stfd fr0,FPSTATE_FPSCR(r3) + REST_1FPVSR(0, R4, R3) blr EXPORT_SYMBOL(store_fp_state) @@ -138,4 +150,5 @@ 2: SAVE_32FPVSRS(0, R4, R6) mffs fr0 stfd fr0,FPSTATE_FPSCR(r6) + REST_1FPVSR(0, R4, R6) blr only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/powerpc/kernel/head_85xx.S +++ linux-riscv-6.5.0/arch/powerpc/kernel/head_85xx.S @@ -396,7 +396,7 @@ #ifdef CONFIG_PPC_FPU FP_UNAVAILABLE_EXCEPTION #else - EXCEPTION(0x0800, FP_UNAVAIL, FloatingPointUnavailable, unknown_exception) + EXCEPTION(0x0800, FP_UNAVAIL, FloatingPointUnavailable, emulation_assist_interrupt) #endif /* System Call Interrupt */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/powerpc/kernel/process.c +++ linux-riscv-6.5.0/arch/powerpc/kernel/process.c @@ -1198,11 +1198,11 @@ usermsr = current->thread.regs->msr; + /* Caller has enabled FP/VEC/VSX/TM in MSR */ if (usermsr & MSR_FP) - save_fpu(current); - + __giveup_fpu(current); if (usermsr & MSR_VEC) - save_altivec(current); + __giveup_altivec(current); #ifdef CONFIG_PPC_TRANSACTIONAL_MEM if (usermsr & MSR_TM) { @@ -2258,6 +2258,22 @@ return ret; } +static bool empty_user_regs(struct pt_regs *regs, struct task_struct *tsk) +{ + unsigned long stack_page; + + // A non-empty pt_regs should never have a zero MSR or TRAP value. + if (regs->msr || regs->trap) + return false; + + // Check it sits at the very base of the stack + stack_page = (unsigned long)task_stack_page(tsk); + if ((unsigned long)(regs + 1) != stack_page + THREAD_SIZE) + return false; + + return true; +} + static int kstack_depth_to_print = CONFIG_PRINT_STACK_DEPTH; void __no_sanitize_address show_stack(struct task_struct *tsk, @@ -2322,9 +2338,13 @@ lr = regs->link; printk("%s--- interrupt: %lx at %pS\n", loglvl, regs->trap, (void *)regs->nip); - __show_regs(regs); - printk("%s--- interrupt: %lx\n", - loglvl, regs->trap); + + // Detect the case of an empty pt_regs at the very base + // of the stack and suppress showing it in full. + if (!empty_user_regs(regs, tsk)) { + __show_regs(regs); + printk("%s--- interrupt: %lx\n", loglvl, regs->trap); + } firstframe = 1; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/powerpc/kernel/trace/ftrace_mprofile.S +++ linux-riscv-6.5.0/arch/powerpc/kernel/trace/ftrace_mprofile.S @@ -62,7 +62,7 @@ .endif /* Save previous stack pointer (r1) */ - addi r8, r1, SWITCH_FRAME_SIZE + addi r8, r1, SWITCH_FRAME_SIZE+STACK_FRAME_MIN_SIZE PPC_STL r8, GPR1(r1) .if \allregs == 1 @@ -182,7 +182,7 @@ mflr r3 mtctr r3 REST_GPR(3, r1) - addi r1, r1, SWITCH_FRAME_SIZE + addi r1, r1, SWITCH_FRAME_SIZE+STACK_FRAME_MIN_SIZE mtlr r0 bctr #endif only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/powerpc/kernel/vector.S +++ linux-riscv-6.5.0/arch/powerpc/kernel/vector.S @@ -33,6 +33,7 @@ mfvscr v0 li r4, VRSTATE_VSCR stvx v0, r4, r3 + lvx v0, 0, r3 blr EXPORT_SYMBOL(store_vr_state) @@ -109,6 +110,7 @@ mfvscr v0 li r4,VRSTATE_VSCR stvx v0,r4,r7 + lvx v0,0,r7 blr #ifdef CONFIG_VSX only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/powerpc/lib/qspinlock.c +++ linux-riscv-6.5.0/arch/powerpc/lib/qspinlock.c @@ -406,6 +406,9 @@ if ((yield_count & 1) == 0) goto yield_prev; /* owner vcpu is running */ + if (get_owner_cpu(READ_ONCE(lock->val)) != yield_cpu) + goto yield_prev; /* re-sample lock owner */ + spin_end(); preempted = true; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/powerpc/mm/mem.c +++ linux-riscv-6.5.0/arch/powerpc/mm/mem.c @@ -288,7 +288,6 @@ #endif high_memory = (void *) __va(max_low_pfn * PAGE_SIZE); - set_max_mapnr(max_pfn); kasan_late_init(); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/powerpc/perf/core-book3s.c +++ linux-riscv-6.5.0/arch/powerpc/perf/core-book3s.c @@ -1371,8 +1371,7 @@ /* * Disable instruction sampling if it was enabled */ - if (cpuhw->mmcr.mmcra & MMCRA_SAMPLE_ENABLE) - val &= ~MMCRA_SAMPLE_ENABLE; + val &= ~MMCRA_SAMPLE_ENABLE; /* Disable BHRB via mmcra (BHRBRD) for p10 */ if (ppmu->flags & PPMU_ARCH_31) @@ -1383,7 +1382,7 @@ * instruction sampling or BHRB. */ if (val != mmcra) { - mtspr(SPRN_MMCRA, mmcra); + mtspr(SPRN_MMCRA, val); mb(); isync(); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/powerpc/perf/imc-pmu.c +++ linux-riscv-6.5.0/arch/powerpc/perf/imc-pmu.c @@ -51,7 +51,7 @@ * core and trace-imc */ static struct imc_pmu_ref imc_global_refc = { - .lock = __SPIN_LOCK_INITIALIZER(imc_global_refc.lock), + .lock = __SPIN_LOCK_UNLOCKED(imc_global_refc.lock), .id = 0, .refc = 0, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/powerpc/platforms/book3s/vas-api.c +++ linux-riscv-6.5.0/arch/powerpc/platforms/book3s/vas-api.c @@ -4,6 +4,8 @@ * Copyright (C) 2019 Haren Myneni, IBM Corp */ +#define pr_fmt(fmt) "vas-api: " fmt + #include #include #include @@ -78,7 +80,7 @@ task_ref->mm = get_task_mm(current); if (!task_ref->mm) { put_pid(task_ref->pid); - pr_err("VAS: pid(%d): mm_struct is not found\n", + pr_err("pid(%d): mm_struct is not found\n", current->pid); return -EPERM; } @@ -235,8 +237,7 @@ rc = kill_pid_info(SIGSEGV, &info, pid); rcu_read_unlock(); - pr_devel("%s(): pid %d kill_proc_info() rc %d\n", __func__, - pid_vnr(pid), rc); + pr_devel("pid %d kill_proc_info() rc %d\n", pid_vnr(pid), rc); } void vas_dump_crb(struct coprocessor_request_block *crb) @@ -294,7 +295,7 @@ rc = copy_from_user(&uattr, uptr, sizeof(uattr)); if (rc) { - pr_err("%s(): copy_from_user() returns %d\n", __func__, rc); + pr_err("copy_from_user() returns %d\n", rc); return -EFAULT; } @@ -311,7 +312,7 @@ txwin = cp_inst->coproc->vops->open_win(uattr.vas_id, uattr.flags, cp_inst->coproc->cop_type); if (IS_ERR(txwin)) { - pr_err("%s() VAS window open failed, %ld\n", __func__, + pr_err_ratelimited("VAS window open failed rc=%ld\n", PTR_ERR(txwin)); return PTR_ERR(txwin); } @@ -405,8 +406,7 @@ * window is not opened. Shouldn't expect this error. */ if (!cp_inst || !cp_inst->txwin) { - pr_err("%s(): Unexpected fault on paste address with TX window closed\n", - __func__); + pr_err("Unexpected fault on paste address with TX window closed\n"); return VM_FAULT_SIGBUS; } @@ -421,8 +421,7 @@ * issue NX request. */ if (txwin->task_ref.vma != vmf->vma) { - pr_err("%s(): No previous mapping with paste address\n", - __func__); + pr_err("No previous mapping with paste address\n"); return VM_FAULT_SIGBUS; } @@ -481,19 +480,19 @@ txwin = cp_inst->txwin; if ((vma->vm_end - vma->vm_start) > PAGE_SIZE) { - pr_debug("%s(): size 0x%zx, PAGE_SIZE 0x%zx\n", __func__, + pr_debug("size 0x%zx, PAGE_SIZE 0x%zx\n", (vma->vm_end - vma->vm_start), PAGE_SIZE); return -EINVAL; } /* Ensure instance has an open send window */ if (!txwin) { - pr_err("%s(): No send window open?\n", __func__); + pr_err("No send window open?\n"); return -EINVAL; } if (!cp_inst->coproc->vops || !cp_inst->coproc->vops->paste_addr) { - pr_err("%s(): VAS API is not registered\n", __func__); + pr_err("VAS API is not registered\n"); return -EACCES; } @@ -510,14 +509,14 @@ */ mutex_lock(&txwin->task_ref.mmap_mutex); if (txwin->status != VAS_WIN_ACTIVE) { - pr_err("%s(): Window is not active\n", __func__); + pr_err("Window is not active\n"); rc = -EACCES; goto out; } paste_addr = cp_inst->coproc->vops->paste_addr(txwin); if (!paste_addr) { - pr_err("%s(): Window paste address failed\n", __func__); + pr_err("Window paste address failed\n"); rc = -EINVAL; goto out; } @@ -533,8 +532,8 @@ rc = remap_pfn_range(vma, vma->vm_start, pfn + vma->vm_pgoff, vma->vm_end - vma->vm_start, prot); - pr_devel("%s(): paste addr %llx at %lx, rc %d\n", __func__, - paste_addr, vma->vm_start, rc); + pr_devel("paste addr %llx at %lx, rc %d\n", paste_addr, + vma->vm_start, rc); txwin->task_ref.vma = vma; vma->vm_ops = &vas_vm_ops; @@ -609,8 +608,7 @@ goto err; } - pr_devel("%s: Added dev [%d,%d]\n", __func__, MAJOR(devno), - MINOR(devno)); + pr_devel("Added dev [%d,%d]\n", MAJOR(devno), MINOR(devno)); return 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/powerpc/platforms/powernv/opal-prd.c +++ linux-riscv-6.5.0/arch/powerpc/platforms/powernv/opal-prd.c @@ -24,13 +24,20 @@ #include +struct opal_prd_msg { + union { + struct opal_prd_msg_header header; + DECLARE_FLEX_ARRAY(u8, data); + }; +}; + /* * The msg member must be at the end of the struct, as it's followed by the * message data. */ struct opal_prd_msg_queue_item { - struct list_head list; - struct opal_prd_msg_header msg; + struct list_head list; + struct opal_prd_msg msg; }; static struct device_node *prd_node; @@ -156,7 +163,7 @@ int rc; /* we need at least a header's worth of data */ - if (count < sizeof(item->msg)) + if (count < sizeof(item->msg.header)) return -EINVAL; if (*ppos) @@ -186,7 +193,7 @@ return -EINTR; } - size = be16_to_cpu(item->msg.size); + size = be16_to_cpu(item->msg.header.size); if (size > count) { err = -EINVAL; goto err_requeue; @@ -352,7 +359,7 @@ if (!item) return -ENOMEM; - memcpy(&item->msg, msg->params, msg_size); + memcpy(&item->msg.data, msg->params, msg_size); spin_lock_irqsave(&opal_prd_msg_queue_lock, flags); list_add_tail(&item->list, &opal_prd_msg_queue); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/powerpc/platforms/pseries/iommu.c +++ linux-riscv-6.5.0/arch/powerpc/platforms/pseries/iommu.c @@ -916,7 +916,8 @@ return 0; } -static bool find_existing_ddw(struct device_node *pdn, u64 *dma_addr, int *window_shift) +static bool find_existing_ddw(struct device_node *pdn, u64 *dma_addr, int *window_shift, + bool *direct_mapping) { struct dma_win *window; const struct dynamic_dma_window_prop *dma64; @@ -929,6 +930,7 @@ dma64 = window->prop; *dma_addr = be64_to_cpu(dma64->dma_base); *window_shift = be32_to_cpu(dma64->window_shift); + *direct_mapping = window->direct; found = true; break; } @@ -1272,10 +1274,8 @@ mutex_lock(&dma_win_init_mutex); - if (find_existing_ddw(pdn, &dev->dev.archdata.dma_offset, &len)) { - direct_mapping = (len >= max_ram_len); + if (find_existing_ddw(pdn, &dev->dev.archdata.dma_offset, &len, &direct_mapping)) goto out_unlock; - } /* * If we already went through this for a previous function of only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/powerpc/platforms/pseries/vas.c +++ linux-riscv-6.5.0/arch/powerpc/platforms/pseries/vas.c @@ -340,7 +340,7 @@ if (atomic_inc_return(&cop_feat_caps->nr_used_credits) > atomic_read(&cop_feat_caps->nr_total_credits)) { - pr_err("Credits are not available to allocate window\n"); + pr_err_ratelimited("Credits are not available to allocate window\n"); rc = -EINVAL; goto out; } @@ -423,7 +423,7 @@ put_vas_user_win_ref(&txwin->vas_win.task_ref); rc = -EBUSY; - pr_err("No credit is available to allocate window\n"); + pr_err_ratelimited("No credit is available to allocate window\n"); out_free: /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/powerpc/sysdev/xive/native.c +++ linux-riscv-6.5.0/arch/powerpc/sysdev/xive/native.c @@ -802,7 +802,7 @@ if (out_qpage) *out_qpage = be64_to_cpu(qpage); if (out_qsize) - *out_qsize = be32_to_cpu(qsize); + *out_qsize = be64_to_cpu(qsize); if (out_qeoi_page) *out_qeoi_page = be64_to_cpu(qeoi_page); if (out_escalate_irq) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/riscv/boot/Makefile +++ linux-riscv-6.5.0/arch/riscv/boot/Makefile @@ -17,6 +17,7 @@ KCOV_INSTRUMENT := n OBJCOPYFLAGS_Image :=-O binary -R .note -R .note.gnu.build-id -R .comment -S +OBJCOPYFLAGS_loader.bin :=-O binary OBJCOPYFLAGS_xipImage :=-O binary -R .note -R .note.gnu.build-id -R .comment -S targets := Image Image.* loader loader.o loader.lds loader.bin only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/riscv/boot/dts/thead/th1520.dtsi +++ linux-riscv-6.5.0/arch/riscv/boot/dts/thead/th1520.dtsi @@ -139,6 +139,7 @@ interrupt-parent = <&plic>; #address-cells = <2>; #size-cells = <2>; + dma-noncoherent; ranges; plic: interrupt-controller@ffd8000000 { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/riscv/include/asm/asm-prototypes.h +++ linux-riscv-6.5.0/arch/riscv/include/asm/asm-prototypes.h @@ -25,7 +25,6 @@ DECLARE_DO_ERROR_INFO(do_trap_ecall_m); DECLARE_DO_ERROR_INFO(do_trap_break); -asmlinkage unsigned long get_overflow_stack(void); asmlinkage void handle_bad_stack(struct pt_regs *regs); asmlinkage void do_page_fault(struct pt_regs *regs); asmlinkage void do_irq(struct pt_regs *regs); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/riscv/include/asm/asm.h +++ linux-riscv-6.5.0/arch/riscv/include/asm/asm.h @@ -82,6 +82,28 @@ .endr .endm +#ifdef CONFIG_SMP +#ifdef CONFIG_32BIT +#define PER_CPU_OFFSET_SHIFT 2 +#else +#define PER_CPU_OFFSET_SHIFT 3 +#endif + +.macro asm_per_cpu dst sym tmp + REG_L \tmp, TASK_TI_CPU_NUM(tp) + slli \tmp, \tmp, PER_CPU_OFFSET_SHIFT + la \dst, __per_cpu_offset + add \dst, \dst, \tmp + REG_L \tmp, 0(\dst) + la \dst, \sym + add \dst, \dst, \tmp +.endm +#else /* CONFIG_SMP */ +.macro asm_per_cpu dst sym tmp + la \dst, \sym +.endm +#endif /* CONFIG_SMP */ + /* save all GPs except x1 ~ x5 */ .macro save_from_x6_to_x31 REG_S x6, PT_T1(sp) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/riscv/include/asm/hwprobe.h +++ linux-riscv-6.5.0/arch/riscv/include/asm/hwprobe.h @@ -10,4 +10,9 @@ #define RISCV_HWPROBE_MAX_KEY 5 +static inline bool riscv_hwprobe_key_is_valid(__s64 key) +{ + return key >= 0 && key <= RISCV_HWPROBE_MAX_KEY; +} + #endif only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/riscv/include/asm/page.h +++ linux-riscv-6.5.0/arch/riscv/include/asm/page.h @@ -33,8 +33,8 @@ #define PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL) #endif /* - * By default, CONFIG_PAGE_OFFSET value corresponds to SV48 address space so - * define the PAGE_OFFSET value for SV39. + * By default, CONFIG_PAGE_OFFSET value corresponds to SV57 address space so + * define the PAGE_OFFSET value for SV48 and SV39. */ #define PAGE_OFFSET_L4 _AC(0xffffaf8000000000, UL) #define PAGE_OFFSET_L3 _AC(0xffffffd800000000, UL) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/riscv/include/asm/thread_info.h +++ linux-riscv-6.5.0/arch/riscv/include/asm/thread_info.h @@ -34,9 +34,6 @@ #ifndef __ASSEMBLY__ -extern long shadow_stack[SHADOW_OVERFLOW_STACK_SIZE / sizeof(long)]; -extern unsigned long spin_shadow_stack; - #include #include only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/riscv/include/asm/vdso/processor.h +++ linux-riscv-6.5.0/arch/riscv/include/asm/vdso/processor.h @@ -14,7 +14,7 @@ __asm__ __volatile__ ("div %0, %0, zero" : "=r" (dummy)); #endif -#ifdef __riscv_zihintpause +#ifdef CONFIG_TOOLCHAIN_HAS_ZIHINTPAUSE /* * Reduce instruction retirement. * This assumes the PC changes. only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/riscv/kernel/asm-offsets.c +++ linux-riscv-6.5.0/arch/riscv/kernel/asm-offsets.c @@ -39,6 +39,7 @@ OFFSET(TASK_TI_KERNEL_SP, task_struct, thread_info.kernel_sp); OFFSET(TASK_TI_USER_SP, task_struct, thread_info.user_sp); + OFFSET(TASK_TI_CPU_NUM, task_struct, thread_info.cpu); OFFSET(TASK_THREAD_F0, task_struct, thread.fstate.f[0]); OFFSET(TASK_THREAD_F1, task_struct, thread.fstate.f[1]); OFFSET(TASK_THREAD_F2, task_struct, thread.fstate.f[2]); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/riscv/kernel/cpu.c +++ linux-riscv-6.5.0/arch/riscv/kernel/cpu.c @@ -88,13 +88,14 @@ */ int riscv_of_parent_hartid(struct device_node *node, unsigned long *hartid) { - int rc; - for (; node; node = node->parent) { if (of_device_is_compatible(node, "riscv")) { - rc = riscv_of_processor_hartid(node, hartid); - if (!rc) - return 0; + *hartid = (unsigned long)of_get_cpu_hwid(node, 0); + if (*hartid == ~0UL) { + pr_warn("Found CPU without hart ID\n"); + return -ENODEV; + } + return 0; } } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/riscv/kernel/entry.S +++ linux-riscv-6.5.0/arch/riscv/kernel/entry.S @@ -10,9 +10,13 @@ #include #include #include +#include #include #include #include +#include + + .section .irqentry.text, "ax" SYM_CODE_START(handle_exception) /* @@ -170,67 +174,15 @@ #ifdef CONFIG_VMAP_STACK SYM_CODE_START_LOCAL(handle_kernel_stack_overflow) - /* - * Takes the psuedo-spinlock for the shadow stack, in case multiple - * harts are concurrently overflowing their kernel stacks. We could - * store any value here, but since we're overflowing the kernel stack - * already we only have SP to use as a scratch register. So we just - * swap in the address of the spinlock, as that's definately non-zero. - * - * Pairs with a store_release in handle_bad_stack(). - */ -1: la sp, spin_shadow_stack - REG_AMOSWAP_AQ sp, sp, (sp) - bnez sp, 1b - - la sp, shadow_stack - addi sp, sp, SHADOW_OVERFLOW_STACK_SIZE - - //save caller register to shadow stack - addi sp, sp, -(PT_SIZE_ON_STACK) - REG_S x1, PT_RA(sp) - REG_S x5, PT_T0(sp) - REG_S x6, PT_T1(sp) - REG_S x7, PT_T2(sp) - REG_S x10, PT_A0(sp) - REG_S x11, PT_A1(sp) - REG_S x12, PT_A2(sp) - REG_S x13, PT_A3(sp) - REG_S x14, PT_A4(sp) - REG_S x15, PT_A5(sp) - REG_S x16, PT_A6(sp) - REG_S x17, PT_A7(sp) - REG_S x28, PT_T3(sp) - REG_S x29, PT_T4(sp) - REG_S x30, PT_T5(sp) - REG_S x31, PT_T6(sp) - - la ra, restore_caller_reg - tail get_overflow_stack - -restore_caller_reg: - //save per-cpu overflow stack - REG_S a0, -8(sp) - //restore caller register from shadow_stack - REG_L x1, PT_RA(sp) - REG_L x5, PT_T0(sp) - REG_L x6, PT_T1(sp) - REG_L x7, PT_T2(sp) - REG_L x10, PT_A0(sp) - REG_L x11, PT_A1(sp) - REG_L x12, PT_A2(sp) - REG_L x13, PT_A3(sp) - REG_L x14, PT_A4(sp) - REG_L x15, PT_A5(sp) - REG_L x16, PT_A6(sp) - REG_L x17, PT_A7(sp) - REG_L x28, PT_T3(sp) - REG_L x29, PT_T4(sp) - REG_L x30, PT_T5(sp) - REG_L x31, PT_T6(sp) + /* we reach here from kernel context, sscratch must be 0 */ + csrrw x31, CSR_SCRATCH, x31 + asm_per_cpu sp, overflow_stack, x31 + li x31, OVERFLOW_STACK_SIZE + add sp, sp, x31 + /* zero out x31 again and restore x31 */ + xor x31, x31, x31 + csrrw x31, CSR_SCRATCH, x31 - //load per-cpu overflow stack - REG_L sp, -8(sp) addi sp, sp, -(PT_SIZE_ON_STACK) //save context to overflow stack only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/riscv/kernel/probes/simulate-insn.c +++ linux-riscv-6.5.0/arch/riscv/kernel/probes/simulate-insn.c @@ -24,7 +24,7 @@ unsigned long val) { if (index == 0) - return false; + return true; else if (index <= 31) *((unsigned long *)regs + index) = val; else only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/riscv/kernel/probes/uprobes.c +++ linux-riscv-6.5.0/arch/riscv/kernel/probes/uprobes.c @@ -3,6 +3,7 @@ #include #include #include +#include #include "decode-insn.h" @@ -17,6 +18,11 @@ #endif } +bool is_trap_insn(uprobe_opcode_t *insn) +{ + return riscv_insn_is_ebreak(*insn) || riscv_insn_is_c_ebreak(*insn); +} + unsigned long uprobe_get_swbp_addr(struct pt_regs *regs) { return instruction_pointer(regs); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/riscv/kernel/traps_misaligned.c +++ linux-riscv-6.5.0/arch/riscv/kernel/traps_misaligned.c @@ -342,16 +342,14 @@ } else if ((insn & INSN_MASK_C_SD) == INSN_MATCH_C_SD) { len = 8; val.data_ulong = GET_RS2S(insn, regs); - } else if ((insn & INSN_MASK_C_SDSP) == INSN_MATCH_C_SDSP && - ((insn >> SH_RD) & 0x1f)) { + } else if ((insn & INSN_MASK_C_SDSP) == INSN_MATCH_C_SDSP) { len = 8; val.data_ulong = GET_RS2C(insn, regs); #endif } else if ((insn & INSN_MASK_C_SW) == INSN_MATCH_C_SW) { len = 4; val.data_ulong = GET_RS2S(insn, regs); - } else if ((insn & INSN_MASK_C_SWSP) == INSN_MATCH_C_SWSP && - ((insn >> SH_RD) & 0x1f)) { + } else if ((insn & INSN_MASK_C_SWSP) == INSN_MATCH_C_SWSP) { len = 4; val.data_ulong = GET_RS2C(insn, regs); } else { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/riscv/kernel/vdso/hwprobe.c +++ linux-riscv-6.5.0/arch/riscv/kernel/vdso/hwprobe.c @@ -37,7 +37,7 @@ /* This is something we can handle, fill out the pairs. */ while (p < end) { - if (p->key <= RISCV_HWPROBE_MAX_KEY) { + if (riscv_hwprobe_key_is_valid(p->key)) { p->value = avd->all_cpu_hwprobe_values[p->key]; } else { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/riscv/mm/ptdump.c +++ linux-riscv-6.5.0/arch/riscv/mm/ptdump.c @@ -384,6 +384,9 @@ kernel_ptd_info.base_addr = KERN_VIRT_START; + pg_level[1].name = pgtable_l5_enabled ? "P4D" : "PGD"; + pg_level[2].name = pgtable_l4_enabled ? "PUD" : "PGD"; + for (i = 0; i < ARRAY_SIZE(pg_level); i++) for (j = 0; j < ARRAY_SIZE(pte_bits); j++) pg_level[i].mask |= pte_bits[j].mask; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/s390/boot/vmem.c +++ linux-riscv-6.5.0/arch/s390/boot/vmem.c @@ -57,6 +57,7 @@ pmd_t pmd_z = __pmd(__pa(kasan_early_shadow_pte) | _SEGMENT_ENTRY); pud_t pud_z = __pud(__pa(kasan_early_shadow_pmd) | _REGION3_ENTRY); p4d_t p4d_z = __p4d(__pa(kasan_early_shadow_pud) | _REGION2_ENTRY); + unsigned long memgap_start = 0; unsigned long untracked_end; unsigned long start, end; int i; @@ -101,8 +102,12 @@ * +- shadow end ----+---------+- shadow end ---+ */ - for_each_physmem_usable_range(i, &start, &end) + for_each_physmem_usable_range(i, &start, &end) { kasan_populate(start, end, POPULATE_KASAN_MAP_SHADOW); + if (memgap_start && physmem_info.info_source == MEM_DETECT_DIAG260) + kasan_populate(memgap_start, start, POPULATE_KASAN_ZERO_SHADOW); + memgap_start = end; + } if (IS_ENABLED(CONFIG_KASAN_VMALLOC)) { untracked_end = VMALLOC_START; /* shallowly populate kasan shadow for vmalloc and modules */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/s390/mm/page-states.c +++ linux-riscv-6.5.0/arch/s390/mm/page-states.c @@ -121,7 +121,7 @@ continue; if (!pud_folded(*pud)) { page = phys_to_page(pud_val(*pud)); - for (i = 0; i < 3; i++) + for (i = 0; i < 4; i++) set_bit(PG_arch_1, &page[i].flags); } mark_kernel_pmd(pud, addr, next); @@ -142,7 +142,7 @@ continue; if (!p4d_folded(*p4d)) { page = phys_to_page(p4d_val(*p4d)); - for (i = 0; i < 3; i++) + for (i = 0; i < 4; i++) set_bit(PG_arch_1, &page[i].flags); } mark_kernel_pud(p4d, addr, next); @@ -164,7 +164,7 @@ continue; if (!pgd_folded(*pgd)) { page = phys_to_page(pgd_val(*pgd)); - for (i = 0; i < 3; i++) + for (i = 0; i < 4; i++) set_bit(PG_arch_1, &page[i].flags); } mark_kernel_p4d(pgd, addr, next); @@ -181,6 +181,12 @@ return; /* Mark pages used in kernel page tables */ mark_kernel_pgd(); + page = virt_to_page(&swapper_pg_dir); + for (i = 0; i < 4; i++) + set_bit(PG_arch_1, &page[i].flags); + page = virt_to_page(&invalid_pg_dir); + for (i = 0; i < 4; i++) + set_bit(PG_arch_1, &page[i].flags); /* Set all kernel pages not used for page tables to stable/no-dat */ for_each_mem_pfn_range(i, MAX_NUMNODES, &start, &end, NULL) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/s390/mm/pgtable.c +++ linux-riscv-6.5.0/arch/s390/mm/pgtable.c @@ -756,7 +756,7 @@ pte_clear(mm, addr, ptep); } if (reset) - pgste_val(pgste) &= ~_PGSTE_GPS_USAGE_MASK; + pgste_val(pgste) &= ~(_PGSTE_GPS_USAGE_MASK | _PGSTE_GPS_NODAT); pgste_set_unlock(ptep, pgste); preempt_enable(); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/s390/mm/vmem.c +++ linux-riscv-6.5.0/arch/s390/mm/vmem.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -46,8 +47,11 @@ unsigned long *table; table = vmem_alloc_pages(CRST_ALLOC_ORDER); - if (table) - crst_table_init(table, val); + if (!table) + return NULL; + crst_table_init(table, val); + if (slab_is_available()) + arch_set_page_dat(virt_to_page(table), CRST_ALLOC_ORDER); return table; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/s390/pci/pci_dma.c +++ linux-riscv-6.5.0/arch/s390/pci/pci_dma.c @@ -564,6 +564,17 @@ s->dma_length = 0; } } + +static unsigned long *bitmap_vzalloc(size_t bits, gfp_t flags) +{ + size_t n = BITS_TO_LONGS(bits); + size_t bytes; + + if (unlikely(check_mul_overflow(n, sizeof(unsigned long), &bytes))) + return NULL; + + return vzalloc(bytes); +} int zpci_dma_init_device(struct zpci_dev *zdev) { @@ -604,13 +615,13 @@ zdev->end_dma - zdev->start_dma + 1); zdev->end_dma = zdev->start_dma + zdev->iommu_size - 1; zdev->iommu_pages = zdev->iommu_size >> PAGE_SHIFT; - zdev->iommu_bitmap = vzalloc(zdev->iommu_pages / 8); + zdev->iommu_bitmap = bitmap_vzalloc(zdev->iommu_pages, GFP_KERNEL); if (!zdev->iommu_bitmap) { rc = -ENOMEM; goto free_dma_table; } if (!s390_iommu_strict) { - zdev->lazy_bitmap = vzalloc(zdev->iommu_pages / 8); + zdev->lazy_bitmap = bitmap_vzalloc(zdev->iommu_pages, GFP_KERNEL); if (!zdev->lazy_bitmap) { rc = -ENOMEM; goto free_bitmap; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/sh/Kconfig.debug +++ linux-riscv-6.5.0/arch/sh/Kconfig.debug @@ -22,6 +22,17 @@ every function call and will therefore incur a major performance hit. Most users should say N. +config EARLY_PRINTK + bool "Early printk" + depends on SH_STANDARD_BIOS + help + Say Y here to redirect kernel printk messages to the serial port + used by the SH-IPL bootloader, starting very early in the boot + process and ending when the kernel's serial console is initialised. + This option is only useful while porting the kernel to a new machine, + when the kernel may crash or hang before the serial console is + initialised. If unsure, say N. + config 4KSTACKS bool "Use 4Kb for kernel stacks instead of 8Kb" depends on DEBUG_KERNEL && (MMU || BROKEN) && !PAGE_SIZE_64KB only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/sparc/lib/checksum_32.S +++ linux-riscv-6.5.0/arch/sparc/lib/checksum_32.S @@ -453,5 +453,5 @@ * we only bother with faults on loads... */ cc_fault: - ret + retl clr %o0 only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/coco/tdx/tdcall.S +++ linux-riscv-6.5.0/arch/x86/coco/tdx/tdcall.S @@ -195,6 +195,7 @@ xor %r10d, %r10d xor %r11d, %r11d xor %rdi, %rdi + xor %rsi, %rsi xor %rdx, %rdx /* Restore callee-saved GPRs as mandated by the x86_64 ABI */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/coco/tdx/tdx.c +++ linux-riscv-6.5.0/arch/x86/coco/tdx/tdx.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/crypto/sha1_ssse3_glue.c +++ linux-riscv-6.5.0/arch/x86/crypto/sha1_ssse3_glue.c @@ -24,8 +24,17 @@ #include #include #include +#include #include +static const struct x86_cpu_id module_cpu_ids[] = { + X86_MATCH_FEATURE(X86_FEATURE_AVX2, NULL), + X86_MATCH_FEATURE(X86_FEATURE_AVX, NULL), + X86_MATCH_FEATURE(X86_FEATURE_SSSE3, NULL), + {} +}; +MODULE_DEVICE_TABLE(x86cpu, module_cpu_ids); + static int sha1_update(struct shash_desc *desc, const u8 *data, unsigned int len, sha1_block_fn *sha1_xform) { @@ -301,6 +310,9 @@ static int __init sha1_ssse3_mod_init(void) { + if (!x86_match_cpu(module_cpu_ids)) + return -ENODEV; + if (register_sha1_ssse3()) goto fail; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/crypto/sha256_ssse3_glue.c +++ linux-riscv-6.5.0/arch/x86/crypto/sha256_ssse3_glue.c @@ -38,11 +38,20 @@ #include #include #include +#include #include asmlinkage void sha256_transform_ssse3(struct sha256_state *state, const u8 *data, int blocks); +static const struct x86_cpu_id module_cpu_ids[] = { + X86_MATCH_FEATURE(X86_FEATURE_AVX2, NULL), + X86_MATCH_FEATURE(X86_FEATURE_AVX, NULL), + X86_MATCH_FEATURE(X86_FEATURE_SSSE3, NULL), + {} +}; +MODULE_DEVICE_TABLE(x86cpu, module_cpu_ids); + static int _sha256_update(struct shash_desc *desc, const u8 *data, unsigned int len, sha256_block_fn *sha256_xform) { @@ -366,6 +375,9 @@ static int __init sha256_ssse3_mod_init(void) { + if (!x86_match_cpu(module_cpu_ids)) + return -ENODEV; + if (register_sha256_ssse3()) goto fail; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/entry/common.c +++ linux-riscv-6.5.0/arch/x86/entry/common.c @@ -25,6 +25,7 @@ #include #endif +#include #include #include #include @@ -96,6 +97,10 @@ return (int)regs->orig_ax; } +#ifdef CONFIG_IA32_EMULATION +bool __ia32_enabled __ro_after_init = true; +#endif + /* * Invoke a 32-bit syscall. Called with IRQs on in CONTEXT_KERNEL. */ @@ -115,7 +120,96 @@ } } -/* Handles int $0x80 */ +#ifdef CONFIG_IA32_EMULATION +static __always_inline bool int80_is_external(void) +{ + const unsigned int offs = (0x80 / 32) * 0x10; + const u32 bit = BIT(0x80 % 32); + + /* The local APIC on XENPV guests is fake */ + if (cpu_feature_enabled(X86_FEATURE_XENPV)) + return false; + + /* + * If vector 0x80 is set in the APIC ISR then this is an external + * interrupt. Either from broken hardware or injected by a VMM. + * + * Note: In guest mode this is only valid for secure guests where + * the secure module fully controls the vAPIC exposed to the guest. + */ + return apic_read(APIC_ISR + offs) & bit; +} + +/** + * int80_emulation - 32-bit legacy syscall entry + * + * This entry point can be used by 32-bit and 64-bit programs to perform + * 32-bit system calls. Instances of INT $0x80 can be found inline in + * various programs and libraries. It is also used by the vDSO's + * __kernel_vsyscall fallback for hardware that doesn't support a faster + * entry method. Restarted 32-bit system calls also fall back to INT + * $0x80 regardless of what instruction was originally used to do the + * system call. + * + * This is considered a slow path. It is not used by most libc + * implementations on modern hardware except during process startup. + * + * The arguments for the INT $0x80 based syscall are on stack in the + * pt_regs structure: + * eax: system call number + * ebx, ecx, edx, esi, edi, ebp: arg1 - arg 6 + */ +DEFINE_IDTENTRY_RAW(int80_emulation) +{ + int nr; + + /* Kernel does not use INT $0x80! */ + if (unlikely(!user_mode(regs))) { + irqentry_enter(regs); + instrumentation_begin(); + panic("Unexpected external interrupt 0x80\n"); + } + + /* + * Establish kernel context for instrumentation, including for + * int80_is_external() below which calls into the APIC driver. + * Identical for soft and external interrupts. + */ + enter_from_user_mode(regs); + + instrumentation_begin(); + add_random_kstack_offset(); + + /* Validate that this is a soft interrupt to the extent possible */ + if (unlikely(int80_is_external())) + panic("Unexpected external interrupt 0x80\n"); + + /* + * The low level idtentry code pushed -1 into regs::orig_ax + * and regs::ax contains the syscall number. + * + * User tracing code (ptrace or signal handlers) might assume + * that the regs::orig_ax contains a 32-bit number on invoking + * a 32-bit syscall. + * + * Establish the syscall convention by saving the 32bit truncated + * syscall number in regs::orig_ax and by invalidating regs::ax. + */ + regs->orig_ax = regs->ax & GENMASK(31, 0); + regs->ax = -ENOSYS; + + nr = syscall_32_enter(regs); + + local_irq_enable(); + nr = syscall_enter_from_user_mode_work(regs, nr); + do_syscall_32_irqs_on(regs, nr); + + instrumentation_end(); + syscall_exit_to_user_mode(regs); +} +#else /* CONFIG_IA32_EMULATION */ + +/* Handles int $0x80 on a 32bit kernel */ __visible noinstr void do_int80_syscall_32(struct pt_regs *regs) { int nr = syscall_32_enter(regs); @@ -134,6 +228,7 @@ instrumentation_end(); syscall_exit_to_user_mode(regs); } +#endif /* !CONFIG_IA32_EMULATION */ static noinstr bool __do_fast_syscall_32(struct pt_regs *regs) { @@ -294,7 +389,7 @@ inc_irq_stat(irq_hv_callback_count); - xen_hvm_evtchn_do_upcall(); + xen_evtchn_do_upcall(); set_irq_regs(old_regs); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/entry/entry_64_compat.S +++ linux-riscv-6.5.0/arch/x86/entry/entry_64_compat.S @@ -276,80 +276,3 @@ ANNOTATE_NOENDBR int3 SYM_CODE_END(entry_SYSCALL_compat) - -/* - * 32-bit legacy system call entry. - * - * 32-bit x86 Linux system calls traditionally used the INT $0x80 - * instruction. INT $0x80 lands here. - * - * This entry point can be used by 32-bit and 64-bit programs to perform - * 32-bit system calls. Instances of INT $0x80 can be found inline in - * various programs and libraries. It is also used by the vDSO's - * __kernel_vsyscall fallback for hardware that doesn't support a faster - * entry method. Restarted 32-bit system calls also fall back to INT - * $0x80 regardless of what instruction was originally used to do the - * system call. - * - * This is considered a slow path. It is not used by most libc - * implementations on modern hardware except during process startup. - * - * Arguments: - * eax system call number - * ebx arg1 - * ecx arg2 - * edx arg3 - * esi arg4 - * edi arg5 - * ebp arg6 - */ -SYM_CODE_START(entry_INT80_compat) - UNWIND_HINT_ENTRY - ENDBR - /* - * Interrupts are off on entry. - */ - ASM_CLAC /* Do this early to minimize exposure */ - ALTERNATIVE "swapgs", "", X86_FEATURE_XENPV - - /* - * User tracing code (ptrace or signal handlers) might assume that - * the saved RAX contains a 32-bit number when we're invoking a 32-bit - * syscall. Just in case the high bits are nonzero, zero-extend - * the syscall number. (This could almost certainly be deleted - * with no ill effects.) - */ - movl %eax, %eax - - /* switch to thread stack expects orig_ax and rdi to be pushed */ - pushq %rax /* pt_regs->orig_ax */ - - /* Need to switch before accessing the thread stack. */ - SWITCH_TO_KERNEL_CR3 scratch_reg=%rax - - /* In the Xen PV case we already run on the thread stack. */ - ALTERNATIVE "", "jmp .Lint80_keep_stack", X86_FEATURE_XENPV - - movq %rsp, %rax - movq PER_CPU_VAR(pcpu_hot + X86_top_of_stack), %rsp - - pushq 5*8(%rax) /* regs->ss */ - pushq 4*8(%rax) /* regs->rsp */ - pushq 3*8(%rax) /* regs->eflags */ - pushq 2*8(%rax) /* regs->cs */ - pushq 1*8(%rax) /* regs->ip */ - pushq 0*8(%rax) /* regs->orig_ax */ -.Lint80_keep_stack: - - PUSH_AND_CLEAR_REGS rax=$-ENOSYS - UNWIND_HINT_REGS - - cld - - IBRS_ENTER - UNTRAIN_RET - - movq %rsp, %rdi - call do_int80_syscall_32 - jmp swapgs_restore_regs_and_return_to_usermode -SYM_CODE_END(entry_INT80_compat) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/include/asm/fpu/api.h +++ linux-riscv-6.5.0/arch/x86/include/asm/fpu/api.h @@ -148,7 +148,8 @@ static inline void fpu_sync_guest_vmexit_xfd_state(void) { } #endif -extern void fpu_copy_guest_fpstate_to_uabi(struct fpu_guest *gfpu, void *buf, unsigned int size, u32 pkru); +extern void fpu_copy_guest_fpstate_to_uabi(struct fpu_guest *gfpu, void *buf, + unsigned int size, u64 xfeatures, u32 pkru); extern int fpu_copy_uabi_to_guest_fpstate(struct fpu_guest *gfpu, const void *buf, u64 xcr0, u32 *vpkru); static inline void fpstate_set_confidential(struct fpu_guest *gfpu) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/include/asm/i8259.h +++ linux-riscv-6.5.0/arch/x86/include/asm/i8259.h @@ -69,6 +69,8 @@ void (*make_irq)(unsigned int irq); }; +void legacy_pic_pcat_compat(void); + extern struct legacy_pic *legacy_pic; extern struct legacy_pic null_legacy_pic; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/include/asm/ia32.h +++ linux-riscv-6.5.0/arch/x86/include/asm/ia32.h @@ -68,6 +68,27 @@ #endif -#endif /* CONFIG_IA32_EMULATION */ +extern bool __ia32_enabled; + +static inline bool ia32_enabled(void) +{ + return __ia32_enabled; +} + +static inline void ia32_disable(void) +{ + __ia32_enabled = false; +} + +#else /* !CONFIG_IA32_EMULATION */ + +static inline bool ia32_enabled(void) +{ + return IS_ENABLED(CONFIG_X86_32); +} + +static inline void ia32_disable(void) {} + +#endif #endif /* _ASM_X86_IA32_H */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/include/asm/idtentry.h +++ linux-riscv-6.5.0/arch/x86/include/asm/idtentry.h @@ -569,6 +569,10 @@ DECLARE_IDTENTRY_RAW(X86_TRAP_BP, exc_int3); DECLARE_IDTENTRY_RAW_ERRORCODE(X86_TRAP_PF, exc_page_fault); +#if defined(CONFIG_IA32_EMULATION) +DECLARE_IDTENTRY_RAW(IA32_SYSCALL_VECTOR, int80_emulation); +#endif + #ifdef CONFIG_X86_MCE #ifdef CONFIG_X86_64 DECLARE_IDTENTRY_MCE(X86_TRAP_MC, exc_machine_check); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/include/asm/intel-family.h +++ linux-riscv-6.5.0/arch/x86/include/asm/intel-family.h @@ -27,6 +27,7 @@ * _X - regular server parts * _D - micro server parts * _N,_P - other mobile parts + * _H - premium mobile parts * _S - other client parts * * Historical OPTDIFFs: @@ -125,6 +126,7 @@ #define INTEL_FAM6_LUNARLAKE_M 0xBD +#define INTEL_FAM6_ARROWLAKE_H 0xC5 #define INTEL_FAM6_ARROWLAKE 0xC6 /* "Small Core" Processors (Atom/E-Core) */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/include/asm/kvm-x86-ops.h +++ linux-riscv-6.5.0/arch/x86/include/asm/kvm-x86-ops.h @@ -108,6 +108,7 @@ KVM_X86_OP_OPTIONAL(vcpu_unblocking) KVM_X86_OP_OPTIONAL(pi_update_irte) KVM_X86_OP_OPTIONAL(pi_start_assignment) +KVM_X86_OP_OPTIONAL(apicv_pre_state_restore) KVM_X86_OP_OPTIONAL(apicv_post_state_restore) KVM_X86_OP_OPTIONAL_RET0(dy_apicv_has_pending_interrupt) KVM_X86_OP_OPTIONAL(set_hv_timer) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/include/asm/nospec-branch.h +++ linux-riscv-6.5.0/arch/x86/include/asm/nospec-branch.h @@ -271,7 +271,7 @@ .Lskip_rsb_\@: .endm -#ifdef CONFIG_CPU_UNRET_ENTRY +#if defined(CONFIG_CPU_UNRET_ENTRY) || defined(CONFIG_CPU_SRSO) #define CALL_UNTRAIN_RET "call entry_untrain_ret" #else #define CALL_UNTRAIN_RET "" @@ -312,7 +312,7 @@ .macro UNTRAIN_RET_FROM_CALL #if defined(CONFIG_CPU_UNRET_ENTRY) || defined(CONFIG_CPU_IBPB_ENTRY) || \ - defined(CONFIG_CALL_DEPTH_TRACKING) + defined(CONFIG_CALL_DEPTH_TRACKING) || defined(CONFIG_CPU_SRSO) VALIDATE_UNRET_END ALTERNATIVE_3 "", \ CALL_UNTRAIN_RET, X86_FEATURE_UNRET, \ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/include/asm/numa.h +++ linux-riscv-6.5.0/arch/x86/include/asm/numa.h @@ -12,13 +12,6 @@ #define NR_NODE_MEMBLKS (MAX_NUMNODES*2) -/* - * Too small node sizes may confuse the VM badly. Usually they - * result from BIOS bugs. So dont recognize nodes as standalone - * NUMA entities that have less than this amount of RAM listed: - */ -#define NODE_MIN_SIZE (4*1024*1024) - extern int numa_off; /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/include/asm/proto.h +++ linux-riscv-6.5.0/arch/x86/include/asm/proto.h @@ -32,10 +32,6 @@ void entry_SYSCALL_compat_safe_stack(void); void entry_SYSRETL_compat_unsafe_stack(void); void entry_SYSRETL_compat_end(void); -void entry_INT80_compat(void); -#ifdef CONFIG_XEN_PV -void xen_entry_INT80_compat(void); -#endif #endif void x86_configure_nx(void); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/include/asm/sparsemem.h +++ linux-riscv-6.5.0/arch/x86/include/asm/sparsemem.h @@ -37,6 +37,8 @@ #define phys_to_target_node phys_to_target_node extern int memory_add_physaddr_to_nid(u64 start); #define memory_add_physaddr_to_nid memory_add_physaddr_to_nid +extern int numa_fill_memblks(u64 start, u64 end); +#define numa_fill_memblks numa_fill_memblks #endif #endif /* __ASSEMBLY__ */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/include/asm/svm.h +++ linux-riscv-6.5.0/arch/x86/include/asm/svm.h @@ -268,6 +268,7 @@ AVIC_IPI_FAILURE_TARGET_NOT_RUNNING, AVIC_IPI_FAILURE_INVALID_TARGET, AVIC_IPI_FAILURE_INVALID_BACKING_PAGE, + AVIC_IPI_FAILURE_INVALID_IPI_VECTOR, }; #define AVIC_PHYSICAL_MAX_INDEX_MASK GENMASK_ULL(8, 0) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/include/asm/uaccess.h +++ linux-riscv-6.5.0/arch/x86/include/asm/uaccess.h @@ -496,7 +496,7 @@ #define copy_mc_to_kernel copy_mc_to_kernel unsigned long __must_check -copy_mc_to_user(void *to, const void *from, unsigned len); +copy_mc_to_user(void __user *to, const void *from, unsigned len); #endif /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/kernel/acpi/boot.c +++ linux-riscv-6.5.0/arch/x86/kernel/acpi/boot.c @@ -148,6 +148,9 @@ pr_debug("Local APIC address 0x%08x\n", madt->address); } + if (madt->flags & ACPI_MADT_PCAT_COMPAT) + legacy_pic_pcat_compat(); + /* ACPI 6.3 and newer support the online capable bit. */ if (acpi_gbl_FADT.header.revision > 6 || (acpi_gbl_FADT.header.revision == 6 && only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/kernel/apic/apic.c +++ linux-riscv-6.5.0/arch/x86/kernel/apic/apic.c @@ -36,6 +36,8 @@ #include #include +#include + #include #include #include @@ -2408,6 +2410,15 @@ { unsigned int cpu; + /* + * XEN/PV provides either none or useless topology information. + * Pretend that all vCPUs are primary threads. + */ + if (xen_pv_domain()) { + cpumask_copy(&__cpu_primary_thread_mask, cpu_possible_mask); + return 0; + } + for (cpu = 0; cpu < nr_logical_cpuids; cpu++) cpu_mark_primary_thread(cpu, cpuid_to_apicid[cpu]); return 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/kernel/apic/msi.c +++ linux-riscv-6.5.0/arch/x86/kernel/apic/msi.c @@ -55,14 +55,14 @@ * caused by the non-atomic update of the address/data pair. * * Direct update is possible when: - * - The MSI is maskable (remapped MSI does not use this code path)). - * The quirk bit is not set in this case. + * - The MSI is maskable (remapped MSI does not use this code path). + * The reservation mode bit is set in this case. * - The new vector is the same as the old vector * - The old vector is MANAGED_IRQ_SHUTDOWN_VECTOR (interrupt starts up) * - The interrupt is not yet started up * - The new destination CPU is the same as the old destination CPU */ - if (!irqd_msi_nomask_quirk(irqd) || + if (!irqd_can_reserve(irqd) || cfg->vector == old_cfg.vector || old_cfg.vector == MANAGED_IRQ_SHUTDOWN_VECTOR || !irqd_is_started(irqd) || @@ -215,8 +215,6 @@ if (WARN_ON_ONCE(domain != real_parent)) return false; info->chip->irq_set_affinity = msi_set_affinity; - /* See msi_set_affinity() for the gory details */ - info->flags |= MSI_FLAG_NOMASK_QUIRK; break; case DOMAIN_BUS_DMAR: case DOMAIN_BUS_AMDVI: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/kernel/cpu/hygon.c +++ linux-riscv-6.5.0/arch/x86/kernel/cpu/hygon.c @@ -86,8 +86,12 @@ if (!err) c->x86_coreid_bits = get_count_order(c->x86_max_cores); - /* Socket ID is ApicId[6] for these processors. */ - c->phys_proc_id = c->apicid >> APICID_SOCKET_ID_BIT; + /* + * Socket ID is ApicId[6] for the processors with model <= 0x3 + * when running on host. + */ + if (!boot_cpu_has(X86_FEATURE_HYPERVISOR) && c->x86_model <= 0x3) + c->phys_proc_id = c->apicid >> APICID_SOCKET_ID_BIT; cacheinfo_hygon_init_llc_id(c, cpu); } else if (cpu_has(c, X86_FEATURE_NODEID_MSR)) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/kernel/fpu/core.c +++ linux-riscv-6.5.0/arch/x86/kernel/fpu/core.c @@ -369,14 +369,15 @@ EXPORT_SYMBOL_GPL(fpu_swap_kvm_fpstate); void fpu_copy_guest_fpstate_to_uabi(struct fpu_guest *gfpu, void *buf, - unsigned int size, u32 pkru) + unsigned int size, u64 xfeatures, u32 pkru) { struct fpstate *kstate = gfpu->fpstate; union fpregs_state *ustate = buf; struct membuf mb = { .p = buf, .left = size }; if (cpu_feature_enabled(X86_FEATURE_XSAVE)) { - __copy_xstate_to_uabi_buf(mb, kstate, pkru, XSTATE_COPY_XSAVE); + __copy_xstate_to_uabi_buf(mb, kstate, xfeatures, pkru, + XSTATE_COPY_XSAVE); } else { memcpy(&ustate->fxsave, &kstate->regs.fxsave, sizeof(ustate->fxsave)); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/kernel/fpu/xstate.c +++ linux-riscv-6.5.0/arch/x86/kernel/fpu/xstate.c @@ -1053,6 +1053,7 @@ * __copy_xstate_to_uabi_buf - Copy kernel saved xstate to a UABI buffer * @to: membuf descriptor * @fpstate: The fpstate buffer from which to copy + * @xfeatures: The mask of xfeatures to save (XSAVE mode only) * @pkru_val: The PKRU value to store in the PKRU component * @copy_mode: The requested copy mode * @@ -1063,7 +1064,8 @@ * It supports partial copy but @to.pos always starts from zero. */ void __copy_xstate_to_uabi_buf(struct membuf to, struct fpstate *fpstate, - u32 pkru_val, enum xstate_copy_mode copy_mode) + u64 xfeatures, u32 pkru_val, + enum xstate_copy_mode copy_mode) { const unsigned int off_mxcsr = offsetof(struct fxregs_state, mxcsr); struct xregs_state *xinit = &init_fpstate.regs.xsave; @@ -1087,7 +1089,7 @@ break; case XSTATE_COPY_XSAVE: - header.xfeatures &= fpstate->user_xfeatures; + header.xfeatures &= fpstate->user_xfeatures & xfeatures; break; } @@ -1189,6 +1191,7 @@ enum xstate_copy_mode copy_mode) { __copy_xstate_to_uabi_buf(to, tsk->thread.fpu.fpstate, + tsk->thread.fpu.fpstate->user_xfeatures, tsk->thread.pkru, copy_mode); } @@ -1540,10 +1543,7 @@ fpregs_restore_userregs(); newfps->xfeatures = curfps->xfeatures | xfeatures; - - if (!guest_fpu) - newfps->user_xfeatures = curfps->user_xfeatures | xfeatures; - + newfps->user_xfeatures = curfps->user_xfeatures | xfeatures; newfps->xfd = curfps->xfd & ~xfeatures; /* Do the final updates within the locked region */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/kernel/fpu/xstate.h +++ linux-riscv-6.5.0/arch/x86/kernel/fpu/xstate.h @@ -43,7 +43,8 @@ struct membuf; extern void __copy_xstate_to_uabi_buf(struct membuf to, struct fpstate *fpstate, - u32 pkru_val, enum xstate_copy_mode copy_mode); + u64 xfeatures, u32 pkru_val, + enum xstate_copy_mode copy_mode); extern void copy_xstate_to_uabi_buf(struct membuf to, struct task_struct *tsk, enum xstate_copy_mode mode); extern int copy_uabi_from_kernel_to_xstate(struct fpstate *fpstate, const void *kbuf, u32 *pkru); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/kernel/head64.c +++ linux-riscv-6.5.0/arch/x86/kernel/head64.c @@ -80,7 +80,7 @@ * while the kernel still uses a direct mapping. */ static struct desc_ptr startup_gdt_descr = { - .size = sizeof(startup_gdt), + .size = sizeof(startup_gdt)-1, .address = 0, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/kernel/i8259.c +++ linux-riscv-6.5.0/arch/x86/kernel/i8259.c @@ -32,6 +32,7 @@ */ static void init_8259A(int auto_eoi); +static bool pcat_compat __ro_after_init; static int i8259A_auto_eoi; DEFINE_RAW_SPINLOCK(i8259A_lock); @@ -301,15 +302,32 @@ static int probe_8259A(void) { + unsigned char new_val, probe_val = ~(1 << PIC_CASCADE_IR); unsigned long flags; - unsigned char probe_val = ~(1 << PIC_CASCADE_IR); - unsigned char new_val; + + /* + * If MADT has the PCAT_COMPAT flag set, then do not bother probing + * for the PIC. Some BIOSes leave the PIC uninitialized and probing + * fails. + * + * Right now this causes problems as quite some code depends on + * nr_legacy_irqs() > 0 or has_legacy_pic() == true. This is silly + * when the system has an IO/APIC because then PIC is not required + * at all, except for really old machines where the timer interrupt + * must be routed through the PIC. So just pretend that the PIC is + * there and let legacy_pic->init() initialize it for nothing. + * + * Alternatively this could just try to initialize the PIC and + * repeat the probe, but for cases where there is no PIC that's + * just pointless. + */ + if (pcat_compat) + return nr_legacy_irqs(); + /* - * Check to see if we have a PIC. - * Mask all except the cascade and read - * back the value we just wrote. If we don't - * have a PIC, we will read 0xff as opposed to the - * value we wrote. + * Check to see if we have a PIC. Mask all except the cascade and + * read back the value we just wrote. If we don't have a PIC, we + * will read 0xff as opposed to the value we wrote. */ raw_spin_lock_irqsave(&i8259A_lock, flags); @@ -431,5 +449,9 @@ return 0; } - device_initcall(i8259A_init_ops); + +void __init legacy_pic_pcat_compat(void) +{ + pcat_compat = true; +} only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/kernel/idt.c +++ linux-riscv-6.5.0/arch/x86/kernel/idt.c @@ -117,7 +117,7 @@ SYSG(X86_TRAP_OF, asm_exc_overflow), #if defined(CONFIG_IA32_EMULATION) - SYSG(IA32_SYSCALL_VECTOR, entry_INT80_compat), + SYSG(IA32_SYSCALL_VECTOR, asm_int80_emulation), #elif defined(CONFIG_X86_32) SYSG(IA32_SYSCALL_VECTOR, entry_INT80_32), #endif only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/kernel/nmi.c +++ linux-riscv-6.5.0/arch/x86/kernel/nmi.c @@ -507,12 +507,13 @@ } this_cpu_write(nmi_state, NMI_EXECUTING); this_cpu_write(nmi_cr2, read_cr2()); + +nmi_restart: if (IS_ENABLED(CONFIG_NMI_CHECK_CPU)) { WRITE_ONCE(nsp->idt_seq, nsp->idt_seq + 1); WARN_ON_ONCE(!(nsp->idt_seq & 0x1)); WRITE_ONCE(nsp->recv_jiffies, jiffies); } -nmi_restart: /* * Needs to happen before DR7 is accessed, because the hypervisor can @@ -548,16 +549,16 @@ if (unlikely(this_cpu_read(nmi_cr2) != read_cr2())) write_cr2(this_cpu_read(nmi_cr2)); - if (this_cpu_dec_return(nmi_state)) - goto nmi_restart; - - if (user_mode(regs)) - mds_user_clear_cpu_buffers(); if (IS_ENABLED(CONFIG_NMI_CHECK_CPU)) { WRITE_ONCE(nsp->idt_seq, nsp->idt_seq + 1); WARN_ON_ONCE(nsp->idt_seq & 0x1); WRITE_ONCE(nsp->recv_jiffies, jiffies); } + if (this_cpu_dec_return(nmi_state)) + goto nmi_restart; + + if (user_mode(regs)) + mds_user_clear_cpu_buffers(); } #if IS_ENABLED(CONFIG_KVM_INTEL) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/kernel/tsc_sync.c +++ linux-riscv-6.5.0/arch/x86/kernel/tsc_sync.c @@ -15,6 +15,7 @@ * ( The serial nature of the boot logic and the CPU hotplug lock * protects against more than 2 CPUs entering this code. ) */ +#include #include #include #include @@ -342,6 +343,13 @@ return (cpumask_weight(topology_core_cpumask(cpu)) > 1) ? 2 : 20; } +static void tsc_sync_mark_tsc_unstable(struct work_struct *work) +{ + mark_tsc_unstable("check_tsc_sync_source failed"); +} + +static DECLARE_WORK(tsc_sync_work, tsc_sync_mark_tsc_unstable); + /* * The freshly booted CPU initiates this via an async SMP function call. */ @@ -395,7 +403,7 @@ "turning off TSC clock.\n", max_warp); if (random_warps) pr_warn("TSC warped randomly between CPUs\n"); - mark_tsc_unstable("check_tsc_sync_source failed"); + schedule_work(&tsc_sync_work); } /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/kvm/cpuid.c +++ linux-riscv-6.5.0/arch/x86/kvm/cpuid.c @@ -326,14 +326,6 @@ vcpu->arch.guest_supported_xcr0 = cpuid_get_supported_xcr0(vcpu->arch.cpuid_entries, vcpu->arch.cpuid_nent); - /* - * FP+SSE can always be saved/restored via KVM_{G,S}ET_XSAVE, even if - * XSAVE/XCRO are not exposed to the guest, and even if XSAVE isn't - * supported by the host. - */ - vcpu->arch.guest_fpu.fpstate->user_xfeatures = vcpu->arch.guest_supported_xcr0 | - XFEATURE_MASK_FPSSE; - kvm_update_pv_runtime(vcpu); vcpu->arch.maxphyaddr = cpuid_query_maxphyaddr(vcpu); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/kvm/hyperv.c +++ linux-riscv-6.5.0/arch/x86/kvm/hyperv.c @@ -727,10 +727,12 @@ stimer_cleanup(stimer); stimer->count = count; - if (stimer->count == 0) - stimer->config.enable = 0; - else if (stimer->config.auto_enable) - stimer->config.enable = 1; + if (!host) { + if (stimer->count == 0) + stimer->config.enable = 0; + else if (stimer->config.auto_enable) + stimer->config.enable = 1; + } if (stimer->config.enable) stimer_mark_pending(stimer, false); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/kvm/lapic.c +++ linux-riscv-6.5.0/arch/x86/kvm/lapic.c @@ -2423,22 +2423,22 @@ void kvm_apic_write_nodecode(struct kvm_vcpu *vcpu, u32 offset) { struct kvm_lapic *apic = vcpu->arch.apic; - u64 val; /* - * ICR is a single 64-bit register when x2APIC is enabled. For legacy - * xAPIC, ICR writes need to go down the common (slightly slower) path - * to get the upper half from ICR2. + * ICR is a single 64-bit register when x2APIC is enabled, all others + * registers hold 32-bit values. For legacy xAPIC, ICR writes need to + * go down the common path to get the upper half from ICR2. + * + * Note, using the write helpers may incur an unnecessary write to the + * virtual APIC state, but KVM needs to conditionally modify the value + * in certain cases, e.g. to clear the ICR busy bit. The cost of extra + * conditional branches is likely a wash relative to the cost of the + * maybe-unecessary write, and both are in the noise anyways. */ - if (apic_x2apic_mode(apic) && offset == APIC_ICR) { - val = kvm_lapic_get_reg64(apic, APIC_ICR); - kvm_apic_send_ipi(apic, (u32)val, (u32)(val >> 32)); - trace_kvm_apic_write(APIC_ICR, val); - } else { - /* TODO: optimize to just emulate side effect w/o one more write */ - val = kvm_lapic_get_reg(apic, offset); - kvm_lapic_reg_write(apic, offset, (u32)val); - } + if (apic_x2apic_mode(apic) && offset == APIC_ICR) + kvm_x2apic_icr_write(apic, kvm_lapic_get_reg64(apic, APIC_ICR)); + else + kvm_lapic_reg_write(apic, offset, kvm_lapic_get_reg(apic, offset)); } EXPORT_SYMBOL_GPL(kvm_apic_write_nodecode); @@ -2649,6 +2649,8 @@ u64 msr_val; int i; + static_call_cond(kvm_x86_apicv_pre_state_restore)(vcpu); + if (!init_event) { msr_val = APIC_DEFAULT_PHYS_BASE | MSR_IA32_APICBASE_ENABLE; if (kvm_vcpu_is_reset_bsp(vcpu)) @@ -2738,13 +2740,17 @@ { u32 reg = kvm_lapic_get_reg(apic, lvt_type); int vector, mode, trig_mode; + int r; if (kvm_apic_hw_enabled(apic) && !(reg & APIC_LVT_MASKED)) { vector = reg & APIC_VECTOR_MASK; mode = reg & APIC_MODE_MASK; trig_mode = reg & APIC_LVT_LEVEL_TRIGGER; - return __apic_accept_irq(apic, mode, vector, 1, trig_mode, - NULL); + + r = __apic_accept_irq(apic, mode, vector, 1, trig_mode, NULL); + if (r && lvt_type == APIC_LVTPC) + kvm_lapic_set_reg(apic, APIC_LVTPC, reg | APIC_LVT_MASKED); + return r; } return 0; } @@ -2956,6 +2962,8 @@ struct kvm_lapic *apic = vcpu->arch.apic; int r; + static_call_cond(kvm_x86_apicv_pre_state_restore)(vcpu); + kvm_lapic_set_base(vcpu, vcpu->arch.apic_base); /* set SPIV separately to get count of SW disabled APICs right */ apic_set_spiv(apic, *((u32 *)(s->regs + APIC_SPIV))); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/kvm/pmu.h +++ linux-riscv-6.5.0/arch/x86/kvm/pmu.h @@ -74,6 +74,12 @@ return counter & pmc_bitmask(pmc); } +static inline void pmc_write_counter(struct kvm_pmc *pmc, u64 val) +{ + pmc->counter += val - pmc_read_counter(pmc); + pmc->counter &= pmc_bitmask(pmc); +} + static inline void pmc_release_perf_event(struct kvm_pmc *pmc) { if (pmc->perf_event) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/kvm/svm/pmu.c +++ linux-riscv-6.5.0/arch/x86/kvm/svm/pmu.c @@ -160,7 +160,7 @@ /* MSR_PERFCTRn */ pmc = get_gp_pmc_amd(pmu, msr, PMU_TYPE_COUNTER); if (pmc) { - pmc->counter += data - pmc_read_counter(pmc); + pmc_write_counter(pmc, data); pmc_update_sample_period(pmc); return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/kvm/vmx/pmu_intel.c +++ linux-riscv-6.5.0/arch/x86/kvm/vmx/pmu_intel.c @@ -406,11 +406,11 @@ if (!msr_info->host_initiated && !(msr & MSR_PMC_FULL_WIDTH_BIT)) data = (s64)(s32)data; - pmc->counter += data - pmc_read_counter(pmc); + pmc_write_counter(pmc, data); pmc_update_sample_period(pmc); break; } else if ((pmc = get_fixed_pmc(pmu, msr))) { - pmc->counter += data - pmc_read_counter(pmc); + pmc_write_counter(pmc, data); pmc_update_sample_period(pmc); break; } else if ((pmc = get_gp_pmc(pmu, msr, MSR_P6_EVNTSEL0))) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/lib/copy_mc.c +++ linux-riscv-6.5.0/arch/x86/lib/copy_mc.c @@ -70,23 +70,23 @@ } EXPORT_SYMBOL_GPL(copy_mc_to_kernel); -unsigned long __must_check copy_mc_to_user(void *dst, const void *src, unsigned len) +unsigned long __must_check copy_mc_to_user(void __user *dst, const void *src, unsigned len) { unsigned long ret; if (copy_mc_fragile_enabled) { __uaccess_begin(); - ret = copy_mc_fragile(dst, src, len); + ret = copy_mc_fragile((__force void *)dst, src, len); __uaccess_end(); return ret; } if (static_cpu_has(X86_FEATURE_ERMS)) { __uaccess_begin(); - ret = copy_mc_enhanced_fast_string(dst, src, len); + ret = copy_mc_enhanced_fast_string((__force void *)dst, src, len); __uaccess_end(); return ret; } - return copy_user_generic(dst, src, len); + return copy_user_generic((__force void *)dst, src, len); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/mm/maccess.c +++ linux-riscv-6.5.0/arch/x86/mm/maccess.c @@ -9,12 +9,21 @@ unsigned long vaddr = (unsigned long)unsafe_src; /* - * Range covering the highest possible canonical userspace address - * as well as non-canonical address range. For the canonical range - * we also need to include the userspace guard page. + * Do not allow userspace addresses. This disallows + * normal userspace and the userspace guard page: */ - return vaddr >= TASK_SIZE_MAX + PAGE_SIZE && - __is_canonical_address(vaddr, boot_cpu_data.x86_virt_bits); + if (vaddr < TASK_SIZE_MAX + PAGE_SIZE) + return false; + + /* + * Allow everything during early boot before 'x86_virt_bits' + * is initialized. Needed for instruction decoding in early + * exception handlers. + */ + if (!boot_cpu_data.x86_virt_bits) + return true; + + return __is_canonical_address(vaddr, boot_cpu_data.x86_virt_bits); } #else bool copy_from_kernel_nofault_allowed(const void *unsafe_src, size_t size) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/mm/numa.c +++ linux-riscv-6.5.0/arch/x86/mm/numa.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include @@ -601,13 +602,6 @@ if (start >= end) continue; - /* - * Don't confuse VM with a node that doesn't have the - * minimum amount of memory: - */ - if (end && (end - start) < NODE_MIN_SIZE) - continue; - alloc_node_data(nid); } @@ -961,4 +955,83 @@ return nid; } EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid); + +static int __init cmp_memblk(const void *a, const void *b) +{ + const struct numa_memblk *ma = *(const struct numa_memblk **)a; + const struct numa_memblk *mb = *(const struct numa_memblk **)b; + + return ma->start - mb->start; +} + +static struct numa_memblk *numa_memblk_list[NR_NODE_MEMBLKS] __initdata; + +/** + * numa_fill_memblks - Fill gaps in numa_meminfo memblks + * @start: address to begin fill + * @end: address to end fill + * + * Find and extend numa_meminfo memblks to cover the @start-@end + * physical address range, such that the first memblk includes + * @start, the last memblk includes @end, and any gaps in between + * are filled. + * + * RETURNS: + * 0 : Success + * NUMA_NO_MEMBLK : No memblk exists in @start-@end range + */ + +int __init numa_fill_memblks(u64 start, u64 end) +{ + struct numa_memblk **blk = &numa_memblk_list[0]; + struct numa_meminfo *mi = &numa_meminfo; + int count = 0; + u64 prev_end; + + /* + * Create a list of pointers to numa_meminfo memblks that + * overlap start, end. Exclude (start == bi->end) since + * end addresses in both a CFMWS range and a memblk range + * are exclusive. + * + * This list of pointers is used to make in-place changes + * that fill out the numa_meminfo memblks. + */ + for (int i = 0; i < mi->nr_blks; i++) { + struct numa_memblk *bi = &mi->blk[i]; + + if (start < bi->end && end >= bi->start) { + blk[count] = &mi->blk[i]; + count++; + } + } + if (!count) + return NUMA_NO_MEMBLK; + + /* Sort the list of pointers in memblk->start order */ + sort(&blk[0], count, sizeof(blk[0]), cmp_memblk, NULL); + + /* Make sure the first/last memblks include start/end */ + blk[0]->start = min(blk[0]->start, start); + blk[count - 1]->end = max(blk[count - 1]->end, end); + + /* + * Fill any gaps by tracking the previous memblks + * end address and backfilling to it if needed. + */ + prev_end = blk[0]->end; + for (int i = 1; i < count; i++) { + struct numa_memblk *curr = blk[i]; + + if (prev_end >= curr->start) { + if (prev_end < curr->end) + prev_end = curr->end; + } else { + curr->start = prev_end; + prev_end = curr->end; + } + } + return 0; +} + #endif only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/net/bpf_jit_comp.c +++ linux-riscv-6.5.0/arch/x86/net/bpf_jit_comp.c @@ -963,6 +963,10 @@ #define INSN_SZ_DIFF (((addrs[i] - addrs[i - 1]) - (prog - temp))) +/* mov rax, qword ptr [rbp - rounded_stack_depth - 8] */ +#define RESTORE_TAIL_CALL_CNT(stack) \ + EMIT3_off32(0x48, 0x8B, 0x85, -round_up(stack, 8) - 8) + static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image, u8 *rw_image, int oldproglen, struct jit_context *ctx, bool jmp_padding) { @@ -1538,9 +1542,7 @@ func = (u8 *) __bpf_call_base + imm32; if (tail_call_reachable) { - /* mov rax, qword ptr [rbp - rounded_stack_depth - 8] */ - EMIT3_off32(0x48, 0x8B, 0x85, - -round_up(bpf_prog->aux->stack_depth, 8) - 8); + RESTORE_TAIL_CALL_CNT(bpf_prog->aux->stack_depth); if (!imm32) return -EINVAL; offs = 7 + x86_call_depth_emit_accounting(&prog, func); @@ -1857,59 +1859,177 @@ return proglen; } -static void save_regs(const struct btf_func_model *m, u8 **prog, int nr_regs, - int stack_size) +static void clean_stack_garbage(const struct btf_func_model *m, + u8 **pprog, int nr_stack_slots, + int stack_size) { - int i, j, arg_size; - bool next_same_struct = false; + int arg_size, off; + u8 *prog; + + /* Generally speaking, the compiler will pass the arguments + * on-stack with "push" instruction, which will take 8-byte + * on the stack. In this case, there won't be garbage values + * while we copy the arguments from origin stack frame to current + * in BPF_DW. + * + * However, sometimes the compiler will only allocate 4-byte on + * the stack for the arguments. For now, this case will only + * happen if there is only one argument on-stack and its size + * not more than 4 byte. In this case, there will be garbage + * values on the upper 4-byte where we store the argument on + * current stack frame. + * + * arguments on origin stack: + * + * stack_arg_1(4-byte) xxx(4-byte) + * + * what we copy: + * + * stack_arg_1(8-byte): stack_arg_1(origin) xxx + * + * and the xxx is the garbage values which we should clean here. + */ + if (nr_stack_slots != 1) + return; + + /* the size of the last argument */ + arg_size = m->arg_size[m->nr_args - 1]; + if (arg_size <= 4) { + off = -(stack_size - 4); + prog = *pprog; + /* mov DWORD PTR [rbp + off], 0 */ + if (!is_imm8(off)) + EMIT2_off32(0xC7, 0x85, off); + else + EMIT3(0xC7, 0x45, off); + EMIT(0, 4); + *pprog = prog; + } +} + +/* get the count of the regs that are used to pass arguments */ +static int get_nr_used_regs(const struct btf_func_model *m) +{ + int i, arg_regs, nr_used_regs = 0; + + for (i = 0; i < min_t(int, m->nr_args, MAX_BPF_FUNC_ARGS); i++) { + arg_regs = (m->arg_size[i] + 7) / 8; + if (nr_used_regs + arg_regs <= 6) + nr_used_regs += arg_regs; + + if (nr_used_regs >= 6) + break; + } + + return nr_used_regs; +} + +static void save_args(const struct btf_func_model *m, u8 **prog, + int stack_size, bool for_call_origin) +{ + int arg_regs, first_off = 0, nr_regs = 0, nr_stack_slots = 0; + int i, j; /* Store function arguments to stack. * For a function that accepts two pointers the sequence will be: * mov QWORD PTR [rbp-0x10],rdi * mov QWORD PTR [rbp-0x8],rsi */ - for (i = 0, j = 0; i < min(nr_regs, 6); i++) { - /* The arg_size is at most 16 bytes, enforced by the verifier. */ - arg_size = m->arg_size[j]; - if (arg_size > 8) { - arg_size = 8; - next_same_struct = !next_same_struct; - } + for (i = 0; i < min_t(int, m->nr_args, MAX_BPF_FUNC_ARGS); i++) { + arg_regs = (m->arg_size[i] + 7) / 8; - emit_stx(prog, bytes_to_bpf_size(arg_size), - BPF_REG_FP, - i == 5 ? X86_REG_R9 : BPF_REG_1 + i, - -(stack_size - i * 8)); + /* According to the research of Yonghong, struct members + * should be all in register or all on the stack. + * Meanwhile, the compiler will pass the argument on regs + * if the remaining regs can hold the argument. + * + * Disorder of the args can happen. For example: + * + * struct foo_struct { + * long a; + * int b; + * }; + * int foo(char, char, char, char, char, struct foo_struct, + * char); + * + * the arg1-5,arg7 will be passed by regs, and arg6 will + * by stack. + */ + if (nr_regs + arg_regs > 6) { + /* copy function arguments from origin stack frame + * into current stack frame. + * + * The starting address of the arguments on-stack + * is: + * rbp + 8(push rbp) + + * 8(return addr of origin call) + + * 8(return addr of the caller) + * which means: rbp + 24 + */ + for (j = 0; j < arg_regs; j++) { + emit_ldx(prog, BPF_DW, BPF_REG_0, BPF_REG_FP, + nr_stack_slots * 8 + 0x18); + emit_stx(prog, BPF_DW, BPF_REG_FP, BPF_REG_0, + -stack_size); + + if (!nr_stack_slots) + first_off = stack_size; + stack_size -= 8; + nr_stack_slots++; + } + } else { + /* Only copy the arguments on-stack to current + * 'stack_size' and ignore the regs, used to + * prepare the arguments on-stack for orign call. + */ + if (for_call_origin) { + nr_regs += arg_regs; + continue; + } - j = next_same_struct ? j : j + 1; + /* copy the arguments from regs into stack */ + for (j = 0; j < arg_regs; j++) { + emit_stx(prog, BPF_DW, BPF_REG_FP, + nr_regs == 5 ? X86_REG_R9 : BPF_REG_1 + nr_regs, + -stack_size); + stack_size -= 8; + nr_regs++; + } + } } + + clean_stack_garbage(m, prog, nr_stack_slots, first_off); } -static void restore_regs(const struct btf_func_model *m, u8 **prog, int nr_regs, +static void restore_regs(const struct btf_func_model *m, u8 **prog, int stack_size) { - int i, j, arg_size; - bool next_same_struct = false; + int i, j, arg_regs, nr_regs = 0; /* Restore function arguments from stack. * For a function that accepts two pointers the sequence will be: * EMIT4(0x48, 0x8B, 0x7D, 0xF0); mov rdi,QWORD PTR [rbp-0x10] * EMIT4(0x48, 0x8B, 0x75, 0xF8); mov rsi,QWORD PTR [rbp-0x8] + * + * The logic here is similar to what we do in save_args() */ - for (i = 0, j = 0; i < min(nr_regs, 6); i++) { - /* The arg_size is at most 16 bytes, enforced by the verifier. */ - arg_size = m->arg_size[j]; - if (arg_size > 8) { - arg_size = 8; - next_same_struct = !next_same_struct; + for (i = 0; i < min_t(int, m->nr_args, MAX_BPF_FUNC_ARGS); i++) { + arg_regs = (m->arg_size[i] + 7) / 8; + if (nr_regs + arg_regs <= 6) { + for (j = 0; j < arg_regs; j++) { + emit_ldx(prog, BPF_DW, + nr_regs == 5 ? X86_REG_R9 : BPF_REG_1 + nr_regs, + BPF_REG_FP, + -stack_size); + stack_size -= 8; + nr_regs++; + } + } else { + stack_size -= 8 * arg_regs; } - emit_ldx(prog, bytes_to_bpf_size(arg_size), - i == 5 ? X86_REG_R9 : BPF_REG_1 + i, - BPF_REG_FP, - -(stack_size - i * 8)); - - j = next_same_struct ? j : j + 1; + if (nr_regs >= 6) + break; } } @@ -1938,7 +2058,10 @@ /* arg1: mov rdi, progs[i] */ emit_mov_imm64(&prog, BPF_REG_1, (long) p >> 32, (u32) (long) p); /* arg2: lea rsi, [rbp - ctx_cookie_off] */ - EMIT4(0x48, 0x8D, 0x75, -run_ctx_off); + if (!is_imm8(-run_ctx_off)) + EMIT3_off32(0x48, 0x8D, 0xB5, -run_ctx_off); + else + EMIT4(0x48, 0x8D, 0x75, -run_ctx_off); if (emit_rsb_call(&prog, bpf_trampoline_enter(p), prog)) return -EINVAL; @@ -1954,7 +2077,10 @@ emit_nops(&prog, 2); /* arg1: lea rdi, [rbp - stack_size] */ - EMIT4(0x48, 0x8D, 0x7D, -stack_size); + if (!is_imm8(-stack_size)) + EMIT3_off32(0x48, 0x8D, 0xBD, -stack_size); + else + EMIT4(0x48, 0x8D, 0x7D, -stack_size); /* arg2: progs[i]->insnsi for interpreter */ if (!p->jited) emit_mov_imm64(&prog, BPF_REG_2, @@ -1984,7 +2110,10 @@ /* arg2: mov rsi, rbx <- start time in nsec */ emit_mov_reg(&prog, true, BPF_REG_2, BPF_REG_6); /* arg3: lea rdx, [rbp - run_ctx_off] */ - EMIT4(0x48, 0x8D, 0x55, -run_ctx_off); + if (!is_imm8(-run_ctx_off)) + EMIT3_off32(0x48, 0x8D, 0x95, -run_ctx_off); + else + EMIT4(0x48, 0x8D, 0x55, -run_ctx_off); if (emit_rsb_call(&prog, bpf_trampoline_exit(p), prog)) return -EINVAL; @@ -2136,7 +2265,7 @@ void *func_addr) { int i, ret, nr_regs = m->nr_args, stack_size = 0; - int regs_off, nregs_off, ip_off, run_ctx_off; + int regs_off, nregs_off, ip_off, run_ctx_off, arg_stack_off, rbx_off; struct bpf_tramp_links *fentry = &tlinks[BPF_TRAMP_FENTRY]; struct bpf_tramp_links *fexit = &tlinks[BPF_TRAMP_FEXIT]; struct bpf_tramp_links *fmod_ret = &tlinks[BPF_TRAMP_MODIFY_RETURN]; @@ -2150,8 +2279,10 @@ if (m->arg_flags[i] & BTF_FMODEL_STRUCT_ARG) nr_regs += (m->arg_size[i] + 7) / 8 - 1; - /* x86-64 supports up to 6 arguments. 7+ can be added in the future */ - if (nr_regs > 6) + /* x86-64 supports up to MAX_BPF_FUNC_ARGS arguments. 1-6 + * are passed through regs, the remains are through stack. + */ + if (nr_regs > MAX_BPF_FUNC_ARGS) return -ENOTSUPP; /* Generated trampoline stack layout: @@ -2170,7 +2301,15 @@ * * RBP - ip_off [ traced function ] BPF_TRAMP_F_IP_ARG flag * + * RBP - rbx_off [ rbx value ] always + * * RBP - run_ctx_off [ bpf_tramp_run_ctx ] + * + * [ stack_argN ] BPF_TRAMP_F_CALL_ORIG + * [ ... ] + * [ stack_arg2 ] + * RBP - arg_stack_off [ stack_arg1 ] + * RSP [ tail_call_cnt ] BPF_TRAMP_F_TAIL_CALL_CTX */ /* room for return value of orig_call or fentry prog */ @@ -2190,9 +2329,26 @@ ip_off = stack_size; + stack_size += 8; + rbx_off = stack_size; + stack_size += (sizeof(struct bpf_tramp_run_ctx) + 7) & ~0x7; run_ctx_off = stack_size; + if (nr_regs > 6 && (flags & BPF_TRAMP_F_CALL_ORIG)) { + /* the space that used to pass arguments on-stack */ + stack_size += (nr_regs - get_nr_used_regs(m)) * 8; + /* make sure the stack pointer is 16-byte aligned if we + * need pass arguments on stack, which means + * [stack_size + 8(rbp) + 8(rip) + 8(origin rip)] + * should be 16-byte aligned. Following code depend on + * that stack_size is already 8-byte aligned. + */ + stack_size += (stack_size % 16) ? 0 : 8; + } + + arg_stack_off = stack_size; + if (flags & BPF_TRAMP_F_SKIP_FRAME) { /* skip patched call instruction and point orig_call to actual * body of the kernel function. @@ -2212,8 +2368,16 @@ x86_call_depth_emit_accounting(&prog, NULL); EMIT1(0x55); /* push rbp */ EMIT3(0x48, 0x89, 0xE5); /* mov rbp, rsp */ - EMIT4(0x48, 0x83, 0xEC, stack_size); /* sub rsp, stack_size */ - EMIT1(0x53); /* push rbx */ + if (!is_imm8(stack_size)) + /* sub rsp, stack_size */ + EMIT3_off32(0x48, 0x81, 0xEC, stack_size); + else + /* sub rsp, stack_size */ + EMIT4(0x48, 0x83, 0xEC, stack_size); + if (flags & BPF_TRAMP_F_TAIL_CALL_CTX) + EMIT1(0x50); /* push rax */ + /* mov QWORD PTR [rbp - rbx_off], rbx */ + emit_stx(&prog, BPF_DW, BPF_REG_FP, BPF_REG_6, -rbx_off); /* Store number of argument registers of the traced function: * mov rax, nr_regs @@ -2231,7 +2395,7 @@ emit_stx(&prog, BPF_DW, BPF_REG_FP, BPF_REG_0, -ip_off); } - save_regs(m, &prog, nr_regs, regs_off); + save_args(m, &prog, regs_off, false); if (flags & BPF_TRAMP_F_CALL_ORIG) { /* arg1: mov rdi, im */ @@ -2261,11 +2425,18 @@ } if (flags & BPF_TRAMP_F_CALL_ORIG) { - restore_regs(m, &prog, nr_regs, regs_off); + restore_regs(m, &prog, regs_off); + save_args(m, &prog, arg_stack_off, true); + + if (flags & BPF_TRAMP_F_TAIL_CALL_CTX) + /* Before calling the original function, restore the + * tail_call_cnt from stack to rax. + */ + RESTORE_TAIL_CALL_CNT(stack_size); if (flags & BPF_TRAMP_F_ORIG_STACK) { - emit_ldx(&prog, BPF_DW, BPF_REG_0, BPF_REG_FP, 8); - EMIT2(0xff, 0xd0); /* call *rax */ + emit_ldx(&prog, BPF_DW, BPF_REG_6, BPF_REG_FP, 8); + EMIT2(0xff, 0xd3); /* call *rbx */ } else { /* call original function */ if (emit_rsb_call(&prog, orig_call, prog)) { @@ -2302,7 +2473,7 @@ } if (flags & BPF_TRAMP_F_RESTORE_REGS) - restore_regs(m, &prog, nr_regs, regs_off); + restore_regs(m, &prog, regs_off); /* This needs to be done regardless. If there were fmod_ret programs, * the return value is only updated on the stack and still needs to be @@ -2316,12 +2487,17 @@ ret = -EINVAL; goto cleanup; } - } + } else if (flags & BPF_TRAMP_F_TAIL_CALL_CTX) + /* Before running the original function, restore the + * tail_call_cnt from stack to rax. + */ + RESTORE_TAIL_CALL_CNT(stack_size); + /* restore return value of orig_call or fentry prog back into RAX */ if (save_ret) emit_ldx(&prog, BPF_DW, BPF_REG_0, BPF_REG_FP, -8); - EMIT1(0x5B); /* pop rbx */ + emit_ldx(&prog, BPF_DW, BPF_REG_6, BPF_REG_FP, -rbx_off); EMIT1(0xC9); /* leave */ if (flags & BPF_TRAMP_F_SKIP_FRAME) /* skip our return address and return to parent */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/pci/fixup.c +++ linux-riscv-6.5.0/arch/x86/pci/fixup.c @@ -3,9 +3,11 @@ * Exceptions for specific devices. Usually work-arounds for fatal design flaws. */ +#include #include #include #include +#include #include #include #include @@ -904,3 +906,60 @@ } DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x5ad6, chromeos_save_apl_pci_l1ss_capability); DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL, 0x5ad6, chromeos_fixup_apl_pci_l1ss_capability); + +#ifdef CONFIG_SUSPEND +/* + * Root Ports on some AMD SoCs advertise PME_Support for D3hot and D3cold, but + * if the SoC is put into a hardware sleep state by the amd-pmc driver, the + * Root Ports don't generate wakeup interrupts for USB devices. + * + * When suspending, remove D3hot and D3cold from the PME_Support advertised + * by the Root Port so we don't use those states if we're expecting wakeup + * interrupts. Restore the advertised PME_Support when resuming. + */ +static void amd_rp_pme_suspend(struct pci_dev *dev) +{ + struct pci_dev *rp; + + /* + * PM_SUSPEND_ON means we're doing runtime suspend, which means + * amd-pmc will not be involved so PMEs during D3 work as advertised. + * + * The PMEs *do* work if amd-pmc doesn't put the SoC in the hardware + * sleep state, but we assume amd-pmc is always present. + */ + if (pm_suspend_target_state == PM_SUSPEND_ON) + return; + + rp = pcie_find_root_port(dev); + if (!rp->pm_cap) + return; + + rp->pme_support &= ~((PCI_PM_CAP_PME_D3hot|PCI_PM_CAP_PME_D3cold) >> + PCI_PM_CAP_PME_SHIFT); + dev_info_once(&rp->dev, "quirk: disabling D3cold for suspend\n"); +} + +static void amd_rp_pme_resume(struct pci_dev *dev) +{ + struct pci_dev *rp; + u16 pmc; + + rp = pcie_find_root_port(dev); + if (!rp->pm_cap) + return; + + pci_read_config_word(rp, rp->pm_cap + PCI_PM_PMC, &pmc); + rp->pme_support = FIELD_GET(PCI_PM_CAP_PME_MASK, pmc); +} +/* Rembrandt (yellow_carp) */ +DECLARE_PCI_FIXUP_SUSPEND(PCI_VENDOR_ID_AMD, 0x162e, amd_rp_pme_suspend); +DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, 0x162e, amd_rp_pme_resume); +DECLARE_PCI_FIXUP_SUSPEND(PCI_VENDOR_ID_AMD, 0x162f, amd_rp_pme_suspend); +DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, 0x162f, amd_rp_pme_resume); +/* Phoenix (pink_sardine) */ +DECLARE_PCI_FIXUP_SUSPEND(PCI_VENDOR_ID_AMD, 0x1668, amd_rp_pme_suspend); +DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, 0x1668, amd_rp_pme_resume); +DECLARE_PCI_FIXUP_SUSPEND(PCI_VENDOR_ID_AMD, 0x1669, amd_rp_pme_suspend); +DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_AMD, 0x1669, amd_rp_pme_resume); +#endif /* CONFIG_SUSPEND */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/xen/enlighten.c +++ linux-riscv-6.5.0/arch/x86/xen/enlighten.c @@ -32,10 +32,13 @@ * &HYPERVISOR_shared_info->vcpu_info[cpu]. See xen_hvm_init_shared_info * and xen_vcpu_setup for details. By default it points to share_info->vcpu_info * but during boot it is switched to point to xen_vcpu_info. - * The pointer is used in __xen_evtchn_do_upcall to acknowledge pending events. + * The pointer is used in xen_evtchn_do_upcall to acknowledge pending events. + * Make sure that xen_vcpu_info doesn't cross a page boundary by making it + * cache-line aligned (the struct is guaranteed to have a size of 64 bytes, + * which matches the cache line size of 64-bit x86 processors). */ DEFINE_PER_CPU(struct vcpu_info *, xen_vcpu); -DEFINE_PER_CPU(struct vcpu_info, xen_vcpu_info); +DEFINE_PER_CPU_ALIGNED(struct vcpu_info, xen_vcpu_info); /* Linux <-> Xen vCPU id mapping */ DEFINE_PER_CPU(uint32_t, xen_vcpu_id); @@ -160,6 +163,7 @@ int err; struct vcpu_info *vcpup; + BUILD_BUG_ON(sizeof(*vcpup) > SMP_CACHE_BYTES); BUG_ON(HYPERVISOR_shared_info == &xen_dummy_shared_info); /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/xen/enlighten_hvm.c +++ linux-riscv-6.5.0/arch/x86/xen/enlighten_hvm.c @@ -136,7 +136,7 @@ inc_irq_stat(irq_hv_callback_count); - xen_hvm_evtchn_do_upcall(); + xen_evtchn_do_upcall(); set_irq_regs(old_regs); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/xen/enlighten_pv.c +++ linux-riscv-6.5.0/arch/x86/xen/enlighten_pv.c @@ -678,7 +678,7 @@ TRAP_ENTRY(exc_int3, false ), TRAP_ENTRY(exc_overflow, false ), #ifdef CONFIG_IA32_EMULATION - { entry_INT80_compat, xen_entry_INT80_compat, false }, + TRAP_ENTRY(int80_emulation, false ), #endif TRAP_ENTRY(exc_page_fault, false ), TRAP_ENTRY(exc_divide_error, false ), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/xen/xen-asm.S +++ linux-riscv-6.5.0/arch/x86/xen/xen-asm.S @@ -156,7 +156,7 @@ #endif /* CONFIG_X86_MCE */ xen_pv_trap asm_exc_simd_coprocessor_error #ifdef CONFIG_IA32_EMULATION -xen_pv_trap entry_INT80_compat +xen_pv_trap asm_int80_emulation #endif xen_pv_trap asm_exc_xen_unknown_trap xen_pv_trap asm_exc_xen_hypervisor_callback only in patch2: unchanged: --- linux-riscv-6.5.0.orig/arch/x86/xen/xen-ops.h +++ linux-riscv-6.5.0/arch/x86/xen/xen-ops.h @@ -21,7 +21,7 @@ struct trap_info; void xen_copy_trap_info(struct trap_info *traps); -DECLARE_PER_CPU(struct vcpu_info, xen_vcpu_info); +DECLARE_PER_CPU_ALIGNED(struct vcpu_info, xen_vcpu_info); DECLARE_PER_CPU(unsigned long, xen_cr3); DECLARE_PER_CPU(unsigned long, xen_current_cr3); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/block/bdev.c +++ linux-riscv-6.5.0/block/bdev.c @@ -442,6 +442,8 @@ void bdev_add(struct block_device *bdev, dev_t dev) { + if (bdev_stable_writes(bdev)) + mapping_set_stable_writes(bdev->bd_inode->i_mapping); bdev->bd_dev = dev; bdev->bd_inode->i_rdev = dev; bdev->bd_inode->i_ino = dev; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/block/blk-cgroup.h +++ linux-riscv-6.5.0/block/blk-cgroup.h @@ -249,8 +249,6 @@ { struct blkcg_gq *blkg; - WARN_ON_ONCE(!rcu_read_lock_held()); - if (blkcg == &blkcg_root) return q->root_blkg; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/block/blk-core.c +++ linux-riscv-6.5.0/block/blk-core.c @@ -500,8 +500,8 @@ if (op_is_write(bio_op(bio)) && bdev_read_only(bio->bi_bdev)) { if (op_is_flush(bio->bi_opf) && !bio_sectors(bio)) return; - pr_warn("Trying to write to read-only block-device %pg\n", - bio->bi_bdev); + pr_warn_ratelimited("Trying to write to read-only block-device %pg\n", + bio->bi_bdev); /* Older lvm-tools actually trigger this */ } } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/block/partitions/core.c +++ linux-riscv-6.5.0/block/partitions/core.c @@ -461,6 +461,11 @@ goto out; } + if (disk->flags & GENHD_FL_NO_PART) { + ret = -EINVAL; + goto out; + } + if (partition_overlaps(disk, start, length, -1)) { ret = -EBUSY; goto out; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/crypto/asymmetric_keys/Kconfig +++ linux-riscv-6.5.0/crypto/asymmetric_keys/Kconfig @@ -76,7 +76,7 @@ signed PE binary. config FIPS_SIGNATURE_SELFTEST - bool "Run FIPS selftests on the X.509+PKCS7 signature verification" + tristate "Run FIPS selftests on the X.509+PKCS7 signature verification" help This option causes some selftests to be run on the signature verification code, using some built in data. This is required @@ -84,5 +84,6 @@ depends on KEYS depends on ASYMMETRIC_KEY_TYPE depends on PKCS7_MESSAGE_PARSER=X509_CERTIFICATE_PARSER + depends on X509_CERTIFICATE_PARSER endif # ASYMMETRIC_KEY_TYPE only in patch2: unchanged: --- linux-riscv-6.5.0.orig/crypto/asymmetric_keys/Makefile +++ linux-riscv-6.5.0/crypto/asymmetric_keys/Makefile @@ -22,7 +22,8 @@ x509_cert_parser.o \ x509_loader.o \ x509_public_key.o -x509_key_parser-$(CONFIG_FIPS_SIGNATURE_SELFTEST) += selftest.o +obj-$(CONFIG_FIPS_SIGNATURE_SELFTEST) += x509_selftest.o +x509_selftest-y += selftest.o $(obj)/x509_cert_parser.o: \ $(obj)/x509.asn1.h \ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/crypto/asymmetric_keys/public_key.c +++ linux-riscv-6.5.0/crypto/asymmetric_keys/public_key.c @@ -81,14 +81,13 @@ * RSA signatures usually use EMSA-PKCS1-1_5 [RFC3447 sec 8.2]. */ if (strcmp(encoding, "pkcs1") == 0) { + *sig = op == kernel_pkey_sign || + op == kernel_pkey_verify; if (!hash_algo) { - *sig = false; n = snprintf(alg_name, CRYPTO_MAX_ALG_NAME, "pkcs1pad(%s)", pkey->pkey_algo); } else { - *sig = op == kernel_pkey_sign || - op == kernel_pkey_verify; n = snprintf(alg_name, CRYPTO_MAX_ALG_NAME, "pkcs1pad(%s,%s)", pkey->pkey_algo, hash_algo); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/crypto/asymmetric_keys/selftest.c +++ linux-riscv-6.5.0/crypto/asymmetric_keys/selftest.c @@ -4,10 +4,11 @@ * Written by David Howells (dhowells@redhat.com) */ -#include +#include #include +#include #include -#include +#include #include "x509_parser.h" struct certs_test { @@ -175,7 +176,7 @@ TEST(certs_selftest_1_data, certs_selftest_1_pkcs7), }; -int __init fips_signature_selftest(void) +static int __init fips_signature_selftest(void) { struct key *keyring; int ret, i; @@ -222,3 +223,9 @@ key_put(keyring); return 0; } + +late_initcall(fips_signature_selftest); + +MODULE_DESCRIPTION("X.509 self tests"); +MODULE_AUTHOR("Red Hat, Inc."); +MODULE_LICENSE("GPL"); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/crypto/asymmetric_keys/x509_parser.h +++ linux-riscv-6.5.0/crypto/asymmetric_keys/x509_parser.h @@ -41,15 +41,6 @@ }; /* - * selftest.c - */ -#ifdef CONFIG_FIPS_SIGNATURE_SELFTEST -extern int __init fips_signature_selftest(void); -#else -static inline int fips_signature_selftest(void) { return 0; } -#endif - -/* * x509_cert_parser.c */ extern void x509_free_certificate(struct x509_certificate *cert); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/crypto/pcrypt.c +++ linux-riscv-6.5.0/crypto/pcrypt.c @@ -117,6 +117,8 @@ err = padata_do_parallel(ictx->psenc, padata, &ctx->cb_cpu); if (!err) return -EINPROGRESS; + if (err == -EBUSY) + return -EAGAIN; return err; } @@ -164,6 +166,8 @@ err = padata_do_parallel(ictx->psdec, padata, &ctx->cb_cpu); if (!err) return -EINPROGRESS; + if (err == -EBUSY) + return -EAGAIN; return err; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/accel/habanalabs/gaudi2/gaudi2.c +++ linux-riscv-6.5.0/drivers/accel/habanalabs/gaudi2/gaudi2.c @@ -8149,11 +8149,11 @@ eng_id[num_of_eng] = razwi_info[i].eng_id; base[num_of_eng] = razwi_info[i].rtr_ctrl; if (!num_of_eng) - str_size += snprintf(eng_name + str_size, + str_size += scnprintf(eng_name + str_size, PSOC_RAZWI_ENG_STR_SIZE - str_size, "%s", razwi_info[i].eng_name); else - str_size += snprintf(eng_name + str_size, + str_size += scnprintf(eng_name + str_size, PSOC_RAZWI_ENG_STR_SIZE - str_size, " or %s", razwi_info[i].eng_name); num_of_eng++; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/accel/ivpu/ivpu_drv.c +++ linux-riscv-6.5.0/drivers/accel/ivpu/ivpu_drv.c @@ -303,7 +303,7 @@ } if (!ret) - ivpu_info(vdev, "VPU ready message received successfully\n"); + ivpu_dbg(vdev, PM, "VPU ready message received successfully\n"); else ivpu_hw_diagnose_failure(vdev); @@ -343,14 +343,19 @@ return 0; } -int ivpu_shutdown(struct ivpu_device *vdev) +void ivpu_prepare_for_reset(struct ivpu_device *vdev) { - int ret; - ivpu_hw_irq_disable(vdev); disable_irq(vdev->irq); ivpu_ipc_disable(vdev); ivpu_mmu_disable(vdev); +} + +int ivpu_shutdown(struct ivpu_device *vdev) +{ + int ret; + + ivpu_prepare_for_reset(vdev); ret = ivpu_hw_power_down(vdev); if (ret) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/accel/ivpu/ivpu_drv.h +++ linux-riscv-6.5.0/drivers/accel/ivpu/ivpu_drv.h @@ -144,6 +144,7 @@ int ivpu_boot(struct ivpu_device *vdev); int ivpu_shutdown(struct ivpu_device *vdev); +void ivpu_prepare_for_reset(struct ivpu_device *vdev); static inline bool ivpu_is_mtl(struct ivpu_device *vdev) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/accel/ivpu/ivpu_hw.h +++ linux-riscv-6.5.0/drivers/accel/ivpu/ivpu_hw.h @@ -13,6 +13,7 @@ int (*power_up)(struct ivpu_device *vdev); int (*boot_fw)(struct ivpu_device *vdev); int (*power_down)(struct ivpu_device *vdev); + int (*reset)(struct ivpu_device *vdev); bool (*is_idle)(struct ivpu_device *vdev); void (*wdt_disable)(struct ivpu_device *vdev); void (*diagnose_failure)(struct ivpu_device *vdev); @@ -90,6 +91,13 @@ return vdev->hw->ops->power_down(vdev); }; +static inline int ivpu_hw_reset(struct ivpu_device *vdev) +{ + ivpu_dbg(vdev, PM, "HW reset\n"); + + return vdev->hw->ops->reset(vdev); +}; + static inline void ivpu_hw_wdt_disable(struct ivpu_device *vdev) { vdev->hw->ops->wdt_disable(vdev); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/accel/ivpu/ivpu_hw_mtl.c +++ linux-riscv-6.5.0/drivers/accel/ivpu/ivpu_hw_mtl.c @@ -953,9 +953,6 @@ if (status == 0) return 0; - /* Disable global interrupt before handling local buttress interrupts */ - REGB_WR32(MTL_BUTTRESS_GLOBAL_INT_MASK, 0x1); - if (REG_TEST_FLD(MTL_BUTTRESS_INTERRUPT_STAT, FREQ_CHANGE, status)) ivpu_dbg(vdev, IRQ, "FREQ_CHANGE irq: %08x", REGB_RD32(MTL_BUTTRESS_CURRENT_PLL)); @@ -986,9 +983,6 @@ else REGB_WR32(MTL_BUTTRESS_INTERRUPT_STAT, status); - /* Re-enable global interrupt */ - REGB_WR32(MTL_BUTTRESS_GLOBAL_INT_MASK, 0x0); - if (schedule_recovery) ivpu_pm_schedule_recovery(vdev); @@ -1000,9 +994,14 @@ struct ivpu_device *vdev = ptr; u32 ret_irqv, ret_irqb; + REGB_WR32(MTL_BUTTRESS_GLOBAL_INT_MASK, 0x1); + ret_irqv = ivpu_hw_mtl_irqv_handler(vdev, irq); ret_irqb = ivpu_hw_mtl_irqb_handler(vdev, irq); + /* Re-enable global interrupts to re-trigger MSI for pending interrupts */ + REGB_WR32(MTL_BUTTRESS_GLOBAL_INT_MASK, 0x0); + return IRQ_RETVAL(ret_irqb | ret_irqv); } @@ -1041,6 +1040,7 @@ .power_up = ivpu_hw_mtl_power_up, .is_idle = ivpu_hw_mtl_is_idle, .power_down = ivpu_hw_mtl_power_down, + .reset = ivpu_hw_mtl_reset, .boot_fw = ivpu_hw_mtl_boot_fw, .wdt_disable = ivpu_hw_mtl_wdt_disable, .diagnose_failure = ivpu_hw_mtl_diagnose_failure, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/accel/ivpu/ivpu_pm.c +++ linux-riscv-6.5.0/drivers/accel/ivpu/ivpu_pm.c @@ -260,7 +260,8 @@ ivpu_dbg(vdev, PM, "Pre-reset..\n"); atomic_set(&vdev->pm->in_reset, 1); - ivpu_shutdown(vdev); + ivpu_prepare_for_reset(vdev); + ivpu_hw_reset(vdev); ivpu_pm_prepare_cold_boot(vdev); ivpu_jobs_abort_all(vdev); ivpu_dbg(vdev, PM, "Pre-reset done.\n"); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/acpi/acpi_fpdt.c +++ linux-riscv-6.5.0/drivers/acpi/acpi_fpdt.c @@ -194,12 +194,19 @@ record_header = (void *)subtable_header + offset; offset += record_header->length; + if (!record_header->length) { + pr_err(FW_BUG "Zero-length record found in FPTD.\n"); + result = -EINVAL; + goto err; + } + switch (record_header->type) { case RECORD_S3_RESUME: if (subtable_type != SUBTABLE_S3PT) { pr_err(FW_BUG "Invalid record %d for subtable %s\n", record_header->type, signature); - return -EINVAL; + result = -EINVAL; + goto err; } if (record_resume) { pr_err("Duplicate resume performance record found.\n"); @@ -208,7 +215,7 @@ record_resume = (struct resume_performance_record *)record_header; result = sysfs_create_group(fpdt_kobj, &resume_attr_group); if (result) - return result; + goto err; break; case RECORD_S3_SUSPEND: if (subtable_type != SUBTABLE_S3PT) { @@ -223,13 +230,14 @@ record_suspend = (struct suspend_performance_record *)record_header; result = sysfs_create_group(fpdt_kobj, &suspend_attr_group); if (result) - return result; + goto err; break; case RECORD_BOOT: if (subtable_type != SUBTABLE_FBPT) { pr_err(FW_BUG "Invalid %d for subtable %s\n", record_header->type, signature); - return -EINVAL; + result = -EINVAL; + goto err; } if (record_boot) { pr_err("Duplicate boot performance record found.\n"); @@ -238,7 +246,7 @@ record_boot = (struct boot_performance_record *)record_header; result = sysfs_create_group(fpdt_kobj, &boot_attr_group); if (result) - return result; + goto err; break; default: @@ -247,6 +255,18 @@ } } return 0; + +err: + if (record_boot) + sysfs_remove_group(fpdt_kobj, &boot_attr_group); + + if (record_suspend) + sysfs_remove_group(fpdt_kobj, &suspend_attr_group); + + if (record_resume) + sysfs_remove_group(fpdt_kobj, &resume_attr_group); + + return result; } static int __init acpi_init_fpdt(void) @@ -255,6 +275,7 @@ struct acpi_table_header *header; struct fpdt_subtable_entry *subtable; u32 offset = sizeof(*header); + int result; status = acpi_get_table(ACPI_SIG_FPDT, 0, &header); @@ -263,8 +284,8 @@ fpdt_kobj = kobject_create_and_add("fpdt", acpi_kobj); if (!fpdt_kobj) { - acpi_put_table(header); - return -ENOMEM; + result = -ENOMEM; + goto err_nomem; } while (offset < header->length) { @@ -272,8 +293,10 @@ switch (subtable->type) { case SUBTABLE_FBPT: case SUBTABLE_S3PT: - fpdt_process_subtable(subtable->address, + result = fpdt_process_subtable(subtable->address, subtable->type); + if (result) + goto err_subtable; break; default: /* Other types are reserved in ACPI 6.4 spec. */ @@ -282,6 +305,12 @@ offset += sizeof(*subtable); } return 0; +err_subtable: + kobject_put(fpdt_kobj); + +err_nomem: + acpi_put_table(header); + return result; } fs_initcall(acpi_init_fpdt); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/acpi/apei/ghes.c +++ linux-riscv-6.5.0/drivers/acpi/apei/ghes.c @@ -209,6 +209,20 @@ return -ENOMEM; } +/** + * ghes_estatus_pool_region_free - free previously allocated memory + * from the ghes_estatus_pool. + * @addr: address of memory to free. + * @size: size of memory to free. + * + * Returns none. + */ +void ghes_estatus_pool_region_free(unsigned long addr, u32 size) +{ + gen_pool_free(ghes_estatus_pool, addr, size); +} +EXPORT_SYMBOL_GPL(ghes_estatus_pool_region_free); + static int map_gen_v2(struct ghes *ghes) { return apei_map_generic_address(&ghes->generic_v2->read_ack_register); @@ -564,6 +578,7 @@ pcie_err->validation_bits & CPER_PCIE_VALID_AER_INFO) { unsigned int devfn; int aer_severity; + u8 *aer_info; devfn = PCI_DEVFN(pcie_err->device_id.device, pcie_err->device_id.function); @@ -577,11 +592,17 @@ if (gdata->flags & CPER_SEC_RESET) aer_severity = AER_FATAL; + aer_info = (void *)gen_pool_alloc(ghes_estatus_pool, + sizeof(struct aer_capability_regs)); + if (!aer_info) + return; + memcpy(aer_info, pcie_err->aer_info, sizeof(struct aer_capability_regs)); + aer_recover_queue(pcie_err->device_id.segment, pcie_err->device_id.bus, devfn, aer_severity, (struct aer_capability_regs *) - pcie_err->aer_info); + aer_info); } #endif } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/acpi/bus.c +++ linux-riscv-6.5.0/drivers/acpi/bus.c @@ -1387,10 +1387,10 @@ acpi_init_ffh(); pci_mmcfg_late_init(); - acpi_arm_init(); acpi_viot_early_init(); acpi_hest_init(); acpi_ghes_init(); + acpi_arm_init(); acpi_scan_init(); acpi_ec_init(); acpi_debugfs_init(); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/acpi/device_pm.c +++ linux-riscv-6.5.0/drivers/acpi/device_pm.c @@ -397,6 +397,19 @@ } EXPORT_SYMBOL_GPL(acpi_device_fix_up_power_extended); +/** + * acpi_device_fix_up_power_children - Force a device's children into D0. + * @adev: Parent device object whose children's power state is to be fixed up. + * + * Call acpi_device_fix_up_power() for @adev's children so long as they + * are reported as present and enabled. + */ +void acpi_device_fix_up_power_children(struct acpi_device *adev) +{ + acpi_dev_for_each_child(adev, fix_up_power_if_applicable, NULL); +} +EXPORT_SYMBOL_GPL(acpi_device_fix_up_power_children); + int acpi_device_update_power(struct acpi_device *device, int *state_p) { int state; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/acpi/device_sysfs.c +++ linux-riscv-6.5.0/drivers/acpi/device_sysfs.c @@ -158,8 +158,8 @@ return 0; len = snprintf(modalias, size, "acpi:"); - if (len <= 0) - return len; + if (len >= size) + return -ENOMEM; size -= len; @@ -212,8 +212,10 @@ len = snprintf(modalias, size, "of:N%sT", (char *)buf.pointer); ACPI_FREE(buf.pointer); - if (len <= 0) - return len; + if (len >= size) + return -ENOMEM; + + size -= len; of_compatible = acpi_dev->data.of_compatible; if (of_compatible->type == ACPI_TYPE_PACKAGE) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/acpi/irq.c +++ linux-riscv-6.5.0/drivers/acpi/irq.c @@ -57,6 +57,7 @@ int polarity) { struct irq_fwspec fwspec; + unsigned int irq; fwspec.fwnode = acpi_get_gsi_domain_id(gsi); if (WARN_ON(!fwspec.fwnode)) { @@ -68,7 +69,11 @@ fwspec.param[1] = acpi_dev_get_irq_type(trigger, polarity); fwspec.param_count = 2; - return irq_create_fwspec_mapping(&fwspec); + irq = irq_create_fwspec_mapping(&fwspec); + if (!irq) + return -EINVAL; + + return irq; } EXPORT_SYMBOL_GPL(acpi_register_gsi); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/acpi/numa/srat.c +++ linux-riscv-6.5.0/drivers/acpi/numa/srat.c @@ -310,11 +310,16 @@ start = cfmws->base_hpa; end = cfmws->base_hpa + cfmws->window_size; - /* Skip if the SRAT already described the NUMA details for this HPA */ - node = phys_to_target_node(start); - if (node != NUMA_NO_NODE) + /* + * The SRAT may have already described NUMA details for all, + * or a portion of, this CFMWS HPA range. Extend the memblks + * found for any portion of the window to cover the entire + * window. + */ + if (!numa_fill_memblks(start, end)) return 0; + /* No SRAT description. Create a new node. */ node = acpi_map_pxm_to_node(*fake_pxm); if (node == NUMA_NO_NODE) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/acpi/property.c +++ linux-riscv-6.5.0/drivers/acpi/property.c @@ -1102,25 +1102,26 @@ switch (proptype) { case DEV_PROP_STRING: break; - case DEV_PROP_U8 ... DEV_PROP_U64: + default: if (obj->type == ACPI_TYPE_BUFFER) { if (nval > obj->buffer.length) return -EOVERFLOW; - break; + } else { + if (nval > obj->package.count) + return -EOVERFLOW; } - fallthrough; - default: - if (nval > obj->package.count) - return -EOVERFLOW; break; } if (nval == 0) return -EINVAL; - if (obj->type != ACPI_TYPE_BUFFER) - items = obj->package.elements; - else + if (obj->type == ACPI_TYPE_BUFFER) { + if (proptype != DEV_PROP_U8) + return -EPROTO; items = obj; + } else { + items = obj->package.elements; + } switch (proptype) { case DEV_PROP_U8: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/acpi/scan.c +++ linux-riscv-6.5.0/drivers/acpi/scan.c @@ -1565,17 +1565,22 @@ int err; const struct iommu_ops *ops; + /* Serialise to make dev->iommu stable under our potential fwspec */ + mutex_lock(&iommu_probe_device_lock); /* * If we already translated the fwspec there is nothing left to do, * return the iommu_ops. */ ops = acpi_iommu_fwspec_ops(dev); - if (ops) + if (ops) { + mutex_unlock(&iommu_probe_device_lock); return ops; + } err = iort_iommu_configure_id(dev, id_in); if (err && err != -EPROBE_DEFER) err = viot_iommu_configure(dev); + mutex_unlock(&iommu_probe_device_lock); /* * If we have reason to believe the IOMMU driver missed the initial only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/ata/pata_isapnp.c +++ linux-riscv-6.5.0/drivers/ata/pata_isapnp.c @@ -82,6 +82,9 @@ if (pnp_port_valid(idev, 1)) { ctl_addr = devm_ioport_map(&idev->dev, pnp_port_start(idev, 1), 1); + if (!ctl_addr) + return -ENOMEM; + ap->ioaddr.altstatus_addr = ctl_addr; ap->ioaddr.ctl_addr = ctl_addr; ap->ops = &isapnp_port_ops; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/ata/pata_parport/fit3.c +++ linux-riscv-6.5.0/drivers/ata/pata_parport/fit3.c @@ -9,11 +9,6 @@ * * The TD-2000 and certain older devices use a different protocol. * Try the fit2 protocol module with them. - * - * NB: The FIT adapters do not appear to support the control - * registers. So, we map ALT_STATUS to STATUS and NO-OP writes - * to the device control register - this means that IDE reset - * will not work on these devices. */ #include @@ -37,8 +32,7 @@ static void fit3_write_regr(struct pi_adapter *pi, int cont, int regr, int val) { - if (cont == 1) - return; + regr += cont << 3; switch (pi->mode) { case 0: @@ -59,11 +53,7 @@ { int a, b; - if (cont) { - if (regr != 6) - return 0xff; - regr = 7; - } + regr += cont << 3; switch (pi->mode) { case 0: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/atm/iphase.c +++ linux-riscv-6.5.0/drivers/atm/iphase.c @@ -2291,19 +2291,21 @@ static int reset_sar(struct atm_dev *dev) { IADEV *iadev; - int i, error = 1; + int i, error; unsigned int pci[64]; iadev = INPH_IA_DEV(dev); - for(i=0; i<64; i++) - if ((error = pci_read_config_dword(iadev->pci, - i*4, &pci[i])) != PCIBIOS_SUCCESSFUL) - return error; + for (i = 0; i < 64; i++) { + error = pci_read_config_dword(iadev->pci, i * 4, &pci[i]); + if (error != PCIBIOS_SUCCESSFUL) + return error; + } writel(0, iadev->reg+IPHASE5575_EXT_RESET); - for(i=0; i<64; i++) - if ((error = pci_write_config_dword(iadev->pci, - i*4, pci[i])) != PCIBIOS_SUCCESSFUL) - return error; + for (i = 0; i < 64; i++) { + error = pci_write_config_dword(iadev->pci, i * 4, pci[i]); + if (error != PCIBIOS_SUCCESSFUL) + return error; + } udelay(5); return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/auxdisplay/hd44780_common.c +++ linux-riscv-6.5.0/drivers/auxdisplay/hd44780_common.c @@ -82,7 +82,15 @@ hdc->write_cmd(hdc, LCD_CMD_DISPLAY_CLEAR); /* datasheet says to wait 1,64 milliseconds */ long_sleep(2); - return 0; + + /* + * The Hitachi HD44780 controller (and compatible ones) reset the DDRAM + * address when executing the DISPLAY_CLEAR command, thus the + * following call is not required. However, other controllers do not + * (e.g. NewHaven NHD-0220DZW-AG5), thus move the cursor to home + * unconditionally to support both. + */ + return hd44780_common_home(lcd); } EXPORT_SYMBOL_GPL(hd44780_common_clear_display); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/base/cpu.c +++ linux-riscv-6.5.0/drivers/base/cpu.c @@ -125,7 +125,7 @@ #endif /* CONFIG_ARCH_CPU_PROBE_RELEASE */ #endif /* CONFIG_HOTPLUG_CPU */ -#ifdef CONFIG_KEXEC +#ifdef CONFIG_KEXEC_CORE #include static ssize_t crash_notes_show(struct device *dev, @@ -170,14 +170,14 @@ #endif static const struct attribute_group *common_cpu_attr_groups[] = { -#ifdef CONFIG_KEXEC +#ifdef CONFIG_KEXEC_CORE &crash_note_cpu_attr_group, #endif NULL }; static const struct attribute_group *hotplugable_cpu_attr_groups[] = { -#ifdef CONFIG_KEXEC +#ifdef CONFIG_KEXEC_CORE &crash_note_cpu_attr_group, #endif NULL only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/base/devcoredump.c +++ linux-riscv-6.5.0/drivers/base/devcoredump.c @@ -362,6 +362,7 @@ devcd->devcd_dev.class = &devcd_class; mutex_lock(&devcd->mutex); + dev_set_uevent_suppress(&devcd->devcd_dev, true); if (device_add(&devcd->devcd_dev)) goto put_device; @@ -376,6 +377,8 @@ "devcoredump")) dev_warn(dev, "devcoredump create_link failed\n"); + dev_set_uevent_suppress(&devcd->devcd_dev, false); + kobject_uevent(&devcd->devcd_dev.kobj, KOBJ_ADD); INIT_DELAYED_WORK(&devcd->del_wk, devcd_del); schedule_delayed_work(&devcd->del_wk, DEVCD_TIMEOUT); mutex_unlock(&devcd->mutex); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/base/memory.c +++ linux-riscv-6.5.0/drivers/base/memory.c @@ -179,6 +179,9 @@ } #endif +/* + * Must acquire mem_hotplug_lock in write mode. + */ static int memory_block_online(struct memory_block *mem) { unsigned long start_pfn = section_nr_to_pfn(mem->start_section_nr); @@ -200,10 +203,11 @@ * stage helps to keep accounting easier to follow - e.g vmemmaps * belong to the same zone as the memory they backed. */ + mem_hotplug_begin(); if (nr_vmemmap_pages) { ret = mhp_init_memmap_on_memory(start_pfn, nr_vmemmap_pages, zone); if (ret) - return ret; + goto out; } ret = online_pages(start_pfn + nr_vmemmap_pages, @@ -211,7 +215,7 @@ if (ret) { if (nr_vmemmap_pages) mhp_deinit_memmap_on_memory(start_pfn, nr_vmemmap_pages); - return ret; + goto out; } /* @@ -223,9 +227,14 @@ nr_vmemmap_pages); mem->zone = zone; +out: + mem_hotplug_done(); return ret; } +/* + * Must acquire mem_hotplug_lock in write mode. + */ static int memory_block_offline(struct memory_block *mem) { unsigned long start_pfn = section_nr_to_pfn(mem->start_section_nr); @@ -240,6 +249,7 @@ * Unaccount before offlining, such that unpopulated zone and kthreads * can properly be torn down in offline_pages(). */ + mem_hotplug_begin(); if (nr_vmemmap_pages) adjust_present_page_count(pfn_to_page(start_pfn), mem->group, -nr_vmemmap_pages); @@ -251,13 +261,15 @@ if (nr_vmemmap_pages) adjust_present_page_count(pfn_to_page(start_pfn), mem->group, nr_vmemmap_pages); - return ret; + goto out; } if (nr_vmemmap_pages) mhp_deinit_memmap_on_memory(start_pfn, nr_vmemmap_pages); mem->zone = NULL; +out: + mem_hotplug_done(); return ret; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/base/regmap/regcache.c +++ linux-riscv-6.5.0/drivers/base/regmap/regcache.c @@ -334,6 +334,11 @@ return 0; } +static int rbtree_all(const void *key, const struct rb_node *node) +{ + return 0; +} + /** * regcache_sync - Sync the register cache with the hardware. * @@ -351,6 +356,7 @@ unsigned int i; const char *name; bool bypass; + struct rb_node *node; if (WARN_ON(map->cache_type == REGCACHE_NONE)) return -EINVAL; @@ -392,6 +398,29 @@ /* Restore the bypass state */ map->cache_bypass = bypass; map->no_sync_defaults = false; + + /* + * If we did any paging with cache bypassed and a cached + * paging register then the register and cache state might + * have gone out of sync, force writes of all the paging + * registers. + */ + rb_for_each(node, 0, &map->range_tree, rbtree_all) { + struct regmap_range_node *this = + rb_entry(node, struct regmap_range_node, node); + + /* If there's nothing in the cache there's nothing to sync */ + if (regcache_read(map, this->selector_reg, &i) != 0) + continue; + + ret = _regmap_write(map, this->selector_reg, i); + if (ret != 0) { + dev_err(map->dev, "Failed to write %x = %x: %d\n", + this->selector_reg, i, ret); + break; + } + } + map->unlock(map->lock_arg); regmap_async_complete(map); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/base/regmap/regmap-debugfs.c +++ linux-riscv-6.5.0/drivers/base/regmap/regmap-debugfs.c @@ -48,7 +48,7 @@ name = map->dev->driver->name; ret = snprintf(buf, PAGE_SIZE, "%s\n", name); - if (ret < 0) { + if (ret >= PAGE_SIZE) { kfree(buf); return ret; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/base/regmap/regmap.c +++ linux-riscv-6.5.0/drivers/base/regmap/regmap.c @@ -1572,7 +1572,7 @@ /* If the user didn't specify a name match any */ if (data) - return !strcmp((*r)->name, data); + return (*r)->name && !strcmp((*r)->name, data); else return 1; } @@ -1714,17 +1714,19 @@ } if (!map->cache_bypass && map->format.parse_val) { - unsigned int ival; + unsigned int ival, offset; int val_bytes = map->format.val_bytes; - for (i = 0; i < val_len / val_bytes; i++) { - ival = map->format.parse_val(val + (i * val_bytes)); - ret = regcache_write(map, - reg + regmap_get_offset(map, i), - ival); + + /* Cache the last written value for noinc writes */ + i = noinc ? val_len - val_bytes : 0; + for (; i < val_len; i += val_bytes) { + ival = map->format.parse_val(val + i); + offset = noinc ? 0 : regmap_get_offset(map, i / val_bytes); + ret = regcache_write(map, reg + offset, ival); if (ret) { dev_err(map->dev, "Error in caching of register: %x ret: %d\n", - reg + regmap_get_offset(map, i), ret); + reg + offset, ret); return ret; } } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/block/virtio_blk.c +++ linux-riscv-6.5.0/drivers/block/virtio_blk.c @@ -1313,6 +1313,7 @@ u16 min_io_size; u8 physical_block_exp, alignment_offset; unsigned int queue_depth; + size_t max_dma_size; if (!vdev->config->get) { dev_err(&vdev->dev, "%s failure: config access disabled\n", @@ -1411,7 +1412,8 @@ /* No real sector limit. */ blk_queue_max_hw_sectors(q, UINT_MAX); - max_size = virtio_max_dma_size(vdev); + max_dma_size = virtio_max_dma_size(vdev); + max_size = max_dma_size > U32_MAX ? U32_MAX : max_dma_size; /* Host can optionally specify maximum segment size and number of * segments. */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/bluetooth/hci_bcm4377.c +++ linux-riscv-6.5.0/drivers/bluetooth/hci_bcm4377.c @@ -512,6 +512,7 @@ unsigned long disable_aspm : 1; unsigned long broken_ext_scan : 1; unsigned long broken_mws_transport_config : 1; + unsigned long broken_le_coded : 1; int (*send_calibration)(struct bcm4377_data *bcm4377); int (*send_ptb)(struct bcm4377_data *bcm4377, @@ -2372,6 +2373,8 @@ set_bit(HCI_QUIRK_BROKEN_MWS_TRANSPORT_CONFIG, &hdev->quirks); if (bcm4377->hw->broken_ext_scan) set_bit(HCI_QUIRK_BROKEN_EXT_SCAN, &hdev->quirks); + if (bcm4377->hw->broken_le_coded) + set_bit(HCI_QUIRK_BROKEN_LE_CODED, &hdev->quirks); pci_set_drvdata(pdev, bcm4377); hci_set_drvdata(hdev, bcm4377); @@ -2461,6 +2464,7 @@ .bar0_core2_window2 = 0x18107000, .has_bar0_core2_window2 = true, .broken_mws_transport_config = true, + .broken_le_coded = true, .send_calibration = bcm4378_send_calibration, .send_ptb = bcm4378_send_ptb, }, @@ -2474,6 +2478,7 @@ .has_bar0_core2_window2 = true, .clear_pciecfg_subsystem_ctrl_bit19 = true, .broken_mws_transport_config = true, + .broken_le_coded = true, .send_calibration = bcm4387_send_calibration, .send_ptb = bcm4378_send_ptb, }, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/bluetooth/hci_vhci.c +++ linux-riscv-6.5.0/drivers/bluetooth/hci_vhci.c @@ -74,7 +74,10 @@ struct vhci_data *data = hci_get_drvdata(hdev); memcpy(skb_push(skb, 1), &hci_skb_pkt_type(skb), 1); + + mutex_lock(&data->open_mutex); skb_queue_tail(&data->readq, skb); + mutex_unlock(&data->open_mutex); wake_up_interruptible(&data->read_wait); return 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/char/hw_random/bcm2835-rng.c +++ linux-riscv-6.5.0/drivers/char/hw_random/bcm2835-rng.c @@ -71,7 +71,7 @@ while ((rng_readl(priv, RNG_STATUS) >> 24) == 0) { if (!wait) return 0; - hwrng_msleep(rng, 1000); + hwrng_yield(rng); } num_words = rng_readl(priv, RNG_STATUS) >> 24; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/char/hw_random/core.c +++ linux-riscv-6.5.0/drivers/char/hw_random/core.c @@ -679,6 +679,12 @@ } EXPORT_SYMBOL_GPL(hwrng_msleep); +long hwrng_yield(struct hwrng *rng) +{ + return wait_for_completion_interruptible_timeout(&rng->dying, 1); +} +EXPORT_SYMBOL_GPL(hwrng_yield); + static int __init hwrng_modinit(void) { int ret; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/char/hw_random/geode-rng.c +++ linux-riscv-6.5.0/drivers/char/hw_random/geode-rng.c @@ -58,7 +58,8 @@ static int geode_rng_data_read(struct hwrng *rng, u32 *data) { - void __iomem *mem = (void __iomem *)rng->priv; + struct amd_geode_priv *priv = (struct amd_geode_priv *)rng->priv; + void __iomem *mem = priv->membase; *data = readl(mem + GEODE_RNG_DATA_REG); @@ -67,7 +68,8 @@ static int geode_rng_data_present(struct hwrng *rng, int wait) { - void __iomem *mem = (void __iomem *)rng->priv; + struct amd_geode_priv *priv = (struct amd_geode_priv *)rng->priv; + void __iomem *mem = priv->membase; int data, i; for (i = 0; i < 20; i++) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/clk-npcm7xx.c +++ linux-riscv-6.5.0/drivers/clk/clk-npcm7xx.c @@ -510,7 +510,7 @@ return; npcm7xx_init_fail: - kfree(npcm7xx_clk_data->hws); + kfree(npcm7xx_clk_data); npcm7xx_init_np_err: iounmap(clk_base); npcm7xx_init_error: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/clk-scmi.c +++ linux-riscv-6.5.0/drivers/clk/clk-scmi.c @@ -213,6 +213,7 @@ sclk->info = scmi_proto_clk_ops->info_get(ph, idx); if (!sclk->info) { dev_dbg(dev, "invalid clock info for idx %d\n", idx); + devm_kfree(dev, sclk); continue; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/clk.c +++ linux-riscv-6.5.0/drivers/clk/clk.c @@ -3416,6 +3416,7 @@ unsigned int i, char terminator) { struct clk_core *parent; + const char *name = NULL; /* * Go through the following options to fetch a parent's name. @@ -3430,18 +3431,20 @@ * registered (yet). */ parent = clk_core_get_parent_by_index(core, i); - if (parent) + if (parent) { seq_puts(s, parent->name); - else if (core->parents[i].name) + } else if (core->parents[i].name) { seq_puts(s, core->parents[i].name); - else if (core->parents[i].fw_name) + } else if (core->parents[i].fw_name) { seq_printf(s, "<%s>(fw)", core->parents[i].fw_name); - else if (core->parents[i].index >= 0) - seq_puts(s, - of_clk_get_parent_name(core->of_node, - core->parents[i].index)); - else - seq_puts(s, "(missing)"); + } else { + if (core->parents[i].index >= 0) + name = of_clk_get_parent_name(core->of_node, core->parents[i].index); + if (!name) + name = "(missing)"; + + seq_puts(s, name); + } seq_putc(s, terminator); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/imx/Kconfig +++ linux-riscv-6.5.0/drivers/clk/imx/Kconfig @@ -96,6 +96,7 @@ depends on (ARCH_MXC && ARM64) || COMPILE_TEST depends on IMX_SCU && HAVE_ARM_SMCCC select MXC_CLK_SCU + select MXC_CLK help Build the driver for IMX8QXP SCU based clocks. only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/imx/clk-imx8mq.c +++ linux-riscv-6.5.0/drivers/clk/imx/clk-imx8mq.c @@ -288,8 +288,7 @@ void __iomem *base; int err; - clk_hw_data = kzalloc(struct_size(clk_hw_data, hws, - IMX8MQ_CLK_END), GFP_KERNEL); + clk_hw_data = devm_kzalloc(dev, struct_size(clk_hw_data, hws, IMX8MQ_CLK_END), GFP_KERNEL); if (WARN_ON(!clk_hw_data)) return -ENOMEM; @@ -306,10 +305,12 @@ hws[IMX8MQ_CLK_EXT4] = imx_get_clk_hw_by_name(np, "clk_ext4"); np = of_find_compatible_node(NULL, NULL, "fsl,imx8mq-anatop"); - base = of_iomap(np, 0); + base = devm_of_iomap(dev, np, 0, NULL); of_node_put(np); - if (WARN_ON(!base)) - return -ENOMEM; + if (WARN_ON(IS_ERR(base))) { + err = PTR_ERR(base); + goto unregister_hws; + } hws[IMX8MQ_ARM_PLL_REF_SEL] = imx_clk_hw_mux("arm_pll_ref_sel", base + 0x28, 16, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels)); hws[IMX8MQ_GPU_PLL_REF_SEL] = imx_clk_hw_mux("gpu_pll_ref_sel", base + 0x18, 16, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels)); @@ -395,8 +396,10 @@ np = dev->of_node; base = devm_platform_ioremap_resource(pdev, 0); - if (WARN_ON(IS_ERR(base))) - return PTR_ERR(base); + if (WARN_ON(IS_ERR(base))) { + err = PTR_ERR(base); + goto unregister_hws; + } /* CORE */ hws[IMX8MQ_CLK_A53_DIV] = imx8m_clk_hw_composite_core("arm_a53_div", imx8mq_a53_sels, base + 0x8000); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/imx/clk-imx8qxp.c +++ linux-riscv-6.5.0/drivers/clk/imx/clk-imx8qxp.c @@ -148,10 +148,10 @@ imx_clk_scu("adc0_clk", IMX_SC_R_ADC_0, IMX_SC_PM_CLK_PER); imx_clk_scu("adc1_clk", IMX_SC_R_ADC_1, IMX_SC_PM_CLK_PER); imx_clk_scu("pwm_clk", IMX_SC_R_LCD_0_PWM_0, IMX_SC_PM_CLK_PER); + imx_clk_scu("elcdif_pll", IMX_SC_R_ELCDIF_PLL, IMX_SC_PM_CLK_PLL); imx_clk_scu2("lcd_clk", lcd_sels, ARRAY_SIZE(lcd_sels), IMX_SC_R_LCD_0, IMX_SC_PM_CLK_PER); imx_clk_scu2("lcd_pxl_clk", lcd_pxl_sels, ARRAY_SIZE(lcd_pxl_sels), IMX_SC_R_LCD_0, IMX_SC_PM_CLK_MISC0); imx_clk_scu("lcd_pxl_bypass_div_clk", IMX_SC_R_LCD_0, IMX_SC_PM_CLK_BYPASS); - imx_clk_scu("elcdif_pll", IMX_SC_R_ELCDIF_PLL, IMX_SC_PM_CLK_PLL); /* Audio SS */ imx_clk_scu("audio_pll0_clk", IMX_SC_R_AUDIO_PLL_0, IMX_SC_PM_CLK_PLL); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/mediatek/clk-mt2701.c +++ linux-riscv-6.5.0/drivers/clk/mediatek/clk-mt2701.c @@ -670,6 +670,8 @@ return PTR_ERR(base); clk_data = mtk_alloc_clk_data(CLK_TOP_NR); + if (!clk_data) + return -ENOMEM; mtk_clk_register_fixed_clks(top_fixed_clks, ARRAY_SIZE(top_fixed_clks), clk_data); @@ -750,6 +752,8 @@ if (!infra_clk_data) { infra_clk_data = mtk_alloc_clk_data(CLK_INFRA_NR); + if (!infra_clk_data) + return; for (i = 0; i < CLK_INFRA_NR; i++) infra_clk_data->hws[i] = ERR_PTR(-EPROBE_DEFER); @@ -777,6 +781,8 @@ if (!infra_clk_data) { infra_clk_data = mtk_alloc_clk_data(CLK_INFRA_NR); + if (!infra_clk_data) + return -ENOMEM; } else { for (i = 0; i < CLK_INFRA_NR; i++) { if (infra_clk_data->hws[i] == ERR_PTR(-EPROBE_DEFER)) @@ -894,6 +900,8 @@ return PTR_ERR(base); clk_data = mtk_alloc_clk_data(CLK_PERI_NR); + if (!clk_data) + return -ENOMEM; mtk_clk_register_gates(&pdev->dev, node, peri_clks, ARRAY_SIZE(peri_clks), clk_data); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/mediatek/clk-mt6765.c +++ linux-riscv-6.5.0/drivers/clk/mediatek/clk-mt6765.c @@ -740,6 +740,8 @@ } clk_data = mtk_alloc_clk_data(CLK_APMIXED_NR_CLK); + if (!clk_data) + return -ENOMEM; mtk_clk_register_plls(node, plls, ARRAY_SIZE(plls), clk_data); @@ -775,6 +777,8 @@ } clk_data = mtk_alloc_clk_data(CLK_TOP_NR_CLK); + if (!clk_data) + return -ENOMEM; mtk_clk_register_fixed_clks(fixed_clks, ARRAY_SIZE(fixed_clks), clk_data); @@ -816,6 +820,8 @@ } clk_data = mtk_alloc_clk_data(CLK_IFR_NR_CLK); + if (!clk_data) + return -ENOMEM; mtk_clk_register_gates(&pdev->dev, node, ifr_clks, ARRAY_SIZE(ifr_clks), clk_data); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/mediatek/clk-mt6779.c +++ linux-riscv-6.5.0/drivers/clk/mediatek/clk-mt6779.c @@ -1219,6 +1219,8 @@ struct device_node *node = pdev->dev.of_node; clk_data = mtk_alloc_clk_data(CLK_APMIXED_NR_CLK); + if (!clk_data) + return -ENOMEM; mtk_clk_register_plls(node, plls, ARRAY_SIZE(plls), clk_data); @@ -1239,6 +1241,8 @@ return PTR_ERR(base); clk_data = mtk_alloc_clk_data(CLK_TOP_NR_CLK); + if (!clk_data) + return -ENOMEM; mtk_clk_register_fixed_clks(top_fixed_clks, ARRAY_SIZE(top_fixed_clks), clk_data); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/mediatek/clk-mt6797.c +++ linux-riscv-6.5.0/drivers/clk/mediatek/clk-mt6797.c @@ -392,6 +392,8 @@ return PTR_ERR(base); clk_data = mtk_alloc_clk_data(CLK_TOP_NR); + if (!clk_data) + return -ENOMEM; mtk_clk_register_factors(top_fixed_divs, ARRAY_SIZE(top_fixed_divs), clk_data); @@ -547,6 +549,8 @@ if (!infra_clk_data) { infra_clk_data = mtk_alloc_clk_data(CLK_INFRA_NR); + if (!infra_clk_data) + return; for (i = 0; i < CLK_INFRA_NR; i++) infra_clk_data->hws[i] = ERR_PTR(-EPROBE_DEFER); @@ -572,6 +576,8 @@ if (!infra_clk_data) { infra_clk_data = mtk_alloc_clk_data(CLK_INFRA_NR); + if (!infra_clk_data) + return -ENOMEM; } else { for (i = 0; i < CLK_INFRA_NR; i++) { if (infra_clk_data->hws[i] == ERR_PTR(-EPROBE_DEFER)) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/mediatek/clk-mt7629-eth.c +++ linux-riscv-6.5.0/drivers/clk/mediatek/clk-mt7629-eth.c @@ -79,6 +79,8 @@ int r; clk_data = mtk_alloc_clk_data(CLK_ETH_NR_CLK); + if (!clk_data) + return -ENOMEM; mtk_clk_register_gates(&pdev->dev, node, eth_clks, CLK_ETH_NR_CLK, clk_data); @@ -102,6 +104,8 @@ int r; clk_data = mtk_alloc_clk_data(CLK_SGMII_NR_CLK); + if (!clk_data) + return -ENOMEM; mtk_clk_register_gates(&pdev->dev, node, sgmii_clks[id++], CLK_SGMII_NR_CLK, clk_data); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/mediatek/clk-mt7629.c +++ linux-riscv-6.5.0/drivers/clk/mediatek/clk-mt7629.c @@ -557,6 +557,8 @@ return PTR_ERR(base); clk_data = mtk_alloc_clk_data(CLK_TOP_NR_CLK); + if (!clk_data) + return -ENOMEM; mtk_clk_register_fixed_clks(top_fixed_clks, ARRAY_SIZE(top_fixed_clks), clk_data); @@ -581,6 +583,8 @@ struct clk_hw_onecell_data *clk_data; clk_data = mtk_alloc_clk_data(CLK_INFRA_NR_CLK); + if (!clk_data) + return -ENOMEM; mtk_clk_register_gates(&pdev->dev, node, infra_clks, ARRAY_SIZE(infra_clks), clk_data); @@ -604,6 +608,8 @@ return PTR_ERR(base); clk_data = mtk_alloc_clk_data(CLK_PERI_NR_CLK); + if (!clk_data) + return -ENOMEM; mtk_clk_register_gates(&pdev->dev, node, peri_clks, ARRAY_SIZE(peri_clks), clk_data); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/mediatek/clk-pll.c +++ linux-riscv-6.5.0/drivers/clk/mediatek/clk-pll.c @@ -321,10 +321,8 @@ ret = clk_hw_register(NULL, &pll->hw); - if (ret) { - kfree(pll); + if (ret) return ERR_PTR(ret); - } return &pll->hw; } @@ -340,6 +338,8 @@ return ERR_PTR(-ENOMEM); hw = mtk_clk_register_pll_ops(pll, data, base, &mtk_pll_ops); + if (IS_ERR(hw)) + kfree(pll); return hw; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/qcom/apss-ipq-pll.c +++ linux-riscv-6.5.0/drivers/clk/qcom/apss-ipq-pll.c @@ -68,13 +68,13 @@ .fw_name = "xo", }, .num_parents = 1, - .ops = &clk_alpha_pll_stromer_ops, + .ops = &clk_alpha_pll_stromer_plus_ops, }, }, }; static const struct alpha_pll_config ipq5332_pll_config = { - .l = 0x3e, + .l = 0x2d, .config_ctl_val = 0x4001075b, .config_ctl_hi_val = 0x304, .main_output_mask = BIT(0), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/qcom/clk-alpha-pll.c +++ linux-riscv-6.5.0/drivers/clk/qcom/clk-alpha-pll.c @@ -2479,3 +2479,66 @@ .set_rate = clk_alpha_pll_stromer_set_rate, }; EXPORT_SYMBOL_GPL(clk_alpha_pll_stromer_ops); + +static int clk_alpha_pll_stromer_plus_set_rate(struct clk_hw *hw, + unsigned long rate, + unsigned long prate) +{ + struct clk_alpha_pll *pll = to_clk_alpha_pll(hw); + u32 l, alpha_width = pll_alpha_width(pll); + int ret, pll_mode; + u64 a; + + rate = alpha_pll_round_rate(rate, prate, &l, &a, alpha_width); + + ret = regmap_read(pll->clkr.regmap, PLL_MODE(pll), &pll_mode); + if (ret) + return ret; + + regmap_write(pll->clkr.regmap, PLL_MODE(pll), 0); + + /* Delay of 2 output clock ticks required until output is disabled */ + udelay(1); + + regmap_write(pll->clkr.regmap, PLL_L_VAL(pll), l); + + if (alpha_width > ALPHA_BITWIDTH) + a <<= alpha_width - ALPHA_BITWIDTH; + + regmap_write(pll->clkr.regmap, PLL_ALPHA_VAL(pll), a); + regmap_write(pll->clkr.regmap, PLL_ALPHA_VAL_U(pll), + a >> ALPHA_BITWIDTH); + + regmap_write(pll->clkr.regmap, PLL_MODE(pll), PLL_BYPASSNL); + + /* Wait five micro seconds or more */ + udelay(5); + regmap_update_bits(pll->clkr.regmap, PLL_MODE(pll), PLL_RESET_N, + PLL_RESET_N); + + /* The lock time should be less than 50 micro seconds worst case */ + usleep_range(50, 60); + + ret = wait_for_pll_enable_lock(pll); + if (ret) { + pr_err("Wait for PLL enable lock failed [%s] %d\n", + clk_hw_get_name(hw), ret); + return ret; + } + + if (pll_mode & PLL_OUTCTRL) + regmap_update_bits(pll->clkr.regmap, PLL_MODE(pll), PLL_OUTCTRL, + PLL_OUTCTRL); + + return 0; +} + +const struct clk_ops clk_alpha_pll_stromer_plus_ops = { + .prepare = clk_alpha_pll_enable, + .unprepare = clk_alpha_pll_disable, + .is_enabled = clk_alpha_pll_is_enabled, + .recalc_rate = clk_alpha_pll_recalc_rate, + .determine_rate = clk_alpha_pll_stromer_determine_rate, + .set_rate = clk_alpha_pll_stromer_plus_set_rate, +}; +EXPORT_SYMBOL_GPL(clk_alpha_pll_stromer_plus_ops); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/qcom/clk-alpha-pll.h +++ linux-riscv-6.5.0/drivers/clk/qcom/clk-alpha-pll.h @@ -152,6 +152,7 @@ extern const struct clk_ops clk_alpha_pll_huayra_ops; extern const struct clk_ops clk_alpha_pll_postdiv_ro_ops; extern const struct clk_ops clk_alpha_pll_stromer_ops; +extern const struct clk_ops clk_alpha_pll_stromer_plus_ops; extern const struct clk_ops clk_alpha_pll_fabia_ops; extern const struct clk_ops clk_alpha_pll_fixed_fabia_ops; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/qcom/clk-rcg2.c +++ linux-riscv-6.5.0/drivers/clk/qcom/clk-rcg2.c @@ -158,17 +158,11 @@ static unsigned long calc_rate(unsigned long rate, u32 m, u32 n, u32 mode, u32 hid_div) { - if (hid_div) { - rate *= 2; - rate /= hid_div + 1; - } + if (hid_div) + rate = mult_frac(rate, 2, hid_div + 1); - if (mode) { - u64 tmp = rate; - tmp *= m; - do_div(tmp, n); - rate = tmp; - } + if (mode) + rate = mult_frac(rate, m, n); return rate; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/qcom/gcc-ipq5332.c +++ linux-riscv-6.5.0/drivers/clk/qcom/gcc-ipq5332.c @@ -70,7 +70,6 @@ &gpll0_main.clkr.hw }, .num_parents = 1, .ops = &clk_fixed_factor_ops, - .flags = CLK_SET_RATE_PARENT, }, }; @@ -84,7 +83,6 @@ &gpll0_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, }; @@ -113,7 +111,6 @@ &gpll2_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, }; @@ -153,7 +150,6 @@ &gpll4_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/qcom/gcc-ipq6018.c +++ linux-riscv-6.5.0/drivers/clk/qcom/gcc-ipq6018.c @@ -73,7 +73,6 @@ &gpll0_main.clkr.hw }, .num_parents = 1, .ops = &clk_fixed_factor_ops, - .flags = CLK_SET_RATE_PARENT, }, }; @@ -87,7 +86,6 @@ &gpll0_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, }; @@ -162,7 +160,6 @@ &gpll6_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, }; @@ -193,7 +190,6 @@ &gpll4_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, }; @@ -244,7 +240,6 @@ &gpll2_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, }; @@ -275,7 +270,6 @@ &nss_crypto_pll_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/qcom/gcc-ipq8074.c +++ linux-riscv-6.5.0/drivers/clk/qcom/gcc-ipq8074.c @@ -76,7 +76,6 @@ &gpll0_main.clkr.hw }, .num_parents = 1, .ops = &clk_fixed_factor_ops, - .flags = CLK_SET_RATE_PARENT, }, }; @@ -122,7 +121,6 @@ &gpll2_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, }; @@ -155,7 +153,6 @@ &gpll4_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, }; @@ -189,7 +186,6 @@ &gpll6_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, }; @@ -202,7 +198,6 @@ &gpll6_main.clkr.hw }, .num_parents = 1, .ops = &clk_fixed_factor_ops, - .flags = CLK_SET_RATE_PARENT, }, }; @@ -267,7 +262,6 @@ &nss_crypto_pll_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/qcom/gcc-ipq9574.c +++ linux-riscv-6.5.0/drivers/clk/qcom/gcc-ipq9574.c @@ -87,7 +87,6 @@ &gpll0_main.clkr.hw }, .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_fixed_factor_ops, }, }; @@ -102,7 +101,6 @@ &gpll0_main.clkr.hw }, .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_alpha_pll_postdiv_ro_ops, }, }; @@ -132,7 +130,6 @@ &gpll4_main.clkr.hw }, .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_alpha_pll_postdiv_ro_ops, }, }; @@ -162,7 +159,6 @@ &gpll2_main.clkr.hw }, .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_alpha_pll_postdiv_ro_ops, }, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/qcom/gcc-msm8996.c +++ linux-riscv-6.5.0/drivers/clk/qcom/gcc-msm8996.c @@ -245,71 +245,6 @@ { .hw = &gpll0_early_div.hw } }; -static const struct freq_tbl ftbl_system_noc_clk_src[] = { - F(19200000, P_XO, 1, 0, 0), - F(50000000, P_GPLL0_EARLY_DIV, 6, 0, 0), - F(100000000, P_GPLL0, 6, 0, 0), - F(150000000, P_GPLL0, 4, 0, 0), - F(200000000, P_GPLL0, 3, 0, 0), - F(240000000, P_GPLL0, 2.5, 0, 0), - { } -}; - -static struct clk_rcg2 system_noc_clk_src = { - .cmd_rcgr = 0x0401c, - .hid_width = 5, - .parent_map = gcc_xo_gpll0_gpll0_early_div_map, - .freq_tbl = ftbl_system_noc_clk_src, - .clkr.hw.init = &(struct clk_init_data){ - .name = "system_noc_clk_src", - .parent_data = gcc_xo_gpll0_gpll0_early_div, - .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_early_div), - .ops = &clk_rcg2_ops, - }, -}; - -static const struct freq_tbl ftbl_config_noc_clk_src[] = { - F(19200000, P_XO, 1, 0, 0), - F(37500000, P_GPLL0, 16, 0, 0), - F(75000000, P_GPLL0, 8, 0, 0), - { } -}; - -static struct clk_rcg2 config_noc_clk_src = { - .cmd_rcgr = 0x0500c, - .hid_width = 5, - .parent_map = gcc_xo_gpll0_map, - .freq_tbl = ftbl_config_noc_clk_src, - .clkr.hw.init = &(struct clk_init_data){ - .name = "config_noc_clk_src", - .parent_data = gcc_xo_gpll0, - .num_parents = ARRAY_SIZE(gcc_xo_gpll0), - .ops = &clk_rcg2_ops, - }, -}; - -static const struct freq_tbl ftbl_periph_noc_clk_src[] = { - F(19200000, P_XO, 1, 0, 0), - F(37500000, P_GPLL0, 16, 0, 0), - F(50000000, P_GPLL0, 12, 0, 0), - F(75000000, P_GPLL0, 8, 0, 0), - F(100000000, P_GPLL0, 6, 0, 0), - { } -}; - -static struct clk_rcg2 periph_noc_clk_src = { - .cmd_rcgr = 0x06014, - .hid_width = 5, - .parent_map = gcc_xo_gpll0_map, - .freq_tbl = ftbl_periph_noc_clk_src, - .clkr.hw.init = &(struct clk_init_data){ - .name = "periph_noc_clk_src", - .parent_data = gcc_xo_gpll0, - .num_parents = ARRAY_SIZE(gcc_xo_gpll0), - .ops = &clk_rcg2_ops, - }, -}; - static const struct freq_tbl ftbl_usb30_master_clk_src[] = { F(19200000, P_XO, 1, 0, 0), F(120000000, P_GPLL0, 5, 0, 0), @@ -1298,11 +1233,7 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_mmss_noc_cfg_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &config_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, + .flags = CLK_IGNORE_UNUSED, .ops = &clk_branch2_ops, }, }, @@ -1465,11 +1396,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_usb_phy_cfg_ahb2phy_clk", - .parent_hws = (const struct clk_hw*[]){ - &periph_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -1499,11 +1425,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_sdcc1_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &periph_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -1550,11 +1471,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_sdcc2_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &periph_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -1584,11 +1500,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_sdcc3_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &periph_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -1618,11 +1529,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_sdcc4_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &periph_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -1636,11 +1542,6 @@ .enable_mask = BIT(17), .hw.init = &(struct clk_init_data){ .name = "gcc_blsp1_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &periph_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -1978,11 +1879,6 @@ .enable_mask = BIT(15), .hw.init = &(struct clk_init_data){ .name = "gcc_blsp2_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &periph_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -2319,11 +2215,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_pdm_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &periph_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -2354,11 +2245,6 @@ .enable_mask = BIT(13), .hw.init = &(struct clk_init_data){ .name = "gcc_prng_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &config_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -2371,11 +2257,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_tsif_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &periph_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -2423,11 +2304,6 @@ .enable_mask = BIT(10), .hw.init = &(struct clk_init_data){ .name = "gcc_boot_rom_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &config_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -2521,11 +2397,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_pcie_0_slv_axi_clk", - .parent_hws = (const struct clk_hw*[]){ - &system_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -2538,11 +2409,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_pcie_0_mstr_axi_clk", - .parent_hws = (const struct clk_hw*[]){ - &system_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -2555,11 +2421,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_pcie_0_cfg_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &config_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -2607,11 +2468,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_pcie_1_slv_axi_clk", - .parent_hws = (const struct clk_hw*[]){ - &system_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -2624,11 +2480,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_pcie_1_mstr_axi_clk", - .parent_hws = (const struct clk_hw*[]){ - &system_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -2641,11 +2492,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_pcie_1_cfg_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &config_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -2693,11 +2539,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_pcie_2_slv_axi_clk", - .parent_hws = (const struct clk_hw*[]){ - &system_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -2710,11 +2551,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_pcie_2_mstr_axi_clk", - .parent_hws = (const struct clk_hw*[]){ - &system_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -2727,11 +2563,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_pcie_2_cfg_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &config_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -2779,11 +2610,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_pcie_phy_cfg_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &config_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -2830,11 +2656,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_ufs_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &config_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -3061,11 +2882,7 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_aggre0_snoc_axi_clk", - .parent_hws = (const struct clk_hw*[]){ - &system_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, + .flags = CLK_IS_CRITICAL, .ops = &clk_branch2_ops, }, }, @@ -3078,11 +2895,7 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_aggre0_cnoc_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &config_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, + .flags = CLK_IS_CRITICAL, .ops = &clk_branch2_ops, }, }, @@ -3095,11 +2908,7 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_smmu_aggre0_axi_clk", - .parent_hws = (const struct clk_hw*[]){ - &system_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, + .flags = CLK_IS_CRITICAL, .ops = &clk_branch2_ops, }, }, @@ -3112,11 +2921,7 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_smmu_aggre0_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &config_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, + .flags = CLK_IS_CRITICAL, .ops = &clk_branch2_ops, }, }, @@ -3163,10 +2968,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_dcc_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &config_noc_clk_src.clkr.hw, - }, - .num_parents = 1, .ops = &clk_branch2_ops, }, }, @@ -3179,10 +2980,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_aggre0_noc_mpu_cfg_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &config_noc_clk_src.clkr.hw, - }, - .num_parents = 1, .ops = &clk_branch2_ops, }, }, @@ -3195,11 +2992,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_qspi_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &periph_noc_clk_src.clkr.hw, - }, - .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, @@ -3348,10 +3140,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_mss_cfg_ahb_clk", - .parent_hws = (const struct clk_hw*[]){ - &config_noc_clk_src.clkr.hw, - }, - .num_parents = 1, .ops = &clk_branch2_ops, }, }, @@ -3364,10 +3152,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_mss_mnoc_bimc_axi_clk", - .parent_hws = (const struct clk_hw*[]){ - &system_noc_clk_src.clkr.hw, - }, - .num_parents = 1, .ops = &clk_branch2_ops, }, }, @@ -3380,10 +3164,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_mss_snoc_axi_clk", - .parent_hws = (const struct clk_hw*[]){ - &system_noc_clk_src.clkr.hw, - }, - .num_parents = 1, .ops = &clk_branch2_ops, }, }, @@ -3396,10 +3176,6 @@ .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_mss_q6_bimc_axi_clk", - .parent_hws = (const struct clk_hw*[]){ - &system_noc_clk_src.clkr.hw, - }, - .num_parents = 1, .ops = &clk_branch2_ops, }, }, @@ -3496,9 +3272,6 @@ [GPLL0] = &gpll0.clkr, [GPLL4_EARLY] = &gpll4_early.clkr, [GPLL4] = &gpll4.clkr, - [SYSTEM_NOC_CLK_SRC] = &system_noc_clk_src.clkr, - [CONFIG_NOC_CLK_SRC] = &config_noc_clk_src.clkr, - [PERIPH_NOC_CLK_SRC] = &periph_noc_clk_src.clkr, [USB30_MASTER_CLK_SRC] = &usb30_master_clk_src.clkr, [USB30_MOCK_UTMI_CLK_SRC] = &usb30_mock_utmi_clk_src.clkr, [USB3_PHY_AUX_CLK_SRC] = &usb3_phy_aux_clk_src.clkr, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/qcom/gcc-sm8150.c +++ linux-riscv-6.5.0/drivers/clk/qcom/gcc-sm8150.c @@ -775,7 +775,7 @@ .name = "gcc_sdcc2_apps_clk_src", .parent_data = gcc_parents_6, .num_parents = ARRAY_SIZE(gcc_parents_6), - .flags = CLK_SET_RATE_PARENT, + .flags = CLK_OPS_PARENT_ENABLE, .ops = &clk_rcg2_floor_ops, }, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/qcom/mmcc-msm8998.c +++ linux-riscv-6.5.0/drivers/clk/qcom/mmcc-msm8998.c @@ -2453,6 +2453,7 @@ static struct clk_branch mnoc_ahb_clk = { .halt_reg = 0x5024, + .halt_check = BRANCH_HALT_SKIP, .clkr = { .enable_reg = 0x5024, .enable_mask = BIT(0), @@ -2468,6 +2469,7 @@ static struct clk_branch bimc_smmu_ahb_clk = { .halt_reg = 0xe004, + .halt_check = BRANCH_HALT_SKIP, .hwcg_reg = 0xe004, .hwcg_bit = 1, .clkr = { @@ -2485,6 +2487,7 @@ static struct clk_branch bimc_smmu_axi_clk = { .halt_reg = 0xe008, + .halt_check = BRANCH_HALT_SKIP, .hwcg_reg = 0xe008, .hwcg_bit = 1, .clkr = { @@ -2625,11 +2628,13 @@ static struct gdsc bimc_smmu_gdsc = { .gdscr = 0xe020, .gds_hw_ctrl = 0xe024, + .cxcs = (unsigned int []){ 0xe008 }, + .cxc_count = 1, .pd = { .name = "bimc_smmu", }, .pwrsts = PWRSTS_OFF_ON, - .flags = HW_CTRL | ALWAYS_ON, + .flags = VOTABLE, }; static struct clk_regmap *mmcc_msm8998_clocks[] = { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/ralink/clk-mtmips.c +++ linux-riscv-6.5.0/drivers/clk/ralink/clk-mtmips.c @@ -822,6 +822,10 @@ static const struct of_device_id mtmips_of_match[] = { { + .compatible = "ralink,rt2880-reset", + .data = NULL, + }, + { .compatible = "ralink,rt2880-sysc", .data = &rt2880_clk_data, }, @@ -1088,25 +1092,11 @@ return 0; } -static const struct of_device_id mtmips_clk_of_match[] = { - { .compatible = "ralink,rt2880-reset" }, - { .compatible = "ralink,rt2880-sysc" }, - { .compatible = "ralink,rt3050-sysc" }, - { .compatible = "ralink,rt3052-sysc" }, - { .compatible = "ralink,rt3352-sysc" }, - { .compatible = "ralink,rt3883-sysc" }, - { .compatible = "ralink,rt5350-sysc" }, - { .compatible = "ralink,mt7620-sysc" }, - { .compatible = "ralink,mt7628-sysc" }, - { .compatible = "ralink,mt7688-sysc" }, - {} -}; - static struct platform_driver mtmips_clk_driver = { .probe = mtmips_clk_probe, .driver = { .name = "mtmips-clk", - .of_match_table = mtmips_clk_of_match, + .of_match_table = mtmips_of_match, }, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/renesas/rcar-cpg-lib.c +++ linux-riscv-6.5.0/drivers/clk/renesas/rcar-cpg-lib.c @@ -70,8 +70,21 @@ #define STPnHCK BIT(9 - SDnSRCFC_SHIFT) static const struct clk_div_table cpg_sdh_div_table[] = { + /* + * These values are recommended by the datasheet. Because they come + * first, Linux will only use these. + */ { 0, 1 }, { 1, 2 }, { STPnHCK | 2, 4 }, { STPnHCK | 3, 8 }, - { STPnHCK | 4, 16 }, { 0, 0 }, + { STPnHCK | 4, 16 }, + /* + * These values are not recommended because STPnHCK is wrong. But they + * have been seen because of broken firmware. So, we support reading + * them but Linux will sanitize them when initializing through + * recalc_rate. + */ + { STPnHCK | 0, 1 }, { STPnHCK | 1, 2 }, { 2, 4 }, { 3, 8 }, { 4, 16 }, + /* Sentinel */ + { 0, 0 } }; struct clk * __init cpg_sdh_clk_register(const char *name, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/renesas/rzg2l-cpg.c +++ linux-riscv-6.5.0/drivers/clk/renesas/rzg2l-cpg.c @@ -11,6 +11,7 @@ * Copyright (C) 2015 Renesas Electronics Corp. */ +#include #include #include #include @@ -39,14 +40,13 @@ #define WARN_DEBUG(x) do { } while (0) #endif -#define DIV_RSMASK(v, s, m) ((v >> s) & m) #define GET_SHIFT(val) ((val >> 12) & 0xff) #define GET_WIDTH(val) ((val >> 8) & 0xf) -#define KDIV(val) DIV_RSMASK(val, 16, 0xffff) -#define MDIV(val) DIV_RSMASK(val, 6, 0x3ff) -#define PDIV(val) DIV_RSMASK(val, 0, 0x3f) -#define SDIV(val) DIV_RSMASK(val, 0, 0x7) +#define KDIV(val) ((s16)FIELD_GET(GENMASK(31, 16), val)) +#define MDIV(val) FIELD_GET(GENMASK(15, 6), val) +#define PDIV(val) FIELD_GET(GENMASK(5, 0), val) +#define SDIV(val) FIELD_GET(GENMASK(2, 0), val) #define CLK_ON_R(reg) (reg) #define CLK_MON_R(reg) (0x180 + (reg)) @@ -195,7 +195,9 @@ u32 off = GET_REG_OFFSET(hwdata->conf); u32 shift = GET_SHIFT(hwdata->conf); const u32 clk_src_266 = 2; - u32 bitmask; + u32 msk, val, bitmask; + unsigned long flags; + int ret; /* * As per the HW manual, we should not directly switch from 533 MHz to @@ -209,26 +211,30 @@ * the index to value mapping is done by adding 1 to the index. */ bitmask = (GENMASK(GET_WIDTH(hwdata->conf) - 1, 0) << shift) << 16; + msk = off ? CPG_CLKSTATUS_SELSDHI1_STS : CPG_CLKSTATUS_SELSDHI0_STS; + spin_lock_irqsave(&priv->rmw_lock, flags); if (index != clk_src_266) { - u32 msk, val; - int ret; - writel(bitmask | ((clk_src_266 + 1) << shift), priv->base + off); - msk = off ? CPG_CLKSTATUS_SELSDHI1_STS : CPG_CLKSTATUS_SELSDHI0_STS; - - ret = readl_poll_timeout(priv->base + CPG_CLKSTATUS, val, - !(val & msk), 100, - CPG_SDHI_CLK_SWITCH_STATUS_TIMEOUT_US); - if (ret) { - dev_err(priv->dev, "failed to switch clk source\n"); - return ret; - } + ret = readl_poll_timeout_atomic(priv->base + CPG_CLKSTATUS, val, + !(val & msk), 10, + CPG_SDHI_CLK_SWITCH_STATUS_TIMEOUT_US); + if (ret) + goto unlock; } writel(bitmask | ((index + 1) << shift), priv->base + off); - return 0; + ret = readl_poll_timeout_atomic(priv->base + CPG_CLKSTATUS, val, + !(val & msk), 10, + CPG_SDHI_CLK_SWITCH_STATUS_TIMEOUT_US); +unlock: + spin_unlock_irqrestore(&priv->rmw_lock, flags); + + if (ret) + dev_err(priv->dev, "failed to switch clk source\n"); + + return ret; } static u8 rzg2l_cpg_sd_clk_mux_get_parent(struct clk_hw *hw) @@ -239,14 +245,8 @@ val >>= GET_SHIFT(hwdata->conf); val &= GENMASK(GET_WIDTH(hwdata->conf) - 1, 0); - if (val) { - val--; - } else { - /* Prohibited clk source, change it to 533 MHz(reset value) */ - rzg2l_cpg_sd_clk_mux_set_parent(hw, 0); - } - return val; + return val ? val - 1 : 0; } static const struct clk_ops rzg2l_cpg_sd_clk_mux_ops = { @@ -702,18 +702,18 @@ struct pll_clk *pll_clk = to_pll(hw); struct rzg2l_cpg_priv *priv = pll_clk->priv; unsigned int val1, val2; - unsigned int mult = 1; - unsigned int div = 1; + u64 rate; if (pll_clk->type != CLK_TYPE_SAM_PLL) return parent_rate; val1 = readl(priv->base + GET_REG_SAMPLL_CLK1(pll_clk->conf)); val2 = readl(priv->base + GET_REG_SAMPLL_CLK2(pll_clk->conf)); - mult = MDIV(val1) + KDIV(val1) / 65536; - div = PDIV(val1) << SDIV(val2); - return DIV_ROUND_CLOSEST_ULL((u64)parent_rate * mult, div); + rate = mul_u64_u32_shr(parent_rate, (MDIV(val1) << 16) + KDIV(val1), + 16 + SDIV(val2)); + + return DIV_ROUND_CLOSEST_ULL(rate, PDIV(val1)); } static const struct clk_ops rzg2l_cpg_pll_ops = { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/renesas/rzg2l-cpg.h +++ linux-riscv-6.5.0/drivers/clk/renesas/rzg2l-cpg.h @@ -43,7 +43,7 @@ #define CPG_CLKSTATUS_SELSDHI0_STS BIT(28) #define CPG_CLKSTATUS_SELSDHI1_STS BIT(29) -#define CPG_SDHI_CLK_SWITCH_STATUS_TIMEOUT_US 20000 +#define CPG_SDHI_CLK_SWITCH_STATUS_TIMEOUT_US 200 /* n = 0/1/2 for PLL1/4/6 */ #define CPG_SAMPLL_CLK1(n) (0x04 + (16 * n)) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/socfpga/clk-gate.c +++ linux-riscv-6.5.0/drivers/clk/socfpga/clk-gate.c @@ -87,10 +87,8 @@ return 0; } -static unsigned long socfpga_clk_recalc_rate(struct clk_hw *hwclk, - unsigned long parent_rate) +static u32 socfpga_clk_get_div(struct socfpga_gate_clk *socfpgaclk) { - struct socfpga_gate_clk *socfpgaclk = to_socfpga_gate_clk(hwclk); u32 div = 1, val; if (socfpgaclk->fixed_div) @@ -105,12 +103,33 @@ div = (1 << val); } + return div; +} + +static unsigned long socfpga_clk_recalc_rate(struct clk_hw *hwclk, + unsigned long parent_rate) +{ + struct socfpga_gate_clk *socfpgaclk = to_socfpga_gate_clk(hwclk); + u32 div = socfpga_clk_get_div(socfpgaclk); + return parent_rate / div; } + +static int socfpga_clk_determine_rate(struct clk_hw *hwclk, + struct clk_rate_request *req) +{ + struct socfpga_gate_clk *socfpgaclk = to_socfpga_gate_clk(hwclk); + u32 div = socfpga_clk_get_div(socfpgaclk); + + req->rate = req->best_parent_rate / div; + + return 0; +} + static struct clk_ops gateclk_ops = { .recalc_rate = socfpga_clk_recalc_rate, - .determine_rate = clk_hw_determine_rate_no_reparent, + .determine_rate = socfpga_clk_determine_rate, .get_parent = socfpga_clk_get_parent, .set_parent = socfpga_clk_set_parent, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/socfpga/stratix10-clk.h +++ linux-riscv-6.5.0/drivers/clk/socfpga/stratix10-clk.h @@ -7,8 +7,10 @@ #define __STRATIX10_CLK_H struct stratix10_clock_data { - struct clk_hw_onecell_data clk_data; void __iomem *base; + + /* Must be last */ + struct clk_hw_onecell_data clk_data; }; struct stratix10_pll_clock { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/stm32/clk-stm32-core.c +++ linux-riscv-6.5.0/drivers/clk/stm32/clk-stm32-core.c @@ -431,7 +431,7 @@ { struct clk_stm32_composite *composite = to_clk_stm32_composite(hw); const struct stm32_div_cfg *divider; - unsigned long rate; + long rate; if (composite->div_id == NO_STM32_DIV) return 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/ti/clk-44xx.c +++ linux-riscv-6.5.0/drivers/clk/ti/clk-44xx.c @@ -749,9 +749,14 @@ DT_CLK(NULL, "mcbsp1_sync_mux_ck", "abe-clkctrl:0028:26"), DT_CLK(NULL, "mcbsp2_sync_mux_ck", "abe-clkctrl:0030:26"), DT_CLK(NULL, "mcbsp3_sync_mux_ck", "abe-clkctrl:0038:26"), + DT_CLK("40122000.mcbsp", "prcm_fck", "abe-clkctrl:0028:26"), + DT_CLK("40124000.mcbsp", "prcm_fck", "abe-clkctrl:0030:26"), + DT_CLK("40126000.mcbsp", "prcm_fck", "abe-clkctrl:0038:26"), DT_CLK(NULL, "mcbsp4_sync_mux_ck", "l4-per-clkctrl:00c0:26"), + DT_CLK("48096000.mcbsp", "prcm_fck", "l4-per-clkctrl:00c0:26"), DT_CLK(NULL, "ocp2scp_usb_phy_phy_48m", "l3-init-clkctrl:00c0:8"), DT_CLK(NULL, "otg_60m_gfclk", "l3-init-clkctrl:0040:24"), + DT_CLK(NULL, "pad_fck", "pad_clks_ck"), DT_CLK(NULL, "per_mcbsp4_gfclk", "l4-per-clkctrl:00c0:24"), DT_CLK(NULL, "pmd_stm_clock_mux_ck", "emu-sys-clkctrl:0000:20"), DT_CLK(NULL, "pmd_trace_clk_mux_ck", "emu-sys-clkctrl:0000:22"), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/ti/clk-54xx.c +++ linux-riscv-6.5.0/drivers/clk/ti/clk-54xx.c @@ -565,15 +565,19 @@ DT_CLK(NULL, "gpio8_dbclk", "l4per-clkctrl:00f8:8"), DT_CLK(NULL, "mcbsp1_gfclk", "abe-clkctrl:0028:24"), DT_CLK(NULL, "mcbsp1_sync_mux_ck", "abe-clkctrl:0028:26"), + DT_CLK("40122000.mcbsp", "prcm_fck", "abe-clkctrl:0028:26"), DT_CLK(NULL, "mcbsp2_gfclk", "abe-clkctrl:0030:24"), DT_CLK(NULL, "mcbsp2_sync_mux_ck", "abe-clkctrl:0030:26"), + DT_CLK("40124000.mcbsp", "prcm_fck", "abe-clkctrl:0030:26"), DT_CLK(NULL, "mcbsp3_gfclk", "abe-clkctrl:0038:24"), DT_CLK(NULL, "mcbsp3_sync_mux_ck", "abe-clkctrl:0038:26"), + DT_CLK("40126000.mcbsp", "prcm_fck", "abe-clkctrl:0038:26"), DT_CLK(NULL, "mmc1_32khz_clk", "l3init-clkctrl:0008:8"), DT_CLK(NULL, "mmc1_fclk", "l3init-clkctrl:0008:25"), DT_CLK(NULL, "mmc1_fclk_mux", "l3init-clkctrl:0008:24"), DT_CLK(NULL, "mmc2_fclk", "l3init-clkctrl:0010:25"), DT_CLK(NULL, "mmc2_fclk_mux", "l3init-clkctrl:0010:24"), + DT_CLK(NULL, "pad_fck", "pad_clks_ck"), DT_CLK(NULL, "sata_ref_clk", "l3init-clkctrl:0068:8"), DT_CLK(NULL, "timer10_gfclk_mux", "l4per-clkctrl:0008:24"), DT_CLK(NULL, "timer11_gfclk_mux", "l4per-clkctrl:0010:24"), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/ti/divider.c +++ linux-riscv-6.5.0/drivers/clk/ti/divider.c @@ -309,7 +309,6 @@ u32 flags, struct clk_omap_divider *div) { - struct clk *clk; struct clk_init_data init; const char *parent_name; const char *name; @@ -326,12 +325,7 @@ div->hw.init = &init; /* register the clock */ - clk = of_ti_clk_register(node, &div->hw, name); - - if (IS_ERR(clk)) - kfree(div); - - return clk; + return of_ti_clk_register(node, &div->hw, name); } int ti_clk_parse_divider_data(int *div_table, int num_dividers, int max_div, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clk/visconti/pll.h +++ linux-riscv-6.5.0/drivers/clk/visconti/pll.h @@ -15,8 +15,10 @@ struct visconti_pll_provider { void __iomem *reg_base; - struct clk_hw_onecell_data clk_data; struct device_node *node; + + /* Must be last */ + struct clk_hw_onecell_data clk_data; }; #define VISCONTI_PLL_RATE(_rate, _dacen, _dsmen, \ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clocksource/timer-atmel-tcb.c +++ linux-riscv-6.5.0/drivers/clocksource/timer-atmel-tcb.c @@ -315,6 +315,7 @@ writel(mck_divisor_idx /* likely divide-by-8 */ | ATMEL_TC_WAVE | ATMEL_TC_WAVESEL_UP /* free-run */ + | ATMEL_TC_ASWTRG_SET /* TIOA0 rises at software trigger */ | ATMEL_TC_ACPA_SET /* TIOA0 rises at 0 */ | ATMEL_TC_ACPC_CLEAR, /* (duty cycle 50%) */ tcaddr + ATMEL_TC_REG(0, CMR)); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clocksource/timer-imx-gpt.c +++ linux-riscv-6.5.0/drivers/clocksource/timer-imx-gpt.c @@ -434,12 +434,16 @@ return -ENOMEM; imxtm->base = of_iomap(np, 0); - if (!imxtm->base) - return -ENXIO; + if (!imxtm->base) { + ret = -ENXIO; + goto err_kfree; + } imxtm->irq = irq_of_parse_and_map(np, 0); - if (imxtm->irq <= 0) - return -EINVAL; + if (imxtm->irq <= 0) { + ret = -EINVAL; + goto err_kfree; + } imxtm->clk_ipg = of_clk_get_by_name(np, "ipg"); @@ -452,11 +456,15 @@ ret = _mxc_timer_init(imxtm); if (ret) - return ret; + goto err_kfree; initialized = 1; return 0; + +err_kfree: + kfree(imxtm); + return ret; } static int __init imx1_timer_init_dt(struct device_node *np) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/clocksource/timer-ti-dm.c +++ linux-riscv-6.5.0/drivers/clocksource/timer-ti-dm.c @@ -141,6 +141,8 @@ struct platform_device *pdev; struct list_head node; struct notifier_block nb; + struct notifier_block fclk_nb; + unsigned long fclk_rate; }; static u32 omap_reserved_systimers; @@ -254,8 +256,7 @@ timer->posted = OMAP_TIMER_POSTED; } -static inline void __omap_dm_timer_stop(struct dmtimer *timer, - unsigned long rate) +static inline void __omap_dm_timer_stop(struct dmtimer *timer) { u32 l; @@ -270,7 +271,7 @@ * Wait for functional clock period x 3.5 to make sure that * timer is stopped */ - udelay(3500000 / rate + 1); + udelay(3500000 / timer->fclk_rate + 1); #endif } @@ -349,6 +350,21 @@ return NOTIFY_OK; } +static int omap_timer_fclk_notifier(struct notifier_block *nb, + unsigned long event, void *data) +{ + struct clk_notifier_data *clk_data = data; + struct dmtimer *timer = container_of(nb, struct dmtimer, fclk_nb); + + switch (event) { + case POST_RATE_CHANGE: + timer->fclk_rate = clk_data->new_rate; + return NOTIFY_OK; + default: + return NOTIFY_DONE; + } +} + static int omap_dm_timer_reset(struct dmtimer *timer) { u32 l, timeout = 100000; @@ -755,7 +771,6 @@ { struct dmtimer *timer; struct device *dev; - unsigned long rate = 0; timer = to_dmtimer(cookie); if (unlikely(!timer)) @@ -763,10 +778,7 @@ dev = &timer->pdev->dev; - if (!timer->omap1) - rate = clk_get_rate(timer->fclk); - - __omap_dm_timer_stop(timer, rate); + __omap_dm_timer_stop(timer); pm_runtime_put_sync(dev); @@ -1125,6 +1137,14 @@ timer->fclk = devm_clk_get(dev, "fck"); if (IS_ERR(timer->fclk)) return PTR_ERR(timer->fclk); + + timer->fclk_nb.notifier_call = omap_timer_fclk_notifier; + ret = devm_clk_notifier_register(dev, timer->fclk, + &timer->fclk_nb); + if (ret) + return ret; + + timer->fclk_rate = clk_get_rate(timer->fclk); } else { timer->fclk = ERR_PTR(-ENODEV); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/cpufreq/amd-pstate.c +++ linux-riscv-6.5.0/drivers/cpufreq/amd-pstate.c @@ -307,11 +307,11 @@ highest_perf = AMD_CPPC_HIGHEST_PERF(cap1); WRITE_ONCE(cpudata->highest_perf, highest_perf); - + WRITE_ONCE(cpudata->max_limit_perf, highest_perf); WRITE_ONCE(cpudata->nominal_perf, AMD_CPPC_NOMINAL_PERF(cap1)); WRITE_ONCE(cpudata->lowest_nonlinear_perf, AMD_CPPC_LOWNONLIN_PERF(cap1)); WRITE_ONCE(cpudata->lowest_perf, AMD_CPPC_LOWEST_PERF(cap1)); - + WRITE_ONCE(cpudata->min_limit_perf, AMD_CPPC_LOWEST_PERF(cap1)); return 0; } @@ -329,11 +329,12 @@ highest_perf = cppc_perf.highest_perf; WRITE_ONCE(cpudata->highest_perf, highest_perf); - + WRITE_ONCE(cpudata->max_limit_perf, highest_perf); WRITE_ONCE(cpudata->nominal_perf, cppc_perf.nominal_perf); WRITE_ONCE(cpudata->lowest_nonlinear_perf, cppc_perf.lowest_nonlinear_perf); WRITE_ONCE(cpudata->lowest_perf, cppc_perf.lowest_perf); + WRITE_ONCE(cpudata->min_limit_perf, cppc_perf.lowest_perf); if (cppc_state == AMD_PSTATE_ACTIVE) return 0; @@ -432,6 +433,10 @@ u64 prev = READ_ONCE(cpudata->cppc_req_cached); u64 value = prev; + min_perf = clamp_t(unsigned long, min_perf, cpudata->min_limit_perf, + cpudata->max_limit_perf); + max_perf = clamp_t(unsigned long, max_perf, cpudata->min_limit_perf, + cpudata->max_limit_perf); des_perf = clamp_t(unsigned long, des_perf, min_perf, max_perf); if ((cppc_state == AMD_PSTATE_GUIDED) && (gov_flags & CPUFREQ_GOV_DYNAMIC_SWITCHING)) { @@ -470,6 +475,22 @@ return 0; } +static int amd_pstate_update_min_max_limit(struct cpufreq_policy *policy) +{ + u32 max_limit_perf, min_limit_perf; + struct amd_cpudata *cpudata = policy->driver_data; + + max_limit_perf = div_u64(policy->max * cpudata->highest_perf, cpudata->max_freq); + min_limit_perf = div_u64(policy->min * cpudata->highest_perf, cpudata->max_freq); + + WRITE_ONCE(cpudata->max_limit_perf, max_limit_perf); + WRITE_ONCE(cpudata->min_limit_perf, min_limit_perf); + WRITE_ONCE(cpudata->max_limit_freq, policy->max); + WRITE_ONCE(cpudata->min_limit_freq, policy->min); + + return 0; +} + static int amd_pstate_update_freq(struct cpufreq_policy *policy, unsigned int target_freq, bool fast_switch) { @@ -480,6 +501,9 @@ if (!cpudata->max_freq) return -ENODEV; + if (policy->min != cpudata->min_limit_freq || policy->max != cpudata->max_limit_freq) + amd_pstate_update_min_max_limit(policy); + cap_perf = READ_ONCE(cpudata->highest_perf); min_perf = READ_ONCE(cpudata->lowest_perf); max_perf = cap_perf; @@ -518,7 +542,9 @@ static unsigned int amd_pstate_fast_switch(struct cpufreq_policy *policy, unsigned int target_freq) { - return amd_pstate_update_freq(policy, target_freq, true); + if (!amd_pstate_update_freq(policy, target_freq, true)) + return target_freq; + return policy->cur; } static void amd_pstate_adjust_perf(unsigned int cpu, @@ -532,6 +558,10 @@ struct amd_cpudata *cpudata = policy->driver_data; unsigned int target_freq; + if (policy->min != cpudata->min_limit_freq || policy->max != cpudata->max_limit_freq) + amd_pstate_update_min_max_limit(policy); + + cap_perf = READ_ONCE(cpudata->highest_perf); lowest_nonlinear_perf = READ_ONCE(cpudata->lowest_nonlinear_perf); max_freq = READ_ONCE(cpudata->max_freq); @@ -745,6 +775,8 @@ /* Initial processor data capability frequencies */ cpudata->max_freq = max_freq; cpudata->min_freq = min_freq; + cpudata->max_limit_freq = max_freq; + cpudata->min_limit_freq = min_freq; cpudata->nominal_freq = nominal_freq; cpudata->lowest_nonlinear_freq = lowest_nonlinear_freq; @@ -850,11 +882,16 @@ { int i = 0; int offset = 0; + struct amd_cpudata *cpudata = policy->driver_data; + + if (cpudata->policy == CPUFREQ_POLICY_PERFORMANCE) + return sysfs_emit_at(buf, offset, "%s\n", + energy_perf_strings[EPP_INDEX_PERFORMANCE]); while (energy_perf_strings[i] != NULL) offset += sysfs_emit_at(buf, offset, "%s ", energy_perf_strings[i++]); - sysfs_emit_at(buf, offset, "\n"); + offset += sysfs_emit_at(buf, offset, "\n"); return offset; } @@ -1183,16 +1220,25 @@ return 0; } -static void amd_pstate_epp_init(unsigned int cpu) +static void amd_pstate_epp_update_limit(struct cpufreq_policy *policy) { - struct cpufreq_policy *policy = cpufreq_cpu_get(cpu); struct amd_cpudata *cpudata = policy->driver_data; - u32 max_perf, min_perf; + u32 max_perf, min_perf, min_limit_perf, max_limit_perf; u64 value; s16 epp; max_perf = READ_ONCE(cpudata->highest_perf); min_perf = READ_ONCE(cpudata->lowest_perf); + max_limit_perf = div_u64(policy->max * cpudata->highest_perf, cpudata->max_freq); + min_limit_perf = div_u64(policy->min * cpudata->highest_perf, cpudata->max_freq); + + max_perf = clamp_t(unsigned long, max_perf, cpudata->min_limit_perf, + cpudata->max_limit_perf); + min_perf = clamp_t(unsigned long, min_perf, cpudata->min_limit_perf, + cpudata->max_limit_perf); + + WRITE_ONCE(cpudata->max_limit_perf, max_limit_perf); + WRITE_ONCE(cpudata->min_limit_perf, min_limit_perf); value = READ_ONCE(cpudata->cppc_req_cached); @@ -1210,9 +1256,6 @@ value &= ~AMD_CPPC_DES_PERF(~0L); value |= AMD_CPPC_DES_PERF(0); - if (cpudata->epp_policy == cpudata->policy) - goto skip_epp; - cpudata->epp_policy = cpudata->policy; /* Get BIOS pre-defined epp value */ @@ -1222,7 +1265,7 @@ * This return value can only be negative for shared_memory * systems where EPP register read/write not supported. */ - goto skip_epp; + return; } if (cpudata->policy == CPUFREQ_POLICY_PERFORMANCE) @@ -1236,8 +1279,6 @@ WRITE_ONCE(cpudata->cppc_req_cached, value); amd_pstate_set_epp(cpudata, epp); -skip_epp: - cpufreq_cpu_put(policy); } static int amd_pstate_epp_set_policy(struct cpufreq_policy *policy) @@ -1252,7 +1293,7 @@ cpudata->policy = policy->policy; - amd_pstate_epp_init(policy->cpu); + amd_pstate_epp_update_limit(policy); return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/cpufreq/cpufreq_stats.c +++ linux-riscv-6.5.0/drivers/cpufreq/cpufreq_stats.c @@ -131,23 +131,23 @@ len += sysfs_emit_at(buf, len, " From : To\n"); len += sysfs_emit_at(buf, len, " : "); for (i = 0; i < stats->state_num; i++) { - if (len >= PAGE_SIZE) + if (len >= PAGE_SIZE - 1) break; len += sysfs_emit_at(buf, len, "%9u ", stats->freq_table[i]); } - if (len >= PAGE_SIZE) - return PAGE_SIZE; + if (len >= PAGE_SIZE - 1) + return PAGE_SIZE - 1; len += sysfs_emit_at(buf, len, "\n"); for (i = 0; i < stats->state_num; i++) { - if (len >= PAGE_SIZE) + if (len >= PAGE_SIZE - 1) break; len += sysfs_emit_at(buf, len, "%9u: ", stats->freq_table[i]); for (j = 0; j < stats->state_num; j++) { - if (len >= PAGE_SIZE) + if (len >= PAGE_SIZE - 1) break; if (pending) @@ -157,12 +157,12 @@ len += sysfs_emit_at(buf, len, "%9u ", count); } - if (len >= PAGE_SIZE) + if (len >= PAGE_SIZE - 1) break; len += sysfs_emit_at(buf, len, "\n"); } - if (len >= PAGE_SIZE) { + if (len >= PAGE_SIZE - 1) { pr_warn_once("cpufreq transition table exceeds PAGE_SIZE. Disabling\n"); return -EFBIG; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/cpufreq/imx6q-cpufreq.c +++ linux-riscv-6.5.0/drivers/cpufreq/imx6q-cpufreq.c @@ -327,7 +327,7 @@ imx6x_disable_freq_in_opp(dev, 696000000); if (of_machine_is_compatible("fsl,imx6ull")) { - if (val != OCOTP_CFG3_6ULL_SPEED_792MHZ) + if (val < OCOTP_CFG3_6ULL_SPEED_792MHZ) imx6x_disable_freq_in_opp(dev, 792000000); if (val != OCOTP_CFG3_6ULL_SPEED_900MHZ) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/crypto/caam/caamalg.c +++ linux-riscv-6.5.0/drivers/crypto/caam/caamalg.c @@ -572,7 +572,8 @@ if (keylen != CHACHA_KEY_SIZE + saltlen) return -EINVAL; - ctx->cdata.key_virt = key; + memcpy(ctx->key, key, keylen); + ctx->cdata.key_virt = ctx->key; ctx->cdata.keylen = keylen - saltlen; return chachapoly_set_sh_desc(aead); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/crypto/caam/caamalg_qi2.c +++ linux-riscv-6.5.0/drivers/crypto/caam/caamalg_qi2.c @@ -641,7 +641,8 @@ if (keylen != CHACHA_KEY_SIZE + saltlen) return -EINVAL; - ctx->cdata.key_virt = key; + memcpy(ctx->key, key, keylen); + ctx->cdata.key_virt = ctx->key; ctx->cdata.keylen = keylen - saltlen; return chachapoly_set_sh_desc(aead); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/crypto/hisilicon/hpre/hpre_main.c +++ linux-riscv-6.5.0/drivers/crypto/hisilicon/hpre/hpre_main.c @@ -430,8 +430,11 @@ module_param_cb(uacce_mode, &hpre_uacce_mode_ops, &uacce_mode, 0444); MODULE_PARM_DESC(uacce_mode, UACCE_MODE_DESC); +static bool pf_q_num_flag; static int pf_q_num_set(const char *val, const struct kernel_param *kp) { + pf_q_num_flag = true; + return q_num_set(val, kp, PCI_DEVICE_ID_HUAWEI_HPRE_PF); } @@ -1030,7 +1033,7 @@ for (i = 0; i < clusters_num; i++) { ret = snprintf(buf, HPRE_DBGFS_VAL_MAX_LEN, "cluster%d", i); - if (ret < 0) + if (ret >= HPRE_DBGFS_VAL_MAX_LEN) return -EINVAL; tmp_d = debugfs_create_dir(buf, qm->debug.debug_root); @@ -1154,6 +1157,8 @@ qm->qp_num = pf_q_num; qm->debug.curr_qm_qp_num = pf_q_num; qm->qm_list = &hpre_devices; + if (pf_q_num_flag) + set_bit(QM_MODULE_PARAM, &qm->misc_ctl); } ret = hisi_qm_init(qm); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/crypto/hisilicon/qm.c +++ linux-riscv-6.5.0/drivers/crypto/hisilicon/qm.c @@ -204,8 +204,6 @@ #define WAIT_PERIOD 20 #define REMOVE_WAIT_DELAY 10 -#define QM_DRIVER_REMOVING 0 -#define QM_RST_SCHED 1 #define QM_QOS_PARAM_NUM 2 #define QM_QOS_MAX_VAL 1000 #define QM_QOS_RATE 100 @@ -847,6 +845,8 @@ qm_db(qm, qp->qp_id, QM_DOORBELL_CMD_CQ, qp->qp_status.cq_head, 0); atomic_dec(&qp->qp_status.used); + + cond_resched(); } /* set c_flag */ @@ -2814,7 +2814,6 @@ mutex_init(&qm->mailbox_lock); init_rwsem(&qm->qps_lock); qm->qp_in_used = 0; - qm->misc_ctl = false; if (test_bit(QM_SUPPORT_RPM, &qm->caps)) { if (!acpi_device_power_manageable(ACPI_COMPANION(&pdev->dev))) dev_info(&pdev->dev, "_PS0 and _PR0 are not defined"); @@ -5081,6 +5080,7 @@ static int qm_get_qp_num(struct hisi_qm *qm) { + struct device *dev = &qm->pdev->dev; bool is_db_isolation; /* VF's qp_num assigned by PF in v2, and VF can get qp_num by vft. */ @@ -5097,13 +5097,21 @@ qm->max_qp_num = hisi_qm_get_hw_info(qm, qm_basic_info, QM_FUNC_MAX_QP_CAP, is_db_isolation); - /* check if qp number is valid */ - if (qm->qp_num > qm->max_qp_num) { - dev_err(&qm->pdev->dev, "qp num(%u) is more than max qp num(%u)!\n", + if (qm->qp_num <= qm->max_qp_num) + return 0; + + if (test_bit(QM_MODULE_PARAM, &qm->misc_ctl)) { + /* Check whether the set qp number is valid */ + dev_err(dev, "qp num(%u) is more than max qp num(%u)!\n", qm->qp_num, qm->max_qp_num); return -EINVAL; } + dev_info(dev, "Default qp num(%u) is too big, reset it to Function's max qp num(%u)!\n", + qm->qp_num, qm->max_qp_num); + qm->qp_num = qm->max_qp_num; + qm->debug.curr_qm_qp_num = qm->qp_num; + return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/crypto/hisilicon/qm_common.h +++ linux-riscv-6.5.0/drivers/crypto/hisilicon/qm_common.h @@ -4,7 +4,6 @@ #define QM_COMMON_H #define QM_DBG_READ_LEN 256 -#define QM_RESETTING 2 struct qm_cqe { __le32 rsvd0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/crypto/hisilicon/sec2/sec_main.c +++ linux-riscv-6.5.0/drivers/crypto/hisilicon/sec2/sec_main.c @@ -311,8 +311,11 @@ } DEFINE_SHOW_ATTRIBUTE(sec_diff_regs); +static bool pf_q_num_flag; static int sec_pf_q_num_set(const char *val, const struct kernel_param *kp) { + pf_q_num_flag = true; + return q_num_set(val, kp, PCI_DEVICE_ID_HUAWEI_SEC_PF); } @@ -1120,6 +1123,8 @@ qm->qp_num = pf_q_num; qm->debug.curr_qm_qp_num = pf_q_num; qm->qm_list = &sec_devices; + if (pf_q_num_flag) + set_bit(QM_MODULE_PARAM, &qm->misc_ctl); } else if (qm->fun_type == QM_HW_VF && qm->ver == QM_HW_V1) { /* * have no way to get qm configure in VM in v1 hardware, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/crypto/hisilicon/zip/zip_main.c +++ linux-riscv-6.5.0/drivers/crypto/hisilicon/zip/zip_main.c @@ -364,8 +364,11 @@ module_param_cb(uacce_mode, &zip_uacce_mode_ops, &uacce_mode, 0444); MODULE_PARM_DESC(uacce_mode, UACCE_MODE_DESC); +static bool pf_q_num_flag; static int pf_q_num_set(const char *val, const struct kernel_param *kp) { + pf_q_num_flag = true; + return q_num_set(val, kp, PCI_DEVICE_ID_HUAWEI_ZIP_PF); } @@ -1139,6 +1142,8 @@ qm->qp_num = pf_q_num; qm->debug.curr_qm_qp_num = pf_q_num; qm->qm_list = &zip_devices; + if (pf_q_num_flag) + set_bit(QM_MODULE_PARAM, &qm->misc_ctl); } else if (qm->fun_type == QM_HW_VF && qm->ver == QM_HW_V1) { /* * have no way to get qm configure in VM in v1 hardware, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/crypto/intel/qat/qat_common/adf_accel_devices.h +++ linux-riscv-6.5.0/drivers/crypto/intel/qat/qat_common/adf_accel_devices.h @@ -29,7 +29,7 @@ #define ADF_PCI_MAX_BARS 3 #define ADF_DEVICE_NAME_LENGTH 32 #define ADF_ETR_MAX_RINGS_PER_BANK 16 -#define ADF_MAX_MSIX_VECTOR_NAME 16 +#define ADF_MAX_MSIX_VECTOR_NAME 48 #define ADF_DEVICE_NAME_PREFIX "qat_" enum adf_accel_capabilities { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/crypto/intel/qat/qat_common/adf_common_drv.h +++ linux-riscv-6.5.0/drivers/crypto/intel/qat/qat_common/adf_common_drv.h @@ -25,6 +25,8 @@ #define ADF_STATUS_AE_STARTED 6 #define ADF_STATUS_PF_RUNNING 7 #define ADF_STATUS_IRQ_ALLOCATED 8 +#define ADF_STATUS_CRYPTO_ALGS_REGISTERED 9 +#define ADF_STATUS_COMP_ALGS_REGISTERED 10 enum adf_dev_reset_mode { ADF_DEV_RESET_ASYNC = 0, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/crypto/intel/qat/qat_common/adf_init.c +++ linux-riscv-6.5.0/drivers/crypto/intel/qat/qat_common/adf_init.c @@ -209,6 +209,7 @@ clear_bit(ADF_STATUS_STARTED, &accel_dev->status); return -EFAULT; } + set_bit(ADF_STATUS_CRYPTO_ALGS_REGISTERED, &accel_dev->status); if (!list_empty(&accel_dev->compression_list) && qat_comp_algs_register()) { dev_err(&GET_DEV(accel_dev), @@ -217,6 +218,7 @@ clear_bit(ADF_STATUS_STARTED, &accel_dev->status); return -EFAULT; } + set_bit(ADF_STATUS_COMP_ALGS_REGISTERED, &accel_dev->status); adf_dbgfs_add(accel_dev); @@ -249,13 +251,17 @@ clear_bit(ADF_STATUS_STARTING, &accel_dev->status); clear_bit(ADF_STATUS_STARTED, &accel_dev->status); - if (!list_empty(&accel_dev->crypto_list)) { + if (!list_empty(&accel_dev->crypto_list) && + test_bit(ADF_STATUS_CRYPTO_ALGS_REGISTERED, &accel_dev->status)) { qat_algs_unregister(); qat_asym_algs_unregister(); } + clear_bit(ADF_STATUS_CRYPTO_ALGS_REGISTERED, &accel_dev->status); - if (!list_empty(&accel_dev->compression_list)) + if (!list_empty(&accel_dev->compression_list) && + test_bit(ADF_STATUS_COMP_ALGS_REGISTERED, &accel_dev->status)) qat_comp_algs_unregister(); + clear_bit(ADF_STATUS_COMP_ALGS_REGISTERED, &accel_dev->status); list_for_each(list_itr, &service_table) { service = list_entry(list_itr, struct service_hndl, list); @@ -412,13 +418,6 @@ mutex_lock(&accel_dev->state_lock); - if (!adf_dev_started(accel_dev)) { - dev_info(&GET_DEV(accel_dev), "Device qat_dev%d already down\n", - accel_dev->accel_id); - ret = -EINVAL; - goto out; - } - if (reconfig) { ret = adf_dev_shutdown_cache_cfg(accel_dev); goto out; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/crypto/intel/qat/qat_common/adf_sysfs.c +++ linux-riscv-6.5.0/drivers/crypto/intel/qat/qat_common/adf_sysfs.c @@ -52,6 +52,13 @@ case DEV_DOWN: dev_info(dev, "Stopping device qat_dev%d\n", accel_id); + if (!adf_dev_started(accel_dev)) { + dev_info(&GET_DEV(accel_dev), "Device qat_dev%d already down\n", + accel_id); + + break; + } + ret = adf_dev_down(accel_dev, true); if (ret < 0) return -EINVAL; @@ -61,7 +68,9 @@ dev_info(dev, "Starting device qat_dev%d\n", accel_id); ret = adf_dev_up(accel_dev, true); - if (ret < 0) { + if (ret == -EALREADY) { + break; + } else if (ret) { dev_err(dev, "Failed to start device qat_dev%d\n", accel_id); adf_dev_down(accel_dev, true); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/crypto/intel/qat/qat_common/adf_transport_debug.c +++ linux-riscv-6.5.0/drivers/crypto/intel/qat/qat_common/adf_transport_debug.c @@ -90,7 +90,7 @@ int adf_ring_debugfs_add(struct adf_etr_ring_data *ring, const char *name) { struct adf_etr_ring_debug_entry *ring_debug; - char entry_name[8]; + char entry_name[16]; ring_debug = kzalloc(sizeof(*ring_debug), GFP_KERNEL); if (!ring_debug) @@ -192,7 +192,7 @@ { struct adf_accel_dev *accel_dev = bank->accel_dev; struct dentry *parent = accel_dev->transport->debug; - char name[8]; + char name[16]; snprintf(name, sizeof(name), "bank_%02d", bank->bank_number); bank->bank_debug_dir = debugfs_create_dir(name, parent); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/crypto/intel/qat/qat_common/qat_algs_send.c +++ linux-riscv-6.5.0/drivers/crypto/intel/qat/qat_common/qat_algs_send.c @@ -40,40 +40,44 @@ spin_unlock_bh(&backlog->lock); } -static void qat_alg_backlog_req(struct qat_alg_req *req, - struct qat_instance_backlog *backlog) -{ - INIT_LIST_HEAD(&req->list); - - spin_lock_bh(&backlog->lock); - list_add_tail(&req->list, &backlog->list); - spin_unlock_bh(&backlog->lock); -} - -static int qat_alg_send_message_maybacklog(struct qat_alg_req *req) +static bool qat_alg_try_enqueue(struct qat_alg_req *req) { struct qat_instance_backlog *backlog = req->backlog; struct adf_etr_ring_data *tx_ring = req->tx_ring; u32 *fw_req = req->fw_req; - /* If any request is already backlogged, then add to backlog list */ + /* Check if any request is already backlogged */ if (!list_empty(&backlog->list)) - goto enqueue; + return false; - /* If ring is nearly full, then add to backlog list */ + /* Check if ring is nearly full */ if (adf_ring_nearly_full(tx_ring)) - goto enqueue; + return false; - /* If adding request to HW ring fails, then add to backlog list */ + /* Try to enqueue to HW ring */ if (adf_send_message(tx_ring, fw_req)) - goto enqueue; + return false; + + return true; +} + + +static int qat_alg_send_message_maybacklog(struct qat_alg_req *req) +{ + struct qat_instance_backlog *backlog = req->backlog; + int ret = -EINPROGRESS; - return -EINPROGRESS; + if (qat_alg_try_enqueue(req)) + return ret; -enqueue: - qat_alg_backlog_req(req, backlog); + spin_lock_bh(&backlog->lock); + if (!qat_alg_try_enqueue(req)) { + list_add_tail(&req->list, &backlog->list); + ret = -EBUSY; + } + spin_unlock_bh(&backlog->lock); - return -EBUSY; + return ret; } int qat_alg_send_message(struct qat_alg_req *req) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/crypto/virtio/virtio_crypto_common.h +++ linux-riscv-6.5.0/drivers/crypto/virtio/virtio_crypto_common.h @@ -35,6 +35,9 @@ struct virtqueue *ctrl_vq; struct data_queue *data_vq; + /* Work struct for config space updates */ + struct work_struct config_work; + /* To protect the vq operations for the controlq */ spinlock_t ctrl_lock; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/crypto/virtio/virtio_crypto_core.c +++ linux-riscv-6.5.0/drivers/crypto/virtio/virtio_crypto_core.c @@ -335,6 +335,14 @@ virtcrypto_free_queues(vcrypto); } +static void vcrypto_config_changed_work(struct work_struct *work) +{ + struct virtio_crypto *vcrypto = + container_of(work, struct virtio_crypto, config_work); + + virtcrypto_update_status(vcrypto); +} + static int virtcrypto_probe(struct virtio_device *vdev) { int err = -EFAULT; @@ -454,6 +462,8 @@ if (err) goto free_engines; + INIT_WORK(&vcrypto->config_work, vcrypto_config_changed_work); + return 0; free_engines: @@ -490,6 +500,7 @@ dev_info(&vdev->dev, "Start virtcrypto_remove.\n"); + flush_work(&vcrypto->config_work); if (virtcrypto_dev_started(vcrypto)) virtcrypto_dev_stop(vcrypto); virtio_reset_device(vdev); @@ -504,7 +515,7 @@ { struct virtio_crypto *vcrypto = vdev->priv; - virtcrypto_update_status(vcrypto); + schedule_work(&vcrypto->config_work); } #ifdef CONFIG_PM_SLEEP @@ -512,6 +523,7 @@ { struct virtio_crypto *vcrypto = vdev->priv; + flush_work(&vcrypto->config_work); virtio_reset_device(vdev); virtcrypto_free_unused_reqs(vcrypto); if (virtcrypto_dev_started(vcrypto)) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/cxl/core/core.h +++ linux-riscv-6.5.0/drivers/cxl/core/core.h @@ -75,6 +75,7 @@ enum cxl_rcrb which); extern struct rw_semaphore cxl_dpa_rwsem; +extern struct rw_semaphore cxl_region_rwsem; int cxl_memdev_init(void); void cxl_memdev_exit(void); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/cxl/core/hdm.c +++ linux-riscv-6.5.0/drivers/cxl/core/hdm.c @@ -85,7 +85,7 @@ struct cxl_component_regs *regs) { struct cxl_register_map map = { - .dev = &port->dev, + .host = &port->dev, .resource = port->component_reg_phys, .base = crb, .max_size = CXL_COMPONENT_REG_BLOCK_SIZE, @@ -575,17 +575,11 @@ CXL_HDM_DECODER0_CTRL_HOSTONLY); } -static int cxlsd_set_targets(struct cxl_switch_decoder *cxlsd, u64 *tgt) +static void cxlsd_set_targets(struct cxl_switch_decoder *cxlsd, u64 *tgt) { struct cxl_dport **t = &cxlsd->target[0]; int ways = cxlsd->cxld.interleave_ways; - if (dev_WARN_ONCE(&cxlsd->cxld.dev, - ways > 8 || ways > cxlsd->nr_targets, - "ways: %d overflows targets: %d\n", ways, - cxlsd->nr_targets)) - return -ENXIO; - *tgt = FIELD_PREP(GENMASK(7, 0), t[0]->port_id); if (ways > 1) *tgt |= FIELD_PREP(GENMASK(15, 8), t[1]->port_id); @@ -601,8 +595,6 @@ *tgt |= FIELD_PREP(GENMASK_ULL(55, 48), t[6]->port_id); if (ways > 7) *tgt |= FIELD_PREP(GENMASK_ULL(63, 56), t[7]->port_id); - - return 0; } /* @@ -650,6 +642,25 @@ return -EBUSY; } + /* + * For endpoint decoders hosted on CXL memory devices that + * support the sanitize operation, make sure sanitize is not in-flight. + */ + if (is_endpoint_decoder(&cxld->dev)) { + struct cxl_endpoint_decoder *cxled = + to_cxl_endpoint_decoder(&cxld->dev); + struct cxl_memdev *cxlmd = cxled_to_memdev(cxled); + struct cxl_memdev_state *mds = + to_cxl_memdev_state(cxlmd->cxlds); + + if (mds && mds->security.sanitize_active) { + dev_dbg(&cxlmd->dev, + "attempted to commit %s during sanitize\n", + dev_name(&cxld->dev)); + return -EBUSY; + } + } + down_read(&cxl_dpa_rwsem); /* common decoder settings */ ctrl = readl(hdm + CXL_HDM_DECODER0_CTRL_OFFSET(cxld->id)); @@ -670,13 +681,7 @@ void __iomem *tl_lo = hdm + CXL_HDM_DECODER0_TL_LOW(id); u64 targets; - rc = cxlsd_set_targets(cxlsd, &targets); - if (rc) { - dev_dbg(&port->dev, "%s: target configuration error\n", - dev_name(&cxld->dev)); - goto err; - } - + cxlsd_set_targets(cxlsd, &targets); writel(upper_32_bits(targets), tl_hi); writel(lower_32_bits(targets), tl_lo); } else { @@ -694,7 +699,6 @@ port->commit_end++; rc = cxld_await_commit(hdm, cxld->id); -err: if (rc) { dev_dbg(&port->dev, "%s: error %d committing decoder\n", dev_name(&cxld->dev), rc); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/cxl/core/memdev.c +++ linux-riscv-6.5.0/drivers/cxl/core/memdev.c @@ -125,13 +125,16 @@ struct cxl_memdev *cxlmd = to_cxl_memdev(dev); struct cxl_dev_state *cxlds = cxlmd->cxlds; struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlds); - u64 reg = readq(cxlds->regs.mbox + CXLDEV_MBOX_BG_CMD_STATUS_OFFSET); - u32 pct = FIELD_GET(CXLDEV_MBOX_BG_CMD_COMMAND_PCT_MASK, reg); - u16 cmd = FIELD_GET(CXLDEV_MBOX_BG_CMD_COMMAND_OPCODE_MASK, reg); unsigned long state = mds->security.state; + int rc = 0; - if (cmd == CXL_MBOX_OP_SANITIZE && pct != 100) - return sysfs_emit(buf, "sanitize\n"); + /* sync with latest submission state */ + mutex_lock(&mds->mbox_mutex); + if (mds->security.sanitize_active) + rc = sysfs_emit(buf, "sanitize\n"); + mutex_unlock(&mds->mbox_mutex); + if (rc) + return rc; if (!(state & CXL_PMEM_SEC_STATE_USER_PASS_SET)) return sysfs_emit(buf, "disabled\n"); @@ -152,24 +155,17 @@ const char *buf, size_t len) { struct cxl_memdev *cxlmd = to_cxl_memdev(dev); - struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds); - struct cxl_port *port = cxlmd->endpoint; bool sanitize; ssize_t rc; if (kstrtobool(buf, &sanitize) || !sanitize) return -EINVAL; - if (!port || !is_cxl_endpoint(port)) - return -EINVAL; - - /* ensure no regions are mapped to this memdev */ - if (port->commit_end != -1) - return -EBUSY; - - rc = cxl_mem_sanitize(mds, CXL_MBOX_OP_SANITIZE); + rc = cxl_mem_sanitize(cxlmd, CXL_MBOX_OP_SANITIZE); + if (rc) + return rc; - return rc ? rc : len; + return len; } static struct device_attribute dev_attr_security_sanitize = __ATTR(sanitize, 0200, NULL, security_sanitize_store); @@ -179,24 +175,17 @@ const char *buf, size_t len) { struct cxl_memdev *cxlmd = to_cxl_memdev(dev); - struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds); - struct cxl_port *port = cxlmd->endpoint; ssize_t rc; bool erase; if (kstrtobool(buf, &erase) || !erase) return -EINVAL; - if (!port || !is_cxl_endpoint(port)) - return -EINVAL; - - /* ensure no regions are mapped to this memdev */ - if (port->commit_end != -1) - return -EBUSY; - - rc = cxl_mem_sanitize(mds, CXL_MBOX_OP_SECURE_ERASE); + rc = cxl_mem_sanitize(cxlmd, CXL_MBOX_OP_SECURE_ERASE); + if (rc) + return rc; - return rc ? rc : len; + return len; } static struct device_attribute dev_attr_security_erase = __ATTR(erase, 0200, NULL, security_erase_store); @@ -556,21 +545,11 @@ } EXPORT_SYMBOL_NS_GPL(clear_exclusive_cxl_commands, CXL); -static void cxl_memdev_security_shutdown(struct device *dev) -{ - struct cxl_memdev *cxlmd = to_cxl_memdev(dev); - struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds); - - if (mds->security.poll) - cancel_delayed_work_sync(&mds->security.poll_dwork); -} - static void cxl_memdev_shutdown(struct device *dev) { struct cxl_memdev *cxlmd = to_cxl_memdev(dev); down_write(&cxl_memdev_rwsem); - cxl_memdev_security_shutdown(dev); cxlmd->cxlds = NULL; up_write(&cxl_memdev_rwsem); } @@ -580,8 +559,8 @@ struct cxl_memdev *cxlmd = _cxlmd; struct device *dev = &cxlmd->dev; - cxl_memdev_shutdown(dev); cdev_device_del(&cxlmd->cdev, dev); + cxl_memdev_shutdown(dev); put_device(dev); } @@ -961,17 +940,16 @@ .cleanup = cxl_fw_cleanup, }; -static void devm_cxl_remove_fw_upload(void *fwl) +static void cxl_remove_fw_upload(void *fwl) { firmware_upload_unregister(fwl); } -int cxl_memdev_setup_fw_upload(struct cxl_memdev_state *mds) +int devm_cxl_setup_fw_upload(struct device *host, struct cxl_memdev_state *mds) { struct cxl_dev_state *cxlds = &mds->cxlds; struct device *dev = &cxlds->cxlmd->dev; struct fw_upload *fwl; - int rc; if (!test_bit(CXL_MEM_COMMAND_ID_GET_FW_INFO, mds->enabled_cmds)) return 0; @@ -979,19 +957,10 @@ fwl = firmware_upload_register(THIS_MODULE, dev, dev_name(dev), &cxl_memdev_fw_ops, mds); if (IS_ERR(fwl)) - return dev_err_probe(dev, PTR_ERR(fwl), - "Failed to register firmware loader\n"); - - rc = devm_add_action_or_reset(cxlds->dev, devm_cxl_remove_fw_upload, - fwl); - if (rc) - dev_err(dev, - "Failed to add firmware loader remove action: %d\n", - rc); - - return rc; + return PTR_ERR(fwl); + return devm_add_action_or_reset(host, cxl_remove_fw_upload, fwl); } -EXPORT_SYMBOL_NS_GPL(cxl_memdev_setup_fw_upload, CXL); +EXPORT_SYMBOL_NS_GPL(devm_cxl_setup_fw_upload, CXL); static const struct file_operations cxl_memdev_fops = { .owner = THIS_MODULE, @@ -1002,36 +971,8 @@ .llseek = noop_llseek, }; -static void put_sanitize(void *data) -{ - struct cxl_memdev_state *mds = data; - - sysfs_put(mds->security.sanitize_node); -} - -static int cxl_memdev_security_init(struct cxl_memdev *cxlmd) -{ - struct cxl_dev_state *cxlds = cxlmd->cxlds; - struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlds); - struct device *dev = &cxlmd->dev; - struct kernfs_node *sec; - - sec = sysfs_get_dirent(dev->kobj.sd, "security"); - if (!sec) { - dev_err(dev, "sysfs_get_dirent 'security' failed\n"); - return -ENODEV; - } - mds->security.sanitize_node = sysfs_get_dirent(sec, "state"); - sysfs_put(sec); - if (!mds->security.sanitize_node) { - dev_err(dev, "sysfs_get_dirent 'state' failed\n"); - return -ENODEV; - } - - return devm_add_action_or_reset(cxlds->dev, put_sanitize, mds); - } - -struct cxl_memdev *devm_cxl_add_memdev(struct cxl_dev_state *cxlds) +struct cxl_memdev *devm_cxl_add_memdev(struct device *host, + struct cxl_dev_state *cxlds) { struct cxl_memdev *cxlmd; struct device *dev; @@ -1059,11 +1000,7 @@ if (rc) goto err; - rc = cxl_memdev_security_init(cxlmd); - if (rc) - goto err; - - rc = devm_add_action_or_reset(cxlds->dev, cxl_memdev_unregister, cxlmd); + rc = devm_add_action_or_reset(host, cxl_memdev_unregister, cxlmd); if (rc) return ERR_PTR(rc); return cxlmd; @@ -1079,6 +1016,50 @@ } EXPORT_SYMBOL_NS_GPL(devm_cxl_add_memdev, CXL); +static void sanitize_teardown_notifier(void *data) +{ + struct cxl_memdev_state *mds = data; + struct kernfs_node *state; + + /* + * Prevent new irq triggered invocations of the workqueue and + * flush inflight invocations. + */ + mutex_lock(&mds->mbox_mutex); + state = mds->security.sanitize_node; + mds->security.sanitize_node = NULL; + mutex_unlock(&mds->mbox_mutex); + + cancel_delayed_work_sync(&mds->security.poll_dwork); + sysfs_put(state); +} + +int devm_cxl_sanitize_setup_notifier(struct device *host, + struct cxl_memdev *cxlmd) +{ + struct cxl_dev_state *cxlds = cxlmd->cxlds; + struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlds); + struct kernfs_node *sec; + + if (!test_bit(CXL_SEC_ENABLED_SANITIZE, mds->security.enabled_cmds)) + return 0; + + /* + * Note, the expectation is that @cxlmd would have failed to be + * created if these sysfs_get_dirent calls fail. + */ + sec = sysfs_get_dirent(cxlmd->dev.kobj.sd, "security"); + if (!sec) + return -ENOENT; + mds->security.sanitize_node = sysfs_get_dirent(sec, "state"); + sysfs_put(sec); + if (!mds->security.sanitize_node) + return -ENOENT; + + return devm_add_action_or_reset(host, sanitize_teardown_notifier, mds); +} +EXPORT_SYMBOL_NS_GPL(devm_cxl_sanitize_setup_notifier, CXL); + __init int cxl_memdev_init(void) { dev_t devt; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/cxl/core/regs.c +++ linux-riscv-6.5.0/drivers/cxl/core/regs.c @@ -204,7 +204,7 @@ struct cxl_component_regs *regs, unsigned long map_mask) { - struct device *dev = map->dev; + struct device *host = map->host; struct mapinfo { const struct cxl_reg_map *rmap; void __iomem **addr; @@ -225,7 +225,7 @@ continue; phys_addr = map->resource + mi->rmap->offset; length = mi->rmap->size; - *(mi->addr) = devm_cxl_iomap_block(dev, phys_addr, length); + *(mi->addr) = devm_cxl_iomap_block(host, phys_addr, length); if (!*(mi->addr)) return -ENOMEM; } @@ -237,7 +237,7 @@ int cxl_map_device_regs(const struct cxl_register_map *map, struct cxl_device_regs *regs) { - struct device *dev = map->dev; + struct device *host = map->host; resource_size_t phys_addr = map->resource; struct mapinfo { const struct cxl_reg_map *rmap; @@ -259,7 +259,7 @@ addr = phys_addr + mi->rmap->offset; length = mi->rmap->size; - *(mi->addr) = devm_cxl_iomap_block(dev, addr, length); + *(mi->addr) = devm_cxl_iomap_block(host, addr, length); if (!*(mi->addr)) return -ENOMEM; } @@ -309,7 +309,7 @@ int regloc, i; *map = (struct cxl_register_map) { - .dev = &pdev->dev, + .host = &pdev->dev, .resource = CXL_RESOURCE_NONE, }; @@ -403,15 +403,15 @@ static int cxl_map_regblock(struct cxl_register_map *map) { - struct device *dev = map->dev; + struct device *host = map->host; map->base = ioremap(map->resource, map->max_size); if (!map->base) { - dev_err(dev, "failed to map registers\n"); + dev_err(host, "failed to map registers\n"); return -ENOMEM; } - dev_dbg(dev, "Mapped CXL Memory Device resource %pa\n", &map->resource); + dev_dbg(host, "Mapped CXL Memory Device resource %pa\n", &map->resource); return 0; } @@ -425,28 +425,28 @@ { struct cxl_component_reg_map *comp_map; struct cxl_device_reg_map *dev_map; - struct device *dev = map->dev; + struct device *host = map->host; void __iomem *base = map->base; switch (map->reg_type) { case CXL_REGLOC_RBI_COMPONENT: comp_map = &map->component_map; - cxl_probe_component_regs(dev, base, comp_map); - dev_dbg(dev, "Set up component registers\n"); + cxl_probe_component_regs(host, base, comp_map); + dev_dbg(host, "Set up component registers\n"); break; case CXL_REGLOC_RBI_MEMDEV: dev_map = &map->device_map; - cxl_probe_device_regs(dev, base, dev_map); + cxl_probe_device_regs(host, base, dev_map); if (!dev_map->status.valid || !dev_map->mbox.valid || !dev_map->memdev.valid) { - dev_err(dev, "registers not found: %s%s%s\n", + dev_err(host, "registers not found: %s%s%s\n", !dev_map->status.valid ? "status " : "", !dev_map->mbox.valid ? "mbox " : "", !dev_map->memdev.valid ? "memdev " : ""); return -ENXIO; } - dev_dbg(dev, "Probing device registers...\n"); + dev_dbg(host, "Probing device registers...\n"); break; default: break; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/cxl/cxl.h +++ linux-riscv-6.5.0/drivers/cxl/cxl.h @@ -247,7 +247,7 @@ /** * struct cxl_register_map - DVSEC harvested register block mapping parameters - * @dev: device for devm operations and logging + * @host: device for devm operations and logging * @base: virtual base of the register-block-BAR + @block_offset * @resource: physical resource base of the register block * @max_size: maximum mapping size to perform register search @@ -257,7 +257,7 @@ * @pmu_map: cxl_reg_maps for CXL Performance Monitoring Units */ struct cxl_register_map { - struct device *dev; + struct device *host; void __iomem *base; resource_size_t resource; resource_size_t max_size; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/cxl/cxlmem.h +++ linux-riscv-6.5.0/drivers/cxl/cxlmem.h @@ -84,9 +84,12 @@ return is_cxl_memdev(port->uport_dev); } -struct cxl_memdev *devm_cxl_add_memdev(struct cxl_dev_state *cxlds); +struct cxl_memdev *devm_cxl_add_memdev(struct device *host, + struct cxl_dev_state *cxlds); +int devm_cxl_sanitize_setup_notifier(struct device *host, + struct cxl_memdev *cxlmd); struct cxl_memdev_state; -int cxl_memdev_setup_fw_upload(struct cxl_memdev_state *mds); +int devm_cxl_setup_fw_upload(struct device *host, struct cxl_memdev_state *mds); int devm_cxl_dpa_reserve(struct cxl_endpoint_decoder *cxled, resource_size_t base, resource_size_t len, resource_size_t skipped); @@ -360,16 +363,16 @@ * * @state: state of last security operation * @enabled_cmds: All security commands enabled in the CEL - * @poll: polling for sanitization is enabled, device has no mbox irq support * @poll_tmo_secs: polling timeout + * @sanitize_active: sanitize completion pending * @poll_dwork: polling work item * @sanitize_node: sanitation sysfs file to notify */ struct cxl_security_state { unsigned long state; DECLARE_BITMAP(enabled_cmds, CXL_SEC_ENABLED_MAX); - bool poll; int poll_tmo_secs; + bool sanitize_active; struct delayed_work poll_dwork; struct kernfs_node *sanitize_node; }; @@ -883,7 +886,7 @@ } #endif -int cxl_mem_sanitize(struct cxl_memdev_state *mds, u16 cmd); +int cxl_mem_sanitize(struct cxl_memdev *cxlmd, u16 cmd); struct cxl_hdm { struct cxl_component_regs regs; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/devfreq/event/rockchip-dfi.c +++ linux-riscv-6.5.0/drivers/devfreq/event/rockchip-dfi.c @@ -193,14 +193,15 @@ return dev_err_probe(dev, PTR_ERR(data->clk), "Cannot get the clk pclk_ddr_mon\n"); - /* try to find the optional reference to the pmu syscon */ node = of_parse_phandle(np, "rockchip,pmu", 0); - if (node) { - data->regmap_pmu = syscon_node_to_regmap(node); - of_node_put(node); - if (IS_ERR(data->regmap_pmu)) - return PTR_ERR(data->regmap_pmu); - } + if (!node) + return dev_err_probe(&pdev->dev, -ENODEV, "Can't find pmu_grf registers\n"); + + data->regmap_pmu = syscon_node_to_regmap(node); + of_node_put(node); + if (IS_ERR(data->regmap_pmu)) + return PTR_ERR(data->regmap_pmu); + data->dev = dev; desc = devm_kzalloc(dev, sizeof(*desc), GFP_KERNEL); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/dma-buf/dma-resv.c +++ linux-riscv-6.5.0/drivers/dma-buf/dma-resv.c @@ -301,7 +301,7 @@ dma_resv_list_entry(fobj, i, obj, &old, &old_usage); if ((old->context == fence->context && old_usage >= usage && - dma_fence_is_later(fence, old)) || + dma_fence_is_later_or_same(fence, old)) || dma_fence_is_signaled(old)) { dma_resv_list_set(fobj, i, fence, usage); dma_fence_put(old); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/dma/idxd/Makefile +++ linux-riscv-6.5.0/drivers/dma/idxd/Makefile @@ -1,12 +1,12 @@ ccflags-y += -DDEFAULT_SYMBOL_NAMESPACE=IDXD +obj-$(CONFIG_INTEL_IDXD_BUS) += idxd_bus.o +idxd_bus-y := bus.o + obj-$(CONFIG_INTEL_IDXD) += idxd.o idxd-y := init.o irq.o device.o sysfs.o submit.o dma.o cdev.o debugfs.o idxd-$(CONFIG_INTEL_IDXD_PERFMON) += perfmon.o -obj-$(CONFIG_INTEL_IDXD_BUS) += idxd_bus.o -idxd_bus-y := bus.o - obj-$(CONFIG_INTEL_IDXD_COMPAT) += idxd_compat.o idxd_compat-y := compat.o only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/dma/pxa_dma.c +++ linux-riscv-6.5.0/drivers/dma/pxa_dma.c @@ -722,7 +722,6 @@ dma_addr_t dma; struct pxad_desc_sw *sw_desc = to_pxad_sw_desc(vd); - BUG_ON(sw_desc->nb_desc == 0); for (i = sw_desc->nb_desc - 1; i >= 0; i--) { if (i > 0) dma = sw_desc->hw_desc[i - 1]->ddadr; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/dma/ti/edma.c +++ linux-riscv-6.5.0/drivers/dma/ti/edma.c @@ -2402,7 +2402,7 @@ if (irq < 0 && node) irq = irq_of_parse_and_map(node, 0); - if (irq >= 0) { + if (irq > 0) { irq_name = devm_kasprintf(dev, GFP_KERNEL, "%s_ccint", dev_name(dev)); ret = devm_request_irq(dev, irq, dma_irq_handler, 0, irq_name, @@ -2418,7 +2418,7 @@ if (irq < 0 && node) irq = irq_of_parse_and_map(node, 2); - if (irq >= 0) { + if (irq > 0) { irq_name = devm_kasprintf(dev, GFP_KERNEL, "%s_ccerrint", dev_name(dev)); ret = devm_request_irq(dev, irq, dma_ccerr_handler, 0, irq_name, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/firmware/arm_ffa/bus.c +++ linux-riscv-6.5.0/drivers/firmware/arm_ffa/bus.c @@ -193,6 +193,7 @@ dev->release = ffa_release_device; dev_set_name(&ffa_dev->dev, "arm-ffa-%d", id); + ffa_dev->id = id; ffa_dev->vm_id = vm_id; ffa_dev->ops = ops; uuid_copy(&ffa_dev->uuid, uuid); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/firmware/efi/unaccepted_memory.c +++ linux-riscv-6.5.0/drivers/firmware/efi/unaccepted_memory.c @@ -5,9 +5,17 @@ #include #include -/* Protects unaccepted memory bitmap */ +/* Protects unaccepted memory bitmap and accepting_list */ static DEFINE_SPINLOCK(unaccepted_memory_lock); +struct accept_range { + struct list_head list; + unsigned long start; + unsigned long end; +}; + +static LIST_HEAD(accepting_list); + /* * accept_memory() -- Consult bitmap and accept the memory if needed. * @@ -24,6 +32,7 @@ { struct efi_unaccepted_memory *unaccepted; unsigned long range_start, range_end; + struct accept_range range, *entry; unsigned long flags; u64 unit_size; @@ -78,20 +87,67 @@ if (end > unaccepted->size * unit_size * BITS_PER_BYTE) end = unaccepted->size * unit_size * BITS_PER_BYTE; - range_start = start / unit_size; - + range.start = start / unit_size; + range.end = DIV_ROUND_UP(end, unit_size); +retry: spin_lock_irqsave(&unaccepted_memory_lock, flags); + + /* + * Check if anybody works on accepting the same range of the memory. + * + * The check is done with unit_size granularity. It is crucial to catch + * all accept requests to the same unit_size block, even if they don't + * overlap on physical address level. + */ + list_for_each_entry(entry, &accepting_list, list) { + if (entry->end <= range.start) + continue; + if (entry->start >= range.end) + continue; + + /* + * Somebody else accepting the range. Or at least part of it. + * + * Drop the lock and retry until it is complete. + */ + spin_unlock_irqrestore(&unaccepted_memory_lock, flags); + goto retry; + } + + /* + * Register that the range is about to be accepted. + * Make sure nobody else will accept it. + */ + list_add(&range.list, &accepting_list); + + range_start = range.start; for_each_set_bitrange_from(range_start, range_end, unaccepted->bitmap, - DIV_ROUND_UP(end, unit_size)) { + range.end) { unsigned long phys_start, phys_end; unsigned long len = range_end - range_start; phys_start = range_start * unit_size + unaccepted->phys_base; phys_end = range_end * unit_size + unaccepted->phys_base; + /* + * Keep interrupts disabled until the accept operation is + * complete in order to prevent deadlocks. + * + * Enabling interrupts before calling arch_accept_memory() + * creates an opportunity for an interrupt handler to request + * acceptance for the same memory. The handler will continuously + * spin with interrupts disabled, preventing other task from + * making progress with the acceptance process. + */ + spin_unlock(&unaccepted_memory_lock); + arch_accept_memory(phys_start, phys_end); + + spin_lock(&unaccepted_memory_lock); bitmap_clear(unaccepted->bitmap, range_start, len); } + + list_del(&range.list); spin_unlock_irqrestore(&unaccepted_memory_lock, flags); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/firmware/qcom_scm.c +++ linux-riscv-6.5.0/drivers/firmware/qcom_scm.c @@ -172,6 +172,12 @@ return qcom_scm_convention; /* + * Per the "SMC calling convention specification", the 64-bit calling + * convention can only be used when the client is 64-bit, otherwise + * system will encounter the undefined behaviour. + */ +#if IS_ENABLED(CONFIG_ARM64) + /* * Device isn't required as there is only one argument - no device * needed to dma_map_single to secure world */ @@ -191,6 +197,7 @@ forced = true; goto found; } +#endif probed_convention = SMC_CONVENTION_ARM_32; ret = __scm_smc_call(NULL, &desc, probed_convention, &res, true); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/firmware/tegra/bpmp.c +++ linux-riscv-6.5.0/drivers/firmware/tegra/bpmp.c @@ -314,6 +314,8 @@ return __tegra_bpmp_channel_write(channel, mrq, flags, data, size); } +static int __maybe_unused tegra_bpmp_resume(struct device *dev); + int tegra_bpmp_transfer_atomic(struct tegra_bpmp *bpmp, struct tegra_bpmp_message *msg) { @@ -326,6 +328,14 @@ if (!tegra_bpmp_message_valid(msg)) return -EINVAL; + if (bpmp->suspended) { + /* Reset BPMP IPC channels during resume based on flags passed */ + if (msg->flags & TEGRA_BPMP_MESSAGE_RESET) + tegra_bpmp_resume(bpmp->dev); + else + return -EAGAIN; + } + channel = bpmp->tx_channel; spin_lock(&bpmp->atomic_tx_lock); @@ -365,6 +375,14 @@ if (!tegra_bpmp_message_valid(msg)) return -EINVAL; + if (bpmp->suspended) { + /* Reset BPMP IPC channels during resume based on flags passed */ + if (msg->flags & TEGRA_BPMP_MESSAGE_RESET) + tegra_bpmp_resume(bpmp->dev); + else + return -EAGAIN; + } + channel = tegra_bpmp_write_threaded(bpmp, msg->mrq, msg->tx.data, msg->tx.size); if (IS_ERR(channel)) @@ -797,10 +815,21 @@ return err; } +static int __maybe_unused tegra_bpmp_suspend(struct device *dev) +{ + struct tegra_bpmp *bpmp = dev_get_drvdata(dev); + + bpmp->suspended = true; + + return 0; +} + static int __maybe_unused tegra_bpmp_resume(struct device *dev) { struct tegra_bpmp *bpmp = dev_get_drvdata(dev); + bpmp->suspended = false; + if (bpmp->soc->ops->resume) return bpmp->soc->ops->resume(bpmp); else @@ -808,6 +837,7 @@ } static const struct dev_pm_ops tegra_bpmp_pm_ops = { + .suspend_noirq = tegra_bpmp_suspend, .resume_noirq = tegra_bpmp_resume, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpio/gpio-timberdale.c +++ linux-riscv-6.5.0/drivers/gpio/gpio-timberdale.c @@ -43,9 +43,10 @@ unsigned offset, bool enabled) { struct timbgpio *tgpio = gpiochip_get_data(gpio); + unsigned long flags; u32 reg; - spin_lock(&tgpio->lock); + spin_lock_irqsave(&tgpio->lock, flags); reg = ioread32(tgpio->membase + offset); if (enabled) @@ -54,7 +55,7 @@ reg &= ~(1 << index); iowrite32(reg, tgpio->membase + offset); - spin_unlock(&tgpio->lock); + spin_unlock_irqrestore(&tgpio->lock, flags); return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpio/gpio-vf610.c +++ linux-riscv-6.5.0/drivers/gpio/gpio-vf610.c @@ -127,14 +127,14 @@ unsigned long mask = BIT(gpio); u32 val; + vf610_gpio_set(chip, gpio, value); + if (port->sdata && port->sdata->have_paddr) { val = vf610_gpio_readl(port->gpio_base + GPIO_PDDR); val |= mask; vf610_gpio_writel(val, port->gpio_base + GPIO_PDDR); } - vf610_gpio_set(chip, gpio, value); - return pinctrl_gpio_direction_output(chip->base + gpio); } @@ -247,7 +247,8 @@ .irq_unmask = vf610_gpio_irq_unmask, .irq_set_type = vf610_gpio_irq_set_type, .irq_set_wake = vf610_gpio_irq_set_wake, - .flags = IRQCHIP_IMMUTABLE, + .flags = IRQCHIP_IMMUTABLE | IRQCHIP_MASK_ON_SUSPEND + | IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND, GPIOCHIP_IRQ_RESOURCE_HELPERS, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpio/gpiolib-acpi.c +++ linux-riscv-6.5.0/drivers/gpio/gpiolib-acpi.c @@ -951,6 +951,7 @@ if (!propname) return ERR_PTR(-EINVAL); + memset(&lookup, 0, sizeof(lookup)); lookup.index = index; ret = acpi_gpio_property_lookup(fwnode, propname, index, &lookup); @@ -1654,6 +1655,26 @@ .ignore_wake = "SYNA1202:00@16", }, }, + { + /* + * On the Peaq C1010 2-in-1 INT33FC:00 pin 3 is connected to + * a "dolby" button. At the ACPI level an _AEI event-handler + * is connected which sets an ACPI variable to 1 on both + * edges. This variable can be polled + cleared to 0 using + * WMI. But since the variable is set on both edges the WMI + * interface is pretty useless even when polling. + * So instead the x86-android-tablets code instantiates + * a gpio-keys platform device for it. + * Ignore the _AEI handler for the pin, so that it is not busy. + */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "PEAQ"), + DMI_MATCH(DMI_PRODUCT_NAME, "PEAQ PMM C1010 MD99187"), + }, + .driver_data = &(struct acpi_gpiolib_dmi_quirk) { + .ignore_interrupt = "INT33FC:00@3", + }, + }, {} /* Terminating entry */ }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpio/gpiolib-of.c +++ linux-riscv-6.5.0/drivers/gpio/gpiolib-of.c @@ -496,6 +496,10 @@ #if IS_ENABLED(CONFIG_SND_SOC_CS42L56) { "reset", "cirrus,gpio-nreset", "cirrus,cs42l56" }, #endif +#if IS_ENABLED(CONFIG_SND_SOC_MT2701_CS42448) + { "i2s1-in-sel-gpio1", NULL, "mediatek,mt2701-cs42448-machine" }, + { "i2s1-in-sel-gpio2", NULL, "mediatek,mt2701-cs42448-machine" }, +#endif #if IS_ENABLED(CONFIG_SND_SOC_TLV320AIC3X) { "reset", "gpio-reset", "ti,tlv320aic3x" }, { "reset", "gpio-reset", "ti,tlv320aic33" }, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpio/gpiolib-sysfs.c +++ linux-riscv-6.5.0/drivers/gpio/gpiolib-sysfs.c @@ -474,14 +474,17 @@ goto done; status = gpiod_set_transitory(desc, false); - if (!status) { - status = gpiod_export(desc, true); - if (status < 0) - gpiod_free(desc); - else - set_bit(FLAG_SYSFS, &desc->flags); + if (status) { + gpiod_free(desc); + goto done; } + status = gpiod_export(desc, true); + if (status < 0) + gpiod_free(desc); + else + set_bit(FLAG_SYSFS, &desc->flags); + done: if (status) pr_debug("%s: status %d\n", __func__, status); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c @@ -29,6 +29,7 @@ #include "amdgpu.h" #include "atom.h" +#include #include #include #include @@ -287,6 +288,10 @@ if (adev->flags & AMD_IS_APU) return false; + /* ATRM is for on-platform devices only */ + if (dev_is_removable(&adev->pdev->dev)) + return false; + while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, pdev)) != NULL) { dhandle = ACPI_HANDLE(&pdev->dev); if (!dhandle) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c @@ -179,6 +179,7 @@ } rcu_read_unlock(); + *result = NULL; return -ENOENT; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c @@ -47,7 +47,6 @@ bool amdgpu_ctx_priority_is_valid(int32_t ctx_prio) { switch (ctx_prio) { - case AMDGPU_CTX_PRIORITY_UNSET: case AMDGPU_CTX_PRIORITY_VERY_LOW: case AMDGPU_CTX_PRIORITY_LOW: case AMDGPU_CTX_PRIORITY_NORMAL: @@ -55,6 +54,7 @@ case AMDGPU_CTX_PRIORITY_VERY_HIGH: return true; default: + case AMDGPU_CTX_PRIORITY_UNSET: return false; } } @@ -64,7 +64,8 @@ { switch (ctx_prio) { case AMDGPU_CTX_PRIORITY_UNSET: - return DRM_SCHED_PRIORITY_UNSET; + pr_warn_once("AMD-->DRM context priority value UNSET-->NORMAL"); + return DRM_SCHED_PRIORITY_NORMAL; case AMDGPU_CTX_PRIORITY_VERY_LOW: return DRM_SCHED_PRIORITY_MIN; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c @@ -747,6 +747,9 @@ ssize_t result = 0; int r; + if (!adev->smc_rreg) + return -EPERM; + if (size & 0x3 || *pos & 0x3) return -EINVAL; @@ -803,6 +806,9 @@ ssize_t result = 0; int r; + if (!adev->smc_wreg) + return -EPERM; + if (size & 0x3 || *pos & 0x3) return -EINVAL; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c @@ -92,6 +92,7 @@ MODULE_FIRMWARE(FIRMWARE_IP_DISCOVERY); #define mmRCC_CONFIG_MEMSIZE 0xde3 +#define mmMP0_SMN_C2PMSG_33 0x16061 #define mmMM_INDEX 0x0 #define mmMM_INDEX_HI 0x6 #define mmMM_DATA 0x1 @@ -230,8 +231,26 @@ static int amdgpu_discovery_read_binary_from_mem(struct amdgpu_device *adev, uint8_t *binary) { - uint64_t vram_size = (uint64_t)RREG32(mmRCC_CONFIG_MEMSIZE) << 20; - int ret = 0; + uint64_t vram_size; + u32 msg; + int i, ret = 0; + + /* It can take up to a second for IFWI init to complete on some dGPUs, + * but generally it should be in the 60-100ms range. Normally this starts + * as soon as the device gets power so by the time the OS loads this has long + * completed. However, when a card is hotplugged via e.g., USB4, we need to + * wait for this to complete. Once the C2PMSG is updated, we can + * continue. + */ + if (dev_is_removable(&adev->pdev->dev)) { + for (i = 0; i < 1000; i++) { + msg = RREG32(mmMP0_SMN_C2PMSG_33); + if (msg & 0x80000000) + break; + msleep(1); + } + } + vram_size = (uint64_t)RREG32(mmRCC_CONFIG_MEMSIZE) << 20; if (vram_size) { uint64_t pos = vram_size - DISCOVERY_TMR_OFFSET; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c @@ -403,7 +403,10 @@ continue; } - r = amdgpu_vm_clear_freed(adev, vm, NULL); + /* Reserve fences for two SDMA page table updates */ + r = dma_resv_reserve_fences(resv, 2); + if (!r) + r = amdgpu_vm_clear_freed(adev, vm, NULL); if (!r) r = amdgpu_vm_handle_moved(adev, vm); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c @@ -383,9 +383,11 @@ struct amdgpu_ring *ring = &kiq->ring; u32 domain = AMDGPU_GEM_DOMAIN_GTT; +#if !defined(CONFIG_ARM) && !defined(CONFIG_ARM64) /* Only enable on gfx10 and 11 for now to avoid changing behavior on older chips */ if (adev->ip_versions[GC_HWIP][0] >= IP_VERSION(10, 0, 0)) domain |= AMDGPU_GEM_DOMAIN_VRAM; +#endif /* create MQD for KIQ */ if (!adev->enable_mes_kiq && !ring->mqd_obj) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c @@ -627,8 +627,20 @@ mqd_prop.hqd_queue_priority = p->hqd_queue_priority; mqd_prop.hqd_active = false; + if (p->queue_type == AMDGPU_RING_TYPE_GFX || + p->queue_type == AMDGPU_RING_TYPE_COMPUTE) { + mutex_lock(&adev->srbm_mutex); + amdgpu_gfx_select_me_pipe_q(adev, p->ring->me, p->ring->pipe, 0, 0, 0); + } + mqd_mgr->init_mqd(adev, q->mqd_cpu_ptr, &mqd_prop); + if (p->queue_type == AMDGPU_RING_TYPE_GFX || + p->queue_type == AMDGPU_RING_TYPE_COMPUTE) { + amdgpu_gfx_select_me_pipe_q(adev, 0, 0, 0, 0, 0); + mutex_unlock(&adev->srbm_mutex); + } + amdgpu_bo_unreserve(q->mqd_obj); } @@ -1062,9 +1074,13 @@ switch (queue_type) { case AMDGPU_RING_TYPE_GFX: ring->funcs = adev->gfx.gfx_ring[0].funcs; + ring->me = adev->gfx.gfx_ring[0].me; + ring->pipe = adev->gfx.gfx_ring[0].pipe; break; case AMDGPU_RING_TYPE_COMPUTE: ring->funcs = adev->gfx.compute_ring[0].funcs; + ring->me = adev->gfx.compute_ring[0].me; + ring->pipe = adev->gfx.compute_ring[0].pipe; break; case AMDGPU_RING_TYPE_SDMA: ring->funcs = adev->sdma.instance[0].ring.funcs; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c @@ -2084,6 +2084,17 @@ } /* SECUREDISPLAY end */ +int amdgpu_psp_wait_for_bootloader(struct amdgpu_device *adev) +{ + struct psp_context *psp = &adev->psp; + int ret = 0; + + if (!amdgpu_sriov_vf(adev) && psp->funcs && psp->funcs->wait_for_bootloader != NULL) + ret = psp->funcs->wait_for_bootloader(psp); + + return ret; +} + static int psp_hw_start(struct psp_context *psp) { struct amdgpu_device *adev = psp->adev; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c @@ -158,6 +158,7 @@ case IP_VERSION(11, 0, 7): /* Sienna cichlid */ case IP_VERSION(13, 0, 0): case IP_VERSION(13, 0, 2): /* Aldebaran */ + case IP_VERSION(13, 0, 6): case IP_VERSION(13, 0, 10): return true; default: @@ -212,6 +213,13 @@ control->i2c_address = EEPROM_I2C_MADDR_0; return true; case IP_VERSION(13, 0, 0): + if (strnstr(atom_ctx->vbios_pn, "D707", + sizeof(atom_ctx->vbios_pn))) + control->i2c_address = EEPROM_I2C_MADDR_0; + else + control->i2c_address = EEPROM_I2C_MADDR_4; + return true; + case IP_VERSION(13, 0, 6): case IP_VERSION(13, 0, 10): control->i2c_address = EEPROM_I2C_MADDR_4; return true; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c @@ -292,8 +292,15 @@ void *ptr; int i, idx; + bool in_ras_intr = amdgpu_ras_intr_triggered(); + cancel_delayed_work_sync(&adev->vcn.idle_work); + /* err_event_athub will corrupt VCPU buffer, so we need to + * restore fw data and clear buffer in amdgpu_vcn_resume() */ + if (in_ras_intr) + return 0; + for (i = 0; i < adev->vcn.num_vcn_inst; ++i) { if (adev->vcn.harvest_config & (1 << i)) continue; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c @@ -239,6 +239,8 @@ for (i = 0; i < ARRAY_SIZE(common_modes); i++) { mode = drm_cvt_mode(dev, common_modes[i].w, common_modes[i].h, 60, false, false, false); + if (!mode) + continue; drm_mode_probed_add(connector, mode); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c @@ -1094,12 +1094,13 @@ struct drm_gem_object *gobj = dma_buf->priv; struct amdgpu_bo *abo = gem_to_amdgpu_bo(gobj); - if (abo->tbo.resource->mem_type == TTM_PL_VRAM) + if (abo->tbo.resource && + abo->tbo.resource->mem_type == TTM_PL_VRAM) bo = gem_to_amdgpu_bo(gobj); } mem = bo->tbo.resource; - if (mem->mem_type == TTM_PL_TT || - mem->mem_type == AMDGPU_PL_PREEMPT) + if (mem && (mem->mem_type == TTM_PL_TT || + mem->mem_type == AMDGPU_PL_PREEMPT)) pages_addr = bo->tbo.ttm->dma_address; } @@ -2128,7 +2129,8 @@ * Returns: * 0 for success, error for failure. */ -int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm, int32_t xcp_id) +int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm, + int32_t xcp_id) { struct amdgpu_bo *root_bo; struct amdgpu_bo_vm *root; @@ -2147,6 +2149,7 @@ INIT_LIST_HEAD(&vm->done); INIT_LIST_HEAD(&vm->pt_freed); INIT_WORK(&vm->pt_free_work, amdgpu_vm_pt_free_work); + INIT_KFIFO(vm->faults); r = amdgpu_vm_init_entities(adev, vm); if (r) @@ -2181,34 +2184,33 @@ false, &root, xcp_id); if (r) goto error_free_delayed; - root_bo = &root->bo; + + root_bo = amdgpu_bo_ref(&root->bo); r = amdgpu_bo_reserve(root_bo, true); - if (r) - goto error_free_root; + if (r) { + amdgpu_bo_unref(&root->shadow); + amdgpu_bo_unref(&root_bo); + goto error_free_delayed; + } + amdgpu_vm_bo_base_init(&vm->root, vm, root_bo); r = dma_resv_reserve_fences(root_bo->tbo.base.resv, 1); if (r) - goto error_unreserve; - - amdgpu_vm_bo_base_init(&vm->root, vm, root_bo); + goto error_free_root; r = amdgpu_vm_pt_clear(adev, vm, root, false); if (r) - goto error_unreserve; + goto error_free_root; amdgpu_bo_unreserve(vm->root.bo); - - INIT_KFIFO(vm->faults); + amdgpu_bo_unref(&root_bo); return 0; -error_unreserve: - amdgpu_bo_unreserve(vm->root.bo); - error_free_root: - amdgpu_bo_unref(&root->shadow); + amdgpu_vm_pt_free_root(adev, vm); + amdgpu_bo_unreserve(vm->root.bo); amdgpu_bo_unref(&root_bo); - vm->root.bo = NULL; error_free_delayed: dma_fence_put(vm->last_tlb_flush); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c @@ -2211,8 +2211,6 @@ if (adev->ip_versions[GC_HWIP][0] == IP_VERSION(9, 4, 3)) amdgpu_gmc_sysfs_fini(adev); - adev->gmc.num_mem_partitions = 0; - kfree(adev->gmc.mem_partitions); amdgpu_gmc_ras_fini(adev); amdgpu_gem_force_release(adev); @@ -2226,6 +2224,9 @@ amdgpu_bo_free_kernel(&adev->gmc.pdb0_bo, NULL, &adev->gmc.ptr_pdb0); amdgpu_bo_fini(adev); + adev->gmc.num_mem_partitions = 0; + kfree(adev->gmc.mem_partitions); + return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/mmhub_v1_8.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/mmhub_v1_8.c @@ -130,6 +130,9 @@ uint64_t value; int i; + if (amdgpu_sriov_vf(adev)) + return; + inst_mask = adev->aid_mask; for_each_inst(i, inst_mask) { /* Program the AGP BAR */ @@ -139,9 +142,6 @@ WREG32_SOC15(MMHUB, i, regMC_VM_AGP_TOP, adev->gmc.agp_end >> 24); - if (amdgpu_sriov_vf(adev)) - return; - /* Program the system aperture low logical page number. */ WREG32_SOC15(MMHUB, i, regMC_VM_SYSTEM_APERTURE_LOW_ADDR, min(adev->gmc.fb_start, adev->gmc.agp_start) >> 18); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c @@ -28,6 +28,7 @@ #include "nbio/nbio_2_3_offset.h" #include "nbio/nbio_2_3_sh_mask.h" #include +#include #include #define smnPCIE_CONFIG_CNTL 0x11180044 @@ -361,7 +362,7 @@ data |= NAVI10_PCIE__LC_L0S_INACTIVITY_DEFAULT << PCIE_LC_CNTL__LC_L0S_INACTIVITY__SHIFT; - if (pci_is_thunderbolt_attached(adev->pdev)) + if (dev_is_removable(&adev->pdev->dev)) data |= NAVI10_PCIE__LC_L1_INACTIVITY_TBT_DEFAULT << PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT; else data |= NAVI10_PCIE__LC_L1_INACTIVITY_DEFAULT << PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT; @@ -480,7 +481,7 @@ def = data = RREG32_PCIE(smnPCIE_LC_CNTL); data |= NAVI10_PCIE__LC_L0S_INACTIVITY_DEFAULT << PCIE_LC_CNTL__LC_L0S_INACTIVITY__SHIFT; - if (pci_is_thunderbolt_attached(adev->pdev)) + if (dev_is_removable(&adev->pdev->dev)) data |= NAVI10_PCIE__LC_L1_INACTIVITY_TBT_DEFAULT << PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT; else data |= NAVI10_PCIE__LC_L1_INACTIVITY_DEFAULT << PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c @@ -57,6 +57,9 @@ /* Read USB-PD from LFB */ #define GFX_CMD_USB_PD_USE_LFB 0x480 +/* Retry times for vmbx ready wait */ +#define PSP_VMBX_POLLING_LIMIT 3000 + /* VBIOS gfl defines */ #define MBOX_READY_MASK 0x80000000 #define MBOX_STATUS_MASK 0x0000FFFF @@ -130,19 +133,43 @@ return sol_reg != 0x0; } -static int psp_v13_0_wait_for_bootloader(struct psp_context *psp) +static int psp_v13_0_wait_for_vmbx_ready(struct psp_context *psp) { struct amdgpu_device *adev = psp->adev; + int retry_loop, ret; - int ret; - int retry_loop; + for (retry_loop = 0; retry_loop < PSP_VMBX_POLLING_LIMIT; retry_loop++) { + /* Wait for bootloader to signify that is + ready having bit 31 of C2PMSG_33 set to 1 */ + ret = psp_wait_for( + psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_33), + 0x80000000, 0xffffffff, false); + + if (ret == 0) + break; + } + + if (ret) + dev_warn(adev->dev, "Bootloader wait timed out"); + + return ret; +} +static int psp_v13_0_wait_for_bootloader(struct psp_context *psp) +{ + struct amdgpu_device *adev = psp->adev; + int retry_loop, retry_cnt, ret; + + retry_cnt = + (adev->ip_versions[MP0_HWIP][0] == IP_VERSION(13, 0, 6)) ? + PSP_VMBX_POLLING_LIMIT : + 10; /* Wait for bootloader to signify that it is ready having bit 31 of * C2PMSG_35 set to 1. All other bits are expected to be cleared. * If there is an error in processing command, bits[7:0] will be set. * This is applicable for PSP v13.0.6 and newer. */ - for (retry_loop = 0; retry_loop < 10; retry_loop++) { + for (retry_loop = 0; retry_loop < retry_cnt; retry_loop++) { ret = psp_wait_for( psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_35), 0x80000000, 0xffffffff, false); @@ -154,6 +181,19 @@ return ret; } +static int psp_v13_0_wait_for_bootloader_steady_state(struct psp_context *psp) +{ + struct amdgpu_device *adev = psp->adev; + + if (adev->ip_versions[MP0_HWIP][0] == IP_VERSION(13, 0, 6)) { + psp_v13_0_wait_for_vmbx_ready(psp); + + return psp_v13_0_wait_for_bootloader(psp); + } + + return 0; +} + static int psp_v13_0_bootloader_load_component(struct psp_context *psp, struct psp_bin_desc *bin_desc, enum psp_bootloader_cmd bl_cmd) @@ -690,6 +730,7 @@ static const struct psp_funcs psp_v13_0_funcs = { .init_microcode = psp_v13_0_init_microcode, + .wait_for_bootloader = psp_v13_0_wait_for_bootloader_steady_state, .bootloader_load_kdb = psp_v13_0_bootloader_load_kdb, .bootloader_load_spl = psp_v13_0_bootloader_load_spl, .bootloader_load_sysdrv = psp_v13_0_bootloader_load_sysdrv, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/soc15.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/soc15.c @@ -325,7 +325,8 @@ u32 reference_clock = adev->clock.spll.reference_freq; if (adev->ip_versions[MP1_HWIP][0] == IP_VERSION(12, 0, 0) || - adev->ip_versions[MP1_HWIP][0] == IP_VERSION(12, 0, 1)) + adev->ip_versions[MP1_HWIP][0] == IP_VERSION(12, 0, 1) || + adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 6)) return 10000; if (adev->ip_versions[MP1_HWIP][0] == IP_VERSION(10, 0, 0) || adev->ip_versions[MP1_HWIP][0] == IP_VERSION(10, 0, 1)) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdgpu/vi.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdgpu/vi.c @@ -1124,7 +1124,7 @@ bool bL1SS = false; bool bClkReqSupport = true; - if (!amdgpu_device_should_use_aspm(adev) || !amdgpu_device_aspm_support_quirk()) + if (!amdgpu_device_should_use_aspm(adev) || !amdgpu_device_pcie_dynamic_switching_supported()) return; if (adev->flags & AMD_IS_APU || only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v10.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v10.c @@ -268,7 +268,7 @@ SQ_INTERRUPT_WORD_WAVE_CTXID1, ENCODING); switch (encoding) { case SQ_INTERRUPT_WORD_ENCODING_AUTO: - pr_debug( + pr_debug_ratelimited( "sq_intr: auto, se %d, ttrace %d, wlt %d, ttrac_buf0_full %d, ttrac_buf1_full %d, ttrace_utc_err %d\n", REG_GET_FIELD(context_id1, SQ_INTERRUPT_WORD_AUTO_CTXID1, SE_ID), @@ -284,7 +284,7 @@ THREAD_TRACE_UTC_ERROR)); break; case SQ_INTERRUPT_WORD_ENCODING_INST: - pr_debug("sq_intr: inst, se %d, data 0x%x, sa %d, priv %d, wave_id %d, simd_id %d, wgp_id %d\n", + pr_debug_ratelimited("sq_intr: inst, se %d, data 0x%x, sa %d, priv %d, wave_id %d, simd_id %d, wgp_id %d\n", REG_GET_FIELD(context_id1, SQ_INTERRUPT_WORD_WAVE_CTXID1, SE_ID), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID0, @@ -310,7 +310,7 @@ case SQ_INTERRUPT_WORD_ENCODING_ERROR: sq_intr_err_type = REG_GET_FIELD(context_id0, KFD_CTXID0, ERR_TYPE); - pr_warn("sq_intr: error, se %d, data 0x%x, sa %d, priv %d, wave_id %d, simd_id %d, wgp_id %d, err_type %d\n", + pr_warn_ratelimited("sq_intr: error, se %d, data 0x%x, sa %d, priv %d, wave_id %d, simd_id %d, wgp_id %d, err_type %d\n", REG_GET_FIELD(context_id1, SQ_INTERRUPT_WORD_WAVE_CTXID1, SE_ID), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID0, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v11.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v11.c @@ -150,7 +150,7 @@ static void print_sq_intr_info_auto(uint32_t context_id0, uint32_t context_id1) { - pr_debug( + pr_debug_ratelimited( "sq_intr: auto, ttrace %d, wlt %d, ttrace_buf_full %d, reg_tms %d, cmd_tms %d, host_cmd_ovf %d, host_reg_ovf %d, immed_ovf %d, ttrace_utc_err %d\n", REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_AUTO_CTXID0, THREAD_TRACE), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_AUTO_CTXID0, WLT), @@ -165,7 +165,7 @@ static void print_sq_intr_info_inst(uint32_t context_id0, uint32_t context_id1) { - pr_debug( + pr_debug_ratelimited( "sq_intr: inst, data 0x%08x, sh %d, priv %d, wave_id %d, simd_id %d, wgp_id %d\n", REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID0, DATA), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID0, SH_ID), @@ -177,7 +177,7 @@ static void print_sq_intr_info_error(uint32_t context_id0, uint32_t context_id1) { - pr_warn( + pr_warn_ratelimited( "sq_intr: error, detail 0x%08x, type %d, sh %d, priv %d, wave_id %d, simd_id %d, wgp_id %d\n", REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_ERROR_CTXID0, DETAIL), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_ERROR_CTXID0, TYPE), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c @@ -333,7 +333,7 @@ encoding = REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID, ENCODING); switch (encoding) { case SQ_INTERRUPT_WORD_ENCODING_AUTO: - pr_debug( + pr_debug_ratelimited( "sq_intr: auto, se %d, ttrace %d, wlt %d, ttrac_buf_full %d, reg_tms %d, cmd_tms %d, host_cmd_ovf %d, host_reg_ovf %d, immed_ovf %d, ttrace_utc_err %d\n", REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_AUTO_CTXID, SE_ID), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_AUTO_CTXID, THREAD_TRACE), @@ -347,7 +347,7 @@ REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_AUTO_CTXID, THREAD_TRACE_UTC_ERROR)); break; case SQ_INTERRUPT_WORD_ENCODING_INST: - pr_debug("sq_intr: inst, se %d, data 0x%x, sh %d, priv %d, wave_id %d, simd_id %d, cu_id %d, intr_data 0x%x\n", + pr_debug_ratelimited("sq_intr: inst, se %d, data 0x%x, sh %d, priv %d, wave_id %d, simd_id %d, cu_id %d, intr_data 0x%x\n", REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID, SE_ID), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID, DATA), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID, SH_ID), @@ -366,7 +366,7 @@ break; case SQ_INTERRUPT_WORD_ENCODING_ERROR: sq_intr_err = REG_GET_FIELD(sq_int_data, KFD_SQ_INT_DATA, ERR_TYPE); - pr_warn("sq_intr: error, se %d, data 0x%x, sh %d, priv %d, wave_id %d, simd_id %d, cu_id %d, err_type %d\n", + pr_warn_ratelimited("sq_intr: error, se %d, data 0x%x, sh %d, priv %d, wave_id %d, simd_id %d, cu_id %d, err_type %d\n", REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID, SE_ID), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID, DATA), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID, SH_ID), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_svm.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdkfd/kfd_svm.c @@ -484,11 +484,11 @@ /* We need a new svm_bo. Spin-loop to wait for concurrent * svm_range_bo_release to finish removing this range from - * its range list. After this, it is safe to reuse the - * svm_bo pointer and svm_bo_list head. + * its range list and set prange->svm_bo to null. After this, + * it is safe to reuse the svm_bo pointer and svm_bo_list head. */ - while (!list_empty_careful(&prange->svm_bo_list)) - ; + while (!list_empty_careful(&prange->svm_bo_list) || prange->svm_bo) + cond_resched(); return false; } @@ -617,8 +617,15 @@ void svm_range_vram_node_free(struct svm_range *prange) { - svm_range_bo_unref(prange->svm_bo); - prange->ttm_res = NULL; + /* serialize prange->svm_bo unref */ + mutex_lock(&prange->lock); + /* prange->svm_bo has not been unref */ + if (prange->ttm_res) { + prange->ttm_res = NULL; + mutex_unlock(&prange->lock); + svm_range_bo_unref(prange->svm_bo); + } else + mutex_unlock(&prange->lock); } struct kfd_node * @@ -749,7 +756,7 @@ prange->flags &= ~attrs[i].value; break; case KFD_IOCTL_SVM_ATTR_GRANULARITY: - prange->granularity = attrs[i].value; + prange->granularity = min_t(uint32_t, attrs[i].value, 0x3F); break; default: WARN_ONCE(1, "svm_range_check_attrs wasn't called?"); @@ -809,7 +816,7 @@ } } - return !prange->is_error_flag; + return true; } /** @@ -1627,71 +1634,66 @@ start = prange->start << PAGE_SHIFT; end = (prange->last + 1) << PAGE_SHIFT; - for (addr = start; addr < end && !r; ) { + for (addr = start; !r && addr < end; ) { struct hmm_range *hmm_range; struct vm_area_struct *vma; - unsigned long next; + unsigned long next = 0; unsigned long offset; unsigned long npages; bool readonly; vma = vma_lookup(mm, addr); - if (!vma) { - r = -EFAULT; - goto unreserve_out; - } - readonly = !(vma->vm_flags & VM_WRITE); + if (vma) { + readonly = !(vma->vm_flags & VM_WRITE); - next = min(vma->vm_end, end); - npages = (next - addr) >> PAGE_SHIFT; - WRITE_ONCE(p->svms.faulting_task, current); - r = amdgpu_hmm_range_get_pages(&prange->notifier, addr, npages, - readonly, owner, NULL, - &hmm_range); - WRITE_ONCE(p->svms.faulting_task, NULL); - if (r) { - pr_debug("failed %d to get svm range pages\n", r); - goto unreserve_out; + next = min(vma->vm_end, end); + npages = (next - addr) >> PAGE_SHIFT; + WRITE_ONCE(p->svms.faulting_task, current); + r = amdgpu_hmm_range_get_pages(&prange->notifier, addr, npages, + readonly, owner, NULL, + &hmm_range); + WRITE_ONCE(p->svms.faulting_task, NULL); + if (r) { + pr_debug("failed %d to get svm range pages\n", r); + if (r == -EBUSY) + r = -EAGAIN; + } + } else { + r = -EFAULT; } - offset = (addr - start) >> PAGE_SHIFT; - r = svm_range_dma_map(prange, ctx->bitmap, offset, npages, - hmm_range->hmm_pfns); - if (r) { - pr_debug("failed %d to dma map range\n", r); - goto unreserve_out; + if (!r) { + offset = (addr - start) >> PAGE_SHIFT; + r = svm_range_dma_map(prange, ctx->bitmap, offset, npages, + hmm_range->hmm_pfns); + if (r) + pr_debug("failed %d to dma map range\n", r); } svm_range_lock(prange); - if (amdgpu_hmm_range_get_pages_done(hmm_range)) { + if (!r && amdgpu_hmm_range_get_pages_done(hmm_range)) { pr_debug("hmm update the range, need validate again\n"); r = -EAGAIN; - goto unlock_out; } - if (!list_empty(&prange->child_list)) { + + if (!r && !list_empty(&prange->child_list)) { pr_debug("range split by unmap in parallel, validate again\n"); r = -EAGAIN; - goto unlock_out; } - r = svm_range_map_to_gpus(prange, offset, npages, readonly, - ctx->bitmap, wait, flush_tlb); + if (!r) + r = svm_range_map_to_gpus(prange, offset, npages, readonly, + ctx->bitmap, wait, flush_tlb); + + if (!r && next == end) + prange->mapped_to_gpu = true; -unlock_out: svm_range_unlock(prange); addr = next; } - if (addr == end) { - prange->validated_once = true; - prange->mapped_to_gpu = true; - } - -unreserve_out: svm_range_unreserve_bos(ctx); - - prange->is_error_flag = !!r; if (!r) prange->validate_timestamp = ktime_get_boottime(); @@ -2057,7 +2059,8 @@ next = interval_tree_iter_next(node, start, last); next_start = min(node->last, last) + 1; - if (svm_range_is_same_attrs(p, prange, nattr, attrs)) { + if (svm_range_is_same_attrs(p, prange, nattr, attrs) && + prange->mapped_to_gpu) { /* nothing to do */ } else if (node->start < start || node->last > last) { /* node intersects the update range and its attributes @@ -3470,7 +3473,7 @@ struct svm_range *next; bool update_mapping = false; bool flush_tlb; - int r = 0; + int r, ret = 0; pr_debug("pasid 0x%x svms 0x%p [0x%llx 0x%llx] pages 0x%llx\n", p->pasid, &p->svms, start, start + size - 1, size); @@ -3558,7 +3561,7 @@ out_unlock_range: mutex_unlock(&prange->migrate_mutex); if (r) - break; + ret = r; } svm_range_debug_dump(svms); @@ -3571,7 +3574,7 @@ pr_debug("pasid 0x%x svms 0x%p [0x%llx 0x%llx] done, r=%d\n", p->pasid, &p->svms, start, start + size - 1, r); - return r; + return ret ? ret : r; } static int only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_svm.h +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/amdkfd/kfd_svm.h @@ -132,9 +132,7 @@ struct list_head child_list; DECLARE_BITMAP(bitmap_access, MAX_GPU_INSTANCE); DECLARE_BITMAP(bitmap_aip, MAX_GPU_INSTANCE); - bool validated_once; bool mapped_to_gpu; - bool is_error_flag; }; static inline void svm_range_lock(struct svm_range *prange) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c @@ -1591,31 +1591,31 @@ unsigned int upper_link_bw_in_kbps = 0, down_link_bw_in_kbps = 0; unsigned int max_compressed_bw_in_kbps = 0; struct dc_dsc_bw_range bw_range = {0}; - struct drm_dp_mst_topology_mgr *mst_mgr; + uint16_t full_pbn = aconnector->mst_output_port->full_pbn; /* - * check if the mode could be supported if DSC pass-through is supported - * AND check if there enough bandwidth available to support the mode - * with DSC enabled. + * Consider the case with the depth of the mst topology tree is equal or less than 2 + * A. When dsc bitstream can be transmitted along the entire path + * 1. dsc is possible between source and branch/leaf device (common dsc params is possible), AND + * 2. dsc passthrough supported at MST branch, or + * 3. dsc decoding supported at leaf MST device + * Use maximum dsc compression as bw constraint + * B. When dsc bitstream cannot be transmitted along the entire path + * Use native bw as bw constraint */ if (is_dsc_common_config_possible(stream, &bw_range) && - aconnector->mst_output_port->passthrough_aux) { - mst_mgr = aconnector->mst_output_port->mgr; - mutex_lock(&mst_mgr->lock); - + (aconnector->mst_output_port->passthrough_aux || + aconnector->dsc_aux == &aconnector->mst_output_port->aux)) { cur_link_settings = stream->link->verified_link_cap; upper_link_bw_in_kbps = dc_link_bandwidth_kbps(aconnector->dc_link, - &cur_link_settings - ); - down_link_bw_in_kbps = kbps_from_pbn(aconnector->mst_output_port->full_pbn); + &cur_link_settings); + down_link_bw_in_kbps = kbps_from_pbn(full_pbn); /* pick the bottleneck */ end_to_end_bw_in_kbps = min(upper_link_bw_in_kbps, down_link_bw_in_kbps); - mutex_unlock(&mst_mgr->lock); - /* * use the maximum dsc compression bandwidth as the required * bandwidth for the mode @@ -1630,8 +1630,7 @@ /* check if mode could be supported within full_pbn */ bpp = convert_dc_color_depth_into_bpc(stream->timing.display_color_depth) * 3; pbn = drm_dp_calc_pbn_mode(stream->timing.pix_clk_100hz / 10, bpp, false); - - if (pbn > aconnector->mst_output_port->full_pbn) + if (pbn > full_pbn) return DC_FAIL_BANDWIDTH_VALIDATE; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dc/core/dc_stream.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/core/dc_stream.c @@ -556,7 +556,7 @@ for (i = 0; i < MAX_PIPES; i++) { struct timing_generator *tg = res_ctx->pipe_ctx[i].stream_res.tg; - if (res_ctx->pipe_ctx[i].stream != stream) + if (res_ctx->pipe_ctx[i].stream != stream || !tg) continue; return tg->funcs->get_frame_count(tg); @@ -615,7 +615,7 @@ for (i = 0; i < MAX_PIPES; i++) { struct timing_generator *tg = res_ctx->pipe_ctx[i].stream_res.tg; - if (res_ctx->pipe_ctx[i].stream != stream) + if (res_ctx->pipe_ctx[i].stream != stream || !tg) continue; tg->funcs->get_scanoutpos(tg, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dc/dc_stream.h +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dc_stream.h @@ -302,7 +302,6 @@ bool vblank_synchronized; bool fpo_in_use; struct mall_stream_config mall_stream_config; - bool skip_edp_power_down; }; #define ABM_LEVEL_IMMEDIATE_DISABLE 255 only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dce/dce_dmcu.c @@ -586,7 +586,8 @@ if (state == PSR_STATE0) break; } - fsleep(500); + /* must *not* be fsleep - this can be called from high irq levels */ + udelay(500); } /* assert if max retry hit */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c @@ -216,7 +216,8 @@ break; } - fsleep(500); + /* must *not* be fsleep - this can be called from high irq levels */ + udelay(500); } /* assert if max retry hit */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dcn314/dcn314_hwseq.c @@ -476,7 +476,8 @@ struct dmcu *dmcu = dc->res_pool->dmcu; if (signal == SIGNAL_TYPE_EDP && - link->dc->hwss.edp_backlight_control) + link->dc->hwss.edp_backlight_control && + !link->skip_implict_edp_power_control) link->dc->hwss.edp_backlight_control(link, false); else if (dmcu != NULL && dmcu->funcs->lock_phy) dmcu->funcs->lock_phy(dmcu); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c @@ -216,7 +216,7 @@ static uint32_t dcn32_calculate_cab_allocation(struct dc *dc, struct dc_state *ctx) { int i; - uint8_t num_ways = 0; + uint32_t num_ways = 0; uint32_t mall_ss_size_bytes = 0; mall_ss_size_bytes = ctx->bw_ctx.bw.dcn.mall_ss_size_bytes; @@ -246,7 +246,8 @@ bool dcn32_apply_idle_power_optimizations(struct dc *dc, bool enable) { union dmub_rb_cmd cmd; - uint8_t ways, i; + uint8_t i; + uint32_t ways; int j; bool mall_ss_unsupported = false; struct dc_plane_state *plane = NULL; @@ -306,7 +307,7 @@ cmd.cab.header.type = DMUB_CMD__CAB_FOR_SS; cmd.cab.header.sub_type = DMUB_CMD__CAB_DCN_SS_FIT_IN_CAB; cmd.cab.header.payload_bytes = sizeof(cmd.cab) - sizeof(cmd.cab.header); - cmd.cab.cab_alloc_ways = ways; + cmd.cab.cab_alloc_ways = (uint8_t)ways; dm_execute_dmub_cmd(dc->ctx, &cmd, DM_DMUB_WAIT_TYPE_NO_WAIT); @@ -484,8 +485,7 @@ if (plane_state->blend_tf->type == TF_TYPE_HWPWL) lut_params = &plane_state->blend_tf->pwl; else if (plane_state->blend_tf->type == TF_TYPE_DISTRIBUTED_POINTS) { - cm_helper_translate_curve_to_hw_format(plane_state->ctx, - plane_state->blend_tf, + cm3_helper_translate_curve_to_hw_format(plane_state->blend_tf, &dpp_base->regamma_params, false); lut_params = &dpp_base->regamma_params; } @@ -499,8 +499,7 @@ else if (plane_state->in_shaper_func->type == TF_TYPE_DISTRIBUTED_POINTS) { // TODO: dpp_base replace ASSERT(false); - cm_helper_translate_curve_to_hw_format(plane_state->ctx, - plane_state->in_shaper_func, + cm3_helper_translate_curve_to_hw_format(plane_state->in_shaper_func, &dpp_base->shaper_params, true); lut_params = &dpp_base->shaper_params; } @@ -1575,3 +1574,101 @@ if (opp) hws->funcs.wait_for_blank_complete(opp); } + +void dcn32_blank_phantom(struct dc *dc, + struct timing_generator *tg, + int width, + int height) +{ + struct dce_hwseq *hws = dc->hwseq; + enum dc_color_space color_space; + struct tg_color black_color = {0}; + struct output_pixel_processor *opp = NULL; + uint32_t num_opps, opp_id_src0, opp_id_src1; + uint32_t otg_active_width, otg_active_height; + uint32_t i; + + /* program opp dpg blank color */ + color_space = COLOR_SPACE_SRGB; + color_space_to_black_color(dc, color_space, &black_color); + + otg_active_width = width; + otg_active_height = height; + + /* get the OPTC source */ + tg->funcs->get_optc_source(tg, &num_opps, &opp_id_src0, &opp_id_src1); + ASSERT(opp_id_src0 < dc->res_pool->res_cap->num_opp); + + for (i = 0; i < dc->res_pool->res_cap->num_opp; i++) { + if (dc->res_pool->opps[i] != NULL && dc->res_pool->opps[i]->inst == opp_id_src0) { + opp = dc->res_pool->opps[i]; + break; + } + } + + if (opp && opp->funcs->opp_set_disp_pattern_generator) + opp->funcs->opp_set_disp_pattern_generator( + opp, + CONTROLLER_DP_TEST_PATTERN_SOLID_COLOR, + CONTROLLER_DP_COLOR_SPACE_UDEFINED, + COLOR_DEPTH_UNDEFINED, + &black_color, + otg_active_width, + otg_active_height, + 0); + + if (tg->funcs->is_tg_enabled(tg)) + hws->funcs.wait_for_blank_complete(opp); +} + +bool dcn32_is_pipe_topology_transition_seamless(struct dc *dc, + const struct dc_state *cur_ctx, + const struct dc_state *new_ctx) +{ + int i; + const struct pipe_ctx *cur_pipe, *new_pipe; + bool is_seamless = true; + + for (i = 0; i < dc->res_pool->pipe_count; i++) { + cur_pipe = &cur_ctx->res_ctx.pipe_ctx[i]; + new_pipe = &new_ctx->res_ctx.pipe_ctx[i]; + + if (resource_is_pipe_type(cur_pipe, FREE_PIPE) || + resource_is_pipe_type(new_pipe, FREE_PIPE)) + /* adding or removing free pipes is always seamless */ + continue; + else if (resource_is_pipe_type(cur_pipe, OTG_MASTER)) { + if (resource_is_pipe_type(new_pipe, OTG_MASTER)) + if (cur_pipe->stream->stream_id == new_pipe->stream->stream_id) + /* OTG master with the same stream is seamless */ + continue; + } else if (resource_is_pipe_type(cur_pipe, OPP_HEAD)) { + if (resource_is_pipe_type(new_pipe, OPP_HEAD)) { + if (cur_pipe->stream_res.tg == new_pipe->stream_res.tg) + /* + * OPP heads sharing the same timing + * generator is seamless + */ + continue; + } + } else if (resource_is_pipe_type(cur_pipe, DPP_PIPE)) { + if (resource_is_pipe_type(new_pipe, DPP_PIPE)) { + if (cur_pipe->stream_res.opp == new_pipe->stream_res.opp) + /* + * DPP pipes sharing the same OPP head is + * seamless + */ + continue; + } + } + + /* + * This pipe's transition doesn't fall under any seamless + * conditions + */ + is_seamless = false; + break; + } + + return is_seamless; +} only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.h +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.h @@ -115,4 +115,13 @@ struct dc *dc, struct timing_generator *tg); +void dcn32_blank_phantom(struct dc *dc, + struct timing_generator *tg, + int width, + int height); + +bool dcn32_is_pipe_topology_transition_seamless(struct dc *dc, + const struct dc_state *cur_ctx, + const struct dc_state *new_ctx); + #endif /* __DC_HWSS_DCN32_H__ */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_init.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_init.c @@ -115,6 +115,8 @@ .update_phantom_vp_position = dcn32_update_phantom_vp_position, .update_dsc_pg = dcn32_update_dsc_pg, .apply_update_flags_for_phantom = dcn32_apply_update_flags_for_phantom, + .blank_phantom = dcn32_blank_phantom, + .is_pipe_topology_transition_seamless = dcn32_is_pipe_topology_transition_seamless, }; static const struct hwseq_private_funcs dcn32_private_funcs = { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c @@ -1958,6 +1958,7 @@ int i, pipe_idx, vlevel_temp = 0; double dcfclk = dcn3_2_soc.clock_limits[0].dcfclk_mhz; double dcfclk_from_validation = context->bw_ctx.dml.vba.DCFCLKState[vlevel][context->bw_ctx.dml.vba.maxMpcComb]; + double dram_speed_from_validation = context->bw_ctx.dml.vba.DRAMSpeed; double dcfclk_from_fw_based_mclk_switching = dcfclk_from_validation; bool pstate_en = context->bw_ctx.dml.vba.DRAMClockChangeSupport[vlevel][context->bw_ctx.dml.vba.maxMpcComb] != dm_dram_clock_change_unsupported; @@ -2145,7 +2146,7 @@ } if (dc->clk_mgr->bw_params->wm_table.nv_entries[WM_C].valid) { - min_dram_speed_mts = context->bw_ctx.dml.vba.DRAMSpeed; + min_dram_speed_mts = dram_speed_from_validation; min_dram_speed_mts_margin = 160; context->bw_ctx.dml.soc.dram_clock_change_latency_us = only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h @@ -388,6 +388,11 @@ void (*z10_restore)(const struct dc *dc); void (*z10_save_init)(struct dc *dc); + void (*blank_phantom)(struct dc *dc, + struct timing_generator *tg, + int width, + int height); + void (*update_visual_confirm_color)(struct dc *dc, struct pipe_ctx *pipe_ctx, int mpcc_id); @@ -396,6 +401,9 @@ struct dc_state *context, struct pipe_ctx *phantom_pipe); void (*apply_update_flags_for_phantom)(struct pipe_ctx *phantom_pipe); + bool (*is_pipe_topology_transition_seamless)(struct dc *dc, + const struct dc_state *cur_ctx, + const struct dc_state *new_ctx); void (*commit_subvp_config)(struct dc *dc, struct dc_state *context); void (*enable_phantom_streams)(struct dc *dc, struct dc_state *context); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dc/inc/link.h +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/inc/link.h @@ -277,6 +277,7 @@ bool (*edp_receiver_ready_T9)(struct dc_link *link); bool (*edp_receiver_ready_T7)(struct dc_link *link); bool (*edp_power_alpm_dpcd_enable)(struct dc_link *link, bool enable); + void (*edp_set_panel_power)(struct dc_link *link, bool powerOn); /*************************** DP CTS ************************************/ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dc/link/link_detection.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/link/link_detection.c @@ -1164,6 +1164,12 @@ dm_helpers_init_panel_settings(dc_ctx, &link->panel_config, sink); // Override dc_panel_config if system has specific settings dm_helpers_override_panel_settings(dc_ctx, &link->panel_config); + + //sink only can use supported link rate table, we are foreced to enable it + if (link->reported_link_cap.link_rate == LINK_RATE_UNKNOWN) + link->panel_config.ilr.optimize_edp_link_rate = true; + if (edp_is_ilr_optimization_enabled(link)) + link->reported_link_cap.link_rate = get_max_link_rate_from_ilr_table(link); } } else { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dc/link/link_dpms.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/link/link_dpms.c @@ -1926,7 +1926,7 @@ dp_disable_link_phy(link, link_res, signal); if (link->connector_signal == SIGNAL_TYPE_EDP) { - if (!link->dc->config.edp_no_power_sequencing) + if (!link->skip_implict_edp_power_control) link->dc->hwss.edp_power_control(link, false); } @@ -2207,7 +2207,7 @@ * link settings. Need to call disable first before enabling at * new link settings. */ - if (link->link_status.link_active && !stream->skip_edp_power_down) + if (link->link_status.link_active) disable_link(link, &pipe_ctx->link_res, pipe_ctx->stream->signal); switch (pipe_ctx->stream->signal) { @@ -2326,9 +2326,7 @@ dc->hwss.disable_stream(pipe_ctx); } else { dc->hwss.disable_stream(pipe_ctx); - if (!pipe_ctx->stream->skip_edp_power_down) { - disable_link(pipe_ctx->stream->link, &pipe_ctx->link_res, pipe_ctx->stream->signal); - } + disable_link(pipe_ctx->stream->link, &pipe_ctx->link_res, pipe_ctx->stream->signal); } if (pipe_ctx->stream->timing.flags.DSC) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c @@ -707,8 +707,7 @@ * edp_supported_link_rates_count is only valid for eDP v1.4 or higher. * Per VESA eDP spec, "The DPCD revision for eDP v1.4 is 13h" */ - if (link->dpcd_caps.dpcd_rev.raw < DPCD_REV_13 || - link->dpcd_caps.edp_supported_link_rates_count == 0) { + if (!edp_is_ilr_optimization_enabled(link)) { *link_setting = link->verified_link_cap; return true; } @@ -772,8 +771,7 @@ * edp_supported_link_rates_count is only valid for eDP v1.4 or higher. * Per VESA eDP spec, "The DPCD revision for eDP v1.4 is 13h" */ - if ((link->dpcd_caps.dpcd_rev.raw < DPCD_REV_13 || - link->dpcd_caps.edp_supported_link_rates_count == 0)) { + if (!edp_is_ilr_optimization_enabled(link)) { /* for DSC enabled case, we search for minimum lane count */ memset(&initial_link_setting, 0, sizeof(initial_link_setting)); initial_link_setting.lane_count = LANE_COUNT_ONE; @@ -1937,9 +1935,7 @@ * edp_supported_link_rates_count is only valid for eDP v1.4 or higher. * Per VESA eDP spec, "The DPCD revision for eDP v1.4 is 13h" */ - if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_13 && - (link->panel_config.ilr.optimize_edp_link_rate || - link->reported_link_cap.link_rate == LINK_RATE_UNKNOWN)) { + if (link->dpcd_caps.dpcd_rev.raw >= DPCD_REV_13) { // Read DPCD 00010h - 0001Fh 16 bytes at one shot core_link_read_dpcd(link, DP_SUPPORTED_LINK_RATES, supported_link_rates, sizeof(supported_link_rates)); @@ -1957,12 +1953,10 @@ link_rate = linkRateInKHzToLinkRateMultiplier(link_rate_in_khz); link->dpcd_caps.edp_supported_link_rates[link->dpcd_caps.edp_supported_link_rates_count] = link_rate; link->dpcd_caps.edp_supported_link_rates_count++; - - if (link->reported_link_cap.link_rate < link_rate) - link->reported_link_cap.link_rate = link_rate; } } } + core_link_read_dpcd(link, DP_EDP_BACKLIGHT_ADJUSTMENT_CAP, &backlight_adj_cap, sizeof(backlight_adj_cap)); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_phy.c @@ -73,7 +73,8 @@ { struct dc *dc = link->ctx->dc; - if (!link->wa_flags.dp_keep_receiver_powered) + if (!link->wa_flags.dp_keep_receiver_powered && + !link->skip_implict_edp_power_control) dpcd_write_rx_power_ctrl(link, false); dc->hwss.disable_link_output(link, link_res, signal); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.c @@ -151,7 +151,7 @@ lt_settings->cr_pattern_time = 16000; /* Fixed VS/PE specific: Toggle link rate */ - apply_toggle_rate_wa = (link->vendor_specific_lttpr_link_rate_wa == target_rate); + apply_toggle_rate_wa = ((link->vendor_specific_lttpr_link_rate_wa == target_rate) || (link->vendor_specific_lttpr_link_rate_wa == 0)); target_rate = get_dpcd_link_rate(<_settings->link_settings); toggle_rate = (target_rate == 0x6) ? 0xA : 0x6; @@ -317,7 +317,7 @@ /* Vendor specific: Toggle link rate */ toggle_rate = (rate == 0x6) ? 0xA : 0x6; - if (link->vendor_specific_lttpr_link_rate_wa == rate) { + if (link->vendor_specific_lttpr_link_rate_wa == rate || link->vendor_specific_lttpr_link_rate_wa == 0) { core_link_write_dpcd( link, DP_LINK_BW_SET, @@ -680,7 +680,7 @@ /* Vendor specific: Toggle link rate */ toggle_rate = (rate == 0x6) ? 0xA : 0x6; - if (link->vendor_specific_lttpr_link_rate_wa == rate) { + if (link->vendor_specific_lttpr_link_rate_wa == rate || link->vendor_specific_lttpr_link_rate_wa == 0) { core_link_write_dpcd( link, DP_LINK_BW_SET, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c @@ -33,6 +33,7 @@ #include "link_dp_capability.h" #include "dm_helpers.h" #include "dal_asic_id.h" +#include "link_dp_phy.h" #include "dce/dmub_psr.h" #include "abm.h" #define DC_LOGGER_INIT(logger) @@ -266,8 +267,8 @@ if (link && link->dpcd_sink_ext_caps.bits.oled == 1) { if (!read_default_bl_aux(link, &default_backlight)) default_backlight = 150000; - // if < 5 nits or > 5000, it might be wrong readback - if (default_backlight < 5000 || default_backlight > 5000000) + // if < 1 nits or > 5000, it might be wrong readback + if (default_backlight < 1000 || default_backlight > 5000000) default_backlight = 150000; // return edp_set_backlight_level_nits(link, true, @@ -275,6 +276,24 @@ } return false; } +bool edp_is_ilr_optimization_enabled(struct dc_link *link) +{ + if (link->dpcd_caps.edp_supported_link_rates_count == 0 || !link->panel_config.ilr.optimize_edp_link_rate) + return false; + return true; +} + +enum dc_link_rate get_max_link_rate_from_ilr_table(struct dc_link *link) +{ + enum dc_link_rate link_rate = link->reported_link_cap.link_rate; + + for (int i = 0; i < link->dpcd_caps.edp_supported_link_rates_count; i++) { + if (link_rate < link->dpcd_caps.edp_supported_link_rates[i]) + link_rate = link->dpcd_caps.edp_supported_link_rates[i]; + } + + return link_rate; +} bool edp_is_ilr_optimization_required(struct dc_link *link, struct dc_crtc_timing *crtc_timing) @@ -287,8 +306,7 @@ ASSERT(link || crtc_timing); // invalid input - if (link->dpcd_caps.edp_supported_link_rates_count == 0 || - !link->panel_config.ilr.optimize_edp_link_rate) + if (!edp_is_ilr_optimization_enabled(link)) return false; @@ -338,6 +356,34 @@ link->dc->hwss.edp_backlight_control(link, true); } +void edp_set_panel_power(struct dc_link *link, bool powerOn) +{ + if (powerOn) { + // 1. panel VDD on + if (!link->dc->config.edp_no_power_sequencing) + link->dc->hwss.edp_power_control(link, true); + link->dc->hwss.edp_wait_for_hpd_ready(link, true); + + // 2. panel BL on + if (link->dc->hwss.edp_backlight_control) + link->dc->hwss.edp_backlight_control(link, true); + + // 3. Rx power on + dpcd_write_rx_power_ctrl(link, true); + } else { + // 3. Rx power off + dpcd_write_rx_power_ctrl(link, false); + + // 2. panel BL off + if (link->dc->hwss.edp_backlight_control) + link->dc->hwss.edp_backlight_control(link, false); + + // 1. panel VDD off + if (!link->dc->config.edp_no_power_sequencing) + link->dc->hwss.edp_power_control(link, false); + } +} + bool edp_wait_for_t12(struct dc_link *link) { if (link->connector_signal == SIGNAL_TYPE_EDP && link->dc->hwss.edp_wait_for_T12) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h @@ -55,9 +55,12 @@ bool edp_wait_for_t12(struct dc_link *link); bool edp_is_ilr_optimization_required(struct dc_link *link, struct dc_crtc_timing *crtc_timing); +bool edp_is_ilr_optimization_enabled(struct dc_link *link); +enum dc_link_rate get_max_link_rate_from_ilr_table(struct dc_link *link); bool edp_backlight_enable_aux(struct dc_link *link, bool enable); void edp_add_delay_for_T9(struct dc_link *link); bool edp_receiver_ready_T9(struct dc_link *link); bool edp_receiver_ready_T7(struct dc_link *link); bool edp_power_alpm_dpcd_enable(struct dc_link *link, bool enable); +void edp_set_panel_power(struct dc_link *link, bool powerOn); #endif /* __DC_LINK_EDP_POWER_CONTROL_H__ */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dmub/dmub_srv.h +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dmub/dmub_srv.h @@ -186,6 +186,7 @@ uint32_t vbios_size; const uint8_t *fw_inst_const; const uint8_t *fw_bss_data; + bool is_mailbox_in_inbox; }; /** @@ -205,20 +206,25 @@ */ struct dmub_srv_region_info { uint32_t fb_size; + uint32_t inbox_size; uint8_t num_regions; struct dmub_region regions[DMUB_WINDOW_TOTAL]; }; /** - * struct dmub_srv_fb_params - parameters used for driver fb setup + * struct dmub_srv_memory_params - parameters used for driver fb setup * @region_info: region info calculated by dmub service - * @cpu_addr: base cpu address for the framebuffer - * @gpu_addr: base gpu virtual address for the framebuffer + * @cpu_fb_addr: base cpu address for the framebuffer + * @cpu_inbox_addr: base cpu address for the gart + * @gpu_fb_addr: base gpu virtual address for the framebuffer + * @gpu_inbox_addr: base gpu virtual address for the gart */ -struct dmub_srv_fb_params { +struct dmub_srv_memory_params { const struct dmub_srv_region_info *region_info; - void *cpu_addr; - uint64_t gpu_addr; + void *cpu_fb_addr; + void *cpu_inbox_addr; + uint64_t gpu_fb_addr; + uint64_t gpu_inbox_addr; }; /** @@ -545,8 +551,8 @@ * DMUB_STATUS_OK - success * DMUB_STATUS_INVALID - unspecified error */ -enum dmub_status dmub_srv_calc_fb_info(struct dmub_srv *dmub, - const struct dmub_srv_fb_params *params, +enum dmub_status dmub_srv_calc_mem_info(struct dmub_srv *dmub, + const struct dmub_srv_memory_params *params, struct dmub_srv_fb_info *out); /** only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c @@ -385,7 +385,7 @@ uint32_t fw_state_size = DMUB_FW_STATE_SIZE; uint32_t trace_buffer_size = DMUB_TRACE_BUFFER_SIZE; uint32_t scratch_mem_size = DMUB_SCRATCH_MEM_SIZE; - + uint32_t previous_top = 0; if (!dmub->sw_init) return DMUB_STATUS_INVALID; @@ -410,8 +410,15 @@ bios->base = dmub_align(stack->top, 256); bios->top = bios->base + params->vbios_size; - mail->base = dmub_align(bios->top, 256); - mail->top = mail->base + DMUB_MAILBOX_SIZE; + if (params->is_mailbox_in_inbox) { + mail->base = 0; + mail->top = mail->base + DMUB_MAILBOX_SIZE; + previous_top = bios->top; + } else { + mail->base = dmub_align(bios->top, 256); + mail->top = mail->base + DMUB_MAILBOX_SIZE; + previous_top = mail->top; + } fw_info = dmub_get_fw_meta_info(params); @@ -430,7 +437,7 @@ dmub->fw_version = fw_info->fw_version; } - trace_buff->base = dmub_align(mail->top, 256); + trace_buff->base = dmub_align(previous_top, 256); trace_buff->top = trace_buff->base + dmub_align(trace_buffer_size, 64); fw_state->base = dmub_align(trace_buff->top, 256); @@ -441,11 +448,14 @@ out->fb_size = dmub_align(scratch_mem->top, 4096); + if (params->is_mailbox_in_inbox) + out->inbox_size = dmub_align(mail->top, 4096); + return DMUB_STATUS_OK; } -enum dmub_status dmub_srv_calc_fb_info(struct dmub_srv *dmub, - const struct dmub_srv_fb_params *params, +enum dmub_status dmub_srv_calc_mem_info(struct dmub_srv *dmub, + const struct dmub_srv_memory_params *params, struct dmub_srv_fb_info *out) { uint8_t *cpu_base; @@ -460,8 +470,8 @@ if (params->region_info->num_regions != DMUB_NUM_WINDOWS) return DMUB_STATUS_INVALID; - cpu_base = (uint8_t *)params->cpu_addr; - gpu_base = params->gpu_addr; + cpu_base = (uint8_t *)params->cpu_fb_addr; + gpu_base = params->gpu_fb_addr; for (i = 0; i < DMUB_NUM_WINDOWS; ++i) { const struct dmub_region *reg = @@ -469,6 +479,12 @@ out->fb[i].cpu_addr = cpu_base + reg->base; out->fb[i].gpu_addr = gpu_base + reg->base; + + if (i == DMUB_WINDOW_4_MAILBOX && params->cpu_inbox_addr != 0) { + out->fb[i].cpu_addr = (uint8_t *)params->cpu_inbox_addr + reg->base; + out->fb[i].gpu_addr = params->gpu_inbox_addr + reg->base; + } + out->fb[i].size = reg->top - reg->base; } @@ -657,9 +673,16 @@ return DMUB_STATUS_INVALID; if (dmub->hw_funcs.get_inbox1_rptr && dmub->hw_funcs.get_inbox1_wptr) { - dmub->inbox1_rb.rptr = dmub->hw_funcs.get_inbox1_rptr(dmub); - dmub->inbox1_rb.wrpt = dmub->hw_funcs.get_inbox1_wptr(dmub); - dmub->inbox1_last_wptr = dmub->inbox1_rb.wrpt; + uint32_t rptr = dmub->hw_funcs.get_inbox1_rptr(dmub); + uint32_t wptr = dmub->hw_funcs.get_inbox1_wptr(dmub); + + if (rptr > dmub->inbox1_rb.capacity || wptr > dmub->inbox1_rb.capacity) { + return DMUB_STATUS_HW_FAILURE; + } else { + dmub->inbox1_rb.rptr = rptr; + dmub->inbox1_rb.wrpt = wptr; + dmub->inbox1_last_wptr = dmub->inbox1_rb.wrpt; + } } return DMUB_STATUS_OK; @@ -693,6 +716,11 @@ if (!dmub->hw_init) return DMUB_STATUS_INVALID; + if (dmub->inbox1_rb.rptr > dmub->inbox1_rb.capacity || + dmub->inbox1_rb.wrpt > dmub->inbox1_rb.capacity) { + return DMUB_STATUS_HW_FAILURE; + } + if (dmub_rb_push_front(&dmub->inbox1_rb, cmd)) return DMUB_STATUS_OK; @@ -942,6 +970,7 @@ ack = dmub->hw_funcs.read_inbox0_ack_register(dmub); if (ack) return DMUB_STATUS_OK; + udelay(1); } return DMUB_STATUS_TIMEOUT; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/include/asic_reg/gc/gc_11_0_0_offset.h +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/include/asic_reg/gc/gc_11_0_0_offset.h @@ -6369,6 +6369,8 @@ #define regTCP_INVALIDATE_BASE_IDX 1 #define regTCP_STATUS 0x19a1 #define regTCP_STATUS_BASE_IDX 1 +#define regTCP_CNTL 0x19a2 +#define regTCP_CNTL_BASE_IDX 1 #define regTCP_CNTL2 0x19a3 #define regTCP_CNTL2_BASE_IDX 1 #define regTCP_DEBUG_INDEX 0x19a5 only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/include/pptable.h +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/include/pptable.h @@ -78,7 +78,7 @@ typedef struct _ATOM_PPLIB_STATE { UCHAR ucNonClockStateIndex; - UCHAR ucClockStateIndices[1]; // variable-sized + UCHAR ucClockStateIndices[]; // variable-sized } ATOM_PPLIB_STATE; @@ -473,7 +473,7 @@ /** * Driver will read the first ucNumDPMLevels in this array */ - UCHAR clockInfoIndex[1]; + UCHAR clockInfoIndex[]; } ATOM_PPLIB_STATE_V2; typedef struct _StateArray{ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/pm/powerplay/hwmgr/pptable_v1_0.h +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/powerplay/hwmgr/pptable_v1_0.h @@ -164,7 +164,7 @@ typedef struct _ATOM_Tonga_State_Array { UCHAR ucRevId; UCHAR ucNumEntries; /* Number of entries. */ - ATOM_Tonga_State entries[1]; /* Dynamically allocate entries. */ + ATOM_Tonga_State entries[]; /* Dynamically allocate entries. */ } ATOM_Tonga_State_Array; typedef struct _ATOM_Tonga_MCLK_Dependency_Record { @@ -179,7 +179,7 @@ typedef struct _ATOM_Tonga_MCLK_Dependency_Table { UCHAR ucRevId; UCHAR ucNumEntries; /* Number of entries. */ - ATOM_Tonga_MCLK_Dependency_Record entries[1]; /* Dynamically allocate entries. */ + ATOM_Tonga_MCLK_Dependency_Record entries[]; /* Dynamically allocate entries. */ } ATOM_Tonga_MCLK_Dependency_Table; typedef struct _ATOM_Tonga_SCLK_Dependency_Record { @@ -194,7 +194,7 @@ typedef struct _ATOM_Tonga_SCLK_Dependency_Table { UCHAR ucRevId; UCHAR ucNumEntries; /* Number of entries. */ - ATOM_Tonga_SCLK_Dependency_Record entries[1]; /* Dynamically allocate entries. */ + ATOM_Tonga_SCLK_Dependency_Record entries[]; /* Dynamically allocate entries. */ } ATOM_Tonga_SCLK_Dependency_Table; typedef struct _ATOM_Polaris_SCLK_Dependency_Record { @@ -210,7 +210,7 @@ typedef struct _ATOM_Polaris_SCLK_Dependency_Table { UCHAR ucRevId; UCHAR ucNumEntries; /* Number of entries. */ - ATOM_Polaris_SCLK_Dependency_Record entries[1]; /* Dynamically allocate entries. */ + ATOM_Polaris_SCLK_Dependency_Record entries[]; /* Dynamically allocate entries. */ } ATOM_Polaris_SCLK_Dependency_Table; typedef struct _ATOM_Tonga_PCIE_Record { @@ -222,7 +222,7 @@ typedef struct _ATOM_Tonga_PCIE_Table { UCHAR ucRevId; UCHAR ucNumEntries; /* Number of entries. */ - ATOM_Tonga_PCIE_Record entries[1]; /* Dynamically allocate entries. */ + ATOM_Tonga_PCIE_Record entries[]; /* Dynamically allocate entries. */ } ATOM_Tonga_PCIE_Table; typedef struct _ATOM_Polaris10_PCIE_Record { @@ -235,7 +235,7 @@ typedef struct _ATOM_Polaris10_PCIE_Table { UCHAR ucRevId; UCHAR ucNumEntries; /* Number of entries. */ - ATOM_Polaris10_PCIE_Record entries[1]; /* Dynamically allocate entries. */ + ATOM_Polaris10_PCIE_Record entries[]; /* Dynamically allocate entries. */ } ATOM_Polaris10_PCIE_Table; @@ -252,7 +252,7 @@ typedef struct _ATOM_Tonga_MM_Dependency_Table { UCHAR ucRevId; UCHAR ucNumEntries; /* Number of entries. */ - ATOM_Tonga_MM_Dependency_Record entries[1]; /* Dynamically allocate entries. */ + ATOM_Tonga_MM_Dependency_Record entries[]; /* Dynamically allocate entries. */ } ATOM_Tonga_MM_Dependency_Table; typedef struct _ATOM_Tonga_Voltage_Lookup_Record { @@ -265,7 +265,7 @@ typedef struct _ATOM_Tonga_Voltage_Lookup_Table { UCHAR ucRevId; UCHAR ucNumEntries; /* Number of entries. */ - ATOM_Tonga_Voltage_Lookup_Record entries[1]; /* Dynamically allocate entries. */ + ATOM_Tonga_Voltage_Lookup_Record entries[]; /* Dynamically allocate entries. */ } ATOM_Tonga_Voltage_Lookup_Table; typedef struct _ATOM_Tonga_Fan_Table { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c @@ -1823,9 +1823,7 @@ data->mclk_dpm_key_disabled = hwmgr->feature_mask & PP_MCLK_DPM_MASK ? false : true; data->sclk_dpm_key_disabled = hwmgr->feature_mask & PP_SCLK_DPM_MASK ? false : true; - data->pcie_dpm_key_disabled = - !amdgpu_device_pcie_dynamic_switching_supported() || - !(hwmgr->feature_mask & PP_PCIE_DPM_MASK); + data->pcie_dpm_key_disabled = !(hwmgr->feature_mask & PP_PCIE_DPM_MASK); /* need to set voltage control types before EVV patching */ data->voltage_control = SMU7_VOLTAGE_CONTROL_NONE; data->vddci_control = SMU7_VOLTAGE_CONTROL_NONE; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c @@ -1232,7 +1232,7 @@ { struct smu_feature *feature = &smu->smu_feature; struct amdgpu_device *adev = smu->adev; - uint32_t pcie_gen = 0, pcie_width = 0; + uint8_t pcie_gen = 0, pcie_width = 0; uint64_t features_supported; int ret = 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h @@ -856,7 +856,7 @@ * &pcie_gen_cap: Maximum allowed PCIe generation. * &pcie_width_cap: Maximum allowed PCIe width. */ - int (*update_pcie_parameters)(struct smu_context *smu, uint32_t pcie_gen_cap, uint32_t pcie_width_cap); + int (*update_pcie_parameters)(struct smu_context *smu, uint8_t pcie_gen_cap, uint8_t pcie_width_cap); /** * @i2c_init: Initialize i2c. only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h @@ -296,8 +296,8 @@ uint32_t pptable_id); int smu_v13_0_update_pcie_parameters(struct smu_context *smu, - uint32_t pcie_gen_cap, - uint32_t pcie_width_cap); + uint8_t pcie_gen_cap, + uint8_t pcie_width_cap); #endif #endif only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c @@ -2375,8 +2375,8 @@ } static int navi10_update_pcie_parameters(struct smu_context *smu, - uint32_t pcie_gen_cap, - uint32_t pcie_width_cap) + uint8_t pcie_gen_cap, + uint8_t pcie_width_cap) { struct smu_11_0_dpm_context *dpm_context = smu->smu_dpm.dpm_context; PPTable_t *pptable = smu->smu_table.driver_pptable; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c @@ -258,8 +258,11 @@ } smu_table->ecc_table = kzalloc(tables[SMU_TABLE_ECCINFO].size, GFP_KERNEL); - if (!smu_table->ecc_table) + if (!smu_table->ecc_table) { + kfree(smu_table->metrics_table); + kfree(smu_table->gpu_metrics_table); return -ENOMEM; + } return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c @@ -2426,8 +2426,8 @@ } int smu_v13_0_update_pcie_parameters(struct smu_context *smu, - uint32_t pcie_gen_cap, - uint32_t pcie_width_cap) + uint8_t pcie_gen_cap, + uint8_t pcie_width_cap) { struct smu_13_0_dpm_context *dpm_context = smu->smu_dpm.dpm_context; struct smu_13_0_pcie_table *pcie_table = @@ -2436,7 +2436,10 @@ uint32_t smu_pcie_arg; int ret, i; - if (!amdgpu_device_pcie_dynamic_switching_supported()) { + if (!num_of_levels) + return 0; + + if (!(smu->adev->pm.pp_feature & PP_PCIE_DPM_MASK)) { if (pcie_table->pcie_gen[num_of_levels - 1] < pcie_gen_cap) pcie_gen_cap = pcie_table->pcie_gen[num_of_levels - 1]; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c +++ linux-riscv-6.5.0/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c @@ -1977,8 +1977,10 @@ metrics = kzalloc(sizeof(MetricsTable_t), GFP_KERNEL); ret = smu_v13_0_6_get_metrics_table(smu, metrics, true); - if (ret) + if (ret) { + kfree(metrics); return ret; + } smu_cmn_init_soft_gpu_metrics(gpu_metrics, 1, 3); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c +++ linux-riscv-6.5.0/drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c @@ -1223,7 +1223,7 @@ return 0; } -static void +static int komeda_pipeline_unbound_components(struct komeda_pipeline *pipe, struct komeda_pipeline_state *new) { @@ -1243,8 +1243,12 @@ c = komeda_pipeline_get_component(pipe, id); c_st = komeda_component_get_state_and_set_user(c, drm_st, NULL, new->crtc); + if (PTR_ERR(c_st) == -EDEADLK) + return -EDEADLK; WARN_ON(IS_ERR(c_st)); } + + return 0; } /* release unclaimed pipeline resource */ @@ -1266,9 +1270,8 @@ if (WARN_ON(IS_ERR_OR_NULL(st))) return -EINVAL; - komeda_pipeline_unbound_components(pipe, st); + return komeda_pipeline_unbound_components(pipe, st); - return 0; } /* Since standalone disabled components must be disabled separately and in the only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/aspeed/aspeed_gfx_drv.c +++ linux-riscv-6.5.0/drivers/gpu/drm/aspeed/aspeed_gfx_drv.c @@ -351,20 +351,25 @@ return ret; } -static int aspeed_gfx_remove(struct platform_device *pdev) +static void aspeed_gfx_remove(struct platform_device *pdev) { struct drm_device *drm = platform_get_drvdata(pdev); sysfs_remove_group(&pdev->dev.kobj, &aspeed_sysfs_attr_group); drm_dev_unregister(drm); aspeed_gfx_unload(drm); + drm_atomic_helper_shutdown(drm); +} - return 0; +static void aspeed_gfx_shutdown(struct platform_device *pdev) +{ + drm_atomic_helper_shutdown(platform_get_drvdata(pdev)); } static struct platform_driver aspeed_gfx_platform_driver = { .probe = aspeed_gfx_probe, - .remove = aspeed_gfx_remove, + .remove_new = aspeed_gfx_remove, + .shutdown = aspeed_gfx_shutdown, .driver = { .name = "aspeed_gfx", .of_match_table = aspeed_gfx_match, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/bridge/Kconfig +++ linux-riscv-6.5.0/drivers/gpu/drm/bridge/Kconfig @@ -181,6 +181,7 @@ select DRM_KMS_HELPER select DRM_MIPI_DSI select DRM_PANEL_BRIDGE + select GENERIC_PHY select GENERIC_PHY_MIPI_DPHY select MFD_SYSCON select MULTIPLEXER @@ -227,6 +228,7 @@ select DRM_KMS_HELPER select DRM_MIPI_DSI select DRM_PANEL_BRIDGE + select GENERIC_PHY select GENERIC_PHY_MIPI_DPHY help The Samsung MIPI DSIM bridge controller driver. @@ -311,6 +313,7 @@ select REGMAP_I2C select DRM_PANEL select DRM_MIPI_DSI + select VIDEOMODE_HELPERS help Toshiba TC358768AXBG/TC358778XBG DSI bridge chip driver. only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/bridge/cadence/Kconfig +++ linux-riscv-6.5.0/drivers/gpu/drm/bridge/cadence/Kconfig @@ -4,6 +4,7 @@ select DRM_KMS_HELPER select DRM_MIPI_DSI select DRM_PANEL_BRIDGE + select GENERIC_PHY select GENERIC_PHY_MIPI_DPHY depends on OF help only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/bridge/ite-it66121.c +++ linux-riscv-6.5.0/drivers/gpu/drm/bridge/ite-it66121.c @@ -884,14 +884,14 @@ mutex_lock(&ctx->lock); ret = it66121_preamble_ddc(ctx); if (ret) { - edid = ERR_PTR(ret); + edid = NULL; goto out_unlock; } ret = regmap_write(ctx->regmap, IT66121_DDC_HEADER_REG, IT66121_DDC_HEADER_EDID); if (ret) { - edid = ERR_PTR(ret); + edid = NULL; goto out_unlock; } @@ -1447,10 +1447,14 @@ struct it66121_ctx *ctx = dev_get_drvdata(dev); mutex_lock(&ctx->lock); - - memcpy(buf, ctx->connector->eld, - min(sizeof(ctx->connector->eld), len)); - + if (!ctx->connector) { + /* Pass en empty ELD if connector not available */ + dev_dbg(dev, "No connector present, passing empty EDID data"); + memset(buf, 0, len); + } else { + memcpy(buf, ctx->connector->eld, + min(sizeof(ctx->connector->eld), len)); + } mutex_unlock(&ctx->lock); return 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/bridge/lontium-lt8912b.c +++ linux-riscv-6.5.0/drivers/gpu/drm/bridge/lontium-lt8912b.c @@ -45,7 +45,6 @@ u8 data_lanes; bool is_power_on; - bool is_attached; }; static int lt8912_write_init_config(struct lt8912 *lt) @@ -559,6 +558,13 @@ struct lt8912 *lt = bridge_to_lt8912(bridge); int ret; + ret = drm_bridge_attach(bridge->encoder, lt->hdmi_port, bridge, + DRM_BRIDGE_ATTACH_NO_CONNECTOR); + if (ret < 0) { + dev_err(lt->dev, "Failed to attach next bridge (%d)\n", ret); + return ret; + } + if (!(flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR)) { ret = lt8912_bridge_connector_init(bridge); if (ret) { @@ -575,8 +581,6 @@ if (ret) goto error; - lt->is_attached = true; - return 0; error: @@ -588,15 +592,10 @@ { struct lt8912 *lt = bridge_to_lt8912(bridge); - if (lt->is_attached) { - lt8912_hard_power_off(lt); - - if (lt->hdmi_port->ops & DRM_BRIDGE_OP_HPD) - drm_bridge_hpd_disable(lt->hdmi_port); + lt8912_hard_power_off(lt); - drm_connector_unregister(<->connector); - drm_connector_cleanup(<->connector); - } + if (lt->connector.dev && lt->hdmi_port->ops & DRM_BRIDGE_OP_HPD) + drm_bridge_hpd_disable(lt->hdmi_port); } static enum drm_connector_status @@ -750,7 +749,6 @@ { struct lt8912 *lt = i2c_get_clientdata(client); - lt8912_bridge_detach(<->bridge); drm_bridge_remove(<->bridge); lt8912_free_i2c(lt); lt8912_put_dt(lt); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/bridge/lontium-lt9611uxc.c +++ linux-riscv-6.5.0/drivers/gpu/drm/bridge/lontium-lt9611uxc.c @@ -927,9 +927,9 @@ init_waitqueue_head(<9611uxc->wq); INIT_WORK(<9611uxc->work, lt9611uxc_hpd_work); - ret = devm_request_threaded_irq(dev, client->irq, NULL, - lt9611uxc_irq_thread_handler, - IRQF_ONESHOT, "lt9611uxc", lt9611uxc); + ret = request_threaded_irq(client->irq, NULL, + lt9611uxc_irq_thread_handler, + IRQF_ONESHOT, "lt9611uxc", lt9611uxc); if (ret) { dev_err(dev, "failed to request irq\n"); goto err_disable_regulators; @@ -965,6 +965,8 @@ return lt9611uxc_audio_init(dev, lt9611uxc); err_remove_bridge: + free_irq(client->irq, lt9611uxc); + cancel_work_sync(<9611uxc->work); drm_bridge_remove(<9611uxc->bridge); err_disable_regulators: @@ -981,7 +983,7 @@ { struct lt9611uxc *lt9611uxc = i2c_get_clientdata(client); - disable_irq(client->irq); + free_irq(client->irq, lt9611uxc); cancel_work_sync(<9611uxc->work); lt9611uxc_audio_exit(lt9611uxc); drm_bridge_remove(<9611uxc->bridge); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/bridge/tc358768.c +++ linux-riscv-6.5.0/drivers/gpu/drm/bridge/tc358768.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include @@ -216,6 +217,10 @@ u32 tmp, orig; tc358768_read(priv, reg, &orig); + + if (priv->error) + return; + tmp = orig & ~mask; tmp |= val & mask; if (tmp != orig) @@ -600,7 +605,7 @@ dev_dbg(priv->dev, "PLL: refclk %lu, fbd %u, prd %u, frs %u\n", clk_get_rate(priv->refclk), fbd, prd, frs); - dev_dbg(priv->dev, "PLL: pll_clk: %u, DSIClk %u, DSIByteClk %u\n", + dev_dbg(priv->dev, "PLL: pll_clk: %u, DSIClk %u, HSByteClk %u\n", priv->dsiclk * 2, priv->dsiclk, priv->dsiclk / 4); dev_dbg(priv->dev, "PLL: pclk %u (panel: %u)\n", tc358768_pll_to_pclk(priv, priv->dsiclk * 2), @@ -623,15 +628,14 @@ return tc358768_clear_error(priv); } -#define TC358768_PRECISION 1000 -static u32 tc358768_ns_to_cnt(u32 ns, u32 period_nsk) +static u32 tc358768_ns_to_cnt(u32 ns, u32 period_ps) { - return (ns * TC358768_PRECISION + period_nsk) / period_nsk; + return DIV_ROUND_UP(ns * 1000, period_ps); } -static u32 tc358768_to_ns(u32 nsk) +static u32 tc358768_ps_to_ns(u32 ps) { - return (nsk / TC358768_PRECISION); + return ps / 1000; } static void tc358768_bridge_pre_enable(struct drm_bridge *bridge) @@ -642,13 +646,15 @@ u32 val, val2, lptxcnt, hact, data_type; s32 raw_val; const struct drm_display_mode *mode; - u32 dsibclk_nsk, dsiclk_nsk, ui_nsk; - u32 dsiclk, dsibclk, video_start; + u32 hsbyteclk_ps, dsiclk_ps, ui_ps; + u32 dsiclk, hsbyteclk, video_start; const u32 internal_delay = 40; int ret, i; + struct videomode vm; + struct device *dev = priv->dev; if (mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS) { - dev_warn_once(priv->dev, "Non-continuous mode unimplemented, falling back to continuous\n"); + dev_warn_once(dev, "Non-continuous mode unimplemented, falling back to continuous\n"); mode_flags &= ~MIPI_DSI_CLOCK_NON_CONTINUOUS; } @@ -656,7 +662,7 @@ ret = tc358768_sw_reset(priv); if (ret) { - dev_err(priv->dev, "Software reset failed: %d\n", ret); + dev_err(dev, "Software reset failed: %d\n", ret); tc358768_hw_disable(priv); return; } @@ -664,45 +670,47 @@ mode = &bridge->encoder->crtc->state->adjusted_mode; ret = tc358768_setup_pll(priv, mode); if (ret) { - dev_err(priv->dev, "PLL setup failed: %d\n", ret); + dev_err(dev, "PLL setup failed: %d\n", ret); tc358768_hw_disable(priv); return; } + drm_display_mode_to_videomode(mode, &vm); + dsiclk = priv->dsiclk; - dsibclk = dsiclk / 4; + hsbyteclk = dsiclk / 4; /* Data Format Control Register */ val = BIT(2) | BIT(1) | BIT(0); /* rdswap_en | dsitx_en | txdt_en */ switch (dsi_dev->format) { case MIPI_DSI_FMT_RGB888: val |= (0x3 << 4); - hact = mode->hdisplay * 3; - video_start = (mode->htotal - mode->hsync_start) * 3; + hact = vm.hactive * 3; + video_start = (vm.hsync_len + vm.hback_porch) * 3; data_type = MIPI_DSI_PACKED_PIXEL_STREAM_24; break; case MIPI_DSI_FMT_RGB666: val |= (0x4 << 4); - hact = mode->hdisplay * 3; - video_start = (mode->htotal - mode->hsync_start) * 3; + hact = vm.hactive * 3; + video_start = (vm.hsync_len + vm.hback_porch) * 3; data_type = MIPI_DSI_PACKED_PIXEL_STREAM_18; break; case MIPI_DSI_FMT_RGB666_PACKED: val |= (0x4 << 4) | BIT(3); - hact = mode->hdisplay * 18 / 8; - video_start = (mode->htotal - mode->hsync_start) * 18 / 8; + hact = vm.hactive * 18 / 8; + video_start = (vm.hsync_len + vm.hback_porch) * 18 / 8; data_type = MIPI_DSI_PIXEL_STREAM_3BYTE_18; break; case MIPI_DSI_FMT_RGB565: val |= (0x5 << 4); - hact = mode->hdisplay * 2; - video_start = (mode->htotal - mode->hsync_start) * 2; + hact = vm.hactive * 2; + video_start = (vm.hsync_len + vm.hback_porch) * 2; data_type = MIPI_DSI_PACKED_PIXEL_STREAM_16; break; default: - dev_err(priv->dev, "Invalid data format (%u)\n", + dev_err(dev, "Invalid data format (%u)\n", dsi_dev->format); tc358768_hw_disable(priv); return; @@ -722,67 +730,67 @@ tc358768_write(priv, TC358768_D0W_CNTRL + i * 4, 0x0000); /* DSI Timings */ - dsibclk_nsk = (u32)div_u64((u64)1000000000 * TC358768_PRECISION, - dsibclk); - dsiclk_nsk = (u32)div_u64((u64)1000000000 * TC358768_PRECISION, dsiclk); - ui_nsk = dsiclk_nsk / 2; - dev_dbg(priv->dev, "dsiclk_nsk: %u\n", dsiclk_nsk); - dev_dbg(priv->dev, "ui_nsk: %u\n", ui_nsk); - dev_dbg(priv->dev, "dsibclk_nsk: %u\n", dsibclk_nsk); + hsbyteclk_ps = (u32)div_u64(PICO, hsbyteclk); + dsiclk_ps = (u32)div_u64(PICO, dsiclk); + ui_ps = dsiclk_ps / 2; + dev_dbg(dev, "dsiclk: %u ps, ui %u ps, hsbyteclk %u ps\n", dsiclk_ps, + ui_ps, hsbyteclk_ps); /* LP11 > 100us for D-PHY Rx Init */ - val = tc358768_ns_to_cnt(100 * 1000, dsibclk_nsk) - 1; - dev_dbg(priv->dev, "LINEINITCNT: 0x%x\n", val); + val = tc358768_ns_to_cnt(100 * 1000, hsbyteclk_ps) - 1; + dev_dbg(dev, "LINEINITCNT: %u\n", val); tc358768_write(priv, TC358768_LINEINITCNT, val); /* LPTimeCnt > 50ns */ - val = tc358768_ns_to_cnt(50, dsibclk_nsk) - 1; + val = tc358768_ns_to_cnt(50, hsbyteclk_ps) - 1; lptxcnt = val; - dev_dbg(priv->dev, "LPTXTIMECNT: 0x%x\n", val); + dev_dbg(dev, "LPTXTIMECNT: %u\n", val); tc358768_write(priv, TC358768_LPTXTIMECNT, val); /* 38ns < TCLK_PREPARE < 95ns */ - val = tc358768_ns_to_cnt(65, dsibclk_nsk) - 1; + val = tc358768_ns_to_cnt(65, hsbyteclk_ps) - 1; + dev_dbg(dev, "TCLK_PREPARECNT %u\n", val); /* TCLK_PREPARE + TCLK_ZERO > 300ns */ - val2 = tc358768_ns_to_cnt(300 - tc358768_to_ns(2 * ui_nsk), - dsibclk_nsk) - 2; + val2 = tc358768_ns_to_cnt(300 - tc358768_ps_to_ns(2 * ui_ps), + hsbyteclk_ps) - 2; + dev_dbg(dev, "TCLK_ZEROCNT %u\n", val2); val |= val2 << 8; - dev_dbg(priv->dev, "TCLK_HEADERCNT: 0x%x\n", val); tc358768_write(priv, TC358768_TCLK_HEADERCNT, val); /* TCLK_TRAIL > 60ns AND TEOT <= 105 ns + 12*UI */ - raw_val = tc358768_ns_to_cnt(60 + tc358768_to_ns(2 * ui_nsk), dsibclk_nsk) - 5; + raw_val = tc358768_ns_to_cnt(60 + tc358768_ps_to_ns(2 * ui_ps), hsbyteclk_ps) - 5; val = clamp(raw_val, 0, 127); - dev_dbg(priv->dev, "TCLK_TRAILCNT: 0x%x\n", val); + dev_dbg(dev, "TCLK_TRAILCNT: %u\n", val); tc358768_write(priv, TC358768_TCLK_TRAILCNT, val); /* 40ns + 4*UI < THS_PREPARE < 85ns + 6*UI */ - val = 50 + tc358768_to_ns(4 * ui_nsk); - val = tc358768_ns_to_cnt(val, dsibclk_nsk) - 1; + val = 50 + tc358768_ps_to_ns(4 * ui_ps); + val = tc358768_ns_to_cnt(val, hsbyteclk_ps) - 1; + dev_dbg(dev, "THS_PREPARECNT %u\n", val); /* THS_PREPARE + THS_ZERO > 145ns + 10*UI */ - raw_val = tc358768_ns_to_cnt(145 - tc358768_to_ns(3 * ui_nsk), dsibclk_nsk) - 10; + raw_val = tc358768_ns_to_cnt(145 - tc358768_ps_to_ns(3 * ui_ps), hsbyteclk_ps) - 10; val2 = clamp(raw_val, 0, 127); + dev_dbg(dev, "THS_ZEROCNT %u\n", val2); val |= val2 << 8; - dev_dbg(priv->dev, "THS_HEADERCNT: 0x%x\n", val); tc358768_write(priv, TC358768_THS_HEADERCNT, val); /* TWAKEUP > 1ms in lptxcnt steps */ - val = tc358768_ns_to_cnt(1020000, dsibclk_nsk); + val = tc358768_ns_to_cnt(1020000, hsbyteclk_ps); val = val / (lptxcnt + 1) - 1; - dev_dbg(priv->dev, "TWAKEUP: 0x%x\n", val); + dev_dbg(dev, "TWAKEUP: %u\n", val); tc358768_write(priv, TC358768_TWAKEUP, val); /* TCLK_POSTCNT > 60ns + 52*UI */ - val = tc358768_ns_to_cnt(60 + tc358768_to_ns(52 * ui_nsk), - dsibclk_nsk) - 3; - dev_dbg(priv->dev, "TCLK_POSTCNT: 0x%x\n", val); + val = tc358768_ns_to_cnt(60 + tc358768_ps_to_ns(52 * ui_ps), + hsbyteclk_ps) - 3; + dev_dbg(dev, "TCLK_POSTCNT: %u\n", val); tc358768_write(priv, TC358768_TCLK_POSTCNT, val); /* max(60ns + 4*UI, 8*UI) < THS_TRAILCNT < 105ns + 12*UI */ - raw_val = tc358768_ns_to_cnt(60 + tc358768_to_ns(18 * ui_nsk), - dsibclk_nsk) - 4; + raw_val = tc358768_ns_to_cnt(60 + tc358768_ps_to_ns(18 * ui_ps), + hsbyteclk_ps) - 4; val = clamp(raw_val, 0, 15); - dev_dbg(priv->dev, "THS_TRAILCNT: 0x%x\n", val); + dev_dbg(dev, "THS_TRAILCNT: %u\n", val); tc358768_write(priv, TC358768_THS_TRAILCNT, val); val = BIT(0); @@ -790,16 +798,17 @@ val |= BIT(i + 1); tc358768_write(priv, TC358768_HSTXVREGEN, val); - if (!(mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS)) - tc358768_write(priv, TC358768_TXOPTIONCNTRL, 0x1); + tc358768_write(priv, TC358768_TXOPTIONCNTRL, + (mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS) ? 0 : BIT(0)); /* TXTAGOCNT[26:16] RXTASURECNT[10:0] */ - val = tc358768_to_ns((lptxcnt + 1) * dsibclk_nsk * 4); - val = tc358768_ns_to_cnt(val, dsibclk_nsk) / 4 - 1; - val2 = tc358768_ns_to_cnt(tc358768_to_ns((lptxcnt + 1) * dsibclk_nsk), - dsibclk_nsk) - 2; + val = tc358768_ps_to_ns((lptxcnt + 1) * hsbyteclk_ps * 4); + val = tc358768_ns_to_cnt(val, hsbyteclk_ps) / 4 - 1; + dev_dbg(dev, "TXTAGOCNT: %u\n", val); + val2 = tc358768_ns_to_cnt(tc358768_ps_to_ns((lptxcnt + 1) * hsbyteclk_ps), + hsbyteclk_ps) - 2; + dev_dbg(dev, "RXTASURECNT: %u\n", val2); val = val << 16 | val2; - dev_dbg(priv->dev, "BTACNTRL1: 0x%x\n", val); tc358768_write(priv, TC358768_BTACNTRL1, val); /* START[0] */ @@ -810,43 +819,43 @@ tc358768_write(priv, TC358768_DSI_EVENT, 0); /* vact */ - tc358768_write(priv, TC358768_DSI_VACT, mode->vdisplay); + tc358768_write(priv, TC358768_DSI_VACT, vm.vactive); /* vsw */ - tc358768_write(priv, TC358768_DSI_VSW, - mode->vsync_end - mode->vsync_start); + tc358768_write(priv, TC358768_DSI_VSW, vm.vsync_len); + /* vbp */ - tc358768_write(priv, TC358768_DSI_VBPR, - mode->vtotal - mode->vsync_end); + tc358768_write(priv, TC358768_DSI_VBPR, vm.vback_porch); /* hsw * byteclk * ndl / pclk */ - val = (u32)div_u64((mode->hsync_end - mode->hsync_start) * - ((u64)priv->dsiclk / 4) * priv->dsi_lanes, - mode->clock * 1000); + val = (u32)div_u64(vm.hsync_len * + (u64)hsbyteclk * priv->dsi_lanes, + vm.pixelclock); tc358768_write(priv, TC358768_DSI_HSW, val); /* hbp * byteclk * ndl / pclk */ - val = (u32)div_u64((mode->htotal - mode->hsync_end) * - ((u64)priv->dsiclk / 4) * priv->dsi_lanes, - mode->clock * 1000); + val = (u32)div_u64(vm.hback_porch * + (u64)hsbyteclk * priv->dsi_lanes, + vm.pixelclock); tc358768_write(priv, TC358768_DSI_HBPR, val); } else { /* Set event mode */ tc358768_write(priv, TC358768_DSI_EVENT, 1); /* vact */ - tc358768_write(priv, TC358768_DSI_VACT, mode->vdisplay); + tc358768_write(priv, TC358768_DSI_VACT, vm.vactive); /* vsw (+ vbp) */ tc358768_write(priv, TC358768_DSI_VSW, - mode->vtotal - mode->vsync_start); + vm.vsync_len + vm.vback_porch); + /* vbp (not used in event mode) */ tc358768_write(priv, TC358768_DSI_VBPR, 0); /* (hsw + hbp) * byteclk * ndl / pclk */ - val = (u32)div_u64((mode->htotal - mode->hsync_start) * - ((u64)priv->dsiclk / 4) * priv->dsi_lanes, - mode->clock * 1000); + val = (u32)div_u64((vm.hsync_len + vm.hback_porch) * + (u64)hsbyteclk * priv->dsi_lanes, + vm.pixelclock); tc358768_write(priv, TC358768_DSI_HSW, val); /* hbp (not used in event mode) */ @@ -857,11 +866,12 @@ tc358768_write(priv, TC358768_DSI_HACT, hact); /* VSYNC polarity */ - if (!(mode->flags & DRM_MODE_FLAG_NVSYNC)) - tc358768_update_bits(priv, TC358768_CONFCTL, BIT(5), BIT(5)); + tc358768_update_bits(priv, TC358768_CONFCTL, BIT(5), + (mode->flags & DRM_MODE_FLAG_PVSYNC) ? BIT(5) : 0); + /* HSYNC polarity */ - if (mode->flags & DRM_MODE_FLAG_PHSYNC) - tc358768_update_bits(priv, TC358768_PP_MISC, BIT(0), BIT(0)); + tc358768_update_bits(priv, TC358768_PP_MISC, BIT(0), + (mode->flags & DRM_MODE_FLAG_PHSYNC) ? BIT(0) : 0); /* Start DSI Tx */ tc358768_write(priv, TC358768_DSI_START, 0x1); @@ -891,7 +901,7 @@ ret = tc358768_clear_error(priv); if (ret) { - dev_err(priv->dev, "Bridge pre_enable failed: %d\n", ret); + dev_err(dev, "Bridge pre_enable failed: %d\n", ret); tc358768_bridge_disable(bridge); tc358768_bridge_post_disable(bridge); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/bridge/ti-sn65dsi86.c +++ linux-riscv-6.5.0/drivers/gpu/drm/bridge/ti-sn65dsi86.c @@ -692,7 +692,7 @@ return container_of(bridge, struct ti_sn65dsi86, bridge); } -static int ti_sn_attach_host(struct ti_sn65dsi86 *pdata) +static int ti_sn_attach_host(struct auxiliary_device *adev, struct ti_sn65dsi86 *pdata) { int val; struct mipi_dsi_host *host; @@ -707,7 +707,7 @@ if (!host) return -EPROBE_DEFER; - dsi = devm_mipi_dsi_device_register_full(dev, host, &info); + dsi = devm_mipi_dsi_device_register_full(&adev->dev, host, &info); if (IS_ERR(dsi)) return PTR_ERR(dsi); @@ -725,7 +725,7 @@ pdata->dsi = dsi; - return devm_mipi_dsi_attach(dev, dsi); + return devm_mipi_dsi_attach(&adev->dev, dsi); } static int ti_sn_bridge_attach(struct drm_bridge *bridge, @@ -1298,9 +1298,9 @@ struct device_node *np = pdata->dev->of_node; int ret; - pdata->next_bridge = devm_drm_of_get_bridge(pdata->dev, np, 1, 0); + pdata->next_bridge = devm_drm_of_get_bridge(&adev->dev, np, 1, 0); if (IS_ERR(pdata->next_bridge)) - return dev_err_probe(pdata->dev, PTR_ERR(pdata->next_bridge), + return dev_err_probe(&adev->dev, PTR_ERR(pdata->next_bridge), "failed to create panel bridge\n"); ti_sn_bridge_parse_lanes(pdata, np); @@ -1319,9 +1319,9 @@ drm_bridge_add(&pdata->bridge); - ret = ti_sn_attach_host(pdata); + ret = ti_sn_attach_host(adev, pdata); if (ret) { - dev_err_probe(pdata->dev, ret, "failed to attach dsi host\n"); + dev_err_probe(&adev->dev, ret, "failed to attach dsi host\n"); goto err_remove_bridge; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/display/drm_dp_mst_topology.c +++ linux-riscv-6.5.0/drivers/gpu/drm/display/drm_dp_mst_topology.c @@ -2574,14 +2574,14 @@ struct drm_dp_mst_branch *found_mstb; struct drm_dp_mst_port *port; + if (!mstb) + return NULL; + if (memcmp(mstb->guid, guid, 16) == 0) return mstb; list_for_each_entry(port, &mstb->ports, next) { - if (!port->mstb) - continue; - found_mstb = get_mst_branch_device_by_guid_helper(port->mstb, guid); if (found_mstb) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/drm_lease.c +++ linux-riscv-6.5.0/drivers/gpu/drm/drm_lease.c @@ -510,8 +510,8 @@ /* Handle leased objects, if any */ idr_init(&leases); if (object_count != 0) { - object_ids = memdup_user(u64_to_user_ptr(cl->object_ids), - array_size(object_count, sizeof(__u32))); + object_ids = memdup_array_user(u64_to_user_ptr(cl->object_ids), + object_count, sizeof(__u32)); if (IS_ERR(object_ids)) { ret = PTR_ERR(object_ids); idr_destroy(&leases); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c +++ linux-riscv-6.5.0/drivers/gpu/drm/drm_panel_orientation_quirks.c @@ -38,6 +38,14 @@ .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, }; +static const struct drm_dmi_panel_orientation_data gpd_onemix2s = { + .width = 1200, + .height = 1920, + .bios_dates = (const char * const []){ "05/21/2018", "10/26/2018", + "03/04/2019", NULL }, + .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, +}; + static const struct drm_dmi_panel_orientation_data gpd_pocket = { .width = 1200, .height = 1920, @@ -401,6 +409,14 @@ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "LTH17"), }, .driver_data = (void *)&lcd800x1280_rightside_up, + }, { /* One Mix 2S (generic strings, also match on bios date) */ + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Default string"), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Default string"), + DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Default string"), + DMI_EXACT_MATCH(DMI_BOARD_NAME, "Default string"), + }, + .driver_data = (void *)&gpd_onemix2s, }, {} }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/drm_syncobj.c +++ linux-riscv-6.5.0/drivers/gpu/drm/drm_syncobj.c @@ -1015,7 +1015,8 @@ fence = drm_syncobj_fence_get(syncobjs[i]); if (!fence || dma_fence_chain_find_seqno(&fence, points[i])) { dma_fence_put(fence); - if (flags & DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT) { + if (flags & (DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT | + DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE)) { continue; } else { timeout = -EINVAL; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/gma500/psb_drv.h +++ linux-riscv-6.5.0/drivers/gpu/drm/gma500/psb_drv.h @@ -424,6 +424,7 @@ uint32_t pipestat[PSB_NUM_PIPE]; spinlock_t irqmask_lock; + bool irq_enabled; /* Power */ bool pm_initialized; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/gma500/psb_irq.c +++ linux-riscv-6.5.0/drivers/gpu/drm/gma500/psb_irq.c @@ -327,6 +327,8 @@ gma_irq_postinstall(dev); + dev_priv->irq_enabled = true; + return 0; } @@ -337,6 +339,9 @@ unsigned long irqflags; unsigned int i; + if (!dev_priv->irq_enabled) + return; + spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags); if (dev_priv->ops->hotplug_enable) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/display/icl_dsi.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/display/icl_dsi.c @@ -1415,6 +1415,13 @@ static enum drm_mode_status gen11_dsi_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode) { + struct drm_i915_private *i915 = to_i915(connector->dev); + enum drm_mode_status status; + + status = intel_cpu_transcoder_mode_valid(i915, mode); + if (status != MODE_OK) + return status; + /* FIXME: DSC? */ return intel_dsi_mode_valid(connector, mode); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/display/intel_cdclk.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/display/intel_cdclk.c @@ -2680,6 +2680,18 @@ for_each_pipe(dev_priv, pipe) min_cdclk = max(cdclk_state->min_cdclk[pipe], min_cdclk); + /* + * Avoid glk_force_audio_cdclk() causing excessive screen + * blinking when multiple pipes are active by making sure + * CDCLK frequency is always high enough for audio. With a + * single active pipe we can always change CDCLK frequency + * by changing the cd2x divider (see glk_cdclk_table[]) and + * thus a full modeset won't be needed then. + */ + if (IS_GEMINILAKE(dev_priv) && cdclk_state->active_pipes && + !is_power_of_2(cdclk_state->active_pipes)) + min_cdclk = max(2 * 96000, min_cdclk); + if (min_cdclk > dev_priv->display.cdclk.max_cdclk_freq) { drm_dbg_kms(&dev_priv->drm, "required cdclk (%d kHz) exceeds max (%d kHz)\n", only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/display/intel_crt.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/display/intel_crt.c @@ -348,8 +348,13 @@ struct drm_device *dev = connector->dev; struct drm_i915_private *dev_priv = to_i915(dev); int max_dotclk = dev_priv->max_dotclk_freq; + enum drm_mode_status status; int max_clock; + status = intel_cpu_transcoder_mode_valid(dev_priv, mode); + if (status != MODE_OK) + return status; + if (mode->flags & DRM_MODE_FLAG_DBLSCAN) return MODE_NO_DBLESCAN; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/display/intel_cx0_phy.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/display/intel_cx0_phy.c @@ -2554,8 +2554,7 @@ drm_warn(&i915->drm, "PHY %c failed to bring out of SOC reset after %dus.\n", phy_name(phy), XELPDP_PORT_BUF_SOC_READY_TIMEOUT_US); - intel_de_rmw(i915, XELPDP_PORT_BUF_CTL2(port), - XELPDP_LANE_PIPE_RESET(0) | XELPDP_LANE_PIPE_RESET(1), + intel_de_rmw(i915, XELPDP_PORT_BUF_CTL2(port), lane_pipe_reset, lane_pipe_reset); if (__intel_de_wait_for_register(i915, XELPDP_PORT_BUF_CTL2(port), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/display/intel_display.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/display/intel_display.c @@ -7271,7 +7271,7 @@ for_each_new_intel_crtc_in_state(state, crtc, new_crtc_state, i) intel_color_cleanup_commit(new_crtc_state); - drm_atomic_helper_cleanup_planes(dev, &state->base); + drm_atomic_helper_unprepare_planes(dev, &state->base); intel_runtime_pm_put(&dev_priv->runtime_pm, state->wakeref); return ret; } @@ -7725,6 +7725,16 @@ mode->vtotal > vtotal_max) return MODE_V_ILLEGAL; + return MODE_OK; +} + +enum drm_mode_status intel_cpu_transcoder_mode_valid(struct drm_i915_private *dev_priv, + const struct drm_display_mode *mode) +{ + /* + * Additional transcoder timing limits, + * excluding BXT/GLK DSI transcoders. + */ if (DISPLAY_VER(dev_priv) >= 5) { if (mode->hdisplay < 64 || mode->htotal - mode->hdisplay < 32) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/display/intel_display.h +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/display/intel_display.h @@ -405,6 +405,9 @@ intel_mode_valid_max_plane_size(struct drm_i915_private *dev_priv, const struct drm_display_mode *mode, bool bigjoiner); +enum drm_mode_status +intel_cpu_transcoder_mode_valid(struct drm_i915_private *i915, + const struct drm_display_mode *mode); enum phy intel_port_to_phy(struct drm_i915_private *i915, enum port port); bool is_trans_port_sync_mode(const struct intel_crtc_state *state); bool is_trans_port_sync_master(const struct intel_crtc_state *state); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/display/intel_dmc.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/display/intel_dmc.c @@ -389,7 +389,7 @@ enum intel_dmc_id dmc_id; /* TODO: check if the following applies to all D13+ platforms. */ - if (!IS_DG2(i915) && !IS_TIGERLAKE(i915)) + if (!IS_TIGERLAKE(i915)) return; for_each_dmc_id(dmc_id) { @@ -493,6 +493,45 @@ intel_de_rmw(i915, PIPEDMC_CONTROL(pipe), PIPEDMC_ENABLE, 0); } +static bool is_dmc_evt_ctl_reg(struct drm_i915_private *i915, + enum intel_dmc_id dmc_id, i915_reg_t reg) +{ + u32 offset = i915_mmio_reg_offset(reg); + u32 start = i915_mmio_reg_offset(DMC_EVT_CTL(i915, dmc_id, 0)); + u32 end = i915_mmio_reg_offset(DMC_EVT_CTL(i915, dmc_id, DMC_EVENT_HANDLER_COUNT_GEN12)); + + return offset >= start && offset < end; +} + +static bool disable_dmc_evt(struct drm_i915_private *i915, + enum intel_dmc_id dmc_id, + i915_reg_t reg, u32 data) +{ + if (!is_dmc_evt_ctl_reg(i915, dmc_id, reg)) + return false; + + /* keep all pipe DMC events disabled by default */ + if (dmc_id != DMC_FW_MAIN) + return true; + + return false; +} + +static u32 dmc_mmiodata(struct drm_i915_private *i915, + struct intel_dmc *dmc, + enum intel_dmc_id dmc_id, int i) +{ + if (disable_dmc_evt(i915, dmc_id, + dmc->dmc_info[dmc_id].mmioaddr[i], + dmc->dmc_info[dmc_id].mmiodata[i])) + return REG_FIELD_PREP(DMC_EVT_CTL_TYPE_MASK, + DMC_EVT_CTL_TYPE_EDGE_0_1) | + REG_FIELD_PREP(DMC_EVT_CTL_EVENT_ID_MASK, + DMC_EVT_CTL_EVENT_ID_FALSE); + else + return dmc->dmc_info[dmc_id].mmiodata[i]; +} + /** * intel_dmc_load_program() - write the firmware from memory to register. * @i915: i915 drm device. @@ -532,7 +571,7 @@ for_each_dmc_id(dmc_id) { for (i = 0; i < dmc->dmc_info[dmc_id].mmio_count; i++) { intel_de_write(i915, dmc->dmc_info[dmc_id].mmioaddr[i], - dmc->dmc_info[dmc_id].mmiodata[i]); + dmc_mmiodata(i915, dmc, dmc_id, i)); } } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/display/intel_dp_mst.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/display/intel_dp_mst.c @@ -921,6 +921,10 @@ return 0; } + *status = intel_cpu_transcoder_mode_valid(dev_priv, mode); + if (*status != MODE_OK) + return 0; + if (mode->flags & DRM_MODE_FLAG_DBLSCAN) { *status = MODE_NO_DBLESCAN; return 0; @@ -955,6 +959,10 @@ if (intel_dp_need_bigjoiner(intel_dp, mode->hdisplay, target_clock)) { bigjoiner = true; max_dotclk *= 2; + + /* TODO: add support for bigjoiner */ + *status = MODE_CLOCK_HIGH; + return 0; } if (DISPLAY_VER(dev_priv) >= 10 && @@ -988,11 +996,15 @@ * Big joiner configuration needs DSC for TGL which is not true for * XE_LPD where uncompressed joiner is supported. */ - if (DISPLAY_VER(dev_priv) < 13 && bigjoiner && !dsc) - return MODE_CLOCK_HIGH; + if (DISPLAY_VER(dev_priv) < 13 && bigjoiner && !dsc) { + *status = MODE_CLOCK_HIGH; + return 0; + } - if (mode_rate > max_rate && !dsc) - return MODE_CLOCK_HIGH; + if (mode_rate > max_rate && !dsc) { + *status = MODE_CLOCK_HIGH; + return 0; + } *status = intel_mode_valid_max_plane_size(dev_priv, mode, false); return 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/display/intel_dvo.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/display/intel_dvo.c @@ -218,10 +218,16 @@ { struct intel_connector *connector = to_intel_connector(_connector); struct intel_dvo *intel_dvo = intel_attached_dvo(connector); + struct drm_i915_private *i915 = to_i915(connector->base.dev); const struct drm_display_mode *fixed_mode = intel_panel_fixed_mode(connector, mode); int max_dotclk = to_i915(connector->base.dev)->max_dotclk_freq; int target_clock = mode->clock; + enum drm_mode_status status; + + status = intel_cpu_transcoder_mode_valid(i915, mode); + if (status != MODE_OK) + return status; if (mode->flags & DRM_MODE_FLAG_DBLSCAN) return MODE_NO_DBLESCAN; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/display/intel_hdmi.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/display/intel_hdmi.c @@ -1986,6 +1986,10 @@ bool ycbcr_420_only; enum intel_output_format sink_format; + status = intel_cpu_transcoder_mode_valid(dev_priv, mode); + if (status != MODE_OK) + return status; + if ((mode->flags & DRM_MODE_FLAG_3D_MASK) == DRM_MODE_FLAG_3D_FRAME_PACKING) clock *= 2; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/display/intel_lvds.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/display/intel_lvds.c @@ -389,11 +389,16 @@ struct drm_display_mode *mode) { struct intel_connector *connector = to_intel_connector(_connector); + struct drm_i915_private *i915 = to_i915(connector->base.dev); const struct drm_display_mode *fixed_mode = intel_panel_fixed_mode(connector, mode); int max_pixclk = to_i915(connector->base.dev)->max_dotclk_freq; enum drm_mode_status status; + status = intel_cpu_transcoder_mode_valid(i915, mode); + if (status != MODE_OK) + return status; + if (mode->flags & DRM_MODE_FLAG_DBLSCAN) return MODE_NO_DBLESCAN; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/display/intel_sdvo.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/display/intel_sdvo.c @@ -1906,13 +1906,19 @@ intel_sdvo_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode) { + struct drm_i915_private *i915 = to_i915(connector->dev); struct intel_sdvo *intel_sdvo = intel_attached_sdvo(to_intel_connector(connector)); struct intel_sdvo_connector *intel_sdvo_connector = to_intel_sdvo_connector(connector); - int max_dotclk = to_i915(connector->dev)->max_dotclk_freq; bool has_hdmi_sink = intel_has_hdmi_sink(intel_sdvo_connector, connector->state); + int max_dotclk = i915->max_dotclk_freq; + enum drm_mode_status status; int clock = mode->clock; + status = intel_cpu_transcoder_mode_valid(i915, mode); + if (status != MODE_OK) + return status; + if (mode->flags & DRM_MODE_FLAG_DBLSCAN) return MODE_NO_DBLESCAN; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/display/intel_tc.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/display/intel_tc.c @@ -58,7 +58,7 @@ struct delayed_work link_reset_work; int link_refcount; bool legacy_port:1; - char port_name[8]; + const char *port_name; enum tc_port_mode mode; enum tc_port_mode init_mode; enum phy_fia phy_fia; @@ -1841,8 +1841,12 @@ else tc->phy_ops = &icl_tc_phy_ops; - snprintf(tc->port_name, sizeof(tc->port_name), - "%c/TC#%d", port_name(port), tc_port + 1); + tc->port_name = kasprintf(GFP_KERNEL, "%c/TC#%d", port_name(port), + tc_port + 1); + if (!tc->port_name) { + kfree(tc); + return -ENOMEM; + } mutex_init(&tc->lock); /* TODO: Combine the two works */ @@ -1863,6 +1867,7 @@ { intel_tc_port_suspend(dig_port); + kfree(dig_port->tc->port_name); kfree(dig_port->tc); dig_port->tc = NULL; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/display/intel_tv.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/display/intel_tv.c @@ -958,8 +958,14 @@ intel_tv_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode) { + struct drm_i915_private *i915 = to_i915(connector->dev); const struct tv_mode *tv_mode = intel_tv_mode_find(connector->state); - int max_dotclk = to_i915(connector->dev)->max_dotclk_freq; + int max_dotclk = i915->max_dotclk_freq; + enum drm_mode_status status; + + status = intel_cpu_transcoder_mode_valid(i915, mode); + if (status != MODE_OK) + return status; if (mode->flags & DRM_MODE_FLAG_DBLSCAN) return MODE_NO_DBLESCAN; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/display/vlv_dsi.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/display/vlv_dsi.c @@ -1563,9 +1563,25 @@ .destroy = intel_dsi_encoder_destroy, }; +static enum drm_mode_status vlv_dsi_mode_valid(struct drm_connector *connector, + struct drm_display_mode *mode) +{ + struct drm_i915_private *i915 = to_i915(connector->dev); + + if (IS_VALLEYVIEW(i915) || IS_CHERRYVIEW(i915)) { + enum drm_mode_status status; + + status = intel_cpu_transcoder_mode_valid(i915, mode); + if (status != MODE_OK) + return status; + } + + return intel_dsi_mode_valid(connector, mode); +} + static const struct drm_connector_helper_funcs intel_dsi_connector_helper_funcs = { .get_modes = intel_dsi_get_modes, - .mode_valid = intel_dsi_mode_valid, + .mode_valid = vlv_dsi_mode_valid, .atomic_check = intel_digital_connector_atomic_check, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/gem/i915_gem_context.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/gem/i915_gem_context.c @@ -844,6 +844,7 @@ if (idx >= pc->num_user_engines) return -EINVAL; + idx = array_index_nospec(idx, pc->num_user_engines); pe = &pc->user_engines[idx]; /* Only render engine supports RPCS configuration. */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/gem/i915_gem_mman.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/gem/i915_gem_mman.c @@ -235,6 +235,7 @@ case 0: case -EAGAIN: case -ENOSPC: /* transient failure to evict? */ + case -ENOBUFS: /* temporarily out of fences? */ case -ERESTARTSYS: case -EINTR: case -EBUSY: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/gt/intel_engine_user.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/gt/intel_engine_user.c @@ -42,12 +42,15 @@ (struct llist_head *)&engine->i915->uabi_engines); } -static const u8 uabi_classes[] = { +#define I915_NO_UABI_CLASS ((u16)(-1)) + +static const u16 uabi_classes[] = { [RENDER_CLASS] = I915_ENGINE_CLASS_RENDER, [COPY_ENGINE_CLASS] = I915_ENGINE_CLASS_COPY, [VIDEO_DECODE_CLASS] = I915_ENGINE_CLASS_VIDEO, [VIDEO_ENHANCEMENT_CLASS] = I915_ENGINE_CLASS_VIDEO_ENHANCE, [COMPUTE_CLASS] = I915_ENGINE_CLASS_COMPUTE, + [OTHER_CLASS] = I915_NO_UABI_CLASS, /* Not exposed to users, no uabi class. */ }; static int engine_cmp(void *priv, const struct list_head *A, @@ -202,6 +205,7 @@ void intel_engines_driver_register(struct drm_i915_private *i915) { + u16 name_instance, other_instance = 0; struct legacy_ring ring = {}; struct list_head *it, *next; struct rb_node **p, *prev; @@ -219,27 +223,28 @@ if (intel_gt_has_unrecoverable_error(engine->gt)) continue; /* ignore incomplete engines */ - /* - * We don't want to expose the GSC engine to the users, but we - * still rename it so it is easier to identify in the debug logs - */ - if (engine->id == GSC0) { - engine_rename(engine, "gsc", 0); - continue; - } - GEM_BUG_ON(engine->class >= ARRAY_SIZE(uabi_classes)); engine->uabi_class = uabi_classes[engine->class]; + if (engine->uabi_class == I915_NO_UABI_CLASS) { + name_instance = other_instance++; + } else { + GEM_BUG_ON(engine->uabi_class >= + ARRAY_SIZE(i915->engine_uabi_class_count)); + name_instance = + i915->engine_uabi_class_count[engine->uabi_class]++; + } + engine->uabi_instance = name_instance; - GEM_BUG_ON(engine->uabi_class >= - ARRAY_SIZE(i915->engine_uabi_class_count)); - engine->uabi_instance = - i915->engine_uabi_class_count[engine->uabi_class]++; - - /* Replace the internal name with the final user facing name */ + /* + * Replace the internal name with the final user and log facing + * name. + */ engine_rename(engine, intel_engine_class_repr(engine->class), - engine->uabi_instance); + name_instance); + + if (engine->uabi_class == I915_NO_UABI_CLASS) + continue; rb_link_node(&engine->uabi_node, prev, p); rb_insert_color(&engine->uabi_node, &i915->uabi_engines); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/gt/intel_gt.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/gt/intel_gt.c @@ -967,8 +967,6 @@ err: i915_probe_error(i915, "Failed to initialize %s! (%d)\n", gtdef->name, ret); - intel_gt_release_all(i915); - return ret; } @@ -987,15 +985,6 @@ return 0; } -void intel_gt_release_all(struct drm_i915_private *i915) -{ - struct intel_gt *gt; - unsigned int id; - - for_each_gt(gt, i915, id) - i915->gt[id] = NULL; -} - void intel_gt_info_print(const struct intel_gt_info *info, struct drm_printer *p) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/gt/intel_gt_mcr.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/gt/intel_gt_mcr.c @@ -376,9 +376,26 @@ * driver threads, but also with hardware/firmware agents. A dedicated * locking register is used. */ - if (GRAPHICS_VER_FULL(gt->i915) >= IP_VER(12, 70)) + if (GRAPHICS_VER_FULL(gt->i915) >= IP_VER(12, 70)) { + /* + * The steering control and semaphore registers are inside an + * "always on" power domain with respect to RC6. However there + * are some issues if higher-level platform sleep states are + * entering/exiting at the same time these registers are + * accessed. Grabbing GT forcewake and holding it over the + * entire lock/steer/unlock cycle ensures that those sleep + * states have been fully exited before we access these + * registers. This wakeref will be released in the unlock + * routine. + * + * This is expected to become a formally documented/numbered + * workaround soon. + */ + intel_uncore_forcewake_get(gt->uncore, FORCEWAKE_GT); + err = wait_for(intel_uncore_read_fw(gt->uncore, MTL_STEER_SEMAPHORE) == 0x1, 100); + } /* * Even on platforms with a hardware lock, we'll continue to grab @@ -415,8 +432,11 @@ { spin_unlock_irqrestore(>->mcr_lock, flags); - if (GRAPHICS_VER_FULL(gt->i915) >= IP_VER(12, 70)) + if (GRAPHICS_VER_FULL(gt->i915) >= IP_VER(12, 70)) { intel_uncore_write_fw(gt->uncore, MTL_STEER_SEMAPHORE, 0x1); + + intel_uncore_forcewake_put(gt->uncore, FORCEWAKE_GT); + } } /** only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/gt/intel_rc6.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/gt/intel_rc6.c @@ -584,19 +584,23 @@ static void rc6_res_reg_init(struct intel_rc6 *rc6) { - memset(rc6->res_reg, INVALID_MMIO_REG.reg, sizeof(rc6->res_reg)); + i915_reg_t res_reg[INTEL_RC6_RES_MAX] = { + [0 ... INTEL_RC6_RES_MAX - 1] = INVALID_MMIO_REG, + }; switch (rc6_to_gt(rc6)->type) { case GT_MEDIA: - rc6->res_reg[INTEL_RC6_RES_RC6] = MTL_MEDIA_MC6; + res_reg[INTEL_RC6_RES_RC6] = MTL_MEDIA_MC6; break; default: - rc6->res_reg[INTEL_RC6_RES_RC6_LOCKED] = GEN6_GT_GFX_RC6_LOCKED; - rc6->res_reg[INTEL_RC6_RES_RC6] = GEN6_GT_GFX_RC6; - rc6->res_reg[INTEL_RC6_RES_RC6p] = GEN6_GT_GFX_RC6p; - rc6->res_reg[INTEL_RC6_RES_RC6pp] = GEN6_GT_GFX_RC6pp; + res_reg[INTEL_RC6_RES_RC6_LOCKED] = GEN6_GT_GFX_RC6_LOCKED; + res_reg[INTEL_RC6_RES_RC6] = GEN6_GT_GFX_RC6; + res_reg[INTEL_RC6_RES_RC6p] = GEN6_GT_GFX_RC6p; + res_reg[INTEL_RC6_RES_RC6pp] = GEN6_GT_GFX_RC6pp; break; } + + memcpy(rc6->res_reg, res_reg, sizeof(res_reg)); } void intel_rc6_init(struct intel_rc6 *rc6) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/i915_driver.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/i915_driver.c @@ -775,7 +775,7 @@ ret = i915_driver_mmio_probe(i915); if (ret < 0) - goto out_tiles_cleanup; + goto out_runtime_pm_put; ret = i915_driver_hw_probe(i915); if (ret < 0) @@ -835,8 +835,6 @@ i915_ggtt_driver_late_release(i915); out_cleanup_mmio: i915_driver_mmio_release(i915); -out_tiles_cleanup: - intel_gt_release_all(i915); out_runtime_pm_put: enable_rpm_wakeref_asserts(&i915->runtime_pm); i915_driver_late_release(i915); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/i915_perf.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/i915_perf.c @@ -482,8 +482,7 @@ static bool oa_report_ctx_invalid(struct i915_perf_stream *stream, void *report) { return !(oa_report_id(stream, report) & - stream->perf->gen8_valid_ctx_bit) && - GRAPHICS_VER(stream->perf->i915) <= 11; + stream->perf->gen8_valid_ctx_bit); } static u64 oa_timestamp(struct i915_perf_stream *stream, void *report) @@ -4287,11 +4286,8 @@ u32 known_open_flags; int ret; - if (!perf->i915) { - drm_dbg(&perf->i915->drm, - "i915 perf interface not available for this system\n"); + if (!perf->i915) return -ENOTSUPP; - } known_open_flags = I915_PERF_FLAG_FD_CLOEXEC | I915_PERF_FLAG_FD_NONBLOCK | @@ -4667,11 +4663,8 @@ struct i915_oa_reg *regs; int err, id; - if (!perf->i915) { - drm_dbg(&perf->i915->drm, - "i915 perf interface not available for this system\n"); + if (!perf->i915) return -ENOTSUPP; - } if (!perf->metrics_kobj) { drm_dbg(&perf->i915->drm, @@ -4833,11 +4826,8 @@ struct i915_oa_config *oa_config; int ret; - if (!perf->i915) { - drm_dbg(&perf->i915->drm, - "i915 perf interface not available for this system\n"); + if (!perf->i915) return -ENOTSUPP; - } if (i915_perf_stream_paranoid && !perfmon_capable()) { drm_dbg(&perf->i915->drm, @@ -5106,6 +5096,7 @@ perf->gen8_valid_ctx_bit = BIT(16); break; case 12: + perf->gen8_valid_ctx_bit = BIT(16); /* * Calculate offset at runtime in oa_pin_context for gen12 and * cache the value in perf->ctx_oactxctrl_offset. only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/i915/i915_pmu.c +++ linux-riscv-6.5.0/drivers/gpu/drm/i915/i915_pmu.c @@ -832,9 +832,18 @@ static void i915_pmu_event_stop(struct perf_event *event, int flags) { + struct drm_i915_private *i915 = + container_of(event->pmu, typeof(*i915), pmu.base); + struct i915_pmu *pmu = &i915->pmu; + + if (pmu->closed) + goto out; + if (flags & PERF_EF_UPDATE) i915_pmu_event_read(event); i915_pmu_disable(event); + +out: event->hw.state = PERF_HES_STOPPED; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/logicvc/Kconfig +++ linux-riscv-6.5.0/drivers/gpu/drm/logicvc/Kconfig @@ -5,5 +5,7 @@ select DRM_KMS_HELPER select DRM_KMS_DMA_HELPER select DRM_GEM_DMA_HELPER + select REGMAP + select REGMAP_MMIO help DRM display driver for the logiCVC programmable logic block from Xylon only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/mediatek/mtk_drm_plane.c +++ linux-riscv-6.5.0/drivers/gpu/drm/mediatek/mtk_drm_plane.c @@ -145,6 +145,7 @@ dma_addr_t addr; dma_addr_t hdr_addr = 0; unsigned int hdr_pitch = 0; + int offset; gem = fb->obj[0]; mtk_gem = to_mtk_gem_obj(gem); @@ -154,8 +155,15 @@ modifier = fb->modifier; if (modifier == DRM_FORMAT_MOD_LINEAR) { - addr += (new_state->src.x1 >> 16) * fb->format->cpp[0]; - addr += (new_state->src.y1 >> 16) * pitch; + /* + * Using dma_addr_t variable to calculate with multiplier of different types, + * for example: addr += (new_state->src.x1 >> 16) * fb->format->cpp[0]; + * may cause coverity issue with unintentional overflow. + */ + offset = (new_state->src.x1 >> 16) * fb->format->cpp[0]; + addr += offset; + offset = (new_state->src.y1 >> 16) * pitch; + addr += offset; } else { int width_in_blocks = ALIGN(fb->width, AFBC_DATA_BLOCK_WIDTH) / AFBC_DATA_BLOCK_WIDTH; @@ -163,21 +171,34 @@ / AFBC_DATA_BLOCK_HEIGHT; int x_offset_in_blocks = (new_state->src.x1 >> 16) / AFBC_DATA_BLOCK_WIDTH; int y_offset_in_blocks = (new_state->src.y1 >> 16) / AFBC_DATA_BLOCK_HEIGHT; - int hdr_size; + int hdr_size, hdr_offset; hdr_pitch = width_in_blocks * AFBC_HEADER_BLOCK_SIZE; pitch = width_in_blocks * AFBC_DATA_BLOCK_WIDTH * AFBC_DATA_BLOCK_HEIGHT * fb->format->cpp[0]; hdr_size = ALIGN(hdr_pitch * height_in_blocks, AFBC_HEADER_ALIGNMENT); + hdr_offset = hdr_pitch * y_offset_in_blocks + + AFBC_HEADER_BLOCK_SIZE * x_offset_in_blocks; + + /* + * Using dma_addr_t variable to calculate with multiplier of different types, + * for example: addr += hdr_pitch * y_offset_in_blocks; + * may cause coverity issue with unintentional overflow. + */ + hdr_addr = addr + hdr_offset; - hdr_addr = addr + hdr_pitch * y_offset_in_blocks + - AFBC_HEADER_BLOCK_SIZE * x_offset_in_blocks; /* The data plane is offset by 1 additional block. */ - addr = addr + hdr_size + - pitch * y_offset_in_blocks + - AFBC_DATA_BLOCK_WIDTH * AFBC_DATA_BLOCK_HEIGHT * - fb->format->cpp[0] * (x_offset_in_blocks + 1); + offset = pitch * y_offset_in_blocks + + AFBC_DATA_BLOCK_WIDTH * AFBC_DATA_BLOCK_HEIGHT * + fb->format->cpp[0] * (x_offset_in_blocks + 1); + + /* + * Using dma_addr_t variable to calculate with multiplier of different types, + * for example: addr += pitch * y_offset_in_blocks; + * may cause coverity issue with unintentional overflow. + */ + addr = addr + hdr_size + offset; } mtk_plane_state->pending.enable = true; @@ -210,9 +231,9 @@ plane->state->src_y = new_state->src_y; plane->state->src_h = new_state->src_h; plane->state->src_w = new_state->src_w; - swap(plane->state->fb, new_state->fb); mtk_plane_update_new_state(new_state, new_plane_state); + swap(plane->state->fb, new_state->fb); wmb(); /* Make sure the above parameters are set before update */ new_plane_state->pending.async_dirty = true; mtk_drm_crtc_async_update(new_state->crtc, plane, state); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/mediatek/mtk_dsi.c +++ linux-riscv-6.5.0/drivers/gpu/drm/mediatek/mtk_dsi.c @@ -407,7 +407,7 @@ if (dsi->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS) tmp_reg |= HSTX_CKLP_EN; - if (!(dsi->mode_flags & MIPI_DSI_MODE_NO_EOT_PACKET)) + if (dsi->mode_flags & MIPI_DSI_MODE_NO_EOT_PACKET) tmp_reg |= DIS_EOT; writel(tmp_reg, dsi->regs + DSI_TXRX_CTRL); @@ -484,7 +484,7 @@ timing->da_hs_zero + timing->da_hs_exit + 3; delta = dsi->mode_flags & MIPI_DSI_MODE_VIDEO_BURST ? 18 : 12; - delta += dsi->mode_flags & MIPI_DSI_MODE_NO_EOT_PACKET ? 2 : 0; + delta += dsi->mode_flags & MIPI_DSI_MODE_NO_EOT_PACKET ? 0 : 2; horizontal_frontporch_byte = vm->hfront_porch * dsi_tmp_buf_bpp; horizontal_front_back_byte = horizontal_frontporch_byte + horizontal_backporch_byte; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/mgag200/mgag200_drv.c +++ linux-riscv-6.5.0/drivers/gpu/drm/mgag200/mgag200_drv.c @@ -10,6 +10,7 @@ #include #include +#include #include #include #include @@ -278,6 +279,12 @@ struct drm_device *dev = pci_get_drvdata(pdev); drm_dev_unregister(dev); + drm_atomic_helper_shutdown(dev); +} + +static void mgag200_pci_shutdown(struct pci_dev *pdev) +{ + drm_atomic_helper_shutdown(pci_get_drvdata(pdev)); } static struct pci_driver mgag200_pci_driver = { @@ -285,6 +292,7 @@ .id_table = mgag200_pciidlist, .probe = mgag200_pci_probe, .remove = mgag200_pci_remove, + .shutdown = mgag200_pci_shutdown, }; drm_module_pci_driver_if_modeset(mgag200_pci_driver, mgag200_modeset); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/msm/dp/dp_panel.c +++ linux-riscv-6.5.0/drivers/gpu/drm/msm/dp/dp_panel.c @@ -289,26 +289,9 @@ static u8 dp_panel_get_edid_checksum(struct edid *edid) { - struct edid *last_block; - u8 *raw_edid; - bool is_edid_corrupt = false; + edid += edid->extensions; - if (!edid) { - DRM_ERROR("invalid edid input\n"); - return 0; - } - - raw_edid = (u8 *)edid; - raw_edid += (edid->extensions * EDID_LENGTH); - last_block = (struct edid *)raw_edid; - - /* block type extension */ - drm_edid_block_valid(raw_edid, 1, false, &is_edid_corrupt); - if (!is_edid_corrupt) - return last_block->checksum; - - DRM_ERROR("Invalid block, no checksum\n"); - return 0; + return edid->checksum; } void dp_panel_handle_sink_request(struct dp_panel *dp_panel) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/msm/dsi/dsi.c +++ linux-riscv-6.5.0/drivers/gpu/drm/msm/dsi/dsi.c @@ -126,6 +126,7 @@ struct msm_drm_private *priv = dev_get_drvdata(master); struct msm_dsi *msm_dsi = dev_get_drvdata(dev); + msm_dsi_tx_buf_free(msm_dsi->host); priv->dsi[msm_dsi->id] = NULL; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/msm/dsi/dsi.h +++ linux-riscv-6.5.0/drivers/gpu/drm/msm/dsi/dsi.h @@ -125,6 +125,7 @@ void *dsi_tx_buf_get_6g(struct msm_dsi_host *msm_host); void *dsi_tx_buf_get_v2(struct msm_dsi_host *msm_host); void dsi_tx_buf_put_6g(struct msm_dsi_host *msm_host); +void msm_dsi_tx_buf_free(struct mipi_dsi_host *mipi_host); int dsi_dma_base_get_6g(struct msm_dsi_host *msm_host, uint64_t *iova); int dsi_dma_base_get_v2(struct msm_dsi_host *msm_host, uint64_t *iova); int dsi_clk_init_v2(struct msm_dsi_host *msm_host); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c +++ linux-riscv-6.5.0/drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c @@ -918,7 +918,7 @@ if ((phy->cfg->quirks & DSI_PHY_7NM_QUIRK_V5_2)) { if (phy->cphy_mode) { vreg_ctrl_0 = 0x45; - vreg_ctrl_1 = 0x45; + vreg_ctrl_1 = 0x41; glbl_rescode_top_ctrl = 0x00; glbl_rescode_bot_ctrl = 0x00; } else { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/nouveau/dispnv50/disp.c +++ linux-riscv-6.5.0/drivers/gpu/drm/nouveau/dispnv50/disp.c @@ -2310,7 +2310,7 @@ err_cleanup: if (ret) - drm_atomic_helper_cleanup_planes(dev, state); + drm_atomic_helper_unprepare_planes(dev, state); done: pm_runtime_put_autosuspend(dev->dev); return ret; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/nouveau/include/nvkm/core/event.h +++ linux-riscv-6.5.0/drivers/gpu/drm/nouveau/include/nvkm/core/event.h @@ -14,7 +14,7 @@ int index_nr; spinlock_t refs_lock; - spinlock_t list_lock; + rwlock_t list_lock; int *refs; struct list_head ntfy; @@ -38,7 +38,7 @@ int types_nr, int index_nr, struct nvkm_event *event) { spin_lock_init(&event->refs_lock); - spin_lock_init(&event->list_lock); + rwlock_init(&event->list_lock); return __nvkm_event_init(func, subdev, types_nr, index_nr, event); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/nouveau/nvkm/core/event.c +++ linux-riscv-6.5.0/drivers/gpu/drm/nouveau/nvkm/core/event.c @@ -81,17 +81,17 @@ static void nvkm_event_ntfy_remove(struct nvkm_event_ntfy *ntfy) { - spin_lock_irq(&ntfy->event->list_lock); + write_lock_irq(&ntfy->event->list_lock); list_del_init(&ntfy->head); - spin_unlock_irq(&ntfy->event->list_lock); + write_unlock_irq(&ntfy->event->list_lock); } static void nvkm_event_ntfy_insert(struct nvkm_event_ntfy *ntfy) { - spin_lock_irq(&ntfy->event->list_lock); + write_lock_irq(&ntfy->event->list_lock); list_add_tail(&ntfy->head, &ntfy->event->ntfy); - spin_unlock_irq(&ntfy->event->list_lock); + write_unlock_irq(&ntfy->event->list_lock); } static void @@ -176,7 +176,7 @@ return; nvkm_trace(event->subdev, "event: ntfy %08x on %d\n", bits, id); - spin_lock_irqsave(&event->list_lock, flags); + read_lock_irqsave(&event->list_lock, flags); list_for_each_entry_safe(ntfy, ntmp, &event->ntfy, head) { if (ntfy->id == id && ntfy->bits & bits) { @@ -185,7 +185,7 @@ } } - spin_unlock_irqrestore(&event->list_lock, flags); + read_unlock_irqrestore(&event->list_lock, flags); } void only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c +++ linux-riscv-6.5.0/drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.c @@ -62,6 +62,18 @@ return object->client->event(token, &args, sizeof(args.v0)); } +static bool +nvkm_connector_is_dp_dms(u8 type) +{ + switch (type) { + case DCB_CONNECTOR_DMS59_DP0: + case DCB_CONNECTOR_DMS59_DP1: + return true; + default: + return false; + } +} + static int nvkm_uconn_uevent(struct nvkm_object *object, void *argv, u32 argc, struct nvkm_uevent *uevent) { @@ -101,7 +113,7 @@ if (args->v0.types & NVIF_CONN_EVENT_V0_UNPLUG) bits |= NVKM_GPIO_LO; if (args->v0.types & NVIF_CONN_EVENT_V0_IRQ) { /* TODO: support DP IRQ on ANX9805 and remove this hack. */ - if (!outp->info.location) + if (!outp->info.location && !nvkm_connector_is_dp_dms(conn->info.type)) return -EINVAL; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/panel/panel-arm-versatile.c +++ linux-riscv-6.5.0/drivers/gpu/drm/panel/panel-arm-versatile.c @@ -267,6 +267,8 @@ connector->display_info.bus_flags = vpanel->panel_type->bus_flags; mode = drm_mode_duplicate(connector->dev, &vpanel->panel_type->mode); + if (!mode) + return -ENOMEM; drm_mode_set_name(mode); mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/panel/panel-novatek-nt36523.c +++ linux-riscv-6.5.0/drivers/gpu/drm/panel/panel-novatek-nt36523.c @@ -1266,9 +1266,9 @@ return dev_err_probe(dev, -EPROBE_DEFER, "cannot get secondary DSI host\n"); pinfo->dsi[1] = mipi_dsi_device_register_full(dsi1_host, info); - if (!pinfo->dsi[1]) { + if (IS_ERR(pinfo->dsi[1])) { dev_err(dev, "cannot get secondary DSI device\n"); - return -ENODEV; + return PTR_ERR(pinfo->dsi[1]); } } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/panel/panel-sitronix-st7703.c +++ linux-riscv-6.5.0/drivers/gpu/drm/panel/panel-sitronix-st7703.c @@ -506,29 +506,30 @@ return 0; dev_dbg(ctx->dev, "Resetting the panel\n"); - ret = regulator_enable(ctx->vcc); + gpiod_set_value_cansleep(ctx->reset_gpio, 1); + + ret = regulator_enable(ctx->iovcc); if (ret < 0) { - dev_err(ctx->dev, "Failed to enable vcc supply: %d\n", ret); + dev_err(ctx->dev, "Failed to enable iovcc supply: %d\n", ret); return ret; } - ret = regulator_enable(ctx->iovcc); + + ret = regulator_enable(ctx->vcc); if (ret < 0) { - dev_err(ctx->dev, "Failed to enable iovcc supply: %d\n", ret); - goto disable_vcc; + dev_err(ctx->dev, "Failed to enable vcc supply: %d\n", ret); + regulator_disable(ctx->iovcc); + return ret; } - gpiod_set_value_cansleep(ctx->reset_gpio, 1); - usleep_range(20, 40); + /* Give power supplies time to stabilize before deasserting reset. */ + usleep_range(10000, 20000); + gpiod_set_value_cansleep(ctx->reset_gpio, 0); - msleep(20); + usleep_range(15000, 20000); ctx->prepared = true; return 0; - -disable_vcc: - regulator_disable(ctx->vcc); - return ret; } static const u32 mantix_bus_formats[] = { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/panel/panel-tpo-tpg110.c +++ linux-riscv-6.5.0/drivers/gpu/drm/panel/panel-tpo-tpg110.c @@ -379,6 +379,8 @@ connector->display_info.bus_flags = tpg->panel_mode->bus_flags; mode = drm_mode_duplicate(connector->dev, &tpg->panel_mode->mode); + if (!mode) + return -ENOMEM; drm_mode_set_name(mode); mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/pl111/pl111_drv.c +++ linux-riscv-6.5.0/drivers/gpu/drm/pl111/pl111_drv.c @@ -326,12 +326,18 @@ struct pl111_drm_dev_private *priv = drm->dev_private; drm_dev_unregister(drm); + drm_atomic_helper_shutdown(drm); if (priv->panel) drm_panel_bridge_remove(priv->bridge); drm_dev_put(drm); of_reserved_mem_device_release(dev); } +static void pl111_amba_shutdown(struct amba_device *amba_dev) +{ + drm_atomic_helper_shutdown(amba_get_drvdata(amba_dev)); +} + /* * This early variant lacks the 565 and 444 pixel formats. */ @@ -434,6 +440,7 @@ }, .probe = pl111_amba_probe, .remove = pl111_amba_remove, + .shutdown = pl111_amba_shutdown, .id_table = pl111_id_table, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/qxl/qxl_display.c +++ linux-riscv-6.5.0/drivers/gpu/drm/qxl/qxl_display.c @@ -1229,6 +1229,9 @@ if (!qdev->monitors_config_bo) return 0; + kfree(qdev->dumb_heads); + qdev->dumb_heads = NULL; + qdev->monitors_config = NULL; qdev->ram_header->monitors_config = 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/radeon/evergreen.c +++ linux-riscv-6.5.0/drivers/gpu/drm/radeon/evergreen.c @@ -4821,14 +4821,15 @@ break; case 44: /* hdmi */ afmt_idx = src_data; - if (!(afmt_status[afmt_idx] & AFMT_AZ_FORMAT_WTRIG)) - DRM_DEBUG("IH: IH event w/o asserted irq bit?\n"); - if (afmt_idx > 5) { DRM_ERROR("Unhandled interrupt: %d %d\n", src_id, src_data); break; } + + if (!(afmt_status[afmt_idx] & AFMT_AZ_FORMAT_WTRIG)) + DRM_DEBUG("IH: IH event w/o asserted irq bit?\n"); + afmt_status[afmt_idx] &= ~AFMT_AZ_FORMAT_WTRIG; queue_hdmi = true; DRM_DEBUG("IH: HDMI%d\n", afmt_idx + 1); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/radeon/radeon_connectors.c +++ linux-riscv-6.5.0/drivers/gpu/drm/radeon/radeon_connectors.c @@ -1122,6 +1122,8 @@ else { /* only 800x600 is supported right now on pre-avivo chips */ tv_mode = drm_cvt_mode(dev, 800, 600, 60, false, false, false); + if (!tv_mode) + return 0; tv_mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED; drm_mode_probed_add(connector, tv_mode); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/rockchip/cdn-dp-core.c +++ linux-riscv-6.5.0/drivers/gpu/drm/rockchip/cdn-dp-core.c @@ -1177,6 +1177,7 @@ struct cdn_dp_device *dp; struct extcon_dev *extcon; struct phy *phy; + int ret; int i; dp = devm_kzalloc(dev, sizeof(*dp), GFP_KERNEL); @@ -1217,9 +1218,19 @@ mutex_init(&dp->lock); dev_set_drvdata(dev, dp); - cdn_dp_audio_codec_init(dp, dev); - - return component_add(dev, &cdn_dp_component_ops); + ret = cdn_dp_audio_codec_init(dp, dev); + if (ret) + return ret; + + ret = component_add(dev, &cdn_dp_component_ops); + if (ret) + goto err_audio_deinit; + + return 0; + +err_audio_deinit: + platform_device_unregister(dp->audio_pdev); + return ret; } static int cdn_dp_remove(struct platform_device *pdev) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/rockchip/rockchip_drm_gem.c +++ linux-riscv-6.5.0/drivers/gpu/drm/rockchip/rockchip_drm_gem.c @@ -40,7 +40,7 @@ ret = iommu_map_sgtable(private->domain, rk_obj->dma_addr, rk_obj->sgt, prot); - if (ret < rk_obj->base.size) { + if (ret < (ssize_t)rk_obj->base.size) { DRM_ERROR("failed to map buffer: size=%zd request_size=%zd\n", ret, rk_obj->base.size); ret = -ENOMEM; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ linux-riscv-6.5.0/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -248,14 +248,22 @@ VOP_REG_SET(vop, common, cfg_done, 1); } -static bool has_rb_swapped(uint32_t format) +static bool has_rb_swapped(uint32_t version, uint32_t format) { switch (format) { case DRM_FORMAT_XBGR8888: case DRM_FORMAT_ABGR8888: - case DRM_FORMAT_BGR888: case DRM_FORMAT_BGR565: return true; + /* + * full framework (IP version 3.x) only need rb swapped for RGB888 and + * little framework (IP version 2.x) only need rb swapped for BGR888, + * check for 3.x to also only rb swap BGR888 for unknown vop version + */ + case DRM_FORMAT_RGB888: + return VOP_MAJOR(version) == 3; + case DRM_FORMAT_BGR888: + return VOP_MAJOR(version) != 3; default: return false; } @@ -1014,7 +1022,7 @@ VOP_WIN_SET(vop, win, dsp_info, dsp_info); VOP_WIN_SET(vop, win, dsp_st, dsp_st); - rb_swap = has_rb_swapped(fb->format->format); + rb_swap = has_rb_swapped(vop->data->version, fb->format->format); VOP_WIN_SET(vop, win, rb_swap, rb_swap); /* @@ -1615,7 +1623,8 @@ if (WARN_ON(!crtc->state)) return NULL; - rockchip_state = kzalloc(sizeof(*rockchip_state), GFP_KERNEL); + rockchip_state = kmemdup(to_rockchip_crtc_state(crtc->state), + sizeof(*rockchip_state), GFP_KERNEL); if (!rockchip_state) return NULL; @@ -1640,7 +1649,10 @@ if (crtc->state) vop_crtc_destroy_state(crtc, crtc->state); - __drm_atomic_helper_crtc_reset(crtc, &crtc_state->base); + if (crtc_state) + __drm_atomic_helper_crtc_reset(crtc, &crtc_state->base); + else + __drm_atomic_helper_crtc_reset(crtc, NULL); } #ifdef CONFIG_DRM_ANALOGIX_DP only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ linux-riscv-6.5.0/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -2080,30 +2080,15 @@ .atomic_disable = vop2_crtc_atomic_disable, }; -static void vop2_crtc_reset(struct drm_crtc *crtc) -{ - struct rockchip_crtc_state *vcstate = to_rockchip_crtc_state(crtc->state); - - if (crtc->state) { - __drm_atomic_helper_crtc_destroy_state(crtc->state); - kfree(vcstate); - } - - vcstate = kzalloc(sizeof(*vcstate), GFP_KERNEL); - if (!vcstate) - return; - - crtc->state = &vcstate->base; - crtc->state->crtc = crtc; -} - static struct drm_crtc_state *vop2_crtc_duplicate_state(struct drm_crtc *crtc) { - struct rockchip_crtc_state *vcstate, *old_vcstate; + struct rockchip_crtc_state *vcstate; - old_vcstate = to_rockchip_crtc_state(crtc->state); + if (WARN_ON(!crtc->state)) + return NULL; - vcstate = kmemdup(old_vcstate, sizeof(*old_vcstate), GFP_KERNEL); + vcstate = kmemdup(to_rockchip_crtc_state(crtc->state), + sizeof(*vcstate), GFP_KERNEL); if (!vcstate) return NULL; @@ -2121,6 +2106,20 @@ kfree(vcstate); } +static void vop2_crtc_reset(struct drm_crtc *crtc) +{ + struct rockchip_crtc_state *vcstate = + kzalloc(sizeof(*vcstate), GFP_KERNEL); + + if (crtc->state) + vop2_crtc_destroy_state(crtc, crtc->state); + + if (vcstate) + __drm_atomic_helper_crtc_reset(crtc, &vcstate->base); + else + __drm_atomic_helper_crtc_reset(crtc, NULL); +} + static const struct drm_crtc_funcs vop2_crtc_funcs = { .set_config = drm_atomic_helper_set_config, .page_flip = drm_atomic_helper_page_flip, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/stm/drv.c +++ linux-riscv-6.5.0/drivers/gpu/drm/stm/drv.c @@ -113,6 +113,7 @@ DRM_DEBUG("%s\n", __func__); drm_kms_helper_poll_fini(ddev); + drm_atomic_helper_shutdown(ddev); ltdc_unload(ddev); } @@ -213,7 +214,7 @@ return ret; } -static int stm_drm_platform_remove(struct platform_device *pdev) +static void stm_drm_platform_remove(struct platform_device *pdev) { struct drm_device *ddev = platform_get_drvdata(pdev); @@ -222,8 +223,11 @@ drm_dev_unregister(ddev); drv_unload(ddev); drm_dev_put(ddev); +} - return 0; +static void stm_drm_platform_shutdown(struct platform_device *pdev) +{ + drm_atomic_helper_shutdown(platform_get_drvdata(pdev)); } static const struct of_device_id drv_dt_ids[] = { @@ -234,7 +238,8 @@ static struct platform_driver stm_drm_platform_driver = { .probe = stm_drm_platform_probe, - .remove = stm_drm_platform_remove, + .remove_new = stm_drm_platform_remove, + .shutdown = stm_drm_platform_shutdown, .driver = { .name = "stm32-display", .of_match_table = drv_dt_ids, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/stm/dw_mipi_dsi-stm.c +++ linux-riscv-6.5.0/drivers/gpu/drm/stm/dw_mipi_dsi-stm.c @@ -535,15 +535,13 @@ return ret; } -static int dw_mipi_dsi_stm_remove(struct platform_device *pdev) +static void dw_mipi_dsi_stm_remove(struct platform_device *pdev) { struct dw_mipi_dsi_stm *dsi = platform_get_drvdata(pdev); dw_mipi_dsi_remove(dsi->dsi); clk_disable_unprepare(dsi->pllref_clk); regulator_disable(dsi->vdd_supply); - - return 0; } static int __maybe_unused dw_mipi_dsi_stm_suspend(struct device *dev) @@ -588,7 +586,7 @@ static struct platform_driver dw_mipi_dsi_stm_driver = { .probe = dw_mipi_dsi_stm_probe, - .remove = dw_mipi_dsi_stm_remove, + .remove_new = dw_mipi_dsi_stm_remove, .driver = { .of_match_table = dw_mipi_dsi_stm_dt_ids, .name = "stm32-display-dsi", only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/tilcdc/tilcdc_drv.c +++ linux-riscv-6.5.0/drivers/gpu/drm/tilcdc/tilcdc_drv.c @@ -175,6 +175,7 @@ drm_dev_unregister(dev); drm_kms_helper_poll_fini(dev); + drm_atomic_helper_shutdown(dev); tilcdc_irq_uninstall(dev); drm_mode_config_cleanup(dev); @@ -389,6 +390,7 @@ init_failed: tilcdc_fini(ddev); + platform_set_drvdata(pdev, NULL); return ret; } @@ -537,7 +539,8 @@ if (!ddev->dev_private) return; - tilcdc_fini(dev_get_drvdata(dev)); + tilcdc_fini(ddev); + dev_set_drvdata(dev, NULL); } static const struct component_master_ops tilcdc_comp_ops = { @@ -582,6 +585,11 @@ return 0; } +static void tilcdc_pdev_shutdown(struct platform_device *pdev) +{ + drm_atomic_helper_shutdown(platform_get_drvdata(pdev)); +} + static const struct of_device_id tilcdc_of_match[] = { { .compatible = "ti,am33xx-tilcdc", }, { .compatible = "ti,da850-tilcdc", }, @@ -592,6 +600,7 @@ static struct platform_driver tilcdc_platform_driver = { .probe = tilcdc_pdev_probe, .remove = tilcdc_pdev_remove, + .shutdown = tilcdc_pdev_shutdown, .driver = { .name = "tilcdc", .pm = pm_sleep_ptr(&tilcdc_pm_ops), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/ttm/ttm_device.c +++ linux-riscv-6.5.0/drivers/gpu/drm/ttm/ttm_device.c @@ -232,10 +232,6 @@ struct ttm_resource_manager *man; unsigned i; - man = ttm_manager_type(bdev, TTM_PL_SYSTEM); - ttm_resource_manager_set_used(man, false); - ttm_set_driver_manager(bdev, TTM_PL_SYSTEM, NULL); - mutex_lock(&ttm_global_mutex); list_del(&bdev->device_list); mutex_unlock(&ttm_global_mutex); @@ -243,6 +239,10 @@ drain_workqueue(bdev->wq); destroy_workqueue(bdev->wq); + man = ttm_manager_type(bdev, TTM_PL_SYSTEM); + ttm_resource_manager_set_used(man, false); + ttm_set_driver_manager(bdev, TTM_PL_SYSTEM, NULL); + spin_lock(&bdev->lru_lock); for (i = 0; i < TTM_MAX_BO_PRIORITY; ++i) if (list_empty(&man->lru[0])) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/tve200/tve200_drv.c +++ linux-riscv-6.5.0/drivers/gpu/drm/tve200/tve200_drv.c @@ -236,19 +236,23 @@ return ret; } -static int tve200_remove(struct platform_device *pdev) +static void tve200_remove(struct platform_device *pdev) { struct drm_device *drm = platform_get_drvdata(pdev); struct tve200_drm_dev_private *priv = drm->dev_private; drm_dev_unregister(drm); + drm_atomic_helper_shutdown(drm); if (priv->panel) drm_panel_bridge_remove(priv->bridge); drm_mode_config_cleanup(drm); clk_disable_unprepare(priv->pclk); drm_dev_put(drm); +} - return 0; +static void tve200_shutdown(struct platform_device *pdev) +{ + drm_atomic_helper_shutdown(platform_get_drvdata(pdev)); } static const struct of_device_id tve200_of_match[] = { @@ -264,7 +268,8 @@ .of_match_table = of_match_ptr(tve200_of_match), }, .probe = tve200_probe, - .remove = tve200_remove, + .remove_new = tve200_remove, + .shutdown = tve200_shutdown, }; drm_module_platform_driver(tve200_driver); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/vboxvideo/vbox_drv.c +++ linux-riscv-6.5.0/drivers/gpu/drm/vboxvideo/vbox_drv.c @@ -12,6 +12,7 @@ #include #include +#include #include #include #include @@ -97,11 +98,19 @@ struct vbox_private *vbox = pci_get_drvdata(pdev); drm_dev_unregister(&vbox->ddev); + drm_atomic_helper_shutdown(&vbox->ddev); vbox_irq_fini(vbox); vbox_mode_fini(vbox); vbox_hw_fini(vbox); } +static void vbox_pci_shutdown(struct pci_dev *pdev) +{ + struct vbox_private *vbox = pci_get_drvdata(pdev); + + drm_atomic_helper_shutdown(&vbox->ddev); +} + static int vbox_pm_suspend(struct device *dev) { struct vbox_private *vbox = dev_get_drvdata(dev); @@ -165,6 +174,7 @@ .id_table = pciidlist, .probe = vbox_pci_probe, .remove = vbox_pci_remove, + .shutdown = vbox_pci_shutdown, .driver.pm = pm_sleep_ptr(&vbox_pm_ops), }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/vc4/tests/vc4_mock_crtc.c +++ linux-riscv-6.5.0/drivers/gpu/drm/vc4/tests/vc4_mock_crtc.c @@ -26,7 +26,7 @@ struct vc4_crtc *vc4_crtc; int ret; - dummy_crtc = kunit_kzalloc(test, sizeof(*dummy_crtc), GFP_KERNEL); + dummy_crtc = drmm_kzalloc(drm, sizeof(*dummy_crtc), GFP_KERNEL); KUNIT_ASSERT_NOT_NULL(test, dummy_crtc); vc4_crtc = &dummy_crtc->crtc; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/drm/vc4/tests/vc4_mock_output.c +++ linux-riscv-6.5.0/drivers/gpu/drm/vc4/tests/vc4_mock_output.c @@ -32,7 +32,7 @@ struct drm_encoder *enc; int ret; - dummy_output = kunit_kzalloc(test, sizeof(*dummy_output), GFP_KERNEL); + dummy_output = drmm_kzalloc(drm, sizeof(*dummy_output), GFP_KERNEL); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, dummy_output); dummy_output->encoder.type = vc4_encoder_type; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/gpu/host1x/context.c +++ linux-riscv-6.5.0/drivers/gpu/host1x/context.c @@ -34,10 +34,10 @@ if (err < 0) return 0; - cdl->devs = kcalloc(err, sizeof(*cdl->devs), GFP_KERNEL); + cdl->len = err / 4; + cdl->devs = kcalloc(cdl->len, sizeof(*cdl->devs), GFP_KERNEL); if (!cdl->devs) return -ENOMEM; - cdl->len = err / 4; for (i = 0; i < cdl->len; i++) { ctx = &cdl->devs[i]; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hid/hid-core.c +++ linux-riscv-6.5.0/drivers/hid/hid-core.c @@ -702,15 +702,22 @@ * Free a device structure, all reports, and all fields. */ -static void hid_device_release(struct device *dev) +void hiddev_free(struct kref *ref) { - struct hid_device *hid = to_hid_device(dev); + struct hid_device *hid = container_of(ref, struct hid_device, ref); hid_close_report(hid); kfree(hid->dev_rdesc); kfree(hid); } +static void hid_device_release(struct device *dev) +{ + struct hid_device *hid = to_hid_device(dev); + + kref_put(&hid->ref, hiddev_free); +} + /* * Fetch a report description item from the data stream. We support long * items, though they are not used yet. @@ -2846,6 +2853,7 @@ spin_lock_init(&hdev->debug_list_lock); sema_init(&hdev->driver_input_lock, 1); mutex_init(&hdev->ll_open_lock); + kref_init(&hdev->ref); hid_bpf_device_init(hdev); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hid/hid-cp2112.c +++ linux-riscv-6.5.0/drivers/hid/hid-cp2112.c @@ -163,7 +163,6 @@ atomic_t read_avail; atomic_t xfer_avail; struct gpio_chip gc; - struct irq_chip irq; u8 *in_out_buffer; struct mutex lock; @@ -1080,16 +1079,20 @@ { struct gpio_chip *gc = irq_data_get_irq_chip_data(d); struct cp2112_device *dev = gpiochip_get_data(gc); + irq_hw_number_t hwirq = irqd_to_hwirq(d); - __clear_bit(d->hwirq, &dev->irq_mask); + __clear_bit(hwirq, &dev->irq_mask); + gpiochip_disable_irq(gc, hwirq); } static void cp2112_gpio_irq_unmask(struct irq_data *d) { struct gpio_chip *gc = irq_data_get_irq_chip_data(d); struct cp2112_device *dev = gpiochip_get_data(gc); + irq_hw_number_t hwirq = irqd_to_hwirq(d); - __set_bit(d->hwirq, &dev->irq_mask); + gpiochip_enable_irq(gc, hwirq); + __set_bit(hwirq, &dev->irq_mask); } static void cp2112_gpio_poll_callback(struct work_struct *work) @@ -1159,8 +1162,6 @@ struct gpio_chip *gc = irq_data_get_irq_chip_data(d); struct cp2112_device *dev = gpiochip_get_data(gc); - INIT_DELAYED_WORK(&dev->gpio_poll_worker, cp2112_gpio_poll_callback); - if (!dev->gpio_poll) { dev->gpio_poll = true; schedule_delayed_work(&dev->gpio_poll_worker, 0); @@ -1175,7 +1176,12 @@ struct gpio_chip *gc = irq_data_get_irq_chip_data(d); struct cp2112_device *dev = gpiochip_get_data(gc); - cancel_delayed_work_sync(&dev->gpio_poll_worker); + cp2112_gpio_irq_mask(d); + + if (!dev->irq_mask) { + dev->gpio_poll = false; + cancel_delayed_work_sync(&dev->gpio_poll_worker); + } } static int cp2112_gpio_irq_type(struct irq_data *d, unsigned int type) @@ -1228,6 +1234,18 @@ return ret; } +static const struct irq_chip cp2112_gpio_irqchip = { + .name = "cp2112-gpio", + .irq_startup = cp2112_gpio_irq_startup, + .irq_shutdown = cp2112_gpio_irq_shutdown, + .irq_ack = cp2112_gpio_irq_ack, + .irq_mask = cp2112_gpio_irq_mask, + .irq_unmask = cp2112_gpio_irq_unmask, + .irq_set_type = cp2112_gpio_irq_type, + .flags = IRQCHIP_MASK_ON_SUSPEND | IRQCHIP_IMMUTABLE, + GPIOCHIP_IRQ_RESOURCE_HELPERS, +}; + static int cp2112_probe(struct hid_device *hdev, const struct hid_device_id *id) { struct cp2112_device *dev; @@ -1337,17 +1355,8 @@ dev->gc.can_sleep = 1; dev->gc.parent = &hdev->dev; - dev->irq.name = "cp2112-gpio"; - dev->irq.irq_startup = cp2112_gpio_irq_startup; - dev->irq.irq_shutdown = cp2112_gpio_irq_shutdown; - dev->irq.irq_ack = cp2112_gpio_irq_ack; - dev->irq.irq_mask = cp2112_gpio_irq_mask; - dev->irq.irq_unmask = cp2112_gpio_irq_unmask; - dev->irq.irq_set_type = cp2112_gpio_irq_type; - dev->irq.flags = IRQCHIP_MASK_ON_SUSPEND; - girq = &dev->gc.irq; - girq->chip = &dev->irq; + gpio_irq_chip_set_chip(girq, &cp2112_gpio_irqchip); /* The event comes from the outside so no parent handler */ girq->parent_handler = NULL; girq->num_parents = 0; @@ -1356,6 +1365,8 @@ girq->handler = handle_simple_irq; girq->threaded = true; + INIT_DELAYED_WORK(&dev->gpio_poll_worker, cp2112_gpio_poll_callback); + ret = gpiochip_add_data(&dev->gc, dev); if (ret < 0) { hid_err(hdev, "error registering gpio chip\n"); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hid/hid-debug.c +++ linux-riscv-6.5.0/drivers/hid/hid-debug.c @@ -1135,6 +1135,7 @@ goto out; } list->hdev = (struct hid_device *) inode->i_private; + kref_get(&list->hdev->ref); file->private_data = list; mutex_init(&list->read_mutex); @@ -1227,6 +1228,8 @@ list_del(&list->node); spin_unlock_irqrestore(&list->hdev->debug_list_lock, flags); kfifo_free(&list->hid_debug_fifo); + + kref_put(&list->hdev->ref, hiddev_free); kfree(list); return 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hid/hid-holtek-kbd.c +++ linux-riscv-6.5.0/drivers/hid/hid-holtek-kbd.c @@ -130,6 +130,10 @@ return -ENODEV; boot_hid = usb_get_intfdata(boot_interface); + if (list_empty(&boot_hid->inputs)) { + hid_err(hid, "no inputs found\n"); + return -ENODEV; + } boot_hid_input = list_first_entry(&boot_hid->inputs, struct hid_input, list); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hid/hid-ids.h +++ linux-riscv-6.5.0/drivers/hid/hid-ids.h @@ -366,6 +366,7 @@ #define USB_VENDOR_ID_DELL 0x413c #define USB_DEVICE_ID_DELL_PIXART_USB_OPTICAL_MOUSE 0x301a +#define USB_DEVICE_ID_DELL_PRO_WIRELESS_KM5221W 0x4503 #define USB_VENDOR_ID_DELORME 0x1163 #define USB_DEVICE_ID_DELORME_EARTHMATE 0x0100 @@ -425,6 +426,7 @@ #define I2C_DEVICE_ID_HP_SPECTRE_X360_13T_AW100 0x29F5 #define I2C_DEVICE_ID_HP_SPECTRE_X360_14T_EA100_V1 0x2BED #define I2C_DEVICE_ID_HP_SPECTRE_X360_14T_EA100_V2 0x2BEE +#define I2C_DEVICE_ID_HP_ENVY_X360_15_EU0556NG 0x2D02 #define USB_VENDOR_ID_ELECOM 0x056e #define USB_DEVICE_ID_ELECOM_BM084 0x0061 only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hid/hid-lenovo.c +++ linux-riscv-6.5.0/drivers/hid/hid-lenovo.c @@ -51,7 +51,12 @@ int select_right; int sensitivity; int press_speed; - u8 middlebutton_state; /* 0:Up, 1:Down (undecided), 2:Scrolling */ + /* 0: Up + * 1: Down (undecided) + * 2: Scrolling + * 3: Patched firmware, disable workaround + */ + u8 middlebutton_state; bool fn_lock; }; @@ -521,6 +526,19 @@ int ret; struct lenovo_drvdata *cptkbd_data = hid_get_drvdata(hdev); + /* + * Tell the keyboard a driver understands it, and turn F7, F9, F11 into + * regular keys + */ + ret = lenovo_send_cmd_cptkbd(hdev, 0x01, 0x03); + if (ret) + hid_warn(hdev, "Failed to switch F7/9/11 mode: %d\n", ret); + + /* Switch middle button to native mode */ + ret = lenovo_send_cmd_cptkbd(hdev, 0x09, 0x01); + if (ret) + hid_warn(hdev, "Failed to switch middle button: %d\n", ret); + ret = lenovo_send_cmd_cptkbd(hdev, 0x05, cptkbd_data->fn_lock); if (ret) hid_err(hdev, "Fn-lock setting failed: %d\n", ret); @@ -668,31 +686,48 @@ { struct lenovo_drvdata *cptkbd_data = hid_get_drvdata(hdev); - /* "wheel" scroll events */ - if (usage->type == EV_REL && (usage->code == REL_WHEEL || - usage->code == REL_HWHEEL)) { - /* Scroll events disable middle-click event */ - cptkbd_data->middlebutton_state = 2; - return 0; - } + if (cptkbd_data->middlebutton_state != 3) { + /* REL_X and REL_Y events during middle button pressed + * are only possible on patched, bug-free firmware + * so set middlebutton_state to 3 + * to never apply workaround anymore + */ + if (cptkbd_data->middlebutton_state == 1 && + usage->type == EV_REL && + (usage->code == REL_X || usage->code == REL_Y)) { + cptkbd_data->middlebutton_state = 3; + /* send middle button press which was hold before */ + input_event(field->hidinput->input, + EV_KEY, BTN_MIDDLE, 1); + input_sync(field->hidinput->input); + } + + /* "wheel" scroll events */ + if (usage->type == EV_REL && (usage->code == REL_WHEEL || + usage->code == REL_HWHEEL)) { + /* Scroll events disable middle-click event */ + cptkbd_data->middlebutton_state = 2; + return 0; + } - /* Middle click events */ - if (usage->type == EV_KEY && usage->code == BTN_MIDDLE) { - if (value == 1) { - cptkbd_data->middlebutton_state = 1; - } else if (value == 0) { - if (cptkbd_data->middlebutton_state == 1) { - /* No scrolling inbetween, send middle-click */ - input_event(field->hidinput->input, - EV_KEY, BTN_MIDDLE, 1); - input_sync(field->hidinput->input); - input_event(field->hidinput->input, - EV_KEY, BTN_MIDDLE, 0); - input_sync(field->hidinput->input); + /* Middle click events */ + if (usage->type == EV_KEY && usage->code == BTN_MIDDLE) { + if (value == 1) { + cptkbd_data->middlebutton_state = 1; + } else if (value == 0) { + if (cptkbd_data->middlebutton_state == 1) { + /* No scrolling inbetween, send middle-click */ + input_event(field->hidinput->input, + EV_KEY, BTN_MIDDLE, 1); + input_sync(field->hidinput->input); + input_event(field->hidinput->input, + EV_KEY, BTN_MIDDLE, 0); + input_sync(field->hidinput->input); + } + cptkbd_data->middlebutton_state = 0; } - cptkbd_data->middlebutton_state = 0; + return 1; } - return 1; } if (usage->type == EV_KEY && usage->code == KEY_FN_ESC && value == 1) { @@ -1126,22 +1161,6 @@ } hid_set_drvdata(hdev, cptkbd_data); - /* - * Tell the keyboard a driver understands it, and turn F7, F9, F11 into - * regular keys (Compact only) - */ - if (hdev->product == USB_DEVICE_ID_LENOVO_CUSBKBD || - hdev->product == USB_DEVICE_ID_LENOVO_CBTKBD) { - ret = lenovo_send_cmd_cptkbd(hdev, 0x01, 0x03); - if (ret) - hid_warn(hdev, "Failed to switch F7/9/11 mode: %d\n", ret); - } - - /* Switch middle button to native mode */ - ret = lenovo_send_cmd_cptkbd(hdev, 0x09, 0x01); - if (ret) - hid_warn(hdev, "Failed to switch middle button: %d\n", ret); - /* Set keyboard settings to known state */ cptkbd_data->middlebutton_state = 0; cptkbd_data->fn_lock = true; @@ -1264,6 +1283,24 @@ return ret; } +#ifdef CONFIG_PM +static int lenovo_reset_resume(struct hid_device *hdev) +{ + switch (hdev->product) { + case USB_DEVICE_ID_LENOVO_CUSBKBD: + case USB_DEVICE_ID_LENOVO_TPIIUSBKBD: + if (hdev->type == HID_TYPE_USBMOUSE) + lenovo_features_set_cptkbd(hdev); + + break; + default: + break; + } + + return 0; +} +#endif + static void lenovo_remove_tpkbd(struct hid_device *hdev) { struct lenovo_drvdata *data_pointer = hid_get_drvdata(hdev); @@ -1380,6 +1417,9 @@ .raw_event = lenovo_raw_event, .event = lenovo_event, .report_fixup = lenovo_report_fixup, +#ifdef CONFIG_PM + .reset_resume = lenovo_reset_resume, +#endif }; module_hid_driver(lenovo_driver); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hid/hid-nintendo.c +++ linux-riscv-6.5.0/drivers/hid/hid-nintendo.c @@ -2088,7 +2088,9 @@ struct joycon_input_report *report; req.subcmd_id = JC_SUBCMD_REQ_DEV_INFO; + mutex_lock(&ctlr->output_mutex); ret = joycon_send_subcmd(ctlr, &req, 0, HZ); + mutex_unlock(&ctlr->output_mutex); if (ret) { hid_err(ctlr->hdev, "Failed to get joycon info; ret=%d\n", ret); return ret; @@ -2117,6 +2119,85 @@ return 0; } +static int joycon_init(struct hid_device *hdev) +{ + struct joycon_ctlr *ctlr = hid_get_drvdata(hdev); + int ret = 0; + + mutex_lock(&ctlr->output_mutex); + /* if handshake command fails, assume ble pro controller */ + if ((jc_type_is_procon(ctlr) || jc_type_is_chrggrip(ctlr)) && + !joycon_send_usb(ctlr, JC_USB_CMD_HANDSHAKE, HZ)) { + hid_dbg(hdev, "detected USB controller\n"); + /* set baudrate for improved latency */ + ret = joycon_send_usb(ctlr, JC_USB_CMD_BAUDRATE_3M, HZ); + if (ret) { + hid_err(hdev, "Failed to set baudrate; ret=%d\n", ret); + goto out_unlock; + } + /* handshake */ + ret = joycon_send_usb(ctlr, JC_USB_CMD_HANDSHAKE, HZ); + if (ret) { + hid_err(hdev, "Failed handshake; ret=%d\n", ret); + goto out_unlock; + } + /* + * Set no timeout (to keep controller in USB mode). + * This doesn't send a response, so ignore the timeout. + */ + joycon_send_usb(ctlr, JC_USB_CMD_NO_TIMEOUT, HZ/10); + } else if (jc_type_is_chrggrip(ctlr)) { + hid_err(hdev, "Failed charging grip handshake\n"); + ret = -ETIMEDOUT; + goto out_unlock; + } + + /* get controller calibration data, and parse it */ + ret = joycon_request_calibration(ctlr); + if (ret) { + /* + * We can function with default calibration, but it may be + * inaccurate. Provide a warning, and continue on. + */ + hid_warn(hdev, "Analog stick positions may be inaccurate\n"); + } + + /* get IMU calibration data, and parse it */ + ret = joycon_request_imu_calibration(ctlr); + if (ret) { + /* + * We can function with default calibration, but it may be + * inaccurate. Provide a warning, and continue on. + */ + hid_warn(hdev, "Unable to read IMU calibration data\n"); + } + + /* Set the reporting mode to 0x30, which is the full report mode */ + ret = joycon_set_report_mode(ctlr); + if (ret) { + hid_err(hdev, "Failed to set report mode; ret=%d\n", ret); + goto out_unlock; + } + + /* Enable rumble */ + ret = joycon_enable_rumble(ctlr); + if (ret) { + hid_err(hdev, "Failed to enable rumble; ret=%d\n", ret); + goto out_unlock; + } + + /* Enable the IMU */ + ret = joycon_enable_imu(ctlr); + if (ret) { + hid_err(hdev, "Failed to enable the IMU; ret=%d\n", ret); + goto out_unlock; + } + +out_unlock: + mutex_unlock(&ctlr->output_mutex); + return ret; +} + /* Common handler for parsing inputs */ static int joycon_ctlr_read_handler(struct joycon_ctlr *ctlr, u8 *data, int size) @@ -2248,85 +2329,19 @@ hid_device_io_start(hdev); - /* Initialize the controller */ - mutex_lock(&ctlr->output_mutex); - /* if handshake command fails, assume ble pro controller */ - if ((jc_type_is_procon(ctlr) || jc_type_is_chrggrip(ctlr)) && - !joycon_send_usb(ctlr, JC_USB_CMD_HANDSHAKE, HZ)) { - hid_dbg(hdev, "detected USB controller\n"); - /* set baudrate for improved latency */ - ret = joycon_send_usb(ctlr, JC_USB_CMD_BAUDRATE_3M, HZ); - if (ret) { - hid_err(hdev, "Failed to set baudrate; ret=%d\n", ret); - goto err_mutex; - } - /* handshake */ - ret = joycon_send_usb(ctlr, JC_USB_CMD_HANDSHAKE, HZ); - if (ret) { - hid_err(hdev, "Failed handshake; ret=%d\n", ret); - goto err_mutex; - } - /* - * Set no timeout (to keep controller in USB mode). - * This doesn't send a response, so ignore the timeout. - */ - joycon_send_usb(ctlr, JC_USB_CMD_NO_TIMEOUT, HZ/10); - } else if (jc_type_is_chrggrip(ctlr)) { - hid_err(hdev, "Failed charging grip handshake\n"); - ret = -ETIMEDOUT; - goto err_mutex; - } - - /* get controller calibration data, and parse it */ - ret = joycon_request_calibration(ctlr); - if (ret) { - /* - * We can function with default calibration, but it may be - * inaccurate. Provide a warning, and continue on. - */ - hid_warn(hdev, "Analog stick positions may be inaccurate\n"); - } - - /* get IMU calibration data, and parse it */ - ret = joycon_request_imu_calibration(ctlr); + ret = joycon_init(hdev); if (ret) { - /* - * We can function with default calibration, but it may be - * inaccurate. Provide a warning, and continue on. - */ - hid_warn(hdev, "Unable to read IMU calibration data\n"); - } - - /* Set the reporting mode to 0x30, which is the full report mode */ - ret = joycon_set_report_mode(ctlr); - if (ret) { - hid_err(hdev, "Failed to set report mode; ret=%d\n", ret); - goto err_mutex; - } - - /* Enable rumble */ - ret = joycon_enable_rumble(ctlr); - if (ret) { - hid_err(hdev, "Failed to enable rumble; ret=%d\n", ret); - goto err_mutex; - } - - /* Enable the IMU */ - ret = joycon_enable_imu(ctlr); - if (ret) { - hid_err(hdev, "Failed to enable the IMU; ret=%d\n", ret); - goto err_mutex; + hid_err(hdev, "Failed to initialize controller; ret=%d\n", ret); + goto err_close; } ret = joycon_read_info(ctlr); if (ret) { hid_err(hdev, "Failed to retrieve controller info; ret=%d\n", ret); - goto err_mutex; + goto err_close; } - mutex_unlock(&ctlr->output_mutex); - /* Initialize the leds */ ret = joycon_leds_create(ctlr); if (ret) { @@ -2352,8 +2367,6 @@ hid_dbg(hdev, "probe - success\n"); return 0; -err_mutex: - mutex_unlock(&ctlr->output_mutex); err_close: hid_hw_close(hdev); err_stop: @@ -2383,6 +2396,20 @@ hid_hw_stop(hdev); } +#ifdef CONFIG_PM + +static int nintendo_hid_resume(struct hid_device *hdev) +{ + int ret = joycon_init(hdev); + + if (ret) + hid_err(hdev, "Failed to restore controller after resume"); + + return ret; +} + +#endif + static const struct hid_device_id nintendo_hid_devices[] = { { HID_USB_DEVICE(USB_VENDOR_ID_NINTENDO, USB_DEVICE_ID_NINTENDO_PROCON) }, @@ -2404,6 +2431,10 @@ .probe = nintendo_hid_probe, .remove = nintendo_hid_remove, .raw_event = nintendo_hid_event, + +#ifdef CONFIG_PM + .resume = nintendo_hid_resume, +#endif }; module_hid_driver(nintendo_hid_driver); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hid/hid-quirks.c +++ linux-riscv-6.5.0/drivers/hid/hid-quirks.c @@ -66,6 +66,7 @@ { HID_USB_DEVICE(USB_VENDOR_ID_CORSAIR, USB_DEVICE_ID_CORSAIR_STRAFE), HID_QUIRK_NO_INIT_REPORTS | HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_CREATIVELABS, USB_DEVICE_ID_CREATIVE_SB_OMNI_SURROUND_51), HID_QUIRK_NOGET }, { HID_USB_DEVICE(USB_VENDOR_ID_DELL, USB_DEVICE_ID_DELL_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL }, + { HID_USB_DEVICE(USB_VENDOR_ID_DELL, USB_DEVICE_ID_DELL_PRO_WIRELESS_KM5221W), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC), HID_QUIRK_NOGET }, { HID_USB_DEVICE(USB_VENDOR_ID_DRACAL_RAPHNET, USB_DEVICE_ID_RAPHNET_2NES2SNES), HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_DRACAL_RAPHNET, USB_DEVICE_ID_RAPHNET_4NES4SNES), HID_QUIRK_MULTI_INPUT }, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hid/hid-uclogic-core-test.c +++ linux-riscv-6.5.0/drivers/hid/hid-uclogic-core-test.c @@ -56,6 +56,11 @@ }, }; +static void fake_work(struct work_struct *work) +{ + +} + static void hid_test_uclogic_exec_event_hook_test(struct kunit *test) { struct uclogic_params p = {0, }; @@ -77,6 +82,8 @@ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, filter->event); memcpy(filter->event, &hook_events[n].event[0], filter->size); + INIT_WORK(&filter->work, fake_work); + list_add_tail(&filter->list, &p.event_hooks->list); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hid/hid-uclogic-params-test.c +++ linux-riscv-6.5.0/drivers/hid/hid-uclogic-params-test.c @@ -174,12 +174,26 @@ KUNIT_EXPECT_EQ(test, params->frame_type, frame_type); } +struct fake_device { + unsigned long quirks; +}; + static void hid_test_uclogic_params_cleanup_event_hooks(struct kunit *test) { int res, n; + struct hid_device *hdev; + struct fake_device *fake_dev; struct uclogic_params p = {0, }; - res = uclogic_params_ugee_v2_init_event_hooks(NULL, &p); + hdev = kunit_kzalloc(test, sizeof(struct hid_device), GFP_KERNEL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, hdev); + + fake_dev = kunit_kzalloc(test, sizeof(struct fake_device), GFP_KERNEL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, fake_dev); + + hid_set_drvdata(hdev, fake_dev); + + res = uclogic_params_ugee_v2_init_event_hooks(hdev, &p); KUNIT_ASSERT_EQ(test, res, 0); /* Check that the function can be called repeatedly */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hte/hte-tegra194-test.c +++ linux-riscv-6.5.0/drivers/hte/hte-tegra194-test.c @@ -153,8 +153,10 @@ } cnt = of_hte_req_count(hte.pdev); - if (cnt < 0) + if (cnt < 0) { + ret = cnt; goto free_irq; + } dev_info(&pdev->dev, "Total requested lines:%d\n", cnt); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hwmon/acpi_power_meter.c +++ linux-riscv-6.5.0/drivers/hwmon/acpi_power_meter.c @@ -31,6 +31,7 @@ #define POWER_METER_CAN_NOTIFY (1 << 3) #define POWER_METER_IS_BATTERY (1 << 8) #define UNKNOWN_HYSTERESIS 0xFFFFFFFF +#define UNKNOWN_POWER 0xFFFFFFFF #define METER_NOTIFY_CONFIG 0x80 #define METER_NOTIFY_TRIP 0x81 @@ -348,6 +349,9 @@ update_meter(resource); mutex_unlock(&resource->lock); + if (resource->power == UNKNOWN_POWER) + return -ENODATA; + return sprintf(buf, "%llu\n", resource->power * 1000); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hwmon/axi-fan-control.c +++ linux-riscv-6.5.0/drivers/hwmon/axi-fan-control.c @@ -496,6 +496,21 @@ return -ENODEV; } + ret = axi_fan_control_init(ctl, pdev->dev.of_node); + if (ret) { + dev_err(&pdev->dev, "Failed to initialize device\n"); + return ret; + } + + ctl->hdev = devm_hwmon_device_register_with_info(&pdev->dev, + name, + ctl, + &axi_chip_info, + axi_fan_control_groups); + + if (IS_ERR(ctl->hdev)) + return PTR_ERR(ctl->hdev); + ctl->irq = platform_get_irq(pdev, 0); if (ctl->irq < 0) return ctl->irq; @@ -509,19 +524,7 @@ return ret; } - ret = axi_fan_control_init(ctl, pdev->dev.of_node); - if (ret) { - dev_err(&pdev->dev, "Failed to initialize device\n"); - return ret; - } - - ctl->hdev = devm_hwmon_device_register_with_info(&pdev->dev, - name, - ctl, - &axi_chip_info, - axi_fan_control_groups); - - return PTR_ERR_OR_ZERO(ctl->hdev); + return 0; } static struct platform_driver axi_fan_control_driver = { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hwmon/coretemp.c +++ linux-riscv-6.5.0/drivers/hwmon/coretemp.c @@ -42,7 +42,7 @@ #define PKG_SYSFS_ATTR_NO 1 /* Sysfs attribute for package temp */ #define BASE_SYSFS_ATTR_NO 2 /* Sysfs Base attr no for coretemp */ #define NUM_REAL_CORES 128 /* Number of Real cores per cpu */ -#define CORETEMP_NAME_LENGTH 19 /* String Length of attrs */ +#define CORETEMP_NAME_LENGTH 28 /* String Length of attrs */ #define MAX_CORE_ATTRS 4 /* Maximum no of basic attrs */ #define TOTAL_ATTRS (MAX_CORE_ATTRS + 1) #define MAX_CORE_DATA (NUM_REAL_CORES + BASE_SYSFS_ATTR_NO) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hwmon/nct6775-core.c +++ linux-riscv-6.5.0/drivers/hwmon/nct6775-core.c @@ -1581,17 +1581,21 @@ data->fan_div[i]); if (data->has_fan_min & BIT(i)) { - err = nct6775_read_value(data, data->REG_FAN_MIN[i], ®); + u16 tmp; + + err = nct6775_read_value(data, data->REG_FAN_MIN[i], &tmp); if (err) goto out; - data->fan_min[i] = reg; + data->fan_min[i] = tmp; } if (data->REG_FAN_PULSES[i]) { - err = nct6775_read_value(data, data->REG_FAN_PULSES[i], ®); + u16 tmp; + + err = nct6775_read_value(data, data->REG_FAN_PULSES[i], &tmp); if (err) goto out; - data->fan_pulses[i] = (reg >> data->FAN_PULSE_SHIFT[i]) & 0x03; + data->fan_pulses[i] = (tmp >> data->FAN_PULSE_SHIFT[i]) & 0x03; } err = nct6775_select_fan_div(dev, data, i, reg); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hwmon/nzxt-kraken2.c +++ linux-riscv-6.5.0/drivers/hwmon/nzxt-kraken2.c @@ -161,13 +161,13 @@ ret = hid_hw_start(hdev, HID_CONNECT_HIDRAW); if (ret) { hid_err(hdev, "hid hw start failed with %d\n", ret); - goto fail_and_stop; + return ret; } ret = hid_hw_open(hdev); if (ret) { hid_err(hdev, "hid hw open failed with %d\n", ret); - goto fail_and_close; + goto fail_and_stop; } priv->hwmon_dev = hwmon_device_register_with_info(&hdev->dev, "kraken2", only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hwmon/sch5627.c +++ linux-riscv-6.5.0/drivers/hwmon/sch5627.c @@ -6,6 +6,7 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +#include #include #include #include @@ -32,6 +33,10 @@ #define SCH5627_REG_PRIMARY_ID 0x3f #define SCH5627_REG_CTRL 0x40 +#define SCH5627_CTRL_START BIT(0) +#define SCH5627_CTRL_LOCK BIT(1) +#define SCH5627_CTRL_VBAT BIT(4) + #define SCH5627_NO_TEMPS 8 #define SCH5627_NO_FANS 4 #define SCH5627_NO_IN 5 @@ -147,7 +152,8 @@ /* Trigger a Vbat voltage measurement every 5 minutes */ if (time_after(jiffies, data->last_battery + 300 * HZ)) { - sch56xx_write_virtual_reg(data->addr, SCH5627_REG_CTRL, data->control | 0x10); + sch56xx_write_virtual_reg(data->addr, SCH5627_REG_CTRL, + data->control | SCH5627_CTRL_VBAT); data->last_battery = jiffies; } @@ -226,6 +232,14 @@ static umode_t sch5627_is_visible(const void *drvdata, enum hwmon_sensor_types type, u32 attr, int channel) { + const struct sch5627_data *data = drvdata; + + /* Once the lock bit is set, the virtual registers become read-only + * until the next power cycle. + */ + if (data->control & SCH5627_CTRL_LOCK) + return 0444; + if (type == hwmon_pwm && attr == hwmon_pwm_auto_channels_temp) return 0644; @@ -483,14 +497,13 @@ return val; data->control = val; - if (!(data->control & 0x01)) { + if (!(data->control & SCH5627_CTRL_START)) { pr_err("hardware monitoring not enabled\n"); return -ENODEV; } /* Trigger a Vbat voltage measurement, so that we get a valid reading the first time we read Vbat */ - sch56xx_write_virtual_reg(data->addr, SCH5627_REG_CTRL, - data->control | 0x10); + sch56xx_write_virtual_reg(data->addr, SCH5627_REG_CTRL, data->control | SCH5627_CTRL_VBAT); data->last_battery = jiffies; /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hwmon/sch56xx-common.c +++ linux-riscv-6.5.0/drivers/hwmon/sch56xx-common.c @@ -7,10 +7,8 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #include -#include #include #include -#include #include #include #include @@ -21,10 +19,7 @@ #include #include "sch56xx-common.h" -static bool ignore_dmi; -module_param(ignore_dmi, bool, 0); -MODULE_PARM_DESC(ignore_dmi, "Omit DMI check for supported devices (default=0)"); - +/* Insmod parameters */ static bool nowayout = WATCHDOG_NOWAYOUT; module_param(nowayout, bool, 0); MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default=" @@ -523,66 +518,11 @@ return PTR_ERR_OR_ZERO(sch56xx_pdev); } -static const struct dmi_system_id sch56xx_dmi_override_table[] __initconst = { - { - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), - DMI_MATCH(DMI_PRODUCT_NAME, "CELSIUS W380"), - }, - }, - { - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), - DMI_MATCH(DMI_PRODUCT_NAME, "ESPRIMO P710"), - }, - }, - { - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), - DMI_MATCH(DMI_PRODUCT_NAME, "ESPRIMO E9900"), - }, - }, - { } -}; - -/* For autoloading only */ -static const struct dmi_system_id sch56xx_dmi_table[] __initconst = { - { - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), - }, - }, - { } -}; -MODULE_DEVICE_TABLE(dmi, sch56xx_dmi_table); - static int __init sch56xx_init(void) { - const char *name = NULL; int address; + const char *name = NULL; - if (!ignore_dmi) { - if (!dmi_check_system(sch56xx_dmi_table)) - return -ENODEV; - - if (!dmi_check_system(sch56xx_dmi_override_table)) { - /* - * Some machines like the Esprimo P720 and Esprimo C700 have - * onboard devices named " Antiope"/" Theseus" instead of - * "Antiope"/"Theseus", so we need to check for both. - */ - if (!dmi_find_device(DMI_DEV_TYPE_OTHER, "Antiope", NULL) && - !dmi_find_device(DMI_DEV_TYPE_OTHER, " Antiope", NULL) && - !dmi_find_device(DMI_DEV_TYPE_OTHER, "Theseus", NULL) && - !dmi_find_device(DMI_DEV_TYPE_OTHER, " Theseus", NULL)) - return -ENODEV; - } - } - - /* - * Some devices like the Esprimo C700 have both onboard devices, - * so we still have to check manually - */ address = sch56xx_find(0x4e, &name); if (address < 0) address = sch56xx_find(0x2e, &name); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hwtracing/coresight/coresight-etm-perf.c +++ linux-riscv-6.5.0/drivers/hwtracing/coresight/coresight-etm-perf.c @@ -493,7 +493,7 @@ goto fail_end_stop; /* Finally enable the tracer */ - if (coresight_enable_source(csdev, CS_MODE_PERF, event)) + if (source_ops(csdev)->enable(csdev, event, CS_MODE_PERF)) goto fail_disable_path; /* @@ -587,7 +587,7 @@ return; /* stop tracer */ - coresight_disable_source(csdev, event); + source_ops(csdev)->disable(csdev, event); /* tell the core */ event->hw.state = PERF_HES_STOPPED; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hwtracing/coresight/coresight-etm4x-core.c +++ linux-riscv-6.5.0/drivers/hwtracing/coresight/coresight-etm4x-core.c @@ -2190,7 +2190,7 @@ per_cpu(delayed_probe, cpu) = NULL; } -static void __exit etm4_remove_dev(struct etmv4_drvdata *drvdata) +static void etm4_remove_dev(struct etmv4_drvdata *drvdata) { bool had_delayed_probe; /* @@ -2219,7 +2219,7 @@ } } -static void __exit etm4_remove_amba(struct amba_device *adev) +static void etm4_remove_amba(struct amba_device *adev) { struct etmv4_drvdata *drvdata = dev_get_drvdata(&adev->dev); @@ -2227,7 +2227,7 @@ etm4_remove_dev(drvdata); } -static int __exit etm4_remove_platform_dev(struct platform_device *pdev) +static int etm4_remove_platform_dev(struct platform_device *pdev) { struct etmv4_drvdata *drvdata = dev_get_drvdata(&pdev->dev); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hwtracing/coresight/ultrasoc-smb.c +++ linux-riscv-6.5.0/drivers/hwtracing/coresight/ultrasoc-smb.c @@ -99,7 +99,7 @@ struct smb_drv_data, miscdev); int ret = 0; - mutex_lock(&drvdata->mutex); + spin_lock(&drvdata->spinlock); if (drvdata->reading) { ret = -EBUSY; @@ -115,7 +115,7 @@ drvdata->reading = true; out: - mutex_unlock(&drvdata->mutex); + spin_unlock(&drvdata->spinlock); return ret; } @@ -132,10 +132,8 @@ if (!len) return 0; - mutex_lock(&drvdata->mutex); - if (!sdb->data_size) - goto out; + return 0; to_copy = min(sdb->data_size, len); @@ -145,20 +143,15 @@ if (copy_to_user(data, sdb->buf_base + sdb->buf_rdptr, to_copy)) { dev_dbg(dev, "Failed to copy data to user\n"); - to_copy = -EFAULT; - goto out; + return -EFAULT; } *ppos += to_copy; - smb_update_read_ptr(drvdata, to_copy); - - dev_dbg(dev, "%zu bytes copied\n", to_copy); -out: if (!sdb->data_size) smb_reset_buffer(drvdata); - mutex_unlock(&drvdata->mutex); + dev_dbg(dev, "%zu bytes copied\n", to_copy); return to_copy; } @@ -167,9 +160,9 @@ struct smb_drv_data *drvdata = container_of(file->private_data, struct smb_drv_data, miscdev); - mutex_lock(&drvdata->mutex); + spin_lock(&drvdata->spinlock); drvdata->reading = false; - mutex_unlock(&drvdata->mutex); + spin_unlock(&drvdata->spinlock); return 0; } @@ -262,7 +255,7 @@ struct smb_drv_data *drvdata = dev_get_drvdata(csdev->dev.parent); int ret = 0; - mutex_lock(&drvdata->mutex); + spin_lock(&drvdata->spinlock); /* Do nothing, the trace data is reading by other interface now */ if (drvdata->reading) { @@ -294,7 +287,7 @@ dev_dbg(&csdev->dev, "Ultrasoc SMB enabled\n"); out: - mutex_unlock(&drvdata->mutex); + spin_unlock(&drvdata->spinlock); return ret; } @@ -304,7 +297,7 @@ struct smb_drv_data *drvdata = dev_get_drvdata(csdev->dev.parent); int ret = 0; - mutex_lock(&drvdata->mutex); + spin_lock(&drvdata->spinlock); if (drvdata->reading) { ret = -EBUSY; @@ -327,7 +320,7 @@ dev_dbg(&csdev->dev, "Ultrasoc SMB disabled\n"); out: - mutex_unlock(&drvdata->mutex); + spin_unlock(&drvdata->spinlock); return ret; } @@ -408,7 +401,7 @@ if (!buf) return 0; - mutex_lock(&drvdata->mutex); + spin_lock(&drvdata->spinlock); /* Don't do anything if another tracer is using this sink. */ if (atomic_read(&csdev->refcnt) != 1) @@ -432,7 +425,7 @@ if (!buf->snapshot && lost) perf_aux_output_flag(handle, PERF_AUX_FLAG_TRUNCATED); out: - mutex_unlock(&drvdata->mutex); + spin_unlock(&drvdata->spinlock); return data_size; } @@ -484,7 +477,6 @@ static void smb_init_hw(struct smb_drv_data *drvdata) { smb_disable_hw(drvdata); - smb_reset_buffer(drvdata); writel(SMB_LB_CFG_LO_DEFAULT, drvdata->base + SMB_LB_CFG_LO_REG); writel(SMB_LB_CFG_HI_DEFAULT, drvdata->base + SMB_LB_CFG_HI_REG); @@ -590,37 +582,33 @@ return ret; } - mutex_init(&drvdata->mutex); + ret = smb_config_inport(dev, true); + if (ret) + return ret; + + smb_reset_buffer(drvdata); + platform_set_drvdata(pdev, drvdata); + spin_lock_init(&drvdata->spinlock); drvdata->pid = -1; ret = smb_register_sink(pdev, drvdata); if (ret) { + smb_config_inport(&pdev->dev, false); dev_err(dev, "Failed to register SMB sink\n"); return ret; } - ret = smb_config_inport(dev, true); - if (ret) { - smb_unregister_sink(drvdata); - return ret; - } - - platform_set_drvdata(pdev, drvdata); - return 0; } static int smb_remove(struct platform_device *pdev) { struct smb_drv_data *drvdata = platform_get_drvdata(pdev); - int ret; - - ret = smb_config_inport(&pdev->dev, false); - if (ret) - return ret; smb_unregister_sink(drvdata); + smb_config_inport(&pdev->dev, false); + return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hwtracing/coresight/ultrasoc-smb.h +++ linux-riscv-6.5.0/drivers/hwtracing/coresight/ultrasoc-smb.h @@ -8,7 +8,7 @@ #define _ULTRASOC_SMB_H #include -#include +#include /* Offset of SMB global registers */ #define SMB_GLB_CFG_REG 0x00 @@ -105,7 +105,7 @@ * @csdev: Component vitals needed by the framework. * @sdb: Data buffer for SMB. * @miscdev: Specifics to handle "/dev/xyz.smb" entry. - * @mutex: Control data access to one at a time. + * @spinlock: Control data access to one at a time. * @reading: Synchronise user space access to SMB buffer. * @pid: Process ID of the process being monitored by the * session that is using this component. @@ -116,7 +116,7 @@ struct coresight_device *csdev; struct smb_data_buffer sdb; struct miscdevice miscdev; - struct mutex mutex; + spinlock_t spinlock; bool reading; pid_t pid; enum cs_mode mode; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/hwtracing/ptt/hisi_ptt.c +++ linux-riscv-6.5.0/drivers/hwtracing/ptt/hisi_ptt.c @@ -1178,6 +1178,10 @@ hisi_ptt_pmu_stop(event, PERF_EF_UPDATE); } +static void hisi_ptt_pmu_read(struct perf_event *event) +{ +} + static void hisi_ptt_remove_cpuhp_instance(void *hotplug_node) { cpuhp_state_remove_instance_nocalls(hisi_ptt_pmu_online, hotplug_node); @@ -1221,6 +1225,7 @@ .stop = hisi_ptt_pmu_stop, .add = hisi_ptt_pmu_add, .del = hisi_ptt_pmu_del, + .read = hisi_ptt_pmu_read, }; reg = readl(hisi_ptt->iobase + HISI_PTT_LOCATION); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/i2c/busses/Kconfig +++ linux-riscv-6.5.0/drivers/i2c/busses/Kconfig @@ -158,6 +158,7 @@ Alder Lake (PCH) Raptor Lake (PCH) Meteor Lake (SOC and PCH) + Birch Stream (SOC) This driver can also be built as a module. If so, the module will be called i2c-i801. only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/i2c/busses/i2c-bcm-iproc.c +++ linux-riscv-6.5.0/drivers/i2c/busses/i2c-bcm-iproc.c @@ -316,26 +316,44 @@ iproc_i2c_wr_reg(iproc_i2c, IE_OFFSET, val); } -static void bcm_iproc_i2c_check_slave_status( - struct bcm_iproc_i2c_dev *iproc_i2c) +static bool bcm_iproc_i2c_check_slave_status + (struct bcm_iproc_i2c_dev *iproc_i2c, u32 status) { u32 val; + bool recover = false; - val = iproc_i2c_rd_reg(iproc_i2c, S_CMD_OFFSET); - /* status is valid only when START_BUSY is cleared after it was set */ - if (val & BIT(S_CMD_START_BUSY_SHIFT)) - return; - - val = (val >> S_CMD_STATUS_SHIFT) & S_CMD_STATUS_MASK; - if (val == S_CMD_STATUS_TIMEOUT || val == S_CMD_STATUS_MASTER_ABORT) { - dev_err(iproc_i2c->device, (val == S_CMD_STATUS_TIMEOUT) ? - "slave random stretch time timeout\n" : - "Master aborted read transaction\n"); + /* check slave transmit status only if slave is transmitting */ + if (!iproc_i2c->slave_rx_only) { + val = iproc_i2c_rd_reg(iproc_i2c, S_CMD_OFFSET); + /* status is valid only when START_BUSY is cleared */ + if (!(val & BIT(S_CMD_START_BUSY_SHIFT))) { + val = (val >> S_CMD_STATUS_SHIFT) & S_CMD_STATUS_MASK; + if (val == S_CMD_STATUS_TIMEOUT || + val == S_CMD_STATUS_MASTER_ABORT) { + dev_warn(iproc_i2c->device, + (val == S_CMD_STATUS_TIMEOUT) ? + "slave random stretch time timeout\n" : + "Master aborted read transaction\n"); + recover = true; + } + } + } + + /* RX_EVENT is not valid when START_BUSY is set */ + if ((status & BIT(IS_S_RX_EVENT_SHIFT)) && + (status & BIT(IS_S_START_BUSY_SHIFT))) { + dev_warn(iproc_i2c->device, "Slave aborted read transaction\n"); + recover = true; + } + + if (recover) { /* re-initialize i2c for recovery */ bcm_iproc_i2c_enable_disable(iproc_i2c, false); bcm_iproc_i2c_slave_init(iproc_i2c, true); bcm_iproc_i2c_enable_disable(iproc_i2c, true); } + + return recover; } static void bcm_iproc_i2c_slave_read(struct bcm_iproc_i2c_dev *iproc_i2c) @@ -420,48 +438,6 @@ u32 val; u8 value; - /* - * Slave events in case of master-write, master-write-read and, - * master-read - * - * Master-write : only IS_S_RX_EVENT_SHIFT event - * Master-write-read: both IS_S_RX_EVENT_SHIFT and IS_S_RD_EVENT_SHIFT - * events - * Master-read : both IS_S_RX_EVENT_SHIFT and IS_S_RD_EVENT_SHIFT - * events or only IS_S_RD_EVENT_SHIFT - * - * iproc has a slave rx fifo size of 64 bytes. Rx fifo full interrupt - * (IS_S_RX_FIFO_FULL_SHIFT) will be generated when RX fifo becomes - * full. This can happen if Master issues write requests of more than - * 64 bytes. - */ - if (status & BIT(IS_S_RX_EVENT_SHIFT) || - status & BIT(IS_S_RD_EVENT_SHIFT) || - status & BIT(IS_S_RX_FIFO_FULL_SHIFT)) { - /* disable slave interrupts */ - val = iproc_i2c_rd_reg(iproc_i2c, IE_OFFSET); - val &= ~iproc_i2c->slave_int_mask; - iproc_i2c_wr_reg(iproc_i2c, IE_OFFSET, val); - - if (status & BIT(IS_S_RD_EVENT_SHIFT)) - /* Master-write-read request */ - iproc_i2c->slave_rx_only = false; - else - /* Master-write request only */ - iproc_i2c->slave_rx_only = true; - - /* schedule tasklet to read data later */ - tasklet_schedule(&iproc_i2c->slave_rx_tasklet); - - /* - * clear only IS_S_RX_EVENT_SHIFT and - * IS_S_RX_FIFO_FULL_SHIFT interrupt. - */ - val = BIT(IS_S_RX_EVENT_SHIFT); - if (status & BIT(IS_S_RX_FIFO_FULL_SHIFT)) - val |= BIT(IS_S_RX_FIFO_FULL_SHIFT); - iproc_i2c_wr_reg(iproc_i2c, IS_OFFSET, val); - } if (status & BIT(IS_S_TX_UNDERRUN_SHIFT)) { iproc_i2c->tx_underrun++; @@ -493,8 +469,9 @@ * less than PKT_LENGTH bytes were output on the SMBUS */ iproc_i2c->slave_int_mask &= ~BIT(IE_S_TX_UNDERRUN_SHIFT); - iproc_i2c_wr_reg(iproc_i2c, IE_OFFSET, - iproc_i2c->slave_int_mask); + val = iproc_i2c_rd_reg(iproc_i2c, IE_OFFSET); + val &= ~BIT(IE_S_TX_UNDERRUN_SHIFT); + iproc_i2c_wr_reg(iproc_i2c, IE_OFFSET, val); /* End of SMBUS for Master Read */ val = BIT(S_TX_WR_STATUS_SHIFT); @@ -515,9 +492,49 @@ BIT(IS_S_START_BUSY_SHIFT)); } - /* check slave transmit status only if slave is transmitting */ - if (!iproc_i2c->slave_rx_only) - bcm_iproc_i2c_check_slave_status(iproc_i2c); + /* if the controller has been reset, immediately return from the ISR */ + if (bcm_iproc_i2c_check_slave_status(iproc_i2c, status)) + return true; + + /* + * Slave events in case of master-write, master-write-read and, + * master-read + * + * Master-write : only IS_S_RX_EVENT_SHIFT event + * Master-write-read: both IS_S_RX_EVENT_SHIFT and IS_S_RD_EVENT_SHIFT + * events + * Master-read : both IS_S_RX_EVENT_SHIFT and IS_S_RD_EVENT_SHIFT + * events or only IS_S_RD_EVENT_SHIFT + * + * iproc has a slave rx fifo size of 64 bytes. Rx fifo full interrupt + * (IS_S_RX_FIFO_FULL_SHIFT) will be generated when RX fifo becomes + * full. This can happen if Master issues write requests of more than + * 64 bytes. + */ + if (status & BIT(IS_S_RX_EVENT_SHIFT) || + status & BIT(IS_S_RD_EVENT_SHIFT) || + status & BIT(IS_S_RX_FIFO_FULL_SHIFT)) { + /* disable slave interrupts */ + val = iproc_i2c_rd_reg(iproc_i2c, IE_OFFSET); + val &= ~iproc_i2c->slave_int_mask; + iproc_i2c_wr_reg(iproc_i2c, IE_OFFSET, val); + + if (status & BIT(IS_S_RD_EVENT_SHIFT)) + /* Master-write-read request */ + iproc_i2c->slave_rx_only = false; + else + /* Master-write request only */ + iproc_i2c->slave_rx_only = true; + + /* schedule tasklet to read data later */ + tasklet_schedule(&iproc_i2c->slave_rx_tasklet); + + /* clear IS_S_RX_FIFO_FULL_SHIFT interrupt */ + if (status & BIT(IS_S_RX_FIFO_FULL_SHIFT)) { + val = BIT(IS_S_RX_FIFO_FULL_SHIFT); + iproc_i2c_wr_reg(iproc_i2c, IS_OFFSET, val); + } + } return true; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/i2c/busses/i2c-designware-master.c +++ linux-riscv-6.5.0/drivers/i2c/busses/i2c-designware-master.c @@ -518,10 +518,16 @@ /* * Because we don't know the buffer length in the - * I2C_FUNC_SMBUS_BLOCK_DATA case, we can't stop - * the transaction here. + * I2C_FUNC_SMBUS_BLOCK_DATA case, we can't stop the + * transaction here. Also disable the TX_EMPTY IRQ + * while waiting for the data length byte to avoid the + * bogus interrupts flood. */ - if (buf_len > 0 || flags & I2C_M_RECV_LEN) { + if (flags & I2C_M_RECV_LEN) { + dev->status |= STATUS_WRITE_IN_PROGRESS; + intr_mask &= ~DW_IC_INTR_TX_EMPTY; + break; + } else if (buf_len > 0) { /* more bytes to be written */ dev->status |= STATUS_WRITE_IN_PROGRESS; break; @@ -557,6 +563,13 @@ msgs[dev->msg_read_idx].len = len; msgs[dev->msg_read_idx].flags &= ~I2C_M_RECV_LEN; + /* + * Received buffer length, re-enable TX_EMPTY interrupt + * to resume the SMBUS transaction. + */ + regmap_update_bits(dev->map, DW_IC_INTR_MASK, DW_IC_INTR_TX_EMPTY, + DW_IC_INTR_TX_EMPTY); + return len; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/i2c/busses/i2c-pxa.c +++ linux-riscv-6.5.0/drivers/i2c/busses/i2c-pxa.c @@ -264,6 +264,9 @@ u32 hs_mask; struct i2c_bus_recovery_info recovery; + struct pinctrl *pinctrl; + struct pinctrl_state *pinctrl_default; + struct pinctrl_state *pinctrl_recovery; }; #define _IBMR(i2c) ((i2c)->reg_ibmr) @@ -1300,12 +1303,13 @@ */ gpiod_set_value(i2c->recovery.scl_gpiod, ibmr & IBMR_SCLS); gpiod_set_value(i2c->recovery.sda_gpiod, ibmr & IBMR_SDAS); + + WARN_ON(pinctrl_select_state(i2c->pinctrl, i2c->pinctrl_recovery)); } static void i2c_pxa_unprepare_recovery(struct i2c_adapter *adap) { struct pxa_i2c *i2c = adap->algo_data; - struct i2c_bus_recovery_info *bri = adap->bus_recovery_info; u32 isr; /* @@ -1319,7 +1323,7 @@ i2c_pxa_do_reset(i2c); } - WARN_ON(pinctrl_select_state(bri->pinctrl, bri->pins_default)); + WARN_ON(pinctrl_select_state(i2c->pinctrl, i2c->pinctrl_default)); dev_dbg(&i2c->adap.dev, "recovery: IBMR 0x%08x ISR 0x%08x\n", readl(_IBMR(i2c)), readl(_ISR(i2c))); @@ -1341,20 +1345,76 @@ if (IS_ENABLED(CONFIG_I2C_PXA_SLAVE)) return 0; - bri->pinctrl = devm_pinctrl_get(dev); - if (PTR_ERR(bri->pinctrl) == -ENODEV) { - bri->pinctrl = NULL; + i2c->pinctrl = devm_pinctrl_get(dev); + if (PTR_ERR(i2c->pinctrl) == -ENODEV) + i2c->pinctrl = NULL; + if (IS_ERR(i2c->pinctrl)) + return PTR_ERR(i2c->pinctrl); + + if (!i2c->pinctrl) + return 0; + + i2c->pinctrl_default = pinctrl_lookup_state(i2c->pinctrl, + PINCTRL_STATE_DEFAULT); + i2c->pinctrl_recovery = pinctrl_lookup_state(i2c->pinctrl, "recovery"); + + if (IS_ERR(i2c->pinctrl_default) || IS_ERR(i2c->pinctrl_recovery)) { + dev_info(dev, "missing pinmux recovery information: %ld %ld\n", + PTR_ERR(i2c->pinctrl_default), + PTR_ERR(i2c->pinctrl_recovery)); + return 0; + } + + /* + * Claiming GPIOs can influence the pinmux state, and may glitch the + * I2C bus. Do this carefully. + */ + bri->scl_gpiod = devm_gpiod_get(dev, "scl", GPIOD_OUT_HIGH_OPEN_DRAIN); + if (bri->scl_gpiod == ERR_PTR(-EPROBE_DEFER)) + return -EPROBE_DEFER; + if (IS_ERR(bri->scl_gpiod)) { + dev_info(dev, "missing scl gpio recovery information: %pe\n", + bri->scl_gpiod); + return 0; + } + + /* + * We have SCL. Pull SCL low and wait a bit so that SDA glitches + * have no effect. + */ + gpiod_direction_output(bri->scl_gpiod, 0); + udelay(10); + bri->sda_gpiod = devm_gpiod_get(dev, "sda", GPIOD_OUT_HIGH_OPEN_DRAIN); + + /* Wait a bit in case of a SDA glitch, and then release SCL. */ + udelay(10); + gpiod_direction_output(bri->scl_gpiod, 1); + + if (bri->sda_gpiod == ERR_PTR(-EPROBE_DEFER)) + return -EPROBE_DEFER; + + if (IS_ERR(bri->sda_gpiod)) { + dev_info(dev, "missing sda gpio recovery information: %pe\n", + bri->sda_gpiod); return 0; } - if (IS_ERR(bri->pinctrl)) - return PTR_ERR(bri->pinctrl); bri->prepare_recovery = i2c_pxa_prepare_recovery; bri->unprepare_recovery = i2c_pxa_unprepare_recovery; + bri->recover_bus = i2c_generic_scl_recovery; i2c->adap.bus_recovery_info = bri; - return 0; + /* + * Claiming GPIOs can change the pinmux state, which confuses the + * pinctrl since pinctrl's idea of the current setting is unaffected + * by the pinmux change caused by claiming the GPIO. Work around that + * by switching pinctrl to the GPIO state here. We do it this way to + * avoid glitching the I2C bus. + */ + pinctrl_select_state(i2c->pinctrl, i2c->pinctrl_recovery); + + return pinctrl_select_state(i2c->pinctrl, i2c->pinctrl_default); } static int i2c_pxa_probe(struct platform_device *dev) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/i2c/busses/i2c-stm32f7.c +++ linux-riscv-6.5.0/drivers/i2c/busses/i2c-stm32f7.c @@ -1059,9 +1059,10 @@ /* Configure PEC */ if ((flags & I2C_CLIENT_PEC) && f7_msg->size != I2C_SMBUS_QUICK) { cr1 |= STM32F7_I2C_CR1_PECEN; - cr2 |= STM32F7_I2C_CR2_PECBYTE; - if (!f7_msg->read_write) + if (!f7_msg->read_write) { + cr2 |= STM32F7_I2C_CR2_PECBYTE; f7_msg->count++; + } } else { cr1 &= ~STM32F7_I2C_CR1_PECEN; cr2 &= ~STM32F7_I2C_CR2_PECBYTE; @@ -1149,8 +1150,10 @@ f7_msg->stop = true; /* Add one byte for PEC if needed */ - if (cr1 & STM32F7_I2C_CR1_PECEN) + if (cr1 & STM32F7_I2C_CR1_PECEN) { + cr2 |= STM32F7_I2C_CR2_PECBYTE; f7_msg->count++; + } /* Set number of bytes to be transferred */ cr2 &= ~(STM32F7_I2C_CR2_NBYTES_MASK); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/i2c/busses/i2c-sun6i-p2wi.c +++ linux-riscv-6.5.0/drivers/i2c/busses/i2c-sun6i-p2wi.c @@ -201,6 +201,11 @@ return -EINVAL; } + if (clk_freq == 0) { + dev_err(dev, "clock-frequency is set to 0 in DT\n"); + return -EINVAL; + } + if (of_get_child_count(np) > 1) { dev_err(dev, "P2WI only supports one slave device\n"); return -EINVAL; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/i2c/i2c-core-base.c +++ linux-riscv-6.5.0/drivers/i2c/i2c-core-base.c @@ -931,8 +931,9 @@ struct i2c_client * i2c_new_client_device(struct i2c_adapter *adap, struct i2c_board_info const *info) { - struct i2c_client *client; - int status; + struct i2c_client *client; + bool need_put = false; + int status; client = kzalloc(sizeof *client, GFP_KERNEL); if (!client) @@ -970,7 +971,6 @@ client->dev.fwnode = info->fwnode; device_enable_async_suspend(&client->dev); - i2c_dev_set_name(adap, client, info); if (info->swnode) { status = device_add_software_node(&client->dev, info->swnode); @@ -982,6 +982,7 @@ } } + i2c_dev_set_name(adap, client, info); status = device_register(&client->dev); if (status) goto out_remove_swnode; @@ -993,6 +994,7 @@ out_remove_swnode: device_remove_software_node(&client->dev); + need_put = true; out_err_put_of_node: of_node_put(info->of_node); out_err: @@ -1000,7 +1002,10 @@ "Failed to register i2c client %s at 0x%02x (%d)\n", client->name, client->addr, status); out_err_silent: - kfree(client); + if (need_put) + put_device(&client->dev); + else + kfree(client); return ERR_PTR(status); } EXPORT_SYMBOL_GPL(i2c_new_client_device); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/i2c/i2c-core.h +++ linux-riscv-6.5.0/drivers/i2c/i2c-core.h @@ -29,7 +29,7 @@ */ static inline bool i2c_in_atomic_xfer_mode(void) { - return system_state > SYSTEM_RUNNING && irqs_disabled(); + return system_state > SYSTEM_RUNNING && !preemptible(); } static inline int __i2c_lock_bus_helper(struct i2c_adapter *adap) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/i2c/i2c-dev.c +++ linux-riscv-6.5.0/drivers/i2c/i2c-dev.c @@ -450,8 +450,8 @@ if (rdwr_arg.nmsgs > I2C_RDWR_IOCTL_MAX_MSGS) return -EINVAL; - rdwr_pa = memdup_user(rdwr_arg.msgs, - rdwr_arg.nmsgs * sizeof(struct i2c_msg)); + rdwr_pa = memdup_array_user(rdwr_arg.msgs, + rdwr_arg.nmsgs, sizeof(struct i2c_msg)); if (IS_ERR(rdwr_pa)) return PTR_ERR(rdwr_pa); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/i2c/i2c-mux.c +++ linux-riscv-6.5.0/drivers/i2c/i2c-mux.c @@ -341,7 +341,7 @@ priv->adap.lock_ops = &i2c_parent_lock_ops; /* Sanity check on class */ - if (i2c_mux_parent_classes(parent) & class) + if (i2c_mux_parent_classes(parent) & class & ~I2C_CLASS_DEPRECATED) dev_err(&parent->dev, "Segment %d behind mux can't share classes with ancestors\n", chan_id); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/i2c/muxes/i2c-mux-gpmux.c +++ linux-riscv-6.5.0/drivers/i2c/muxes/i2c-mux-gpmux.c @@ -52,7 +52,7 @@ dev_err(dev, "Cannot parse i2c-parent\n"); return ERR_PTR(-ENODEV); } - parent = of_find_i2c_adapter_by_node(parent_np); + parent = of_get_i2c_adapter_by_node(parent_np); of_node_put(parent_np); if (!parent) return ERR_PTR(-EPROBE_DEFER); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/i2c/muxes/i2c-mux-pinctrl.c +++ linux-riscv-6.5.0/drivers/i2c/muxes/i2c-mux-pinctrl.c @@ -62,7 +62,7 @@ dev_err(dev, "Cannot parse i2c-parent\n"); return ERR_PTR(-ENODEV); } - parent = of_find_i2c_adapter_by_node(parent_np); + parent = of_get_i2c_adapter_by_node(parent_np); of_node_put(parent_np); if (!parent) return ERR_PTR(-EPROBE_DEFER); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/i3c/master.c +++ linux-riscv-6.5.0/drivers/i3c/master.c @@ -1521,9 +1521,11 @@ desc->dev->dev.of_node = desc->boardinfo->of_node; ret = device_register(&desc->dev->dev); - if (ret) + if (ret) { dev_err(&master->dev, "Failed to add I3C device (err = %d)\n", ret); + put_device(&desc->dev->dev); + } } } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/i3c/master/i3c-master-cdns.c +++ linux-riscv-6.5.0/drivers/i3c/master/i3c-master-cdns.c @@ -192,7 +192,7 @@ #define SLV_STATUS1_HJ_DIS BIT(18) #define SLV_STATUS1_MR_DIS BIT(17) #define SLV_STATUS1_PROT_ERR BIT(16) -#define SLV_STATUS1_DA(x) (((s) & GENMASK(15, 9)) >> 9) +#define SLV_STATUS1_DA(s) (((s) & GENMASK(15, 9)) >> 9) #define SLV_STATUS1_HAS_DA BIT(8) #define SLV_STATUS1_DDR_RX_FULL BIT(7) #define SLV_STATUS1_DDR_TX_FULL BIT(6) @@ -1624,13 +1624,13 @@ /* Device ID0 is reserved to describe this master. */ master->maxdevs = CONF_STATUS0_DEVS_NUM(val); master->free_rr_slots = GENMASK(master->maxdevs, 1); + master->caps.ibirfifodepth = CONF_STATUS0_IBIR_DEPTH(val); + master->caps.cmdrfifodepth = CONF_STATUS0_CMDR_DEPTH(val); val = readl(master->regs + CONF_STATUS1); master->caps.cmdfifodepth = CONF_STATUS1_CMD_DEPTH(val); master->caps.rxfifodepth = CONF_STATUS1_RX_DEPTH(val); master->caps.txfifodepth = CONF_STATUS1_TX_DEPTH(val); - master->caps.ibirfifodepth = CONF_STATUS0_IBIR_DEPTH(val); - master->caps.cmdrfifodepth = CONF_STATUS0_CMDR_DEPTH(val); spin_lock_init(&master->ibi.lock); master->ibi.num_slots = CONF_STATUS1_IBI_HW_RES(val); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/i3c/master/mipi-i3c-hci/dat_v1.c +++ linux-riscv-6.5.0/drivers/i3c/master/mipi-i3c-hci/dat_v1.c @@ -64,15 +64,17 @@ return -EOPNOTSUPP; } - /* use a bitmap for faster free slot search */ - hci->DAT_data = bitmap_zalloc(hci->DAT_entries, GFP_KERNEL); - if (!hci->DAT_data) - return -ENOMEM; - - /* clear them */ - for (dat_idx = 0; dat_idx < hci->DAT_entries; dat_idx++) { - dat_w0_write(dat_idx, 0); - dat_w1_write(dat_idx, 0); + if (!hci->DAT_data) { + /* use a bitmap for faster free slot search */ + hci->DAT_data = bitmap_zalloc(hci->DAT_entries, GFP_KERNEL); + if (!hci->DAT_data) + return -ENOMEM; + + /* clear them */ + for (dat_idx = 0; dat_idx < hci->DAT_entries; dat_idx++) { + dat_w0_write(dat_idx, 0); + dat_w1_write(dat_idx, 0); + } } return 0; @@ -87,7 +89,13 @@ static int hci_dat_v1_alloc_entry(struct i3c_hci *hci) { unsigned int dat_idx; + int ret; + if (!hci->DAT_data) { + ret = hci_dat_v1_init(hci); + if (ret) + return ret; + } dat_idx = find_first_zero_bit(hci->DAT_data, hci->DAT_entries); if (dat_idx >= hci->DAT_entries) return -ENOENT; @@ -103,7 +111,8 @@ { dat_w0_write(dat_idx, 0); dat_w1_write(dat_idx, 0); - __clear_bit(dat_idx, hci->DAT_data); + if (hci->DAT_data) + __clear_bit(dat_idx, hci->DAT_data); } static void hci_dat_v1_set_dynamic_addr(struct i3c_hci *hci, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/i3c/master/mipi-i3c-hci/dma.c +++ linux-riscv-6.5.0/drivers/i3c/master/mipi-i3c-hci/dma.c @@ -734,7 +734,7 @@ unsigned int i; bool handled = false; - for (i = 0; mask && i < 8; i++) { + for (i = 0; mask && i < rings->total; i++) { struct hci_rh_data *rh; u32 status; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/iio/adc/exynos_adc.c +++ linux-riscv-6.5.0/drivers/iio/adc/exynos_adc.c @@ -826,16 +826,26 @@ } } + /* leave out any TS related code if unreachable */ + if (IS_REACHABLE(CONFIG_INPUT)) { + has_ts = of_property_read_bool(pdev->dev.of_node, + "has-touchscreen") || pdata; + } + irq = platform_get_irq(pdev, 0); if (irq < 0) return irq; info->irq = irq; - irq = platform_get_irq(pdev, 1); - if (irq == -EPROBE_DEFER) - return irq; - - info->tsirq = irq; + if (has_ts) { + irq = platform_get_irq(pdev, 1); + if (irq == -EPROBE_DEFER) + return irq; + + info->tsirq = irq; + } else { + info->tsirq = -1; + } info->dev = &pdev->dev; @@ -900,12 +910,6 @@ if (info->data->init_hw) info->data->init_hw(info); - /* leave out any TS related code if unreachable */ - if (IS_REACHABLE(CONFIG_INPUT)) { - has_ts = of_property_read_bool(pdev->dev.of_node, - "has-touchscreen") || pdata; - } - if (pdata) info->delay = pdata->delay; else only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/iio/adc/stm32-adc-core.c +++ linux-riscv-6.5.0/drivers/iio/adc/stm32-adc-core.c @@ -706,6 +706,8 @@ struct stm32_adc_priv *priv; struct device *dev = &pdev->dev; struct device_node *np = pdev->dev.of_node; + const struct of_device_id *of_id; + struct resource *res; u32 max_rate; int ret; @@ -718,8 +720,11 @@ return -ENOMEM; platform_set_drvdata(pdev, &priv->common); - priv->cfg = (const struct stm32_adc_priv_cfg *) - of_match_device(dev->driver->of_match_table, dev)->data; + of_id = of_match_device(dev->driver->of_match_table, dev); + if (!of_id) + return -ENODEV; + + priv->cfg = (const struct stm32_adc_priv_cfg *)of_id->data; priv->nb_adc_max = priv->cfg->num_adcs; spin_lock_init(&priv->common.lock); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/iio/adc/xilinx-xadc-core.c +++ linux-riscv-6.5.0/drivers/iio/adc/xilinx-xadc-core.c @@ -456,6 +456,9 @@ .interrupt_handler = xadc_zynq_interrupt_handler, .update_alarm = xadc_zynq_update_alarm, .type = XADC_TYPE_S7, + /* Temp in C = (val * 503.975) / 2**bits - 273.15 */ + .temp_scale = 503975, + .temp_offset = 273150, }; static const unsigned int xadc_axi_reg_offsets[] = { @@ -566,6 +569,9 @@ .interrupt_handler = xadc_axi_interrupt_handler, .flags = XADC_FLAGS_BUFFERED | XADC_FLAGS_IRQ_OPTIONAL, .type = XADC_TYPE_S7, + /* Temp in C = (val * 503.975) / 2**bits - 273.15 */ + .temp_scale = 503975, + .temp_offset = 273150, }; static const struct xadc_ops xadc_us_axi_ops = { @@ -577,6 +583,12 @@ .interrupt_handler = xadc_axi_interrupt_handler, .flags = XADC_FLAGS_BUFFERED | XADC_FLAGS_IRQ_OPTIONAL, .type = XADC_TYPE_US, + /** + * Values below are for UltraScale+ (SYSMONE4) using internal reference. + * See https://docs.xilinx.com/v/u/en-US/ug580-ultrascale-sysmon + */ + .temp_scale = 509314, + .temp_offset = 280231, }; static int _xadc_update_adc_reg(struct xadc *xadc, unsigned int reg, @@ -945,8 +957,7 @@ *val2 = bits; return IIO_VAL_FRACTIONAL_LOG2; case IIO_TEMP: - /* Temp in C = (val * 503.975) / 2**bits - 273.15 */ - *val = 503975; + *val = xadc->ops->temp_scale; *val2 = bits; return IIO_VAL_FRACTIONAL_LOG2; default: @@ -954,7 +965,7 @@ } case IIO_CHAN_INFO_OFFSET: /* Only the temperature channel has an offset */ - *val = -((273150 << bits) / 503975); + *val = -((xadc->ops->temp_offset << bits) / xadc->ops->temp_scale); return IIO_VAL_INT; case IIO_CHAN_INFO_SAMP_FREQ: ret = xadc_read_samplerate(xadc); @@ -1423,28 +1434,6 @@ if (ret) return ret; - /* Disable all alarms */ - ret = xadc_update_adc_reg(xadc, XADC_REG_CONF1, XADC_CONF1_ALARM_MASK, - XADC_CONF1_ALARM_MASK); - if (ret) - return ret; - - /* Set thresholds to min/max */ - for (i = 0; i < 16; i++) { - /* - * Set max voltage threshold and both temperature thresholds to - * 0xffff, min voltage threshold to 0. - */ - if (i % 8 < 4 || i == 7) - xadc->threshold[i] = 0xffff; - else - xadc->threshold[i] = 0; - ret = xadc_write_adc_reg(xadc, XADC_REG_THRESHOLD(i), - xadc->threshold[i]); - if (ret) - return ret; - } - /* Go to non-buffered mode */ xadc_postdisable(indio_dev); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/iio/adc/xilinx-xadc.h +++ linux-riscv-6.5.0/drivers/iio/adc/xilinx-xadc.h @@ -85,6 +85,8 @@ unsigned int flags; enum xadc_type type; + int temp_scale; + int temp_offset; }; static inline int _xadc_read_adc_reg(struct xadc *xadc, unsigned int reg, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/iio/afe/iio-rescale.c +++ linux-riscv-6.5.0/drivers/iio/afe/iio-rescale.c @@ -214,8 +214,18 @@ return ret < 0 ? ret : -EOPNOTSUPP; } - ret = iio_read_channel_scale(rescale->source, &scale, &scale2); - return rescale_process_offset(rescale, ret, scale, scale2, + if (iio_channel_has_info(rescale->source->channel, + IIO_CHAN_INFO_SCALE)) { + ret = iio_read_channel_scale(rescale->source, &scale, &scale2); + return rescale_process_offset(rescale, ret, scale, scale2, + schan_off, val, val2); + } + + /* + * If we get here we have no scale so scale 1:1 but apply + * rescaler and offset, if any. + */ + return rescale_process_offset(rescale, IIO_VAL_FRACTIONAL, 1, 1, schan_off, val, val2); default: return -EINVAL; @@ -280,8 +290,9 @@ chan->type = rescale->cfg->type; if (iio_channel_has_info(schan, IIO_CHAN_INFO_RAW) && - iio_channel_has_info(schan, IIO_CHAN_INFO_SCALE)) { - dev_info(dev, "using raw+scale source channel\n"); + (iio_channel_has_info(schan, IIO_CHAN_INFO_SCALE) || + iio_channel_has_info(schan, IIO_CHAN_INFO_OFFSET))) { + dev_info(dev, "using raw+scale/offset source channel\n"); } else if (iio_channel_has_info(schan, IIO_CHAN_INFO_PROCESSED)) { dev_info(dev, "using processed channel\n"); rescale->chan_processed = true; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/iio/frequency/adf4350.c +++ linux-riscv-6.5.0/drivers/iio/frequency/adf4350.c @@ -33,7 +33,6 @@ struct adf4350_state { struct spi_device *spi; - struct regulator *reg; struct gpio_desc *lock_detect_gpiod; struct adf4350_platform_data *pdata; struct clk *clk; @@ -469,6 +468,15 @@ return pdata; } +static void adf4350_power_down(void *data) +{ + struct iio_dev *indio_dev = data; + struct adf4350_state *st = iio_priv(indio_dev); + + st->regs[ADF4350_REG2] |= ADF4350_REG2_POWER_DOWN_EN; + adf4350_sync_config(st); +} + static int adf4350_probe(struct spi_device *spi) { struct adf4350_platform_data *pdata; @@ -491,31 +499,21 @@ } if (!pdata->clkin) { - clk = devm_clk_get(&spi->dev, "clkin"); + clk = devm_clk_get_enabled(&spi->dev, "clkin"); if (IS_ERR(clk)) - return -EPROBE_DEFER; - - ret = clk_prepare_enable(clk); - if (ret < 0) - return ret; + return PTR_ERR(clk); } indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); - if (indio_dev == NULL) { - ret = -ENOMEM; - goto error_disable_clk; - } + if (indio_dev == NULL) + return -ENOMEM; st = iio_priv(indio_dev); - st->reg = devm_regulator_get(&spi->dev, "vcc"); - if (!IS_ERR(st->reg)) { - ret = regulator_enable(st->reg); - if (ret) - goto error_disable_clk; - } + ret = devm_regulator_get_enable(&spi->dev, "vcc"); + if (ret) + return ret; - spi_set_drvdata(spi, indio_dev); st->spi = spi; st->pdata = pdata; @@ -544,47 +542,21 @@ st->lock_detect_gpiod = devm_gpiod_get_optional(&spi->dev, NULL, GPIOD_IN); - if (IS_ERR(st->lock_detect_gpiod)) { - ret = PTR_ERR(st->lock_detect_gpiod); - goto error_disable_reg; - } + if (IS_ERR(st->lock_detect_gpiod)) + return PTR_ERR(st->lock_detect_gpiod); if (pdata->power_up_frequency) { ret = adf4350_set_freq(st, pdata->power_up_frequency); if (ret) - goto error_disable_reg; + return ret; } - ret = iio_device_register(indio_dev); + ret = devm_add_action_or_reset(&spi->dev, adf4350_power_down, indio_dev); if (ret) - goto error_disable_reg; - - return 0; - -error_disable_reg: - if (!IS_ERR(st->reg)) - regulator_disable(st->reg); -error_disable_clk: - clk_disable_unprepare(clk); - - return ret; -} - -static void adf4350_remove(struct spi_device *spi) -{ - struct iio_dev *indio_dev = spi_get_drvdata(spi); - struct adf4350_state *st = iio_priv(indio_dev); - struct regulator *reg = st->reg; - - st->regs[ADF4350_REG2] |= ADF4350_REG2_POWER_DOWN_EN; - adf4350_sync_config(st); - - iio_device_unregister(indio_dev); - - clk_disable_unprepare(st->clk); + return dev_err_probe(&spi->dev, ret, + "Failed to add action to managed power down\n"); - if (!IS_ERR(reg)) - regulator_disable(reg); + return devm_iio_device_register(&spi->dev, indio_dev); } static const struct of_device_id adf4350_of_match[] = { @@ -607,7 +579,6 @@ .of_match_table = adf4350_of_match, }, .probe = adf4350_probe, - .remove = adf4350_remove, .id_table = adf4350_id, }; module_spi_driver(adf4350_driver); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/iio/light/vcnl4000.c +++ linux-riscv-6.5.0/drivers/iio/light/vcnl4000.c @@ -994,7 +994,6 @@ out: mutex_unlock(&data->vcnl4000_lock); - data->chip_spec->set_power_state(data, data->ps_int != 0); return ret; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/infiniband/core/device.c +++ linux-riscv-6.5.0/drivers/infiniband/core/device.c @@ -804,7 +804,7 @@ * empty slots at the beginning. */ pdata_rcu = kzalloc(struct_size(pdata_rcu, pdata, - rdma_end_port(device) + 1), + size_add(rdma_end_port(device), 1)), GFP_KERNEL); if (!pdata_rcu) return -ENOMEM; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/infiniband/core/sa_query.c +++ linux-riscv-6.5.0/drivers/infiniband/core/sa_query.c @@ -2159,7 +2159,9 @@ s = rdma_start_port(device); e = rdma_end_port(device); - sa_dev = kzalloc(struct_size(sa_dev, port, e - s + 1), GFP_KERNEL); + sa_dev = kzalloc(struct_size(sa_dev, port, + size_add(size_sub(e, s), 1)), + GFP_KERNEL); if (!sa_dev) return -ENOMEM; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/infiniband/core/sysfs.c +++ linux-riscv-6.5.0/drivers/infiniband/core/sysfs.c @@ -903,7 +903,7 @@ * Two extra attribue elements here, one for the lifespan entry and * one to NULL terminate the list for the sysfs core code */ - data = kzalloc(struct_size(data, attrs, stats->num_counters + 1), + data = kzalloc(struct_size(data, attrs, size_add(stats->num_counters, 1)), GFP_KERNEL); if (!data) goto err_free_stats; @@ -1009,7 +1009,7 @@ * Two extra attribue elements here, one for the lifespan entry and * one to NULL terminate the list for the sysfs core code */ - data = kzalloc(struct_size(data, attrs, stats->num_counters + 1), + data = kzalloc(struct_size(data, attrs, size_add(stats->num_counters, 1)), GFP_KERNEL); if (!data) goto err_free_stats; @@ -1140,7 +1140,7 @@ int ret; gid_attr_group = kzalloc(struct_size(gid_attr_group, attrs_list, - attr->gid_tbl_len * 2), + size_mul(attr->gid_tbl_len, 2)), GFP_KERNEL); if (!gid_attr_group) return -ENOMEM; @@ -1205,8 +1205,8 @@ int ret; p = kvzalloc(struct_size(p, attrs_list, - attr->gid_tbl_len + attr->pkey_tbl_len), - GFP_KERNEL); + size_add(attr->gid_tbl_len, attr->pkey_tbl_len)), + GFP_KERNEL); if (!p) return ERR_PTR(-ENOMEM); p->ibdev = device; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/infiniband/core/umem.c +++ linux-riscv-6.5.0/drivers/infiniband/core/umem.c @@ -96,12 +96,6 @@ return page_size; } - /* rdma_for_each_block() has a bug if the page size is smaller than the - * page size used to build the umem. For now prevent smaller page sizes - * from being returned. - */ - pgsz_bitmap &= GENMASK(BITS_PER_LONG - 1, PAGE_SHIFT); - /* The best result is the smallest page size that results in the minimum * number of required pages. Compute the largest page size that could * work based on VA address bits that don't change. only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/infiniband/core/user_mad.c +++ linux-riscv-6.5.0/drivers/infiniband/core/user_mad.c @@ -1378,7 +1378,9 @@ s = rdma_start_port(device); e = rdma_end_port(device); - umad_dev = kzalloc(struct_size(umad_dev, ports, e - s + 1), GFP_KERNEL); + umad_dev = kzalloc(struct_size(umad_dev, ports, + size_add(size_sub(e, s), 1)), + GFP_KERNEL); if (!umad_dev) return -ENOMEM; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/infiniband/core/verbs.c +++ linux-riscv-6.5.0/drivers/infiniband/core/verbs.c @@ -1885,7 +1885,7 @@ int rc; u32 netdev_speed; struct net_device *netdev; - struct ethtool_link_ksettings lksettings; + struct ethtool_link_ksettings lksettings = {}; if (rdma_port_get_link_layer(dev, port_num) != IB_LINK_LAYER_ETHERNET) return -EINVAL; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/infiniband/hw/hfi1/efivar.c +++ linux-riscv-6.5.0/drivers/infiniband/hw/hfi1/efivar.c @@ -112,7 +112,7 @@ unsigned long *size, void **return_data) { char prefix_name[64]; - char name[64]; + char name[128]; int result; /* create a common prefix */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/infiniband/hw/hfi1/pcie.c +++ linux-riscv-6.5.0/drivers/infiniband/hw/hfi1/pcie.c @@ -3,6 +3,7 @@ * Copyright(c) 2015 - 2019 Intel Corporation. */ +#include #include #include #include @@ -210,12 +211,6 @@ return speed; } -/* return the PCIe link speed from the given link status */ -static u32 extract_width(u16 linkstat) -{ - return (linkstat & PCI_EXP_LNKSTA_NLW) >> PCI_EXP_LNKSTA_NLW_SHIFT; -} - /* read the link status and set dd->{lbus_width,lbus_speed,lbus_info} */ static void update_lbus_info(struct hfi1_devdata *dd) { @@ -228,7 +223,7 @@ return; } - dd->lbus_width = extract_width(linkstat); + dd->lbus_width = FIELD_GET(PCI_EXP_LNKSTA_NLW, linkstat); dd->lbus_speed = extract_speed(linkstat); snprintf(dd->lbus_info, sizeof(dd->lbus_info), "PCIe,%uMHz,x%u", dd->lbus_speed, dd->lbus_width); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/infiniband/hw/hns/hns_roce_ah.c +++ linux-riscv-6.5.0/drivers/infiniband/hw/hns/hns_roce_ah.c @@ -33,7 +33,9 @@ #include #include #include +#include "hnae3.h" #include "hns_roce_device.h" +#include "hns_roce_hw_v2.h" static inline u16 get_ah_udp_sport(const struct rdma_ah_attr *ah_attr) { @@ -57,6 +59,7 @@ struct hns_roce_dev *hr_dev = to_hr_dev(ibah->device); struct hns_roce_ah *ah = to_hr_ah(ibah); int ret = 0; + u32 max_sl; if (hr_dev->pci_dev->revision == PCI_REVISION_ID_HIP08 && udata) return -EOPNOTSUPP; @@ -70,9 +73,17 @@ ah->av.hop_limit = grh->hop_limit; ah->av.flowlabel = grh->flow_label; ah->av.udp_sport = get_ah_udp_sport(ah_attr); - ah->av.sl = rdma_ah_get_sl(ah_attr); ah->av.tclass = get_tclass(grh); + ah->av.sl = rdma_ah_get_sl(ah_attr); + max_sl = min_t(u32, MAX_SERVICE_LEVEL, hr_dev->caps.sl_num - 1); + if (unlikely(ah->av.sl > max_sl)) { + ibdev_err_ratelimited(&hr_dev->ib_dev, + "failed to set sl, sl (%u) shouldn't be larger than %u.\n", + ah->av.sl, max_sl); + return -EINVAL; + } + memcpy(ah->av.dgid, grh->dgid.raw, HNS_ROCE_GID_SIZE); memcpy(ah->av.mac, ah_attr->roce.dmac, ETH_ALEN); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/infiniband/hw/irdma/hw.c +++ linux-riscv-6.5.0/drivers/infiniband/hw/irdma/hw.c @@ -322,7 +322,11 @@ break; case IRDMA_AE_QP_SUSPEND_COMPLETE: if (iwqp->iwdev->vsi.tc_change_pending) { - atomic_dec(&iwqp->sc_qp.vsi->qp_suspend_reqs); + if (!atomic_dec_return(&qp->vsi->qp_suspend_reqs)) + wake_up(&iwqp->iwdev->suspend_wq); + } + if (iwqp->suspend_pending) { + iwqp->suspend_pending = false; wake_up(&iwqp->iwdev->suspend_wq); } break; @@ -568,16 +572,13 @@ * Issue destroy cqp request and * free the resources associated with the cqp */ -static void irdma_destroy_cqp(struct irdma_pci_f *rf, bool free_hwcqp) +static void irdma_destroy_cqp(struct irdma_pci_f *rf) { struct irdma_sc_dev *dev = &rf->sc_dev; struct irdma_cqp *cqp = &rf->cqp; int status = 0; - if (rf->cqp_cmpl_wq) - destroy_workqueue(rf->cqp_cmpl_wq); - if (free_hwcqp) - status = irdma_sc_cqp_destroy(dev->cqp); + status = irdma_sc_cqp_destroy(dev->cqp); if (status) ibdev_dbg(to_ibdev(dev), "ERR: Destroy CQP failed %d\n", status); @@ -741,6 +742,9 @@ struct irdma_ccq *ccq = &rf->ccq; int status = 0; + if (rf->cqp_cmpl_wq) + destroy_workqueue(rf->cqp_cmpl_wq); + if (!rf->reset) status = irdma_sc_ccq_destroy(dev->ccq, 0, true); if (status) @@ -921,8 +925,8 @@ cqp->scratch_array = kcalloc(sqsize, sizeof(*cqp->scratch_array), GFP_KERNEL); if (!cqp->scratch_array) { - kfree(cqp->cqp_requests); - return -ENOMEM; + status = -ENOMEM; + goto err_scratch; } dev->cqp = &cqp->sc_cqp; @@ -932,15 +936,14 @@ cqp->sq.va = dma_alloc_coherent(dev->hw->device, cqp->sq.size, &cqp->sq.pa, GFP_KERNEL); if (!cqp->sq.va) { - kfree(cqp->scratch_array); - kfree(cqp->cqp_requests); - return -ENOMEM; + status = -ENOMEM; + goto err_sq; } status = irdma_obj_aligned_mem(rf, &mem, sizeof(struct irdma_cqp_ctx), IRDMA_HOST_CTX_ALIGNMENT_M); if (status) - goto exit; + goto err_ctx; dev->cqp->host_ctx_pa = mem.pa; dev->cqp->host_ctx = mem.va; @@ -966,7 +969,7 @@ status = irdma_sc_cqp_init(dev->cqp, &cqp_init_info); if (status) { ibdev_dbg(to_ibdev(dev), "ERR: cqp init status %d\n", status); - goto exit; + goto err_ctx; } spin_lock_init(&cqp->req_lock); @@ -977,7 +980,7 @@ ibdev_dbg(to_ibdev(dev), "ERR: cqp create failed - status %d maj_err %d min_err %d\n", status, maj_err, min_err); - goto exit; + goto err_ctx; } INIT_LIST_HEAD(&cqp->cqp_avail_reqs); @@ -991,8 +994,16 @@ init_waitqueue_head(&cqp->remove_wq); return 0; -exit: - irdma_destroy_cqp(rf, false); +err_ctx: + dma_free_coherent(dev->hw->device, cqp->sq.size, + cqp->sq.va, cqp->sq.pa); + cqp->sq.va = NULL; +err_sq: + kfree(cqp->scratch_array); + cqp->scratch_array = NULL; +err_scratch: + kfree(cqp->cqp_requests); + cqp->cqp_requests = NULL; return status; } @@ -1166,7 +1177,6 @@ int status; struct irdma_ceq_init_info info = {}; struct irdma_sc_dev *dev = &rf->sc_dev; - u64 scratch; u32 ceq_size; info.ceq_id = ceq_id; @@ -1187,14 +1197,13 @@ iwceq->sc_ceq.ceq_id = ceq_id; info.dev = dev; info.vsi = vsi; - scratch = (uintptr_t)&rf->cqp.sc_cqp; status = irdma_sc_ceq_init(&iwceq->sc_ceq, &info); if (!status) { if (dev->ceq_valid) status = irdma_cqp_ceq_cmd(&rf->sc_dev, &iwceq->sc_ceq, IRDMA_OP_CEQ_CREATE); else - status = irdma_sc_cceq_create(&iwceq->sc_ceq, scratch); + status = irdma_sc_cceq_create(&iwceq->sc_ceq, 0); } if (status) { @@ -1747,7 +1756,7 @@ rf->reset, rf->rdma_ver); fallthrough; case CQP_CREATED: - irdma_destroy_cqp(rf, true); + irdma_destroy_cqp(rf); fallthrough; case INITIAL_STATE: irdma_del_init_mem(rf); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/infiniband/hw/irdma/main.c +++ linux-riscv-6.5.0/drivers/infiniband/hw/irdma/main.c @@ -48,7 +48,7 @@ /* Wait for all qp's to suspend */ wait_event_timeout(iwdev->suspend_wq, !atomic_read(&iwdev->vsi.qp_suspend_reqs), - IRDMA_EVENT_TIMEOUT); + msecs_to_jiffies(IRDMA_EVENT_TIMEOUT_MS)); irdma_ws_reset(&iwdev->vsi); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/infiniband/hw/irdma/verbs.h +++ linux-riscv-6.5.0/drivers/infiniband/hw/irdma/verbs.h @@ -193,6 +193,7 @@ u8 flush_issued : 1; u8 sig_all : 1; u8 pau_mode : 1; + u8 suspend_pending : 1; u8 rsvd : 1; u8 iwarp_state; u16 term_sq_flush_code; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/infiniband/hw/mlx5/qp.c +++ linux-riscv-6.5.0/drivers/infiniband/hw/mlx5/qp.c @@ -4045,6 +4045,30 @@ return tx_affinity; } +static int __mlx5_ib_qp_set_raw_qp_counter(struct mlx5_ib_qp *qp, u32 set_id, + struct mlx5_core_dev *mdev) +{ + struct mlx5_ib_raw_packet_qp *raw_packet_qp = &qp->raw_packet_qp; + struct mlx5_ib_rq *rq = &raw_packet_qp->rq; + u32 in[MLX5_ST_SZ_DW(modify_rq_in)] = {}; + void *rqc; + + if (!qp->rq.wqe_cnt) + return 0; + + MLX5_SET(modify_rq_in, in, rq_state, rq->state); + MLX5_SET(modify_rq_in, in, uid, to_mpd(qp->ibqp.pd)->uid); + + rqc = MLX5_ADDR_OF(modify_rq_in, in, ctx); + MLX5_SET(rqc, rqc, state, MLX5_RQC_STATE_RDY); + + MLX5_SET64(modify_rq_in, in, modify_bitmask, + MLX5_MODIFY_RQ_IN_MODIFY_BITMASK_RQ_COUNTER_SET_ID); + MLX5_SET(rqc, rqc, counter_set_id, set_id); + + return mlx5_core_modify_rq(mdev, rq->base.mqp.qpn, in); +} + static int __mlx5_ib_qp_set_counter(struct ib_qp *qp, struct rdma_counter *counter) { @@ -4060,6 +4084,9 @@ else set_id = mlx5_ib_get_counters_id(dev, mqp->port - 1); + if (mqp->type == IB_QPT_RAW_PACKET) + return __mlx5_ib_qp_set_raw_qp_counter(mqp, set_id, dev->mdev); + base = &mqp->trans_qp.base; MLX5_SET(rts2rts_qp_in, in, opcode, MLX5_CMD_OP_RTS2RTS_QP); MLX5_SET(rts2rts_qp_in, in, qpn, base->mqp.qpn); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/infiniband/ulp/rtrs/rtrs-clt.c +++ linux-riscv-6.5.0/drivers/infiniband/ulp/rtrs/rtrs-clt.c @@ -382,7 +382,7 @@ struct rtrs_clt_path *clt_path; int err; - if (WARN_ON(!req->in_use)) + if (!req->in_use) return; if (WARN_ON(!req->con)) return; @@ -1692,7 +1692,7 @@ clt_path->s.dev_ref++; max_send_wr = min_t(int, wr_limit, /* QD * (REQ + RSP + FR REGS or INVS) + drain */ - clt_path->queue_depth * 3 + 1); + clt_path->queue_depth * 4 + 1); max_recv_wr = min_t(int, wr_limit, clt_path->queue_depth * 3 + 1); max_send_sge = 2; @@ -2343,8 +2343,6 @@ if (err) goto destroy; - rtrs_start_hb(&clt_path->s); - return 0; destroy: @@ -2618,6 +2616,7 @@ goto out; } rtrs_clt_path_up(clt_path); + rtrs_start_hb(&clt_path->s); out: mutex_unlock(&clt_path->init_mutex); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/infiniband/ulp/rtrs/rtrs-srv.c +++ linux-riscv-6.5.0/drivers/infiniband/ulp/rtrs/rtrs-srv.c @@ -63,8 +63,9 @@ { enum rtrs_srv_state old_state; bool changed = false; + unsigned long flags; - spin_lock_irq(&srv_path->state_lock); + spin_lock_irqsave(&srv_path->state_lock, flags); old_state = srv_path->state; switch (new_state) { case RTRS_SRV_CONNECTED: @@ -85,7 +86,7 @@ } if (changed) srv_path->state = new_state; - spin_unlock_irq(&srv_path->state_lock); + spin_unlock_irqrestore(&srv_path->state_lock, flags); return changed; } @@ -548,7 +549,10 @@ struct rtrs_srv_mr *srv_mr; srv_mr = &srv_path->mrs[i]; - rtrs_iu_free(srv_mr->iu, srv_path->s.dev->ib_dev, 1); + + if (always_invalidate) + rtrs_iu_free(srv_mr->iu, srv_path->s.dev->ib_dev, 1); + ib_dereg_mr(srv_mr->mr); ib_dma_unmap_sg(srv_path->s.dev->ib_dev, srv_mr->sgt.sgl, srv_mr->sgt.nents, DMA_BIDIRECTIONAL); @@ -707,20 +711,23 @@ WARN_ON(wc->opcode != IB_WC_SEND); } -static void rtrs_srv_path_up(struct rtrs_srv_path *srv_path) +static int rtrs_srv_path_up(struct rtrs_srv_path *srv_path) { struct rtrs_srv_sess *srv = srv_path->srv; struct rtrs_srv_ctx *ctx = srv->ctx; - int up; + int up, ret = 0; mutex_lock(&srv->paths_ev_mutex); up = ++srv->paths_up; if (up == 1) - ctx->ops.link_ev(srv, RTRS_SRV_LINK_EV_CONNECTED, NULL); + ret = ctx->ops.link_ev(srv, RTRS_SRV_LINK_EV_CONNECTED, NULL); mutex_unlock(&srv->paths_ev_mutex); /* Mark session as established */ - srv_path->established = true; + if (!ret) + srv_path->established = true; + + return ret; } static void rtrs_srv_path_down(struct rtrs_srv_path *srv_path) @@ -849,7 +856,12 @@ goto iu_free; kobject_get(&srv_path->kobj); get_device(&srv_path->srv->dev); - rtrs_srv_change_state(srv_path, RTRS_SRV_CONNECTED); + err = rtrs_srv_change_state(srv_path, RTRS_SRV_CONNECTED); + if (!err) { + rtrs_err(s, "rtrs_srv_change_state(), err: %d\n", err); + goto iu_free; + } + rtrs_srv_start_hb(srv_path); /* @@ -858,7 +870,11 @@ * all connections are successfully established. Thus, simply notify * listener with a proper event if we are the first path. */ - rtrs_srv_path_up(srv_path); + err = rtrs_srv_path_up(srv_path); + if (err) { + rtrs_err(s, "rtrs_srv_path_up(), err: %d\n", err); + goto iu_free; + } ib_dma_sync_single_for_device(srv_path->s.dev->ib_dev, tx_iu->dma_addr, @@ -1514,7 +1530,6 @@ srv_path = container_of(work, typeof(*srv_path), close_work); - rtrs_srv_destroy_path_files(srv_path); rtrs_srv_stop_hb(srv_path); for (i = 0; i < srv_path->s.con_num; i++) { @@ -1534,6 +1549,8 @@ /* Wait for all completion */ wait_for_completion(&srv_path->complete_done); + rtrs_srv_destroy_path_files(srv_path); + /* Notify upper layer if we are the last path */ rtrs_srv_path_down(srv_path); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/input/rmi4/rmi_bus.c +++ linux-riscv-6.5.0/drivers/input/rmi4/rmi_bus.c @@ -277,11 +277,11 @@ device_del(&fn->dev); of_node_put(fn->dev.of_node); - put_device(&fn->dev); for (i = 0; i < fn->num_of_irqs; i++) irq_dispose_mapping(fn->irq[i]); + put_device(&fn->dev); } /** only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/input/rmi4/rmi_smbus.c +++ linux-riscv-6.5.0/drivers/input/rmi4/rmi_smbus.c @@ -235,12 +235,29 @@ static int rmi_smb_enable_smbus_mode(struct rmi_smb_xport *rmi_smb) { - int retval; + struct i2c_client *client = rmi_smb->client; + int smbus_version; + + /* + * psmouse driver resets the controller, we only need to wait + * to give the firmware chance to fully reinitialize. + */ + if (rmi_smb->xport.pdata.reset_delay_ms) + msleep(rmi_smb->xport.pdata.reset_delay_ms); /* we need to get the smbus version to activate the touchpad */ - retval = rmi_smb_get_version(rmi_smb); - if (retval < 0) - return retval; + smbus_version = rmi_smb_get_version(rmi_smb); + if (smbus_version < 0) + return smbus_version; + + rmi_dbg(RMI_DEBUG_XPORT, &client->dev, "Smbus version is %d", + smbus_version); + + if (smbus_version != 2 && smbus_version != 3) { + dev_err(&client->dev, "Unrecognized SMB version %d\n", + smbus_version); + return -ENODEV; + } return 0; } @@ -253,11 +270,10 @@ rmi_smb_clear_state(rmi_smb); /* - * we do not call the actual reset command, it has to be handled in - * PS/2 or there will be races between PS/2 and SMBus. - * PS/2 should ensure that a psmouse_reset is called before - * intializing the device and after it has been removed to be in a known - * state. + * We do not call the actual reset command, it has to be handled in + * PS/2 or there will be races between PS/2 and SMBus. PS/2 should + * ensure that a psmouse_reset is called before initializing the + * device and after it has been removed to be in a known state. */ return rmi_smb_enable_smbus_mode(rmi_smb); } @@ -272,7 +288,6 @@ { struct rmi_device_platform_data *pdata = dev_get_platdata(&client->dev); struct rmi_smb_xport *rmi_smb; - int smbus_version; int error; if (!pdata) { @@ -311,18 +326,9 @@ rmi_smb->xport.proto_name = "smb"; rmi_smb->xport.ops = &rmi_smb_ops; - smbus_version = rmi_smb_get_version(rmi_smb); - if (smbus_version < 0) - return smbus_version; - - rmi_dbg(RMI_DEBUG_XPORT, &client->dev, "Smbus version is %d", - smbus_version); - - if (smbus_version != 2 && smbus_version != 3) { - dev_err(&client->dev, "Unrecognized SMB version %d\n", - smbus_version); - return -ENODEV; - } + error = rmi_smb_enable_smbus_mode(rmi_smb); + if (error) + return error; i2c_set_clientdata(client, rmi_smb); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/interconnect/qcom/icc-rpm.c +++ linux-riscv-6.5.0/drivers/interconnect/qcom/icc-rpm.c @@ -491,7 +491,7 @@ ret = devm_clk_bulk_get(dev, qp->num_intf_clks, qp->intf_clks); if (ret) - return ret; + goto err_disable_unprepare_clk; provider = &qp->provider; provider->dev = dev; @@ -506,13 +506,15 @@ /* If this fails, bus accesses will crash the platform! */ ret = clk_bulk_prepare_enable(qp->num_intf_clks, qp->intf_clks); if (ret) - return ret; + goto err_disable_unprepare_clk; for (i = 0; i < num_nodes; i++) { size_t j; node = icc_node_create(qnodes[i]->id); if (IS_ERR(node)) { + clk_bulk_disable_unprepare(qp->num_intf_clks, + qp->intf_clks); ret = PTR_ERR(node); goto err_remove_nodes; } @@ -528,8 +530,11 @@ if (qnodes[i]->qos.ap_owned && qnodes[i]->qos.qos_mode != NOC_QOS_MODE_INVALID) { ret = qcom_icc_qos_set(node); - if (ret) - return ret; + if (ret) { + clk_bulk_disable_unprepare(qp->num_intf_clks, + qp->intf_clks); + goto err_remove_nodes; + } } data->nodes[i] = node; @@ -557,6 +562,7 @@ icc_provider_deregister(provider); err_remove_nodes: icc_nodes_remove(provider); +err_disable_unprepare_clk: clk_bulk_disable_unprepare(qp->num_bus_clks, qp->bus_clks); return ret; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/interconnect/qcom/qdu1000.c +++ linux-riscv-6.5.0/drivers/interconnect/qcom/qdu1000.c @@ -768,6 +768,7 @@ static struct qcom_icc_bcm bcm_acv = { .name = "ACV", + .enable_mask = BIT(3), .num_nodes = 1, .nodes = { &ebi }, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/interconnect/qcom/sc7180.c +++ linux-riscv-6.5.0/drivers/interconnect/qcom/sc7180.c @@ -153,30 +153,238 @@ DEFINE_QNODE(xs_qdss_stm, SC7180_SLAVE_QDSS_STM, 1, 4); DEFINE_QNODE(xs_sys_tcu_cfg, SC7180_SLAVE_TCU, 1, 8); -DEFINE_QBCM(bcm_acv, "ACV", false, &ebi); -DEFINE_QBCM(bcm_mc0, "MC0", true, &ebi); -DEFINE_QBCM(bcm_sh0, "SH0", true, &qns_llcc); -DEFINE_QBCM(bcm_mm0, "MM0", false, &qns_mem_noc_hf); -DEFINE_QBCM(bcm_ce0, "CE0", false, &qxm_crypto); -DEFINE_QBCM(bcm_cn0, "CN0", true, &qnm_snoc, &xm_qdss_dap, &qhs_a1_noc_cfg, &qhs_a2_noc_cfg, &qhs_ahb2phy0, &qhs_aop, &qhs_aoss, &qhs_boot_rom, &qhs_camera_cfg, &qhs_camera_nrt_throttle_cfg, &qhs_camera_rt_throttle_cfg, &qhs_clk_ctl, &qhs_cpr_cx, &qhs_cpr_mx, &qhs_crypto0_cfg, &qhs_dcc_cfg, &qhs_ddrss_cfg, &qhs_display_cfg, &qhs_display_rt_throttle_cfg, &qhs_display_throttle_cfg, &qhs_glm, &qhs_gpuss_cfg, &qhs_imem_cfg, &qhs_ipa, &qhs_mnoc_cfg, &qhs_mss_cfg, &qhs_npu_cfg, &qhs_npu_dma_throttle_cfg, &qhs_npu_dsp_throttle_cfg, &qhs_pimem_cfg, &qhs_prng, &qhs_qdss_cfg, &qhs_qm_cfg, &qhs_qm_mpu_cfg, &qhs_qup0, &qhs_qup1, &qhs_security, &qhs_snoc_cfg, &qhs_tcsr, &qhs_tlmm_1, &qhs_tlmm_2, &qhs_tlmm_3, &qhs_ufs_mem_cfg, &qhs_usb3, &qhs_venus_cfg, &qhs_venus_throttle_cfg, &qhs_vsense_ctrl_cfg, &srvc_cnoc); -DEFINE_QBCM(bcm_mm1, "MM1", false, &qxm_camnoc_hf0_uncomp, &qxm_camnoc_hf1_uncomp, &qxm_camnoc_sf_uncomp, &qhm_mnoc_cfg, &qxm_mdp0, &qxm_rot, &qxm_venus0, &qxm_venus_arm9); -DEFINE_QBCM(bcm_sh2, "SH2", false, &acm_sys_tcu); -DEFINE_QBCM(bcm_mm2, "MM2", false, &qns_mem_noc_sf); -DEFINE_QBCM(bcm_qup0, "QUP0", false, &qup_core_master_1, &qup_core_master_2); -DEFINE_QBCM(bcm_sh3, "SH3", false, &qnm_cmpnoc); -DEFINE_QBCM(bcm_sh4, "SH4", false, &acm_apps0); -DEFINE_QBCM(bcm_sn0, "SN0", true, &qns_gemnoc_sf); -DEFINE_QBCM(bcm_co0, "CO0", false, &qns_cdsp_gemnoc); -DEFINE_QBCM(bcm_sn1, "SN1", false, &qxs_imem); -DEFINE_QBCM(bcm_cn1, "CN1", false, &qhm_qspi, &xm_sdc2, &xm_emmc, &qhs_ahb2phy2, &qhs_emmc_cfg, &qhs_pdm, &qhs_qspi, &qhs_sdc2); -DEFINE_QBCM(bcm_sn2, "SN2", false, &qxm_pimem, &qns_gemnoc_gc); -DEFINE_QBCM(bcm_co2, "CO2", false, &qnm_npu); -DEFINE_QBCM(bcm_sn3, "SN3", false, &qxs_pimem); -DEFINE_QBCM(bcm_co3, "CO3", false, &qxm_npu_dsp); -DEFINE_QBCM(bcm_sn4, "SN4", false, &xs_qdss_stm); -DEFINE_QBCM(bcm_sn7, "SN7", false, &qnm_aggre1_noc); -DEFINE_QBCM(bcm_sn9, "SN9", false, &qnm_aggre2_noc); -DEFINE_QBCM(bcm_sn12, "SN12", false, &qnm_gemnoc); +static struct qcom_icc_bcm bcm_acv = { + .name = "ACV", + .enable_mask = BIT(3), + .keepalive = false, + .num_nodes = 1, + .nodes = { &ebi }, +}; + +static struct qcom_icc_bcm bcm_mc0 = { + .name = "MC0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &ebi }, +}; + +static struct qcom_icc_bcm bcm_sh0 = { + .name = "SH0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &qns_llcc }, +}; + +static struct qcom_icc_bcm bcm_mm0 = { + .name = "MM0", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_mem_noc_hf }, +}; + +static struct qcom_icc_bcm bcm_ce0 = { + .name = "CE0", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxm_crypto }, +}; + +static struct qcom_icc_bcm bcm_cn0 = { + .name = "CN0", + .keepalive = true, + .num_nodes = 48, + .nodes = { &qnm_snoc, + &xm_qdss_dap, + &qhs_a1_noc_cfg, + &qhs_a2_noc_cfg, + &qhs_ahb2phy0, + &qhs_aop, + &qhs_aoss, + &qhs_boot_rom, + &qhs_camera_cfg, + &qhs_camera_nrt_throttle_cfg, + &qhs_camera_rt_throttle_cfg, + &qhs_clk_ctl, + &qhs_cpr_cx, + &qhs_cpr_mx, + &qhs_crypto0_cfg, + &qhs_dcc_cfg, + &qhs_ddrss_cfg, + &qhs_display_cfg, + &qhs_display_rt_throttle_cfg, + &qhs_display_throttle_cfg, + &qhs_glm, + &qhs_gpuss_cfg, + &qhs_imem_cfg, + &qhs_ipa, + &qhs_mnoc_cfg, + &qhs_mss_cfg, + &qhs_npu_cfg, + &qhs_npu_dma_throttle_cfg, + &qhs_npu_dsp_throttle_cfg, + &qhs_pimem_cfg, + &qhs_prng, + &qhs_qdss_cfg, + &qhs_qm_cfg, + &qhs_qm_mpu_cfg, + &qhs_qup0, + &qhs_qup1, + &qhs_security, + &qhs_snoc_cfg, + &qhs_tcsr, + &qhs_tlmm_1, + &qhs_tlmm_2, + &qhs_tlmm_3, + &qhs_ufs_mem_cfg, + &qhs_usb3, + &qhs_venus_cfg, + &qhs_venus_throttle_cfg, + &qhs_vsense_ctrl_cfg, + &srvc_cnoc + }, +}; + +static struct qcom_icc_bcm bcm_mm1 = { + .name = "MM1", + .keepalive = false, + .num_nodes = 8, + .nodes = { &qxm_camnoc_hf0_uncomp, + &qxm_camnoc_hf1_uncomp, + &qxm_camnoc_sf_uncomp, + &qhm_mnoc_cfg, + &qxm_mdp0, + &qxm_rot, + &qxm_venus0, + &qxm_venus_arm9 + }, +}; + +static struct qcom_icc_bcm bcm_sh2 = { + .name = "SH2", + .keepalive = false, + .num_nodes = 1, + .nodes = { &acm_sys_tcu }, +}; + +static struct qcom_icc_bcm bcm_mm2 = { + .name = "MM2", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_mem_noc_sf }, +}; + +static struct qcom_icc_bcm bcm_qup0 = { + .name = "QUP0", + .keepalive = false, + .num_nodes = 2, + .nodes = { &qup_core_master_1, &qup_core_master_2 }, +}; + +static struct qcom_icc_bcm bcm_sh3 = { + .name = "SH3", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_cmpnoc }, +}; + +static struct qcom_icc_bcm bcm_sh4 = { + .name = "SH4", + .keepalive = false, + .num_nodes = 1, + .nodes = { &acm_apps0 }, +}; + +static struct qcom_icc_bcm bcm_sn0 = { + .name = "SN0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &qns_gemnoc_sf }, +}; + +static struct qcom_icc_bcm bcm_co0 = { + .name = "CO0", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_cdsp_gemnoc }, +}; + +static struct qcom_icc_bcm bcm_sn1 = { + .name = "SN1", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxs_imem }, +}; + +static struct qcom_icc_bcm bcm_cn1 = { + .name = "CN1", + .keepalive = false, + .num_nodes = 8, + .nodes = { &qhm_qspi, + &xm_sdc2, + &xm_emmc, + &qhs_ahb2phy2, + &qhs_emmc_cfg, + &qhs_pdm, + &qhs_qspi, + &qhs_sdc2 + }, +}; + +static struct qcom_icc_bcm bcm_sn2 = { + .name = "SN2", + .keepalive = false, + .num_nodes = 2, + .nodes = { &qxm_pimem, &qns_gemnoc_gc }, +}; + +static struct qcom_icc_bcm bcm_co2 = { + .name = "CO2", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_npu }, +}; + +static struct qcom_icc_bcm bcm_sn3 = { + .name = "SN3", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxs_pimem }, +}; + +static struct qcom_icc_bcm bcm_co3 = { + .name = "CO3", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxm_npu_dsp }, +}; + +static struct qcom_icc_bcm bcm_sn4 = { + .name = "SN4", + .keepalive = false, + .num_nodes = 1, + .nodes = { &xs_qdss_stm }, +}; + +static struct qcom_icc_bcm bcm_sn7 = { + .name = "SN7", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_aggre1_noc }, +}; + +static struct qcom_icc_bcm bcm_sn9 = { + .name = "SN9", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_aggre2_noc }, +}; + +static struct qcom_icc_bcm bcm_sn12 = { + .name = "SN12", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_gemnoc }, +}; static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { &bcm_cn1, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/interconnect/qcom/sc7280.c +++ linux-riscv-6.5.0/drivers/interconnect/qcom/sc7280.c @@ -1284,6 +1284,7 @@ static struct qcom_icc_bcm bcm_acv = { .name = "ACV", + .enable_mask = BIT(3), .num_nodes = 1, .nodes = { &ebi }, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/interconnect/qcom/sc8180x.c +++ linux-riscv-6.5.0/drivers/interconnect/qcom/sc8180x.c @@ -1344,6 +1344,7 @@ static struct qcom_icc_bcm bcm_acv = { .name = "ACV", + .enable_mask = BIT(3), .num_nodes = 1, .nodes = { &slv_ebi } }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/interconnect/qcom/sc8280xp.c +++ linux-riscv-6.5.0/drivers/interconnect/qcom/sc8280xp.c @@ -1711,6 +1711,7 @@ static struct qcom_icc_bcm bcm_acv = { .name = "ACV", + .enable_mask = BIT(3), .num_nodes = 1, .nodes = { &ebi }, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/interconnect/qcom/sdm670.c +++ linux-riscv-6.5.0/drivers/interconnect/qcom/sdm670.c @@ -131,30 +131,222 @@ DEFINE_QNODE(xs_qdss_stm, SDM670_SLAVE_QDSS_STM, 1, 4); DEFINE_QNODE(xs_sys_tcu_cfg, SDM670_SLAVE_TCU, 1, 8); -DEFINE_QBCM(bcm_acv, "ACV", false, &ebi); -DEFINE_QBCM(bcm_mc0, "MC0", true, &ebi); -DEFINE_QBCM(bcm_sh0, "SH0", true, &qns_llcc); -DEFINE_QBCM(bcm_mm0, "MM0", true, &qns_mem_noc_hf); -DEFINE_QBCM(bcm_sh1, "SH1", false, &qns_apps_io); -DEFINE_QBCM(bcm_mm1, "MM1", true, &qxm_camnoc_hf0_uncomp, &qxm_camnoc_hf1_uncomp, &qxm_camnoc_sf_uncomp, &qxm_camnoc_hf0, &qxm_camnoc_hf1, &qxm_mdp0, &qxm_mdp1); -DEFINE_QBCM(bcm_sh2, "SH2", false, &qns_memnoc_snoc); -DEFINE_QBCM(bcm_mm2, "MM2", false, &qns2_mem_noc); -DEFINE_QBCM(bcm_sh3, "SH3", false, &acm_tcu); -DEFINE_QBCM(bcm_mm3, "MM3", false, &qxm_camnoc_sf, &qxm_rot, &qxm_venus0, &qxm_venus1, &qxm_venus_arm9); -DEFINE_QBCM(bcm_sh5, "SH5", false, &qnm_apps); -DEFINE_QBCM(bcm_sn0, "SN0", true, &qns_memnoc_sf); -DEFINE_QBCM(bcm_ce0, "CE0", false, &qxm_crypto); -DEFINE_QBCM(bcm_cn0, "CN0", true, &qhm_spdm, &qnm_snoc, &qhs_a1_noc_cfg, &qhs_a2_noc_cfg, &qhs_aop, &qhs_aoss, &qhs_camera_cfg, &qhs_clk_ctl, &qhs_compute_dsp_cfg, &qhs_cpr_cx, &qhs_crypto0_cfg, &qhs_dcc_cfg, &qhs_ddrss_cfg, &qhs_display_cfg, &qhs_emmc_cfg, &qhs_glm, &qhs_gpuss_cfg, &qhs_imem_cfg, &qhs_ipa, &qhs_mnoc_cfg, &qhs_pdm, &qhs_phy_refgen_south, &qhs_pimem_cfg, &qhs_prng, &qhs_qdss_cfg, &qhs_qupv3_north, &qhs_qupv3_south, &qhs_sdc2, &qhs_sdc4, &qhs_snoc_cfg, &qhs_spdm, &qhs_tcsr, &qhs_tlmm_north, &qhs_tlmm_south, &qhs_tsif, &qhs_ufs_mem_cfg, &qhs_usb3_0, &qhs_venus_cfg, &qhs_vsense_ctrl_cfg, &qns_cnoc_a2noc, &srvc_cnoc); -DEFINE_QBCM(bcm_qup0, "QUP0", false, &qhm_qup1, &qhm_qup2); -DEFINE_QBCM(bcm_sn1, "SN1", false, &qxs_imem); -DEFINE_QBCM(bcm_sn2, "SN2", false, &qns_memnoc_gc); -DEFINE_QBCM(bcm_sn3, "SN3", false, &qns_cnoc); -DEFINE_QBCM(bcm_sn4, "SN4", false, &qxm_pimem, &qxs_pimem); -DEFINE_QBCM(bcm_sn5, "SN5", false, &xs_qdss_stm); -DEFINE_QBCM(bcm_sn8, "SN8", false, &qnm_aggre1_noc, &srvc_aggre1_noc); -DEFINE_QBCM(bcm_sn10, "SN10", false, &qnm_aggre2_noc, &srvc_aggre2_noc); -DEFINE_QBCM(bcm_sn11, "SN11", false, &qnm_gladiator_sodv, &xm_gic); -DEFINE_QBCM(bcm_sn13, "SN13", false, &qnm_memnoc); +static struct qcom_icc_bcm bcm_acv = { + .name = "ACV", + .enable_mask = BIT(3), + .keepalive = false, + .num_nodes = 1, + .nodes = { &ebi }, +}; + +static struct qcom_icc_bcm bcm_mc0 = { + .name = "MC0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &ebi }, +}; + +static struct qcom_icc_bcm bcm_sh0 = { + .name = "SH0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &qns_llcc }, +}; + +static struct qcom_icc_bcm bcm_mm0 = { + .name = "MM0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &qns_mem_noc_hf }, +}; + +static struct qcom_icc_bcm bcm_sh1 = { + .name = "SH1", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_apps_io }, +}; + +static struct qcom_icc_bcm bcm_mm1 = { + .name = "MM1", + .keepalive = true, + .num_nodes = 7, + .nodes = { &qxm_camnoc_hf0_uncomp, + &qxm_camnoc_hf1_uncomp, + &qxm_camnoc_sf_uncomp, + &qxm_camnoc_hf0, + &qxm_camnoc_hf1, + &qxm_mdp0, + &qxm_mdp1 + }, +}; + +static struct qcom_icc_bcm bcm_sh2 = { + .name = "SH2", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_memnoc_snoc }, +}; + +static struct qcom_icc_bcm bcm_mm2 = { + .name = "MM2", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns2_mem_noc }, +}; + +static struct qcom_icc_bcm bcm_sh3 = { + .name = "SH3", + .keepalive = false, + .num_nodes = 1, + .nodes = { &acm_tcu }, +}; + +static struct qcom_icc_bcm bcm_mm3 = { + .name = "MM3", + .keepalive = false, + .num_nodes = 5, + .nodes = { &qxm_camnoc_sf, &qxm_rot, &qxm_venus0, &qxm_venus1, &qxm_venus_arm9 }, +}; + +static struct qcom_icc_bcm bcm_sh5 = { + .name = "SH5", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_apps }, +}; + +static struct qcom_icc_bcm bcm_sn0 = { + .name = "SN0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &qns_memnoc_sf }, +}; + +static struct qcom_icc_bcm bcm_ce0 = { + .name = "CE0", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxm_crypto }, +}; + +static struct qcom_icc_bcm bcm_cn0 = { + .name = "CN0", + .keepalive = true, + .num_nodes = 41, + .nodes = { &qhm_spdm, + &qnm_snoc, + &qhs_a1_noc_cfg, + &qhs_a2_noc_cfg, + &qhs_aop, + &qhs_aoss, + &qhs_camera_cfg, + &qhs_clk_ctl, + &qhs_compute_dsp_cfg, + &qhs_cpr_cx, + &qhs_crypto0_cfg, + &qhs_dcc_cfg, + &qhs_ddrss_cfg, + &qhs_display_cfg, + &qhs_emmc_cfg, + &qhs_glm, + &qhs_gpuss_cfg, + &qhs_imem_cfg, + &qhs_ipa, + &qhs_mnoc_cfg, + &qhs_pdm, + &qhs_phy_refgen_south, + &qhs_pimem_cfg, + &qhs_prng, + &qhs_qdss_cfg, + &qhs_qupv3_north, + &qhs_qupv3_south, + &qhs_sdc2, + &qhs_sdc4, + &qhs_snoc_cfg, + &qhs_spdm, + &qhs_tcsr, + &qhs_tlmm_north, + &qhs_tlmm_south, + &qhs_tsif, + &qhs_ufs_mem_cfg, + &qhs_usb3_0, + &qhs_venus_cfg, + &qhs_vsense_ctrl_cfg, + &qns_cnoc_a2noc, + &srvc_cnoc + }, +}; + +static struct qcom_icc_bcm bcm_qup0 = { + .name = "QUP0", + .keepalive = false, + .num_nodes = 2, + .nodes = { &qhm_qup1, &qhm_qup2 }, +}; + +static struct qcom_icc_bcm bcm_sn1 = { + .name = "SN1", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxs_imem }, +}; + +static struct qcom_icc_bcm bcm_sn2 = { + .name = "SN2", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_memnoc_gc }, +}; + +static struct qcom_icc_bcm bcm_sn3 = { + .name = "SN3", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_cnoc }, +}; + +static struct qcom_icc_bcm bcm_sn4 = { + .name = "SN4", + .keepalive = false, + .num_nodes = 2, + .nodes = { &qxm_pimem, &qxs_pimem }, +}; + +static struct qcom_icc_bcm bcm_sn5 = { + .name = "SN5", + .keepalive = false, + .num_nodes = 1, + .nodes = { &xs_qdss_stm }, +}; + +static struct qcom_icc_bcm bcm_sn8 = { + .name = "SN8", + .keepalive = false, + .num_nodes = 2, + .nodes = { &qnm_aggre1_noc, &srvc_aggre1_noc }, +}; + +static struct qcom_icc_bcm bcm_sn10 = { + .name = "SN10", + .keepalive = false, + .num_nodes = 2, + .nodes = { &qnm_aggre2_noc, &srvc_aggre2_noc }, +}; + +static struct qcom_icc_bcm bcm_sn11 = { + .name = "SN11", + .keepalive = false, + .num_nodes = 2, + .nodes = { &qnm_gladiator_sodv, &xm_gic }, +}; + +static struct qcom_icc_bcm bcm_sn13 = { + .name = "SN13", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_memnoc }, +}; static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { &bcm_qup0, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/interconnect/qcom/sdm845.c +++ linux-riscv-6.5.0/drivers/interconnect/qcom/sdm845.c @@ -146,34 +146,256 @@ DEFINE_QNODE(xs_qdss_stm, SDM845_SLAVE_QDSS_STM, 1, 4); DEFINE_QNODE(xs_sys_tcu_cfg, SDM845_SLAVE_TCU, 1, 8); -DEFINE_QBCM(bcm_acv, "ACV", false, &ebi); -DEFINE_QBCM(bcm_mc0, "MC0", true, &ebi); -DEFINE_QBCM(bcm_sh0, "SH0", true, &qns_llcc); -DEFINE_QBCM(bcm_mm0, "MM0", false, &qns_mem_noc_hf); -DEFINE_QBCM(bcm_sh1, "SH1", false, &qns_apps_io); -DEFINE_QBCM(bcm_mm1, "MM1", true, &qxm_camnoc_hf0_uncomp, &qxm_camnoc_hf1_uncomp, &qxm_camnoc_sf_uncomp, &qxm_camnoc_hf0, &qxm_camnoc_hf1, &qxm_mdp0, &qxm_mdp1); -DEFINE_QBCM(bcm_sh2, "SH2", false, &qns_memnoc_snoc); -DEFINE_QBCM(bcm_mm2, "MM2", false, &qns2_mem_noc); -DEFINE_QBCM(bcm_sh3, "SH3", false, &acm_tcu); -DEFINE_QBCM(bcm_mm3, "MM3", false, &qxm_camnoc_sf, &qxm_rot, &qxm_venus0, &qxm_venus1, &qxm_venus_arm9); -DEFINE_QBCM(bcm_sh5, "SH5", false, &qnm_apps); -DEFINE_QBCM(bcm_sn0, "SN0", true, &qns_memnoc_sf); -DEFINE_QBCM(bcm_ce0, "CE0", false, &qxm_crypto); -DEFINE_QBCM(bcm_cn0, "CN0", false, &qhm_spdm, &qhm_tic, &qnm_snoc, &xm_qdss_dap, &qhs_a1_noc_cfg, &qhs_a2_noc_cfg, &qhs_aop, &qhs_aoss, &qhs_camera_cfg, &qhs_clk_ctl, &qhs_compute_dsp_cfg, &qhs_cpr_cx, &qhs_crypto0_cfg, &qhs_dcc_cfg, &qhs_ddrss_cfg, &qhs_display_cfg, &qhs_glm, &qhs_gpuss_cfg, &qhs_imem_cfg, &qhs_ipa, &qhs_mnoc_cfg, &qhs_pcie0_cfg, &qhs_pcie_gen3_cfg, &qhs_pdm, &qhs_phy_refgen_south, &qhs_pimem_cfg, &qhs_prng, &qhs_qdss_cfg, &qhs_qupv3_north, &qhs_qupv3_south, &qhs_sdc2, &qhs_sdc4, &qhs_snoc_cfg, &qhs_spdm, &qhs_spss_cfg, &qhs_tcsr, &qhs_tlmm_north, &qhs_tlmm_south, &qhs_tsif, &qhs_ufs_card_cfg, &qhs_ufs_mem_cfg, &qhs_usb3_0, &qhs_usb3_1, &qhs_venus_cfg, &qhs_vsense_ctrl_cfg, &qns_cnoc_a2noc, &srvc_cnoc); -DEFINE_QBCM(bcm_qup0, "QUP0", false, &qhm_qup1, &qhm_qup2); -DEFINE_QBCM(bcm_sn1, "SN1", false, &qxs_imem); -DEFINE_QBCM(bcm_sn2, "SN2", false, &qns_memnoc_gc); -DEFINE_QBCM(bcm_sn3, "SN3", false, &qns_cnoc); -DEFINE_QBCM(bcm_sn4, "SN4", false, &qxm_pimem); -DEFINE_QBCM(bcm_sn5, "SN5", false, &xs_qdss_stm); -DEFINE_QBCM(bcm_sn6, "SN6", false, &qhs_apss, &srvc_snoc, &xs_sys_tcu_cfg); -DEFINE_QBCM(bcm_sn7, "SN7", false, &qxs_pcie); -DEFINE_QBCM(bcm_sn8, "SN8", false, &qxs_pcie_gen3); -DEFINE_QBCM(bcm_sn9, "SN9", false, &srvc_aggre1_noc, &qnm_aggre1_noc); -DEFINE_QBCM(bcm_sn11, "SN11", false, &srvc_aggre2_noc, &qnm_aggre2_noc); -DEFINE_QBCM(bcm_sn12, "SN12", false, &qnm_gladiator_sodv, &xm_gic); -DEFINE_QBCM(bcm_sn14, "SN14", false, &qnm_pcie_anoc); -DEFINE_QBCM(bcm_sn15, "SN15", false, &qnm_memnoc); +static struct qcom_icc_bcm bcm_acv = { + .name = "ACV", + .enable_mask = BIT(3), + .keepalive = false, + .num_nodes = 1, + .nodes = { &ebi }, +}; + +static struct qcom_icc_bcm bcm_mc0 = { + .name = "MC0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &ebi }, +}; + +static struct qcom_icc_bcm bcm_sh0 = { + .name = "SH0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &qns_llcc }, +}; + +static struct qcom_icc_bcm bcm_mm0 = { + .name = "MM0", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_mem_noc_hf }, +}; + +static struct qcom_icc_bcm bcm_sh1 = { + .name = "SH1", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_apps_io }, +}; + +static struct qcom_icc_bcm bcm_mm1 = { + .name = "MM1", + .keepalive = true, + .num_nodes = 7, + .nodes = { &qxm_camnoc_hf0_uncomp, + &qxm_camnoc_hf1_uncomp, + &qxm_camnoc_sf_uncomp, + &qxm_camnoc_hf0, + &qxm_camnoc_hf1, + &qxm_mdp0, + &qxm_mdp1 + }, +}; + +static struct qcom_icc_bcm bcm_sh2 = { + .name = "SH2", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_memnoc_snoc }, +}; + +static struct qcom_icc_bcm bcm_mm2 = { + .name = "MM2", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns2_mem_noc }, +}; + +static struct qcom_icc_bcm bcm_sh3 = { + .name = "SH3", + .keepalive = false, + .num_nodes = 1, + .nodes = { &acm_tcu }, +}; + +static struct qcom_icc_bcm bcm_mm3 = { + .name = "MM3", + .keepalive = false, + .num_nodes = 5, + .nodes = { &qxm_camnoc_sf, &qxm_rot, &qxm_venus0, &qxm_venus1, &qxm_venus_arm9 }, +}; + +static struct qcom_icc_bcm bcm_sh5 = { + .name = "SH5", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_apps }, +}; + +static struct qcom_icc_bcm bcm_sn0 = { + .name = "SN0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &qns_memnoc_sf }, +}; + +static struct qcom_icc_bcm bcm_ce0 = { + .name = "CE0", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxm_crypto }, +}; + +static struct qcom_icc_bcm bcm_cn0 = { + .name = "CN0", + .keepalive = false, + .num_nodes = 47, + .nodes = { &qhm_spdm, + &qhm_tic, + &qnm_snoc, + &xm_qdss_dap, + &qhs_a1_noc_cfg, + &qhs_a2_noc_cfg, + &qhs_aop, + &qhs_aoss, + &qhs_camera_cfg, + &qhs_clk_ctl, + &qhs_compute_dsp_cfg, + &qhs_cpr_cx, + &qhs_crypto0_cfg, + &qhs_dcc_cfg, + &qhs_ddrss_cfg, + &qhs_display_cfg, + &qhs_glm, + &qhs_gpuss_cfg, + &qhs_imem_cfg, + &qhs_ipa, + &qhs_mnoc_cfg, + &qhs_pcie0_cfg, + &qhs_pcie_gen3_cfg, + &qhs_pdm, + &qhs_phy_refgen_south, + &qhs_pimem_cfg, + &qhs_prng, + &qhs_qdss_cfg, + &qhs_qupv3_north, + &qhs_qupv3_south, + &qhs_sdc2, + &qhs_sdc4, + &qhs_snoc_cfg, + &qhs_spdm, + &qhs_spss_cfg, + &qhs_tcsr, + &qhs_tlmm_north, + &qhs_tlmm_south, + &qhs_tsif, + &qhs_ufs_card_cfg, + &qhs_ufs_mem_cfg, + &qhs_usb3_0, + &qhs_usb3_1, + &qhs_venus_cfg, + &qhs_vsense_ctrl_cfg, + &qns_cnoc_a2noc, + &srvc_cnoc + }, +}; + +static struct qcom_icc_bcm bcm_qup0 = { + .name = "QUP0", + .keepalive = false, + .num_nodes = 2, + .nodes = { &qhm_qup1, &qhm_qup2 }, +}; + +static struct qcom_icc_bcm bcm_sn1 = { + .name = "SN1", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxs_imem }, +}; + +static struct qcom_icc_bcm bcm_sn2 = { + .name = "SN2", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_memnoc_gc }, +}; + +static struct qcom_icc_bcm bcm_sn3 = { + .name = "SN3", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_cnoc }, +}; + +static struct qcom_icc_bcm bcm_sn4 = { + .name = "SN4", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxm_pimem }, +}; + +static struct qcom_icc_bcm bcm_sn5 = { + .name = "SN5", + .keepalive = false, + .num_nodes = 1, + .nodes = { &xs_qdss_stm }, +}; + +static struct qcom_icc_bcm bcm_sn6 = { + .name = "SN6", + .keepalive = false, + .num_nodes = 3, + .nodes = { &qhs_apss, &srvc_snoc, &xs_sys_tcu_cfg }, +}; + +static struct qcom_icc_bcm bcm_sn7 = { + .name = "SN7", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxs_pcie }, +}; + +static struct qcom_icc_bcm bcm_sn8 = { + .name = "SN8", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxs_pcie_gen3 }, +}; + +static struct qcom_icc_bcm bcm_sn9 = { + .name = "SN9", + .keepalive = false, + .num_nodes = 2, + .nodes = { &srvc_aggre1_noc, &qnm_aggre1_noc }, +}; + +static struct qcom_icc_bcm bcm_sn11 = { + .name = "SN11", + .keepalive = false, + .num_nodes = 2, + .nodes = { &srvc_aggre2_noc, &qnm_aggre2_noc }, +}; + +static struct qcom_icc_bcm bcm_sn12 = { + .name = "SN12", + .keepalive = false, + .num_nodes = 2, + .nodes = { &qnm_gladiator_sodv, &xm_gic }, +}; + +static struct qcom_icc_bcm bcm_sn14 = { + .name = "SN14", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_pcie_anoc }, +}; + +static struct qcom_icc_bcm bcm_sn15 = { + .name = "SN15", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_memnoc }, +}; static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { &bcm_sn9, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/interconnect/qcom/sm6350.c +++ linux-riscv-6.5.0/drivers/interconnect/qcom/sm6350.c @@ -142,31 +142,233 @@ DEFINE_QNODE(xs_qdss_stm, SM6350_SLAVE_QDSS_STM, 1, 4); DEFINE_QNODE(xs_sys_tcu_cfg, SM6350_SLAVE_TCU, 1, 8); -DEFINE_QBCM(bcm_acv, "ACV", false, &ebi); -DEFINE_QBCM(bcm_ce0, "CE0", false, &qxm_crypto); -DEFINE_QBCM(bcm_cn0, "CN0", true, &qnm_snoc, &xm_qdss_dap, &qhs_a1_noc_cfg, &qhs_a2_noc_cfg, &qhs_ahb2phy0, &qhs_aoss, &qhs_boot_rom, &qhs_camera_cfg, &qhs_camera_nrt_thrott_cfg, &qhs_camera_rt_throttle_cfg, &qhs_clk_ctl, &qhs_cpr_cx, &qhs_cpr_mx, &qhs_crypto0_cfg, &qhs_dcc_cfg, &qhs_ddrss_cfg, &qhs_display_cfg, &qhs_display_throttle_cfg, &qhs_glm, &qhs_gpuss_cfg, &qhs_imem_cfg, &qhs_ipa, &qhs_mnoc_cfg, &qhs_mss_cfg, &qhs_npu_cfg, &qhs_pimem_cfg, &qhs_prng, &qhs_qdss_cfg, &qhs_qm_cfg, &qhs_qm_mpu_cfg, &qhs_qup0, &qhs_qup1, &qhs_security, &qhs_snoc_cfg, &qhs_tcsr, &qhs_ufs_mem_cfg, &qhs_usb3_0, &qhs_venus_cfg, &qhs_venus_throttle_cfg, &qhs_vsense_ctrl_cfg, &srvc_cnoc); -DEFINE_QBCM(bcm_cn1, "CN1", false, &xm_emmc, &xm_sdc2, &qhs_ahb2phy2, &qhs_emmc_cfg, &qhs_pdm, &qhs_sdc2); -DEFINE_QBCM(bcm_co0, "CO0", false, &qns_cdsp_gemnoc); -DEFINE_QBCM(bcm_co2, "CO2", false, &qnm_npu); -DEFINE_QBCM(bcm_co3, "CO3", false, &qxm_npu_dsp); -DEFINE_QBCM(bcm_mc0, "MC0", true, &ebi); -DEFINE_QBCM(bcm_mm0, "MM0", true, &qns_mem_noc_hf); -DEFINE_QBCM(bcm_mm1, "MM1", true, &qxm_camnoc_hf0_uncomp, &qxm_camnoc_icp_uncomp, &qxm_camnoc_sf_uncomp, &qxm_camnoc_hf, &qxm_mdp0); -DEFINE_QBCM(bcm_mm2, "MM2", false, &qns_mem_noc_sf); -DEFINE_QBCM(bcm_mm3, "MM3", false, &qhm_mnoc_cfg, &qnm_video0, &qnm_video_cvp, &qxm_camnoc_sf); -DEFINE_QBCM(bcm_qup0, "QUP0", false, &qup0_core_master, &qup1_core_master, &qup0_core_slave, &qup1_core_slave); -DEFINE_QBCM(bcm_sh0, "SH0", true, &qns_llcc); -DEFINE_QBCM(bcm_sh2, "SH2", false, &acm_sys_tcu); -DEFINE_QBCM(bcm_sh3, "SH3", false, &qnm_cmpnoc); -DEFINE_QBCM(bcm_sh4, "SH4", false, &acm_apps); -DEFINE_QBCM(bcm_sn0, "SN0", true, &qns_gemnoc_sf); -DEFINE_QBCM(bcm_sn1, "SN1", false, &qxs_imem); -DEFINE_QBCM(bcm_sn2, "SN2", false, &qns_gemnoc_gc); -DEFINE_QBCM(bcm_sn3, "SN3", false, &qxs_pimem); -DEFINE_QBCM(bcm_sn4, "SN4", false, &xs_qdss_stm); -DEFINE_QBCM(bcm_sn5, "SN5", false, &qnm_aggre1_noc); -DEFINE_QBCM(bcm_sn6, "SN6", false, &qnm_aggre2_noc); -DEFINE_QBCM(bcm_sn10, "SN10", false, &qnm_gemnoc); +static struct qcom_icc_bcm bcm_acv = { + .name = "ACV", + .enable_mask = BIT(3), + .keepalive = false, + .num_nodes = 1, + .nodes = { &ebi }, +}; + +static struct qcom_icc_bcm bcm_ce0 = { + .name = "CE0", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxm_crypto }, +}; + +static struct qcom_icc_bcm bcm_cn0 = { + .name = "CN0", + .keepalive = true, + .num_nodes = 41, + .nodes = { &qnm_snoc, + &xm_qdss_dap, + &qhs_a1_noc_cfg, + &qhs_a2_noc_cfg, + &qhs_ahb2phy0, + &qhs_aoss, + &qhs_boot_rom, + &qhs_camera_cfg, + &qhs_camera_nrt_thrott_cfg, + &qhs_camera_rt_throttle_cfg, + &qhs_clk_ctl, + &qhs_cpr_cx, + &qhs_cpr_mx, + &qhs_crypto0_cfg, + &qhs_dcc_cfg, + &qhs_ddrss_cfg, + &qhs_display_cfg, + &qhs_display_throttle_cfg, + &qhs_glm, + &qhs_gpuss_cfg, + &qhs_imem_cfg, + &qhs_ipa, + &qhs_mnoc_cfg, + &qhs_mss_cfg, + &qhs_npu_cfg, + &qhs_pimem_cfg, + &qhs_prng, + &qhs_qdss_cfg, + &qhs_qm_cfg, + &qhs_qm_mpu_cfg, + &qhs_qup0, + &qhs_qup1, + &qhs_security, + &qhs_snoc_cfg, + &qhs_tcsr, + &qhs_ufs_mem_cfg, + &qhs_usb3_0, + &qhs_venus_cfg, + &qhs_venus_throttle_cfg, + &qhs_vsense_ctrl_cfg, + &srvc_cnoc + }, +}; + +static struct qcom_icc_bcm bcm_cn1 = { + .name = "CN1", + .keepalive = false, + .num_nodes = 6, + .nodes = { &xm_emmc, + &xm_sdc2, + &qhs_ahb2phy2, + &qhs_emmc_cfg, + &qhs_pdm, + &qhs_sdc2 + }, +}; + +static struct qcom_icc_bcm bcm_co0 = { + .name = "CO0", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_cdsp_gemnoc }, +}; + +static struct qcom_icc_bcm bcm_co2 = { + .name = "CO2", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_npu }, +}; + +static struct qcom_icc_bcm bcm_co3 = { + .name = "CO3", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxm_npu_dsp }, +}; + +static struct qcom_icc_bcm bcm_mc0 = { + .name = "MC0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &ebi }, +}; + +static struct qcom_icc_bcm bcm_mm0 = { + .name = "MM0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &qns_mem_noc_hf }, +}; + +static struct qcom_icc_bcm bcm_mm1 = { + .name = "MM1", + .keepalive = true, + .num_nodes = 5, + .nodes = { &qxm_camnoc_hf0_uncomp, + &qxm_camnoc_icp_uncomp, + &qxm_camnoc_sf_uncomp, + &qxm_camnoc_hf, + &qxm_mdp0 + }, +}; + +static struct qcom_icc_bcm bcm_mm2 = { + .name = "MM2", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_mem_noc_sf }, +}; + +static struct qcom_icc_bcm bcm_mm3 = { + .name = "MM3", + .keepalive = false, + .num_nodes = 4, + .nodes = { &qhm_mnoc_cfg, &qnm_video0, &qnm_video_cvp, &qxm_camnoc_sf }, +}; + +static struct qcom_icc_bcm bcm_qup0 = { + .name = "QUP0", + .keepalive = false, + .num_nodes = 4, + .nodes = { &qup0_core_master, &qup1_core_master, &qup0_core_slave, &qup1_core_slave }, +}; + +static struct qcom_icc_bcm bcm_sh0 = { + .name = "SH0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &qns_llcc }, +}; + +static struct qcom_icc_bcm bcm_sh2 = { + .name = "SH2", + .keepalive = false, + .num_nodes = 1, + .nodes = { &acm_sys_tcu }, +}; + +static struct qcom_icc_bcm bcm_sh3 = { + .name = "SH3", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_cmpnoc }, +}; + +static struct qcom_icc_bcm bcm_sh4 = { + .name = "SH4", + .keepalive = false, + .num_nodes = 1, + .nodes = { &acm_apps }, +}; + +static struct qcom_icc_bcm bcm_sn0 = { + .name = "SN0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &qns_gemnoc_sf }, +}; + +static struct qcom_icc_bcm bcm_sn1 = { + .name = "SN1", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxs_imem }, +}; + +static struct qcom_icc_bcm bcm_sn2 = { + .name = "SN2", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_gemnoc_gc }, +}; + +static struct qcom_icc_bcm bcm_sn3 = { + .name = "SN3", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxs_pimem }, +}; + +static struct qcom_icc_bcm bcm_sn4 = { + .name = "SN4", + .keepalive = false, + .num_nodes = 1, + .nodes = { &xs_qdss_stm }, +}; + +static struct qcom_icc_bcm bcm_sn5 = { + .name = "SN5", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_aggre1_noc }, +}; + +static struct qcom_icc_bcm bcm_sn6 = { + .name = "SN6", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_aggre2_noc }, +}; + +static struct qcom_icc_bcm bcm_sn10 = { + .name = "SN10", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_gemnoc }, +}; static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { &bcm_cn1, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/interconnect/qcom/sm8150.c +++ linux-riscv-6.5.0/drivers/interconnect/qcom/sm8150.c @@ -154,34 +154,262 @@ DEFINE_QNODE(xs_qdss_stm, SM8150_SLAVE_QDSS_STM, 1, 4); DEFINE_QNODE(xs_sys_tcu_cfg, SM8150_SLAVE_TCU, 1, 8); -DEFINE_QBCM(bcm_acv, "ACV", false, &ebi); -DEFINE_QBCM(bcm_mc0, "MC0", true, &ebi); -DEFINE_QBCM(bcm_sh0, "SH0", true, &qns_llcc); -DEFINE_QBCM(bcm_mm0, "MM0", true, &qns_mem_noc_hf); -DEFINE_QBCM(bcm_mm1, "MM1", false, &qxm_camnoc_hf0_uncomp, &qxm_camnoc_hf1_uncomp, &qxm_camnoc_sf_uncomp, &qxm_camnoc_hf0, &qxm_camnoc_hf1, &qxm_mdp0, &qxm_mdp1); -DEFINE_QBCM(bcm_sh2, "SH2", false, &qns_gem_noc_snoc); -DEFINE_QBCM(bcm_mm2, "MM2", false, &qxm_camnoc_sf, &qns2_mem_noc); -DEFINE_QBCM(bcm_sh3, "SH3", false, &acm_gpu_tcu, &acm_sys_tcu); -DEFINE_QBCM(bcm_mm3, "MM3", false, &qxm_rot, &qxm_venus0, &qxm_venus1, &qxm_venus_arm9); -DEFINE_QBCM(bcm_sh4, "SH4", false, &qnm_cmpnoc); -DEFINE_QBCM(bcm_sh5, "SH5", false, &acm_apps); -DEFINE_QBCM(bcm_sn0, "SN0", true, &qns_gemnoc_sf); -DEFINE_QBCM(bcm_co0, "CO0", false, &qns_cdsp_mem_noc); -DEFINE_QBCM(bcm_ce0, "CE0", false, &qxm_crypto); -DEFINE_QBCM(bcm_sn1, "SN1", false, &qxs_imem); -DEFINE_QBCM(bcm_co1, "CO1", false, &qnm_npu); -DEFINE_QBCM(bcm_cn0, "CN0", true, &qhm_spdm, &qnm_snoc, &qhs_a1_noc_cfg, &qhs_a2_noc_cfg, &qhs_ahb2phy_south, &qhs_aop, &qhs_aoss, &qhs_camera_cfg, &qhs_clk_ctl, &qhs_compute_dsp, &qhs_cpr_cx, &qhs_cpr_mmcx, &qhs_cpr_mx, &qhs_crypto0_cfg, &qhs_ddrss_cfg, &qhs_display_cfg, &qhs_emac_cfg, &qhs_glm, &qhs_gpuss_cfg, &qhs_imem_cfg, &qhs_ipa, &qhs_mnoc_cfg, &qhs_npu_cfg, &qhs_pcie0_cfg, &qhs_pcie1_cfg, &qhs_phy_refgen_north, &qhs_pimem_cfg, &qhs_prng, &qhs_qdss_cfg, &qhs_qspi, &qhs_qupv3_east, &qhs_qupv3_north, &qhs_qupv3_south, &qhs_sdc2, &qhs_sdc4, &qhs_snoc_cfg, &qhs_spdm, &qhs_spss_cfg, &qhs_ssc_cfg, &qhs_tcsr, &qhs_tlmm_east, &qhs_tlmm_north, &qhs_tlmm_south, &qhs_tlmm_west, &qhs_tsif, &qhs_ufs_card_cfg, &qhs_ufs_mem_cfg, &qhs_usb3_0, &qhs_usb3_1, &qhs_venus_cfg, &qhs_vsense_ctrl_cfg, &qns_cnoc_a2noc, &srvc_cnoc); -DEFINE_QBCM(bcm_qup0, "QUP0", false, &qhm_qup0, &qhm_qup1, &qhm_qup2); -DEFINE_QBCM(bcm_sn2, "SN2", false, &qns_gemnoc_gc); -DEFINE_QBCM(bcm_sn3, "SN3", false, &srvc_aggre1_noc, &srvc_aggre2_noc, &qns_cnoc); -DEFINE_QBCM(bcm_sn4, "SN4", false, &qxs_pimem); -DEFINE_QBCM(bcm_sn5, "SN5", false, &xs_qdss_stm); -DEFINE_QBCM(bcm_sn8, "SN8", false, &xs_pcie_0, &xs_pcie_1); -DEFINE_QBCM(bcm_sn9, "SN9", false, &qnm_aggre1_noc); -DEFINE_QBCM(bcm_sn11, "SN11", false, &qnm_aggre2_noc); -DEFINE_QBCM(bcm_sn12, "SN12", false, &qxm_pimem, &xm_gic); -DEFINE_QBCM(bcm_sn14, "SN14", false, &qns_pcie_mem_noc); -DEFINE_QBCM(bcm_sn15, "SN15", false, &qnm_gemnoc); +static struct qcom_icc_bcm bcm_acv = { + .name = "ACV", + .enable_mask = BIT(3), + .keepalive = false, + .num_nodes = 1, + .nodes = { &ebi }, +}; + +static struct qcom_icc_bcm bcm_mc0 = { + .name = "MC0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &ebi }, +}; + +static struct qcom_icc_bcm bcm_sh0 = { + .name = "SH0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &qns_llcc }, +}; + +static struct qcom_icc_bcm bcm_mm0 = { + .name = "MM0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &qns_mem_noc_hf }, +}; + +static struct qcom_icc_bcm bcm_mm1 = { + .name = "MM1", + .keepalive = false, + .num_nodes = 7, + .nodes = { &qxm_camnoc_hf0_uncomp, + &qxm_camnoc_hf1_uncomp, + &qxm_camnoc_sf_uncomp, + &qxm_camnoc_hf0, + &qxm_camnoc_hf1, + &qxm_mdp0, + &qxm_mdp1 + }, +}; + +static struct qcom_icc_bcm bcm_sh2 = { + .name = "SH2", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_gem_noc_snoc }, +}; + +static struct qcom_icc_bcm bcm_mm2 = { + .name = "MM2", + .keepalive = false, + .num_nodes = 2, + .nodes = { &qxm_camnoc_sf, &qns2_mem_noc }, +}; + +static struct qcom_icc_bcm bcm_sh3 = { + .name = "SH3", + .keepalive = false, + .num_nodes = 2, + .nodes = { &acm_gpu_tcu, &acm_sys_tcu }, +}; + +static struct qcom_icc_bcm bcm_mm3 = { + .name = "MM3", + .keepalive = false, + .num_nodes = 4, + .nodes = { &qxm_rot, &qxm_venus0, &qxm_venus1, &qxm_venus_arm9 }, +}; + +static struct qcom_icc_bcm bcm_sh4 = { + .name = "SH4", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_cmpnoc }, +}; + +static struct qcom_icc_bcm bcm_sh5 = { + .name = "SH5", + .keepalive = false, + .num_nodes = 1, + .nodes = { &acm_apps }, +}; + +static struct qcom_icc_bcm bcm_sn0 = { + .name = "SN0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &qns_gemnoc_sf }, +}; + +static struct qcom_icc_bcm bcm_co0 = { + .name = "CO0", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_cdsp_mem_noc }, +}; + +static struct qcom_icc_bcm bcm_ce0 = { + .name = "CE0", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxm_crypto }, +}; + +static struct qcom_icc_bcm bcm_sn1 = { + .name = "SN1", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxs_imem }, +}; + +static struct qcom_icc_bcm bcm_co1 = { + .name = "CO1", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_npu }, +}; + +static struct qcom_icc_bcm bcm_cn0 = { + .name = "CN0", + .keepalive = true, + .num_nodes = 53, + .nodes = { &qhm_spdm, + &qnm_snoc, + &qhs_a1_noc_cfg, + &qhs_a2_noc_cfg, + &qhs_ahb2phy_south, + &qhs_aop, + &qhs_aoss, + &qhs_camera_cfg, + &qhs_clk_ctl, + &qhs_compute_dsp, + &qhs_cpr_cx, + &qhs_cpr_mmcx, + &qhs_cpr_mx, + &qhs_crypto0_cfg, + &qhs_ddrss_cfg, + &qhs_display_cfg, + &qhs_emac_cfg, + &qhs_glm, + &qhs_gpuss_cfg, + &qhs_imem_cfg, + &qhs_ipa, + &qhs_mnoc_cfg, + &qhs_npu_cfg, + &qhs_pcie0_cfg, + &qhs_pcie1_cfg, + &qhs_phy_refgen_north, + &qhs_pimem_cfg, + &qhs_prng, + &qhs_qdss_cfg, + &qhs_qspi, + &qhs_qupv3_east, + &qhs_qupv3_north, + &qhs_qupv3_south, + &qhs_sdc2, + &qhs_sdc4, + &qhs_snoc_cfg, + &qhs_spdm, + &qhs_spss_cfg, + &qhs_ssc_cfg, + &qhs_tcsr, + &qhs_tlmm_east, + &qhs_tlmm_north, + &qhs_tlmm_south, + &qhs_tlmm_west, + &qhs_tsif, + &qhs_ufs_card_cfg, + &qhs_ufs_mem_cfg, + &qhs_usb3_0, + &qhs_usb3_1, + &qhs_venus_cfg, + &qhs_vsense_ctrl_cfg, + &qns_cnoc_a2noc, + &srvc_cnoc + }, +}; + +static struct qcom_icc_bcm bcm_qup0 = { + .name = "QUP0", + .keepalive = false, + .num_nodes = 3, + .nodes = { &qhm_qup0, &qhm_qup1, &qhm_qup2 }, +}; + +static struct qcom_icc_bcm bcm_sn2 = { + .name = "SN2", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_gemnoc_gc }, +}; + +static struct qcom_icc_bcm bcm_sn3 = { + .name = "SN3", + .keepalive = false, + .num_nodes = 3, + .nodes = { &srvc_aggre1_noc, &srvc_aggre2_noc, &qns_cnoc }, +}; + +static struct qcom_icc_bcm bcm_sn4 = { + .name = "SN4", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxs_pimem }, +}; + +static struct qcom_icc_bcm bcm_sn5 = { + .name = "SN5", + .keepalive = false, + .num_nodes = 1, + .nodes = { &xs_qdss_stm }, +}; + +static struct qcom_icc_bcm bcm_sn8 = { + .name = "SN8", + .keepalive = false, + .num_nodes = 2, + .nodes = { &xs_pcie_0, &xs_pcie_1 }, +}; + +static struct qcom_icc_bcm bcm_sn9 = { + .name = "SN9", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_aggre1_noc }, +}; + +static struct qcom_icc_bcm bcm_sn11 = { + .name = "SN11", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_aggre2_noc }, +}; + +static struct qcom_icc_bcm bcm_sn12 = { + .name = "SN12", + .keepalive = false, + .num_nodes = 2, + .nodes = { &qxm_pimem, &xm_gic }, +}; + +static struct qcom_icc_bcm bcm_sn14 = { + .name = "SN14", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_pcie_mem_noc }, +}; + +static struct qcom_icc_bcm bcm_sn15 = { + .name = "SN15", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_gemnoc }, +}; static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { &bcm_qup0, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/interconnect/qcom/sm8350.c +++ linux-riscv-6.5.0/drivers/interconnect/qcom/sm8350.c @@ -165,38 +165,283 @@ DEFINE_QNODE(qns_mem_noc_hf_disp, SM8350_SLAVE_MNOC_HF_MEM_NOC_DISP, 2, 32, SM8350_MASTER_MNOC_HF_MEM_NOC_DISP); DEFINE_QNODE(qns_mem_noc_sf_disp, SM8350_SLAVE_MNOC_SF_MEM_NOC_DISP, 2, 32, SM8350_MASTER_MNOC_SF_MEM_NOC_DISP); -DEFINE_QBCM(bcm_acv, "ACV", false, &ebi); -DEFINE_QBCM(bcm_ce0, "CE0", false, &qxm_crypto); -DEFINE_QBCM(bcm_cn0, "CN0", true, &qnm_gemnoc_cnoc, &qnm_gemnoc_pcie); -DEFINE_QBCM(bcm_cn1, "CN1", false, &xm_qdss_dap, &qhs_ahb2phy0, &qhs_ahb2phy1, &qhs_aoss, &qhs_apss, &qhs_camera_cfg, &qhs_clk_ctl, &qhs_compute_cfg, &qhs_cpr_cx, &qhs_cpr_mmcx, &qhs_cpr_mx, &qhs_crypto0_cfg, &qhs_cx_rdpm, &qhs_dcc_cfg, &qhs_display_cfg, &qhs_gpuss_cfg, &qhs_hwkm, &qhs_imem_cfg, &qhs_ipa, &qhs_ipc_router, &qhs_mss_cfg, &qhs_mx_rdpm, &qhs_pcie0_cfg, &qhs_pcie1_cfg, &qhs_pimem_cfg, &qhs_pka_wrapper_cfg, &qhs_pmu_wrapper_cfg, &qhs_qdss_cfg, &qhs_qup0, &qhs_qup1, &qhs_qup2, &qhs_security, &qhs_spss_cfg, &qhs_tcsr, &qhs_tlmm, &qhs_ufs_card_cfg, &qhs_ufs_mem_cfg, &qhs_usb3_0, &qhs_usb3_1, &qhs_venus_cfg, &qhs_vsense_ctrl_cfg, &qns_a1_noc_cfg, &qns_a2_noc_cfg, &qns_ddrss_cfg, &qns_mnoc_cfg, &qns_snoc_cfg, &srvc_cnoc); -DEFINE_QBCM(bcm_cn2, "CN2", false, &qhs_lpass_cfg, &qhs_pdm, &qhs_qspi, &qhs_sdc2, &qhs_sdc4); -DEFINE_QBCM(bcm_co0, "CO0", false, &qns_nsp_gemnoc); -DEFINE_QBCM(bcm_co3, "CO3", false, &qxm_nsp); -DEFINE_QBCM(bcm_mc0, "MC0", true, &ebi); -DEFINE_QBCM(bcm_mm0, "MM0", true, &qns_mem_noc_hf); -DEFINE_QBCM(bcm_mm1, "MM1", false, &qnm_camnoc_hf, &qxm_mdp0, &qxm_mdp1); -DEFINE_QBCM(bcm_mm4, "MM4", false, &qns_mem_noc_sf); -DEFINE_QBCM(bcm_mm5, "MM5", false, &qnm_camnoc_icp, &qnm_camnoc_sf, &qnm_video0, &qnm_video1, &qnm_video_cvp, &qxm_rot); -DEFINE_QBCM(bcm_sh0, "SH0", true, &qns_llcc); -DEFINE_QBCM(bcm_sh2, "SH2", false, &alm_gpu_tcu, &alm_sys_tcu); -DEFINE_QBCM(bcm_sh3, "SH3", false, &qnm_cmpnoc); -DEFINE_QBCM(bcm_sh4, "SH4", false, &chm_apps); -DEFINE_QBCM(bcm_sn0, "SN0", true, &qns_gemnoc_sf); -DEFINE_QBCM(bcm_sn2, "SN2", false, &qns_gemnoc_gc); -DEFINE_QBCM(bcm_sn3, "SN3", false, &qxs_pimem); -DEFINE_QBCM(bcm_sn4, "SN4", false, &xs_qdss_stm); -DEFINE_QBCM(bcm_sn5, "SN5", false, &xm_pcie3_0); -DEFINE_QBCM(bcm_sn6, "SN6", false, &xm_pcie3_1); -DEFINE_QBCM(bcm_sn7, "SN7", false, &qnm_aggre1_noc); -DEFINE_QBCM(bcm_sn8, "SN8", false, &qnm_aggre2_noc); -DEFINE_QBCM(bcm_sn14, "SN14", false, &qns_pcie_mem_noc); -DEFINE_QBCM(bcm_acv_disp, "ACV", false, &ebi_disp); -DEFINE_QBCM(bcm_mc0_disp, "MC0", false, &ebi_disp); -DEFINE_QBCM(bcm_mm0_disp, "MM0", false, &qns_mem_noc_hf_disp); -DEFINE_QBCM(bcm_mm1_disp, "MM1", false, &qxm_mdp0_disp, &qxm_mdp1_disp); -DEFINE_QBCM(bcm_mm4_disp, "MM4", false, &qns_mem_noc_sf_disp); -DEFINE_QBCM(bcm_mm5_disp, "MM5", false, &qxm_rot_disp); -DEFINE_QBCM(bcm_sh0_disp, "SH0", false, &qns_llcc_disp); +static struct qcom_icc_bcm bcm_acv = { + .name = "ACV", + .enable_mask = BIT(3), + .keepalive = false, + .num_nodes = 1, + .nodes = { &ebi }, +}; + +static struct qcom_icc_bcm bcm_ce0 = { + .name = "CE0", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxm_crypto }, +}; + +static struct qcom_icc_bcm bcm_cn0 = { + .name = "CN0", + .keepalive = true, + .num_nodes = 2, + .nodes = { &qnm_gemnoc_cnoc, &qnm_gemnoc_pcie }, +}; + +static struct qcom_icc_bcm bcm_cn1 = { + .name = "CN1", + .keepalive = false, + .num_nodes = 47, + .nodes = { &xm_qdss_dap, + &qhs_ahb2phy0, + &qhs_ahb2phy1, + &qhs_aoss, + &qhs_apss, + &qhs_camera_cfg, + &qhs_clk_ctl, + &qhs_compute_cfg, + &qhs_cpr_cx, + &qhs_cpr_mmcx, + &qhs_cpr_mx, + &qhs_crypto0_cfg, + &qhs_cx_rdpm, + &qhs_dcc_cfg, + &qhs_display_cfg, + &qhs_gpuss_cfg, + &qhs_hwkm, + &qhs_imem_cfg, + &qhs_ipa, + &qhs_ipc_router, + &qhs_mss_cfg, + &qhs_mx_rdpm, + &qhs_pcie0_cfg, + &qhs_pcie1_cfg, + &qhs_pimem_cfg, + &qhs_pka_wrapper_cfg, + &qhs_pmu_wrapper_cfg, + &qhs_qdss_cfg, + &qhs_qup0, + &qhs_qup1, + &qhs_qup2, + &qhs_security, + &qhs_spss_cfg, + &qhs_tcsr, + &qhs_tlmm, + &qhs_ufs_card_cfg, + &qhs_ufs_mem_cfg, + &qhs_usb3_0, + &qhs_usb3_1, + &qhs_venus_cfg, + &qhs_vsense_ctrl_cfg, + &qns_a1_noc_cfg, + &qns_a2_noc_cfg, + &qns_ddrss_cfg, + &qns_mnoc_cfg, + &qns_snoc_cfg, + &srvc_cnoc + }, +}; + +static struct qcom_icc_bcm bcm_cn2 = { + .name = "CN2", + .keepalive = false, + .num_nodes = 5, + .nodes = { &qhs_lpass_cfg, &qhs_pdm, &qhs_qspi, &qhs_sdc2, &qhs_sdc4 }, +}; + +static struct qcom_icc_bcm bcm_co0 = { + .name = "CO0", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_nsp_gemnoc }, +}; + +static struct qcom_icc_bcm bcm_co3 = { + .name = "CO3", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxm_nsp }, +}; + +static struct qcom_icc_bcm bcm_mc0 = { + .name = "MC0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &ebi }, +}; + +static struct qcom_icc_bcm bcm_mm0 = { + .name = "MM0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &qns_mem_noc_hf }, +}; + +static struct qcom_icc_bcm bcm_mm1 = { + .name = "MM1", + .keepalive = false, + .num_nodes = 3, + .nodes = { &qnm_camnoc_hf, &qxm_mdp0, &qxm_mdp1 }, +}; + +static struct qcom_icc_bcm bcm_mm4 = { + .name = "MM4", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_mem_noc_sf }, +}; + +static struct qcom_icc_bcm bcm_mm5 = { + .name = "MM5", + .keepalive = false, + .num_nodes = 6, + .nodes = { &qnm_camnoc_icp, + &qnm_camnoc_sf, + &qnm_video0, + &qnm_video1, + &qnm_video_cvp, + &qxm_rot + }, +}; + +static struct qcom_icc_bcm bcm_sh0 = { + .name = "SH0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &qns_llcc }, +}; + +static struct qcom_icc_bcm bcm_sh2 = { + .name = "SH2", + .keepalive = false, + .num_nodes = 2, + .nodes = { &alm_gpu_tcu, &alm_sys_tcu }, +}; + +static struct qcom_icc_bcm bcm_sh3 = { + .name = "SH3", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_cmpnoc }, +}; + +static struct qcom_icc_bcm bcm_sh4 = { + .name = "SH4", + .keepalive = false, + .num_nodes = 1, + .nodes = { &chm_apps }, +}; + +static struct qcom_icc_bcm bcm_sn0 = { + .name = "SN0", + .keepalive = true, + .num_nodes = 1, + .nodes = { &qns_gemnoc_sf }, +}; + +static struct qcom_icc_bcm bcm_sn2 = { + .name = "SN2", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_gemnoc_gc }, +}; + +static struct qcom_icc_bcm bcm_sn3 = { + .name = "SN3", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxs_pimem }, +}; + +static struct qcom_icc_bcm bcm_sn4 = { + .name = "SN4", + .keepalive = false, + .num_nodes = 1, + .nodes = { &xs_qdss_stm }, +}; + +static struct qcom_icc_bcm bcm_sn5 = { + .name = "SN5", + .keepalive = false, + .num_nodes = 1, + .nodes = { &xm_pcie3_0 }, +}; + +static struct qcom_icc_bcm bcm_sn6 = { + .name = "SN6", + .keepalive = false, + .num_nodes = 1, + .nodes = { &xm_pcie3_1 }, +}; + +static struct qcom_icc_bcm bcm_sn7 = { + .name = "SN7", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_aggre1_noc }, +}; + +static struct qcom_icc_bcm bcm_sn8 = { + .name = "SN8", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qnm_aggre2_noc }, +}; + +static struct qcom_icc_bcm bcm_sn14 = { + .name = "SN14", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_pcie_mem_noc }, +}; + +static struct qcom_icc_bcm bcm_acv_disp = { + .name = "ACV", + .keepalive = false, + .num_nodes = 1, + .nodes = { &ebi_disp }, +}; + +static struct qcom_icc_bcm bcm_mc0_disp = { + .name = "MC0", + .keepalive = false, + .num_nodes = 1, + .nodes = { &ebi_disp }, +}; + +static struct qcom_icc_bcm bcm_mm0_disp = { + .name = "MM0", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_mem_noc_hf_disp }, +}; + +static struct qcom_icc_bcm bcm_mm1_disp = { + .name = "MM1", + .keepalive = false, + .num_nodes = 2, + .nodes = { &qxm_mdp0_disp, &qxm_mdp1_disp }, +}; + +static struct qcom_icc_bcm bcm_mm4_disp = { + .name = "MM4", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_mem_noc_sf_disp }, +}; + +static struct qcom_icc_bcm bcm_mm5_disp = { + .name = "MM5", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qxm_rot_disp }, +}; + +static struct qcom_icc_bcm bcm_sh0_disp = { + .name = "SH0", + .keepalive = false, + .num_nodes = 1, + .nodes = { &qns_llcc_disp }, +}; static struct qcom_icc_bcm * const aggre1_noc_bcms[] = { }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/iommu/intel/dmar.c +++ linux-riscv-6.5.0/drivers/iommu/intel/dmar.c @@ -1522,6 +1522,15 @@ { struct qi_desc desc; + /* + * VT-d spec, section 4.3: + * + * Software is recommended to not submit any Device-TLB invalidation + * requests while address remapping hardware is disabled. + */ + if (!(iommu->gcmd & DMA_GCMD_TE)) + return; + if (mask) { addr |= (1ULL << (VTD_PAGE_SHIFT + mask - 1)) - 1; desc.qw1 = QI_DEV_IOTLB_ADDR(addr) | QI_DEV_IOTLB_SIZE; @@ -1587,6 +1596,15 @@ unsigned long mask = 1UL << (VTD_PAGE_SHIFT + size_order - 1); struct qi_desc desc = {.qw1 = 0, .qw2 = 0, .qw3 = 0}; + /* + * VT-d spec, section 4.3: + * + * Software is recommended to not submit any Device-TLB invalidation + * requests while address remapping hardware is disabled. + */ + if (!(iommu->gcmd & DMA_GCMD_TE)) + return; + desc.qw0 = QI_DEV_EIOTLB_PASID(pasid) | QI_DEV_EIOTLB_SID(sid) | QI_DEV_EIOTLB_QDEP(qdep) | QI_DEIOTLB_TYPE | QI_DEV_IOTLB_PFSID(pfsid); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/iommu/intel/svm.c +++ linux-riscv-6.5.0/drivers/iommu/intel/svm.c @@ -218,6 +218,27 @@ rcu_read_unlock(); } +static void intel_flush_svm_all(struct intel_svm *svm) +{ + struct device_domain_info *info; + struct intel_svm_dev *sdev; + + rcu_read_lock(); + list_for_each_entry_rcu(sdev, &svm->devs, list) { + info = dev_iommu_priv_get(sdev->dev); + + qi_flush_piotlb(sdev->iommu, sdev->did, svm->pasid, 0, -1UL, 0); + if (info->ats_enabled) { + qi_flush_dev_iotlb_pasid(sdev->iommu, sdev->sid, info->pfsid, + svm->pasid, sdev->qdep, + 0, 64 - VTD_PAGE_SHIFT); + quirk_extra_dev_tlb_flush(info, 0, 64 - VTD_PAGE_SHIFT, + svm->pasid, sdev->qdep); + } + } + rcu_read_unlock(); +} + /* Pages have been freed at this point */ static void intel_invalidate_range(struct mmu_notifier *mn, struct mm_struct *mm, @@ -225,6 +246,11 @@ { struct intel_svm *svm = container_of(mn, struct intel_svm, notifier); + if (start == 0 && end == -1UL) { + intel_flush_svm_all(svm); + return; + } + intel_flush_svm_range(svm, start, (end - start + PAGE_SIZE - 1) >> VTD_PAGE_SHIFT, 0); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/iommu/iommufd/io_pagetable.c +++ linux-riscv-6.5.0/drivers/iommu/iommufd/io_pagetable.c @@ -221,6 +221,18 @@ return 0; } +static struct iopt_area *iopt_area_alloc(void) +{ + struct iopt_area *area; + + area = kzalloc(sizeof(*area), GFP_KERNEL_ACCOUNT); + if (!area) + return NULL; + RB_CLEAR_NODE(&area->node.rb); + RB_CLEAR_NODE(&area->pages_node.rb); + return area; +} + static int iopt_alloc_area_pages(struct io_pagetable *iopt, struct list_head *pages_list, unsigned long length, unsigned long *dst_iova, @@ -231,7 +243,7 @@ int rc = 0; list_for_each_entry(elm, pages_list, next) { - elm->area = kzalloc(sizeof(*elm->area), GFP_KERNEL_ACCOUNT); + elm->area = iopt_area_alloc(); if (!elm->area) return -ENOMEM; } @@ -1005,11 +1017,11 @@ iopt_area_start_byte(area, new_start) & (alignment - 1)) return -EINVAL; - lhs = kzalloc(sizeof(*area), GFP_KERNEL_ACCOUNT); + lhs = iopt_area_alloc(); if (!lhs) return -ENOMEM; - rhs = kzalloc(sizeof(*area), GFP_KERNEL_ACCOUNT); + rhs = iopt_area_alloc(); if (!rhs) { rc = -ENOMEM; goto err_free_lhs; @@ -1048,6 +1060,16 @@ if (WARN_ON(rc)) goto err_remove_lhs; + /* + * If the original area has filled a domain, domains_itree has to be + * updated. + */ + if (area->storage_domain) { + interval_tree_remove(&area->pages_node, &pages->domains_itree); + interval_tree_insert(&lhs->pages_node, &pages->domains_itree); + interval_tree_insert(&rhs->pages_node, &pages->domains_itree); + } + lhs->storage_domain = area->storage_domain; lhs->pages = area->pages; rhs->storage_domain = area->storage_domain; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/iommu/iommufd/pages.c +++ linux-riscv-6.5.0/drivers/iommu/iommufd/pages.c @@ -1507,6 +1507,8 @@ area, domain, iopt_area_index(area), iopt_area_last_index(area)); + if (IS_ENABLED(CONFIG_IOMMUFD_TEST)) + WARN_ON(RB_EMPTY_NODE(&area->pages_node.rb)); interval_tree_remove(&area->pages_node, &pages->domains_itree); iopt_area_unfill_domain(area, pages, area->storage_domain); area->storage_domain = NULL; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/iommu/of_iommu.c +++ linux-riscv-6.5.0/drivers/iommu/of_iommu.c @@ -112,16 +112,20 @@ const u32 *id) { const struct iommu_ops *ops = NULL; - struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev); + struct iommu_fwspec *fwspec; int err = NO_IOMMU; if (!master_np) return NULL; + /* Serialise to make dev->iommu stable under our potential fwspec */ + mutex_lock(&iommu_probe_device_lock); + fwspec = dev_iommu_fwspec_get(dev); if (fwspec) { - if (fwspec->ops) + if (fwspec->ops) { + mutex_unlock(&iommu_probe_device_lock); return fwspec->ops; - + } /* In the deferred case, start again from scratch */ iommu_fwspec_free(dev); } @@ -155,6 +159,8 @@ fwspec = dev_iommu_fwspec_get(dev); ops = fwspec->ops; } + mutex_unlock(&iommu_probe_device_lock); + /* * If we have reason to believe the IOMMU driver missed the initial * probe for dev, replay it to get things in order. @@ -191,7 +197,7 @@ 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, + dev_warn(dev, "treating non-direct mapping [%pr] -> [%pap-%pap] as reservation\n", phys, &start, &end); return IOMMU_RESV_RESERVED; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/irqchip/irq-gic-v3-its.c +++ linux-riscv-6.5.0/drivers/irqchip/irq-gic-v3-its.c @@ -2383,12 +2383,12 @@ break; } + if (!shr) + gic_flush_dcache_to_poc(base, PAGE_ORDER_TO_SIZE(order)); + its_write_baser(its, baser, val); tmp = baser->val; - if (its->flags & ITS_FLAGS_FORCE_NON_SHAREABLE) - tmp &= ~GITS_BASER_SHAREABILITY_MASK; - if ((val ^ tmp) & GITS_BASER_SHAREABILITY_MASK) { /* * Shareability didn't stick. Just use @@ -2398,10 +2398,9 @@ * non-cacheable as well. */ shr = tmp & GITS_BASER_SHAREABILITY_MASK; - if (!shr) { + if (!shr) cache = GITS_BASER_nC; - gic_flush_dcache_to_poc(base, PAGE_ORDER_TO_SIZE(order)); - } + goto retry_baser; } @@ -2613,6 +2612,11 @@ /* erratum 24313: ignore memory access type */ cache = GITS_BASER_nCnB; + if (its->flags & ITS_FLAGS_FORCE_NON_SHAREABLE) { + cache = GITS_BASER_nC; + shr = 0; + } + for (i = 0; i < GITS_BASER_NR_REGS; i++) { struct its_baser *baser = its->tables + i; u64 val = its_read_baser(its, baser); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/irqchip/irq-riscv-intc.c +++ linux-riscv-6.5.0/drivers/irqchip/irq-riscv-intc.c @@ -155,8 +155,16 @@ * for each INTC DT node. We only need to do INTC initialization * for the INTC DT node belonging to boot CPU (or boot HART). */ - if (riscv_hartid_to_cpuid(hartid) != smp_processor_id()) + if (riscv_hartid_to_cpuid(hartid) != smp_processor_id()) { + /* + * The INTC nodes of each CPU are suppliers for downstream + * interrupt controllers (such as PLIC, IMSIC and APLIC + * direct-mode) so we should mark an INTC node as initialized + * if we are not creating IRQ domain for it. + */ + fwnode_dev_initialized(of_fwnode_handle(node), true); return 0; + } return riscv_intc_init_common(of_node_to_fwnode(node)); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/irqchip/irq-sifive-plic.c +++ linux-riscv-6.5.0/drivers/irqchip/irq-sifive-plic.c @@ -532,17 +532,18 @@ } /* - * We can have multiple PLIC instances so setup cpuhp state only - * when context handler for current/boot CPU is present. + * We can have multiple PLIC instances so setup cpuhp state + * and register syscore operations only when context handler + * for current/boot CPU is present. */ handler = this_cpu_ptr(&plic_handlers); if (handler->present && !plic_cpuhp_setup_done) { cpuhp_setup_state(CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING, "irqchip/sifive/plic:starting", plic_starting_cpu, plic_dying_cpu); + register_syscore_ops(&plic_irq_syscore_ops); plic_cpuhp_setup_done = true; } - register_syscore_ops(&plic_irq_syscore_ops); pr_info("%pOFP: mapped %d interrupts with %d handlers for" " %d contexts.\n", node, nr_irqs, nr_handlers, nr_contexts); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/irqchip/irq-stm32-exti.c +++ linux-riscv-6.5.0/drivers/irqchip/irq-stm32-exti.c @@ -459,6 +459,7 @@ .map = irq_map_generic_chip, .alloc = stm32_exti_alloc, .free = stm32_exti_free, + .xlate = irq_domain_xlate_twocell, }; static void stm32_irq_ack(struct irq_data *d) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/leds/leds-turris-omnia.c +++ linux-riscv-6.5.0/drivers/leds/leds-turris-omnia.c @@ -2,7 +2,7 @@ /* * CZ.NIC's Turris Omnia LEDs driver * - * 2020 by Marek Behún + * 2020, 2023 by Marek Behún */ #include @@ -41,6 +41,37 @@ struct omnia_led leds[]; }; +static int omnia_cmd_write_u8(const struct i2c_client *client, u8 cmd, u8 val) +{ + u8 buf[2] = { cmd, val }; + + return i2c_master_send(client, buf, sizeof(buf)); +} + +static int omnia_cmd_read_u8(const struct i2c_client *client, u8 cmd) +{ + struct i2c_msg msgs[2]; + u8 reply; + int ret; + + msgs[0].addr = client->addr; + msgs[0].flags = 0; + msgs[0].len = 1; + msgs[0].buf = &cmd; + msgs[1].addr = client->addr; + msgs[1].flags = I2C_M_RD; + msgs[1].len = 1; + msgs[1].buf = &reply; + + ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs)); + if (likely(ret == ARRAY_SIZE(msgs))) + return reply; + else if (ret < 0) + return ret; + else + return -EIO; +} + static int omnia_led_brightness_set_blocking(struct led_classdev *cdev, enum led_brightness brightness) { @@ -64,7 +95,7 @@ if (buf[2] || buf[3] || buf[4]) state |= CMD_LED_STATE_ON; - ret = i2c_smbus_write_byte_data(leds->client, CMD_LED_STATE, state); + ret = omnia_cmd_write_u8(leds->client, CMD_LED_STATE, state); if (ret >= 0 && (state & CMD_LED_STATE_ON)) ret = i2c_master_send(leds->client, buf, 5); @@ -114,9 +145,9 @@ cdev->brightness_set_blocking = omnia_led_brightness_set_blocking; /* put the LED into software mode */ - ret = i2c_smbus_write_byte_data(client, CMD_LED_MODE, - CMD_LED_MODE_LED(led->reg) | - CMD_LED_MODE_USER); + ret = omnia_cmd_write_u8(client, CMD_LED_MODE, + CMD_LED_MODE_LED(led->reg) | + CMD_LED_MODE_USER); if (ret < 0) { dev_err(dev, "Cannot set LED %pOF to software mode: %i\n", np, ret); @@ -124,8 +155,8 @@ } /* disable the LED */ - ret = i2c_smbus_write_byte_data(client, CMD_LED_STATE, - CMD_LED_STATE_LED(led->reg)); + ret = omnia_cmd_write_u8(client, CMD_LED_STATE, + CMD_LED_STATE_LED(led->reg)); if (ret < 0) { dev_err(dev, "Cannot set LED %pOF brightness: %i\n", np, ret); return ret; @@ -156,12 +187,9 @@ char *buf) { struct i2c_client *client = to_i2c_client(dev); - struct omnia_leds *leds = i2c_get_clientdata(client); int ret; - mutex_lock(&leds->lock); - ret = i2c_smbus_read_byte_data(client, CMD_LED_GET_BRIGHTNESS); - mutex_unlock(&leds->lock); + ret = omnia_cmd_read_u8(client, CMD_LED_GET_BRIGHTNESS); if (ret < 0) return ret; @@ -173,7 +201,6 @@ const char *buf, size_t count) { struct i2c_client *client = to_i2c_client(dev); - struct omnia_leds *leds = i2c_get_clientdata(client); unsigned long brightness; int ret; @@ -183,15 +210,9 @@ if (brightness > 100) return -EINVAL; - mutex_lock(&leds->lock); - ret = i2c_smbus_write_byte_data(client, CMD_LED_SET_BRIGHTNESS, - (u8)brightness); - mutex_unlock(&leds->lock); - - if (ret < 0) - return ret; + ret = omnia_cmd_write_u8(client, CMD_LED_SET_BRIGHTNESS, brightness); - return count; + return ret < 0 ? ret : count; } static DEVICE_ATTR_RW(brightness); @@ -246,8 +267,8 @@ u8 buf[5]; /* put all LEDs into default (HW triggered) mode */ - i2c_smbus_write_byte_data(client, CMD_LED_MODE, - CMD_LED_MODE_LED(OMNIA_BOARD_LEDS)); + omnia_cmd_write_u8(client, CMD_LED_MODE, + CMD_LED_MODE_LED(OMNIA_BOARD_LEDS)); /* set all LEDs color to [255, 255, 255] */ buf[0] = CMD_LED_COLOR; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/leds/trigger/ledtrig-cpu.c +++ linux-riscv-6.5.0/drivers/leds/trigger/ledtrig-cpu.c @@ -130,7 +130,7 @@ static int __init ledtrig_cpu_init(void) { - int cpu; + unsigned int cpu; int ret; /* Supports up to 9999 cpu cores */ @@ -152,7 +152,7 @@ if (cpu >= 8) continue; - snprintf(trig->name, MAX_NAME_LEN, "cpu%d", cpu); + snprintf(trig->name, MAX_NAME_LEN, "cpu%u", cpu); led_trigger_register_simple(trig->name, &trig->_trig); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/leds/trigger/ledtrig-netdev.c +++ linux-riscv-6.5.0/drivers/leds/trigger/ledtrig-netdev.c @@ -221,8 +221,16 @@ static int set_device_name(struct led_netdev_data *trigger_data, const char *name, size_t size) { + if (size >= IFNAMSIZ) + return -EINVAL; + cancel_delayed_work_sync(&trigger_data->work); + /* + * Take RTNL lock before trigger_data lock to prevent potential + * deadlock with netdev notifier registration. + */ + rtnl_lock(); mutex_lock(&trigger_data->lock); if (trigger_data->net_dev) { @@ -242,16 +250,14 @@ trigger_data->carrier_link_up = false; trigger_data->link_speed = SPEED_UNKNOWN; trigger_data->duplex = DUPLEX_UNKNOWN; - if (trigger_data->net_dev != NULL) { - rtnl_lock(); + if (trigger_data->net_dev) get_device_state(trigger_data); - rtnl_unlock(); - } trigger_data->last_activity = 0; set_baseline_state(trigger_data); mutex_unlock(&trigger_data->lock); + rtnl_unlock(); return 0; } @@ -263,9 +269,6 @@ struct led_netdev_data *trigger_data = led_trigger_get_drvdata(dev); int ret; - if (size >= IFNAMSIZ) - return -EINVAL; - ret = set_device_name(trigger_data, buf, size); if (ret < 0) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/md/bcache/btree.c +++ linux-riscv-6.5.0/drivers/md/bcache/btree.c @@ -1363,7 +1363,7 @@ memset(new_nodes, 0, sizeof(new_nodes)); closure_init_stack(&cl); - while (nodes < GC_MERGE_NODES && !IS_ERR(r[nodes].b)) + while (nodes < GC_MERGE_NODES && !IS_ERR_OR_NULL(r[nodes].b)) keys += r[nodes++].keys; blocks = btree_default_blocks(b->c) * 2 / 3; @@ -1510,7 +1510,7 @@ bch_keylist_free(&keylist); for (i = 0; i < nodes; i++) - if (!IS_ERR(new_nodes[i])) { + if (!IS_ERR_OR_NULL(new_nodes[i])) { btree_node_free(new_nodes[i]); rw_unlock(true, new_nodes[i]); } @@ -1527,6 +1527,8 @@ return 0; n = btree_node_alloc_replacement(replace, NULL); + if (IS_ERR(n)) + return 0; /* recheck reserve after allocating replacement node */ if (btree_check_reserve(b, NULL)) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/md/bcache/sysfs.c +++ linux-riscv-6.5.0/drivers/md/bcache/sysfs.c @@ -1103,7 +1103,7 @@ sum += INITIAL_PRIO - cached[i]; if (n) - do_div(sum, n); + sum = div64_u64(sum, n); for (i = 0; i < ARRAY_SIZE(q); i++) q[i] = INITIAL_PRIO - cached[n * (i + 1) / only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/md/bcache/writeback.c +++ linux-riscv-6.5.0/drivers/md/bcache/writeback.c @@ -977,24 +977,35 @@ void bch_sectors_dirty_init(struct bcache_device *d) { int i; + struct btree *b = NULL; struct bkey *k = NULL; struct btree_iter iter; struct sectors_dirty_init op; struct cache_set *c = d->c; struct bch_dirty_init_state state; +retry_lock: + b = c->root; + rw_lock(0, b, b->level); + if (b != c->root) { + rw_unlock(0, b); + goto retry_lock; + } + /* Just count root keys if no leaf node */ - rw_lock(0, c->root, c->root->level); if (c->root->level == 0) { bch_btree_op_init(&op.op, -1); op.inode = d->id; op.count = 0; for_each_key_filter(&c->root->keys, - k, &iter, bch_ptr_invalid) + k, &iter, bch_ptr_invalid) { + if (KEY_INODE(k) != op.inode) + continue; sectors_dirty_init_fn(&op.op, c->root, k); + } - rw_unlock(0, c->root); + rw_unlock(0, b); return; } @@ -1014,23 +1025,24 @@ if (atomic_read(&state.enough)) break; + atomic_inc(&state.started); state.infos[i].state = &state; state.infos[i].thread = kthread_run(bch_dirty_init_thread, &state.infos[i], "bch_dirtcnt[%d]", i); if (IS_ERR(state.infos[i].thread)) { pr_err("fails to run thread bch_dirty_init[%d]\n", i); + atomic_dec(&state.started); for (--i; i >= 0; i--) kthread_stop(state.infos[i].thread); goto out; } - atomic_inc(&state.started); } out: /* Must wait for all threads to stop. */ wait_event(state.wait, atomic_read(&state.started) == 0); - rw_unlock(0, c->root); + rw_unlock(0, b); } void bch_cached_dev_writeback_init(struct cached_dev *dc) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/md/dm-bufio.c +++ linux-riscv-6.5.0/drivers/md/dm-bufio.c @@ -254,7 +254,7 @@ typedef enum evict_result (*le_predicate)(struct lru_entry *le, void *context); -static struct lru_entry *lru_evict(struct lru *lru, le_predicate pred, void *context) +static struct lru_entry *lru_evict(struct lru *lru, le_predicate pred, void *context, bool no_sleep) { unsigned long tested = 0; struct list_head *h = lru->cursor; @@ -295,7 +295,8 @@ h = h->next; - cond_resched(); + if (!no_sleep) + cond_resched(); } return NULL; @@ -382,7 +383,10 @@ */ struct buffer_tree { - struct rw_semaphore lock; + union { + struct rw_semaphore lock; + rwlock_t spinlock; + } u; struct rb_root root; } ____cacheline_aligned_in_smp; @@ -393,9 +397,12 @@ * on the locks. */ unsigned int num_locks; + bool no_sleep; struct buffer_tree trees[]; }; +static DEFINE_STATIC_KEY_FALSE(no_sleep_enabled); + static inline unsigned int cache_index(sector_t block, unsigned int num_locks) { return dm_hash_locks_index(block, num_locks); @@ -403,22 +410,34 @@ static inline void cache_read_lock(struct dm_buffer_cache *bc, sector_t block) { - down_read(&bc->trees[cache_index(block, bc->num_locks)].lock); + if (static_branch_unlikely(&no_sleep_enabled) && bc->no_sleep) + read_lock_bh(&bc->trees[cache_index(block, bc->num_locks)].u.spinlock); + else + down_read(&bc->trees[cache_index(block, bc->num_locks)].u.lock); } static inline void cache_read_unlock(struct dm_buffer_cache *bc, sector_t block) { - up_read(&bc->trees[cache_index(block, bc->num_locks)].lock); + if (static_branch_unlikely(&no_sleep_enabled) && bc->no_sleep) + read_unlock_bh(&bc->trees[cache_index(block, bc->num_locks)].u.spinlock); + else + up_read(&bc->trees[cache_index(block, bc->num_locks)].u.lock); } static inline void cache_write_lock(struct dm_buffer_cache *bc, sector_t block) { - down_write(&bc->trees[cache_index(block, bc->num_locks)].lock); + if (static_branch_unlikely(&no_sleep_enabled) && bc->no_sleep) + write_lock_bh(&bc->trees[cache_index(block, bc->num_locks)].u.spinlock); + else + down_write(&bc->trees[cache_index(block, bc->num_locks)].u.lock); } static inline void cache_write_unlock(struct dm_buffer_cache *bc, sector_t block) { - up_write(&bc->trees[cache_index(block, bc->num_locks)].lock); + if (static_branch_unlikely(&no_sleep_enabled) && bc->no_sleep) + write_unlock_bh(&bc->trees[cache_index(block, bc->num_locks)].u.spinlock); + else + up_write(&bc->trees[cache_index(block, bc->num_locks)].u.lock); } /* @@ -442,18 +461,32 @@ static void __lh_lock(struct lock_history *lh, unsigned int index) { - if (lh->write) - down_write(&lh->cache->trees[index].lock); - else - down_read(&lh->cache->trees[index].lock); + if (lh->write) { + if (static_branch_unlikely(&no_sleep_enabled) && lh->cache->no_sleep) + write_lock_bh(&lh->cache->trees[index].u.spinlock); + else + down_write(&lh->cache->trees[index].u.lock); + } else { + if (static_branch_unlikely(&no_sleep_enabled) && lh->cache->no_sleep) + read_lock_bh(&lh->cache->trees[index].u.spinlock); + else + down_read(&lh->cache->trees[index].u.lock); + } } static void __lh_unlock(struct lock_history *lh, unsigned int index) { - if (lh->write) - up_write(&lh->cache->trees[index].lock); - else - up_read(&lh->cache->trees[index].lock); + if (lh->write) { + if (static_branch_unlikely(&no_sleep_enabled) && lh->cache->no_sleep) + write_unlock_bh(&lh->cache->trees[index].u.spinlock); + else + up_write(&lh->cache->trees[index].u.lock); + } else { + if (static_branch_unlikely(&no_sleep_enabled) && lh->cache->no_sleep) + read_unlock_bh(&lh->cache->trees[index].u.spinlock); + else + up_read(&lh->cache->trees[index].u.lock); + } } /* @@ -502,14 +535,18 @@ return le_to_buffer(le); } -static void cache_init(struct dm_buffer_cache *bc, unsigned int num_locks) +static void cache_init(struct dm_buffer_cache *bc, unsigned int num_locks, bool no_sleep) { unsigned int i; bc->num_locks = num_locks; + bc->no_sleep = no_sleep; for (i = 0; i < bc->num_locks; i++) { - init_rwsem(&bc->trees[i].lock); + if (no_sleep) + rwlock_init(&bc->trees[i].u.spinlock); + else + init_rwsem(&bc->trees[i].u.lock); bc->trees[i].root = RB_ROOT; } @@ -648,7 +685,7 @@ struct lru_entry *le; struct dm_buffer *b; - le = lru_evict(&bc->lru[list_mode], __evict_pred, &w); + le = lru_evict(&bc->lru[list_mode], __evict_pred, &w, bc->no_sleep); if (!le) return NULL; @@ -702,7 +739,7 @@ struct evict_wrapper w = {.lh = lh, .pred = pred, .context = context}; while (true) { - le = lru_evict(&bc->lru[old_mode], __evict_pred, &w); + le = lru_evict(&bc->lru[old_mode], __evict_pred, &w, bc->no_sleep); if (!le) break; @@ -915,10 +952,11 @@ { unsigned int i; + BUG_ON(bc->no_sleep); for (i = 0; i < bc->num_locks; i++) { - down_write(&bc->trees[i].lock); + down_write(&bc->trees[i].u.lock); __remove_range(bc, &bc->trees[i].root, begin, end, pred, release); - up_write(&bc->trees[i].lock); + up_write(&bc->trees[i].u.lock); } } @@ -979,8 +1017,6 @@ struct dm_buffer_cache cache; /* must be last member */ }; -static DEFINE_STATIC_KEY_FALSE(no_sleep_enabled); - /*----------------------------------------------------------------*/ #define dm_bufio_in_request() (!!current->bio_list) @@ -1871,7 +1907,8 @@ if (need_submit) submit_io(b, REQ_OP_READ, read_endio); - wait_on_bit_io(&b->state, B_READING, TASK_UNINTERRUPTIBLE); + if (nf != NF_GET) /* we already tested this condition above */ + wait_on_bit_io(&b->state, B_READING, TASK_UNINTERRUPTIBLE); if (b->read_error) { int error = blk_status_to_errno(b->read_error); @@ -2421,7 +2458,7 @@ r = -ENOMEM; goto bad_client; } - cache_init(&c->cache, num_locks); + cache_init(&c->cache, num_locks, (flags & DM_BUFIO_CLIENT_NO_SLEEP) != 0); c->bdev = bdev; c->block_size = block_size; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/md/dm-delay.c +++ linux-riscv-6.5.0/drivers/md/dm-delay.c @@ -31,7 +31,7 @@ struct workqueue_struct *kdelayd_wq; struct work_struct flush_expired_bios; struct list_head delayed_bios; - atomic_t may_delay; + bool may_delay; struct delay_class read; struct delay_class write; @@ -192,7 +192,7 @@ INIT_WORK(&dc->flush_expired_bios, flush_expired_bios); INIT_LIST_HEAD(&dc->delayed_bios); mutex_init(&dc->timer_lock); - atomic_set(&dc->may_delay, 1); + dc->may_delay = true; dc->argc = argc; ret = delay_class_ctr(ti, &dc->read, argv); @@ -247,7 +247,7 @@ struct dm_delay_info *delayed; unsigned long expires = 0; - if (!c->delay || !atomic_read(&dc->may_delay)) + if (!c->delay) return DM_MAPIO_REMAPPED; delayed = dm_per_bio_data(bio, sizeof(struct dm_delay_info)); @@ -256,6 +256,10 @@ delayed->expires = expires = jiffies + msecs_to_jiffies(c->delay); mutex_lock(&delayed_bios_lock); + if (unlikely(!dc->may_delay)) { + mutex_unlock(&delayed_bios_lock); + return DM_MAPIO_REMAPPED; + } c->ops++; list_add_tail(&delayed->list, &dc->delayed_bios); mutex_unlock(&delayed_bios_lock); @@ -269,7 +273,10 @@ { struct delay_c *dc = ti->private; - atomic_set(&dc->may_delay, 0); + mutex_lock(&delayed_bios_lock); + dc->may_delay = false; + mutex_unlock(&delayed_bios_lock); + del_timer_sync(&dc->delay_timer); flush_bios(flush_delayed_bios(dc, 1)); } @@ -278,7 +285,7 @@ { struct delay_c *dc = ti->private; - atomic_set(&dc->may_delay, 1); + dc->may_delay = true; } static int delay_map(struct dm_target *ti, struct bio *bio) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/md/dm-verity-fec.c +++ linux-riscv-6.5.0/drivers/md/dm-verity-fec.c @@ -24,7 +24,8 @@ */ static inline struct dm_verity_fec_io *fec_io(struct dm_verity_io *io) { - return (struct dm_verity_fec_io *) verity_io_digest_end(io->v, io); + return (struct dm_verity_fec_io *) + ((char *)io + io->v->ti->per_io_data_size - sizeof(struct dm_verity_fec_io)); } /* @@ -185,7 +186,7 @@ { if (unlikely(verity_hash(v, verity_io_hash_req(v, io), data, 1 << v->data_dev_block_bits, - verity_io_real_digest(v, io)))) + verity_io_real_digest(v, io), true))) return 0; return memcmp(verity_io_real_digest(v, io), want_digest, @@ -386,7 +387,7 @@ /* Always re-validate the corrected block against the expected hash */ r = verity_hash(v, verity_io_hash_req(v, io), fio->output, 1 << v->data_dev_block_bits, - verity_io_real_digest(v, io)); + verity_io_real_digest(v, io), true); if (unlikely(r < 0)) return r; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/md/dm-verity-target.c +++ linux-riscv-6.5.0/drivers/md/dm-verity-target.c @@ -135,20 +135,21 @@ * Wrapper for crypto_ahash_init, which handles verity salting. */ static int verity_hash_init(struct dm_verity *v, struct ahash_request *req, - struct crypto_wait *wait) + struct crypto_wait *wait, bool may_sleep) { int r; ahash_request_set_tfm(req, v->tfm); - ahash_request_set_callback(req, CRYPTO_TFM_REQ_MAY_SLEEP | - CRYPTO_TFM_REQ_MAY_BACKLOG, - crypto_req_done, (void *)wait); + ahash_request_set_callback(req, + may_sleep ? CRYPTO_TFM_REQ_MAY_SLEEP | CRYPTO_TFM_REQ_MAY_BACKLOG : 0, + crypto_req_done, (void *)wait); crypto_init_wait(wait); r = crypto_wait_req(crypto_ahash_init(req), wait); if (unlikely(r < 0)) { - DMERR("crypto_ahash_init failed: %d", r); + if (r != -ENOMEM) + DMERR("crypto_ahash_init failed: %d", r); return r; } @@ -179,12 +180,12 @@ } int verity_hash(struct dm_verity *v, struct ahash_request *req, - const u8 *data, size_t len, u8 *digest) + const u8 *data, size_t len, u8 *digest, bool may_sleep) { int r; struct crypto_wait wait; - r = verity_hash_init(v, req, &wait); + r = verity_hash_init(v, req, &wait, may_sleep); if (unlikely(r < 0)) goto out; @@ -322,7 +323,7 @@ r = verity_hash(v, verity_io_hash_req(v, io), data, 1 << v->hash_dev_block_bits, - verity_io_real_digest(v, io)); + verity_io_real_digest(v, io), !io->in_tasklet); if (unlikely(r < 0)) goto release_ret_r; @@ -556,7 +557,7 @@ continue; } - r = verity_hash_init(v, req, &wait); + r = verity_hash_init(v, req, &wait, !io->in_tasklet); if (unlikely(r < 0)) return r; @@ -641,7 +642,6 @@ io->in_tasklet = false; - verity_fec_init_io(io); verity_finish_io(io, errno_to_blk_status(verity_verify_io(io))); } @@ -652,7 +652,7 @@ io->in_tasklet = true; err = verity_verify_io(io); - if (err == -EAGAIN) { + if (err == -EAGAIN || err == -ENOMEM) { /* fallback to retrying with work-queue */ INIT_WORK(&io->work, verity_work); queue_work(io->v->verify_wq, &io->work); @@ -667,7 +667,9 @@ struct dm_verity_io *io = bio->bi_private; if (bio->bi_status && - (!verity_fec_is_enabled(io->v) || verity_is_system_shutting_down())) { + (!verity_fec_is_enabled(io->v) || + verity_is_system_shutting_down() || + (bio->bi_opf & REQ_RAHEAD))) { verity_finish_io(io, bio->bi_status); return; } @@ -791,6 +793,8 @@ bio->bi_private = io; io->iter = bio->bi_iter; + verity_fec_init_io(io); + verity_submit_prefetch(v, io); submit_bio_noacct(bio); @@ -1033,7 +1037,7 @@ goto out; r = verity_hash(v, req, zero_data, 1 << v->data_dev_block_bits, - v->zero_digest); + v->zero_digest, true); out: kfree(req); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/md/dm-verity.h +++ linux-riscv-6.5.0/drivers/md/dm-verity.h @@ -115,12 +115,6 @@ return (u8 *)(io + 1) + v->ahash_reqsize + v->digest_size; } -static inline u8 *verity_io_digest_end(struct dm_verity *v, - struct dm_verity_io *io) -{ - return verity_io_want_digest(v, io) + v->digest_size; -} - extern int verity_for_bv_block(struct dm_verity *v, struct dm_verity_io *io, struct bvec_iter *iter, int (*process)(struct dm_verity *v, @@ -128,7 +122,7 @@ u8 *data, size_t len)); extern int verity_hash(struct dm_verity *v, struct ahash_request *req, - const u8 *data, size_t len, u8 *digest); + const u8 *data, size_t len, u8 *digest, bool may_sleep); extern int verity_hash_for_block(struct dm_verity *v, struct dm_verity_io *io, sector_t block, u8 *digest, bool *is_zero); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/cec/platform/Makefile +++ linux-riscv-6.5.0/drivers/media/cec/platform/Makefile @@ -6,7 +6,7 @@ # Please keep it in alphabetic order obj-$(CONFIG_CEC_CROS_EC) += cros-ec/ obj-$(CONFIG_CEC_GPIO) += cec-gpio/ -obj-$(CONFIG_CEC_MESON_AO) += meson/ +obj-y += meson/ obj-$(CONFIG_CEC_SAMSUNG_S5P) += s5p/ obj-$(CONFIG_CEC_SECO) += seco/ obj-$(CONFIG_CEC_STI) += sti/ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/i2c/ccs/ccs-core.c +++ linux-riscv-6.5.0/drivers/media/i2c/ccs/ccs-core.c @@ -3097,7 +3097,7 @@ try_fmt->code = sensor->internal_csi_format->code; try_fmt->field = V4L2_FIELD_NONE; - if (ssd != sensor->pixel_array) + if (ssd == sensor->pixel_array) continue; try_comp = v4l2_subdev_get_try_compose(sd, fh->state, i); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/i2c/ccs/ccs-quirk.h +++ linux-riscv-6.5.0/drivers/media/i2c/ccs/ccs-quirk.h @@ -32,12 +32,10 @@ * @reg: Pointer to the register to access * @value: Register value, set by the caller on write, or * by the quirk on read - * - * @flags: Quirk flags - * * @return: 0 on success, -ENOIOCTLCMD if no register * access may be done by the caller (default read * value is zero), else negative error code on error + * @flags: Quirk flags */ struct ccs_quirk { int (*limits)(struct ccs_sensor *sensor); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/i2c/max9286.c +++ linux-riscv-6.5.0/drivers/media/i2c/max9286.c @@ -1461,7 +1461,6 @@ i2c_mux_mask |= BIT(id); } - of_node_put(node); of_node_put(i2c_mux); /* Parse the endpoints */ @@ -1525,7 +1524,6 @@ priv->source_mask |= BIT(ep.port); priv->nsources++; } - of_node_put(node); of_property_read_u32(dev->of_node, "maxim,bus-width", &priv->bus_width); switch (priv->bus_width) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/i2c/ov8858.c +++ linux-riscv-6.5.0/drivers/media/i2c/ov8858.c @@ -1850,9 +1850,9 @@ } ret = v4l2_fwnode_endpoint_parse(endpoint, &vep); + fwnode_handle_put(endpoint); if (ret) { dev_err(dev, "Failed to parse endpoint: %d\n", ret); - fwnode_handle_put(endpoint); return ret; } @@ -1864,12 +1864,9 @@ default: dev_err(dev, "Unsupported number of data lanes %u\n", ov8858->num_lanes); - fwnode_handle_put(endpoint); return -EINVAL; } - ov8858->subdev.fwnode = endpoint; - return 0; } @@ -1913,7 +1910,7 @@ ret = ov8858_init_ctrls(ov8858); if (ret) - goto err_put_fwnode; + return ret; sd = &ov8858->subdev; sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS; @@ -1964,8 +1961,6 @@ media_entity_cleanup(&sd->entity); err_free_handler: v4l2_ctrl_handler_free(&ov8858->ctrl_handler); -err_put_fwnode: - fwnode_handle_put(ov8858->subdev.fwnode); return ret; } @@ -1978,7 +1973,6 @@ v4l2_async_unregister_subdev(sd); media_entity_cleanup(&sd->entity); v4l2_ctrl_handler_free(&ov8858->ctrl_handler); - fwnode_handle_put(ov8858->subdev.fwnode); pm_runtime_disable(&client->dev); if (!pm_runtime_status_suspended(&client->dev)) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/pci/bt8xx/bttv-driver.c +++ linux-riscv-6.5.0/drivers/media/pci/bt8xx/bttv-driver.c @@ -3830,6 +3830,7 @@ /* free resources */ free_irq(btv->c.pci->irq,btv); + del_timer_sync(&btv->timeout); iounmap(btv->bt848_mmio); release_mem_region(pci_resource_start(btv->c.pci,0), pci_resource_len(btv->c.pci,0)); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/pci/cobalt/cobalt-driver.c +++ linux-riscv-6.5.0/drivers/media/pci/cobalt/cobalt-driver.c @@ -8,6 +8,7 @@ * All rights reserved. */ +#include #include #include #include @@ -210,17 +211,17 @@ pcie_capability_read_word(pci_dev, PCI_EXP_LNKSTA, &stat); cobalt_info("PCIe link capability 0x%08x: %s per lane and %u lanes\n", capa, get_link_speed(capa), - (capa & PCI_EXP_LNKCAP_MLW) >> 4); + FIELD_GET(PCI_EXP_LNKCAP_MLW, capa)); cobalt_info("PCIe link control 0x%04x\n", ctrl); cobalt_info("PCIe link status 0x%04x: %s per lane and %u lanes\n", stat, get_link_speed(stat), - (stat & PCI_EXP_LNKSTA_NLW) >> 4); + FIELD_GET(PCI_EXP_LNKSTA_NLW, stat)); /* Bus */ pcie_capability_read_dword(pci_bus_dev, PCI_EXP_LNKCAP, &capa); cobalt_info("PCIe bus link capability 0x%08x: %s per lane and %u lanes\n", capa, get_link_speed(capa), - (capa & PCI_EXP_LNKCAP_MLW) >> 4); + FIELD_GET(PCI_EXP_LNKCAP_MLW, capa)); /* Slot */ pcie_capability_read_dword(pci_dev, PCI_EXP_SLTCAP, &capa); @@ -239,7 +240,7 @@ if (!pci_is_pcie(pci_dev)) return 0; pcie_capability_read_word(pci_dev, PCI_EXP_LNKSTA, &link); - return (link & PCI_EXP_LNKSTA_NLW) >> 4; + return FIELD_GET(PCI_EXP_LNKSTA_NLW, link); } static unsigned pcie_bus_link_get_lanes(struct cobalt *cobalt) @@ -250,7 +251,7 @@ if (!pci_is_pcie(pci_dev)) return 0; pcie_capability_read_dword(pci_dev, PCI_EXP_LNKCAP, &link); - return (link & PCI_EXP_LNKCAP_MLW) >> 4; + return FIELD_GET(PCI_EXP_LNKCAP_MLW, link); } static void msi_config_show(struct cobalt *cobalt, struct pci_dev *pci_dev) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/platform/amphion/vpu_defs.h +++ linux-riscv-6.5.0/drivers/media/platform/amphion/vpu_defs.h @@ -71,6 +71,7 @@ VPU_MSG_ID_TIMESTAMP_INFO, VPU_MSG_ID_FIRMWARE_XCPT, VPU_MSG_ID_PIC_SKIPPED, + VPU_MSG_ID_DBG_MSG, }; enum VPU_ENC_MEMORY_RESOURSE { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/platform/amphion/vpu_malone.c +++ linux-riscv-6.5.0/drivers/media/platform/amphion/vpu_malone.c @@ -747,6 +747,7 @@ {VPU_MSG_ID_UNSUPPORTED, VID_API_EVENT_UNSUPPORTED_STREAM}, {VPU_MSG_ID_FIRMWARE_XCPT, VID_API_EVENT_FIRMWARE_XCPT}, {VPU_MSG_ID_PIC_SKIPPED, VID_API_EVENT_PIC_SKIPPED}, + {VPU_MSG_ID_DBG_MSG, VID_API_EVENT_DBG_MSG_DEC}, }; static void vpu_malone_pack_fs_alloc(struct vpu_rpc_event *pkt, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/platform/mediatek/jpeg/mtk_jpeg_enc_hw.c +++ linux-riscv-6.5.0/drivers/media/platform/mediatek/jpeg/mtk_jpeg_enc_hw.c @@ -127,6 +127,7 @@ u32 img_stride; u32 mem_stride; u32 i, enc_quality; + u32 nr_enc_quality = ARRAY_SIZE(mtk_jpeg_enc_quality); value = width << 16 | height; writel(value, base + JPEG_ENC_IMG_SIZE); @@ -157,8 +158,8 @@ writel(img_stride, base + JPEG_ENC_IMG_STRIDE); writel(mem_stride, base + JPEG_ENC_STRIDE); - enc_quality = mtk_jpeg_enc_quality[0].hardware_value; - for (i = 0; i < ARRAY_SIZE(mtk_jpeg_enc_quality); i++) { + enc_quality = mtk_jpeg_enc_quality[nr_enc_quality - 1].hardware_value; + for (i = 0; i < nr_enc_quality; i++) { if (ctx->enc_quality <= mtk_jpeg_enc_quality[i].quality_param) { enc_quality = mtk_jpeg_enc_quality[i].hardware_value; break; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c +++ linux-riscv-6.5.0/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c @@ -261,11 +261,11 @@ const struct v4l2_rect *compose; u32 out = 0; + ctx = &path->comps[index]; if (CFG_CHECK(MT8183, p_id)) out = CFG_COMP(MT8183, ctx->param, outputs[0]); compose = path->composes[out]; - ctx = &path->comps[index]; ret = call_op(ctx, config_frame, cmd, compose); if (ret) return ret; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c +++ linux-riscv-6.5.0/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c @@ -1322,6 +1322,20 @@ return false; } +static void mxc_jpeg_set_last_buffer(struct mxc_jpeg_ctx *ctx) +{ + struct vb2_v4l2_buffer *next_dst_buf; + + next_dst_buf = v4l2_m2m_dst_buf_remove(ctx->fh.m2m_ctx); + if (!next_dst_buf) { + ctx->fh.m2m_ctx->is_draining = true; + ctx->fh.m2m_ctx->next_buf_last = true; + return; + } + + v4l2_m2m_last_buffer_done(ctx->fh.m2m_ctx, next_dst_buf); +} + static bool mxc_jpeg_source_change(struct mxc_jpeg_ctx *ctx, struct mxc_jpeg_src_buf *jpeg_src_buf) { @@ -1334,7 +1348,8 @@ q_data_cap = mxc_jpeg_get_q_data(ctx, V4L2_BUF_TYPE_VIDEO_CAPTURE); if (mxc_jpeg_compare_format(q_data_cap->fmt, jpeg_src_buf->fmt)) jpeg_src_buf->fmt = q_data_cap->fmt; - if (q_data_cap->fmt != jpeg_src_buf->fmt || + if (ctx->need_initial_source_change_evt || + q_data_cap->fmt != jpeg_src_buf->fmt || q_data_cap->w != jpeg_src_buf->w || q_data_cap->h != jpeg_src_buf->h) { dev_dbg(dev, "Detected jpeg res=(%dx%d)->(%dx%d), pixfmt=%c%c%c%c\n", @@ -1378,6 +1393,9 @@ mxc_jpeg_sizeimage(q_data_cap); notify_src_chg(ctx); ctx->source_change = 1; + ctx->need_initial_source_change_evt = false; + if (vb2_is_streaming(v4l2_m2m_get_dst_vq(ctx->fh.m2m_ctx))) + mxc_jpeg_set_last_buffer(ctx); } return ctx->source_change ? true : false; @@ -1595,6 +1613,9 @@ for (i = 0; i < *nplanes; i++) sizes[i] = mxc_jpeg_get_plane_size(q_data, i); + if (V4L2_TYPE_IS_OUTPUT(q->type)) + ctx->need_initial_source_change_evt = true; + return 0; } @@ -1638,8 +1659,13 @@ v4l2_m2m_buf_done(vbuf, VB2_BUF_STATE_ERROR); } - if (V4L2_TYPE_IS_OUTPUT(q->type) || !ctx->source_change) - v4l2_m2m_update_stop_streaming_state(ctx->fh.m2m_ctx, q); + v4l2_m2m_update_stop_streaming_state(ctx->fh.m2m_ctx, q); + /* if V4L2_DEC_CMD_STOP is sent before the source change triggered, + * restore the is_draining flag + */ + if (V4L2_TYPE_IS_CAPTURE(q->type) && ctx->source_change && ctx->fh.m2m_ctx->last_src_buf) + ctx->fh.m2m_ctx->is_draining = true; + if (V4L2_TYPE_IS_OUTPUT(q->type) && v4l2_m2m_has_stopped(ctx->fh.m2m_ctx)) { notify_eos(ctx); @@ -1916,7 +1942,7 @@ return -EINVAL; for (i = 0; i < q_data->fmt->mem_planes; i++) { sizeimage = mxc_jpeg_get_plane_size(q_data, i); - if (vb2_plane_size(vb, i) < sizeimage) { + if (!ctx->source_change && vb2_plane_size(vb, i) < sizeimage) { dev_err(dev, "plane %d too small (%lu < %lu)", i, vb2_plane_size(vb, i), sizeimage); return -EINVAL; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h +++ linux-riscv-6.5.0/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h @@ -99,6 +99,7 @@ enum mxc_jpeg_enc_state enc_state; int slot; unsigned int source_change; + bool need_initial_source_change_evt; bool header_parsed; struct v4l2_ctrl_handler ctrl_handler; u8 jpeg_quality; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/platform/qcom/camss/camss-csid-gen2.c +++ linux-riscv-6.5.0/drivers/media/platform/qcom/camss/camss-csid-gen2.c @@ -355,9 +355,6 @@ u8 dt_id = vc; if (tg->enabled) { - /* Config Test Generator */ - vc = 0xa; - /* configure one DT, infinite frames */ val = vc << TPG_VC_CFG0_VC_NUM; val |= INTELEAVING_MODE_ONE_SHOT << TPG_VC_CFG0_LINE_INTERLEAVING_MODE; @@ -370,14 +367,14 @@ writel_relaxed(0x12345678, csid->base + CSID_TPG_LFSR_SEED); - val = input_format->height & 0x1fff << TPG_DT_n_CFG_0_FRAME_HEIGHT; - val |= input_format->width & 0x1fff << TPG_DT_n_CFG_0_FRAME_WIDTH; + val = (input_format->height & 0x1fff) << TPG_DT_n_CFG_0_FRAME_HEIGHT; + val |= (input_format->width & 0x1fff) << TPG_DT_n_CFG_0_FRAME_WIDTH; writel_relaxed(val, csid->base + CSID_TPG_DT_n_CFG_0(0)); val = format->data_type << TPG_DT_n_CFG_1_DATA_TYPE; writel_relaxed(val, csid->base + CSID_TPG_DT_n_CFG_1(0)); - val = tg->mode << TPG_DT_n_CFG_2_PAYLOAD_MODE; + val = (tg->mode - 1) << TPG_DT_n_CFG_2_PAYLOAD_MODE; val |= 0xBE << TPG_DT_n_CFG_2_USER_SPECIFIED_PAYLOAD; val |= format->decode_format << TPG_DT_n_CFG_2_ENCODE_FORMAT; writel_relaxed(val, csid->base + CSID_TPG_DT_n_CFG_2(0)); @@ -449,6 +446,8 @@ writel_relaxed(val, csid->base + CSID_CSI2_RX_CFG0); val = 1 << CSI2_RX_CFG1_PACKET_ECC_CORRECTION_EN; + if (vc > 3) + val |= 1 << CSI2_RX_CFG1_VC_MODE; val |= 1 << CSI2_RX_CFG1_MISR_EN; writel_relaxed(val, csid->base + CSID_CSI2_RX_CFG1); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c +++ linux-riscv-6.5.0/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c @@ -476,7 +476,7 @@ settle_cnt = csiphy_settle_cnt_calc(link_freq, csiphy->timer_clk_rate); - val = is_gen2 ? BIT(7) : CSIPHY_3PH_CMN_CSI_COMMON_CTRL5_CLK_ENABLE; + val = CSIPHY_3PH_CMN_CSI_COMMON_CTRL5_CLK_ENABLE; for (i = 0; i < c->num_data; i++) val |= BIT(c->data[i].pos * 2); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/platform/qcom/camss/camss-vfe-170.c +++ linux-riscv-6.5.0/drivers/media/platform/qcom/camss/camss-vfe-170.c @@ -7,7 +7,6 @@ * Copyright (C) 2020-2021 Linaro Ltd. */ -#include #include #include #include @@ -494,35 +493,20 @@ return 0; } -static int vfe_disable_output(struct vfe_line *line) +static void vfe_disable_output(struct vfe_line *line) { struct vfe_device *vfe = to_vfe(line); struct vfe_output *output = &line->output; unsigned long flags; unsigned int i; - bool done; - int timeout = 0; - - do { - spin_lock_irqsave(&vfe->output_lock, flags); - done = !output->gen2.active_num; - spin_unlock_irqrestore(&vfe->output_lock, flags); - usleep_range(10000, 20000); - - if (timeout++ == 100) { - dev_err(vfe->camss->dev, "VFE idle timeout - resetting\n"); - vfe_reset(vfe); - output->gen2.active_num = 0; - return 0; - } - } while (!done); spin_lock_irqsave(&vfe->output_lock, flags); for (i = 0; i < output->wm_num; i++) vfe_wm_stop(vfe, output->wm_idx[i]); + output->gen2.active_num = 0; spin_unlock_irqrestore(&vfe->output_lock, flags); - return 0; + vfe_reset(vfe); } /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/platform/qcom/camss/camss-vfe-480.c +++ linux-riscv-6.5.0/drivers/media/platform/qcom/camss/camss-vfe-480.c @@ -8,7 +8,6 @@ * Copyright (C) 2021 Jonathan Marek */ -#include #include #include #include @@ -328,35 +327,20 @@ return 0; } -static int vfe_disable_output(struct vfe_line *line) +static void vfe_disable_output(struct vfe_line *line) { struct vfe_device *vfe = to_vfe(line); struct vfe_output *output = &line->output; unsigned long flags; unsigned int i; - bool done; - int timeout = 0; - - do { - spin_lock_irqsave(&vfe->output_lock, flags); - done = !output->gen2.active_num; - spin_unlock_irqrestore(&vfe->output_lock, flags); - usleep_range(10000, 20000); - - if (timeout++ == 100) { - dev_err(vfe->camss->dev, "VFE idle timeout - resetting\n"); - vfe_reset(vfe); - output->gen2.active_num = 0; - return 0; - } - } while (!done); spin_lock_irqsave(&vfe->output_lock, flags); for (i = 0; i < output->wm_num; i++) vfe_wm_stop(vfe, output->wm_idx[i]); + output->gen2.active_num = 0; spin_unlock_irqrestore(&vfe->output_lock, flags); - return 0; + vfe_reset(vfe); } /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/platform/qcom/camss/camss-vfe.c +++ linux-riscv-6.5.0/drivers/media/platform/qcom/camss/camss-vfe.c @@ -535,7 +535,8 @@ struct camss_clock *clock = &vfe->clock[i]; if (!strcmp(clock->name, "vfe0") || - !strcmp(clock->name, "vfe1")) { + !strcmp(clock->name, "vfe1") || + !strcmp(clock->name, "vfe_lite")) { u64 min_rate = 0; unsigned long rate; @@ -611,7 +612,7 @@ } else { ret = vfe_check_clock_rates(vfe); if (ret < 0) - goto error_pm_runtime_get; + goto error_pm_domain; } vfe->power_count++; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/platform/qcom/camss/camss.c +++ linux-riscv-6.5.0/drivers/media/platform/qcom/camss/camss.c @@ -1538,6 +1538,20 @@ return 0; } +static void camss_genpd_cleanup(struct camss *camss) +{ + int i; + + if (camss->genpd_num == 1) + return; + + if (camss->genpd_num > camss->vfe_num) + device_link_del(camss->genpd_link[camss->genpd_num - 1]); + + for (i = 0; i < camss->genpd_num; i++) + dev_pm_domain_detach(camss->genpd[i], true); +} + /* * camss_probe - Probe CAMSS platform device * @pdev: Pointer to CAMSS platform device @@ -1615,25 +1629,23 @@ if (!camss->vfe) return -ENOMEM; - v4l2_async_nf_init(&camss->notifier); - - num_subdevs = camss_of_parse_ports(camss); - if (num_subdevs < 0) { - ret = num_subdevs; - goto err_cleanup; - } - ret = camss_icc_get(camss); if (ret < 0) - goto err_cleanup; + return ret; + + ret = camss_configure_pd(camss); + if (ret < 0) { + dev_err(dev, "Failed to configure power domains: %d\n", ret); + return ret; + } ret = camss_init_subdevices(camss); if (ret < 0) - goto err_cleanup; + goto err_genpd_cleanup; ret = dma_set_mask_and_coherent(dev, 0xffffffff); if (ret) - goto err_cleanup; + goto err_genpd_cleanup; camss->media_dev.dev = camss->dev; strscpy(camss->media_dev.model, "Qualcomm Camera Subsystem", @@ -1645,12 +1657,20 @@ ret = v4l2_device_register(camss->dev, &camss->v4l2_dev); if (ret < 0) { dev_err(dev, "Failed to register V4L2 device: %d\n", ret); - goto err_cleanup; + goto err_genpd_cleanup; + } + + v4l2_async_nf_init(&camss->notifier); + + num_subdevs = camss_of_parse_ports(camss); + if (num_subdevs < 0) { + ret = num_subdevs; + goto err_v4l2_device_unregister; } ret = camss_register_entities(camss); if (ret < 0) - goto err_register_entities; + goto err_v4l2_device_unregister; if (num_subdevs) { camss->notifier.ops = &camss_subdev_notifier_ops; @@ -1679,44 +1699,28 @@ } } - ret = camss_configure_pd(camss); - if (ret < 0) { - dev_err(dev, "Failed to configure power domains: %d\n", ret); - return ret; - } - pm_runtime_enable(dev); return 0; err_register_subdevs: camss_unregister_entities(camss); -err_register_entities: +err_v4l2_device_unregister: v4l2_device_unregister(&camss->v4l2_dev); -err_cleanup: v4l2_async_nf_cleanup(&camss->notifier); +err_genpd_cleanup: + camss_genpd_cleanup(camss); return ret; } void camss_delete(struct camss *camss) { - int i; - v4l2_device_unregister(&camss->v4l2_dev); media_device_unregister(&camss->media_dev); media_device_cleanup(&camss->media_dev); pm_runtime_disable(camss->dev); - - if (camss->genpd_num == 1) - return; - - if (camss->genpd_num > camss->vfe_num) - device_link_del(camss->genpd_link[camss->genpd_num - 1]); - - for (i = 0; i < camss->genpd_num; i++) - dev_pm_domain_detach(camss->genpd[i], true); } /* @@ -1735,6 +1739,8 @@ if (atomic_read(&camss->ref_count) == 0) camss_delete(camss); + + camss_genpd_cleanup(camss); } static const struct of_device_id camss_dt_match[] = { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/platform/qcom/venus/hfi_msgs.c +++ linux-riscv-6.5.0/drivers/media/platform/qcom/venus/hfi_msgs.c @@ -398,7 +398,7 @@ memcpy(&bufreq[idx], buf_req, sizeof(*bufreq)); idx++; - if (idx > HFI_BUFFER_TYPE_MAX) + if (idx >= HFI_BUFFER_TYPE_MAX) return HFI_ERR_SESSION_INVALID_PARAMETER; req_bytes -= sizeof(struct hfi_buffer_requirements); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/platform/qcom/venus/hfi_parser.c +++ linux-riscv-6.5.0/drivers/media/platform/qcom/venus/hfi_parser.c @@ -19,6 +19,9 @@ struct hfi_plat_caps *caps = core->caps, *cap; unsigned long bit; + if (hweight_long(core->dec_codecs) + hweight_long(core->enc_codecs) > MAX_CODEC_NUM) + return; + for_each_set_bit(bit, &core->dec_codecs, MAX_CODEC_NUM) { cap = &caps[core->codecs_count++]; cap->codec = BIT(bit); @@ -86,6 +89,9 @@ { const struct hfi_profile_level *pl = data; + if (cap->num_pl + num >= HFI_MAX_PROFILE_COUNT) + return; + memcpy(&cap->pl[cap->num_pl], pl, num * sizeof(*pl)); cap->num_pl += num; } @@ -111,6 +117,9 @@ { const struct hfi_capability *caps = data; + if (cap->num_caps + num >= MAX_CAP_ENTRIES) + return; + memcpy(&cap->caps[cap->num_caps], caps, num * sizeof(*caps)); cap->num_caps += num; } @@ -137,6 +146,9 @@ { const struct raw_formats *formats = fmts; + if (cap->num_fmts + num_fmts >= MAX_FMT_ENTRIES) + return; + memcpy(&cap->fmts[cap->num_fmts], formats, num_fmts * sizeof(*formats)); cap->num_fmts += num_fmts; } @@ -159,6 +171,9 @@ rawfmts[i].buftype = fmt->buffer_type; i++; + if (i >= MAX_FMT_ENTRIES) + return; + if (pinfo->num_planes > MAX_PLANES) break; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/platform/samsung/s3c-camif/camif-capture.c +++ linux-riscv-6.5.0/drivers/media/platform/samsung/s3c-camif/camif-capture.c @@ -1133,12 +1133,12 @@ ret = vb2_queue_init(q); if (ret) - goto err_vd_rel; + return ret; vp->pad.flags = MEDIA_PAD_FL_SINK; ret = media_entity_pads_init(&vfd->entity, 1, &vp->pad); if (ret) - goto err_vd_rel; + return ret; video_set_drvdata(vfd, vp); @@ -1171,8 +1171,6 @@ v4l2_ctrl_handler_free(&vp->ctrl_handler); err_me_cleanup: media_entity_cleanup(&vfd->entity); -err_vd_rel: - video_device_release(vfd); return ret; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/platform/verisilicon/hantro_drv.c +++ linux-riscv-6.5.0/drivers/media/platform/verisilicon/hantro_drv.c @@ -125,7 +125,8 @@ ctx = v4l2_m2m_get_curr_priv(vpu->m2m_dev); if (ctx) { vpu_err("frame processing timed out!\n"); - ctx->codec_ops->reset(ctx); + if (ctx->codec_ops->reset) + ctx->codec_ops->reset(ctx); hantro_job_finish(vpu, ctx, VB2_BUF_STATE_ERROR); } } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/platform/verisilicon/hantro_postproc.c +++ linux-riscv-6.5.0/drivers/media/platform/verisilicon/hantro_postproc.c @@ -107,7 +107,7 @@ static int down_scale_factor(struct hantro_ctx *ctx) { - if (ctx->src_fmt.width == ctx->dst_fmt.width) + if (ctx->src_fmt.width <= ctx->dst_fmt.width) return 0; return DIV_ROUND_CLOSEST(ctx->src_fmt.width, ctx->dst_fmt.width); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/platform/verisilicon/rockchip_vpu_hw.c +++ linux-riscv-6.5.0/drivers/media/platform/verisilicon/rockchip_vpu_hw.c @@ -648,7 +648,7 @@ }; static const char * const rk3588_vpu981_vpu_clk_names[] = { - "aclk", "hclk", "aclk_vdpu_root", "hclk_vdpu_root" + "aclk", "hclk", }; /* VDPU1/VEPU1 */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/rc/imon.c +++ linux-riscv-6.5.0/drivers/media/rc/imon.c @@ -2427,6 +2427,12 @@ goto fail; } + if (first_if->dev.driver != interface->dev.driver) { + dev_err(&interface->dev, "inconsistent driver matching\n"); + ret = -EINVAL; + goto fail; + } + if (ifnum == 0) { ictx = imon_init_intf0(interface, id); if (!ictx) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/rc/ir-sharp-decoder.c +++ linux-riscv-6.5.0/drivers/media/rc/ir-sharp-decoder.c @@ -15,7 +15,9 @@ #define SHARP_UNIT 40 /* us */ #define SHARP_BIT_PULSE (8 * SHARP_UNIT) /* 320us */ #define SHARP_BIT_0_PERIOD (25 * SHARP_UNIT) /* 1ms (680us space) */ -#define SHARP_BIT_1_PERIOD (50 * SHARP_UNIT) /* 2ms (1680ms space) */ +#define SHARP_BIT_1_PERIOD (50 * SHARP_UNIT) /* 2ms (1680us space) */ +#define SHARP_BIT_0_SPACE (17 * SHARP_UNIT) /* 680us space */ +#define SHARP_BIT_1_SPACE (42 * SHARP_UNIT) /* 1680us space */ #define SHARP_ECHO_SPACE (1000 * SHARP_UNIT) /* 40 ms */ #define SHARP_TRAILER_SPACE (125 * SHARP_UNIT) /* 5 ms (even longer) */ @@ -168,8 +170,8 @@ .header_pulse = 0, .header_space = 0, .bit_pulse = SHARP_BIT_PULSE, - .bit_space[0] = SHARP_BIT_0_PERIOD, - .bit_space[1] = SHARP_BIT_1_PERIOD, + .bit_space[0] = SHARP_BIT_0_SPACE, + .bit_space[1] = SHARP_BIT_1_SPACE, .trailer_pulse = SHARP_BIT_PULSE, .trailer_space = SHARP_ECHO_SPACE, .msb_first = 1, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/rc/lirc_dev.c +++ linux-riscv-6.5.0/drivers/media/rc/lirc_dev.c @@ -276,7 +276,11 @@ if (ret < 0) goto out_kfree_raw; - count = ret; + /* drop trailing space */ + if (!(ret % 2)) + count = ret - 1; + else + count = ret; txbuf = kmalloc_array(count, sizeof(unsigned int), GFP_KERNEL); if (!txbuf) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/test-drivers/vidtv/vidtv_mux.c +++ linux-riscv-6.5.0/drivers/media/test-drivers/vidtv/vidtv_mux.c @@ -504,13 +504,16 @@ m->priv = args->priv; m->network_id = args->network_id; m->network_name = kstrdup(args->network_name, GFP_KERNEL); + if (!m->network_name) + goto free_mux_buf; + m->timing.current_jiffies = get_jiffies_64(); if (args->channels) m->channels = args->channels; else if (vidtv_channels_init(m) < 0) - goto free_mux_buf; + goto free_mux_network_name; /* will alloc data for pmt_sections after initializing pat */ if (vidtv_channel_si_init(m) < 0) @@ -527,6 +530,8 @@ vidtv_channel_si_destroy(m); free_channels: vidtv_channels_destroy(m); +free_mux_network_name: + kfree(m->network_name); free_mux_buf: vfree(m->mux_buf); free_mux: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/test-drivers/vidtv/vidtv_psi.c +++ linux-riscv-6.5.0/drivers/media/test-drivers/vidtv/vidtv_psi.c @@ -301,16 +301,29 @@ desc->service_name_len = service_name_len; - if (service_name && service_name_len) + if (service_name && service_name_len) { desc->service_name = kstrdup(service_name, GFP_KERNEL); + if (!desc->service_name) + goto free_desc; + } desc->provider_name_len = provider_name_len; - if (provider_name && provider_name_len) + if (provider_name && provider_name_len) { desc->provider_name = kstrdup(provider_name, GFP_KERNEL); + if (!desc->provider_name) + goto free_desc_service_name; + } vidtv_psi_desc_chain(head, (struct vidtv_psi_desc *)desc); return desc; + +free_desc_service_name: + if (service_name && service_name_len) + kfree(desc->service_name); +free_desc: + kfree(desc); + return NULL; } struct vidtv_psi_desc_registration @@ -355,8 +368,13 @@ desc->length = network_name_len; - if (network_name && network_name_len) + if (network_name && network_name_len) { desc->network_name = kstrdup(network_name, GFP_KERNEL); + if (!desc->network_name) { + kfree(desc); + return NULL; + } + } vidtv_psi_desc_chain(head, (struct vidtv_psi_desc *)desc); return desc; @@ -442,15 +460,32 @@ iso_language_code = "eng"; desc->iso_language_code = kstrdup(iso_language_code, GFP_KERNEL); + if (!desc->iso_language_code) + goto free_desc; - if (event_name && event_name_len) + if (event_name && event_name_len) { desc->event_name = kstrdup(event_name, GFP_KERNEL); + if (!desc->event_name) + goto free_desc_language_code; + } - if (text && text_len) + if (text && text_len) { desc->text = kstrdup(text, GFP_KERNEL); + if (!desc->text) + goto free_desc_event_name; + } vidtv_psi_desc_chain(head, (struct vidtv_psi_desc *)desc); return desc; + +free_desc_event_name: + if (event_name && event_name_len) + kfree(desc->event_name); +free_desc_language_code: + kfree(desc->iso_language_code); +free_desc: + kfree(desc); + return NULL; } struct vidtv_psi_desc *vidtv_psi_desc_clone(struct vidtv_psi_desc *desc) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/test-drivers/vivid/vivid-rds-gen.c +++ linux-riscv-6.5.0/drivers/media/test-drivers/vivid/vivid-rds-gen.c @@ -145,7 +145,7 @@ rds->ta = alt; rds->ms = true; snprintf(rds->psname, sizeof(rds->psname), "%6d.%1d", - freq / 16, ((freq & 0xf) * 10) / 16); + (freq / 16) % 1000000, (((freq & 0xf) * 10) / 16) % 10); if (alt) strscpy(rds->radiotext, " The Radio Data System can switch between different Radio Texts ", only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/media/usb/gspca/cpia1.c +++ linux-riscv-6.5.0/drivers/media/usb/gspca/cpia1.c @@ -18,6 +18,7 @@ #include #include +#include #include "gspca.h" @@ -1028,6 +1029,8 @@ sd->params.exposure.expMode = 2; sd->exposure_status = EXPOSURE_NORMAL; } + if (sd->params.exposure.gain >= BITS_PER_TYPE(currentexp)) + return -EINVAL; currentexp = currentexp << sd->params.exposure.gain; sd->params.exposure.gain = 0; /* round down current exposure to nearest value */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/memory/tegra/tegra234.c +++ linux-riscv-6.5.0/drivers/memory/tegra/tegra234.c @@ -852,6 +852,10 @@ msg.rx.data = &bwmgr_resp; msg.rx.size = sizeof(bwmgr_resp); + if (pclient->bpmp_id >= TEGRA_ICC_BPMP_CPU_CLUSTER0 && + pclient->bpmp_id <= TEGRA_ICC_BPMP_CPU_CLUSTER2) + msg.flags = TEGRA_BPMP_MESSAGE_RESET; + ret = tegra_bpmp_transfer(mc->bpmp, &msg); if (ret < 0) { dev_err(mc->dev, "BPMP transfer failed: %d\n", ret); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mfd/arizona-spi.c +++ linux-riscv-6.5.0/drivers/mfd/arizona-spi.c @@ -159,6 +159,9 @@ arizona->pdata.micd_ranges = arizona_micd_aosp_ranges; arizona->pdata.num_micd_ranges = ARRAY_SIZE(arizona_micd_aosp_ranges); + /* Use left headphone speaker for HP vs line-out detection */ + arizona->pdata.hpdet_channel = ARIZONA_ACCDET_MODE_HPL; + return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mfd/dln2.c +++ linux-riscv-6.5.0/drivers/mfd/dln2.c @@ -826,7 +826,6 @@ dln2_stop_rx_urbs(dln2); out_free: - usb_put_dev(dln2->usb_dev); dln2_free(dln2); return ret; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mfd/intel-lpss-pci.c +++ linux-riscv-6.5.0/drivers/mfd/intel-lpss-pci.c @@ -561,6 +561,19 @@ { PCI_VDEVICE(INTEL, 0xa3e2), (kernel_ulong_t)&spt_i2c_info }, { PCI_VDEVICE(INTEL, 0xa3e3), (kernel_ulong_t)&spt_i2c_info }, { PCI_VDEVICE(INTEL, 0xa3e6), (kernel_ulong_t)&spt_uart_info }, + /* LNL-M */ + { PCI_VDEVICE(INTEL, 0xa825), (kernel_ulong_t)&bxt_uart_info }, + { PCI_VDEVICE(INTEL, 0xa826), (kernel_ulong_t)&bxt_uart_info }, + { PCI_VDEVICE(INTEL, 0xa827), (kernel_ulong_t)&tgl_info }, + { PCI_VDEVICE(INTEL, 0xa830), (kernel_ulong_t)&tgl_info }, + { PCI_VDEVICE(INTEL, 0xa846), (kernel_ulong_t)&tgl_info }, + { PCI_VDEVICE(INTEL, 0xa850), (kernel_ulong_t)&ehl_i2c_info }, + { PCI_VDEVICE(INTEL, 0xa851), (kernel_ulong_t)&ehl_i2c_info }, + { PCI_VDEVICE(INTEL, 0xa852), (kernel_ulong_t)&bxt_uart_info }, + { PCI_VDEVICE(INTEL, 0xa878), (kernel_ulong_t)&ehl_i2c_info }, + { PCI_VDEVICE(INTEL, 0xa879), (kernel_ulong_t)&ehl_i2c_info }, + { PCI_VDEVICE(INTEL, 0xa87a), (kernel_ulong_t)&ehl_i2c_info }, + { PCI_VDEVICE(INTEL, 0xa87b), (kernel_ulong_t)&ehl_i2c_info }, { } }; MODULE_DEVICE_TABLE(pci, intel_lpss_pci_ids); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mfd/mfd-core.c +++ linux-riscv-6.5.0/drivers/mfd/mfd-core.c @@ -146,6 +146,7 @@ struct platform_device *pdev; struct device_node *np = NULL; struct mfd_of_node_entry *of_entry, *tmp; + bool disabled = false; int ret = -ENOMEM; int platform_id; int r; @@ -183,11 +184,10 @@ if (IS_ENABLED(CONFIG_OF) && parent->of_node && cell->of_compatible) { for_each_child_of_node(parent->of_node, np) { if (of_device_is_compatible(np, cell->of_compatible)) { - /* Ignore 'disabled' devices error free */ + /* Skip 'disabled' devices */ if (!of_device_is_available(np)) { - of_node_put(np); - ret = 0; - goto fail_alias; + disabled = true; + continue; } ret = mfd_match_of_node_to_dev(pdev, np, cell); @@ -197,10 +197,17 @@ if (ret) goto fail_alias; - break; + goto match; } } + if (disabled) { + /* Ignore 'disabled' devices error free */ + ret = 0; + goto fail_alias; + } + +match: if (!pdev->dev.of_node) pr_warn("%s: Failed to locate of_node [id: %d]\n", cell->name, platform_id); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mfd/qcom-spmi-pmic.c +++ linux-riscv-6.5.0/drivers/mfd/qcom-spmi-pmic.c @@ -30,6 +30,8 @@ struct qcom_spmi_pmic pmic; }; +static DEFINE_MUTEX(pmic_spmi_revid_lock); + #define N_USIDS(n) ((void *)n) static const struct of_device_id pmic_spmi_id_table[] = { @@ -76,24 +78,21 @@ * * This only supports PMICs with 1 or 2 USIDs. */ -static struct spmi_device *qcom_pmic_get_base_usid(struct device *dev) +static struct spmi_device *qcom_pmic_get_base_usid(struct spmi_device *sdev, struct qcom_spmi_dev *ctx) { - struct spmi_device *sdev; - struct qcom_spmi_dev *ctx; struct device_node *spmi_bus; - struct device_node *other_usid = NULL; + struct device_node *child; int function_parent_usid, ret; u32 pmic_addr; - sdev = to_spmi_device(dev); - ctx = dev_get_drvdata(&sdev->dev); - /* * Quick return if the function device is already in the base * USID. This will always be hit for PMICs with only 1 USID. */ - if (sdev->usid % ctx->num_usids == 0) + if (sdev->usid % ctx->num_usids == 0) { + get_device(&sdev->dev); return sdev; + } function_parent_usid = sdev->usid; @@ -105,28 +104,61 @@ * device for USID 2. */ spmi_bus = of_get_parent(sdev->dev.of_node); - do { - other_usid = of_get_next_child(spmi_bus, other_usid); - - ret = of_property_read_u32_index(other_usid, "reg", 0, &pmic_addr); - if (ret) - return ERR_PTR(ret); + sdev = ERR_PTR(-ENODATA); + for_each_child_of_node(spmi_bus, child) { + ret = of_property_read_u32_index(child, "reg", 0, &pmic_addr); + if (ret) { + of_node_put(child); + sdev = ERR_PTR(ret); + break; + } - sdev = spmi_device_from_of(other_usid); if (pmic_addr == function_parent_usid - (ctx->num_usids - 1)) { - if (!sdev) + sdev = spmi_device_from_of(child); + if (!sdev) { /* - * If the base USID for this PMIC hasn't probed yet - * but the secondary USID has, then we need to defer - * the function driver so that it will attempt to - * probe again when the base USID is ready. + * If the base USID for this PMIC hasn't been + * registered yet then we need to defer. */ - return ERR_PTR(-EPROBE_DEFER); - return sdev; + sdev = ERR_PTR(-EPROBE_DEFER); + } + of_node_put(child); + break; } - } while (other_usid->sibling); + } + + of_node_put(spmi_bus); + + return sdev; +} + +static int pmic_spmi_get_base_revid(struct spmi_device *sdev, struct qcom_spmi_dev *ctx) +{ + struct qcom_spmi_dev *base_ctx; + struct spmi_device *base; + int ret = 0; + + base = qcom_pmic_get_base_usid(sdev, ctx); + if (IS_ERR(base)) + return PTR_ERR(base); - return ERR_PTR(-ENODATA); + /* + * Copy revid info from base device if it has probed and is still + * bound to its driver. + */ + mutex_lock(&pmic_spmi_revid_lock); + base_ctx = spmi_device_get_drvdata(base); + if (!base_ctx) { + ret = -EPROBE_DEFER; + goto out_unlock; + } + memcpy(&ctx->pmic, &base_ctx->pmic, sizeof(ctx->pmic)); +out_unlock: + mutex_unlock(&pmic_spmi_revid_lock); + + put_device(&base->dev); + + return ret; } static int pmic_spmi_load_revid(struct regmap *map, struct device *dev, @@ -204,11 +236,7 @@ if (!of_match_device(pmic_spmi_id_table, dev->parent)) return ERR_PTR(-EINVAL); - sdev = qcom_pmic_get_base_usid(dev->parent); - - if (IS_ERR(sdev)) - return ERR_CAST(sdev); - + sdev = to_spmi_device(dev->parent); spmi = dev_get_drvdata(&sdev->dev); return &spmi->pmic; @@ -243,16 +271,31 @@ ret = pmic_spmi_load_revid(regmap, &sdev->dev, &ctx->pmic); if (ret < 0) return ret; + } else { + ret = pmic_spmi_get_base_revid(sdev, ctx); + if (ret) + return ret; } + + mutex_lock(&pmic_spmi_revid_lock); spmi_device_set_drvdata(sdev, ctx); + mutex_unlock(&pmic_spmi_revid_lock); return devm_of_platform_populate(&sdev->dev); } +static void pmic_spmi_remove(struct spmi_device *sdev) +{ + mutex_lock(&pmic_spmi_revid_lock); + spmi_device_set_drvdata(sdev, NULL); + mutex_unlock(&pmic_spmi_revid_lock); +} + MODULE_DEVICE_TABLE(of, pmic_spmi_id_table); static struct spmi_driver pmic_spmi_driver = { .probe = pmic_spmi_probe, + .remove = pmic_spmi_remove, .driver = { .name = "pmic-spmi", .of_match_table = pmic_spmi_id_table, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/misc/mei/client.c +++ linux-riscv-6.5.0/drivers/misc/mei/client.c @@ -2011,7 +2011,7 @@ mei_hdr = mei_msg_hdr_init(cb); if (IS_ERR(mei_hdr)) { - rets = -PTR_ERR(mei_hdr); + rets = PTR_ERR(mei_hdr); mei_hdr = NULL; goto err; } @@ -2032,7 +2032,7 @@ hbuf_slots = mei_hbuf_empty_slots(dev); if (hbuf_slots < 0) { - rets = -EOVERFLOW; + buf_len = -EOVERFLOW; goto out; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/misc/pci_endpoint_test.c +++ linux-riscv-6.5.0/drivers/misc/pci_endpoint_test.c @@ -71,6 +71,7 @@ #define PCI_DEVICE_ID_TI_AM654 0xb00c #define PCI_DEVICE_ID_TI_J7200 0xb00f #define PCI_DEVICE_ID_TI_AM64 0xb010 +#define PCI_DEVICE_ID_TI_J721S2 0xb013 #define PCI_DEVICE_ID_LS1088A 0x80c0 #define PCI_DEVICE_ID_IMX8 0x0808 @@ -81,6 +82,7 @@ #define PCI_DEVICE_ID_RENESAS_R8A774B1 0x002b #define PCI_DEVICE_ID_RENESAS_R8A774C0 0x002d #define PCI_DEVICE_ID_RENESAS_R8A774E1 0x0025 +#define PCI_DEVICE_ID_RENESAS_R8A779F0 0x0031 static DEFINE_IDA(pci_endpoint_test_ida); @@ -990,6 +992,9 @@ { PCI_DEVICE(PCI_VENDOR_ID_RENESAS, PCI_DEVICE_ID_RENESAS_R8A774B1),}, { PCI_DEVICE(PCI_VENDOR_ID_RENESAS, PCI_DEVICE_ID_RENESAS_R8A774C0),}, { PCI_DEVICE(PCI_VENDOR_ID_RENESAS, PCI_DEVICE_ID_RENESAS_R8A774E1),}, + { PCI_DEVICE(PCI_VENDOR_ID_RENESAS, PCI_DEVICE_ID_RENESAS_R8A779F0), + .driver_data = (kernel_ulong_t)&default_data, + }, { PCI_DEVICE(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_J721E), .driver_data = (kernel_ulong_t)&j721e_data, }, @@ -999,6 +1004,9 @@ { PCI_DEVICE(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_AM64), .driver_data = (kernel_ulong_t)&j721e_data, }, + { PCI_DEVICE(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_J721S2), + .driver_data = (kernel_ulong_t)&j721e_data, + }, { } }; MODULE_DEVICE_TABLE(pci, pci_endpoint_test_tbl); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/misc/ti-st/st_core.c +++ linux-riscv-6.5.0/drivers/misc/ti-st/st_core.c @@ -15,6 +15,7 @@ #include #include +#include extern void st_kim_recv(void *, const unsigned char *, long); void st_int_recv(void *, const unsigned char *, long); @@ -435,7 +436,7 @@ case ST_LL_AWAKE_TO_ASLEEP: pr_err("ST LL is illegal state(%ld)," "purging received skb.", st_ll_getstate(st_gdata)); - kfree_skb(skb); + dev_kfree_skb_irq(skb); break; case ST_LL_ASLEEP: skb_queue_tail(&st_gdata->tx_waitq, skb); @@ -444,7 +445,7 @@ default: pr_err("ST LL is illegal state(%ld)," "purging received skb.", st_ll_getstate(st_gdata)); - kfree_skb(skb); + dev_kfree_skb_irq(skb); break; } @@ -498,7 +499,7 @@ spin_unlock_irqrestore(&st_data->lock, flags); break; } - kfree_skb(skb); + dev_kfree_skb_irq(skb); spin_unlock_irqrestore(&st_data->lock, flags); } /* if wake-up is set in another context- restart sending */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mmc/core/block.c +++ linux-riscv-6.5.0/drivers/mmc/core/block.c @@ -179,6 +179,7 @@ struct mmc_queue *mq); static void mmc_blk_hsq_req_done(struct mmc_request *mrq); static int mmc_spi_err_check(struct mmc_card *card); +static int mmc_blk_busy_cb(void *cb_data, bool *busy); static struct mmc_blk_data *mmc_blk_get(struct gendisk *disk) { @@ -470,7 +471,7 @@ struct mmc_data data = {}; struct mmc_request mrq = {}; struct scatterlist sg; - bool r1b_resp, use_r1b_resp = false; + bool r1b_resp; unsigned int busy_timeout_ms; int err; unsigned int target_part; @@ -551,8 +552,7 @@ busy_timeout_ms = idata->ic.cmd_timeout_ms ? : MMC_BLK_TIMEOUT_MS; r1b_resp = (cmd.flags & MMC_RSP_R1B) == MMC_RSP_R1B; if (r1b_resp) - use_r1b_resp = mmc_prepare_busy_cmd(card->host, &cmd, - busy_timeout_ms); + mmc_prepare_busy_cmd(card->host, &cmd, busy_timeout_ms); mmc_wait_for_req(card->host, &mrq); memcpy(&idata->ic.response, cmd.resp, sizeof(cmd.resp)); @@ -605,19 +605,28 @@ if (idata->ic.postsleep_min_us) usleep_range(idata->ic.postsleep_min_us, idata->ic.postsleep_max_us); - /* No need to poll when using HW busy detection. */ - if ((card->host->caps & MMC_CAP_WAIT_WHILE_BUSY) && use_r1b_resp) - return 0; - if (mmc_host_is_spi(card->host)) { if (idata->ic.write_flag || r1b_resp || cmd.flags & MMC_RSP_SPI_BUSY) return mmc_spi_err_check(card); return err; } - /* Ensure RPMB/R1B command has completed by polling with CMD13. */ - if (idata->rpmb || r1b_resp) - err = mmc_poll_for_busy(card, busy_timeout_ms, false, - MMC_BUSY_IO); + + /* + * Ensure RPMB, writes and R1B responses are completed by polling with + * CMD13. Note that, usually we don't need to poll when using HW busy + * detection, but here it's needed since some commands may indicate the + * error through the R1 status bits. + */ + if (idata->rpmb || idata->ic.write_flag || r1b_resp) { + struct mmc_blk_busy_data cb_data = { + .card = card, + }; + + err = __mmc_poll_for_busy(card->host, 0, busy_timeout_ms, + &mmc_blk_busy_cb, &cb_data); + + idata->ic.response[0] = cb_data.status; + } return err; } @@ -1481,6 +1490,8 @@ blk_mq_requeue_request(req, true); else __blk_mq_end_request(req, BLK_STS_OK); + } else if (mq->in_recovery) { + blk_mq_requeue_request(req, true); } else { blk_mq_end_request(req, BLK_STS_OK); } @@ -2380,8 +2391,10 @@ } ret = mmc_blk_cqe_issue_flush(mq, req); break; - case REQ_OP_READ: case REQ_OP_WRITE: + card->written_flag = true; + fallthrough; + case REQ_OP_READ: if (host->cqe_enabled) ret = mmc_blk_cqe_issue_rw_rq(mq, req); else only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mmc/core/card.h +++ linux-riscv-6.5.0/drivers/mmc/core/card.h @@ -280,4 +280,8 @@ return c->quirks & MMC_QUIRK_BROKEN_SD_CACHE; } +static inline int mmc_card_broken_cache_flush(const struct mmc_card *c) +{ + return c->quirks & MMC_QUIRK_BROKEN_CACHE_FLUSH; +} #endif only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mmc/core/core.c +++ linux-riscv-6.5.0/drivers/mmc/core/core.c @@ -551,7 +551,9 @@ cmd.flags = MMC_RSP_R1B | MMC_CMD_AC; cmd.flags &= ~MMC_RSP_CRC; /* Ignore CRC */ cmd.busy_timeout = MMC_CQE_RECOVERY_TIMEOUT; - mmc_wait_for_cmd(host, &cmd, 0); + mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); + + mmc_poll_for_busy(host->card, MMC_CQE_RECOVERY_TIMEOUT, true, MMC_BUSY_IO); memset(&cmd, 0, sizeof(cmd)); cmd.opcode = MMC_CMDQ_TASK_MGMT; @@ -559,10 +561,13 @@ cmd.flags = MMC_RSP_R1B | MMC_CMD_AC; cmd.flags &= ~MMC_RSP_CRC; /* Ignore CRC */ cmd.busy_timeout = MMC_CQE_RECOVERY_TIMEOUT; - err = mmc_wait_for_cmd(host, &cmd, 0); + err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); host->cqe_ops->cqe_recovery_finish(host); + if (err) + err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); + mmc_retune_release(host); return err; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mmc/core/mmc.c +++ linux-riscv-6.5.0/drivers/mmc/core/mmc.c @@ -2081,13 +2081,17 @@ { int err = 0; + if (mmc_card_broken_cache_flush(host->card) && !host->card->written_flag) + return 0; + if (_mmc_cache_enabled(host)) { err = mmc_switch(host->card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_FLUSH_CACHE, 1, CACHE_FLUSH_TIMEOUT_MS); if (err) - pr_err("%s: cache flush error %d\n", - mmc_hostname(host), err); + pr_err("%s: cache flush error %d\n", mmc_hostname(host), err); + else + host->card->written_flag = false; } return err; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mmc/core/quirks.h +++ linux-riscv-6.5.0/drivers/mmc/core/quirks.h @@ -110,11 +110,12 @@ MMC_QUIRK_TRIM_BROKEN), /* - * Micron MTFC4GACAJCN-1M advertises TRIM but it does not seems to - * support being used to offload WRITE_ZEROES. + * Micron MTFC4GACAJCN-1M supports TRIM but does not appear to support + * WRITE_ZEROES offloading. It also supports caching, but the cache can + * only be flushed after a write has occurred. */ MMC_FIXUP("Q2J54A", CID_MANFID_MICRON, 0x014e, add_quirk_mmc, - MMC_QUIRK_TRIM_BROKEN), + MMC_QUIRK_TRIM_BROKEN | MMC_QUIRK_BROKEN_CACHE_FLUSH), /* * Kingston EMMC04G-M627 advertises TRIM but it does not seems to only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mmc/core/sdio.c +++ linux-riscv-6.5.0/drivers/mmc/core/sdio.c @@ -1089,8 +1089,14 @@ } err = mmc_sdio_reinit_card(host); } else if (mmc_card_wake_sdio_irq(host)) { - /* We may have switched to 1-bit mode during suspend */ + /* + * We may have switched to 1-bit mode during suspend, + * need to hold retuning, because tuning only supprt + * 4-bit mode or 8 bit mode. + */ + mmc_retune_hold_now(host); err = sdio_enable_4bit_bus(host->card); + mmc_retune_release(host); } if (err) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mmc/host/cqhci-core.c +++ linux-riscv-6.5.0/drivers/mmc/host/cqhci-core.c @@ -942,8 +942,8 @@ ret = cqhci_tasks_cleared(cq_host); if (!ret) - pr_debug("%s: cqhci: Failed to clear tasks\n", - mmc_hostname(mmc)); + pr_warn("%s: cqhci: Failed to clear tasks\n", + mmc_hostname(mmc)); return ret; } @@ -976,7 +976,7 @@ ret = cqhci_halted(cq_host); if (!ret) - pr_debug("%s: cqhci: Failed to halt\n", mmc_hostname(mmc)); + pr_warn("%s: cqhci: Failed to halt\n", mmc_hostname(mmc)); return ret; } @@ -984,10 +984,10 @@ /* * After halting we expect to be able to use the command line. We interpret the * failure to halt to mean the data lines might still be in use (and the upper - * layers will need to send a STOP command), so we set the timeout based on a - * generous command timeout. + * layers will need to send a STOP command), however failing to halt complicates + * the recovery, so set a timeout that would reasonably allow I/O to complete. */ -#define CQHCI_START_HALT_TIMEOUT 5 +#define CQHCI_START_HALT_TIMEOUT 500 static void cqhci_recovery_start(struct mmc_host *mmc) { @@ -1075,28 +1075,28 @@ ok = cqhci_halt(mmc, CQHCI_FINISH_HALT_TIMEOUT); - if (!cqhci_clear_all_tasks(mmc, CQHCI_CLEAR_TIMEOUT)) - ok = false; - /* * The specification contradicts itself, by saying that tasks cannot be * cleared if CQHCI does not halt, but if CQHCI does not halt, it should * be disabled/re-enabled, but not to disable before clearing tasks. * Have a go anyway. */ - if (!ok) { - pr_debug("%s: cqhci: disable / re-enable\n", mmc_hostname(mmc)); - cqcfg = cqhci_readl(cq_host, CQHCI_CFG); - cqcfg &= ~CQHCI_ENABLE; - cqhci_writel(cq_host, cqcfg, CQHCI_CFG); - cqcfg |= CQHCI_ENABLE; - cqhci_writel(cq_host, cqcfg, CQHCI_CFG); - /* Be sure that there are no tasks */ - ok = cqhci_halt(mmc, CQHCI_FINISH_HALT_TIMEOUT); - if (!cqhci_clear_all_tasks(mmc, CQHCI_CLEAR_TIMEOUT)) - ok = false; - WARN_ON(!ok); - } + if (!cqhci_clear_all_tasks(mmc, CQHCI_CLEAR_TIMEOUT)) + ok = false; + + /* Disable to make sure tasks really are cleared */ + cqcfg = cqhci_readl(cq_host, CQHCI_CFG); + cqcfg &= ~CQHCI_ENABLE; + cqhci_writel(cq_host, cqcfg, CQHCI_CFG); + + cqcfg = cqhci_readl(cq_host, CQHCI_CFG); + cqcfg |= CQHCI_ENABLE; + cqhci_writel(cq_host, cqcfg, CQHCI_CFG); + + cqhci_halt(mmc, CQHCI_FINISH_HALT_TIMEOUT); + + if (!ok) + cqhci_clear_all_tasks(mmc, CQHCI_CLEAR_TIMEOUT); cqhci_recover_mrqs(cq_host); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mmc/host/meson-gx-mmc.c +++ linux-riscv-6.5.0/drivers/mmc/host/meson-gx-mmc.c @@ -801,7 +801,6 @@ cmd_cfg |= FIELD_PREP(CMD_CFG_CMD_INDEX_MASK, cmd->opcode); cmd_cfg |= CMD_CFG_OWNER; /* owned by CPU */ - cmd_cfg |= CMD_CFG_ERROR; /* stop in case of error */ meson_mmc_set_response_bits(cmd, &cmd_cfg); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mmc/host/mtk-sd.c +++ linux-riscv-6.5.0/drivers/mmc/host/mtk-sd.c @@ -671,11 +671,11 @@ u32 val; sdr_set_bits(host->base + MSDC_CFG, MSDC_CFG_RST); - readl_poll_timeout(host->base + MSDC_CFG, val, !(val & MSDC_CFG_RST), 0, 0); + readl_poll_timeout_atomic(host->base + MSDC_CFG, val, !(val & MSDC_CFG_RST), 0, 0); sdr_set_bits(host->base + MSDC_FIFOCS, MSDC_FIFOCS_CLR); - readl_poll_timeout(host->base + MSDC_FIFOCS, val, - !(val & MSDC_FIFOCS_CLR), 0, 0); + readl_poll_timeout_atomic(host->base + MSDC_FIFOCS, val, + !(val & MSDC_FIFOCS_CLR), 0, 0); val = readl(host->base + MSDC_INT); writel(val, host->base + MSDC_INT); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mmc/host/sdhci-pci-gli.c +++ linux-riscv-6.5.0/drivers/mmc/host/sdhci-pci-gli.c @@ -25,6 +25,12 @@ #define GLI_9750_WT_EN_ON 0x1 #define GLI_9750_WT_EN_OFF 0x0 +#define PCI_GLI_9750_PM_CTRL 0xFC +#define PCI_GLI_9750_PM_STATE GENMASK(1, 0) + +#define PCI_GLI_9750_CORRERR_MASK 0x214 +#define PCI_GLI_9750_CORRERR_MASK_REPLAY_TIMER_TIMEOUT BIT(12) + #define SDHCI_GLI_9750_CFG2 0x848 #define SDHCI_GLI_9750_CFG2_L1DLY GENMASK(28, 24) #define GLI_9750_CFG2_L1DLY_VALUE 0x1F @@ -149,6 +155,9 @@ #define PCI_GLI_9755_PM_CTRL 0xFC #define PCI_GLI_9755_PM_STATE GENMASK(1, 0) +#define PCI_GLI_9755_CORRERR_MASK 0x214 +#define PCI_GLI_9755_CORRERR_MASK_REPLAY_TIMER_TIMEOUT BIT(12) + #define SDHCI_GLI_9767_GM_BURST_SIZE 0x510 #define SDHCI_GLI_9767_GM_BURST_SIZE_AXI_ALWAYS_SET BIT(8) @@ -536,8 +545,12 @@ static void gl9750_hw_setting(struct sdhci_host *host) { + struct sdhci_pci_slot *slot = sdhci_priv(host); + struct pci_dev *pdev; u32 value; + pdev = slot->chip->pdev; + gl9750_wt_on(host); value = sdhci_readl(host, SDHCI_GLI_9750_CFG2); @@ -547,6 +560,18 @@ GLI_9750_CFG2_L1DLY_VALUE); sdhci_writel(host, value, SDHCI_GLI_9750_CFG2); + /* toggle PM state to allow GL9750 to enter ASPM L1.2 */ + pci_read_config_dword(pdev, PCI_GLI_9750_PM_CTRL, &value); + value |= PCI_GLI_9750_PM_STATE; + pci_write_config_dword(pdev, PCI_GLI_9750_PM_CTRL, value); + value &= ~PCI_GLI_9750_PM_STATE; + pci_write_config_dword(pdev, PCI_GLI_9750_PM_CTRL, value); + + /* mask the replay timer timeout of AER */ + pci_read_config_dword(pdev, PCI_GLI_9750_CORRERR_MASK, &value); + value |= PCI_GLI_9750_CORRERR_MASK_REPLAY_TIMER_TIMEOUT; + pci_write_config_dword(pdev, PCI_GLI_9750_CORRERR_MASK, value); + gl9750_wt_off(host); } @@ -756,6 +781,11 @@ value &= ~PCI_GLI_9755_PM_STATE; pci_write_config_dword(pdev, PCI_GLI_9755_PM_CTRL, value); + /* mask the replay timer timeout of AER */ + pci_read_config_dword(pdev, PCI_GLI_9755_CORRERR_MASK, &value); + value |= PCI_GLI_9755_CORRERR_MASK_REPLAY_TIMER_TIMEOUT; + pci_write_config_dword(pdev, PCI_GLI_9755_CORRERR_MASK, value); + gl9755_wt_off(pdev); } @@ -1144,42 +1174,6 @@ return value; } -#ifdef CONFIG_PM_SLEEP -static int sdhci_pci_gli_resume(struct sdhci_pci_chip *chip) -{ - struct sdhci_pci_slot *slot = chip->slots[0]; - - pci_free_irq_vectors(slot->chip->pdev); - gli_pcie_enable_msi(slot); - - return sdhci_pci_resume_host(chip); -} - -static int sdhci_cqhci_gli_resume(struct sdhci_pci_chip *chip) -{ - struct sdhci_pci_slot *slot = chip->slots[0]; - int ret; - - ret = sdhci_pci_gli_resume(chip); - if (ret) - return ret; - - return cqhci_resume(slot->host->mmc); -} - -static int sdhci_cqhci_gli_suspend(struct sdhci_pci_chip *chip) -{ - struct sdhci_pci_slot *slot = chip->slots[0]; - int ret; - - ret = cqhci_suspend(slot->host->mmc); - if (ret) - return ret; - - return sdhci_suspend_host(slot->host); -} -#endif - static void gl9763e_hs400_enhanced_strobe(struct mmc_host *mmc, struct mmc_ios *ios) { @@ -1195,6 +1189,32 @@ sdhci_writel(host, val, SDHCI_GLI_9763E_HS400_ES_REG); } +static void gl9763e_set_low_power_negotiation(struct sdhci_pci_slot *slot, + bool enable) +{ + struct pci_dev *pdev = slot->chip->pdev; + u32 value; + + pci_read_config_dword(pdev, PCIE_GLI_9763E_VHS, &value); + value &= ~GLI_9763E_VHS_REV; + value |= FIELD_PREP(GLI_9763E_VHS_REV, GLI_9763E_VHS_REV_W); + pci_write_config_dword(pdev, PCIE_GLI_9763E_VHS, value); + + pci_read_config_dword(pdev, PCIE_GLI_9763E_CFG, &value); + + if (enable) + value &= ~GLI_9763E_CFG_LPSN_DIS; + else + value |= GLI_9763E_CFG_LPSN_DIS; + + pci_write_config_dword(pdev, PCIE_GLI_9763E_CFG, value); + + pci_read_config_dword(pdev, PCIE_GLI_9763E_VHS, &value); + value &= ~GLI_9763E_VHS_REV; + value |= FIELD_PREP(GLI_9763E_VHS_REV, GLI_9763E_VHS_REV_R); + pci_write_config_dword(pdev, PCIE_GLI_9763E_VHS, value); +} + static void sdhci_set_gl9763e_signaling(struct sdhci_host *host, unsigned int timing) { @@ -1303,6 +1323,9 @@ if (ret) goto cleanup; + /* Disable LPM negotiation to avoid entering L1 state. */ + gl9763e_set_low_power_negotiation(slot, false); + return 0; cleanup: @@ -1346,31 +1369,6 @@ } #ifdef CONFIG_PM -static void gl9763e_set_low_power_negotiation(struct sdhci_pci_slot *slot, bool enable) -{ - struct pci_dev *pdev = slot->chip->pdev; - u32 value; - - pci_read_config_dword(pdev, PCIE_GLI_9763E_VHS, &value); - value &= ~GLI_9763E_VHS_REV; - value |= FIELD_PREP(GLI_9763E_VHS_REV, GLI_9763E_VHS_REV_W); - pci_write_config_dword(pdev, PCIE_GLI_9763E_VHS, value); - - pci_read_config_dword(pdev, PCIE_GLI_9763E_CFG, &value); - - if (enable) - value &= ~GLI_9763E_CFG_LPSN_DIS; - else - value |= GLI_9763E_CFG_LPSN_DIS; - - pci_write_config_dword(pdev, PCIE_GLI_9763E_CFG, value); - - pci_read_config_dword(pdev, PCIE_GLI_9763E_VHS, &value); - value &= ~GLI_9763E_VHS_REV; - value |= FIELD_PREP(GLI_9763E_VHS_REV, GLI_9763E_VHS_REV_R); - pci_write_config_dword(pdev, PCIE_GLI_9763E_VHS, value); -} - static int gl9763e_runtime_suspend(struct sdhci_pci_chip *chip) { struct sdhci_pci_slot *slot = chip->slots[0]; @@ -1420,6 +1418,70 @@ } #endif +#ifdef CONFIG_PM_SLEEP +static int sdhci_pci_gli_resume(struct sdhci_pci_chip *chip) +{ + struct sdhci_pci_slot *slot = chip->slots[0]; + + pci_free_irq_vectors(slot->chip->pdev); + gli_pcie_enable_msi(slot); + + return sdhci_pci_resume_host(chip); +} + +static int gl9763e_resume(struct sdhci_pci_chip *chip) +{ + struct sdhci_pci_slot *slot = chip->slots[0]; + int ret; + + ret = sdhci_pci_gli_resume(chip); + if (ret) + return ret; + + ret = cqhci_resume(slot->host->mmc); + if (ret) + return ret; + + /* + * Disable LPM negotiation to bring device back in sync + * with its runtime_pm state. + */ + gl9763e_set_low_power_negotiation(slot, false); + + return 0; +} + +static int gl9763e_suspend(struct sdhci_pci_chip *chip) +{ + struct sdhci_pci_slot *slot = chip->slots[0]; + int ret; + + /* + * Certain SoCs can suspend only with the bus in low- + * power state, notably x86 SoCs when using S0ix. + * Re-enable LPM negotiation to allow entering L1 state + * and entering system suspend. + */ + gl9763e_set_low_power_negotiation(slot, true); + + ret = cqhci_suspend(slot->host->mmc); + if (ret) + goto err_suspend; + + ret = sdhci_suspend_host(slot->host); + if (ret) + goto err_suspend_host; + + return 0; + +err_suspend_host: + cqhci_resume(slot->host->mmc); +err_suspend: + gl9763e_set_low_power_negotiation(slot, false); + return ret; +} +#endif + static int gli_probe_slot_gl9763e(struct sdhci_pci_slot *slot) { struct pci_dev *pdev = slot->chip->pdev; @@ -1527,8 +1589,8 @@ .probe_slot = gli_probe_slot_gl9763e, .ops = &sdhci_gl9763e_ops, #ifdef CONFIG_PM_SLEEP - .resume = sdhci_cqhci_gli_resume, - .suspend = sdhci_cqhci_gli_suspend, + .resume = gl9763e_resume, + .suspend = gl9763e_suspend, #endif #ifdef CONFIG_PM .runtime_suspend = gl9763e_runtime_suspend, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mmc/host/sdhci-sprd.c +++ linux-riscv-6.5.0/drivers/mmc/host/sdhci-sprd.c @@ -405,12 +405,33 @@ mmc_request_done(host->mmc, mrq); } +static void sdhci_sprd_set_power(struct sdhci_host *host, unsigned char mode, + unsigned short vdd) +{ + struct mmc_host *mmc = host->mmc; + + switch (mode) { + case MMC_POWER_OFF: + mmc_regulator_set_ocr(host->mmc, mmc->supply.vmmc, 0); + + mmc_regulator_disable_vqmmc(mmc); + break; + case MMC_POWER_ON: + mmc_regulator_enable_vqmmc(mmc); + break; + case MMC_POWER_UP: + mmc_regulator_set_ocr(host->mmc, mmc->supply.vmmc, vdd); + break; + } +} + static struct sdhci_ops sdhci_sprd_ops = { .read_l = sdhci_sprd_readl, .write_l = sdhci_sprd_writel, .write_w = sdhci_sprd_writew, .write_b = sdhci_sprd_writeb, .set_clock = sdhci_sprd_set_clock, + .set_power = sdhci_sprd_set_power, .get_max_clock = sdhci_sprd_get_max_clock, .get_min_clock = sdhci_sprd_get_min_clock, .set_bus_width = sdhci_set_bus_width, @@ -674,6 +695,10 @@ host->caps1 &= ~(SDHCI_SUPPORT_SDR50 | SDHCI_SUPPORT_SDR104 | SDHCI_SUPPORT_DDR50); + ret = mmc_regulator_get_supply(host->mmc); + if (ret) + goto pm_runtime_disable; + ret = sdhci_setup_host(host); if (ret) goto pm_runtime_disable; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mmc/host/sdhci_am654.c +++ linux-riscv-6.5.0/drivers/mmc/host/sdhci_am654.c @@ -598,7 +598,7 @@ return 0; } - for (i = MMC_TIMING_MMC_HS; i <= MMC_TIMING_MMC_HS400; i++) { + for (i = MMC_TIMING_LEGACY; i <= MMC_TIMING_MMC_HS400; i++) { ret = device_property_read_u32(dev, td[i].otap_binding, &sdhci_am654->otap_del_sel[i]); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mmc/host/vub300.c +++ linux-riscv-6.5.0/drivers/mmc/host/vub300.c @@ -2309,6 +2309,7 @@ vub300->read_only = (0x0010 & vub300->system_port_status.port_flags) ? 1 : 0; } else { + retval = -EINVAL; goto error5; } usb_set_intfdata(interface, vub300); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mtd/chips/cfi_cmdset_0001.c +++ linux-riscv-6.5.0/drivers/mtd/chips/cfi_cmdset_0001.c @@ -422,9 +422,25 @@ extra_size = 0; /* Protection Register info */ - if (extp->NumProtectionFields) + if (extp->NumProtectionFields) { + struct cfi_intelext_otpinfo *otp = + (struct cfi_intelext_otpinfo *)&extp->extra[0]; + extra_size += (extp->NumProtectionFields - 1) * - sizeof(struct cfi_intelext_otpinfo); + sizeof(struct cfi_intelext_otpinfo); + + if (extp_size >= sizeof(*extp) + extra_size) { + int i; + + /* Do some byteswapping if necessary */ + for (i = 0; i < extp->NumProtectionFields - 1; i++) { + otp->ProtRegAddr = le32_to_cpu(otp->ProtRegAddr); + otp->FactGroups = le16_to_cpu(otp->FactGroups); + otp->UserGroups = le16_to_cpu(otp->UserGroups); + otp++; + } + } + } } if (extp->MinorVersion >= '1') { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mtd/maps/physmap-core.c +++ linux-riscv-6.5.0/drivers/mtd/maps/physmap-core.c @@ -552,6 +552,17 @@ if (info->probe_type) { info->mtds[i] = do_map_probe(info->probe_type, &info->maps[i]); + + /* Fall back to mapping region as ROM */ + if (!info->mtds[i] && IS_ENABLED(CONFIG_MTD_ROM) && + strcmp(info->probe_type, "map_rom")) { + dev_warn(&dev->dev, + "map_probe() failed for type %s\n", + info->probe_type); + + info->mtds[i] = do_map_probe("map_rom", + &info->maps[i]); + } } else { int j; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mtd/nand/raw/arasan-nand-controller.c +++ linux-riscv-6.5.0/drivers/mtd/nand/raw/arasan-nand-controller.c @@ -515,6 +515,7 @@ struct mtd_info *mtd = nand_to_mtd(chip); unsigned int len = mtd->writesize + (oob_required ? mtd->oobsize : 0); dma_addr_t dma_addr; + u8 status; int ret; struct anfc_op nfc_op = { .pkt_reg = @@ -561,10 +562,21 @@ } /* Spare data is not protected */ - if (oob_required) + if (oob_required) { ret = nand_write_oob_std(chip, page); + if (ret) + return ret; + } + + /* Check write status on the chip side */ + ret = nand_status_op(chip, &status); + if (ret) + return ret; + + if (status & NAND_STATUS_FAIL) + return -EIO; - return ret; + return 0; } static int anfc_sel_write_page_hw_ecc(struct nand_chip *chip, const u8 *buf, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mtd/nand/raw/intel-nand-controller.c +++ linux-riscv-6.5.0/drivers/mtd/nand/raw/intel-nand-controller.c @@ -619,6 +619,11 @@ ebu_host->cs_num = cs; resname = devm_kasprintf(dev, GFP_KERNEL, "nand_cs%d", cs); + if (!resname) { + ret = -ENOMEM; + goto err_of_node_put; + } + ebu_host->cs[cs].chipaddr = devm_platform_ioremap_resource_byname(pdev, resname); if (IS_ERR(ebu_host->cs[cs].chipaddr)) { @@ -655,6 +660,11 @@ } resname = devm_kasprintf(dev, GFP_KERNEL, "addr_sel%d", cs); + if (!resname) { + ret = -ENOMEM; + goto err_cleanup_dma; + } + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, resname); if (!res) { ret = -EINVAL; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mtd/nand/raw/marvell_nand.c +++ linux-riscv-6.5.0/drivers/mtd/nand/raw/marvell_nand.c @@ -1162,6 +1162,7 @@ .ndcb[2] = NDCB2_ADDR5_PAGE(page), }; unsigned int oob_bytes = lt->spare_bytes + (raw ? lt->ecc_bytes : 0); + u8 status; int ret; /* NFCv2 needs more information about the operation being executed */ @@ -1195,7 +1196,18 @@ ret = marvell_nfc_wait_op(chip, PSEC_TO_MSEC(sdr->tPROG_max)); - return ret; + if (ret) + return ret; + + /* Check write status on the chip side */ + ret = nand_status_op(chip, &status); + if (ret) + return ret; + + if (status & NAND_STATUS_FAIL) + return -EIO; + + return 0; } static int marvell_nfc_hw_ecc_hmg_write_page_raw(struct nand_chip *chip, @@ -1624,6 +1636,7 @@ int data_len = lt->data_bytes; int spare_len = lt->spare_bytes; int chunk, ret; + u8 status; marvell_nfc_select_target(chip, chip->cur_cs); @@ -1660,6 +1673,14 @@ if (ret) return ret; + /* Check write status on the chip side */ + ret = nand_status_op(chip, &status); + if (ret) + return ret; + + if (status & NAND_STATUS_FAIL) + return -EIO; + return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mtd/nand/raw/meson_nand.c +++ linux-riscv-6.5.0/drivers/mtd/nand/raw/meson_nand.c @@ -1115,6 +1115,9 @@ init.name = devm_kasprintf(nfc->dev, GFP_KERNEL, "%s#div", dev_name(nfc->dev)); + if (!init.name) + return -ENOMEM; + init.ops = &clk_divider_ops; nfc_divider_parent_data[0].fw_name = "device"; init.parent_data = nfc_divider_parent_data; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mtd/nand/raw/nand_base.c +++ linux-riscv-6.5.0/drivers/mtd/nand/raw/nand_base.c @@ -5109,6 +5109,9 @@ { struct mtd_info *mtd = nand_to_mtd(chip); + if (!chip->parameters.supports_read_cache) + return; + if (chip->read_retries) return; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mtd/nand/raw/nand_jedec.c +++ linux-riscv-6.5.0/drivers/mtd/nand/raw/nand_jedec.c @@ -94,6 +94,9 @@ goto free_jedec_param_page; } + if (p->opt_cmd[0] & JEDEC_OPT_CMD_READ_CACHE) + chip->parameters.supports_read_cache = true; + memorg->pagesize = le32_to_cpu(p->byte_per_page); mtd->writesize = memorg->pagesize; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mtd/nand/raw/nand_onfi.c +++ linux-riscv-6.5.0/drivers/mtd/nand/raw/nand_onfi.c @@ -303,6 +303,9 @@ ONFI_FEATURE_ADDR_TIMING_MODE, 1); } + if (le16_to_cpu(p->opt_cmd) & ONFI_OPT_CMD_READ_CACHE) + chip->parameters.supports_read_cache = true; + onfi = kzalloc(sizeof(*onfi), GFP_KERNEL); if (!onfi) { ret = -ENOMEM; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mtd/nand/raw/pl35x-nand-controller.c +++ linux-riscv-6.5.0/drivers/mtd/nand/raw/pl35x-nand-controller.c @@ -513,6 +513,7 @@ u32 addr1 = 0, addr2 = 0, row; u32 cmd_addr; int i, ret; + u8 status; ret = pl35x_smc_set_ecc_mode(nfc, chip, PL35X_SMC_ECC_CFG_MODE_APB); if (ret) @@ -565,6 +566,14 @@ if (ret) goto disable_ecc_engine; + /* Check write status on the chip side */ + ret = nand_status_op(chip, &status); + if (ret) + goto disable_ecc_engine; + + if (status & NAND_STATUS_FAIL) + ret = -EIO; + disable_ecc_engine: pl35x_smc_set_ecc_mode(nfc, chip, PL35X_SMC_ECC_CFG_MODE_BYPASS); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mtd/nand/raw/qcom_nandc.c +++ linux-riscv-6.5.0/drivers/mtd/nand/raw/qcom_nandc.c @@ -3309,7 +3309,7 @@ err_aon_clk: clk_disable_unprepare(nandc->core_clk); err_core_clk: - dma_unmap_resource(dev, res->start, resource_size(res), + dma_unmap_resource(dev, nandc->base_dma, resource_size(res), DMA_BIDIRECTIONAL, 0); return ret; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mtd/nand/raw/tegra_nand.c +++ linux-riscv-6.5.0/drivers/mtd/nand/raw/tegra_nand.c @@ -1197,6 +1197,10 @@ init_completion(&ctrl->dma_complete); ctrl->irq = platform_get_irq(pdev, 0); + if (ctrl->irq < 0) { + err = ctrl->irq; + goto err_put_pm; + } err = devm_request_irq(&pdev->dev, ctrl->irq, tegra_nand_irq, 0, dev_name(&pdev->dev), ctrl); if (err) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/mtd/nand/spi/micron.c +++ linux-riscv-6.5.0/drivers/mtd/nand/spi/micron.c @@ -12,7 +12,7 @@ #define SPINAND_MFR_MICRON 0x2c -#define MICRON_STATUS_ECC_MASK GENMASK(7, 4) +#define MICRON_STATUS_ECC_MASK GENMASK(6, 4) #define MICRON_STATUS_ECC_NO_BITFLIPS (0 << 4) #define MICRON_STATUS_ECC_1TO3_BITFLIPS (1 << 4) #define MICRON_STATUS_ECC_4TO6_BITFLIPS (3 << 4) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/arcnet/arcdevice.h +++ linux-riscv-6.5.0/drivers/net/arcnet/arcdevice.h @@ -186,6 +186,8 @@ #define ARC_IS_5MBIT 1 /* card default speed is 5MBit */ #define ARC_CAN_10MBIT 2 /* card uses COM20022, supporting 10MBit, but default is 2.5MBit. */ +#define ARC_HAS_LED 4 /* card has software controlled LEDs */ +#define ARC_HAS_ROTARY 8 /* card has rotary encoder */ /* information needed to define an encapsulation driver */ struct ArcProto { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/arcnet/com20020-pci.c +++ linux-riscv-6.5.0/drivers/net/arcnet/com20020-pci.c @@ -213,12 +213,13 @@ if (!strncmp(ci->name, "EAE PLX-PCI FB2", 15)) lp->backplane = 1; - /* Get the dev_id from the PLX rotary coder */ - if (!strncmp(ci->name, "EAE PLX-PCI MA1", 15)) - dev_id_mask = 0x3; - dev->dev_id = (inb(priv->misc + ci->rotary) >> 4) & dev_id_mask; - - snprintf(dev->name, sizeof(dev->name), "arc%d-%d", dev->dev_id, i); + if (ci->flags & ARC_HAS_ROTARY) { + /* Get the dev_id from the PLX rotary coder */ + if (!strncmp(ci->name, "EAE PLX-PCI MA1", 15)) + dev_id_mask = 0x3; + dev->dev_id = (inb(priv->misc + ci->rotary) >> 4) & dev_id_mask; + snprintf(dev->name, sizeof(dev->name), "arc%d-%d", dev->dev_id, i); + } if (arcnet_inb(ioaddr, COM20020_REG_R_STATUS) == 0xFF) { pr_err("IO address %Xh is empty!\n", ioaddr); @@ -230,6 +231,10 @@ goto err_free_arcdev; } + ret = com20020_found(dev, IRQF_SHARED); + if (ret) + goto err_free_arcdev; + card = devm_kzalloc(&pdev->dev, sizeof(struct com20020_dev), GFP_KERNEL); if (!card) { @@ -239,41 +244,39 @@ card->index = i; card->pci_priv = priv; - card->tx_led.brightness_set = led_tx_set; - card->tx_led.default_trigger = devm_kasprintf(&pdev->dev, - GFP_KERNEL, "arc%d-%d-tx", - dev->dev_id, i); - card->tx_led.name = devm_kasprintf(&pdev->dev, GFP_KERNEL, - "pci:green:tx:%d-%d", - dev->dev_id, i); - - card->tx_led.dev = &dev->dev; - card->recon_led.brightness_set = led_recon_set; - card->recon_led.default_trigger = devm_kasprintf(&pdev->dev, - GFP_KERNEL, "arc%d-%d-recon", - dev->dev_id, i); - card->recon_led.name = devm_kasprintf(&pdev->dev, GFP_KERNEL, - "pci:red:recon:%d-%d", - dev->dev_id, i); - card->recon_led.dev = &dev->dev; - card->dev = dev; - - ret = devm_led_classdev_register(&pdev->dev, &card->tx_led); - if (ret) - goto err_free_arcdev; - - ret = devm_led_classdev_register(&pdev->dev, &card->recon_led); - if (ret) - goto err_free_arcdev; - - dev_set_drvdata(&dev->dev, card); - ret = com20020_found(dev, IRQF_SHARED); - if (ret) - goto err_free_arcdev; + if (ci->flags & ARC_HAS_LED) { + card->tx_led.brightness_set = led_tx_set; + card->tx_led.default_trigger = devm_kasprintf(&pdev->dev, + GFP_KERNEL, "arc%d-%d-tx", + dev->dev_id, i); + card->tx_led.name = devm_kasprintf(&pdev->dev, GFP_KERNEL, + "pci:green:tx:%d-%d", + dev->dev_id, i); + + card->tx_led.dev = &dev->dev; + card->recon_led.brightness_set = led_recon_set; + card->recon_led.default_trigger = devm_kasprintf(&pdev->dev, + GFP_KERNEL, "arc%d-%d-recon", + dev->dev_id, i); + card->recon_led.name = devm_kasprintf(&pdev->dev, GFP_KERNEL, + "pci:red:recon:%d-%d", + dev->dev_id, i); + card->recon_led.dev = &dev->dev; + + ret = devm_led_classdev_register(&pdev->dev, &card->tx_led); + if (ret) + goto err_free_arcdev; + + ret = devm_led_classdev_register(&pdev->dev, &card->recon_led); + if (ret) + goto err_free_arcdev; - devm_arcnet_led_init(dev, dev->dev_id, i); + dev_set_drvdata(&dev->dev, card); + devm_arcnet_led_init(dev, dev->dev_id, i); + } + card->dev = dev; list_add(&card->list, &priv->list_dev); continue; @@ -329,7 +332,7 @@ }; static struct com20020_pci_card_info card_info_sohard = { - .name = "PLX-PCI", + .name = "SOHARD SH ARC-PCI", .devcount = 1, /* SOHARD needs PCI base addr 4 */ .chan_map_tbl = { @@ -364,7 +367,7 @@ }, }, .rotary = 0x0, - .flags = ARC_CAN_10MBIT, + .flags = ARC_HAS_ROTARY | ARC_HAS_LED | ARC_CAN_10MBIT, }; static struct com20020_pci_card_info card_info_eae_ma1 = { @@ -396,7 +399,7 @@ }, }, .rotary = 0x0, - .flags = ARC_CAN_10MBIT, + .flags = ARC_HAS_ROTARY | ARC_HAS_LED | ARC_CAN_10MBIT, }; static struct com20020_pci_card_info card_info_eae_fb2 = { @@ -421,7 +424,7 @@ }, }, .rotary = 0x0, - .flags = ARC_CAN_10MBIT, + .flags = ARC_HAS_ROTARY | ARC_HAS_LED | ARC_CAN_10MBIT, }; static const struct pci_device_id com20020pci_id_table[] = { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/bonding/bond_main.c +++ linux-riscv-6.5.0/drivers/net/bonding/bond_main.c @@ -1499,6 +1499,10 @@ static void bond_setup_by_slave(struct net_device *bond_dev, struct net_device *slave_dev) { + bool was_up = !!(bond_dev->flags & IFF_UP); + + dev_close(bond_dev); + bond_dev->header_ops = slave_dev->header_ops; bond_dev->type = slave_dev->type; @@ -1513,6 +1517,8 @@ bond_dev->flags &= ~(IFF_BROADCAST | IFF_MULTICAST); bond_dev->flags |= (IFF_POINTOPOINT | IFF_NOARP); } + if (was_up) + dev_open(bond_dev, NULL); } /* On bonding slaves other than the currently active slave, suppress @@ -4022,7 +4028,7 @@ if (likely(n <= hlen)) return data; else if (skb && likely(pskb_may_pull(skb, n))) - return skb->head; + return skb->data; return NULL; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/can/dev/dev.c +++ linux-riscv-6.5.0/drivers/net/can/dev/dev.c @@ -132,7 +132,8 @@ struct can_frame *cf; int err; - BUG_ON(netif_carrier_ok(dev)); + if (netif_carrier_ok(dev)) + netdev_err(dev, "Attempt to restart for bus-off recovery, but carrier is OK?\n"); /* No synchronization needed because the device is bus-off and * no messages can come in or go out. @@ -153,11 +154,12 @@ priv->can_stats.restarts++; /* Now restart the device */ - err = priv->do_set_mode(dev, CAN_MODE_START); - netif_carrier_on(dev); - if (err) + err = priv->do_set_mode(dev, CAN_MODE_START); + if (err) { netdev_err(dev, "Error %d during restart", err); + netif_carrier_off(dev); + } } static void can_restart_work(struct work_struct *work) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/can/dev/skb.c +++ linux-riscv-6.5.0/drivers/net/can/dev/skb.c @@ -49,7 +49,11 @@ { struct can_priv *priv = netdev_priv(dev); - BUG_ON(idx >= priv->echo_skb_max); + if (idx >= priv->echo_skb_max) { + netdev_err(dev, "%s: BUG! Trying to access can_priv::echo_skb out of bounds (%u/max %u)\n", + __func__, idx, priv->echo_skb_max); + return -EINVAL; + } /* check flag whether this packet has to be looped back */ if (!(dev->flags & IFF_ECHO) || only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/can/flexcan/flexcan-core.c +++ linux-riscv-6.5.0/drivers/net/can/flexcan/flexcan-core.c @@ -348,7 +348,7 @@ static struct flexcan_devtype_data fsl_imx93_devtype_data = { .quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS | FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_USE_RX_MAILBOX | - FLEXCAN_QUIRK_BROKEN_PERR_STATE | FLEXCAN_QUIRK_AUTO_STOP_MODE | + FLEXCAN_QUIRK_BROKEN_PERR_STATE | FLEXCAN_QUIRK_SETUP_STOP_MODE_GPR | FLEXCAN_QUIRK_SUPPORT_FD | FLEXCAN_QUIRK_SUPPORT_ECC | FLEXCAN_QUIRK_SUPPORT_RX_MAILBOX | FLEXCAN_QUIRK_SUPPORT_RX_MAILBOX_RTR, @@ -544,11 +544,6 @@ } else if (priv->devtype_data.quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE_GPR) { regmap_update_bits(priv->stm.gpr, priv->stm.req_gpr, 1 << priv->stm.req_bit, 1 << priv->stm.req_bit); - } else if (priv->devtype_data.quirks & FLEXCAN_QUIRK_AUTO_STOP_MODE) { - /* For the auto stop mode, software do nothing, hardware will cover - * all the operation automatically after system go into low power mode. - */ - return 0; } return flexcan_low_power_enter_ack(priv); @@ -574,12 +569,6 @@ reg_mcr &= ~FLEXCAN_MCR_SLF_WAK; priv->write(reg_mcr, ®s->mcr); - /* For the auto stop mode, hardware will exist stop mode - * automatically after system go out of low power mode. - */ - if (priv->devtype_data.quirks & FLEXCAN_QUIRK_AUTO_STOP_MODE) - return 0; - return flexcan_low_power_exit_ack(priv); } @@ -1994,13 +1983,18 @@ ret = flexcan_setup_stop_mode_scfw(pdev); else if (priv->devtype_data.quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE_GPR) ret = flexcan_setup_stop_mode_gpr(pdev); - else if (priv->devtype_data.quirks & FLEXCAN_QUIRK_AUTO_STOP_MODE) - ret = 0; else /* return 0 directly if doesn't support stop mode feature */ return 0; - if (ret) + /* If ret is -EINVAL, this means SoC claim to support stop mode, but + * dts file lack the stop mode property definition. For this case, + * directly return 0, this will skip the wakeup capable setting and + * will not block the driver probe. + */ + if (ret == -EINVAL) + return 0; + else if (ret) return ret; device_set_wakeup_capable(&pdev->dev, true); @@ -2320,16 +2314,8 @@ if (netif_running(dev)) { int err; - if (device_may_wakeup(device)) { + if (device_may_wakeup(device)) flexcan_enable_wakeup_irq(priv, true); - /* For auto stop mode, need to keep the clock on before - * system go into low power mode. After system go into - * low power mode, hardware will config the flexcan into - * stop mode, and gate off the clock automatically. - */ - if (priv->devtype_data.quirks & FLEXCAN_QUIRK_AUTO_STOP_MODE) - return 0; - } err = pm_runtime_force_suspend(device); if (err) @@ -2347,15 +2333,9 @@ if (netif_running(dev)) { int err; - /* For the wakeup in auto stop mode, no need to gate on the - * clock here, hardware will do this automatically. - */ - if (!(device_may_wakeup(device) && - priv->devtype_data.quirks & FLEXCAN_QUIRK_AUTO_STOP_MODE)) { - err = pm_runtime_force_resume(device); - if (err) - return err; - } + err = pm_runtime_force_resume(device); + if (err) + return err; if (device_may_wakeup(device)) flexcan_enable_wakeup_irq(priv, false); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/can/flexcan/flexcan.h +++ linux-riscv-6.5.0/drivers/net/can/flexcan/flexcan.h @@ -68,8 +68,6 @@ #define FLEXCAN_QUIRK_SUPPORT_RX_MAILBOX_RTR BIT(15) /* Device supports RX via FIFO */ #define FLEXCAN_QUIRK_SUPPORT_RX_FIFO BIT(16) -/* auto enter stop mode to support wakeup */ -#define FLEXCAN_QUIRK_AUTO_STOP_MODE BIT(17) struct flexcan_devtype_data { u32 quirks; /* quirks needed for different IP cores */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/can/usb/etas_es58x/es58x_core.c +++ linux-riscv-6.5.0/drivers/net/can/usb/etas_es58x/es58x_core.c @@ -2230,6 +2230,7 @@ for (ch_idx = 0; ch_idx < es58x_dev->num_can_ch; ch_idx++) { int ret = es58x_init_netdev(es58x_dev, ch_idx); + if (ret) { es58x_free_netdevs(es58x_dev); return ret; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/can/usb/etas_es58x/es58x_core.h +++ linux-riscv-6.5.0/drivers/net/can/usb/etas_es58x/es58x_core.h @@ -378,13 +378,13 @@ /** * struct es58x_hw_revision - Hardware revision number. - * @letter: Revision letter. + * @letter: Revision letter, an alphanumeric character. * @major: Version major number, represented on three digits. * @minor: Version minor number, represented on three digits. * * The hardware revision uses its own format: "axxx/xxx" where 'a' is - * a letter and 'x' a digit. It can be retrieved from the product - * information string. + * an alphanumeric character and 'x' a digit. It can be retrieved from + * the product information string. */ struct es58x_hw_revision { char letter; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/can/usb/etas_es58x/es58x_devlink.c +++ linux-riscv-6.5.0/drivers/net/can/usb/etas_es58x/es58x_devlink.c @@ -125,14 +125,28 @@ * firmware version, the bootloader version and the hardware * revision. * - * If the function fails, simply emit a log message and continue - * because product information is not critical for the driver to - * operate. + * If the function fails, set the version or revision to an invalid + * value and emit an informal message. Continue probing because the + * product information is not critical for the driver to operate. */ void es58x_parse_product_info(struct es58x_device *es58x_dev) { + static const struct es58x_sw_version sw_version_not_set = { + .major = -1, + .minor = -1, + .revision = -1, + }; + static const struct es58x_hw_revision hw_revision_not_set = { + .letter = '\0', + .major = -1, + .minor = -1, + }; char *prod_info; + es58x_dev->firmware_version = sw_version_not_set; + es58x_dev->bootloader_version = sw_version_not_set; + es58x_dev->hardware_revision = hw_revision_not_set; + prod_info = usb_cache_string(es58x_dev->udev, ES58X_PROD_INFO_IDX); if (!prod_info) { dev_warn(es58x_dev->dev, @@ -150,29 +164,36 @@ } /** - * es58x_sw_version_is_set() - Check if the version is a valid number. + * es58x_sw_version_is_valid() - Check if the version is a valid number. * @sw_ver: Version number of either the firmware or the bootloader. * - * If &es58x_sw_version.major, &es58x_sw_version.minor and - * &es58x_sw_version.revision are all zero, the product string could - * not be parsed and the version number is invalid. + * If any of the software version sub-numbers do not fit on two + * digits, the version is invalid, most probably because the product + * string could not be parsed. + * + * Return: @true if the software version is valid, @false otherwise. */ -static inline bool es58x_sw_version_is_set(struct es58x_sw_version *sw_ver) +static inline bool es58x_sw_version_is_valid(struct es58x_sw_version *sw_ver) { - return sw_ver->major || sw_ver->minor || sw_ver->revision; + return sw_ver->major < 100 && sw_ver->minor < 100 && + sw_ver->revision < 100; } /** - * es58x_hw_revision_is_set() - Check if the revision is a valid number. + * es58x_hw_revision_is_valid() - Check if the revision is a valid number. * @hw_rev: Revision number of the hardware. * - * If &es58x_hw_revision.letter is the null character, the product - * string could not be parsed and the hardware revision number is - * invalid. + * If &es58x_hw_revision.letter is not a alphanumeric character or if + * any of the hardware revision sub-numbers do not fit on three + * digits, the revision is invalid, most probably because the product + * string could not be parsed. + * + * Return: @true if the hardware revision is valid, @false otherwise. */ -static inline bool es58x_hw_revision_is_set(struct es58x_hw_revision *hw_rev) +static inline bool es58x_hw_revision_is_valid(struct es58x_hw_revision *hw_rev) { - return hw_rev->letter != '\0'; + return isalnum(hw_rev->letter) && hw_rev->major < 1000 && + hw_rev->minor < 1000; } /** @@ -197,7 +218,7 @@ char buf[max(sizeof("xx.xx.xx"), sizeof("axxx/xxx"))]; int ret = 0; - if (es58x_sw_version_is_set(fw_ver)) { + if (es58x_sw_version_is_valid(fw_ver)) { snprintf(buf, sizeof(buf), "%02u.%02u.%02u", fw_ver->major, fw_ver->minor, fw_ver->revision); ret = devlink_info_version_running_put(req, @@ -207,7 +228,7 @@ return ret; } - if (es58x_sw_version_is_set(bl_ver)) { + if (es58x_sw_version_is_valid(bl_ver)) { snprintf(buf, sizeof(buf), "%02u.%02u.%02u", bl_ver->major, bl_ver->minor, bl_ver->revision); ret = devlink_info_version_running_put(req, @@ -217,7 +238,7 @@ return ret; } - if (es58x_hw_revision_is_set(hw_rev)) { + if (es58x_hw_revision_is_valid(hw_rev)) { snprintf(buf, sizeof(buf), "%c%03u/%03u", hw_rev->letter, hw_rev->major, hw_rev->minor); ret = devlink_info_version_fixed_put(req, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/dsa/bcm_sf2.c +++ linux-riscv-6.5.0/drivers/net/dsa/bcm_sf2.c @@ -617,17 +617,16 @@ dn = of_find_compatible_node(NULL, NULL, "brcm,unimac-mdio"); priv->master_mii_bus = of_mdio_find_bus(dn); if (!priv->master_mii_bus) { - of_node_put(dn); - return -EPROBE_DEFER; + err = -EPROBE_DEFER; + goto err_of_node_put; } - get_device(&priv->master_mii_bus->dev); priv->master_mii_dn = dn; priv->slave_mii_bus = mdiobus_alloc(); if (!priv->slave_mii_bus) { - of_node_put(dn); - return -ENOMEM; + err = -ENOMEM; + goto err_put_master_mii_bus_dev; } priv->slave_mii_bus->priv = priv; @@ -684,11 +683,17 @@ } err = mdiobus_register(priv->slave_mii_bus); - if (err && dn) { - mdiobus_free(priv->slave_mii_bus); - of_node_put(dn); - } + if (err && dn) + goto err_free_slave_mii_bus; + + return 0; +err_free_slave_mii_bus: + mdiobus_free(priv->slave_mii_bus); +err_put_master_mii_bus_dev: + put_device(&priv->master_mii_bus->dev); +err_of_node_put: + of_node_put(dn); return err; } @@ -696,6 +701,7 @@ { mdiobus_unregister(priv->slave_mii_bus); mdiobus_free(priv->slave_mii_bus); + put_device(&priv->master_mii_bus->dev); of_node_put(priv->master_mii_dn); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/dsa/lan9303_mdio.c +++ linux-riscv-6.5.0/drivers/net/dsa/lan9303_mdio.c @@ -32,7 +32,7 @@ struct lan9303_mdio *sw_dev = (struct lan9303_mdio *)ctx; reg <<= 2; /* reg num to offset */ - mutex_lock(&sw_dev->device->bus->mdio_lock); + mutex_lock_nested(&sw_dev->device->bus->mdio_lock, MDIO_MUTEX_NESTED); lan9303_mdio_real_write(sw_dev->device, reg, val & 0xffff); lan9303_mdio_real_write(sw_dev->device, reg + 2, (val >> 16) & 0xffff); mutex_unlock(&sw_dev->device->bus->mdio_lock); @@ -50,7 +50,7 @@ struct lan9303_mdio *sw_dev = (struct lan9303_mdio *)ctx; reg <<= 2; /* reg num to offset */ - mutex_lock(&sw_dev->device->bus->mdio_lock); + mutex_lock_nested(&sw_dev->device->bus->mdio_lock, MDIO_MUTEX_NESTED); *val = lan9303_mdio_real_read(sw_dev->device, reg); *val |= (lan9303_mdio_real_read(sw_dev->device, reg + 2) << 16); mutex_unlock(&sw_dev->device->bus->mdio_lock); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/amd/pds_core/adminq.c +++ linux-riscv-6.5.0/drivers/net/ethernet/amd/pds_core/adminq.c @@ -146,7 +146,7 @@ } queue_work(pdsc->wq, &qcq->work); - pds_core_intr_mask(&pdsc->intr_ctrl[irq], PDS_CORE_INTR_MASK_CLEAR); + pds_core_intr_mask(&pdsc->intr_ctrl[qcq->intx], PDS_CORE_INTR_MASK_CLEAR); return IRQ_HANDLED; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/amd/pds_core/core.h +++ linux-riscv-6.5.0/drivers/net/ethernet/amd/pds_core/core.h @@ -15,7 +15,7 @@ #define PDSC_DRV_DESCRIPTION "AMD/Pensando Core Driver" #define PDSC_WATCHDOG_SECS 5 -#define PDSC_QUEUE_NAME_MAX_SZ 32 +#define PDSC_QUEUE_NAME_MAX_SZ 16 #define PDSC_ADMINQ_MIN_LENGTH 16 /* must be a power of two */ #define PDSC_NOTIFYQ_LENGTH 64 /* must be a power of two */ #define PDSC_TEARDOWN_RECOVERY false only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/amd/xgbe/xgbe-drv.c +++ linux-riscv-6.5.0/drivers/net/ethernet/amd/xgbe/xgbe-drv.c @@ -682,10 +682,24 @@ static void xgbe_service_timer(struct timer_list *t) { struct xgbe_prv_data *pdata = from_timer(pdata, t, service_timer); + struct xgbe_channel *channel; + unsigned int i; queue_work(pdata->dev_workqueue, &pdata->service_work); mod_timer(&pdata->service_timer, jiffies + HZ); + + if (!pdata->tx_usecs) + return; + + for (i = 0; i < pdata->channel_count; i++) { + channel = pdata->channel[i]; + if (!channel->tx_ring || channel->tx_timer_active) + break; + channel->tx_timer_active = 1; + mod_timer(&channel->tx_timer, + jiffies + usecs_to_jiffies(pdata->tx_usecs)); + } } static void xgbe_init_timers(struct xgbe_prv_data *pdata) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c +++ linux-riscv-6.5.0/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c @@ -314,10 +314,15 @@ cmd->base.phy_address = pdata->phy.address; - cmd->base.autoneg = pdata->phy.autoneg; - cmd->base.speed = pdata->phy.speed; - cmd->base.duplex = pdata->phy.duplex; + if (netif_carrier_ok(netdev)) { + cmd->base.speed = pdata->phy.speed; + cmd->base.duplex = pdata->phy.duplex; + } else { + cmd->base.speed = SPEED_UNKNOWN; + cmd->base.duplex = DUPLEX_UNKNOWN; + } + cmd->base.autoneg = pdata->phy.autoneg; cmd->base.port = PORT_NONE; XGBE_LM_COPY(cmd, supported, lks, supported); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c +++ linux-riscv-6.5.0/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c @@ -1193,7 +1193,19 @@ if (pdata->phy.duplex != DUPLEX_FULL) return -EINVAL; - xgbe_set_mode(pdata, mode); + /* Force the mode change for SFI in Fixed PHY config. + * Fixed PHY configs needs PLL to be enabled while doing mode set. + * When the SFP module isn't connected during boot, driver assumes + * AN is ON and attempts autonegotiation. However, if the connected + * SFP comes up in Fixed PHY config, the link will not come up as + * PLL isn't enabled while the initial mode set command is issued. + * So, force the mode change for SFI in Fixed PHY configuration to + * fix link issues. + */ + if (mode == XGBE_MODE_SFI) + xgbe_change_mode(pdata, mode); + else + xgbe_set_mode(pdata, mode); return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/aquantia/atlantic/aq_ptp.c +++ linux-riscv-6.5.0/drivers/net/ethernet/aquantia/atlantic/aq_ptp.c @@ -553,17 +553,17 @@ /* aq_ptp_rx_hwtstamp - utility function which checks for RX time stamp * @adapter: pointer to adapter struct - * @skb: particular skb to send timestamp with + * @shhwtstamps: particular skb_shared_hwtstamps to save timestamp * * if the timestamp is valid, we convert it into the timecounter ns * value, then store that result into the hwtstamps structure which * is passed up the network stack */ -static void aq_ptp_rx_hwtstamp(struct aq_ptp_s *aq_ptp, struct sk_buff *skb, +static void aq_ptp_rx_hwtstamp(struct aq_ptp_s *aq_ptp, struct skb_shared_hwtstamps *shhwtstamps, u64 timestamp) { timestamp -= atomic_read(&aq_ptp->offset_ingress); - aq_ptp_convert_to_hwtstamp(aq_ptp, skb_hwtstamps(skb), timestamp); + aq_ptp_convert_to_hwtstamp(aq_ptp, shhwtstamps, timestamp); } void aq_ptp_hwtstamp_config_get(struct aq_ptp_s *aq_ptp, @@ -639,7 +639,7 @@ &aq_ptp->ptp_rx == ring || &aq_ptp->hwts_rx == ring; } -u16 aq_ptp_extract_ts(struct aq_nic_s *aq_nic, struct sk_buff *skb, u8 *p, +u16 aq_ptp_extract_ts(struct aq_nic_s *aq_nic, struct skb_shared_hwtstamps *shhwtstamps, u8 *p, unsigned int len) { struct aq_ptp_s *aq_ptp = aq_nic->aq_ptp; @@ -648,7 +648,7 @@ p, len, ×tamp); if (ret > 0) - aq_ptp_rx_hwtstamp(aq_ptp, skb, timestamp); + aq_ptp_rx_hwtstamp(aq_ptp, shhwtstamps, timestamp); return ret; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/aquantia/atlantic/aq_ptp.h +++ linux-riscv-6.5.0/drivers/net/ethernet/aquantia/atlantic/aq_ptp.h @@ -67,7 +67,7 @@ /* Return either ring is belong to PTP or not*/ bool aq_ptp_ring(struct aq_nic_s *aq_nic, struct aq_ring_s *ring); -u16 aq_ptp_extract_ts(struct aq_nic_s *aq_nic, struct sk_buff *skb, u8 *p, +u16 aq_ptp_extract_ts(struct aq_nic_s *aq_nic, struct skb_shared_hwtstamps *shhwtstamps, u8 *p, unsigned int len); struct ptp_clock *aq_ptp_get_ptp_clock(struct aq_ptp_s *aq_ptp); @@ -143,7 +143,7 @@ } static inline u16 aq_ptp_extract_ts(struct aq_nic_s *aq_nic, - struct sk_buff *skb, u8 *p, + struct skb_shared_hwtstamps *shhwtstamps, u8 *p, unsigned int len) { return 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/aquantia/atlantic/aq_ring.c +++ linux-riscv-6.5.0/drivers/net/ethernet/aquantia/atlantic/aq_ring.c @@ -647,7 +647,7 @@ } if (is_ptp_ring) buff->len -= - aq_ptp_extract_ts(self->aq_nic, skb, + aq_ptp_extract_ts(self->aq_nic, skb_hwtstamps(skb), aq_buf_vaddr(&buff->rxdata), buff->len); @@ -742,6 +742,8 @@ struct aq_ring_buff_s *buff = &rx_ring->buff_ring[rx_ring->sw_head]; bool is_ptp_ring = aq_ptp_ring(rx_ring->aq_nic, rx_ring); struct aq_ring_buff_s *buff_ = NULL; + u16 ptp_hwtstamp_len = 0; + struct skb_shared_hwtstamps shhwtstamps; struct sk_buff *skb = NULL; unsigned int next_ = 0U; struct xdp_buff xdp; @@ -810,11 +812,12 @@ hard_start = page_address(buff->rxdata.page) + buff->rxdata.pg_off - rx_ring->page_offset; - if (is_ptp_ring) - buff->len -= - aq_ptp_extract_ts(rx_ring->aq_nic, skb, - aq_buf_vaddr(&buff->rxdata), - buff->len); + if (is_ptp_ring) { + ptp_hwtstamp_len = aq_ptp_extract_ts(rx_ring->aq_nic, &shhwtstamps, + aq_buf_vaddr(&buff->rxdata), + buff->len); + buff->len -= ptp_hwtstamp_len; + } xdp_init_buff(&xdp, frame_sz, &rx_ring->xdp_rxq); xdp_prepare_buff(&xdp, hard_start, rx_ring->page_offset, @@ -834,6 +837,9 @@ if (IS_ERR(skb) || !skb) continue; + if (ptp_hwtstamp_len > 0) + *skb_hwtstamps(skb) = shhwtstamps; + if (buff->is_vlan) __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), buff->vlan_rx_tag); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/atheros/atl1c/atl1c.h +++ linux-riscv-6.5.0/drivers/net/ethernet/atheros/atl1c/atl1c.h @@ -504,15 +504,12 @@ u16 next_to_use; u16 next_to_clean; struct napi_struct napi; - struct page *rx_page; - unsigned int rx_page_offset; }; /* board specific private data structure */ struct atl1c_adapter { struct net_device *netdev; struct pci_dev *pdev; - unsigned int rx_frag_size; struct atl1c_hw hw; struct atl1c_hw_stats hw_stats; struct mii_if_info mii; /* MII interface info */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/atheros/atl1c/atl1c_main.c +++ linux-riscv-6.5.0/drivers/net/ethernet/atheros/atl1c/atl1c_main.c @@ -483,15 +483,10 @@ static void atl1c_set_rxbufsize(struct atl1c_adapter *adapter, struct net_device *dev) { - unsigned int head_size; int mtu = dev->mtu; adapter->rx_buffer_len = mtu > AT_RX_BUF_SIZE ? roundup(mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN, 8) : AT_RX_BUF_SIZE; - - head_size = SKB_DATA_ALIGN(adapter->rx_buffer_len + NET_SKB_PAD + NET_IP_ALIGN) + - SKB_DATA_ALIGN(sizeof(struct skb_shared_info)); - adapter->rx_frag_size = roundup_pow_of_two(head_size); } static netdev_features_t atl1c_fix_features(struct net_device *netdev, @@ -964,7 +959,6 @@ static void atl1c_free_ring_resources(struct atl1c_adapter *adapter) { struct pci_dev *pdev = adapter->pdev; - int i; dma_free_coherent(&pdev->dev, adapter->ring_header.size, adapter->ring_header.desc, adapter->ring_header.dma); @@ -977,12 +971,6 @@ kfree(adapter->tpd_ring[0].buffer_info); adapter->tpd_ring[0].buffer_info = NULL; } - for (i = 0; i < adapter->rx_queue_count; ++i) { - if (adapter->rrd_ring[i].rx_page) { - put_page(adapter->rrd_ring[i].rx_page); - adapter->rrd_ring[i].rx_page = NULL; - } - } } /** @@ -1754,48 +1742,11 @@ skb_checksum_none_assert(skb); } -static struct sk_buff *atl1c_alloc_skb(struct atl1c_adapter *adapter, - u32 queue, bool napi_mode) -{ - struct atl1c_rrd_ring *rrd_ring = &adapter->rrd_ring[queue]; - struct sk_buff *skb; - struct page *page; - - if (adapter->rx_frag_size > PAGE_SIZE) { - if (likely(napi_mode)) - return napi_alloc_skb(&rrd_ring->napi, - adapter->rx_buffer_len); - else - return netdev_alloc_skb_ip_align(adapter->netdev, - adapter->rx_buffer_len); - } - - page = rrd_ring->rx_page; - if (!page) { - page = alloc_page(GFP_ATOMIC); - if (unlikely(!page)) - return NULL; - rrd_ring->rx_page = page; - rrd_ring->rx_page_offset = 0; - } - - skb = build_skb(page_address(page) + rrd_ring->rx_page_offset, - adapter->rx_frag_size); - if (likely(skb)) { - skb_reserve(skb, NET_SKB_PAD + NET_IP_ALIGN); - rrd_ring->rx_page_offset += adapter->rx_frag_size; - if (rrd_ring->rx_page_offset >= PAGE_SIZE) - rrd_ring->rx_page = NULL; - else - get_page(page); - } - return skb; -} - static int atl1c_alloc_rx_buffer(struct atl1c_adapter *adapter, u32 queue, bool napi_mode) { struct atl1c_rfd_ring *rfd_ring = &adapter->rfd_ring[queue]; + struct atl1c_rrd_ring *rrd_ring = &adapter->rrd_ring[queue]; struct pci_dev *pdev = adapter->pdev; struct atl1c_buffer *buffer_info, *next_info; struct sk_buff *skb; @@ -1814,13 +1765,27 @@ while (next_info->flags & ATL1C_BUFFER_FREE) { rfd_desc = ATL1C_RFD_DESC(rfd_ring, rfd_next_to_use); - skb = atl1c_alloc_skb(adapter, queue, napi_mode); + /* When DMA RX address is set to something like + * 0x....fc0, it will be very likely to cause DMA + * RFD overflow issue. + * + * To work around it, we apply rx skb with 64 bytes + * longer space, and offset the address whenever + * 0x....fc0 is detected. + */ + if (likely(napi_mode)) + skb = napi_alloc_skb(&rrd_ring->napi, adapter->rx_buffer_len + 64); + else + skb = netdev_alloc_skb(adapter->netdev, adapter->rx_buffer_len + 64); if (unlikely(!skb)) { if (netif_msg_rx_err(adapter)) dev_warn(&pdev->dev, "alloc rx buffer failed\n"); break; } + if (((unsigned long)skb->data & 0xfff) == 0xfc0) + skb_reserve(skb, 64); + /* * Make buffer alignment 2 beyond a 16 byte boundary * this will result in a 16 byte aligned IP header after only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/broadcom/tg3.c +++ linux-riscv-6.5.0/drivers/net/ethernet/broadcom/tg3.c @@ -6846,7 +6846,7 @@ desc_idx, *post_ptr); drop_it_no_recycle: /* Other statistics kept track of by card. */ - tp->rx_dropped++; + tnapi->rx_dropped++; goto next_pkt; } @@ -7875,8 +7875,10 @@ segs = skb_gso_segment(skb, tp->dev->features & ~(NETIF_F_TSO | NETIF_F_TSO6)); - if (IS_ERR(segs) || !segs) + if (IS_ERR(segs) || !segs) { + tnapi->tx_dropped++; goto tg3_tso_bug_end; + } skb_list_walk_safe(segs, seg, next) { skb_mark_not_on_list(seg); @@ -8147,7 +8149,7 @@ drop: dev_kfree_skb_any(skb); drop_nofree: - tp->tx_dropped++; + tnapi->tx_dropped++; return NETDEV_TX_OK; } @@ -9326,7 +9328,7 @@ /* tp->lock is held. */ static int tg3_halt(struct tg3 *tp, int kind, bool silent) { - int err; + int err, i; tg3_stop_fw(tp); @@ -9347,6 +9349,13 @@ /* And make sure the next sample is new data */ memset(tp->hw_stats, 0, sizeof(struct tg3_hw_stats)); + + for (i = 0; i < TG3_IRQ_MAX_VECS; ++i) { + struct tg3_napi *tnapi = &tp->napi[i]; + + tnapi->rx_dropped = 0; + tnapi->tx_dropped = 0; + } } return err; @@ -11896,6 +11905,9 @@ { struct rtnl_link_stats64 *old_stats = &tp->net_stats_prev; struct tg3_hw_stats *hw_stats = tp->hw_stats; + unsigned long rx_dropped; + unsigned long tx_dropped; + int i; stats->rx_packets = old_stats->rx_packets + get_stat64(&hw_stats->rx_ucast_packets) + @@ -11942,8 +11954,26 @@ stats->rx_missed_errors = old_stats->rx_missed_errors + get_stat64(&hw_stats->rx_discards); - stats->rx_dropped = tp->rx_dropped; - stats->tx_dropped = tp->tx_dropped; + /* Aggregate per-queue counters. The per-queue counters are updated + * by a single writer, race-free. The result computed by this loop + * might not be 100% accurate (counters can be updated in the middle of + * the loop) but the next tg3_get_nstats() will recompute the current + * value so it is acceptable. + * + * Note that these counters wrap around at 4G on 32bit machines. + */ + rx_dropped = (unsigned long)(old_stats->rx_dropped); + tx_dropped = (unsigned long)(old_stats->tx_dropped); + + for (i = 0; i < tp->irq_cnt; i++) { + struct tg3_napi *tnapi = &tp->napi[i]; + + rx_dropped += tnapi->rx_dropped; + tx_dropped += tnapi->tx_dropped; + } + + stats->rx_dropped = rx_dropped; + stats->tx_dropped = tx_dropped; } static int tg3_get_regs_len(struct net_device *dev) @@ -18082,7 +18112,8 @@ if (netif_running(dev)) dev_close(dev); - tg3_power_down(tp); + if (system_state == SYSTEM_POWER_OFF) + tg3_power_down(tp); rtnl_unlock(); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/broadcom/tg3.h +++ linux-riscv-6.5.0/drivers/net/ethernet/broadcom/tg3.h @@ -3018,6 +3018,7 @@ u16 *rx_rcb_prod_idx; struct tg3_rx_prodring_set prodring; struct tg3_rx_buffer_desc *rx_rcb; + unsigned long rx_dropped; u32 tx_prod ____cacheline_aligned; u32 tx_cons; @@ -3026,6 +3027,7 @@ u32 prodmbox; struct tg3_tx_buffer_desc *tx_ring; struct tg3_tx_ring_info *tx_buffers; + unsigned long tx_dropped; dma_addr_t status_mapping; dma_addr_t rx_rcb_mapping; @@ -3219,8 +3221,6 @@ /* begin "everything else" cacheline(s) section */ - unsigned long rx_dropped; - unsigned long tx_dropped; struct rtnl_link_stats64 net_stats_prev; struct tg3_ethtool_stats estats_prev; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c +++ linux-riscv-6.5.0/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c @@ -3816,6 +3816,8 @@ FW_PARAMS_PARAM_Z_V(FW_PARAMS_PARAM_DEV_PHYFW_DOWNLOAD)); ret = t4_set_params_timeout(adap, adap->mbox, adap->pf, 0, 1, ¶m, &val, 30000); + if (ret) + return ret; /* If we have version number support, then check to see that the new * firmware got loaded properly. only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c +++ linux-riscv-6.5.0/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c @@ -2259,7 +2259,7 @@ if (tp->snd_una != snd_una) { tp->snd_una = snd_una; - tp->rcv_tstamp = tcp_time_stamp(tp); + tp->rcv_tstamp = tcp_jiffies32; if (tp->snd_una == tp->snd_nxt && !csk_flag_nochk(csk, CSK_TX_FAILOVER)) csk_reset_flag(csk, CSK_TX_WAIT_IDLE); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c +++ linux-riscv-6.5.0/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c @@ -911,7 +911,7 @@ struct sock *sk, long *timeo_p) { DEFINE_WAIT_FUNC(wait, woken_wake_function); - int err = 0; + int ret, err = 0; long current_timeo; long vm_wait = 0; bool noblock; @@ -942,10 +942,13 @@ set_bit(SOCK_NOSPACE, &sk->sk_socket->flags); sk->sk_write_pending++; - sk_wait_event(sk, ¤t_timeo, sk->sk_err || - (sk->sk_shutdown & SEND_SHUTDOWN) || - (csk_mem_free(cdev, sk) && !vm_wait), &wait); + ret = sk_wait_event(sk, ¤t_timeo, sk->sk_err || + (sk->sk_shutdown & SEND_SHUTDOWN) || + (csk_mem_free(cdev, sk) && !vm_wait), + &wait); sk->sk_write_pending--; + if (ret < 0) + goto do_error; if (vm_wait) { vm_wait -= current_timeo; @@ -1348,6 +1351,7 @@ int copied = 0; int target; long timeo; + int ret; buffers_freed = 0; @@ -1423,7 +1427,11 @@ if (copied >= target) break; chtls_cleanup_rbuf(sk, copied); - sk_wait_data(sk, &timeo, NULL); + ret = sk_wait_data(sk, &timeo, NULL); + if (ret < 0) { + copied = copied ? : ret; + goto unlock; + } continue; found_ok_skb: if (!skb->len) { @@ -1518,6 +1526,8 @@ if (buffers_freed) chtls_cleanup_rbuf(sk, copied); + +unlock: release_sock(sk); return copied; } @@ -1534,6 +1544,7 @@ int copied = 0; size_t avail; /* amount of available data in current skb */ long timeo; + int ret; lock_sock(sk); timeo = sock_rcvtimeo(sk, flags & MSG_DONTWAIT); @@ -1585,7 +1596,12 @@ release_sock(sk); lock_sock(sk); } else { - sk_wait_data(sk, &timeo, NULL); + ret = sk_wait_data(sk, &timeo, NULL); + if (ret < 0) { + /* here 'copied' is 0 due to previous checks */ + copied = ret; + break; + } } if (unlikely(peek_seq != tp->copied_seq)) { @@ -1656,6 +1672,7 @@ int copied = 0; long timeo; int target; /* Read at least this many bytes */ + int ret; buffers_freed = 0; @@ -1747,7 +1764,11 @@ if (copied >= target) break; chtls_cleanup_rbuf(sk, copied); - sk_wait_data(sk, &timeo, NULL); + ret = sk_wait_data(sk, &timeo, NULL); + if (ret < 0) { + copied = copied ? : ret; + goto unlock; + } continue; found_ok_skb: @@ -1816,6 +1837,7 @@ if (buffers_freed) chtls_cleanup_rbuf(sk, copied); +unlock: release_sock(sk); return copied; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/cortina/gemini.c +++ linux-riscv-6.5.0/drivers/net/ethernet/cortina/gemini.c @@ -432,8 +432,8 @@ .val = CONFIG0_MAXLEN_1536, }, { - .max_l3_len = 1542, - .val = CONFIG0_MAXLEN_1542, + .max_l3_len = 1548, + .val = CONFIG0_MAXLEN_1548, }, { .max_l3_len = 9212, @@ -1145,6 +1145,7 @@ dma_addr_t mapping; unsigned short mtu; void *buffer; + int ret; mtu = ETH_HLEN; mtu += netdev->mtu; @@ -1159,9 +1160,30 @@ word3 |= mtu; } - if (skb->ip_summed != CHECKSUM_NONE) { + if (skb->len >= ETH_FRAME_LEN) { + /* Hardware offloaded checksumming isn't working on frames + * bigger than 1514 bytes. A hypothesis about this is that the + * checksum buffer is only 1518 bytes, so when the frames get + * bigger they get truncated, or the last few bytes get + * overwritten by the FCS. + * + * Just use software checksumming and bypass on bigger frames. + */ + if (skb->ip_summed == CHECKSUM_PARTIAL) { + ret = skb_checksum_help(skb); + if (ret) + return ret; + } + word1 |= TSS_BYPASS_BIT; + } else if (skb->ip_summed == CHECKSUM_PARTIAL) { int tcp = 0; + /* We do not switch off the checksumming on non TCP/UDP + * frames: as is shown from tests, the checksumming engine + * is smart enough to see that a frame is not actually TCP + * or UDP and then just pass it through without any changes + * to the frame. + */ if (skb->protocol == htons(ETH_P_IP)) { word1 |= TSS_IP_CHKSUM_BIT; tcp = ip_hdr(skb)->protocol == IPPROTO_TCP; @@ -1978,15 +2000,6 @@ return 0; } -static netdev_features_t gmac_fix_features(struct net_device *netdev, - netdev_features_t features) -{ - if (netdev->mtu + ETH_HLEN + VLAN_HLEN > MTU_SIZE_BIT_MASK) - features &= ~GMAC_OFFLOAD_FEATURES; - - return features; -} - static int gmac_set_features(struct net_device *netdev, netdev_features_t features) { @@ -2212,7 +2225,6 @@ .ndo_set_mac_address = gmac_set_mac_address, .ndo_get_stats64 = gmac_get_stats64, .ndo_change_mtu = gmac_change_mtu, - .ndo_fix_features = gmac_fix_features, .ndo_set_features = gmac_set_features, }; @@ -2464,11 +2476,12 @@ netdev->hw_features = GMAC_OFFLOAD_FEATURES; netdev->features |= GMAC_OFFLOAD_FEATURES | NETIF_F_GRO; - /* We can handle jumbo frames up to 10236 bytes so, let's accept - * payloads of 10236 bytes minus VLAN and ethernet header + /* We can receive jumbo frames up to 10236 bytes but only + * transmit 2047 bytes so, let's accept payloads of 2047 + * bytes minus VLAN and ethernet header */ netdev->min_mtu = ETH_MIN_MTU; - netdev->max_mtu = 10236 - VLAN_ETH_HLEN; + netdev->max_mtu = MTU_SIZE_BIT_MASK - VLAN_ETH_HLEN; port->freeq_refill = 0; netif_napi_add(netdev, &port->napi, gmac_napi_poll); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/cortina/gemini.h +++ linux-riscv-6.5.0/drivers/net/ethernet/cortina/gemini.h @@ -502,7 +502,7 @@ #define SOF_BIT 0x80000000 #define EOF_BIT 0x40000000 #define EOFIE_BIT BIT(29) -#define MTU_SIZE_BIT_MASK 0x1fff +#define MTU_SIZE_BIT_MASK 0x7ff /* Max MTU 2047 bytes */ /* GMAC Tx Descriptor */ struct gmac_txdesc { @@ -787,7 +787,7 @@ #define CONFIG0_MAXLEN_1536 0 #define CONFIG0_MAXLEN_1518 1 #define CONFIG0_MAXLEN_1522 2 -#define CONFIG0_MAXLEN_1542 3 +#define CONFIG0_MAXLEN_1548 3 #define CONFIG0_MAXLEN_9k 4 /* 9212 */ #define CONFIG0_MAXLEN_10k 5 /* 10236 */ #define CONFIG0_MAXLEN_1518__6 6 only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/engleder/tsnep.h +++ linux-riscv-6.5.0/drivers/net/ethernet/engleder/tsnep.h @@ -142,7 +142,7 @@ struct tsnep_queue { struct tsnep_adapter *adapter; - char name[IFNAMSIZ + 9]; + char name[IFNAMSIZ + 16]; struct tsnep_tx *tx; struct tsnep_rx *rx; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +++ linux-riscv-6.5.0/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c @@ -516,8 +516,6 @@ memcpy(skb->data, fd_vaddr + fd_offset, fd_length); - dpaa2_eth_recycle_buf(priv, ch, dpaa2_fd_get_addr(fd)); - return skb; } @@ -589,6 +587,7 @@ struct rtnl_link_stats64 *percpu_stats; struct dpaa2_eth_drv_stats *percpu_extras; struct device *dev = priv->net_dev->dev.parent; + bool recycle_rx_buf = false; void *buf_data; u32 xdp_act; @@ -618,6 +617,8 @@ dma_unmap_page(dev, addr, priv->rx_buf_size, DMA_BIDIRECTIONAL); skb = dpaa2_eth_build_linear_skb(ch, fd, vaddr); + } else { + recycle_rx_buf = true; } } else if (fd_format == dpaa2_fd_sg) { WARN_ON(priv->xdp_prog); @@ -637,6 +638,9 @@ goto err_build_skb; dpaa2_eth_receive_skb(priv, ch, fd, vaddr, fq, percpu_stats, skb); + + if (recycle_rx_buf) + dpaa2_eth_recycle_buf(priv, ch, dpaa2_fd_get_addr(fd)); return; err_build_skb: @@ -1073,14 +1077,12 @@ dma_addr_t addr; buffer_start = skb->data - dpaa2_eth_needed_headroom(skb); - - /* If there's enough room to align the FD address, do it. - * It will help hardware optimize accesses. - */ aligned_start = PTR_ALIGN(buffer_start - DPAA2_ETH_TX_BUF_ALIGN, DPAA2_ETH_TX_BUF_ALIGN); if (aligned_start >= skb->head) buffer_start = aligned_start; + else + return -ENOMEM; /* Store a backpointer to the skb at the beginning of the buffer * (in the private data area) such that we can release it @@ -4967,6 +4969,8 @@ if (err) goto err_dl_port_add; + net_dev->needed_headroom = DPAA2_ETH_SWA_SIZE + DPAA2_ETH_TX_BUF_ALIGN; + err = register_netdev(net_dev); if (err < 0) { dev_err(dev, "register_netdev() failed\n"); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h +++ linux-riscv-6.5.0/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h @@ -739,7 +739,7 @@ static inline unsigned int dpaa2_eth_needed_headroom(struct sk_buff *skb) { - unsigned int headroom = DPAA2_ETH_SWA_SIZE; + unsigned int headroom = DPAA2_ETH_SWA_SIZE + DPAA2_ETH_TX_BUF_ALIGN; /* If we don't have an skb (e.g. XDP buffer), we only need space for * the software annotation area only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/freescale/enetc/enetc.c +++ linux-riscv-6.5.0/drivers/net/ethernet/freescale/enetc/enetc.c @@ -2769,7 +2769,7 @@ if (priv->min_num_stack_tx_queues + num_xdp_tx_queues > priv->num_tx_rings) { NL_SET_ERR_MSG_FMT_MOD(extack, - "Reserving %d XDP TXQs does not leave a minimum of %d TXQs for network stack (total %d available)", + "Reserving %d XDP TXQs does not leave a minimum of %d for stack (total %d)", num_xdp_tx_queues, priv->min_num_stack_tx_queues, priv->num_tx_rings); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/google/gve/gve_main.c +++ linux-riscv-6.5.0/drivers/net/ethernet/google/gve/gve_main.c @@ -191,7 +191,7 @@ rx_stats_num = (GVE_RX_STATS_REPORT_NUM + NIC_RX_STATS_REPORT_NUM) * priv->rx_cfg.num_queues; priv->stats_report_len = struct_size(priv->stats_report, stats, - tx_stats_num + rx_stats_num); + size_add(tx_stats_num, rx_stats_num)); priv->stats_report = dma_alloc_coherent(&priv->pdev->dev, priv->stats_report_len, &priv->stats_report_bus, GFP_KERNEL); @@ -255,10 +255,13 @@ if (block->tx) { if (block->tx->q_num < priv->tx_cfg.num_queues) reschedule |= gve_tx_poll(block, budget); - else + else if (budget) reschedule |= gve_xdp_poll(block, budget); } + if (!budget) + return 0; + if (block->rx) { work_done = gve_rx_poll(block, budget); reschedule |= work_done == budget; @@ -299,6 +302,9 @@ if (block->tx) reschedule |= gve_tx_poll_dqo(block, /*do_clean=*/true); + if (!budget) + return 0; + if (block->rx) { work_done = gve_rx_poll_dqo(block, budget); reschedule |= work_done == budget; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/google/gve/gve_rx.c +++ linux-riscv-6.5.0/drivers/net/ethernet/google/gve/gve_rx.c @@ -146,7 +146,7 @@ err = gve_rx_alloc_buffer(priv, &priv->pdev->dev, &rx->data.page_info[i], &rx->data.data_ring[i]); if (err) - goto alloc_err; + goto alloc_err_rda; } if (!rx->data.raw_addressing) { @@ -171,12 +171,26 @@ return slots; alloc_err_qpl: + /* Fully free the copy pool pages. */ while (j--) { page_ref_sub(rx->qpl_copy_pool[j].page, rx->qpl_copy_pool[j].pagecnt_bias - 1); put_page(rx->qpl_copy_pool[j].page); } -alloc_err: + + /* Do not fully free QPL pages - only remove the bias added in this + * function with gve_setup_rx_buffer. + */ + while (i--) + page_ref_sub(rx->data.page_info[i].page, + rx->data.page_info[i].pagecnt_bias - 1); + + gve_unassign_qpl(priv, rx->data.qpl->id); + rx->data.qpl = NULL; + + return err; + +alloc_err_rda: while (i--) gve_rx_free_buffer(&priv->pdev->dev, &rx->data.page_info[i], @@ -993,10 +1007,6 @@ feat = block->napi.dev->features; - /* If budget is 0, do all the work */ - if (budget == 0) - budget = INT_MAX; - if (budget > 0) work_done = gve_clean_rx_done(rx, budget, feat); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/google/gve/gve_tx.c +++ linux-riscv-6.5.0/drivers/net/ethernet/google/gve/gve_tx.c @@ -925,10 +925,6 @@ bool repoll; u32 to_do; - /* If budget is 0, do all the work */ - if (budget == 0) - budget = INT_MAX; - /* Find out how much work there is to be done */ nic_done = gve_tx_load_event_counter(priv, tx); to_do = min_t(u32, (nic_done - tx->done), budget); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c +++ linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c @@ -66,6 +66,27 @@ } } +static u32 hns_mac_link_anti_shake(struct mac_driver *mac_ctrl_drv) +{ +#define HNS_MAC_LINK_WAIT_TIME 5 +#define HNS_MAC_LINK_WAIT_CNT 40 + + u32 link_status = 0; + int i; + + if (!mac_ctrl_drv->get_link_status) + return link_status; + + for (i = 0; i < HNS_MAC_LINK_WAIT_CNT; i++) { + msleep(HNS_MAC_LINK_WAIT_TIME); + mac_ctrl_drv->get_link_status(mac_ctrl_drv, &link_status); + if (!link_status) + break; + } + + return link_status; +} + void hns_mac_get_link_status(struct hns_mac_cb *mac_cb, u32 *link_status) { struct mac_driver *mac_ctrl_drv; @@ -83,6 +104,14 @@ &sfp_prsnt); if (!ret) *link_status = *link_status && sfp_prsnt; + + /* for FIBER port, it may have a fake link up. + * when the link status changes from down to up, we need to do + * anti-shake. the anti-shake time is base on tests. + * only FIBER port need to do this. + */ + if (*link_status && !mac_cb->link) + *link_status = hns_mac_link_anti_shake(mac_ctrl_drv); } mac_cb->link = *link_status; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/hisilicon/hns/hns_enet.c +++ linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns/hns_enet.c @@ -142,7 +142,8 @@ static void fill_desc(struct hnae_ring *ring, void *priv, int size, dma_addr_t dma, int frag_end, - int buf_num, enum hns_desc_type type, int mtu) + int buf_num, enum hns_desc_type type, int mtu, + bool is_gso) { struct hnae_desc *desc = &ring->desc[ring->next_to_use]; struct hnae_desc_cb *desc_cb = &ring->desc_cb[ring->next_to_use]; @@ -275,6 +276,15 @@ return 0; } +static int hns_nic_maybe_stop_tx_v2(struct sk_buff **out_skb, int *bnum, + struct hnae_ring *ring) +{ + if (skb_is_gso(*out_skb)) + return hns_nic_maybe_stop_tso(out_skb, bnum, ring); + else + return hns_nic_maybe_stop_tx(out_skb, bnum, ring); +} + static void fill_tso_desc(struct hnae_ring *ring, void *priv, int size, dma_addr_t dma, int frag_end, int buf_num, enum hns_desc_type type, int mtu) @@ -300,6 +310,19 @@ mtu); } +static void fill_desc_v2(struct hnae_ring *ring, void *priv, + int size, dma_addr_t dma, int frag_end, + int buf_num, enum hns_desc_type type, int mtu, + bool is_gso) +{ + if (is_gso) + fill_tso_desc(ring, priv, size, dma, frag_end, buf_num, type, + mtu); + else + fill_v2_desc(ring, priv, size, dma, frag_end, buf_num, type, + mtu); +} + netdev_tx_t hns_nic_net_xmit_hw(struct net_device *ndev, struct sk_buff *skb, struct hns_nic_ring_data *ring_data) @@ -313,6 +336,7 @@ int seg_num; dma_addr_t dma; int size, next_to_use; + bool is_gso; int i; switch (priv->ops.maybe_stop_tx(&skb, &buf_num, ring)) { @@ -339,8 +363,9 @@ ring->stats.sw_err_cnt++; goto out_err_tx_ok; } + is_gso = skb_is_gso(skb); priv->ops.fill_desc(ring, skb, size, dma, seg_num == 1 ? 1 : 0, - buf_num, DESC_TYPE_SKB, ndev->mtu); + buf_num, DESC_TYPE_SKB, ndev->mtu, is_gso); /* fill the fragments */ for (i = 1; i < seg_num; i++) { @@ -354,7 +379,7 @@ } priv->ops.fill_desc(ring, skb_frag_page(frag), size, dma, seg_num - 1 == i ? 1 : 0, buf_num, - DESC_TYPE_PAGE, ndev->mtu); + DESC_TYPE_PAGE, ndev->mtu, is_gso); } /*complete translate all packets*/ @@ -1776,15 +1801,6 @@ netdev_info(netdev, "enet v1 do not support tso!\n"); break; default: - if (features & (NETIF_F_TSO | NETIF_F_TSO6)) { - priv->ops.fill_desc = fill_tso_desc; - priv->ops.maybe_stop_tx = hns_nic_maybe_stop_tso; - /* The chip only support 7*4096 */ - netif_set_tso_max_size(netdev, 7 * 4096); - } else { - priv->ops.fill_desc = fill_v2_desc; - priv->ops.maybe_stop_tx = hns_nic_maybe_stop_tx; - } break; } netdev->features = features; @@ -2159,16 +2175,9 @@ priv->ops.maybe_stop_tx = hns_nic_maybe_stop_tx; } else { priv->ops.get_rxd_bnum = get_v2rx_desc_bnum; - if ((netdev->features & NETIF_F_TSO) || - (netdev->features & NETIF_F_TSO6)) { - priv->ops.fill_desc = fill_tso_desc; - priv->ops.maybe_stop_tx = hns_nic_maybe_stop_tso; - /* This chip only support 7*4096 */ - netif_set_tso_max_size(netdev, 7 * 4096); - } else { - priv->ops.fill_desc = fill_v2_desc; - priv->ops.maybe_stop_tx = hns_nic_maybe_stop_tx; - } + priv->ops.fill_desc = fill_desc_v2; + priv->ops.maybe_stop_tx = hns_nic_maybe_stop_tx_v2; + netif_set_tso_max_size(netdev, 7 * 4096); /* enable tso when init * control tso on/off through TSE bit in bd */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/hisilicon/hns/hns_enet.h +++ linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns/hns_enet.h @@ -44,7 +44,8 @@ struct hns_nic_ops { void (*fill_desc)(struct hnae_ring *ring, void *priv, int size, dma_addr_t dma, int frag_end, - int buf_num, enum hns_desc_type type, int mtu); + int buf_num, enum hns_desc_type type, int mtu, + bool is_gso); int (*maybe_stop_tx)(struct sk_buff **out_skb, int *bnum, struct hnae_ring *ring); void (*get_rxd_bnum)(u32 bnum_flag, int *out_bnum); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c +++ linux-riscv-6.5.0/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c @@ -63,6 +63,9 @@ i++; } + /* ensure additional_info will be seen after received_resp */ + smp_rmb(); + if (i >= HCLGEVF_MAX_TRY_TIMES) { dev_err(&hdev->pdev->dev, "VF could not get mbx(%u,%u) resp(=%d) from PF in %d tries\n", @@ -178,6 +181,10 @@ resp->resp_status = hclgevf_resp_to_errno(resp_status); memcpy(resp->additional_info, req->msg.resp_data, HCLGE_MBX_MAX_RESP_DATA_SIZE * sizeof(u8)); + + /* ensure additional_info will be seen before setting received_resp */ + smp_wmb(); + if (match_id) { /* If match_id is not zero, it means PF support match_id. * if the match_id is right, VF get the right response, or only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/intel/i40e/i40e.h +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/i40e/i40e.h @@ -580,7 +580,6 @@ #define I40E_FLAG_DISABLE_FW_LLDP BIT(24) #define I40E_FLAG_RS_FEC BIT(25) #define I40E_FLAG_BASE_R_FEC BIT(26) -#define I40E_FLAG_VF_VLAN_PRUNING BIT(27) /* TOTAL_PORT_SHUTDOWN * Allows to physically disable the link on the NIC's port. * If enabled, (after link down request from the OS) @@ -603,6 +602,7 @@ * in abilities field of i40e_aq_set_phy_config structure */ #define I40E_FLAG_TOTAL_PORT_SHUTDOWN_ENABLED BIT(27) +#define I40E_FLAG_VF_VLAN_PRUNING BIT(28) struct i40e_client_instance *cinst; bool stat_offsets_loaded; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/intel/i40e/i40e_common.c +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/i40e/i40e_common.c @@ -1082,7 +1082,7 @@ I40E_PFLAN_QALLOC_FIRSTQ_SHIFT; j = (val & I40E_PFLAN_QALLOC_LASTQ_MASK) >> I40E_PFLAN_QALLOC_LASTQ_SHIFT; - if (val & I40E_PFLAN_QALLOC_VALID_MASK) + if (val & I40E_PFLAN_QALLOC_VALID_MASK && j >= base_queue) num_queues = (j - base_queue) + 1; else num_queues = 0; @@ -1092,7 +1092,7 @@ I40E_PF_VT_PFALLOC_FIRSTVF_SHIFT; j = (val & I40E_PF_VT_PFALLOC_LASTVF_MASK) >> I40E_PF_VT_PFALLOC_LASTVF_SHIFT; - if (val & I40E_PF_VT_PFALLOC_VALID_MASK) + if (val & I40E_PF_VT_PFALLOC_VALID_MASK && j >= i) num_vfs = (j - i) + 1; else num_vfs = 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/intel/i40e/i40e_main.c +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -16199,7 +16199,7 @@ I40E_PRTGL_SAH_MFS_MASK) >> I40E_PRTGL_SAH_MFS_SHIFT; if (val < MAX_FRAME_SIZE_DEFAULT) dev_warn(&pdev->dev, "MFS for port %x has been set below the default: %x\n", - i, val); + pf->hw.port, val); /* Add a filter to drop all Flow control frames from any VSI from being * transmitted. By doing so we stop a malicious VF from sending out @@ -16324,11 +16324,15 @@ i40e_switch_branch_release(pf->veb[i]); } - /* Now we can shutdown the PF's VSI, just before we kill + /* Now we can shutdown the PF's VSIs, just before we kill * adminq and hmc. */ - if (pf->vsi[pf->lan_vsi]) - i40e_vsi_release(pf->vsi[pf->lan_vsi]); + for (i = pf->num_alloc_vsi; i--;) + if (pf->vsi[i]) { + i40e_vsi_close(pf->vsi[i]); + i40e_vsi_release(pf->vsi[i]); + pf->vsi[i] = NULL; + } i40e_cloud_filter_exit(pf); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/intel/i40e/i40e_txrx.c +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/i40e/i40e_txrx.c @@ -2544,7 +2544,14 @@ rx_buffer = i40e_rx_bi(rx_ring, ntp); i40e_inc_ntp(rx_ring); i40e_reuse_rx_page(rx_ring, rx_buffer); - cleaned_count++; + /* Update ntc and bump cleaned count if not in the + * middle of mb packet. + */ + if (rx_ring->next_to_clean == ntp) { + rx_ring->next_to_clean = + rx_ring->next_to_process; + cleaned_count++; + } continue; } @@ -2847,7 +2854,7 @@ return budget; } - if (vsi->back->flags & I40E_TXR_FLAGS_WB_ON_ITR) + if (q_vector->tx.ring[0].flags & I40E_TXR_FLAGS_WB_ON_ITR) q_vector->arm_wb_state = false; /* Exit the polling mode, but don't re-enable interrupts if stack might only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/intel/iavf/iavf_txrx.h +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/iavf/iavf_txrx.h @@ -15,7 +15,6 @@ */ #define IAVF_ITR_DYNAMIC 0x8000 /* use top bit as a flag */ #define IAVF_ITR_MASK 0x1FFE /* mask for ITR register value */ -#define IAVF_MIN_ITR 2 /* reg uses 2 usec resolution */ #define IAVF_ITR_100K 10 /* all values below must be even */ #define IAVF_ITR_50K 20 #define IAVF_ITR_20K 50 only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c @@ -948,14 +948,14 @@ /** * iavf_set_promiscuous * @adapter: adapter structure - * @flags: bitmask to control unicast/multicast promiscuous. * * Request that the PF enable promiscuous mode for our VSI. **/ -void iavf_set_promiscuous(struct iavf_adapter *adapter, int flags) +void iavf_set_promiscuous(struct iavf_adapter *adapter) { + struct net_device *netdev = adapter->netdev; struct virtchnl_promisc_info vpi; - int promisc_all; + unsigned int flags; if (adapter->current_op != VIRTCHNL_OP_UNKNOWN) { /* bail because we already have a command pending */ @@ -964,36 +964,57 @@ return; } - promisc_all = FLAG_VF_UNICAST_PROMISC | - FLAG_VF_MULTICAST_PROMISC; - if ((flags & promisc_all) == promisc_all) { - adapter->flags |= IAVF_FLAG_PROMISC_ON; - adapter->aq_required &= ~IAVF_FLAG_AQ_REQUEST_PROMISC; - dev_info(&adapter->pdev->dev, "Entering promiscuous mode\n"); - } + /* prevent changes to promiscuous flags */ + spin_lock_bh(&adapter->current_netdev_promisc_flags_lock); - if (flags & FLAG_VF_MULTICAST_PROMISC) { - adapter->flags |= IAVF_FLAG_ALLMULTI_ON; - adapter->aq_required &= ~IAVF_FLAG_AQ_REQUEST_ALLMULTI; - dev_info(&adapter->pdev->dev, "%s is entering multicast promiscuous mode\n", - adapter->netdev->name); + /* sanity check to prevent duplicate AQ calls */ + if (!iavf_promiscuous_mode_changed(adapter)) { + adapter->aq_required &= ~IAVF_FLAG_AQ_CONFIGURE_PROMISC_MODE; + dev_dbg(&adapter->pdev->dev, "No change in promiscuous mode\n"); + /* allow changes to promiscuous flags */ + spin_unlock_bh(&adapter->current_netdev_promisc_flags_lock); + return; } - if (!flags) { - if (adapter->flags & IAVF_FLAG_PROMISC_ON) { - adapter->flags &= ~IAVF_FLAG_PROMISC_ON; - adapter->aq_required &= ~IAVF_FLAG_AQ_RELEASE_PROMISC; - dev_info(&adapter->pdev->dev, "Leaving promiscuous mode\n"); - } - - if (adapter->flags & IAVF_FLAG_ALLMULTI_ON) { - adapter->flags &= ~IAVF_FLAG_ALLMULTI_ON; - adapter->aq_required &= ~IAVF_FLAG_AQ_RELEASE_ALLMULTI; - dev_info(&adapter->pdev->dev, "%s is leaving multicast promiscuous mode\n", - adapter->netdev->name); - } + /* there are 2 bits, but only 3 states */ + if (!(netdev->flags & IFF_PROMISC) && + netdev->flags & IFF_ALLMULTI) { + /* State 1 - only multicast promiscuous mode enabled + * - !IFF_PROMISC && IFF_ALLMULTI + */ + flags = FLAG_VF_MULTICAST_PROMISC; + adapter->current_netdev_promisc_flags |= IFF_ALLMULTI; + adapter->current_netdev_promisc_flags &= ~IFF_PROMISC; + dev_info(&adapter->pdev->dev, "Entering multicast promiscuous mode\n"); + } else if (!(netdev->flags & IFF_PROMISC) && + !(netdev->flags & IFF_ALLMULTI)) { + /* State 2 - unicast/multicast promiscuous mode disabled + * - !IFF_PROMISC && !IFF_ALLMULTI + */ + flags = 0; + adapter->current_netdev_promisc_flags &= + ~(IFF_PROMISC | IFF_ALLMULTI); + dev_info(&adapter->pdev->dev, "Leaving promiscuous mode\n"); + } else { + /* State 3 - unicast/multicast promiscuous mode enabled + * - IFF_PROMISC && IFF_ALLMULTI + * - IFF_PROMISC && !IFF_ALLMULTI + */ + flags = FLAG_VF_UNICAST_PROMISC | FLAG_VF_MULTICAST_PROMISC; + adapter->current_netdev_promisc_flags |= IFF_PROMISC; + if (netdev->flags & IFF_ALLMULTI) + adapter->current_netdev_promisc_flags |= IFF_ALLMULTI; + else + adapter->current_netdev_promisc_flags &= ~IFF_ALLMULTI; + + dev_info(&adapter->pdev->dev, "Entering promiscuous mode\n"); } + adapter->aq_required &= ~IAVF_FLAG_AQ_CONFIGURE_PROMISC_MODE; + + /* allow changes to promiscuous flags */ + spin_unlock_bh(&adapter->current_netdev_promisc_flags_lock); + adapter->current_op = VIRTCHNL_OP_CONFIG_PROMISCUOUS_MODE; vpi.vsi_id = adapter->vsi_res->vsi_id; vpi.flags = flags; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/intel/ice/ice.h +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/ice/ice.h @@ -200,6 +200,8 @@ ICE_F_PTP_EXTTS, ICE_F_SMA_CTRL, ICE_F_GNSS, + ICE_F_ROCE_LAG, + ICE_F_SRIOV_LAG, ICE_F_MAX }; @@ -567,6 +569,7 @@ struct mutex sw_mutex; /* lock for protecting VSI alloc flow */ struct mutex tc_mutex; /* lock to protect TC changes */ struct mutex adev_mutex; /* lock to protect aux device access */ + struct mutex lag_mutex; /* protect ice_lag struct in PF */ u32 msg_enable; struct ice_ptp ptp; struct gnss_serial *gnss_serial; @@ -636,6 +639,8 @@ struct ice_agg_node vf_agg_node[ICE_MAX_VF_AGG_NODES]; }; +extern struct workqueue_struct *ice_lag_wq; + struct ice_netdev_priv { struct ice_vsi *vsi; struct ice_repr *repr; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/intel/ice/ice_adminq_cmd.h +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/ice/ice_adminq_cmd.h @@ -120,6 +120,9 @@ #define ICE_AQC_CAPS_PCIE_RESET_AVOIDANCE 0x0076 #define ICE_AQC_CAPS_POST_UPDATE_RESET_RESTRICT 0x0077 #define ICE_AQC_CAPS_NVM_MGMT 0x0080 +#define ICE_AQC_CAPS_FW_LAG_SUPPORT 0x0092 +#define ICE_AQC_BIT_ROCEV2_LAG 0x01 +#define ICE_AQC_BIT_SRIOV_LAG 0x02 u8 major_ver; u8 minor_ver; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/intel/ice/ice_common.c +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/ice/ice_common.c @@ -2241,6 +2241,14 @@ "%s: reset_restrict_support = %d\n", prefix, caps->reset_restrict_support); break; + case ICE_AQC_CAPS_FW_LAG_SUPPORT: + caps->roce_lag = !!(number & ICE_AQC_BIT_ROCEV2_LAG); + ice_debug(hw, ICE_DBG_INIT, "%s: roce_lag = %u\n", + prefix, caps->roce_lag); + caps->sriov_lag = !!(number & ICE_AQC_BIT_SRIOV_LAG); + ice_debug(hw, ICE_DBG_INIT, "%s: sriov_lag = %u\n", + prefix, caps->sriov_lag); + break; default: /* Not one of the recognized common capabilities */ found = false; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/intel/ice/ice_lag.c +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/ice/ice_lag.c @@ -4,8 +4,12 @@ /* Link Aggregation code */ #include "ice.h" +#include "ice_lib.h" #include "ice_lag.h" +#define ICE_LAG_RES_SHARED BIT(14) +#define ICE_LAG_RES_VALID BIT(15) + /** * ice_lag_set_primary - set PF LAG state as Primary * @lag: LAG info struct @@ -226,6 +230,26 @@ } /** + * ice_lag_init_feature_support_flag - Check for NVM support for LAG + * @pf: PF struct + */ +static void ice_lag_init_feature_support_flag(struct ice_pf *pf) +{ + struct ice_hw_common_caps *caps; + + caps = &pf->hw.dev_caps.common_cap; + if (caps->roce_lag) + ice_set_feature_support(pf, ICE_F_ROCE_LAG); + else + ice_clear_feature_support(pf, ICE_F_ROCE_LAG); + + if (caps->sriov_lag) + ice_set_feature_support(pf, ICE_F_SRIOV_LAG); + else + ice_clear_feature_support(pf, ICE_F_SRIOV_LAG); +} + +/** * ice_lag_changeupper_event - handle LAG changeupper event * @lag: LAG info struct * @ptr: opaque pointer data @@ -265,26 +289,6 @@ } /** - * ice_lag_changelower_event - handle LAG changelower event - * @lag: LAG info struct - * @ptr: opaque data pointer - * - * ptr to be cast to netdev_notifier_changelowerstate_info - */ -static void ice_lag_changelower_event(struct ice_lag *lag, void *ptr) -{ - struct net_device *netdev = netdev_notifier_info_to_dev(ptr); - - if (netdev != lag->netdev) - return; - - netdev_dbg(netdev, "bonding info\n"); - - if (!netif_is_lag_port(netdev)) - netdev_dbg(netdev, "CHANGELOWER rcvd, but netdev not in LAG. Bail\n"); -} - -/** * ice_lag_event_handler - handle LAG events from netdev * @notif_blk: notifier block registered by this netdev * @event: event type @@ -310,9 +314,6 @@ case NETDEV_CHANGEUPPER: ice_lag_changeupper_event(lag, ptr); break; - case NETDEV_CHANGELOWERSTATE: - ice_lag_changelower_event(lag, ptr); - break; case NETDEV_BONDING_INFO: ice_lag_info_event(lag, ptr); break; @@ -379,6 +380,10 @@ struct ice_vsi *vsi; int err; + ice_lag_init_feature_support_flag(pf); + if (!ice_is_feature_supported(pf, ICE_F_SRIOV_LAG)) + return 0; + pf->lag = kzalloc(sizeof(*lag), GFP_KERNEL); if (!pf->lag) return -ENOMEM; @@ -435,9 +440,7 @@ if (lag->pf) ice_unregister_lag_handler(lag); - dev_put(lag->upper_netdev); - - dev_put(lag->peer_netdev); + flush_workqueue(ice_lag_wq); kfree(lag); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/intel/ice/ice_lib.c +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/ice/ice_lib.c @@ -1201,8 +1201,7 @@ ctxt->info.q_opt_rss = ((lut_type << ICE_AQ_VSI_Q_OPT_RSS_LUT_S) & ICE_AQ_VSI_Q_OPT_RSS_LUT_M) | - ((hash_type << ICE_AQ_VSI_Q_OPT_RSS_HASH_S) & - ICE_AQ_VSI_Q_OPT_RSS_HASH_M); + (hash_type & ICE_AQ_VSI_Q_OPT_RSS_HASH_M); } static void @@ -3970,7 +3969,7 @@ * @pf: pointer to the struct ice_pf instance * @f: feature enum to set */ -static void ice_set_feature_support(struct ice_pf *pf, enum ice_feature f) +void ice_set_feature_support(struct ice_pf *pf, enum ice_feature f) { if (f < 0 || f >= ICE_F_MAX) return; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/intel/ice/ice_lib.h +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/ice/ice_lib.h @@ -162,6 +162,7 @@ bool ice_vsi_has_non_zero_vlans(struct ice_vsi *vsi); u16 ice_vsi_num_non_zero_vlans(struct ice_vsi *vsi); bool ice_is_feature_supported(struct ice_pf *pf, enum ice_feature f); +void ice_set_feature_support(struct ice_pf *pf, enum ice_feature f); void ice_clear_feature_support(struct ice_pf *pf, enum ice_feature f); void ice_init_feature_support(struct ice_pf *pf); bool ice_vsi_is_rx_queue_active(struct ice_vsi *vsi); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/intel/ice/ice_type.h +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/ice/ice_type.h @@ -277,6 +277,8 @@ u8 dcb; u8 ieee_1588; u8 rdma; + u8 roce_lag; + u8 sriov_lag; bool nvm_update_pending_nvm; bool nvm_update_pending_orom; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/intel/igb/igb_ethtool.c +++ linux-riscv-6.5.0/drivers/net/ethernet/intel/igb/igb_ethtool.c @@ -2978,11 +2978,15 @@ if (err) goto err_out_w_lock; - igb_update_ethtool_nfc_entry(adapter, input, input->sw_idx); + err = igb_update_ethtool_nfc_entry(adapter, input, input->sw_idx); + if (err) + goto err_out_input_filter; spin_unlock(&adapter->nfc_lock); return 0; +err_out_input_filter: + igb_erase_filter(adapter, input); err_out_w_lock: spin_unlock(&adapter->nfc_lock); err_out: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/mvneta.c +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/mvneta.c @@ -4790,14 +4790,17 @@ u8 *data) { if (sset == ETH_SS_STATS) { + struct mvneta_port *pp = netdev_priv(netdev); int i; for (i = 0; i < ARRAY_SIZE(mvneta_statistics); i++) memcpy(data + i * ETH_GSTRING_LEN, mvneta_statistics[i].name, ETH_GSTRING_LEN); - data += ETH_GSTRING_LEN * ARRAY_SIZE(mvneta_statistics); - page_pool_ethtool_stats_get_strings(data); + if (!pp->bm_priv) { + data += ETH_GSTRING_LEN * ARRAY_SIZE(mvneta_statistics); + page_pool_ethtool_stats_get_strings(data); + } } } @@ -4915,8 +4918,10 @@ struct page_pool_stats stats = {}; int i; - for (i = 0; i < rxq_number; i++) - page_pool_get_stats(pp->rxqs[i].page_pool, &stats); + for (i = 0; i < rxq_number; i++) { + if (pp->rxqs[i].page_pool) + page_pool_get_stats(pp->rxqs[i].page_pool, &stats); + } page_pool_ethtool_stats_get(data, &stats); } @@ -4932,14 +4937,21 @@ for (i = 0; i < ARRAY_SIZE(mvneta_statistics); i++) *data++ = pp->ethtool_stats[i]; - mvneta_ethtool_pp_stats(pp, data); + if (!pp->bm_priv) + mvneta_ethtool_pp_stats(pp, data); } static int mvneta_ethtool_get_sset_count(struct net_device *dev, int sset) { - if (sset == ETH_SS_STATS) - return ARRAY_SIZE(mvneta_statistics) + - page_pool_ethtool_stats_get_count(); + if (sset == ETH_SS_STATS) { + int count = ARRAY_SIZE(mvneta_statistics); + struct mvneta_port *pp = netdev_priv(dev); + + if (!pp->bm_priv) + count += page_pool_ethtool_stats_get_count(); + + return count; + } return -EOPNOTSUPP; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/octeontx2/af/mbox.h +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/af/mbox.h @@ -235,7 +235,7 @@ M(NPC_INSTALL_FLOW, 0x600d, npc_install_flow, \ npc_install_flow_req, npc_install_flow_rsp) \ M(NPC_DELETE_FLOW, 0x600e, npc_delete_flow, \ - npc_delete_flow_req, msg_rsp) \ + npc_delete_flow_req, npc_delete_flow_rsp) \ M(NPC_MCAM_READ_ENTRY, 0x600f, npc_mcam_read_entry, \ npc_mcam_read_entry_req, \ npc_mcam_read_entry_rsp) \ @@ -1491,6 +1491,8 @@ u8 vtag0_op; u16 vtag1_def; u8 vtag1_op; + /* old counter value */ + u16 cntr_val; }; struct npc_install_flow_rsp { @@ -1506,6 +1508,11 @@ u8 all; /* PF + VFs */ }; +struct npc_delete_flow_rsp { + struct mbox_msghdr hdr; + u16 cntr_val; +}; + struct npc_mcam_read_entry_req { struct mbox_msghdr hdr; u16 entry; /* MCAM entry to read */ @@ -1914,7 +1921,7 @@ u8 tcam_entries; /* RX/TX Tcam entries per mcs block */ u8 secy_entries; /* RX/TX SECY entries per mcs block */ u8 sc_entries; /* RX/TX SC CAM entries per mcs block */ - u8 sa_entries; /* PN table entries = SA entries */ + u16 sa_entries; /* PN table entries = SA entries */ u64 rsvd[16]; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/octeontx2/af/mcs.c +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/af/mcs.c @@ -117,7 +117,7 @@ reg = MCSX_CSE_RX_MEM_SLAVE_INPKTSSECYTAGGEDCTLX(id); stats->pkt_tagged_ctl_cnt = mcs_reg_read(mcs, reg); - reg = MCSX_CSE_RX_MEM_SLAVE_INPKTSSECYUNTAGGEDORNOTAGX(id); + reg = MCSX_CSE_RX_MEM_SLAVE_INPKTSSECYUNTAGGEDX(id); stats->pkt_untaged_cnt = mcs_reg_read(mcs, reg); reg = MCSX_CSE_RX_MEM_SLAVE_INPKTSSECYCTLX(id); @@ -215,7 +215,7 @@ reg = MCSX_CSE_RX_MEM_SLAVE_INPKTSSCNOTVALIDX(id); stats->pkt_notvalid_cnt = mcs_reg_read(mcs, reg); - reg = MCSX_CSE_RX_MEM_SLAVE_INPKTSSCUNCHECKEDOROKX(id); + reg = MCSX_CSE_RX_MEM_SLAVE_INPKTSSCUNCHECKEDX(id); stats->pkt_unchecked_cnt = mcs_reg_read(mcs, reg); if (mcs->hw->mcs_blks > 1) { @@ -1219,6 +1219,17 @@ return NULL; } +bool is_mcs_bypass(int mcs_id) +{ + struct mcs *mcs_dev; + + list_for_each_entry(mcs_dev, &mcs_list, mcs_list) { + if (mcs_dev->mcs_id == mcs_id) + return mcs_dev->bypass; + } + return true; +} + void mcs_set_port_cfg(struct mcs *mcs, struct mcs_port_cfg_set_req *req) { u64 val = 0; @@ -1436,7 +1447,7 @@ return err; } -static void mcs_set_external_bypass(struct mcs *mcs, u8 bypass) +static void mcs_set_external_bypass(struct mcs *mcs, bool bypass) { u64 val; @@ -1447,6 +1458,7 @@ else val &= ~BIT_ULL(6); mcs_reg_write(mcs, MCSX_MIL_GLOBAL, val); + mcs->bypass = bypass; } static void mcs_global_cfg(struct mcs *mcs) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/octeontx2/af/mcs.h +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/af/mcs.h @@ -149,6 +149,7 @@ u16 num_vec; void *rvu; u16 *tx_sa_active; + bool bypass; }; struct mcs_ops { @@ -206,6 +207,7 @@ int mcs_alloc_ctrlpktrule(struct rsrc_bmap *rsrc, u16 *pf_map, u16 offset, u16 pcifunc); int mcs_free_ctrlpktrule(struct mcs *mcs, struct mcs_free_ctrl_pkt_rule_req *req); int mcs_ctrlpktrule_write(struct mcs *mcs, struct mcs_ctrl_pkt_rule_write_req *req); +bool is_mcs_bypass(int mcs_id); /* CN10K-B APIs */ void cn10kb_mcs_set_hw_capabilities(struct mcs *mcs); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/octeontx2/af/mcs_reg.h +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/af/mcs_reg.h @@ -810,14 +810,37 @@ offset = 0x9d8ull; \ offset; }) +#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSCUNCHECKEDX(a) ({ \ + u64 offset; \ + \ + offset = 0xee80ull; \ + if (mcs->hw->mcs_blks > 1) \ + offset = 0xe818ull; \ + offset += (a) * 0x8ull; \ + offset; }) + +#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSECYUNTAGGEDX(a) ({ \ + u64 offset; \ + \ + offset = 0xa680ull; \ + if (mcs->hw->mcs_blks > 1) \ + offset = 0xd018ull; \ + offset += (a) * 0x8ull; \ + offset; }) + +#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSCLATEORDELAYEDX(a) ({ \ + u64 offset; \ + \ + offset = 0xf680ull; \ + if (mcs->hw->mcs_blks > 1) \ + offset = 0xe018ull; \ + offset += (a) * 0x8ull; \ + offset; }) + #define MCSX_CSE_RX_MEM_SLAVE_INOCTETSSCDECRYPTEDX(a) (0xe680ull + (a) * 0x8ull) #define MCSX_CSE_RX_MEM_SLAVE_INOCTETSSCVALIDATEX(a) (0xde80ull + (a) * 0x8ull) -#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSECYUNTAGGEDORNOTAGX(a) (0xa680ull + (a) * 0x8ull) #define MCSX_CSE_RX_MEM_SLAVE_INPKTSSECYNOTAGX(a) (0xd218 + (a) * 0x8ull) -#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSECYUNTAGGEDX(a) (0xd018ull + (a) * 0x8ull) -#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSCUNCHECKEDOROKX(a) (0xee80ull + (a) * 0x8ull) #define MCSX_CSE_RX_MEM_SLAVE_INPKTSSECYCTLX(a) (0xb680ull + (a) * 0x8ull) -#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSCLATEORDELAYEDX(a) (0xf680ull + (a) * 0x8ull) #define MCSX_CSE_RX_MEM_SLAVE_INPKTSSAINVALIDX(a) (0x12680ull + (a) * 0x8ull) #define MCSX_CSE_RX_MEM_SLAVE_INPKTSSANOTUSINGSAERRORX(a) (0x15680ull + (a) * 0x8ull) #define MCSX_CSE_RX_MEM_SLAVE_INPKTSSANOTVALIDX(a) (0x13680ull + (a) * 0x8ull) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/octeontx2/af/rvu.c +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/af/rvu.c @@ -2631,6 +2631,9 @@ rvu_npc_free_mcam_entries(rvu, pcifunc, -1); rvu_mac_reset(rvu, pcifunc); + if (rvu->mcs_blk_cnt) + rvu_mcs_flr_handler(rvu, pcifunc); + mutex_unlock(&rvu->flr_lock); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/octeontx2/af/rvu.h +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/af/rvu.h @@ -343,6 +343,7 @@ struct nix_txvlan txvlan; struct nix_ipolicer *ipolicer; u64 *tx_credits; + u8 cc_mcs_cnt; }; /* RVU block's capabilities or functionality, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c @@ -1285,7 +1285,7 @@ rvu_dl->devlink_wq = create_workqueue("rvu_devlink_wq"); if (!rvu_dl->devlink_wq) - goto err; + return -ENOMEM; INIT_WORK(&rvu_reporters->intr_work, rvu_npa_intr_work); INIT_WORK(&rvu_reporters->err_work, rvu_npa_err_work); @@ -1293,9 +1293,6 @@ INIT_WORK(&rvu_reporters->ras_work, rvu_npa_ras_work); return 0; -err: - rvu_npa_health_reporters_destroy(rvu_dl); - return -ENOMEM; } static int rvu_npa_health_reporters_create(struct rvu_devlink *rvu_dl) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c @@ -389,7 +389,13 @@ int bank, nixlf, index; /* get ucast entry rule entry index */ - nix_get_nixlf(rvu, pf_func, &nixlf, NULL); + if (nix_get_nixlf(rvu, pf_func, &nixlf, NULL)) { + dev_err(rvu->dev, "%s: nixlf not attached to pcifunc:0x%x\n", + __func__, pf_func); + /* Action 0 is drop */ + return 0; + } + index = npc_get_nixlf_mcam_index(mcam, pf_func, nixlf, NIXLF_UCAST_ENTRY); bank = npc_get_bank(mcam, index); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c @@ -1192,7 +1192,7 @@ write_req.enable_entry = (u8)enable; /* if counter is available then clear and use it */ if (req->set_cntr && rule->has_cntr) { - rvu_write64(rvu, blkaddr, NPC_AF_MATCH_STATX(rule->cntr), 0x00); + rvu_write64(rvu, blkaddr, NPC_AF_MATCH_STATX(rule->cntr), req->cntr_val); write_req.set_cntr = 1; write_req.cntr = rule->cntr; } @@ -1407,12 +1407,13 @@ int rvu_mbox_handler_npc_delete_flow(struct rvu *rvu, struct npc_delete_flow_req *req, - struct msg_rsp *rsp) + struct npc_delete_flow_rsp *rsp) { struct npc_mcam *mcam = &rvu->hw->mcam; struct rvu_npc_mcam_rule *iter, *tmp; u16 pcifunc = req->hdr.pcifunc; struct list_head del_list; + int blkaddr; INIT_LIST_HEAD(&del_list); @@ -1428,6 +1429,10 @@ list_move_tail(&iter->list, &del_list); /* single rule */ } else if (req->entry == iter->entry) { + blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NPC, 0); + if (blkaddr) + rsp->cntr_val = rvu_read64(rvu, blkaddr, + NPC_AF_MATCH_STATX(iter->cntr)); list_move_tail(&iter->list, &del_list); break; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.c +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.c @@ -31,8 +31,8 @@ {NIX_TXSCH_LVL_TL4, 3, 0xFFFF, {{0x0B00, 0x0B08}, {0x0B10, 0x0B18}, {0x1200, 0x12E0} } }, {NIX_TXSCH_LVL_TL3, 4, 0xFFFF, {{0x1000, 0x10E0}, {0x1600, 0x1608}, - {0x1610, 0x1618}, {0x1700, 0x17B0} } }, - {NIX_TXSCH_LVL_TL2, 2, 0xFFFF, {{0x0E00, 0x0EE0}, {0x1700, 0x17B0} } }, + {0x1610, 0x1618}, {0x1700, 0x17C8} } }, + {NIX_TXSCH_LVL_TL2, 2, 0xFFFF, {{0x0E00, 0x0EE0}, {0x1700, 0x17C8} } }, {NIX_TXSCH_LVL_TL1, 1, 0xFFFF, {{0x0C00, 0x0D98} } }, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.h +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.h @@ -437,6 +437,7 @@ #define NIX_AF_LINKX_BASE_MASK GENMASK_ULL(11, 0) #define NIX_AF_LINKX_RANGE_MASK GENMASK_ULL(19, 16) +#define NIX_AF_LINKX_MCS_CNT_MASK GENMASK_ULL(33, 32) /* SSO */ #define SSO_AF_CONST (0x1000) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/octeontx2/af/rvu_switch.c +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/af/rvu_switch.c @@ -158,6 +158,7 @@ struct npc_mcam_alloc_entry_req alloc_req = { 0 }; struct npc_mcam_alloc_entry_rsp alloc_rsp = { 0 }; struct npc_delete_flow_req uninstall_req = { 0 }; + struct npc_delete_flow_rsp uninstall_rsp = { 0 }; struct npc_mcam_free_entry_req free_req = { 0 }; struct rvu_switch *rswitch = &rvu->rswitch; struct msg_rsp rsp; @@ -197,7 +198,7 @@ uninstall_rules: uninstall_req.start = rswitch->start_entry; uninstall_req.end = rswitch->start_entry + rswitch->used_entries - 1; - rvu_mbox_handler_npc_delete_flow(rvu, &uninstall_req, &rsp); + rvu_mbox_handler_npc_delete_flow(rvu, &uninstall_req, &uninstall_rsp); kfree(rswitch->entry2pcifunc); free_entries: free_req.all = 1; @@ -209,6 +210,7 @@ void rvu_switch_disable(struct rvu *rvu) { struct npc_delete_flow_req uninstall_req = { 0 }; + struct npc_delete_flow_rsp uninstall_rsp = { 0 }; struct npc_mcam_free_entry_req free_req = { 0 }; struct rvu_switch *rswitch = &rvu->rswitch; struct rvu_hwinfo *hw = rvu->hw; @@ -250,7 +252,7 @@ uninstall_req.start = rswitch->start_entry; uninstall_req.end = rswitch->start_entry + rswitch->used_entries - 1; free_req.all = 1; - rvu_mbox_handler_npc_delete_flow(rvu, &uninstall_req, &rsp); + rvu_mbox_handler_npc_delete_flow(rvu, &uninstall_req, &uninstall_rsp); rvu_mbox_handler_npc_mcam_free_entry(rvu, &free_req, &rsp); rswitch->used_entries = 0; kfree(rswitch->entry2pcifunc); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/octeontx2/nic/otx2_devlink.c +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_devlink.c @@ -41,7 +41,6 @@ return 0; otx2_alloc_mcam_entries(pfvf, ctx->val.vu16); - otx2_tc_alloc_ent_bitmap(pfvf); return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c @@ -334,9 +334,12 @@ if (is_otx2_lbkvf(pfvf->pdev)) return; + mutex_lock(&pfvf->mbox.lock); req = otx2_mbox_alloc_msg_cgx_cfg_pause_frm(&pfvf->mbox); - if (!req) + if (!req) { + mutex_unlock(&pfvf->mbox.lock); return; + } if (!otx2_sync_mbox_msg(&pfvf->mbox)) { rsp = (struct cgx_pause_frm_cfg *) @@ -344,6 +347,7 @@ pause->rx_pause = rsp->rx_pause; pause->tx_pause = rsp->tx_pause; } + mutex_unlock(&pfvf->mbox.lock); } static int otx2_set_pauseparam(struct net_device *netdev, @@ -764,6 +768,7 @@ struct otx2_nic *pfvf = netdev_priv(dev); int ret = -EOPNOTSUPP; + pfvf->flow_cfg->ntuple = ntuple; switch (nfc->cmd) { case ETHTOOL_SRXFH: ret = otx2_set_rss_hash_opts(pfvf, nfc); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c @@ -276,6 +276,7 @@ flow_cfg = pfvf->flow_cfg; INIT_LIST_HEAD(&flow_cfg->flow_list); + INIT_LIST_HEAD(&flow_cfg->flow_list_tc); flow_cfg->max_flows = 0; return 0; @@ -298,6 +299,7 @@ return -ENOMEM; INIT_LIST_HEAD(&pf->flow_cfg->flow_list); + INIT_LIST_HEAD(&pf->flow_cfg->flow_list_tc); /* Allocate bare minimum number of MCAM entries needed for * unicast and ntuple filters. @@ -1086,6 +1088,7 @@ struct ethhdr *eth_hdr; bool new = false; int err = 0; + u64 vf_num; u32 ring; if (!flow_cfg->max_flows) { @@ -1098,7 +1101,21 @@ if (!(pfvf->flags & OTX2_FLAG_NTUPLE_SUPPORT)) return -ENOMEM; - if (ring >= pfvf->hw.rx_queues && fsp->ring_cookie != RX_CLS_FLOW_DISC) + /* Number of queues on a VF can be greater or less than + * the PF's queue. Hence no need to check for the + * queue count. Hence no need to check queue count if PF + * is installing for its VF. Below is the expected vf_num value + * based on the ethtool commands. + * + * e.g. + * 1. ethtool -U ... action -1 ==> vf_num:255 + * 2. ethtool -U ... action ==> vf_num:0 + * 3. ethtool -U ... vf queue ==> + * vf_num:vf_idx+1 + */ + vf_num = ethtool_get_flow_spec_ring_vf(fsp->ring_cookie); + if (!is_otx2_vf(pfvf->pcifunc) && !vf_num && + ring >= pfvf->hw.rx_queues && fsp->ring_cookie != RX_CLS_FLOW_DISC) return -EINVAL; if (fsp->location >= otx2_get_maxflows(flow_cfg)) @@ -1180,6 +1197,9 @@ flow_cfg->nr_flows++; } + if (flow->is_vf) + netdev_info(pfvf->netdev, + "Make sure that VF's queue number is within its queue limit\n"); return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/octeontx2/nic/otx2_struct.h +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_struct.h @@ -318,23 +318,23 @@ NIX_SND_STATUS_EXT_ERR = 0x6, NIX_SND_STATUS_JUMP_FAULT = 0x7, NIX_SND_STATUS_JUMP_POISON = 0x8, - NIX_SND_STATUS_CRC_ERR = 0x9, - NIX_SND_STATUS_IMM_ERR = 0x10, - NIX_SND_STATUS_SG_ERR = 0x11, - NIX_SND_STATUS_MEM_ERR = 0x12, - NIX_SND_STATUS_INVALID_SUBDC = 0x13, - NIX_SND_STATUS_SUBDC_ORDER_ERR = 0x14, - NIX_SND_STATUS_DATA_FAULT = 0x15, - NIX_SND_STATUS_DATA_POISON = 0x16, - NIX_SND_STATUS_NPC_DROP_ACTION = 0x17, - NIX_SND_STATUS_LOCK_VIOL = 0x18, - NIX_SND_STATUS_NPC_UCAST_CHAN_ERR = 0x19, - NIX_SND_STATUS_NPC_MCAST_CHAN_ERR = 0x20, - NIX_SND_STATUS_NPC_MCAST_ABORT = 0x21, - NIX_SND_STATUS_NPC_VTAG_PTR_ERR = 0x22, - NIX_SND_STATUS_NPC_VTAG_SIZE_ERR = 0x23, - NIX_SND_STATUS_SEND_MEM_FAULT = 0x24, - NIX_SND_STATUS_SEND_STATS_ERR = 0x25, + NIX_SND_STATUS_CRC_ERR = 0x10, + NIX_SND_STATUS_IMM_ERR = 0x11, + NIX_SND_STATUS_SG_ERR = 0x12, + NIX_SND_STATUS_MEM_ERR = 0x13, + NIX_SND_STATUS_INVALID_SUBDC = 0x14, + NIX_SND_STATUS_SUBDC_ORDER_ERR = 0x15, + NIX_SND_STATUS_DATA_FAULT = 0x16, + NIX_SND_STATUS_DATA_POISON = 0x17, + NIX_SND_STATUS_NPC_DROP_ACTION = 0x20, + NIX_SND_STATUS_LOCK_VIOL = 0x21, + NIX_SND_STATUS_NPC_UCAST_CHAN_ERR = 0x22, + NIX_SND_STATUS_NPC_MCAST_CHAN_ERR = 0x23, + NIX_SND_STATUS_NPC_MCAST_ABORT = 0x24, + NIX_SND_STATUS_NPC_VTAG_PTR_ERR = 0x25, + NIX_SND_STATUS_NPC_VTAG_SIZE_ERR = 0x26, + NIX_SND_STATUS_SEND_MEM_FAULT = 0x27, + NIX_SND_STATUS_SEND_STATS_ERR = 0x28, NIX_SND_STATUS_MAX, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c @@ -34,9 +34,8 @@ }; struct otx2_tc_flow { - struct rhash_head node; + struct list_head list; unsigned long cookie; - unsigned int bitpos; struct rcu_head rcu; struct otx2_tc_flow_stats stats; spinlock_t lock; /* lock for stats */ @@ -44,31 +43,13 @@ u16 entry; u16 leaf_profile; bool is_act_police; + u32 prio; + struct npc_install_flow_req req; + u64 rate; + u32 burst; + bool is_pps; }; -int otx2_tc_alloc_ent_bitmap(struct otx2_nic *nic) -{ - struct otx2_tc_info *tc = &nic->tc_info; - - if (!nic->flow_cfg->max_flows) - return 0; - - /* Max flows changed, free the existing bitmap */ - kfree(tc->tc_entries_bitmap); - - tc->tc_entries_bitmap = - kcalloc(BITS_TO_LONGS(nic->flow_cfg->max_flows), - sizeof(long), GFP_KERNEL); - if (!tc->tc_entries_bitmap) { - netdev_err(nic->netdev, - "Unable to alloc TC flow entries bitmap\n"); - return -ENOMEM; - } - - return 0; -} -EXPORT_SYMBOL(otx2_tc_alloc_ent_bitmap); - static void otx2_get_egress_burst_cfg(struct otx2_nic *nic, u32 burst, u32 *burst_exp, u32 *burst_mantissa) { @@ -304,21 +285,10 @@ return err; } -static int otx2_tc_act_set_police(struct otx2_nic *nic, - struct otx2_tc_flow *node, - struct flow_cls_offload *f, - u64 rate, u32 burst, u32 mark, - struct npc_install_flow_req *req, bool pps) +static int otx2_tc_act_set_hw_police(struct otx2_nic *nic, + struct otx2_tc_flow *node) { - struct netlink_ext_ack *extack = f->common.extack; - struct otx2_hw *hw = &nic->hw; - int rq_idx, rc; - - rq_idx = find_first_zero_bit(&nic->rq_bmap, hw->rx_queues); - if (rq_idx >= hw->rx_queues) { - NL_SET_ERR_MSG_MOD(extack, "Police action rules exceeded"); - return -EINVAL; - } + int rc; mutex_lock(&nic->mbox.lock); @@ -328,23 +298,17 @@ return rc; } - rc = cn10k_set_ipolicer_rate(nic, node->leaf_profile, burst, rate, pps); + rc = cn10k_set_ipolicer_rate(nic, node->leaf_profile, + node->burst, node->rate, node->is_pps); if (rc) goto free_leaf; - rc = cn10k_map_unmap_rq_policer(nic, rq_idx, node->leaf_profile, true); + rc = cn10k_map_unmap_rq_policer(nic, node->rq, node->leaf_profile, true); if (rc) goto free_leaf; mutex_unlock(&nic->mbox.lock); - req->match_id = mark & 0xFFFFULL; - req->index = rq_idx; - req->op = NIX_RX_ACTIONOP_UCAST; - set_bit(rq_idx, &nic->rq_bmap); - node->is_act_police = true; - node->rq = rq_idx; - return 0; free_leaf: @@ -356,6 +320,39 @@ return rc; } +static int otx2_tc_act_set_police(struct otx2_nic *nic, + struct otx2_tc_flow *node, + struct flow_cls_offload *f, + u64 rate, u32 burst, u32 mark, + struct npc_install_flow_req *req, bool pps) +{ + struct netlink_ext_ack *extack = f->common.extack; + struct otx2_hw *hw = &nic->hw; + int rq_idx, rc; + + rq_idx = find_first_zero_bit(&nic->rq_bmap, hw->rx_queues); + if (rq_idx >= hw->rx_queues) { + NL_SET_ERR_MSG_MOD(extack, "Police action rules exceeded"); + return -EINVAL; + } + + req->match_id = mark & 0xFFFFULL; + req->index = rq_idx; + req->op = NIX_RX_ACTIONOP_UCAST; + + node->is_act_police = true; + node->rq = rq_idx; + node->burst = burst; + node->rate = rate; + node->is_pps = pps; + + rc = otx2_tc_act_set_hw_police(nic, node); + if (!rc) + set_bit(rq_idx, &nic->rq_bmap); + + return rc; +} + static int otx2_tc_parse_actions(struct otx2_nic *nic, struct flow_action *flow_action, struct npc_install_flow_req *req, @@ -707,8 +704,117 @@ return otx2_tc_parse_actions(nic, &rule->action, req, f, node); } -static int otx2_del_mcam_flow_entry(struct otx2_nic *nic, u16 entry) +static void otx2_destroy_tc_flow_list(struct otx2_nic *pfvf) +{ + struct otx2_flow_config *flow_cfg = pfvf->flow_cfg; + struct otx2_tc_flow *iter, *tmp; + + if (!(pfvf->flags & OTX2_FLAG_MCAM_ENTRIES_ALLOC)) + return; + + list_for_each_entry_safe(iter, tmp, &flow_cfg->flow_list_tc, list) { + list_del(&iter->list); + kfree(iter); + flow_cfg->nr_flows--; + } +} + +static struct otx2_tc_flow *otx2_tc_get_entry_by_cookie(struct otx2_flow_config *flow_cfg, + unsigned long cookie) +{ + struct otx2_tc_flow *tmp; + + list_for_each_entry(tmp, &flow_cfg->flow_list_tc, list) { + if (tmp->cookie == cookie) + return tmp; + } + + return NULL; +} + +static struct otx2_tc_flow *otx2_tc_get_entry_by_index(struct otx2_flow_config *flow_cfg, + int index) +{ + struct otx2_tc_flow *tmp; + int i = 0; + + list_for_each_entry(tmp, &flow_cfg->flow_list_tc, list) { + if (i == index) + return tmp; + i++; + } + + return NULL; +} + +static void otx2_tc_del_from_flow_list(struct otx2_flow_config *flow_cfg, + struct otx2_tc_flow *node) +{ + struct list_head *pos, *n; + struct otx2_tc_flow *tmp; + + list_for_each_safe(pos, n, &flow_cfg->flow_list_tc) { + tmp = list_entry(pos, struct otx2_tc_flow, list); + if (node == tmp) { + list_del(&node->list); + return; + } + } +} + +static int otx2_tc_add_to_flow_list(struct otx2_flow_config *flow_cfg, + struct otx2_tc_flow *node) +{ + struct list_head *pos, *n; + struct otx2_tc_flow *tmp; + int index = 0; + + /* If the flow list is empty then add the new node */ + if (list_empty(&flow_cfg->flow_list_tc)) { + list_add(&node->list, &flow_cfg->flow_list_tc); + return index; + } + + list_for_each_safe(pos, n, &flow_cfg->flow_list_tc) { + tmp = list_entry(pos, struct otx2_tc_flow, list); + if (node->prio < tmp->prio) + break; + index++; + } + + list_add(&node->list, pos->prev); + return index; +} + +static int otx2_add_mcam_flow_entry(struct otx2_nic *nic, struct npc_install_flow_req *req) +{ + struct npc_install_flow_req *tmp_req; + int err; + + mutex_lock(&nic->mbox.lock); + tmp_req = otx2_mbox_alloc_msg_npc_install_flow(&nic->mbox); + if (!tmp_req) { + mutex_unlock(&nic->mbox.lock); + return -ENOMEM; + } + + memcpy(tmp_req, req, sizeof(struct npc_install_flow_req)); + /* Send message to AF */ + err = otx2_sync_mbox_msg(&nic->mbox); + if (err) { + netdev_err(nic->netdev, "Failed to install MCAM flow entry %d\n", + req->entry); + mutex_unlock(&nic->mbox.lock); + return -EFAULT; + } + + mutex_unlock(&nic->mbox.lock); + return 0; +} + +static int otx2_del_mcam_flow_entry(struct otx2_nic *nic, u16 entry, u16 *cntr_val) { + struct npc_delete_flow_rsp *rsp; struct npc_delete_flow_req *req; int err; @@ -729,22 +835,113 @@ mutex_unlock(&nic->mbox.lock); return -EFAULT; } + + if (cntr_val) { + rsp = (struct npc_delete_flow_rsp *)otx2_mbox_get_rsp(&nic->mbox.mbox, + 0, &req->hdr); + if (IS_ERR(rsp)) { + netdev_err(nic->netdev, "Failed to get MCAM delete response for entry %d\n", + entry); + mutex_unlock(&nic->mbox.lock); + return -EFAULT; + } + + *cntr_val = rsp->cntr_val; + } + mutex_unlock(&nic->mbox.lock); + return 0; +} + +static int otx2_tc_update_mcam_table_del_req(struct otx2_nic *nic, + struct otx2_flow_config *flow_cfg, + struct otx2_tc_flow *node) +{ + struct list_head *pos, *n; + struct otx2_tc_flow *tmp; + int i = 0, index = 0; + u16 cntr_val = 0; + + /* Find and delete the entry from the list and re-install + * all the entries from beginning to the index of the + * deleted entry to higher mcam indexes. + */ + list_for_each_safe(pos, n, &flow_cfg->flow_list_tc) { + tmp = list_entry(pos, struct otx2_tc_flow, list); + if (node == tmp) { + list_del(&tmp->list); + break; + } + + otx2_del_mcam_flow_entry(nic, tmp->entry, &cntr_val); + tmp->entry++; + tmp->req.entry = tmp->entry; + tmp->req.cntr_val = cntr_val; + index++; + } + + list_for_each_safe(pos, n, &flow_cfg->flow_list_tc) { + if (i == index) + break; + + tmp = list_entry(pos, struct otx2_tc_flow, list); + otx2_add_mcam_flow_entry(nic, &tmp->req); + i++; + } return 0; } +static int otx2_tc_update_mcam_table_add_req(struct otx2_nic *nic, + struct otx2_flow_config *flow_cfg, + struct otx2_tc_flow *node) +{ + int mcam_idx = flow_cfg->max_flows - flow_cfg->nr_flows - 1; + struct otx2_tc_flow *tmp; + int list_idx, i; + u16 cntr_val = 0; + + /* Find the index of the entry(list_idx) whose priority + * is greater than the new entry and re-install all + * the entries from beginning to list_idx to higher + * mcam indexes. + */ + list_idx = otx2_tc_add_to_flow_list(flow_cfg, node); + for (i = 0; i < list_idx; i++) { + tmp = otx2_tc_get_entry_by_index(flow_cfg, i); + if (!tmp) + return -ENOMEM; + + otx2_del_mcam_flow_entry(nic, tmp->entry, &cntr_val); + tmp->entry = flow_cfg->flow_ent[mcam_idx]; + tmp->req.entry = tmp->entry; + tmp->req.cntr_val = cntr_val; + otx2_add_mcam_flow_entry(nic, &tmp->req); + mcam_idx++; + } + + return mcam_idx; +} + +static int otx2_tc_update_mcam_table(struct otx2_nic *nic, + struct otx2_flow_config *flow_cfg, + struct otx2_tc_flow *node, + bool add_req) +{ + if (add_req) + return otx2_tc_update_mcam_table_add_req(nic, flow_cfg, node); + + return otx2_tc_update_mcam_table_del_req(nic, flow_cfg, node); +} + static int otx2_tc_del_flow(struct otx2_nic *nic, struct flow_cls_offload *tc_flow_cmd) { struct otx2_flow_config *flow_cfg = nic->flow_cfg; - struct otx2_tc_info *tc_info = &nic->tc_info; struct otx2_tc_flow *flow_node; int err; - flow_node = rhashtable_lookup_fast(&tc_info->flow_table, - &tc_flow_cmd->cookie, - tc_info->flow_ht_params); + flow_node = otx2_tc_get_entry_by_cookie(flow_cfg, tc_flow_cmd->cookie); if (!flow_node) { netdev_err(nic->netdev, "tc flow not found for cookie 0x%lx\n", tc_flow_cmd->cookie); @@ -752,6 +949,11 @@ } if (flow_node->is_act_police) { + __clear_bit(flow_node->rq, &nic->rq_bmap); + + if (nic->flags & OTX2_FLAG_INTF_DOWN) + goto free_mcam_flow; + mutex_lock(&nic->mbox.lock); err = cn10k_map_unmap_rq_policer(nic, flow_node->rq, @@ -767,21 +969,14 @@ "Unable to free leaf bandwidth profile(%d)\n", flow_node->leaf_profile); - __clear_bit(flow_node->rq, &nic->rq_bmap); - mutex_unlock(&nic->mbox.lock); } - otx2_del_mcam_flow_entry(nic, flow_node->entry); - - WARN_ON(rhashtable_remove_fast(&nic->tc_info.flow_table, - &flow_node->node, - nic->tc_info.flow_ht_params)); +free_mcam_flow: + otx2_del_mcam_flow_entry(nic, flow_node->entry, NULL); + otx2_tc_update_mcam_table(nic, flow_cfg, flow_node, false); kfree_rcu(flow_node, rcu); - - clear_bit(flow_node->bitpos, tc_info->tc_entries_bitmap); flow_cfg->nr_flows--; - return 0; } @@ -790,15 +985,19 @@ { struct netlink_ext_ack *extack = tc_flow_cmd->common.extack; struct otx2_flow_config *flow_cfg = nic->flow_cfg; - struct otx2_tc_info *tc_info = &nic->tc_info; struct otx2_tc_flow *new_node, *old_node; struct npc_install_flow_req *req, dummy; - int rc, err; + int rc, err, mcam_idx; if (!(nic->flags & OTX2_FLAG_TC_FLOWER_SUPPORT)) return -ENOMEM; - if (bitmap_full(tc_info->tc_entries_bitmap, flow_cfg->max_flows)) { + if (nic->flags & OTX2_FLAG_INTF_DOWN) { + NL_SET_ERR_MSG_MOD(extack, "Interface not initialized"); + return -EINVAL; + } + + if (flow_cfg->nr_flows == flow_cfg->max_flows) { NL_SET_ERR_MSG_MOD(extack, "Free MCAM entry not available to add the flow"); return -ENOMEM; @@ -810,6 +1009,7 @@ return -ENOMEM; spin_lock_init(&new_node->lock); new_node->cookie = tc_flow_cmd->cookie; + new_node->prio = tc_flow_cmd->common.prio; memset(&dummy, 0, sizeof(struct npc_install_flow_req)); @@ -820,12 +1020,11 @@ } /* If a flow exists with the same cookie, delete it */ - old_node = rhashtable_lookup_fast(&tc_info->flow_table, - &tc_flow_cmd->cookie, - tc_info->flow_ht_params); + old_node = otx2_tc_get_entry_by_cookie(flow_cfg, tc_flow_cmd->cookie); if (old_node) otx2_tc_del_flow(nic, tc_flow_cmd); + mcam_idx = otx2_tc_update_mcam_table(nic, flow_cfg, new_node, true); mutex_lock(&nic->mbox.lock); req = otx2_mbox_alloc_msg_npc_install_flow(&nic->mbox); if (!req) { @@ -836,11 +1035,8 @@ memcpy(&dummy.hdr, &req->hdr, sizeof(struct mbox_msghdr)); memcpy(req, &dummy, sizeof(struct npc_install_flow_req)); - - new_node->bitpos = find_first_zero_bit(tc_info->tc_entries_bitmap, - flow_cfg->max_flows); req->channel = nic->hw.rx_chan_base; - req->entry = flow_cfg->flow_ent[flow_cfg->max_flows - new_node->bitpos - 1]; + req->entry = flow_cfg->flow_ent[mcam_idx]; req->intf = NIX_INTF_RX; req->set_cntr = 1; new_node->entry = req->entry; @@ -850,26 +1046,18 @@ if (rc) { NL_SET_ERR_MSG_MOD(extack, "Failed to install MCAM flow entry"); mutex_unlock(&nic->mbox.lock); - kfree_rcu(new_node, rcu); goto free_leaf; } - mutex_unlock(&nic->mbox.lock); - /* add new flow to flow-table */ - rc = rhashtable_insert_fast(&nic->tc_info.flow_table, &new_node->node, - nic->tc_info.flow_ht_params); - if (rc) { - otx2_del_mcam_flow_entry(nic, req->entry); - kfree_rcu(new_node, rcu); - goto free_leaf; - } + mutex_unlock(&nic->mbox.lock); + memcpy(&new_node->req, req, sizeof(struct npc_install_flow_req)); - set_bit(new_node->bitpos, tc_info->tc_entries_bitmap); flow_cfg->nr_flows++; - return 0; free_leaf: + otx2_tc_del_from_flow_list(flow_cfg, new_node); + kfree_rcu(new_node, rcu); if (new_node->is_act_police) { mutex_lock(&nic->mbox.lock); @@ -896,16 +1084,13 @@ static int otx2_tc_get_flow_stats(struct otx2_nic *nic, struct flow_cls_offload *tc_flow_cmd) { - struct otx2_tc_info *tc_info = &nic->tc_info; struct npc_mcam_get_stats_req *req; struct npc_mcam_get_stats_rsp *rsp; struct otx2_tc_flow_stats *stats; struct otx2_tc_flow *flow_node; int err; - flow_node = rhashtable_lookup_fast(&tc_info->flow_table, - &tc_flow_cmd->cookie, - tc_info->flow_ht_params); + flow_node = otx2_tc_get_entry_by_cookie(nic->flow_cfg, tc_flow_cmd->cookie); if (!flow_node) { netdev_info(nic->netdev, "tc flow not found for cookie %lx", tc_flow_cmd->cookie); @@ -1053,12 +1238,20 @@ void *type_data, void *cb_priv) { struct otx2_nic *nic = cb_priv; + bool ntuple; if (!tc_cls_can_offload_and_chain0(nic->netdev, type_data)) return -EOPNOTSUPP; + ntuple = nic->netdev->features & NETIF_F_NTUPLE; switch (type) { case TC_SETUP_CLSFLOWER: + if (ntuple) { + netdev_warn(nic->netdev, + "Can't install TC flower offload rule when NTUPLE is active"); + return -EOPNOTSUPP; + } + return otx2_setup_tc_cls_flower(nic, type_data); case TC_SETUP_CLSMATCHALL: return otx2_setup_tc_ingress_matchall(nic, type_data); @@ -1143,18 +1336,8 @@ } EXPORT_SYMBOL(otx2_setup_tc); -static const struct rhashtable_params tc_flow_ht_params = { - .head_offset = offsetof(struct otx2_tc_flow, node), - .key_offset = offsetof(struct otx2_tc_flow, cookie), - .key_len = sizeof(((struct otx2_tc_flow *)0)->cookie), - .automatic_shrinking = true, -}; - int otx2_init_tc(struct otx2_nic *nic) { - struct otx2_tc_info *tc = &nic->tc_info; - int err; - /* Exclude receive queue 0 being used for police action */ set_bit(0, &nic->rq_bmap); @@ -1164,25 +1347,54 @@ return -EINVAL; } - err = otx2_tc_alloc_ent_bitmap(nic); - if (err) - return err; - - tc->flow_ht_params = tc_flow_ht_params; - err = rhashtable_init(&tc->flow_table, &tc->flow_ht_params); - if (err) { - kfree(tc->tc_entries_bitmap); - tc->tc_entries_bitmap = NULL; - } - return err; + return 0; } EXPORT_SYMBOL(otx2_init_tc); void otx2_shutdown_tc(struct otx2_nic *nic) { - struct otx2_tc_info *tc = &nic->tc_info; - - kfree(tc->tc_entries_bitmap); - rhashtable_destroy(&tc->flow_table); + otx2_destroy_tc_flow_list(nic); } EXPORT_SYMBOL(otx2_shutdown_tc); + +static void otx2_tc_config_ingress_rule(struct otx2_nic *nic, + struct otx2_tc_flow *node) +{ + struct npc_install_flow_req *req; + + if (otx2_tc_act_set_hw_police(nic, node)) + return; + + mutex_lock(&nic->mbox.lock); + + req = otx2_mbox_alloc_msg_npc_install_flow(&nic->mbox); + if (!req) + goto err; + + memcpy(req, &node->req, sizeof(struct npc_install_flow_req)); + + if (otx2_sync_mbox_msg(&nic->mbox)) + netdev_err(nic->netdev, + "Failed to install MCAM flow entry for ingress rule"); +err: + mutex_unlock(&nic->mbox.lock); +} + +void otx2_tc_apply_ingress_police_rules(struct otx2_nic *nic) +{ + struct otx2_flow_config *flow_cfg = nic->flow_cfg; + struct otx2_tc_flow *node; + + /* If any ingress policer rules exist for the interface then + * apply those rules. Ingress policer rules depend on bandwidth + * profiles linked to the receive queues. Since no receive queues + * exist when interface is down, ingress policer rules are stored + * and configured in hardware after all receive queues are allocated + * in otx2_open. + */ + list_for_each_entry(node, &flow_cfg->flow_list_tc, list) { + if (node->is_act_police) + otx2_tc_config_ingress_rule(nic, node); + } +} +EXPORT_SYMBOL(otx2_tc_apply_ingress_police_rules); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/marvell/sky2.h +++ linux-riscv-6.5.0/drivers/net/ethernet/marvell/sky2.h @@ -2195,7 +2195,7 @@ struct sk_buff *skb; dma_addr_t data_addr; DEFINE_DMA_UNMAP_LEN(data_size); - dma_addr_t frag_addr[ETH_JUMBO_MTU >> PAGE_SHIFT]; + dma_addr_t frag_addr[ETH_JUMBO_MTU >> PAGE_SHIFT ?: 1]; }; enum flow_control { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mediatek/mtk_wed_regs.h +++ linux-riscv-6.5.0/drivers/net/ethernet/mediatek/mtk_wed_regs.h @@ -64,8 +64,8 @@ #define MTK_WED_EXT_INT_STATUS_TKID_TITO_INVALID BIT(4) #define MTK_WED_EXT_INT_STATUS_TX_FBUF_LO_TH BIT(8) #define MTK_WED_EXT_INT_STATUS_TX_FBUF_HI_TH BIT(9) -#define MTK_WED_EXT_INT_STATUS_RX_FBUF_LO_TH BIT(12) -#define MTK_WED_EXT_INT_STATUS_RX_FBUF_HI_TH BIT(13) +#define MTK_WED_EXT_INT_STATUS_RX_FBUF_LO_TH BIT(10) /* wed v2 */ +#define MTK_WED_EXT_INT_STATUS_RX_FBUF_HI_TH BIT(11) /* wed v2 */ #define MTK_WED_EXT_INT_STATUS_RX_DRV_R_RESP_ERR BIT(16) #define MTK_WED_EXT_INT_STATUS_RX_DRV_W_RESP_ERR BIT(17) #define MTK_WED_EXT_INT_STATUS_RX_DRV_COHERENT BIT(18) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c @@ -848,7 +848,7 @@ mlx5_core_dbg(tracer->dev, "FWTracer: ownership changed, current=(%d)\n", tracer->owner); if (tracer->owner) { - tracer->owner = false; + mlx5_fw_tracer_ownership_acquire(tracer); return; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/health.h +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en/health.h @@ -18,6 +18,7 @@ void mlx5e_reporter_tx_destroy(struct mlx5e_priv *priv); void mlx5e_reporter_tx_err_cqe(struct mlx5e_txqsq *sq); int mlx5e_reporter_tx_timeout(struct mlx5e_txqsq *sq); +void mlx5e_reporter_tx_ptpsq_unhealthy(struct mlx5e_ptpsq *ptpsq); int mlx5e_health_cq_diag_fmsg(struct mlx5e_cq *cq, struct devlink_fmsg *fmsg); int mlx5e_health_cq_common_diag_fmsg(struct mlx5e_cq *cq, struct devlink_fmsg *fmsg); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c @@ -2,9 +2,12 @@ // Copyright (c) 2020 Mellanox Technologies #include "en/ptp.h" +#include "en/health.h" #include "en/txrx.h" #include "en/params.h" #include "en/fs_tt_redirect.h" +#include +#include struct mlx5e_ptp_fs { struct mlx5_flow_handle *l2_rule; @@ -19,6 +22,48 @@ struct mlx5e_rq_param rq_param; }; +struct mlx5e_ptp_port_ts_cqe_tracker { + u8 metadata_id; + bool inuse : 1; + struct list_head entry; +}; + +struct mlx5e_ptp_port_ts_cqe_list { + struct mlx5e_ptp_port_ts_cqe_tracker *nodes; + struct list_head tracker_list_head; + /* Sync list operations in xmit and napi_poll contexts */ + spinlock_t tracker_list_lock; +}; + +static inline void +mlx5e_ptp_port_ts_cqe_list_add(struct mlx5e_ptp_port_ts_cqe_list *list, u8 metadata) +{ + struct mlx5e_ptp_port_ts_cqe_tracker *tracker = &list->nodes[metadata]; + + WARN_ON_ONCE(tracker->inuse); + tracker->inuse = true; + spin_lock(&list->tracker_list_lock); + list_add_tail(&tracker->entry, &list->tracker_list_head); + spin_unlock(&list->tracker_list_lock); +} + +static void +mlx5e_ptp_port_ts_cqe_list_remove(struct mlx5e_ptp_port_ts_cqe_list *list, u8 metadata) +{ + struct mlx5e_ptp_port_ts_cqe_tracker *tracker = &list->nodes[metadata]; + + WARN_ON_ONCE(!tracker->inuse); + tracker->inuse = false; + spin_lock(&list->tracker_list_lock); + list_del(&tracker->entry); + spin_unlock(&list->tracker_list_lock); +} + +void mlx5e_ptpsq_track_metadata(struct mlx5e_ptpsq *ptpsq, u8 metadata) +{ + mlx5e_ptp_port_ts_cqe_list_add(ptpsq->ts_cqe_pending_list, metadata); +} + struct mlx5e_skb_cb_hwtstamp { ktime_t cqe_hwtstamp; ktime_t port_hwtstamp; @@ -79,84 +124,113 @@ memset(skb->cb, 0, sizeof(struct mlx5e_skb_cb_hwtstamp)); } -#define PTP_WQE_CTR2IDX(val) ((val) & ptpsq->ts_cqe_ctr_mask) - -static bool mlx5e_ptp_ts_cqe_drop(struct mlx5e_ptpsq *ptpsq, u16 skb_ci, u16 skb_id) +static struct sk_buff * +mlx5e_ptp_metadata_map_lookup(struct mlx5e_ptp_metadata_map *map, u16 metadata) { - return (ptpsq->ts_cqe_ctr_mask && (skb_ci != skb_id)); + return map->data[metadata]; } -static bool mlx5e_ptp_ts_cqe_ooo(struct mlx5e_ptpsq *ptpsq, u16 skb_id) +static struct sk_buff * +mlx5e_ptp_metadata_map_remove(struct mlx5e_ptp_metadata_map *map, u16 metadata) { - u16 skb_ci = PTP_WQE_CTR2IDX(ptpsq->skb_fifo_cc); - u16 skb_pi = PTP_WQE_CTR2IDX(ptpsq->skb_fifo_pc); + struct sk_buff *skb; - if (PTP_WQE_CTR2IDX(skb_id - skb_ci) >= PTP_WQE_CTR2IDX(skb_pi - skb_ci)) - return true; + skb = map->data[metadata]; + map->data[metadata] = NULL; - return false; + return skb; } -static void mlx5e_ptp_skb_fifo_ts_cqe_resync(struct mlx5e_ptpsq *ptpsq, u16 skb_ci, - u16 skb_id, int budget) +static bool mlx5e_ptp_metadata_map_unhealthy(struct mlx5e_ptp_metadata_map *map) { - struct skb_shared_hwtstamps hwts = {}; - struct sk_buff *skb; + /* Considered beginning unhealthy state if size * 15 / 2^4 cannot be reclaimed. */ + return map->undelivered_counter > (map->capacity >> 4) * 15; +} - ptpsq->cq_stats->resync_event++; +static void mlx5e_ptpsq_mark_ts_cqes_undelivered(struct mlx5e_ptpsq *ptpsq, + ktime_t port_tstamp) +{ + struct mlx5e_ptp_port_ts_cqe_list *cqe_list = ptpsq->ts_cqe_pending_list; + ktime_t timeout = ns_to_ktime(MLX5E_PTP_TS_CQE_UNDELIVERED_TIMEOUT); + struct mlx5e_ptp_metadata_map *metadata_map = &ptpsq->metadata_map; + struct mlx5e_ptp_port_ts_cqe_tracker *pos, *n; + + spin_lock(&cqe_list->tracker_list_lock); + list_for_each_entry_safe(pos, n, &cqe_list->tracker_list_head, entry) { + struct sk_buff *skb = + mlx5e_ptp_metadata_map_lookup(metadata_map, pos->metadata_id); + ktime_t dma_tstamp = mlx5e_skb_cb_get_hwts(skb)->cqe_hwtstamp; + + if (!dma_tstamp || + ktime_after(ktime_add(dma_tstamp, timeout), port_tstamp)) + break; - while (skb_ci != skb_id) { - skb = mlx5e_skb_fifo_pop(&ptpsq->skb_fifo); - hwts.hwtstamp = mlx5e_skb_cb_get_hwts(skb)->cqe_hwtstamp; - skb_tstamp_tx(skb, &hwts); - ptpsq->cq_stats->resync_cqe++; - napi_consume_skb(skb, budget); - skb_ci = PTP_WQE_CTR2IDX(ptpsq->skb_fifo_cc); + metadata_map->undelivered_counter++; + WARN_ON_ONCE(!pos->inuse); + pos->inuse = false; + list_del(&pos->entry); } + spin_unlock(&cqe_list->tracker_list_lock); } +#define PTP_WQE_CTR2IDX(val) ((val) & ptpsq->ts_cqe_ctr_mask) + static void mlx5e_ptp_handle_ts_cqe(struct mlx5e_ptpsq *ptpsq, struct mlx5_cqe64 *cqe, + u8 *md_buff, + u8 *md_buff_sz, int budget) { - u16 skb_id = PTP_WQE_CTR2IDX(be16_to_cpu(cqe->wqe_counter)); - u16 skb_ci = PTP_WQE_CTR2IDX(ptpsq->skb_fifo_cc); + struct mlx5e_ptp_port_ts_cqe_list *pending_cqe_list = ptpsq->ts_cqe_pending_list; + u8 metadata_id = PTP_WQE_CTR2IDX(be16_to_cpu(cqe->wqe_counter)); + bool is_err_cqe = !!MLX5E_RX_ERR_CQE(cqe); struct mlx5e_txqsq *sq = &ptpsq->txqsq; struct sk_buff *skb; ktime_t hwtstamp; - if (unlikely(MLX5E_RX_ERR_CQE(cqe))) { - skb = mlx5e_skb_fifo_pop(&ptpsq->skb_fifo); - ptpsq->cq_stats->err_cqe++; - goto out; + if (likely(pending_cqe_list->nodes[metadata_id].inuse)) { + mlx5e_ptp_port_ts_cqe_list_remove(pending_cqe_list, metadata_id); + } else { + /* Reclaim space in the unlikely event CQE was delivered after + * marking it late. + */ + ptpsq->metadata_map.undelivered_counter--; + ptpsq->cq_stats->late_cqe++; } - if (mlx5e_ptp_ts_cqe_drop(ptpsq, skb_ci, skb_id)) { - if (mlx5e_ptp_ts_cqe_ooo(ptpsq, skb_id)) { - /* already handled by a previous resync */ - ptpsq->cq_stats->ooo_cqe_drop++; - return; - } - mlx5e_ptp_skb_fifo_ts_cqe_resync(ptpsq, skb_ci, skb_id, budget); + skb = mlx5e_ptp_metadata_map_remove(&ptpsq->metadata_map, metadata_id); + + if (unlikely(is_err_cqe)) { + ptpsq->cq_stats->err_cqe++; + goto out; } - skb = mlx5e_skb_fifo_pop(&ptpsq->skb_fifo); hwtstamp = mlx5e_cqe_ts_to_ns(sq->ptp_cyc2time, sq->clock, get_cqe_ts(cqe)); mlx5e_skb_cb_hwtstamp_handler(skb, MLX5E_SKB_CB_PORT_HWTSTAMP, hwtstamp, ptpsq->cq_stats); ptpsq->cq_stats->cqe++; + mlx5e_ptpsq_mark_ts_cqes_undelivered(ptpsq, hwtstamp); out: napi_consume_skb(skb, budget); + md_buff[*md_buff_sz++] = metadata_id; + if (unlikely(mlx5e_ptp_metadata_map_unhealthy(&ptpsq->metadata_map)) && + !test_and_set_bit(MLX5E_SQ_STATE_RECOVERING, &sq->state)) + queue_work(ptpsq->txqsq.priv->wq, &ptpsq->report_unhealthy_work); } -static bool mlx5e_ptp_poll_ts_cq(struct mlx5e_cq *cq, int budget) +static bool mlx5e_ptp_poll_ts_cq(struct mlx5e_cq *cq, int napi_budget) { struct mlx5e_ptpsq *ptpsq = container_of(cq, struct mlx5e_ptpsq, ts_cq); - struct mlx5_cqwq *cqwq = &cq->wq; + int budget = min(napi_budget, MLX5E_TX_CQ_POLL_BUDGET); + u8 metadata_buff[MLX5E_TX_CQ_POLL_BUDGET]; + u8 metadata_buff_sz = 0; + struct mlx5_cqwq *cqwq; struct mlx5_cqe64 *cqe; int work_done = 0; + cqwq = &cq->wq; + if (unlikely(!test_bit(MLX5E_SQ_STATE_ENABLED, &ptpsq->txqsq.state))) return false; @@ -167,7 +241,8 @@ do { mlx5_cqwq_pop(cqwq); - mlx5e_ptp_handle_ts_cqe(ptpsq, cqe, budget); + mlx5e_ptp_handle_ts_cqe(ptpsq, cqe, + metadata_buff, &metadata_buff_sz, napi_budget); } while ((++work_done < budget) && (cqe = mlx5_cqwq_get_cqe(cqwq))); mlx5_cqwq_update_db_record(cqwq); @@ -175,6 +250,10 @@ /* ensure cq space is freed before enabling more cqes */ wmb(); + while (metadata_buff_sz > 0) + mlx5e_ptp_metadata_fifo_push(&ptpsq->metadata_freelist, + metadata_buff[--metadata_buff_sz]); + mlx5e_txqsq_wake(&ptpsq->txqsq); return work_done == budget; @@ -291,36 +370,86 @@ static int mlx5e_ptp_alloc_traffic_db(struct mlx5e_ptpsq *ptpsq, int numa) { - int wq_sz = mlx5_wq_cyc_get_size(&ptpsq->txqsq.wq); - struct mlx5_core_dev *mdev = ptpsq->txqsq.mdev; + struct mlx5e_ptp_metadata_fifo *metadata_freelist = &ptpsq->metadata_freelist; + struct mlx5e_ptp_metadata_map *metadata_map = &ptpsq->metadata_map; + struct mlx5e_ptp_port_ts_cqe_list *cqe_list; + int db_sz; + int md; - ptpsq->skb_fifo.fifo = kvzalloc_node(array_size(wq_sz, sizeof(*ptpsq->skb_fifo.fifo)), - GFP_KERNEL, numa); - if (!ptpsq->skb_fifo.fifo) + cqe_list = kvzalloc_node(sizeof(*ptpsq->ts_cqe_pending_list), GFP_KERNEL, numa); + if (!cqe_list) return -ENOMEM; + ptpsq->ts_cqe_pending_list = cqe_list; + + db_sz = min_t(u32, mlx5_wq_cyc_get_size(&ptpsq->txqsq.wq), + 1 << MLX5_CAP_GEN_2(ptpsq->txqsq.mdev, + ts_cqe_metadata_size2wqe_counter)); + ptpsq->ts_cqe_ctr_mask = db_sz - 1; + + cqe_list->nodes = kvzalloc_node(array_size(db_sz, sizeof(*cqe_list->nodes)), + GFP_KERNEL, numa); + if (!cqe_list->nodes) + goto free_cqe_list; + INIT_LIST_HEAD(&cqe_list->tracker_list_head); + spin_lock_init(&cqe_list->tracker_list_lock); + + metadata_freelist->data = + kvzalloc_node(array_size(db_sz, sizeof(*metadata_freelist->data)), + GFP_KERNEL, numa); + if (!metadata_freelist->data) + goto free_cqe_list_nodes; + metadata_freelist->mask = ptpsq->ts_cqe_ctr_mask; + + for (md = 0; md < db_sz; ++md) { + cqe_list->nodes[md].metadata_id = md; + metadata_freelist->data[md] = md; + } + metadata_freelist->pc = db_sz; + + metadata_map->data = + kvzalloc_node(array_size(db_sz, sizeof(*metadata_map->data)), + GFP_KERNEL, numa); + if (!metadata_map->data) + goto free_metadata_freelist; + metadata_map->capacity = db_sz; - ptpsq->skb_fifo.pc = &ptpsq->skb_fifo_pc; - ptpsq->skb_fifo.cc = &ptpsq->skb_fifo_cc; - ptpsq->skb_fifo.mask = wq_sz - 1; - if (MLX5_CAP_GEN_2(mdev, ts_cqe_metadata_size2wqe_counter)) - ptpsq->ts_cqe_ctr_mask = - (1 << MLX5_CAP_GEN_2(mdev, ts_cqe_metadata_size2wqe_counter)) - 1; return 0; + +free_metadata_freelist: + kvfree(metadata_freelist->data); +free_cqe_list_nodes: + kvfree(cqe_list->nodes); +free_cqe_list: + kvfree(cqe_list); + return -ENOMEM; } -static void mlx5e_ptp_drain_skb_fifo(struct mlx5e_skb_fifo *skb_fifo) +static void mlx5e_ptp_drain_metadata_map(struct mlx5e_ptp_metadata_map *map) { - while (*skb_fifo->pc != *skb_fifo->cc) { - struct sk_buff *skb = mlx5e_skb_fifo_pop(skb_fifo); + int idx; + + for (idx = 0; idx < map->capacity; ++idx) { + struct sk_buff *skb = map->data[idx]; dev_kfree_skb_any(skb); } } -static void mlx5e_ptp_free_traffic_db(struct mlx5e_skb_fifo *skb_fifo) +static void mlx5e_ptp_free_traffic_db(struct mlx5e_ptpsq *ptpsq) { - mlx5e_ptp_drain_skb_fifo(skb_fifo); - kvfree(skb_fifo->fifo); + mlx5e_ptp_drain_metadata_map(&ptpsq->metadata_map); + kvfree(ptpsq->metadata_map.data); + kvfree(ptpsq->metadata_freelist.data); + kvfree(ptpsq->ts_cqe_pending_list->nodes); + kvfree(ptpsq->ts_cqe_pending_list); +} + +static void mlx5e_ptpsq_unhealthy_work(struct work_struct *work) +{ + struct mlx5e_ptpsq *ptpsq = + container_of(work, struct mlx5e_ptpsq, report_unhealthy_work); + + mlx5e_reporter_tx_ptpsq_unhealthy(ptpsq); } static int mlx5e_ptp_open_txqsq(struct mlx5e_ptp *c, u32 tisn, @@ -348,11 +477,12 @@ if (err) goto err_free_txqsq; - err = mlx5e_ptp_alloc_traffic_db(ptpsq, - dev_to_node(mlx5_core_dma_dev(c->mdev))); + err = mlx5e_ptp_alloc_traffic_db(ptpsq, dev_to_node(mlx5_core_dma_dev(c->mdev))); if (err) goto err_free_txqsq; + INIT_WORK(&ptpsq->report_unhealthy_work, mlx5e_ptpsq_unhealthy_work); + return 0; err_free_txqsq: @@ -366,7 +496,9 @@ struct mlx5e_txqsq *sq = &ptpsq->txqsq; struct mlx5_core_dev *mdev = sq->mdev; - mlx5e_ptp_free_traffic_db(&ptpsq->skb_fifo); + if (current_work() != &ptpsq->report_unhealthy_work) + cancel_work_sync(&ptpsq->report_unhealthy_work); + mlx5e_ptp_free_traffic_db(ptpsq); cancel_work_sync(&sq->recover_work); mlx5e_ptp_destroy_sq(mdev, sq->sqn); mlx5e_free_txqsq_descs(sq); @@ -534,7 +666,10 @@ /* SQ */ if (test_bit(MLX5E_PTP_STATE_TX, c->state)) { - params->log_sq_size = orig->log_sq_size; + params->log_sq_size = + min(MLX5_CAP_GEN_2(c->mdev, ts_cqe_metadata_size2wqe_counter), + MLX5E_PTP_MAX_LOG_SQ_SIZE); + params->log_sq_size = min(params->log_sq_size, orig->log_sq_size); mlx5e_ptp_build_sq_param(c->mdev, params, &cparams->txq_sq_param); } /* RQ */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.h +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.h @@ -7,18 +7,38 @@ #include "en.h" #include "en_stats.h" #include "en/txrx.h" +#include #include +#include +#include #define MLX5E_PTP_CHANNEL_IX 0 +#define MLX5E_PTP_MAX_LOG_SQ_SIZE (8U) +#define MLX5E_PTP_TS_CQE_UNDELIVERED_TIMEOUT (1 * NSEC_PER_SEC) + +struct mlx5e_ptp_metadata_fifo { + u8 cc; + u8 pc; + u8 mask; + u8 *data; +}; + +struct mlx5e_ptp_metadata_map { + u16 undelivered_counter; + u16 capacity; + struct sk_buff **data; +}; struct mlx5e_ptpsq { struct mlx5e_txqsq txqsq; struct mlx5e_cq ts_cq; - u16 skb_fifo_cc; - u16 skb_fifo_pc; - struct mlx5e_skb_fifo skb_fifo; struct mlx5e_ptp_cq_stats *cq_stats; u16 ts_cqe_ctr_mask; + + struct work_struct report_unhealthy_work; + struct mlx5e_ptp_port_ts_cqe_list *ts_cqe_pending_list; + struct mlx5e_ptp_metadata_fifo metadata_freelist; + struct mlx5e_ptp_metadata_map metadata_map; }; enum { @@ -69,12 +89,35 @@ fk.ports.dst == htons(PTP_EV_PORT)); } -static inline bool mlx5e_ptpsq_fifo_has_room(struct mlx5e_txqsq *sq) +static inline void mlx5e_ptp_metadata_fifo_push(struct mlx5e_ptp_metadata_fifo *fifo, u8 metadata) { - if (!sq->ptpsq) - return true; + fifo->data[fifo->mask & fifo->pc++] = metadata; +} - return mlx5e_skb_fifo_has_room(&sq->ptpsq->skb_fifo); +static inline u8 +mlx5e_ptp_metadata_fifo_pop(struct mlx5e_ptp_metadata_fifo *fifo) +{ + return fifo->data[fifo->mask & fifo->cc++]; +} + +static inline void +mlx5e_ptp_metadata_map_put(struct mlx5e_ptp_metadata_map *map, + struct sk_buff *skb, u8 metadata) +{ + WARN_ON_ONCE(map->data[metadata]); + map->data[metadata] = skb; +} + +static inline bool mlx5e_ptpsq_metadata_freelist_empty(struct mlx5e_ptpsq *ptpsq) +{ + struct mlx5e_ptp_metadata_fifo *freelist; + + if (likely(!ptpsq)) + return false; + + freelist = &ptpsq->metadata_freelist; + + return freelist->pc == freelist->cc; } int mlx5e_ptp_open(struct mlx5e_priv *priv, struct mlx5e_params *params, @@ -89,6 +132,8 @@ const struct mlx5e_profile *profile); int mlx5e_ptp_rx_manage_fs(struct mlx5e_priv *priv, bool set); +void mlx5e_ptpsq_track_metadata(struct mlx5e_ptpsq *ptpsq, u8 metadata); + enum { MLX5E_SKB_CB_CQE_HWTSTAMP = BIT(0), MLX5E_SKB_CB_PORT_HWTSTAMP = BIT(1), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c @@ -463,6 +463,17 @@ /* only handle the event on peers */ if (mlx5_esw_bridge_is_local(dev, rep, esw)) break; + + fdb_info = container_of(info, + struct switchdev_notifier_fdb_info, + info); + /* Mark for deletion to prevent the update wq task from + * spuriously refreshing the entry which would mark it again as + * offloaded in SW bridge. After this fallthrough to regular + * async delete code. + */ + mlx5_esw_bridge_fdb_mark_deleted(dev, vport_num, esw_owner_vhca_id, br_offloads, + fdb_info); fallthrough; case SWITCHDEV_FDB_ADD_TO_DEVICE: case SWITCHDEV_FDB_DEL_TO_DEVICE: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c @@ -702,11 +702,11 @@ void mlx5e_reporter_rx_timeout(struct mlx5e_rq *rq) { - char icosq_str[MLX5E_REPORTER_PER_Q_MAX_LEN] = {}; char err_str[MLX5E_REPORTER_PER_Q_MAX_LEN]; struct mlx5e_icosq *icosq = rq->icosq; struct mlx5e_priv *priv = rq->priv; struct mlx5e_err_ctx err_ctx = {}; + char icosq_str[32] = {}; err_ctx.ctx = rq; err_ctx.recover = mlx5e_rx_reporter_timeout_recover; @@ -715,7 +715,7 @@ if (icosq) snprintf(icosq_str, sizeof(icosq_str), "ICOSQ: 0x%x, ", icosq->sqn); snprintf(err_str, sizeof(err_str), - "RX timeout on channel: %d, %sRQ: 0x%x, CQ: 0x%x", + "RX timeout on channel: %d, %s RQ: 0x%x, CQ: 0x%x", rq->ix, icosq_str, rq->rqn, rq->cq.mcq.cqn); mlx5e_health_report(priv, priv->rx_reporter, err_str, &err_ctx); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c @@ -164,6 +164,43 @@ return err; } +static int mlx5e_tx_reporter_ptpsq_unhealthy_recover(void *ctx) +{ + struct mlx5e_ptpsq *ptpsq = ctx; + struct mlx5e_channels *chs; + struct net_device *netdev; + struct mlx5e_priv *priv; + int carrier_ok; + int err; + + if (!test_bit(MLX5E_SQ_STATE_RECOVERING, &ptpsq->txqsq.state)) + return 0; + + priv = ptpsq->txqsq.priv; + + mutex_lock(&priv->state_lock); + chs = &priv->channels; + netdev = priv->netdev; + + carrier_ok = netif_carrier_ok(netdev); + netif_carrier_off(netdev); + + mlx5e_deactivate_priv_channels(priv); + + mlx5e_ptp_close(chs->ptp); + err = mlx5e_ptp_open(priv, &chs->params, chs->c[0]->lag_port, &chs->ptp); + + mlx5e_activate_priv_channels(priv); + + /* return carrier back if needed */ + if (carrier_ok) + netif_carrier_on(netdev); + + mutex_unlock(&priv->state_lock); + + return err; +} + /* state lock cannot be grabbed within this function. * It can cause a dead lock or a read-after-free. */ @@ -516,6 +553,15 @@ return mlx5e_tx_reporter_dump_sq(priv, fmsg, to_ctx->sq); } +static int mlx5e_tx_reporter_ptpsq_unhealthy_dump(struct mlx5e_priv *priv, + struct devlink_fmsg *fmsg, + void *ctx) +{ + struct mlx5e_ptpsq *ptpsq = ctx; + + return mlx5e_tx_reporter_dump_sq(priv, fmsg, &ptpsq->txqsq); +} + static int mlx5e_tx_reporter_dump_all_sqs(struct mlx5e_priv *priv, struct devlink_fmsg *fmsg) { @@ -621,6 +667,25 @@ return to_ctx.status; } +void mlx5e_reporter_tx_ptpsq_unhealthy(struct mlx5e_ptpsq *ptpsq) +{ + struct mlx5e_ptp_metadata_map *map = &ptpsq->metadata_map; + char err_str[MLX5E_REPORTER_PER_Q_MAX_LEN]; + struct mlx5e_txqsq *txqsq = &ptpsq->txqsq; + struct mlx5e_cq *ts_cq = &ptpsq->ts_cq; + struct mlx5e_priv *priv = txqsq->priv; + struct mlx5e_err_ctx err_ctx = {}; + + err_ctx.ctx = ptpsq; + err_ctx.recover = mlx5e_tx_reporter_ptpsq_unhealthy_recover; + err_ctx.dump = mlx5e_tx_reporter_ptpsq_unhealthy_dump; + snprintf(err_str, sizeof(err_str), + "Unhealthy TX port TS queue: %d, SQ: 0x%x, CQ: 0x%x, Undelivered CQEs: %u Map Capacity: %u", + txqsq->ch_ix, txqsq->sqn, ts_cq->mcq.cqn, map->undelivered_counter, map->capacity); + + mlx5e_health_report(priv, priv->tx_reporter, err_str, &err_ctx); +} + static const struct devlink_health_reporter_ops mlx5_tx_reporter_ops = { .name = "tx", .recover = mlx5e_tx_reporter_recover, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c @@ -300,9 +300,6 @@ if (err) goto destroy_neigh_entry; - e->encap_size = ipv4_encap_size; - e->encap_header = encap_header; - if (!(nud_state & NUD_VALID)) { neigh_event_send(attr.n, NULL); /* the encap entry will be made valid on neigh update event @@ -322,6 +319,8 @@ goto destroy_neigh_entry; } + e->encap_size = ipv4_encap_size; + e->encap_header = encap_header; e->flags |= MLX5_ENCAP_ENTRY_VALID; mlx5e_rep_queue_neigh_stats_work(netdev_priv(attr.out_dev)); mlx5e_route_lookup_ipv4_put(&attr); @@ -404,16 +403,12 @@ if (err) goto free_encap; - e->encap_size = ipv4_encap_size; - kfree(e->encap_header); - e->encap_header = encap_header; - if (!(nud_state & NUD_VALID)) { neigh_event_send(attr.n, NULL); /* the encap entry will be made valid on neigh update event * and not used before that. */ - goto release_neigh; + goto free_encap; } memset(&reformat_params, 0, sizeof(reformat_params)); @@ -427,6 +422,10 @@ goto free_encap; } + e->encap_size = ipv4_encap_size; + kfree(e->encap_header); + e->encap_header = encap_header; + e->flags |= MLX5_ENCAP_ENTRY_VALID; mlx5e_rep_queue_neigh_stats_work(netdev_priv(attr.out_dev)); mlx5e_route_lookup_ipv4_put(&attr); @@ -568,9 +567,6 @@ if (err) goto destroy_neigh_entry; - e->encap_size = ipv6_encap_size; - e->encap_header = encap_header; - if (!(nud_state & NUD_VALID)) { neigh_event_send(attr.n, NULL); /* the encap entry will be made valid on neigh update event @@ -590,6 +586,8 @@ goto destroy_neigh_entry; } + e->encap_size = ipv6_encap_size; + e->encap_header = encap_header; e->flags |= MLX5_ENCAP_ENTRY_VALID; mlx5e_rep_queue_neigh_stats_work(netdev_priv(attr.out_dev)); mlx5e_route_lookup_ipv6_put(&attr); @@ -671,16 +669,12 @@ if (err) goto free_encap; - e->encap_size = ipv6_encap_size; - kfree(e->encap_header); - e->encap_header = encap_header; - if (!(nud_state & NUD_VALID)) { neigh_event_send(attr.n, NULL); /* the encap entry will be made valid on neigh update event * and not used before that. */ - goto release_neigh; + goto free_encap; } memset(&reformat_params, 0, sizeof(reformat_params)); @@ -694,6 +688,10 @@ goto free_encap; } + e->encap_size = ipv6_encap_size; + kfree(e->encap_header); + e->encap_header = encap_header; + e->flags |= MLX5_ENCAP_ENTRY_VALID; mlx5e_rep_queue_neigh_stats_work(netdev_priv(attr.out_dev)); mlx5e_route_lookup_ipv6_put(&attr); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c @@ -24,7 +24,8 @@ route_dev = dev_get_by_index(dev_net(e->out_dev), e->route_dev_ifindex); - if (!route_dev || !netif_is_ovs_master(route_dev)) + if (!route_dev || !netif_is_ovs_master(route_dev) || + attr->parse_attr->filter_dev == e->out_dev) goto out; err = mlx5e_set_fwd_to_int_port_actions(priv, attr, e->route_dev_ifindex, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c @@ -873,11 +873,11 @@ } out: - if (flags & XDP_XMIT_FLUSH) { - if (sq->mpwqe.wqe) - mlx5e_xdp_mpwqe_complete(sq); + if (sq->mpwqe.wqe) + mlx5e_xdp_mpwqe_complete(sq); + + if (flags & XDP_XMIT_FLUSH) mlx5e_xmit_xdp_doorbell(sq); - } return nxmit; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c @@ -43,12 +43,17 @@ struct ethtool_drvinfo *drvinfo) { struct mlx5_core_dev *mdev = priv->mdev; + int count; strscpy(drvinfo->driver, KBUILD_MODNAME, sizeof(drvinfo->driver)); - snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version), - "%d.%d.%04d (%.16s)", - fw_rev_maj(mdev), fw_rev_min(mdev), fw_rev_sub(mdev), - mdev->board_id); + count = snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version), + "%d.%d.%04d (%.16s)", fw_rev_maj(mdev), + fw_rev_min(mdev), fw_rev_sub(mdev), mdev->board_id); + if (count == sizeof(drvinfo->fw_version)) + snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version), + "%d.%d.%04d", fw_rev_maj(mdev), + fw_rev_min(mdev), fw_rev_sub(mdev)); + strscpy(drvinfo->bus_info, dev_name(mdev->device), sizeof(drvinfo->bus_info)); } @@ -2061,7 +2066,8 @@ struct mlx5e_params new_params; int err; - if (!MLX5_CAP_GEN(mdev, ts_cqe_to_dest_cqn)) + if (!MLX5_CAP_GEN(mdev, ts_cqe_to_dest_cqn) || + !MLX5_CAP_GEN_2(mdev, ts_cqe_metadata_size2wqe_counter)) return -EOPNOTSUPP; /* Don't allow changing the PTP state if HTB offload is active, because only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c @@ -71,13 +71,17 @@ { struct mlx5e_priv *priv = netdev_priv(dev); struct mlx5_core_dev *mdev = priv->mdev; + int count; strscpy(drvinfo->driver, mlx5e_rep_driver_name, sizeof(drvinfo->driver)); - snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version), - "%d.%d.%04d (%.16s)", - fw_rev_maj(mdev), fw_rev_min(mdev), - fw_rev_sub(mdev), mdev->board_id); + count = snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version), + "%d.%d.%04d (%.16s)", fw_rev_maj(mdev), + fw_rev_min(mdev), fw_rev_sub(mdev), mdev->board_id); + if (count == sizeof(drvinfo->fw_version)) + snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version), + "%d.%d.%04d", fw_rev_maj(mdev), + fw_rev_min(mdev), fw_rev_sub(mdev)); } static const struct counter_desc sw_rep_stats_desc[] = { @@ -704,7 +708,7 @@ /* update HW stats in background for next time */ mlx5e_queue_update_stats(priv); - memcpy(stats, &priv->stats.vf_vport, sizeof(*stats)); + mlx5e_stats_copy_rep_stats(stats, &priv->stats.rep_stats); } static int mlx5e_rep_change_mtu(struct net_device *netdev, int new_mtu) @@ -772,6 +776,7 @@ static void mlx5e_build_rep_params(struct net_device *netdev) { + const bool take_rtnl = netdev->reg_state == NETREG_REGISTERED; struct mlx5e_priv *priv = netdev_priv(netdev); struct mlx5e_rep_priv *rpriv = priv->ppriv; struct mlx5_eswitch_rep *rep = rpriv->rep; @@ -797,8 +802,15 @@ /* RQ */ mlx5e_build_rq_params(mdev, params); + /* If netdev is already registered (e.g. move from nic profile to uplink, + * RTNL lock must be held before triggering netdev notifiers. + */ + if (take_rtnl) + rtnl_lock(); /* update XDP supported features */ mlx5e_set_xdp_feature(netdev); + if (take_rtnl) + rtnl_unlock(); /* CQ moderation params */ params->rx_dim_enabled = MLX5_CAP_GEN(mdev, cq_moderation); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c @@ -457,26 +457,41 @@ static int mlx5e_refill_rx_wqes(struct mlx5e_rq *rq, u16 ix, int wqe_bulk) { int remaining = wqe_bulk; - int i = 0; + int total_alloc = 0; + int refill_alloc; + int refill; /* The WQE bulk is split into smaller bulks that are sized * according to the page pool cache refill size to avoid overflowing * the page pool cache due to too many page releases at once. */ do { - int refill = min_t(u16, rq->wqe.info.refill_unit, remaining); - int alloc_count; + refill = min_t(u16, rq->wqe.info.refill_unit, remaining); - mlx5e_free_rx_wqes(rq, ix + i, refill); - alloc_count = mlx5e_alloc_rx_wqes(rq, ix + i, refill); - i += alloc_count; - if (unlikely(alloc_count != refill)) - break; + mlx5e_free_rx_wqes(rq, ix + total_alloc, refill); + refill_alloc = mlx5e_alloc_rx_wqes(rq, ix + total_alloc, refill); + if (unlikely(refill_alloc != refill)) + goto err_free; + total_alloc += refill_alloc; remaining -= refill; } while (remaining); - return i; + return total_alloc; + +err_free: + mlx5e_free_rx_wqes(rq, ix, total_alloc + refill_alloc); + + for (int i = 0; i < total_alloc + refill; i++) { + int j = mlx5_wq_cyc_ctr2ix(&rq->wqe.wq, ix + i); + struct mlx5e_wqe_frag_info *frag; + + frag = get_frag(rq, j); + for (int k = 0; k < rq->wqe.info.num_frags; k++, frag++) + frag->flags |= BIT(MLX5E_WQE_FRAG_SKIP_RELEASE); + } + + return 0; } static void @@ -816,6 +831,8 @@ mlx5e_page_release_fragmented(rq, frag_page); } + bitmap_fill(wi->skip_release_bitmap, rq->mpwqe.pages_per_wqe); + err: rq->stats->buff_alloc_err++; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_stats.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en_stats.c @@ -2142,9 +2142,7 @@ { MLX5E_DECLARE_PTP_CQ_STAT(struct mlx5e_ptp_cq_stats, err_cqe) }, { MLX5E_DECLARE_PTP_CQ_STAT(struct mlx5e_ptp_cq_stats, abort) }, { MLX5E_DECLARE_PTP_CQ_STAT(struct mlx5e_ptp_cq_stats, abort_abs_diff_ns) }, - { MLX5E_DECLARE_PTP_CQ_STAT(struct mlx5e_ptp_cq_stats, resync_cqe) }, - { MLX5E_DECLARE_PTP_CQ_STAT(struct mlx5e_ptp_cq_stats, resync_event) }, - { MLX5E_DECLARE_PTP_CQ_STAT(struct mlx5e_ptp_cq_stats, ooo_cqe_drop) }, + { MLX5E_DECLARE_PTP_CQ_STAT(struct mlx5e_ptp_cq_stats, late_cqe) }, }; static const struct counter_desc ptp_rq_stats_desc[] = { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_stats.h +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en_stats.h @@ -449,9 +449,7 @@ u64 err_cqe; u64 abort; u64 abort_abs_diff_ns; - u64 resync_cqe; - u64 resync_event; - u64 ooo_cqe_drop; + u64 late_cqe; }; struct mlx5e_rep_stats { @@ -475,11 +473,20 @@ struct mlx5e_vnic_env_stats vnic; struct mlx5e_vport_stats vport; struct mlx5e_pport_stats pport; - struct rtnl_link_stats64 vf_vport; struct mlx5e_pcie_stats pcie; struct mlx5e_rep_stats rep_stats; }; +static inline void mlx5e_stats_copy_rep_stats(struct rtnl_link_stats64 *vf_vport, + struct mlx5e_rep_stats *rep_stats) +{ + memset(vf_vport, 0, sizeof(*vf_vport)); + vf_vport->rx_packets = rep_stats->vport_rx_packets; + vf_vport->tx_packets = rep_stats->vport_tx_packets; + vf_vport->rx_bytes = rep_stats->vport_rx_bytes; + vf_vport->tx_bytes = rep_stats->vport_tx_bytes; +} + extern mlx5e_stats_grp_t mlx5e_nic_stats_grps[]; unsigned int mlx5e_nic_stats_grps_num(struct mlx5e_priv *priv); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c @@ -372,7 +372,7 @@ const struct mlx5e_tx_attr *attr, const struct mlx5e_tx_wqe_attr *wqe_attr, u8 num_dma, struct mlx5e_tx_wqe_info *wi, struct mlx5_wqe_ctrl_seg *cseg, - bool xmit_more) + struct mlx5_wqe_eth_seg *eseg, bool xmit_more) { struct mlx5_wq_cyc *wq = &sq->wq; bool send_doorbell; @@ -394,11 +394,16 @@ mlx5e_tx_check_stop(sq); - if (unlikely(sq->ptpsq)) { + if (unlikely(sq->ptpsq && + (skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP))) { + u8 metadata_index = be32_to_cpu(eseg->flow_table_metadata); + mlx5e_skb_cb_hwtstamp_init(skb); - mlx5e_skb_fifo_push(&sq->ptpsq->skb_fifo, skb); + mlx5e_ptp_metadata_map_put(&sq->ptpsq->metadata_map, skb, + metadata_index); + mlx5e_ptpsq_track_metadata(sq->ptpsq, metadata_index); if (!netif_tx_queue_stopped(sq->txq) && - !mlx5e_skb_fifo_has_room(&sq->ptpsq->skb_fifo)) { + mlx5e_ptpsq_metadata_freelist_empty(sq->ptpsq)) { netif_tx_stop_queue(sq->txq); sq->stats->stopped++; } @@ -483,12 +488,15 @@ if (unlikely(num_dma < 0)) goto err_drop; - mlx5e_txwqe_complete(sq, skb, attr, wqe_attr, num_dma, wi, cseg, xmit_more); + mlx5e_txwqe_complete(sq, skb, attr, wqe_attr, num_dma, wi, cseg, eseg, xmit_more); return; err_drop: stats->dropped++; + if (unlikely(sq->ptpsq && (skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP))) + mlx5e_ptp_metadata_fifo_push(&sq->ptpsq->metadata_freelist, + be32_to_cpu(eseg->flow_table_metadata)); dev_kfree_skb_any(skb); mlx5e_tx_flush(sq); } @@ -645,9 +653,9 @@ static void mlx5e_cqe_ts_id_eseg(struct mlx5e_ptpsq *ptpsq, struct sk_buff *skb, struct mlx5_wqe_eth_seg *eseg) { - if (ptpsq->ts_cqe_ctr_mask && unlikely(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)) - eseg->flow_table_metadata = cpu_to_be32(ptpsq->skb_fifo_pc & - ptpsq->ts_cqe_ctr_mask); + if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)) + eseg->flow_table_metadata = + cpu_to_be32(mlx5e_ptp_metadata_fifo_pop(&ptpsq->metadata_freelist)); } static void mlx5e_txwqe_build_eseg(struct mlx5e_priv *priv, struct mlx5e_txqsq *sq, @@ -766,7 +774,7 @@ { if (netif_tx_queue_stopped(sq->txq) && mlx5e_wqc_has_room_for(&sq->wq, sq->cc, sq->pc, sq->stop_room) && - mlx5e_ptpsq_fifo_has_room(sq) && + !mlx5e_ptpsq_metadata_freelist_empty(sq->ptpsq) && !test_bit(MLX5E_SQ_STATE_RECOVERING, &sq->state)) { netif_tx_wake_queue(sq->txq); sq->stats->wake++; @@ -1031,7 +1039,7 @@ if (unlikely(num_dma < 0)) goto err_drop; - mlx5e_txwqe_complete(sq, skb, &attr, &wqe_attr, num_dma, wi, cseg, xmit_more); + mlx5e_txwqe_complete(sq, skb, &attr, &wqe_attr, num_dma, wi, cseg, eseg, xmit_more); return; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.c @@ -1748,6 +1748,28 @@ entry->lastuse = jiffies; } +void mlx5_esw_bridge_fdb_mark_deleted(struct net_device *dev, u16 vport_num, u16 esw_owner_vhca_id, + struct mlx5_esw_bridge_offloads *br_offloads, + struct switchdev_notifier_fdb_info *fdb_info) +{ + struct mlx5_esw_bridge_fdb_entry *entry; + struct mlx5_esw_bridge *bridge; + + bridge = mlx5_esw_bridge_from_port_lookup(vport_num, esw_owner_vhca_id, br_offloads); + if (!bridge) + return; + + entry = mlx5_esw_bridge_fdb_lookup(bridge, fdb_info->addr, fdb_info->vid); + if (!entry) { + esw_debug(br_offloads->esw->dev, + "FDB mark deleted entry with specified key not found (MAC=%pM,vid=%u,vport=%u)\n", + fdb_info->addr, fdb_info->vid, vport_num); + return; + } + + entry->flags |= MLX5_ESW_BRIDGE_FLAG_DELETED; +} + void mlx5_esw_bridge_fdb_create(struct net_device *dev, u16 vport_num, u16 esw_owner_vhca_id, struct mlx5_esw_bridge_offloads *br_offloads, struct switchdev_notifier_fdb_info *fdb_info) @@ -1810,7 +1832,8 @@ unsigned long lastuse = (unsigned long)mlx5_fc_query_lastuse(entry->ingress_counter); - if (entry->flags & MLX5_ESW_BRIDGE_FLAG_ADDED_BY_USER) + if (entry->flags & (MLX5_ESW_BRIDGE_FLAG_ADDED_BY_USER | + MLX5_ESW_BRIDGE_FLAG_DELETED)) continue; if (time_after(lastuse, entry->lastuse)) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.h +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge.h @@ -62,6 +62,9 @@ void mlx5_esw_bridge_fdb_update_used(struct net_device *dev, u16 vport_num, u16 esw_owner_vhca_id, struct mlx5_esw_bridge_offloads *br_offloads, struct switchdev_notifier_fdb_info *fdb_info); +void mlx5_esw_bridge_fdb_mark_deleted(struct net_device *dev, u16 vport_num, u16 esw_owner_vhca_id, + struct mlx5_esw_bridge_offloads *br_offloads, + struct switchdev_notifier_fdb_info *fdb_info); void mlx5_esw_bridge_fdb_create(struct net_device *dev, u16 vport_num, u16 esw_owner_vhca_id, struct mlx5_esw_bridge_offloads *br_offloads, struct switchdev_notifier_fdb_info *fdb_info); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge_priv.h +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/esw/bridge_priv.h @@ -133,6 +133,7 @@ enum { MLX5_ESW_BRIDGE_FLAG_ADDED_BY_USER = BIT(0), MLX5_ESW_BRIDGE_FLAG_PEER = BIT(1), + MLX5_ESW_BRIDGE_FLAG_DELETED = BIT(2), }; enum { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c @@ -28,7 +28,7 @@ struct mlx5_irq { struct atomic_notifier_head nh; cpumask_var_t mask; - char name[MLX5_MAX_IRQ_NAME]; + char name[MLX5_MAX_IRQ_FORMATTED_NAME]; struct mlx5_irq_pool *pool; int refcount; struct msi_map map; @@ -289,8 +289,8 @@ else irq_sf_set_name(pool, name, i); ATOMIC_INIT_NOTIFIER_HEAD(&irq->nh); - snprintf(irq->name, MLX5_MAX_IRQ_NAME, - "%s@pci:%s", name, pci_name(dev->pdev)); + snprintf(irq->name, MLX5_MAX_IRQ_FORMATTED_NAME, + MLX5_IRQ_NAME_FORMAT_STR, name, pci_name(dev->pdev)); err = request_irq(irq->map.virq, irq_int_handler, 0, irq->name, &irq->nh); if (err) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.h +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlx5/core/pci_irq.h @@ -7,6 +7,9 @@ #include #define MLX5_MAX_IRQ_NAME (32) +#define MLX5_IRQ_NAME_FORMAT_STR ("%s@pci:%s") +#define MLX5_MAX_IRQ_FORMATTED_NAME \ + (MLX5_MAX_IRQ_NAME + sizeof(MLX5_IRQ_NAME_FORMAT_STR)) /* max irq_index is 2047, so four chars */ #define MLX5_MAX_IRQ_IDX_CHARS (4) #define MLX5_EQ_REFS_PER_IRQ (2) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_bloom_filter.c +++ linux-riscv-6.5.0/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_bloom_filter.c @@ -496,7 +496,7 @@ * is 2^ACL_MAX_BF_LOG */ bf_bank_size = 1 << MLXSW_CORE_RES_GET(mlxsw_sp->core, ACL_MAX_BF_LOG); - bf = kzalloc(struct_size(bf, refcnt, bf_bank_size * num_erp_banks), + bf = kzalloc(struct_size(bf, refcnt, size_mul(bf_bank_size, num_erp_banks)), GFP_KERNEL); if (!bf) return ERR_PTR(-ENOMEM); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c +++ linux-riscv-6.5.0/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c @@ -160,6 +160,18 @@ u8 addr[ETH_ALEN]; }; +/** + * struct nfp_neigh_update_work - update neighbour information to nfp + * @work: Work queue for writing neigh to the nfp + * @n: neighbour entry + * @app: Back pointer to app + */ +struct nfp_neigh_update_work { + struct work_struct work; + struct neighbour *n; + struct nfp_app *app; +}; + enum nfp_flower_mac_offload_cmd { NFP_TUNNEL_MAC_OFFLOAD_ADD = 0, NFP_TUNNEL_MAC_OFFLOAD_DEL = 1, @@ -607,38 +619,30 @@ nfp_flower_cmsg_warn(app, "Neighbour configuration failed.\n"); } -static int -nfp_tun_neigh_event_handler(struct notifier_block *nb, unsigned long event, - void *ptr) +static void +nfp_tun_release_neigh_update_work(struct nfp_neigh_update_work *update_work) { - struct nfp_flower_priv *app_priv; - struct netevent_redirect *redir; - struct neighbour *n; + neigh_release(update_work->n); + kfree(update_work); +} + +static void nfp_tun_neigh_update(struct work_struct *work) +{ + struct nfp_neigh_update_work *update_work; struct nfp_app *app; + struct neighbour *n; bool neigh_invalid; int err; - switch (event) { - case NETEVENT_REDIRECT: - redir = (struct netevent_redirect *)ptr; - n = redir->neigh; - break; - case NETEVENT_NEIGH_UPDATE: - n = (struct neighbour *)ptr; - break; - default: - return NOTIFY_DONE; - } - - neigh_invalid = !(n->nud_state & NUD_VALID) || n->dead; - - app_priv = container_of(nb, struct nfp_flower_priv, tun.neigh_nb); - app = app_priv->app; + update_work = container_of(work, struct nfp_neigh_update_work, work); + app = update_work->app; + n = update_work->n; if (!nfp_flower_get_port_id_from_netdev(app, n->dev)) - return NOTIFY_DONE; + goto out; #if IS_ENABLED(CONFIG_INET) + neigh_invalid = !(n->nud_state & NUD_VALID) || n->dead; if (n->tbl->family == AF_INET6) { #if IS_ENABLED(CONFIG_IPV6) struct flowi6 flow6 = {}; @@ -655,13 +659,11 @@ dst = ip6_dst_lookup_flow(dev_net(n->dev), NULL, &flow6, NULL); if (IS_ERR(dst)) - return NOTIFY_DONE; + goto out; dst_release(dst); } nfp_tun_write_neigh(n->dev, app, &flow6, n, true, false); -#else - return NOTIFY_DONE; #endif /* CONFIG_IPV6 */ } else { struct flowi4 flow4 = {}; @@ -678,17 +680,71 @@ rt = ip_route_output_key(dev_net(n->dev), &flow4); err = PTR_ERR_OR_ZERO(rt); if (err) - return NOTIFY_DONE; + goto out; ip_rt_put(rt); } nfp_tun_write_neigh(n->dev, app, &flow4, n, false, false); } -#else - return NOTIFY_DONE; #endif /* CONFIG_INET */ +out: + nfp_tun_release_neigh_update_work(update_work); +} + +static struct nfp_neigh_update_work * +nfp_tun_alloc_neigh_update_work(struct nfp_app *app, struct neighbour *n) +{ + struct nfp_neigh_update_work *update_work; + + update_work = kzalloc(sizeof(*update_work), GFP_ATOMIC); + if (!update_work) + return NULL; + + INIT_WORK(&update_work->work, nfp_tun_neigh_update); + neigh_hold(n); + update_work->n = n; + update_work->app = app; - return NOTIFY_OK; + return update_work; +} + +static int +nfp_tun_neigh_event_handler(struct notifier_block *nb, unsigned long event, + void *ptr) +{ + struct nfp_neigh_update_work *update_work; + struct nfp_flower_priv *app_priv; + struct netevent_redirect *redir; + struct neighbour *n; + struct nfp_app *app; + + switch (event) { + case NETEVENT_REDIRECT: + redir = (struct netevent_redirect *)ptr; + n = redir->neigh; + break; + case NETEVENT_NEIGH_UPDATE: + n = (struct neighbour *)ptr; + break; + default: + return NOTIFY_DONE; + } +#if IS_ENABLED(CONFIG_IPV6) + if (n->tbl != ipv6_stub->nd_tbl && n->tbl != &arp_tbl) +#else + if (n->tbl != &arp_tbl) +#endif + return NOTIFY_DONE; + + app_priv = container_of(nb, struct nfp_flower_priv, tun.neigh_nb); + app = app_priv->app; + update_work = nfp_tun_alloc_neigh_update_work(app, n); + if (!update_work) + return NOTIFY_DONE; + + queue_work(system_highpri_wq, &update_work->work); + + return NOTIFY_DONE; } void nfp_tunnel_request_route_v4(struct nfp_app *app, struct sk_buff *skb) @@ -706,6 +762,7 @@ netdev = nfp_app_dev_get(app, be32_to_cpu(payload->ingress_port), NULL); if (!netdev) goto fail_rcu_unlock; + dev_hold(netdev); flow.daddr = payload->ipv4_addr; flow.flowi4_proto = IPPROTO_UDP; @@ -725,13 +782,16 @@ ip_rt_put(rt); if (!n) goto fail_rcu_unlock; + rcu_read_unlock(); + nfp_tun_write_neigh(n->dev, app, &flow, n, false, true); neigh_release(n); - rcu_read_unlock(); + dev_put(netdev); return; fail_rcu_unlock: rcu_read_unlock(); + dev_put(netdev); nfp_flower_cmsg_warn(app, "Requested route not found.\n"); } @@ -749,6 +809,7 @@ netdev = nfp_app_dev_get(app, be32_to_cpu(payload->ingress_port), NULL); if (!netdev) goto fail_rcu_unlock; + dev_hold(netdev); flow.daddr = payload->ipv6_addr; flow.flowi6_proto = IPPROTO_UDP; @@ -766,14 +827,16 @@ dst_release(dst); if (!n) goto fail_rcu_unlock; + rcu_read_unlock(); nfp_tun_write_neigh(n->dev, app, &flow, n, true, true); neigh_release(n); - rcu_read_unlock(); + dev_put(netdev); return; fail_rcu_unlock: rcu_read_unlock(); + dev_put(netdev); nfp_flower_cmsg_warn(app, "Requested IPv6 route not found.\n"); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/pensando/ionic/ionic_lif.c +++ linux-riscv-6.5.0/drivers/net/ethernet/pensando/ionic/ionic_lif.c @@ -49,24 +49,24 @@ static void ionic_dim_work(struct work_struct *work) { struct dim *dim = container_of(work, struct dim, work); + struct ionic_intr_info *intr; struct dim_cq_moder cur_moder; struct ionic_qcq *qcq; + struct ionic_lif *lif; u32 new_coal; cur_moder = net_dim_get_rx_moderation(dim->mode, dim->profile_ix); qcq = container_of(dim, struct ionic_qcq, dim); - new_coal = ionic_coal_usec_to_hw(qcq->q.lif->ionic, cur_moder.usec); + lif = qcq->q.lif; + new_coal = ionic_coal_usec_to_hw(lif->ionic, cur_moder.usec); new_coal = new_coal ? new_coal : 1; - if (qcq->intr.dim_coal_hw != new_coal) { - unsigned int qi = qcq->cq.bound_q->index; - struct ionic_lif *lif = qcq->q.lif; - - qcq->intr.dim_coal_hw = new_coal; + intr = &qcq->intr; + if (intr->dim_coal_hw != new_coal) { + intr->dim_coal_hw = new_coal; ionic_intr_coal_init(lif->ionic->idev.intr_ctrl, - lif->rxqcqs[qi]->intr.index, - qcq->intr.dim_coal_hw); + intr->index, intr->dim_coal_hw); } dim->state = DIM_START_MEASURE; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/qlogic/qed/qed_ll2.c +++ linux-riscv-6.5.0/drivers/net/ethernet/qlogic/qed/qed_ll2.c @@ -113,7 +113,10 @@ static int qed_ll2_alloc_buffer(struct qed_dev *cdev, u8 **data, dma_addr_t *phys_addr) { - *data = kmalloc(cdev->ll2->rx_size, GFP_ATOMIC); + size_t size = cdev->ll2->rx_size + NET_SKB_PAD + + SKB_DATA_ALIGN(sizeof(struct skb_shared_info)); + + *data = kmalloc(size, GFP_ATOMIC); if (!(*data)) { DP_INFO(cdev, "Failed to allocate LL2 buffer data\n"); return -ENOMEM; @@ -2589,7 +2592,7 @@ INIT_LIST_HEAD(&cdev->ll2->list); spin_lock_init(&cdev->ll2->lock); - cdev->ll2->rx_size = NET_SKB_PAD + ETH_HLEN + + cdev->ll2->rx_size = PRM_DMA_PAD_BYTES_NUM + ETH_HLEN + L1_CACHE_BYTES + params->mtu; /* Allocate memory for LL2. only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/stmicro/stmmac/dwmac5.c +++ linux-riscv-6.5.0/drivers/net/ethernet/stmicro/stmmac/dwmac5.c @@ -710,28 +710,22 @@ } } -void dwmac5_fpe_configure(void __iomem *ioaddr, u32 num_txq, u32 num_rxq, +void dwmac5_fpe_configure(void __iomem *ioaddr, struct stmmac_fpe_cfg *cfg, + u32 num_txq, u32 num_rxq, bool enable) { u32 value; - if (!enable) { - value = readl(ioaddr + MAC_FPE_CTRL_STS); - - value &= ~EFPE; - - writel(value, ioaddr + MAC_FPE_CTRL_STS); - return; + if (enable) { + cfg->fpe_csr = EFPE; + value = readl(ioaddr + GMAC_RXQ_CTRL1); + value &= ~GMAC_RXQCTRL_FPRQ; + value |= (num_rxq - 1) << GMAC_RXQCTRL_FPRQ_SHIFT; + writel(value, ioaddr + GMAC_RXQ_CTRL1); + } else { + cfg->fpe_csr = 0; } - - value = readl(ioaddr + GMAC_RXQ_CTRL1); - value &= ~GMAC_RXQCTRL_FPRQ; - value |= (num_rxq - 1) << GMAC_RXQCTRL_FPRQ_SHIFT; - writel(value, ioaddr + GMAC_RXQ_CTRL1); - - value = readl(ioaddr + MAC_FPE_CTRL_STS); - value |= EFPE; - writel(value, ioaddr + MAC_FPE_CTRL_STS); + writel(cfg->fpe_csr, ioaddr + MAC_FPE_CTRL_STS); } int dwmac5_fpe_irq_status(void __iomem *ioaddr, struct net_device *dev) @@ -741,6 +735,9 @@ status = FPE_EVENT_UNKNOWN; + /* Reads from the MAC_FPE_CTRL_STS register should only be performed + * here, since the status flags of MAC_FPE_CTRL_STS are "clear on read" + */ value = readl(ioaddr + MAC_FPE_CTRL_STS); if (value & TRSP) { @@ -766,19 +763,15 @@ return status; } -void dwmac5_fpe_send_mpacket(void __iomem *ioaddr, enum stmmac_mpacket_type type) +void dwmac5_fpe_send_mpacket(void __iomem *ioaddr, struct stmmac_fpe_cfg *cfg, + enum stmmac_mpacket_type type) { - u32 value; - - value = readl(ioaddr + MAC_FPE_CTRL_STS); + u32 value = cfg->fpe_csr; - if (type == MPACKET_VERIFY) { - value &= ~SRSP; + if (type == MPACKET_VERIFY) value |= SVER; - } else { - value &= ~SVER; + else if (type == MPACKET_RESPONSE) value |= SRSP; - } writel(value, ioaddr + MAC_FPE_CTRL_STS); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/stmicro/stmmac/dwmac5.h +++ linux-riscv-6.5.0/drivers/net/ethernet/stmicro/stmmac/dwmac5.h @@ -153,9 +153,11 @@ unsigned int ptp_rate); void dwmac5_est_irq_status(void __iomem *ioaddr, struct net_device *dev, struct stmmac_extra_stats *x, u32 txqcnt); -void dwmac5_fpe_configure(void __iomem *ioaddr, u32 num_txq, u32 num_rxq, +void dwmac5_fpe_configure(void __iomem *ioaddr, struct stmmac_fpe_cfg *cfg, + u32 num_txq, u32 num_rxq, bool enable); void dwmac5_fpe_send_mpacket(void __iomem *ioaddr, + struct stmmac_fpe_cfg *cfg, enum stmmac_mpacket_type type); int dwmac5_fpe_irq_status(void __iomem *ioaddr, struct net_device *dev); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h +++ linux-riscv-6.5.0/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h @@ -222,7 +222,7 @@ ((val) << XGMAC_PPS_MINIDX(x)) #define XGMAC_PPSCMD_START 0x2 #define XGMAC_PPSCMD_STOP 0x5 -#define XGMAC_PPSEN0 BIT(4) +#define XGMAC_PPSENx(x) BIT(4 + (x) * 8) #define XGMAC_PPSx_TARGET_TIME_SEC(x) (0x00000d80 + (x) * 0x10) #define XGMAC_PPSx_TARGET_TIME_NSEC(x) (0x00000d84 + (x) * 0x10) #define XGMAC_TRGTBUSY0 BIT(31) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c +++ linux-riscv-6.5.0/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c @@ -1138,7 +1138,19 @@ val |= XGMAC_PPSCMDx(index, XGMAC_PPSCMD_START); val |= XGMAC_TRGTMODSELx(index, XGMAC_PPSCMD_START); - val |= XGMAC_PPSEN0; + + /* XGMAC Core has 4 PPS outputs at most. + * + * Prior XGMAC Core 3.20, Fixed mode or Flexible mode are selectable for + * PPS0 only via PPSEN0. PPS{1,2,3} are in Flexible mode by default, + * and can not be switched to Fixed mode, since PPSEN{1,2,3} are + * read-only reserved to 0. + * But we always set PPSEN{1,2,3} do not make things worse ;-) + * + * From XGMAC Core 3.20 and later, PPSEN{0,1,2,3} are writable and must + * be set, or the PPS outputs stay in Fixed PPS mode by default. + */ + val |= XGMAC_PPSENx(index); writel(cfg->start.tv_sec, ioaddr + XGMAC_PPSx_TARGET_TIME_SEC(index)); @@ -1432,7 +1444,8 @@ return 0; } -static void dwxgmac3_fpe_configure(void __iomem *ioaddr, u32 num_txq, +static void dwxgmac3_fpe_configure(void __iomem *ioaddr, struct stmmac_fpe_cfg *cfg, + u32 num_txq, u32 num_rxq, bool enable) { u32 value; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/stmicro/stmmac/hwif.h +++ linux-riscv-6.5.0/drivers/net/ethernet/stmicro/stmmac/hwif.h @@ -414,9 +414,11 @@ unsigned int ptp_rate); void (*est_irq_status)(void __iomem *ioaddr, struct net_device *dev, struct stmmac_extra_stats *x, u32 txqcnt); - void (*fpe_configure)(void __iomem *ioaddr, u32 num_txq, u32 num_rxq, + void (*fpe_configure)(void __iomem *ioaddr, struct stmmac_fpe_cfg *cfg, + u32 num_txq, u32 num_rxq, bool enable); void (*fpe_send_mpacket)(void __iomem *ioaddr, + struct stmmac_fpe_cfg *cfg, enum stmmac_mpacket_type type); int (*fpe_irq_status)(void __iomem *ioaddr, struct net_device *dev); }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/stmicro/stmmac/mmc_core.c +++ linux-riscv-6.5.0/drivers/net/ethernet/stmicro/stmmac/mmc_core.c @@ -177,8 +177,10 @@ #define MMC_XGMAC_RX_DISCARD_OCT_GB 0x1b4 #define MMC_XGMAC_RX_ALIGN_ERR_PKT 0x1bc +#define MMC_XGMAC_TX_FPE_INTR_MASK 0x204 #define MMC_XGMAC_TX_FPE_FRAG 0x208 #define MMC_XGMAC_TX_HOLD_REQ 0x20c +#define MMC_XGMAC_RX_FPE_INTR_MASK 0x224 #define MMC_XGMAC_RX_PKT_ASSEMBLY_ERR 0x228 #define MMC_XGMAC_RX_PKT_SMD_ERR 0x22c #define MMC_XGMAC_RX_PKT_ASSEMBLY_OK 0x230 @@ -352,6 +354,8 @@ { writel(0x0, mmcaddr + MMC_RX_INTR_MASK); writel(0x0, mmcaddr + MMC_TX_INTR_MASK); + writel(MMC_DEFAULT_MASK, mmcaddr + MMC_XGMAC_TX_FPE_INTR_MASK); + writel(MMC_DEFAULT_MASK, mmcaddr + MMC_XGMAC_RX_FPE_INTR_MASK); writel(MMC_DEFAULT_MASK, mmcaddr + MMC_XGMAC_RX_IPC_INTR_MASK); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +++ linux-riscv-6.5.0/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c @@ -1079,6 +1079,7 @@ priv->plat->fpe_cfg->enable = false; stmmac_fpe_configure(priv, priv->ioaddr, + priv->plat->fpe_cfg, priv->plat->tx_queues_to_use, priv->plat->rx_queues_to_use, false); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/toshiba/ps3_gelic_wireless.c +++ linux-riscv-6.5.0/drivers/net/ethernet/toshiba/ps3_gelic_wireless.c @@ -1217,7 +1217,7 @@ key_index = wl->current_key; if (!enc->length && (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY)) { - /* reques to change default key index */ + /* request to change default key index */ pr_debug("%s: request to change default key to %d\n", __func__, key_index); wl->current_key = key_index; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/toshiba/spider_net.c +++ linux-riscv-6.5.0/drivers/net/ethernet/toshiba/spider_net.c @@ -2332,7 +2332,7 @@ struct spider_net_card *card; netdev = alloc_etherdev(struct_size(card, darray, - tx_descriptors + rx_descriptors)); + size_add(tx_descriptors, rx_descriptors))); if (!netdev) return NULL; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/wangxun/libwx/wx_hw.c +++ linux-riscv-6.5.0/drivers/net/ethernet/wangxun/libwx/wx_hw.c @@ -1741,10 +1741,12 @@ wx->subsystem_device_id = pdev->subsystem_device; } else { err = wx_flash_read_dword(wx, 0xfffdc, &ssid); - if (!err) - wx->subsystem_device_id = swab16((u16)ssid); + if (err < 0) { + wx_err(wx, "read of internal subsystem device id failed\n"); + return err; + } - return err; + wx->subsystem_device_id = swab16((u16)ssid); } wx->mac_table = kcalloc(wx->mac.num_rar_entries, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/wangxun/libwx/wx_lib.c +++ linux-riscv-6.5.0/drivers/net/ethernet/wangxun/libwx/wx_lib.c @@ -1965,11 +1965,11 @@ if (!pdev->msi_enabled && !pdev->msix_enabled) return; - pci_free_irq_vectors(wx->pdev); if (pdev->msix_enabled) { kfree(wx->msix_entries); wx->msix_entries = NULL; } + pci_free_irq_vectors(wx->pdev); } EXPORT_SYMBOL(wx_reset_interrupt_capability); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/wangxun/ngbe/ngbe_main.c +++ linux-riscv-6.5.0/drivers/net/ethernet/wangxun/ngbe/ngbe_main.c @@ -121,10 +121,8 @@ /* PCI config space info */ err = wx_sw_init(wx); - if (err < 0) { - wx_err(wx, "read of internal subsystem device id failed\n"); + if (err < 0) return err; - } /* mac type, phy type , oem type */ ngbe_init_type_code(wx); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/wangxun/txgbe/txgbe_main.c +++ linux-riscv-6.5.0/drivers/net/ethernet/wangxun/txgbe/txgbe_main.c @@ -319,10 +319,8 @@ /* PCI config space info */ err = wx_sw_init(wx); - if (err < 0) { - wx_err(wx, "read of internal subsystem device id failed\n"); + if (err < 0) return err; - } switch (wx->device_id) { case TXGBE_DEV_ID_SP1000: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ethernet/xilinx/xilinx_axienet_main.c +++ linux-riscv-6.5.0/drivers/net/ethernet/xilinx/xilinx_axienet_main.c @@ -821,7 +821,7 @@ if (lp->features & XAE_FEATURE_FULL_TX_CSUM) { /* Tx Full Checksum Offload Enabled */ cur_p->app0 |= 2; - } else if (lp->features & XAE_FEATURE_PARTIAL_RX_CSUM) { + } else if (lp->features & XAE_FEATURE_PARTIAL_TX_CSUM) { csum_start_off = skb_transport_offset(skb); csum_index_off = csum_start_off + skb->csum_offset; /* Tx Partial Checksum Offload Enabled */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/gtp.c +++ linux-riscv-6.5.0/drivers/net/gtp.c @@ -629,7 +629,7 @@ gtp->sk0 = NULL; else gtp->sk1u = NULL; - udp_sk(sk)->encap_type = 0; + WRITE_ONCE(udp_sk(sk)->encap_type, 0); rcu_assign_sk_user_data(sk, NULL); release_sock(sk); sock_put(sk); @@ -681,7 +681,7 @@ netdev_dbg(gtp->dev, "encap_recv sk=%p\n", sk); - switch (udp_sk(sk)->encap_type) { + switch (READ_ONCE(udp_sk(sk)->encap_type)) { case UDP_ENCAP_GTP0: netdev_dbg(gtp->dev, "received GTP0 packet\n"); ret = gtp0_udp_encap_recv(gtp, skb); @@ -871,8 +871,9 @@ skb_dst_update_pmtu_no_confirm(skb, mtu); - if (!skb_is_gso(skb) && (iph->frag_off & htons(IP_DF)) && - mtu < ntohs(iph->tot_len)) { + if (iph->frag_off & htons(IP_DF) && + ((!skb_is_gso(skb) && skb->len > mtu) || + (skb_is_gso(skb) && !skb_gso_validate_network_len(skb, mtu)))) { netdev_dbg(dev, "packet too big, fragmentation needed\n"); icmp_ndo_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED, htonl(mtu)); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/hyperv/Kconfig +++ linux-riscv-6.5.0/drivers/net/hyperv/Kconfig @@ -3,5 +3,6 @@ tristate "Microsoft Hyper-V virtual network driver" depends on HYPERV select UCS2_STRING + select NLS help Select this option to enable the Hyper-V virtual network driver. only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/hyperv/netvsc_drv.c +++ linux-riscv-6.5.0/drivers/net/hyperv/netvsc_drv.c @@ -2206,9 +2206,6 @@ goto upper_link_failed; } - /* set slave flag before open to prevent IPv6 addrconf */ - vf_netdev->flags |= IFF_SLAVE; - schedule_delayed_work(&ndev_ctx->vf_takeover, VF_TAKEOVER_INT); call_netdevice_notifiers(NETDEV_JOIN, vf_netdev); @@ -2315,16 +2312,18 @@ } - /* Fallback path to check synthetic vf with - * help of mac addr + /* Fallback path to check synthetic vf with help of mac addr. + * Because this function can be called before vf_netdev is + * initialized (NETDEV_POST_INIT) when its perm_addr has not been copied + * from dev_addr, also try to match to its dev_addr. + * Note: On Hyper-V and Azure, it's not possible to set a MAC address + * on a VF that matches to the MAC of a unrelated NETVSC device. */ list_for_each_entry(ndev_ctx, &netvsc_dev_list, list) { ndev = hv_get_drvdata(ndev_ctx->device_ctx); - if (ether_addr_equal(vf_netdev->perm_addr, ndev->perm_addr)) { - netdev_notice(vf_netdev, - "falling back to mac addr based matching\n"); + if (ether_addr_equal(vf_netdev->perm_addr, ndev->perm_addr) || + ether_addr_equal(vf_netdev->dev_addr, ndev->perm_addr)) return ndev; - } } netdev_notice(vf_netdev, @@ -2332,6 +2331,19 @@ return NULL; } +static int netvsc_prepare_bonding(struct net_device *vf_netdev) +{ + struct net_device *ndev; + + ndev = get_netvsc_byslot(vf_netdev); + if (!ndev) + return NOTIFY_DONE; + + /* set slave flag before open to prevent IPv6 addrconf */ + vf_netdev->flags |= IFF_SLAVE; + return NOTIFY_DONE; +} + static int netvsc_register_vf(struct net_device *vf_netdev) { struct net_device_context *net_device_ctx; @@ -2531,15 +2543,6 @@ goto devinfo_failed; } - nvdev = rndis_filter_device_add(dev, device_info); - if (IS_ERR(nvdev)) { - ret = PTR_ERR(nvdev); - netdev_err(net, "unable to add netvsc device (ret %d)\n", ret); - goto rndis_failed; - } - - eth_hw_addr_set(net, device_info->mac_adr); - /* We must get rtnl lock before scheduling nvdev->subchan_work, * otherwise netvsc_subchan_work() can get rtnl lock first and wait * all subchannels to show up, but that may not happen because @@ -2547,9 +2550,23 @@ * -> ... -> device_add() -> ... -> __device_attach() can't get * the device lock, so all the subchannels can't be processed -- * finally netvsc_subchan_work() hangs forever. + * + * The rtnl lock also needs to be held before rndis_filter_device_add() + * which advertises nvsp_2_vsc_capability / sriov bit, and triggers + * VF NIC offering and registering. If VF NIC finished register_netdev() + * earlier it may cause name based config failure. */ rtnl_lock(); + nvdev = rndis_filter_device_add(dev, device_info); + if (IS_ERR(nvdev)) { + ret = PTR_ERR(nvdev); + netdev_err(net, "unable to add netvsc device (ret %d)\n", ret); + goto rndis_failed; + } + + eth_hw_addr_set(net, device_info->mac_adr); + if (nvdev->num_chn > 1) schedule_work(&nvdev->subchan_work); @@ -2586,9 +2603,9 @@ return 0; register_failed: - rtnl_unlock(); rndis_filter_device_remove(dev, nvdev); rndis_failed: + rtnl_unlock(); netvsc_devinfo_put(device_info); devinfo_failed: free_percpu(net_device_ctx->vf_stats); @@ -2753,6 +2770,8 @@ return NOTIFY_DONE; switch (event) { + case NETDEV_POST_INIT: + return netvsc_prepare_bonding(event_dev); case NETDEV_REGISTER: return netvsc_register_vf(event_dev); case NETDEV_UNREGISTER: @@ -2788,12 +2807,17 @@ } netvsc_ring_bytes = ring_size * PAGE_SIZE; + register_netdevice_notifier(&netvsc_netdev_notifier); + ret = vmbus_driver_register(&netvsc_drv); if (ret) - return ret; + goto err_vmbus_reg; - register_netdevice_notifier(&netvsc_netdev_notifier); return 0; + +err_vmbus_reg: + unregister_netdevice_notifier(&netvsc_netdev_notifier); + return ret; } MODULE_LICENSE("GPL"); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ieee802154/adf7242.c +++ linux-riscv-6.5.0/drivers/net/ieee802154/adf7242.c @@ -1162,9 +1162,10 @@ static void adf7242_debugfs_init(struct adf7242_local *lp) { - char debugfs_dir_name[DNAME_INLINE_LEN + 1] = "adf7242-"; + char debugfs_dir_name[DNAME_INLINE_LEN + 1]; - strncat(debugfs_dir_name, dev_name(&lp->spi->dev), DNAME_INLINE_LEN); + snprintf(debugfs_dir_name, sizeof(debugfs_dir_name), + "adf7242-%s", dev_name(&lp->spi->dev)); lp->debugfs_root = debugfs_create_dir(debugfs_dir_name, NULL); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ipa/reg/gsi_reg-v5.0.c +++ linux-riscv-6.5.0/drivers/net/ipa/reg/gsi_reg-v5.0.c @@ -78,7 +78,7 @@ 0x0001c000 + 0x12000 * GSI_EE_AP, 0x80); static const u32 reg_ev_ch_e_cntxt_1_fmask[] = { - [R_LENGTH] = GENMASK(19, 0), + [R_LENGTH] = GENMASK(23, 0), }; REG_STRIDE_FIELDS(EV_CH_E_CNTXT_1, ev_ch_e_cntxt_1, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ipvlan/ipvlan_core.c +++ linux-riscv-6.5.0/drivers/net/ipvlan/ipvlan_core.c @@ -411,7 +411,7 @@ return addr; } -static int ipvlan_process_v4_outbound(struct sk_buff *skb) +static noinline_for_stack int ipvlan_process_v4_outbound(struct sk_buff *skb) { const struct iphdr *ip4h = ip_hdr(skb); struct net_device *dev = skb->dev; @@ -441,25 +441,23 @@ err = ip_local_out(net, skb->sk, skb); if (unlikely(net_xmit_eval(err))) - dev->stats.tx_errors++; + DEV_STATS_INC(dev, tx_errors); else ret = NET_XMIT_SUCCESS; goto out; err: - dev->stats.tx_errors++; + DEV_STATS_INC(dev, tx_errors); kfree_skb(skb); out: return ret; } #if IS_ENABLED(CONFIG_IPV6) -static int ipvlan_process_v6_outbound(struct sk_buff *skb) + +static noinline_for_stack int +ipvlan_route_v6_outbound(struct net_device *dev, struct sk_buff *skb) { const struct ipv6hdr *ip6h = ipv6_hdr(skb); - struct net_device *dev = skb->dev; - struct net *net = dev_net(dev); - struct dst_entry *dst; - int err, ret = NET_XMIT_DROP; struct flowi6 fl6 = { .flowi6_oif = dev->ifindex, .daddr = ip6h->daddr, @@ -469,27 +467,38 @@ .flowi6_mark = skb->mark, .flowi6_proto = ip6h->nexthdr, }; + struct dst_entry *dst; + int err; - dst = ip6_route_output(net, NULL, &fl6); - if (dst->error) { - ret = dst->error; + dst = ip6_route_output(dev_net(dev), NULL, &fl6); + err = dst->error; + if (err) { dst_release(dst); - goto err; + return err; } skb_dst_set(skb, dst); + return 0; +} + +static int ipvlan_process_v6_outbound(struct sk_buff *skb) +{ + struct net_device *dev = skb->dev; + int err, ret = NET_XMIT_DROP; + + err = ipvlan_route_v6_outbound(dev, skb); + if (unlikely(err)) { + DEV_STATS_INC(dev, tx_errors); + kfree_skb(skb); + return err; + } memset(IP6CB(skb), 0, sizeof(*IP6CB(skb))); - err = ip6_local_out(net, skb->sk, skb); + err = ip6_local_out(dev_net(dev), skb->sk, skb); if (unlikely(net_xmit_eval(err))) - dev->stats.tx_errors++; + DEV_STATS_INC(dev, tx_errors); else ret = NET_XMIT_SUCCESS; - goto out; -err: - dev->stats.tx_errors++; - kfree_skb(skb); -out: return ret; } #else only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ipvlan/ipvlan_main.c +++ linux-riscv-6.5.0/drivers/net/ipvlan/ipvlan_main.c @@ -324,6 +324,7 @@ s->rx_dropped = rx_errs; s->tx_dropped = tx_drps; } + s->tx_errors = DEV_STATS_READ(dev, tx_errors); } static int ipvlan_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/macvlan.c +++ linux-riscv-6.5.0/drivers/net/macvlan.c @@ -780,7 +780,7 @@ if (dev->flags & IFF_UP) { if (change & IFF_ALLMULTI) dev_set_allmulti(lowerdev, dev->flags & IFF_ALLMULTI ? 1 : -1); - if (change & IFF_PROMISC) + if (!macvlan_passthru(vlan->port) && change & IFF_PROMISC) dev_set_promiscuity(lowerdev, dev->flags & IFF_PROMISC ? 1 : -1); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/mdio/mdio-mux.c +++ linux-riscv-6.5.0/drivers/net/mdio/mdio-mux.c @@ -55,6 +55,27 @@ return r; } +static int mdio_mux_read_c45(struct mii_bus *bus, int phy_id, int dev_addr, + int regnum) +{ + struct mdio_mux_child_bus *cb = bus->priv; + struct mdio_mux_parent_bus *pb = cb->parent; + int r; + + mutex_lock_nested(&pb->mii_bus->mdio_lock, MDIO_MUTEX_MUX); + r = pb->switch_fn(pb->current_child, cb->bus_number, pb->switch_data); + if (r) + goto out; + + pb->current_child = cb->bus_number; + + r = pb->mii_bus->read_c45(pb->mii_bus, phy_id, dev_addr, regnum); +out: + mutex_unlock(&pb->mii_bus->mdio_lock); + + return r; +} + /* * The parent bus' lock is used to order access to the switch_fn. */ @@ -80,6 +101,28 @@ return r; } +static int mdio_mux_write_c45(struct mii_bus *bus, int phy_id, int dev_addr, + int regnum, u16 val) +{ + struct mdio_mux_child_bus *cb = bus->priv; + struct mdio_mux_parent_bus *pb = cb->parent; + + int r; + + mutex_lock_nested(&pb->mii_bus->mdio_lock, MDIO_MUTEX_MUX); + r = pb->switch_fn(pb->current_child, cb->bus_number, pb->switch_data); + if (r) + goto out; + + pb->current_child = cb->bus_number; + + r = pb->mii_bus->write_c45(pb->mii_bus, phy_id, dev_addr, regnum, val); +out: + mutex_unlock(&pb->mii_bus->mdio_lock); + + return r; +} + static int parent_count; static void mdio_mux_uninit_children(struct mdio_mux_parent_bus *pb) @@ -173,6 +216,10 @@ cb->mii_bus->parent = dev; cb->mii_bus->read = mdio_mux_read; cb->mii_bus->write = mdio_mux_write; + if (parent_bus->read_c45) + cb->mii_bus->read_c45 = mdio_mux_read_c45; + if (parent_bus->write_c45) + cb->mii_bus->write_c45 = mdio_mux_write_c45; r = of_mdiobus_register(cb->mii_bus, child_bus_node); if (r) { mdiobus_free(cb->mii_bus); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/netdevsim/bpf.c +++ linux-riscv-6.5.0/drivers/net/netdevsim/bpf.c @@ -93,7 +93,7 @@ { struct nsim_bpf_bound_prog *state; - if (!prog || !prog->aux->offload) + if (!prog || !bpf_prog_is_offloaded(prog->aux)) return; state = prog->aux->offload->dev_priv; @@ -311,7 +311,7 @@ if (!bpf->prog) return 0; - if (!bpf->prog->aux->offload) { + if (!bpf_prog_is_offloaded(bpf->prog->aux)) { NSIM_EA(bpf->extack, "xdpoffload of non-bound program"); return -EINVAL; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/phy/bcm7xxx.c +++ linux-riscv-6.5.0/drivers/net/phy/bcm7xxx.c @@ -894,6 +894,9 @@ .name = _name, \ /* PHY_BASIC_FEATURES */ \ .flags = PHY_IS_INTERNAL, \ + .get_sset_count = bcm_phy_get_sset_count, \ + .get_strings = bcm_phy_get_strings, \ + .get_stats = bcm7xxx_28nm_get_phy_stats, \ .probe = bcm7xxx_28nm_probe, \ .config_init = bcm7xxx_16nm_ephy_config_init, \ .config_aneg = genphy_config_aneg, \ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/phy/phylink.c +++ linux-riscv-6.5.0/drivers/net/phy/phylink.c @@ -1568,6 +1568,7 @@ pl->config = config; if (config->type == PHYLINK_NETDEV) { pl->netdev = to_net_dev(config->dev); + netif_carrier_off(pl->netdev); } else if (config->type == PHYLINK_DEV) { pl->dev = config->dev; } else { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/phy/sfp.c +++ linux-riscv-6.5.0/drivers/net/phy/sfp.c @@ -452,6 +452,11 @@ // Rollball protocol to talk to the PHY. SFP_QUIRK_F("FS", "SFP-10G-T", sfp_fixup_fs_10gt), + // Fiberstore GPON-ONU-34-20BI can operate at 2500base-X, but report 1.2GBd + // NRZ in their EEPROM + SFP_QUIRK("FS", "GPON-ONU-34-20BI", sfp_quirk_2500basex, + sfp_fixup_ignore_tx_fault), + SFP_QUIRK_F("HALNy", "HL-GSFP", sfp_fixup_halny_gsfp), // HG MXPD-483II-F 2.5G supports 2500Base-X, but incorrectly reports @@ -463,6 +468,9 @@ SFP_QUIRK("HUAWEI", "MA5671A", sfp_quirk_2500basex, sfp_fixup_ignore_tx_fault), + // FS 2.5G Base-T + SFP_QUIRK_M("FS", "SFP-2.5G-T", sfp_quirk_oem_2_5g), + // Lantech 8330-262D-E can operate at 2500base-X, but incorrectly report // 2500MBd NRZ in their EEPROM SFP_QUIRK_M("Lantech", "8330-262D-E", sfp_quirk_2500basex), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/ppp/ppp_synctty.c +++ linux-riscv-6.5.0/drivers/net/ppp/ppp_synctty.c @@ -462,6 +462,10 @@ case PPPIOCSMRU: if (get_user(val, (int __user *) argp)) break; + if (val > U16_MAX) { + err = -EINVAL; + break; + } if (val < PPP_MRU) val = PPP_MRU; ap->mru = val; @@ -697,7 +701,7 @@ /* strip address/control field if present */ p = skb->data; - if (p[0] == PPP_ALLSTATIONS && p[1] == PPP_UI) { + if (skb->len >= 2 && p[0] == PPP_ALLSTATIONS && p[1] == PPP_UI) { /* chop off address/control */ if (skb->len < 3) goto err; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/tun.c +++ linux-riscv-6.5.0/drivers/net/tun.c @@ -3068,10 +3068,11 @@ struct net *net = sock_net(&tfile->sk); struct tun_struct *tun; void __user* argp = (void __user*)arg; - unsigned int ifindex, carrier; + unsigned int carrier; struct ifreq ifr; kuid_t owner; kgid_t group; + int ifindex; int sndbuf; int vnet_hdr_sz; int le; @@ -3127,7 +3128,9 @@ ret = -EFAULT; if (copy_from_user(&ifindex, argp, sizeof(ifindex))) goto unlock; - + ret = -EINVAL; + if (ifindex < 0) + goto unlock; ret = 0; tfile->ifindex = ifindex; goto unlock; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/usb/ax88179_178a.c +++ linux-riscv-6.5.0/drivers/net/usb/ax88179_178a.c @@ -1583,11 +1583,11 @@ *tmp16 = AX_PHYPWR_RSTCTL_IPRL; ax88179_write_cmd(dev, AX_ACCESS_MAC, AX_PHYPWR_RSTCTL, 2, 2, tmp16); - msleep(200); + msleep(500); *tmp = AX_CLK_SELECT_ACS | AX_CLK_SELECT_BCS; ax88179_write_cmd(dev, AX_ACCESS_MAC, AX_CLK_SELECT, 1, 1, tmp); - msleep(100); + msleep(200); /* Ethernet PHY Auto Detach*/ ax88179_auto_detach(dev); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/usb/smsc95xx.c +++ linux-riscv-6.5.0/drivers/net/usb/smsc95xx.c @@ -95,7 +95,9 @@ ret = fn(dev, USB_VENDOR_REQUEST_READ_REGISTER, USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, 0, index, &buf, 4); - if (ret < 0) { + if (ret < 4) { + ret = ret < 0 ? ret : -ENODATA; + if (ret != -ENODEV) netdev_warn(dev->net, "Failed to read reg index 0x%08x: %d\n", index, ret); @@ -897,7 +899,7 @@ if (timeout >= 100) { netdev_warn(dev->net, "timeout waiting for completion of Lite Reset\n"); - return ret; + return -ETIMEDOUT; } ret = smsc95xx_set_mac_address(dev); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/virtio_net.c +++ linux-riscv-6.5.0/drivers/net/virtio_net.c @@ -80,24 +80,24 @@ struct virtnet_sq_stats { struct u64_stats_sync syncp; - u64 packets; - u64 bytes; - u64 xdp_tx; - u64 xdp_tx_drops; - u64 kicks; - u64 tx_timeouts; + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t xdp_tx; + u64_stats_t xdp_tx_drops; + u64_stats_t kicks; + u64_stats_t tx_timeouts; }; struct virtnet_rq_stats { struct u64_stats_sync syncp; - u64 packets; - u64 bytes; - u64 drops; - u64 xdp_packets; - u64 xdp_tx; - u64 xdp_redirects; - u64 xdp_drops; - u64 kicks; + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t drops; + u64_stats_t xdp_packets; + u64_stats_t xdp_tx; + u64_stats_t xdp_redirects; + u64_stats_t xdp_drops; + u64_stats_t kicks; }; #define VIRTNET_SQ_STAT(m) offsetof(struct virtnet_sq_stats, m) @@ -593,8 +593,8 @@ return; u64_stats_update_begin(&sq->stats.syncp); - sq->stats.bytes += bytes; - sq->stats.packets += packets; + u64_stats_add(&sq->stats.bytes, bytes); + u64_stats_add(&sq->stats.packets, packets); u64_stats_update_end(&sq->stats.syncp); } @@ -793,11 +793,11 @@ } out: u64_stats_update_begin(&sq->stats.syncp); - sq->stats.bytes += bytes; - sq->stats.packets += packets; - sq->stats.xdp_tx += n; - sq->stats.xdp_tx_drops += n - nxmit; - sq->stats.kicks += kicks; + u64_stats_add(&sq->stats.bytes, bytes); + u64_stats_add(&sq->stats.packets, packets); + u64_stats_add(&sq->stats.xdp_tx, n); + u64_stats_add(&sq->stats.xdp_tx_drops, n - nxmit); + u64_stats_add(&sq->stats.kicks, kicks); u64_stats_update_end(&sq->stats.syncp); virtnet_xdp_put_sq(vi, sq); @@ -829,14 +829,14 @@ u32 act; act = bpf_prog_run_xdp(xdp_prog, xdp); - stats->xdp_packets++; + u64_stats_inc(&stats->xdp_packets); switch (act) { case XDP_PASS: return act; case XDP_TX: - stats->xdp_tx++; + u64_stats_inc(&stats->xdp_tx); xdpf = xdp_convert_buff_to_frame(xdp); if (unlikely(!xdpf)) { netdev_dbg(dev, "convert buff to frame failed for xdp\n"); @@ -854,7 +854,7 @@ return act; case XDP_REDIRECT: - stats->xdp_redirects++; + u64_stats_inc(&stats->xdp_redirects); err = xdp_do_redirect(dev, xdp, xdp_prog); if (err) return XDP_DROP; @@ -1050,9 +1050,9 @@ return skb; err_xdp: - stats->xdp_drops++; + u64_stats_inc(&stats->xdp_drops); err: - stats->drops++; + u64_stats_inc(&stats->drops); put_page(page); xdp_xmit: return NULL; @@ -1071,7 +1071,7 @@ struct sk_buff *skb; len -= vi->hdr_len; - stats->bytes += len; + u64_stats_add(&stats->bytes, len); if (unlikely(len > GOOD_PACKET_LEN)) { pr_debug("%s: rx error: len %u exceeds max size %d\n", @@ -1100,7 +1100,7 @@ return skb; err: - stats->drops++; + u64_stats_inc(&stats->drops); put_page(page); return NULL; } @@ -1116,14 +1116,14 @@ struct sk_buff *skb = page_to_skb(vi, rq, page, 0, len, PAGE_SIZE, 0); - stats->bytes += len - vi->hdr_len; + u64_stats_add(&stats->bytes, len - vi->hdr_len); if (unlikely(!skb)) goto err; return skb; err: - stats->drops++; + u64_stats_inc(&stats->drops); give_pages(rq, page); return NULL; } @@ -1144,7 +1144,7 @@ dev->stats.rx_length_errors++; break; } - stats->bytes += len; + u64_stats_add(&stats->bytes, len); page = virt_to_head_page(buf); put_page(page); } @@ -1254,7 +1254,7 @@ goto err; } - stats->bytes += len; + u64_stats_add(&stats->bytes, len); page = virt_to_head_page(buf); offset = buf - page_address(page); @@ -1418,8 +1418,8 @@ put_page(page); mergeable_buf_free(rq, num_buf, dev, stats); - stats->xdp_drops++; - stats->drops++; + u64_stats_inc(&stats->xdp_drops); + u64_stats_inc(&stats->drops); return NULL; } @@ -1443,7 +1443,7 @@ unsigned int room = SKB_DATA_ALIGN(headroom + tailroom); head_skb = NULL; - stats->bytes += len - vi->hdr_len; + u64_stats_add(&stats->bytes, len - vi->hdr_len); if (unlikely(len > truesize - room)) { pr_debug("%s: rx error: len %u exceeds truesize %lu\n", @@ -1484,7 +1484,7 @@ goto err_buf; } - stats->bytes += len; + u64_stats_add(&stats->bytes, len); page = virt_to_head_page(buf); truesize = mergeable_ctx_to_truesize(ctx); @@ -1536,7 +1536,7 @@ mergeable_buf_free(rq, num_buf, dev, stats); err_buf: - stats->drops++; + u64_stats_inc(&stats->drops); dev_kfree_skb(head_skb); return NULL; } @@ -1797,7 +1797,7 @@ unsigned long flags; flags = u64_stats_update_begin_irqsave(&rq->stats.syncp); - rq->stats.kicks++; + u64_stats_inc(&rq->stats.kicks); u64_stats_update_end_irqrestore(&rq->stats.syncp, flags); } @@ -1877,22 +1877,23 @@ struct virtnet_info *vi = rq->vq->vdev->priv; struct virtnet_rq_stats stats = {}; unsigned int len; + int packets = 0; void *buf; int i; if (!vi->big_packets || vi->mergeable_rx_bufs) { void *ctx; - while (stats.packets < budget && + while (packets < budget && (buf = virtqueue_get_buf_ctx(rq->vq, &len, &ctx))) { receive_buf(vi, rq, buf, len, ctx, xdp_xmit, &stats); - stats.packets++; + packets++; } } else { - while (stats.packets < budget && + while (packets < budget && (buf = virtqueue_get_buf(rq->vq, &len)) != NULL) { receive_buf(vi, rq, buf, len, NULL, xdp_xmit, &stats); - stats.packets++; + packets++; } } @@ -1905,17 +1906,19 @@ } } + u64_stats_set(&stats.packets, packets); u64_stats_update_begin(&rq->stats.syncp); for (i = 0; i < VIRTNET_RQ_STATS_LEN; i++) { size_t offset = virtnet_rq_stats_desc[i].offset; - u64 *item; + u64_stats_t *item, *src; - item = (u64 *)((u8 *)&rq->stats + offset); - *item += *(u64 *)((u8 *)&stats + offset); + item = (u64_stats_t *)((u8 *)&rq->stats + offset); + src = (u64_stats_t *)((u8 *)&stats + offset); + u64_stats_add(item, u64_stats_read(src)); } u64_stats_update_end(&rq->stats.syncp); - return stats.packets; + return packets; } static void virtnet_poll_cleantx(struct receive_queue *rq) @@ -1970,7 +1973,7 @@ sq = virtnet_xdp_get_sq(vi); if (virtqueue_kick_prepare(sq->vq) && virtqueue_notify(sq->vq)) { u64_stats_update_begin(&sq->stats.syncp); - sq->stats.kicks++; + u64_stats_inc(&sq->stats.kicks); u64_stats_update_end(&sq->stats.syncp); } virtnet_xdp_put_sq(vi, sq); @@ -2182,7 +2185,7 @@ if (kick || netif_xmit_stopped(txq)) { if (virtqueue_kick_prepare(sq->vq) && virtqueue_notify(sq->vq)) { u64_stats_update_begin(&sq->stats.syncp); - sq->stats.kicks++; + u64_stats_inc(&sq->stats.kicks); u64_stats_update_end(&sq->stats.syncp); } } @@ -2365,16 +2368,16 @@ do { start = u64_stats_fetch_begin(&sq->stats.syncp); - tpackets = sq->stats.packets; - tbytes = sq->stats.bytes; - terrors = sq->stats.tx_timeouts; + tpackets = u64_stats_read(&sq->stats.packets); + tbytes = u64_stats_read(&sq->stats.bytes); + terrors = u64_stats_read(&sq->stats.tx_timeouts); } while (u64_stats_fetch_retry(&sq->stats.syncp, start)); do { start = u64_stats_fetch_begin(&rq->stats.syncp); - rpackets = rq->stats.packets; - rbytes = rq->stats.bytes; - rdrops = rq->stats.drops; + rpackets = u64_stats_read(&rq->stats.packets); + rbytes = u64_stats_read(&rq->stats.bytes); + rdrops = u64_stats_read(&rq->stats.drops); } while (u64_stats_fetch_retry(&rq->stats.syncp, start)); tot->rx_packets += rpackets; @@ -2976,17 +2979,19 @@ struct virtnet_info *vi = netdev_priv(dev); unsigned int idx = 0, start, i, j; const u8 *stats_base; + const u64_stats_t *p; size_t offset; for (i = 0; i < vi->curr_queue_pairs; i++) { struct receive_queue *rq = &vi->rq[i]; - stats_base = (u8 *)&rq->stats; + stats_base = (const u8 *)&rq->stats; do { start = u64_stats_fetch_begin(&rq->stats.syncp); for (j = 0; j < VIRTNET_RQ_STATS_LEN; j++) { offset = virtnet_rq_stats_desc[j].offset; - data[idx + j] = *(u64 *)(stats_base + offset); + p = (const u64_stats_t *)(stats_base + offset); + data[idx + j] = u64_stats_read(p); } } while (u64_stats_fetch_retry(&rq->stats.syncp, start)); idx += VIRTNET_RQ_STATS_LEN; @@ -2995,12 +3000,13 @@ for (i = 0; i < vi->curr_queue_pairs; i++) { struct send_queue *sq = &vi->sq[i]; - stats_base = (u8 *)&sq->stats; + stats_base = (const u8 *)&sq->stats; do { start = u64_stats_fetch_begin(&sq->stats.syncp); for (j = 0; j < VIRTNET_SQ_STATS_LEN; j++) { offset = virtnet_sq_stats_desc[j].offset; - data[idx + j] = *(u64 *)(stats_base + offset); + p = (const u64_stats_t *)(stats_base + offset); + data[idx + j] = u64_stats_read(p); } } while (u64_stats_fetch_retry(&sq->stats.syncp, start)); idx += VIRTNET_SQ_STATS_LEN; @@ -3550,7 +3556,7 @@ struct netdev_queue *txq = netdev_get_tx_queue(dev, txqueue); u64_stats_update_begin(&sq->stats.syncp); - sq->stats.tx_timeouts++; + u64_stats_inc(&sq->stats.tx_timeouts); u64_stats_update_end(&sq->stats.syncp); netdev_err(dev, "TX timeout on queue: %u, sq: %s, vq: 0x%x, name: %s, %u usecs ago\n", only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/vrf.c +++ linux-riscv-6.5.0/drivers/net/vrf.c @@ -121,22 +121,12 @@ int ifindex; }; -struct pcpu_dstats { - u64 tx_pkts; - u64 tx_bytes; - u64 tx_drps; - u64 rx_pkts; - u64 rx_bytes; - u64 rx_drps; - struct u64_stats_sync syncp; -}; - static void vrf_rx_stats(struct net_device *dev, int len) { struct pcpu_dstats *dstats = this_cpu_ptr(dev->dstats); u64_stats_update_begin(&dstats->syncp); - dstats->rx_pkts++; + dstats->rx_packets++; dstats->rx_bytes += len; u64_stats_update_end(&dstats->syncp); } @@ -161,10 +151,10 @@ do { start = u64_stats_fetch_begin(&dstats->syncp); tbytes = dstats->tx_bytes; - tpkts = dstats->tx_pkts; - tdrops = dstats->tx_drps; + tpkts = dstats->tx_packets; + tdrops = dstats->tx_drops; rbytes = dstats->rx_bytes; - rpkts = dstats->rx_pkts; + rpkts = dstats->rx_packets; } while (u64_stats_fetch_retry(&dstats->syncp, start)); stats->tx_bytes += tbytes; stats->tx_packets += tpkts; @@ -421,7 +411,7 @@ if (likely(__netif_rx(skb) == NET_RX_SUCCESS)) vrf_rx_stats(dev, len); else - this_cpu_inc(dev->dstats->rx_drps); + this_cpu_inc(dev->dstats->rx_drops); return NETDEV_TX_OK; } @@ -616,11 +606,11 @@ struct pcpu_dstats *dstats = this_cpu_ptr(dev->dstats); u64_stats_update_begin(&dstats->syncp); - dstats->tx_pkts++; + dstats->tx_packets++; dstats->tx_bytes += len; u64_stats_update_end(&dstats->syncp); } else { - this_cpu_inc(dev->dstats->tx_drps); + this_cpu_inc(dev->dstats->tx_drops); } return ret; @@ -1176,22 +1166,15 @@ vrf_rtable_release(dev, vrf); vrf_rt6_release(dev, vrf); - - free_percpu(dev->dstats); - dev->dstats = NULL; } static int vrf_dev_init(struct net_device *dev) { struct net_vrf *vrf = netdev_priv(dev); - dev->dstats = netdev_alloc_pcpu_stats(struct pcpu_dstats); - if (!dev->dstats) - goto out_nomem; - /* create the default dst which points back to us */ if (vrf_rtable_create(dev) != 0) - goto out_stats; + goto out_nomem; if (vrf_rt6_create(dev) != 0) goto out_rth; @@ -1205,9 +1188,6 @@ out_rth: vrf_rtable_release(dev, vrf); -out_stats: - free_percpu(dev->dstats); - dev->dstats = NULL; out_nomem: return -ENOMEM; } @@ -1706,6 +1686,8 @@ dev->min_mtu = IPV6_MIN_MTU; dev->max_mtu = IP6_MAX_MTU; dev->mtu = dev->max_mtu; + + dev->pcpu_stat_type = NETDEV_PCPU_STAT_DSTATS; } static int vrf_validate(struct nlattr *tb[], struct nlattr *data[], only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireguard/device.c +++ linux-riscv-6.5.0/drivers/net/wireguard/device.c @@ -210,7 +210,7 @@ */ while (skb_queue_len(&peer->staged_packet_queue) > MAX_STAGED_PACKETS) { dev_kfree_skb(__skb_dequeue(&peer->staged_packet_queue)); - ++dev->stats.tx_dropped; + DEV_STATS_INC(dev, tx_dropped); } skb_queue_splice_tail(&packets, &peer->staged_packet_queue); spin_unlock_bh(&peer->staged_packet_queue.lock); @@ -228,7 +228,7 @@ else if (skb->protocol == htons(ETH_P_IPV6)) icmpv6_ndo_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_ADDR_UNREACH, 0); err: - ++dev->stats.tx_errors; + DEV_STATS_INC(dev, tx_errors); kfree_skb(skb); return ret; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireguard/receive.c +++ linux-riscv-6.5.0/drivers/net/wireguard/receive.c @@ -416,20 +416,20 @@ net_dbg_skb_ratelimited("%s: Packet has unallowed src IP (%pISc) from peer %llu (%pISpfsc)\n", dev->name, skb, peer->internal_id, &peer->endpoint.addr); - ++dev->stats.rx_errors; - ++dev->stats.rx_frame_errors; + DEV_STATS_INC(dev, rx_errors); + DEV_STATS_INC(dev, rx_frame_errors); goto packet_processed; dishonest_packet_type: net_dbg_ratelimited("%s: Packet is neither ipv4 nor ipv6 from peer %llu (%pISpfsc)\n", dev->name, peer->internal_id, &peer->endpoint.addr); - ++dev->stats.rx_errors; - ++dev->stats.rx_frame_errors; + DEV_STATS_INC(dev, rx_errors); + DEV_STATS_INC(dev, rx_frame_errors); goto packet_processed; dishonest_packet_size: net_dbg_ratelimited("%s: Packet has incorrect size from peer %llu (%pISpfsc)\n", dev->name, peer->internal_id, &peer->endpoint.addr); - ++dev->stats.rx_errors; - ++dev->stats.rx_length_errors; + DEV_STATS_INC(dev, rx_errors); + DEV_STATS_INC(dev, rx_length_errors); goto packet_processed; packet_processed: dev_kfree_skb(skb); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireguard/send.c +++ linux-riscv-6.5.0/drivers/net/wireguard/send.c @@ -333,7 +333,8 @@ void wg_packet_purge_staged_packets(struct wg_peer *peer) { spin_lock_bh(&peer->staged_packet_queue.lock); - peer->device->dev->stats.tx_dropped += peer->staged_packet_queue.qlen; + DEV_STATS_ADD(peer->device->dev, tx_dropped, + peer->staged_packet_queue.qlen); __skb_queue_purge(&peer->staged_packet_queue); spin_unlock_bh(&peer->staged_packet_queue.lock); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/ath/ath10k/debug.c +++ linux-riscv-6.5.0/drivers/net/wireless/ath/ath10k/debug.c @@ -1140,7 +1140,7 @@ u32 sset, u8 *data) { if (sset == ETH_SS_STATS) - memcpy(data, *ath10k_gstrings_stats, + memcpy(data, ath10k_gstrings_stats, sizeof(ath10k_gstrings_stats)); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/ath/ath10k/snoc.c +++ linux-riscv-6.5.0/drivers/net/wireless/ath/ath10k/snoc.c @@ -828,12 +828,20 @@ static inline void ath10k_snoc_irq_disable(struct ath10k *ar) { - ath10k_ce_disable_interrupts(ar); + struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); + int id; + + for (id = 0; id < CE_COUNT_MAX; id++) + disable_irq(ar_snoc->ce_irqs[id].irq_line); } static inline void ath10k_snoc_irq_enable(struct ath10k *ar) { - ath10k_ce_enable_interrupts(ar); + struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); + int id; + + for (id = 0; id < CE_COUNT_MAX; id++) + enable_irq(ar_snoc->ce_irqs[id].irq_line); } static void ath10k_snoc_rx_pipe_cleanup(struct ath10k_snoc_pipe *snoc_pipe) @@ -1090,6 +1098,8 @@ goto err_free_rri; } + ath10k_ce_enable_interrupts(ar); + return 0; err_free_rri: @@ -1253,8 +1263,8 @@ for (id = 0; id < CE_COUNT_MAX; id++) { ret = request_irq(ar_snoc->ce_irqs[id].irq_line, - ath10k_snoc_per_engine_handler, 0, - ce_name[id], ar); + ath10k_snoc_per_engine_handler, + IRQF_NO_AUTOEN, ce_name[id], ar); if (ret) { ath10k_err(ar, "failed to register IRQ handler for CE %d: %d\n", only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/ath/ath11k/mac.c +++ linux-riscv-6.5.0/drivers/net/wireless/ath/ath11k/mac.c @@ -9042,6 +9042,14 @@ if (ar->state != ATH11K_STATE_ON) goto err_fallback; + /* Firmware doesn't provide Tx power during CAC hence no need to fetch + * the stats. + */ + if (test_bit(ATH11K_CAC_RUNNING, &ar->dev_flags)) { + mutex_unlock(&ar->conf_mutex); + return -EAGAIN; + } + req_param.pdev_id = ar->pdev->pdev_id; req_param.stats_id = WMI_REQUEST_PDEV_STAT; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/ath/ath11k/wmi.c +++ linux-riscv-6.5.0/drivers/net/wireless/ath/ath11k/wmi.c @@ -8337,6 +8337,8 @@ ev->detector_id, ev->segment_id, ev->timestamp, ev->is_chirp, ev->freq_offset, ev->sidx); + rcu_read_lock(); + ar = ath11k_mac_get_ar_by_pdev_id(ab, ev->pdev_id); if (!ar) { @@ -8354,6 +8356,8 @@ ieee80211_radar_detected(ar->hw); exit: + rcu_read_unlock(); + kfree(tb); } @@ -8383,15 +8387,19 @@ ath11k_dbg(ab, ATH11K_DBG_WMI, "event pdev temperature ev temp %d pdev_id %d\n", ev->temp, ev->pdev_id); + rcu_read_lock(); + ar = ath11k_mac_get_ar_by_pdev_id(ab, ev->pdev_id); if (!ar) { ath11k_warn(ab, "invalid pdev id in pdev temperature ev %d", ev->pdev_id); - kfree(tb); - return; + goto exit; } ath11k_thermal_event_temperature(ar, ev->temp); +exit: + rcu_read_unlock(); + kfree(tb); } @@ -8611,12 +8619,13 @@ return; } + rcu_read_lock(); + arvif = ath11k_mac_get_arvif_by_vdev_id(ab, ev->vdev_id); if (!arvif) { ath11k_warn(ab, "failed to get arvif for vdev_id:%d\n", ev->vdev_id); - kfree(tb); - return; + goto exit; } ath11k_dbg(ab, ATH11K_DBG_WMI, "event gtk offload refresh_cnt %d\n", @@ -8633,6 +8642,8 @@ ieee80211_gtk_rekey_notify(arvif->vif, arvif->bssid, (void *)&replay_ctr_be, GFP_ATOMIC); +exit: + rcu_read_unlock(); kfree(tb); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/ath/ath12k/dp_rx.c +++ linux-riscv-6.5.0/drivers/net/wireless/ath/ath12k/dp_rx.c @@ -1555,6 +1555,13 @@ msg = (struct ath12k_htt_ppdu_stats_msg *)skb->data; len = le32_get_bits(msg->info, HTT_T2H_PPDU_STATS_INFO_PAYLOAD_SIZE); + if (len > (skb->len - struct_size(msg, data, 0))) { + ath12k_warn(ab, + "HTT PPDU STATS event has unexpected payload size %u, should be smaller than %u\n", + len, skb->len); + return -EINVAL; + } + pdev_id = le32_get_bits(msg->info, HTT_T2H_PPDU_STATS_INFO_PDEV_ID); ppdu_id = le32_to_cpu(msg->ppdu_id); @@ -1583,6 +1590,16 @@ goto exit; } + if (ppdu_info->ppdu_stats.common.num_users >= HTT_PPDU_STATS_MAX_USERS) { + spin_unlock_bh(&ar->data_lock); + ath12k_warn(ab, + "HTT PPDU STATS event has unexpected num_users %u, should be smaller than %u\n", + ppdu_info->ppdu_stats.common.num_users, + HTT_PPDU_STATS_MAX_USERS); + ret = -EINVAL; + goto exit; + } + /* back up data rate tlv for all peers */ if (ppdu_info->frame_type == HTT_STATS_PPDU_FTYPE_DATA && (ppdu_info->tlv_bitmap & (1 << HTT_PPDU_STATS_TAG_USR_COMMON)) && @@ -1641,11 +1658,12 @@ msg = (struct ath12k_htt_mlo_offset_msg *)skb->data; pdev_id = u32_get_bits(__le32_to_cpu(msg->info), HTT_T2H_MLO_OFFSET_INFO_PDEV_ID); - ar = ath12k_mac_get_ar_by_pdev_id(ab, pdev_id); + rcu_read_lock(); + ar = ath12k_mac_get_ar_by_pdev_id(ab, pdev_id); if (!ar) { ath12k_warn(ab, "invalid pdev id %d on htt mlo offset\n", pdev_id); - return; + goto exit; } spin_lock_bh(&ar->data_lock); @@ -1661,6 +1679,8 @@ pdev->timestamp.mlo_comp_timer = __le32_to_cpu(msg->mlo_comp_timer); spin_unlock_bh(&ar->data_lock); +exit: + rcu_read_unlock(); } void ath12k_dp_htt_htc_t2h_msg_handler(struct ath12k_base *ab, @@ -2747,6 +2767,7 @@ } peer->tfm_mmic = tfm; + peer->dp_setup_done = true; spin_unlock_bh(&ab->base_lock); return 0; @@ -3213,6 +3234,14 @@ ret = -ENOENT; goto out_unlock; } + + if (!peer->dp_setup_done) { + ath12k_warn(ab, "The peer %pM [%d] has uninitialized datapath\n", + peer->addr, peer_id); + ret = -ENOENT; + goto out_unlock; + } + rx_tid = &peer->rx_tid[tid]; if ((!skb_queue_empty(&rx_tid->rx_frags) && seqno != rx_tid->cur_sn) || @@ -3228,7 +3257,7 @@ goto out_unlock; } - if (frag_no > __fls(rx_tid->rx_frag_bitmap)) + if ((!rx_tid->rx_frag_bitmap || frag_no > __fls(rx_tid->rx_frag_bitmap))) __skb_queue_tail(&rx_tid->rx_frags, msdu); else ath12k_dp_rx_h_sort_frags(ab, &rx_tid->rx_frags, msdu); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/ath/ath12k/dp_tx.c +++ linux-riscv-6.5.0/drivers/net/wireless/ath/ath12k/dp_tx.c @@ -330,8 +330,11 @@ fail_unmap_dma: dma_unmap_single(ab->dev, ti.paddr, ti.data_len, DMA_TO_DEVICE); - dma_unmap_single(ab->dev, skb_cb->paddr_ext_desc, - sizeof(struct hal_tx_msdu_ext_desc), DMA_TO_DEVICE); + + if (skb_cb->paddr_ext_desc) + dma_unmap_single(ab->dev, skb_cb->paddr_ext_desc, + sizeof(struct hal_tx_msdu_ext_desc), + DMA_TO_DEVICE); fail_remove_tx_buf: ath12k_dp_tx_release_txbuf(dp, tx_desc, pool_id); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/ath/ath12k/mhi.c +++ linux-riscv-6.5.0/drivers/net/wireless/ath/ath12k/mhi.c @@ -370,8 +370,7 @@ ret = ath12k_mhi_get_msi(ab_pci); if (ret) { ath12k_err(ab, "failed to get msi for mhi\n"); - mhi_free_controller(mhi_ctrl); - return ret; + goto free_controller; } mhi_ctrl->iova_start = 0; @@ -388,11 +387,15 @@ ret = mhi_register_controller(mhi_ctrl, ab->hw_params->mhi_config); if (ret) { ath12k_err(ab, "failed to register to mhi bus, err = %d\n", ret); - mhi_free_controller(mhi_ctrl); - return ret; + goto free_controller; } return 0; + +free_controller: + mhi_free_controller(mhi_ctrl); + ab_pci->mhi_ctrl = NULL; + return ret; } void ath12k_mhi_unregister(struct ath12k_pci *ab_pci) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/ath/ath12k/peer.h +++ linux-riscv-6.5.0/drivers/net/wireless/ath/ath12k/peer.h @@ -44,6 +44,9 @@ struct ppdu_user_delayba ppdu_stats_delayba; bool delayba_flag; bool is_authorized; + + /* protected by ab->data_lock */ + bool dp_setup_done; }; void ath12k_peer_unmap_event(struct ath12k_base *ab, u16 peer_id); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/ath/ath9k/debug.c +++ linux-riscv-6.5.0/drivers/net/wireless/ath/ath9k/debug.c @@ -1333,7 +1333,7 @@ u32 sset, u8 *data) { if (sset == ETH_SS_STATS) - memcpy(data, *ath9k_gstrings_stats, + memcpy(data, ath9k_gstrings_stats, sizeof(ath9k_gstrings_stats)); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/ath/dfs_pattern_detector.c +++ linux-riscv-6.5.0/drivers/net/wireless/ath/dfs_pattern_detector.c @@ -206,7 +206,7 @@ INIT_LIST_HEAD(&cd->head); cd->freq = freq; - cd->detectors = kmalloc_array(dpd->num_radar_types, + cd->detectors = kcalloc(dpd->num_radar_types, sizeof(*cd->detectors), GFP_ATOMIC); if (cd->detectors == NULL) goto fail; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/cfg/bz.c +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/cfg/bz.c @@ -134,12 +134,10 @@ .ht_params = &iwl_gl_a_ht_params /* - * If the device doesn't support HE, no need to have that many buffers. - * These sizes were picked according to 8 MSDUs inside 256 A-MSDUs in an + * This size was picked according to 8 MSDUs inside 512 A-MSDUs in an * A-MPDU, with additional overhead to account for processing time. */ -#define IWL_NUM_RBDS_NON_HE 512 -#define IWL_NUM_RBDS_BZ_HE 4096 +#define IWL_NUM_RBDS_BZ_EHT (512 * 16) const struct iwl_cfg_trans_params iwl_bz_trans_cfg = { .device_family = IWL_DEVICE_FAMILY_BZ, @@ -160,16 +158,16 @@ .fw_name_mac = "bz", .uhb_supported = true, IWL_DEVICE_BZ, - .features = IWL_TX_CSUM_NETIF_FLAGS_BZ | NETIF_F_RXCSUM, - .num_rbds = IWL_NUM_RBDS_BZ_HE, + .features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM, + .num_rbds = IWL_NUM_RBDS_BZ_EHT, }; const struct iwl_cfg iwl_cfg_gl = { .fw_name_mac = "gl", .uhb_supported = true, IWL_DEVICE_BZ, - .features = IWL_TX_CSUM_NETIF_FLAGS_BZ | NETIF_F_RXCSUM, - .num_rbds = IWL_NUM_RBDS_BZ_HE, + .features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM, + .num_rbds = IWL_NUM_RBDS_BZ_EHT, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/cfg/sc.c +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/cfg/sc.c @@ -127,12 +127,10 @@ .ht_params = &iwl_22000_ht_params /* - * If the device doesn't support HE, no need to have that many buffers. - * These sizes were picked according to 8 MSDUs inside 256 A-MSDUs in an + * This size was picked according to 8 MSDUs inside 512 A-MSDUs in an * A-MPDU, with additional overhead to account for processing time. */ -#define IWL_NUM_RBDS_NON_HE 512 -#define IWL_NUM_RBDS_SC_HE 4096 +#define IWL_NUM_RBDS_SC_EHT (512 * 16) const struct iwl_cfg_trans_params iwl_sc_trans_cfg = { .device_family = IWL_DEVICE_FAMILY_SC, @@ -153,8 +151,8 @@ .fw_name_mac = "sc", .uhb_supported = true, IWL_DEVICE_SC, - .features = IWL_TX_CSUM_NETIF_FLAGS_BZ | NETIF_F_RXCSUM, - .num_rbds = IWL_NUM_RBDS_SC_HE, + .features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM, + .num_rbds = IWL_NUM_RBDS_SC_EHT, }; MODULE_FIRMWARE(IWL_SC_A_FM_B_FW_MODULE_FIRMWARE(IWL_SC_UCODE_API_MAX)); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/dvm/tx.c +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/dvm/tx.c @@ -3,6 +3,7 @@ * * Copyright(c) 2008 - 2014 Intel Corporation. All rights reserved. * Copyright (C) 2019 Intel Corporation + * Copyright (C) 2023 Intel Corporation *****************************************************************************/ #include @@ -1169,7 +1170,7 @@ iwlagn_check_ratid_empty(priv, sta_id, tid); } - iwl_trans_reclaim(priv->trans, txq_id, ssn, &skbs); + iwl_trans_reclaim(priv->trans, txq_id, ssn, &skbs, false); freed = 0; @@ -1315,7 +1316,7 @@ * block-ack window (we assume that they've been successfully * transmitted ... if not, it's too late anyway). */ iwl_trans_reclaim(priv->trans, scd_flow, ba_resp_scd_ssn, - &reclaimed_skbs); + &reclaimed_skbs, false); IWL_DEBUG_TX_REPLY(priv, "REPLY_COMPRESSED_BA [%d] Received from %pM, " "sta_id = %d\n", only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h @@ -13,6 +13,7 @@ #define IWL_FW_INI_DOMAIN_ALWAYS_ON 0 #define IWL_FW_INI_REGION_ID_MASK GENMASK(15, 0) #define IWL_FW_INI_REGION_DUMP_POLICY_MASK GENMASK(31, 16) +#define IWL_FW_INI_PRESET_DISABLE 0xff /** * struct iwl_fw_ini_hcmd only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -86,10 +86,7 @@ #define IWL_DEFAULT_MAX_TX_POWER 22 #define IWL_TX_CSUM_NETIF_FLAGS (NETIF_F_IPV6_CSUM | NETIF_F_IP_CSUM |\ NETIF_F_TSO | NETIF_F_TSO6) -#define IWL_TX_CSUM_NETIF_FLAGS_BZ (NETIF_F_HW_CSUM | NETIF_F_TSO | NETIF_F_TSO6) -#define IWL_CSUM_NETIF_FLAGS_MASK (IWL_TX_CSUM_NETIF_FLAGS | \ - IWL_TX_CSUM_NETIF_FLAGS_BZ | \ - NETIF_F_RXCSUM) +#define IWL_CSUM_NETIF_FLAGS_MASK (IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM) /* Antenna presence definitions */ #define ANT_NONE 0x0 only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.h +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ /* - * Copyright (C) 2018-2022 Intel Corporation + * Copyright (C) 2018-2023 Intel Corporation */ #ifndef __iwl_dbg_tlv_h__ #define __iwl_dbg_tlv_h__ @@ -10,7 +10,8 @@ #include #include -#define IWL_DBG_TLV_MAX_PRESET 15 +#define IWL_DBG_TLV_MAX_PRESET 15 +#define ENABLE_INI (IWL_DBG_TLV_MAX_PRESET + 1) /** * struct iwl_dbg_tlv_node - debug TLV node only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/iwl-drv.c +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/iwl-drv.c @@ -1795,6 +1795,22 @@ #endif drv->trans->dbg.domains_bitmap = IWL_TRANS_FW_DBG_DOMAIN(drv->trans); + if (iwlwifi_mod_params.enable_ini != ENABLE_INI) { + /* We have a non-default value in the module parameter, + * take its value + */ + drv->trans->dbg.domains_bitmap &= 0xffff; + if (iwlwifi_mod_params.enable_ini != IWL_FW_INI_PRESET_DISABLE) { + if (iwlwifi_mod_params.enable_ini > ENABLE_INI) { + IWL_ERR(trans, + "invalid enable_ini module parameter value: max = %d, using 0 instead\n", + ENABLE_INI); + iwlwifi_mod_params.enable_ini = 0; + } + drv->trans->dbg.domains_bitmap = + BIT(IWL_FW_DBG_DOMAIN_POS + iwlwifi_mod_params.enable_ini); + } + } ret = iwl_request_firmware(drv, true); if (ret) { @@ -1843,8 +1859,6 @@ kfree(drv); } -#define ENABLE_INI (IWL_DBG_TLV_MAX_PRESET + 1) - /* shared module parameters */ struct iwl_mod_params iwlwifi_mod_params = { .fw_restart = true, @@ -1964,38 +1978,7 @@ MODULE_PARM_DESC(uapsd_disable, "disable U-APSD functionality bitmap 1: BSS 2: P2P Client (default: 3)"); -static int enable_ini_set(const char *arg, const struct kernel_param *kp) -{ - int ret = 0; - bool res; - __u32 new_enable_ini; - - /* in case the argument type is a number */ - ret = kstrtou32(arg, 0, &new_enable_ini); - if (!ret) { - if (new_enable_ini > ENABLE_INI) { - pr_err("enable_ini cannot be %d, in range 0-16\n", new_enable_ini); - return -EINVAL; - } - goto out; - } - - /* in case the argument type is boolean */ - ret = kstrtobool(arg, &res); - if (ret) - return ret; - new_enable_ini = (res ? ENABLE_INI : 0); - -out: - iwlwifi_mod_params.enable_ini = new_enable_ini; - return 0; -} - -static const struct kernel_param_ops enable_ini_ops = { - .set = enable_ini_set -}; - -module_param_cb(enable_ini, &enable_ini_ops, &iwlwifi_mod_params.enable_ini, 0644); +module_param_named(enable_ini, iwlwifi_mod_params.enable_ini, uint, 0444); MODULE_PARM_DESC(enable_ini, "0:disable, 1-15:FW_DBG_PRESET Values, 16:enabled without preset value defined," "Debug INI TLV FW debug infrastructure (default: 16)"); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/iwl-prph.h +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/iwl-prph.h @@ -348,8 +348,8 @@ #define RFIC_REG_RD 0xAD0470 #define WFPM_CTRL_REG 0xA03030 #define WFPM_OTP_CFG1_ADDR 0x00a03098 -#define WFPM_OTP_CFG1_IS_JACKET_BIT BIT(4) -#define WFPM_OTP_CFG1_IS_CDB_BIT BIT(5) +#define WFPM_OTP_CFG1_IS_JACKET_BIT BIT(5) +#define WFPM_OTP_CFG1_IS_CDB_BIT BIT(4) #define WFPM_OTP_BZ_BNJ_JACKET_BIT 5 #define WFPM_OTP_BZ_BNJ_CDB_BIT 4 #define WFPM_OTP_CFG1_IS_JACKET(_val) (((_val) & 0x00000020) >> WFPM_OTP_BZ_BNJ_JACKET_BIT) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/iwl-trans.h +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/iwl-trans.h @@ -56,6 +56,10 @@ * 6) Eventually, the free function will be called. */ +/* default preset 0 (start from bit 16)*/ +#define IWL_FW_DBG_DOMAIN_POS 16 +#define IWL_FW_DBG_DOMAIN BIT(IWL_FW_DBG_DOMAIN_POS) + #define IWL_TRANS_FW_DBG_DOMAIN(trans) IWL_FW_INI_DOMAIN_ALWAYS_ON #define FH_RSCSR_FRAME_SIZE_MSK 0x00003FFF /* bits 0-13 */ @@ -584,7 +588,7 @@ int (*tx)(struct iwl_trans *trans, struct sk_buff *skb, struct iwl_device_tx_cmd *dev_cmd, int queue); void (*reclaim)(struct iwl_trans *trans, int queue, int ssn, - struct sk_buff_head *skbs); + struct sk_buff_head *skbs, bool is_flush); void (*set_q_ptrs)(struct iwl_trans *trans, int queue, int ptr); @@ -1266,14 +1270,15 @@ } static inline void iwl_trans_reclaim(struct iwl_trans *trans, int queue, - int ssn, struct sk_buff_head *skbs) + int ssn, struct sk_buff_head *skbs, + bool is_flush) { if (WARN_ON_ONCE(trans->state != IWL_TRANS_FW_ALIVE)) { IWL_ERR(trans, "%s bad state = %d\n", __func__, trans->state); return; } - trans->ops->reclaim(trans, queue, ssn, skbs); + trans->ops->reclaim(trans, queue, ssn, skbs, is_flush); } static inline void iwl_trans_set_q_ptrs(struct iwl_trans *trans, int queue, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/d3.c +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/mvm/d3.c @@ -2012,6 +2012,16 @@ if (IS_ERR(key_config)) return false; ieee80211_set_key_rx_seq(key_config, 0, &seq); + + if (key_config->keyidx == 4 || key_config->keyidx == 5) { + struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); + int link_id = vif->active_links ? __ffs(vif->active_links) : 0; + struct iwl_mvm_vif_link_info *mvm_link = + mvmvif->link[link_id]; + + mvm_link->igtk = key_config; + } + return true; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/ftm-responder.c +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/mvm/ftm-responder.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause /* * Copyright (C) 2015-2017 Intel Deutschland GmbH - * Copyright (C) 2018-2022 Intel Corporation + * Copyright (C) 2018-2023 Intel Corporation */ #include #include @@ -302,7 +302,12 @@ struct iwl_mvm_pasn_sta *sta) { list_del(&sta->list); - iwl_mvm_rm_sta_id(mvm, vif, sta->int_sta.sta_id); + + if (iwl_mvm_has_mld_api(mvm->fw)) + iwl_mvm_mld_rm_sta_id(mvm, sta->int_sta.sta_id); + else + iwl_mvm_rm_sta_id(mvm, vif, sta->int_sta.sta_id); + iwl_mvm_dealloc_int_sta(mvm, &sta->int_sta); kfree(sta); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/link.c +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/mvm/link.c @@ -53,7 +53,6 @@ unsigned int link_id = link_conf->link_id; struct iwl_mvm_vif_link_info *link_info = mvmvif->link[link_id]; struct iwl_link_config_cmd cmd = {}; - struct iwl_mvm_phy_ctxt *phyctxt; if (WARN_ON_ONCE(!link_info)) return -EINVAL; @@ -61,7 +60,7 @@ if (link_info->fw_link_id == IWL_MVM_FW_LINK_ID_INVALID) { link_info->fw_link_id = iwl_mvm_get_free_fw_link_id(mvm, mvmvif); - if (link_info->fw_link_id == IWL_MVM_FW_LINK_ID_INVALID) + if (link_info->fw_link_id >= ARRAY_SIZE(mvm->link_id_to_link_conf)) return -EINVAL; rcu_assign_pointer(mvm->link_id_to_link_conf[link_info->fw_link_id], @@ -77,12 +76,8 @@ cmd.link_id = cpu_to_le32(link_info->fw_link_id); cmd.mac_id = cpu_to_le32(mvmvif->id); cmd.spec_link_id = link_conf->link_id; - /* P2P-Device already has a valid PHY context during add */ - phyctxt = link_info->phy_ctxt; - if (phyctxt) - cmd.phy_id = cpu_to_le32(phyctxt->id); - else - cmd.phy_id = cpu_to_le32(FW_CTXT_INVALID); + WARN_ON_ONCE(link_info->phy_ctxt); + cmd.phy_id = cpu_to_le32(FW_CTXT_INVALID); memcpy(cmd.local_link_addr, link_conf->addr, ETH_ALEN); @@ -194,11 +189,14 @@ flags_mask |= LINK_FLG_MU_EDCA_CW; } - if (link_conf->eht_puncturing && !iwlwifi_mod_params.disable_11be) - cmd.puncture_mask = cpu_to_le16(link_conf->eht_puncturing); - else - /* This flag can be set only if the MAC has eht support */ - changes &= ~LINK_CONTEXT_MODIFY_EHT_PARAMS; + if (changes & LINK_CONTEXT_MODIFY_EHT_PARAMS) { + if (iwlwifi_mod_params.disable_11be || + !link_conf->eht_support) + changes &= ~LINK_CONTEXT_MODIFY_EHT_PARAMS; + else + cmd.puncture_mask = + cpu_to_le16(link_conf->eht_puncturing); + } cmd.bss_color = link_conf->he_bss_color.color; @@ -245,7 +243,7 @@ int ret; if (WARN_ON(!link_info || - link_info->fw_link_id == IWL_MVM_FW_LINK_ID_INVALID)) + link_info->fw_link_id >= ARRAY_SIZE(mvm->link_id_to_link_conf))) return -EINVAL; RCU_INIT_POINTER(mvm->link_id_to_link_conf[link_info->fw_link_id], only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c @@ -286,6 +286,10 @@ INIT_LIST_HEAD(&mvmvif->time_event_data.list); mvmvif->time_event_data.id = TE_MAX; + mvmvif->deflink.bcast_sta.sta_id = IWL_MVM_INVALID_STA; + mvmvif->deflink.mcast_sta.sta_id = IWL_MVM_INVALID_STA; + mvmvif->deflink.ap_sta_id = IWL_MVM_INVALID_STA; + /* No need to allocate data queues to P2P Device MAC and NAN.*/ if (vif->type == NL80211_IFTYPE_P2P_DEVICE) return 0; @@ -300,10 +304,6 @@ mvmvif->deflink.cab_queue = IWL_MVM_DQA_GCAST_QUEUE; } - mvmvif->deflink.bcast_sta.sta_id = IWL_MVM_INVALID_STA; - mvmvif->deflink.mcast_sta.sta_id = IWL_MVM_INVALID_STA; - mvmvif->deflink.ap_sta_id = IWL_MVM_INVALID_STA; - for (i = 0; i < NUM_IWL_MVM_SMPS_REQ; i++) mvmvif->deflink.smps_requests[i] = IEEE80211_SMPS_AUTOMATIC; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c @@ -1588,32 +1588,8 @@ IEEE80211_VIF_SUPPORTS_CQM_RSSI; } - /* - * P2P_DEVICE interface does not have a channel context assigned to it, - * so a dedicated PHY context is allocated to it and the corresponding - * MAC context is bound to it at this stage. - */ - if (vif->type == NL80211_IFTYPE_P2P_DEVICE) { - - mvmvif->deflink.phy_ctxt = iwl_mvm_get_free_phy_ctxt(mvm); - if (!mvmvif->deflink.phy_ctxt) { - ret = -ENOSPC; - goto out_free_bf; - } - - iwl_mvm_phy_ctxt_ref(mvm, mvmvif->deflink.phy_ctxt); - ret = iwl_mvm_binding_add_vif(mvm, vif); - if (ret) - goto out_unref_phy; - - ret = iwl_mvm_add_p2p_bcast_sta(mvm, vif); - if (ret) - goto out_unbind; - - /* Save a pointer to p2p device vif, so it can later be used to - * update the p2p device MAC when a GO is started/stopped */ + if (vif->type == NL80211_IFTYPE_P2P_DEVICE) mvm->p2p_device_vif = vif; - } iwl_mvm_tcm_add_vif(mvm, vif); INIT_DELAYED_WORK(&mvmvif->csa_work, @@ -1642,11 +1618,6 @@ goto out_unlock; - out_unbind: - iwl_mvm_binding_remove_vif(mvm, vif); - out_unref_phy: - iwl_mvm_phy_ctxt_unref(mvm, mvmvif->deflink.phy_ctxt); - out_free_bf: if (mvm->bf_allowed_vif == mvmvif) { mvm->bf_allowed_vif = NULL; vif->driver_flags &= ~(IEEE80211_VIF_BEACON_FILTER | @@ -1743,12 +1714,17 @@ if (iwl_mvm_mac_remove_interface_common(hw, vif)) goto out; + /* Before the interface removal, mac80211 would cancel the ROC, and the + * ROC worker would be scheduled if needed. The worker would be flushed + * in iwl_mvm_prepare_mac_removal() and thus at this point there is no + * binding etc. so nothing needs to be done here. + */ if (vif->type == NL80211_IFTYPE_P2P_DEVICE) { + if (mvmvif->deflink.phy_ctxt) { + iwl_mvm_phy_ctxt_unref(mvm, mvmvif->deflink.phy_ctxt); + mvmvif->deflink.phy_ctxt = NULL; + } mvm->p2p_device_vif = NULL; - iwl_mvm_rm_p2p_bcast_sta(mvm, vif); - iwl_mvm_binding_remove_vif(mvm, vif); - iwl_mvm_phy_ctxt_unref(mvm, mvmvif->deflink.phy_ctxt); - mvmvif->deflink.phy_ctxt = NULL; } iwl_mvm_mac_ctxt_remove(mvm, vif); @@ -3790,6 +3766,12 @@ iwl_mvm_rs_rate_init_all_links(mvm, vif, sta); + /* MFP is set by default before the station is authorized. + * Clear it here in case it's not used. + */ + if (!sta->mfp) + return callbacks->update_sta(mvm, vif, sta); + return 0; } @@ -4530,30 +4512,20 @@ return ret; } -static int iwl_mvm_roc_switch_binding(struct iwl_mvm *mvm, - struct ieee80211_vif *vif, - struct iwl_mvm_phy_ctxt *new_phy_ctxt) +static int iwl_mvm_roc_link(struct iwl_mvm *mvm, struct ieee80211_vif *vif) { - struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); - int ret = 0; + int ret; lockdep_assert_held(&mvm->mutex); - /* Unbind the P2P_DEVICE from the current PHY context, - * and if the PHY context is not used remove it. - */ - ret = iwl_mvm_binding_remove_vif(mvm, vif); - if (WARN(ret, "Failed unbinding P2P_DEVICE\n")) + ret = iwl_mvm_binding_add_vif(mvm, vif); + if (WARN(ret, "Failed binding P2P_DEVICE\n")) return ret; - iwl_mvm_phy_ctxt_unref(mvm, mvmvif->deflink.phy_ctxt); - - /* Bind the P2P_DEVICE to the current PHY Context */ - mvmvif->deflink.phy_ctxt = new_phy_ctxt; - - ret = iwl_mvm_binding_add_vif(mvm, vif); - WARN(ret, "Failed binding P2P_DEVICE\n"); - return ret; + /* The station and queue allocation must be done only after the binding + * is done, as otherwise the FW might incorrectly configure its state. + */ + return iwl_mvm_add_p2p_bcast_sta(mvm, vif); } static int iwl_mvm_roc(struct ieee80211_hw *hw, @@ -4564,7 +4536,7 @@ { static const struct iwl_mvm_roc_ops ops = { .add_aux_sta_for_hs20 = iwl_mvm_add_aux_sta_for_hs20, - .switch_phy_ctxt = iwl_mvm_roc_switch_binding, + .link = iwl_mvm_roc_link, }; return iwl_mvm_roc_common(hw, vif, channel, duration, type, &ops); @@ -4580,7 +4552,6 @@ struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); struct cfg80211_chan_def chandef; struct iwl_mvm_phy_ctxt *phy_ctxt; - bool band_change_removal; int ret, i; u32 lmac_id; @@ -4609,82 +4580,61 @@ /* handle below */ break; default: - IWL_ERR(mvm, "vif isn't P2P_DEVICE: %d\n", vif->type); + IWL_ERR(mvm, "ROC: Invalid vif type=%u\n", vif->type); ret = -EINVAL; goto out_unlock; } + /* Try using a PHY context that is already in use */ for (i = 0; i < NUM_PHY_CTX; i++) { phy_ctxt = &mvm->phy_ctxts[i]; - if (phy_ctxt->ref == 0 || mvmvif->deflink.phy_ctxt == phy_ctxt) + if (!phy_ctxt->ref || mvmvif->deflink.phy_ctxt == phy_ctxt) continue; - if (phy_ctxt->ref && channel == phy_ctxt->channel) { - ret = ops->switch_phy_ctxt(mvm, vif, phy_ctxt); - if (ret) - goto out_unlock; + if (channel == phy_ctxt->channel) { + if (mvmvif->deflink.phy_ctxt) + iwl_mvm_phy_ctxt_unref(mvm, + mvmvif->deflink.phy_ctxt); + mvmvif->deflink.phy_ctxt = phy_ctxt; iwl_mvm_phy_ctxt_ref(mvm, mvmvif->deflink.phy_ctxt); - goto schedule_time_event; + goto link_and_start_p2p_roc; } } - /* Need to update the PHY context only if the ROC channel changed */ - if (channel == mvmvif->deflink.phy_ctxt->channel) - goto schedule_time_event; - - cfg80211_chandef_create(&chandef, channel, NL80211_CHAN_NO_HT); - - /* - * Check if the remain-on-channel is on a different band and that - * requires context removal, see iwl_mvm_phy_ctxt_changed(). If - * so, we'll need to release and then re-configure here, since we - * must not remove a PHY context that's part of a binding. - */ - band_change_removal = - fw_has_capa(&mvm->fw->ucode_capa, - IWL_UCODE_TLV_CAPA_BINDING_CDB_SUPPORT) && - mvmvif->deflink.phy_ctxt->channel->band != chandef.chan->band; - - if (mvmvif->deflink.phy_ctxt->ref == 1 && !band_change_removal) { - /* - * Change the PHY context configuration as it is currently - * referenced only by the P2P Device MAC (and we can modify it) - */ - ret = iwl_mvm_phy_ctxt_changed(mvm, mvmvif->deflink.phy_ctxt, - &chandef, 1, 1); - if (ret) - goto out_unlock; + /* If the currently used PHY context is configured with a matching + * channel use it + */ + if (mvmvif->deflink.phy_ctxt) { + if (channel == mvmvif->deflink.phy_ctxt->channel) + goto link_and_start_p2p_roc; } else { - /* - * The PHY context is shared with other MACs (or we're trying to - * switch bands), so remove the P2P Device from the binding, - * allocate an new PHY context and create a new binding. - */ phy_ctxt = iwl_mvm_get_free_phy_ctxt(mvm); if (!phy_ctxt) { ret = -ENOSPC; goto out_unlock; } - ret = iwl_mvm_phy_ctxt_changed(mvm, phy_ctxt, &chandef, - 1, 1); - if (ret) { - IWL_ERR(mvm, "Failed to change PHY context\n"); - goto out_unlock; - } + mvmvif->deflink.phy_ctxt = phy_ctxt; + iwl_mvm_phy_ctxt_ref(mvm, mvmvif->deflink.phy_ctxt); + } - ret = ops->switch_phy_ctxt(mvm, vif, phy_ctxt); - if (ret) - goto out_unlock; + /* Configure the PHY context */ + cfg80211_chandef_create(&chandef, channel, NL80211_CHAN_NO_HT); - iwl_mvm_phy_ctxt_ref(mvm, mvmvif->deflink.phy_ctxt); + ret = iwl_mvm_phy_ctxt_changed(mvm, phy_ctxt, &chandef, + 1, 1); + if (ret) { + IWL_ERR(mvm, "Failed to change PHY context\n"); + goto out_unlock; } -schedule_time_event: - /* Schedule the time events */ - ret = iwl_mvm_start_p2p_roc(mvm, vif, duration, type); +link_and_start_p2p_roc: + ret = ops->link(mvm, vif); + if (ret) + goto out_unlock; + ret = iwl_mvm_start_p2p_roc(mvm, vif, duration, type); out_unlock: mutex_unlock(&mvm->mutex); IWL_DEBUG_MAC80211(mvm, "leave\n"); @@ -5634,7 +5584,8 @@ WARN_ON_ONCE(sta != mvmvif->ap_sta && !sta->tdls); if (drop) { - if (iwl_mvm_flush_sta(mvm, mvmsta, false)) + if (iwl_mvm_flush_sta(mvm, mvmsta->deflink.sta_id, + mvmsta->tfd_queue_msk)) IWL_ERR(mvm, "flush request fail\n"); } else { if (iwl_mvm_has_new_tx_api(mvm)) @@ -5656,22 +5607,21 @@ void iwl_mvm_mac_flush_sta(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) { + struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta); struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw); - int i; + struct iwl_mvm_link_sta *mvm_link_sta; + struct ieee80211_link_sta *link_sta; + int link_id; mutex_lock(&mvm->mutex); - for (i = 0; i < mvm->fw->ucode_capa.num_stations; i++) { - struct iwl_mvm_sta *mvmsta; - struct ieee80211_sta *tmp; - - tmp = rcu_dereference_protected(mvm->fw_id_to_mac_id[i], - lockdep_is_held(&mvm->mutex)); - if (tmp != sta) + for_each_sta_active_link(vif, sta, link_sta, link_id) { + mvm_link_sta = rcu_dereference_protected(mvmsta->link[link_id], + lockdep_is_held(&mvm->mutex)); + if (!mvm_link_sta) continue; - mvmsta = iwl_mvm_sta_from_mac80211(sta); - - if (iwl_mvm_flush_sta(mvm, mvmsta, false)) + if (iwl_mvm_flush_sta(mvm, mvm_link_sta->sta_id, + mvmsta->tfd_queue_msk)) IWL_ERR(mvm, "flush request fail\n"); } mutex_unlock(&mvm->mutex); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c @@ -24,10 +24,15 @@ return 0; } - /* AP group keys are per link and should be on the mcast STA */ + /* AP group keys are per link and should be on the mcast/bcast STA */ if (vif->type == NL80211_IFTYPE_AP && - !(keyconf->flags & IEEE80211_KEY_FLAG_PAIRWISE)) + !(keyconf->flags & IEEE80211_KEY_FLAG_PAIRWISE)) { + /* IGTK/BIGTK to bcast STA */ + if (keyconf->keyidx >= 4) + return BIT(link_info->bcast_sta.sta_id); + /* GTK for data to mcast STA */ return BIT(link_info->mcast_sta.sta_id); + } /* for client mode use the AP STA also for group keys */ if (!sta && vif->type == NL80211_IFTYPE_STATION) @@ -91,7 +96,12 @@ if (!sta && vif->type == NL80211_IFTYPE_STATION) sta = mvmvif->ap_sta; - if (!IS_ERR_OR_NULL(sta) && sta->mfp) + /* Set the MFP flag also for an AP interface where the key is an IGTK + * key as in such a case the station would always be NULL + */ + if ((!IS_ERR_OR_NULL(sta) && sta->mfp) || + (vif->type == NL80211_IFTYPE_AP && + (keyconf->keyidx == 4 || keyconf->keyidx == 5))) flags |= IWL_SEC_KEY_FLAG_MFP; return flags; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/mvm/mld-sta.c @@ -347,7 +347,7 @@ return -EINVAL; if (flush) - iwl_mvm_flush_sta(mvm, int_sta, true); + iwl_mvm_flush_sta(mvm, int_sta->sta_id, int_sta->tfd_queue_msk); iwl_mvm_mld_disable_txq(mvm, BIT(int_sta->sta_id), queuptr, tid); @@ -705,8 +705,10 @@ rcu_dereference_protected(mvm_sta->link[link_id], lockdep_is_held(&mvm->mutex)); - if (WARN_ON(!link_conf || !mvm_link_sta)) + if (WARN_ON(!link_conf || !mvm_link_sta)) { + ret = -EINVAL; goto err; + } ret = iwl_mvm_mld_cfg_sta(mvm, sta, vif, link_sta, link_conf, mvm_link_sta); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h @@ -1658,7 +1658,7 @@ static inline const char *iwl_mvm_get_tx_fail_reason(u32 status) { return ""; } #endif int iwl_mvm_flush_tx_path(struct iwl_mvm *mvm, u32 tfd_msk); -int iwl_mvm_flush_sta(struct iwl_mvm *mvm, void *sta, bool internal); +int iwl_mvm_flush_sta(struct iwl_mvm *mvm, u32 sta_id, u32 tfd_queue_mask); int iwl_mvm_flush_sta_tids(struct iwl_mvm *mvm, u32 sta_id, u16 tids); /* Utils to extract sta related data */ @@ -1942,13 +1942,12 @@ * * @add_aux_sta_for_hs20: pointer to the function that adds an aux sta * for Hot Spot 2.0 - * @switch_phy_ctxt: pointer to the function that switches a vif from one - * phy_ctx to another + * @link: For a P2P Device interface, pointer to a function that links the + * MAC/Link to the PHY context */ struct iwl_mvm_roc_ops { int (*add_aux_sta_for_hs20)(struct iwl_mvm *mvm, u32 lmac_id); - int (*switch_phy_ctxt)(struct iwl_mvm *mvm, struct ieee80211_vif *vif, - struct iwl_mvm_phy_ctxt *new_phy_ctxt); + int (*link)(struct iwl_mvm *mvm, struct ieee80211_vif *vif); }; int iwl_mvm_roc_common(struct ieee80211_hw *hw, struct ieee80211_vif *vif, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/sta.c +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/mvm/sta.c @@ -2059,7 +2059,8 @@ *status = IWL_MVM_QUEUE_FREE; } - if (vif->type == NL80211_IFTYPE_STATION) { + if (vif->type == NL80211_IFTYPE_STATION && + mvm_link->ap_sta_id == sta_id) { /* if associated - we can't remove the AP STA now */ if (vif->cfg.assoc) return true; @@ -2097,7 +2098,8 @@ return ret; /* flush its queues here since we are freeing mvm_sta */ - ret = iwl_mvm_flush_sta(mvm, mvm_sta, false); + ret = iwl_mvm_flush_sta(mvm, mvm_sta->deflink.sta_id, + mvm_sta->tfd_queue_msk); if (ret) return ret; if (iwl_mvm_has_new_tx_api(mvm)) { @@ -2408,7 +2410,8 @@ lockdep_assert_held(&mvm->mutex); - iwl_mvm_flush_sta(mvm, &mvmvif->deflink.bcast_sta, true); + iwl_mvm_flush_sta(mvm, mvmvif->deflink.bcast_sta.sta_id, + mvmvif->deflink.bcast_sta.tfd_queue_msk); switch (vif->type) { case NL80211_IFTYPE_AP: @@ -2664,7 +2667,8 @@ lockdep_assert_held(&mvm->mutex); - iwl_mvm_flush_sta(mvm, &mvmvif->deflink.mcast_sta, true); + iwl_mvm_flush_sta(mvm, mvmvif->deflink.mcast_sta.sta_id, + mvmvif->deflink.mcast_sta.tfd_queue_msk); iwl_mvm_disable_txq(mvm, NULL, mvmvif->deflink.mcast_sta.sta_id, &mvmvif->deflink.cab_queue, 0); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c @@ -78,9 +78,29 @@ */ if (!WARN_ON(!mvm->p2p_device_vif)) { - mvmvif = iwl_mvm_vif_from_mac80211(mvm->p2p_device_vif); - iwl_mvm_flush_sta(mvm, &mvmvif->deflink.bcast_sta, - true); + struct ieee80211_vif *vif = mvm->p2p_device_vif; + + mvmvif = iwl_mvm_vif_from_mac80211(vif); + iwl_mvm_flush_sta(mvm, mvmvif->deflink.bcast_sta.sta_id, + mvmvif->deflink.bcast_sta.tfd_queue_msk); + + if (mvm->mld_api_is_used) { + iwl_mvm_mld_rm_bcast_sta(mvm, vif, + &vif->bss_conf); + + iwl_mvm_link_changed(mvm, vif, &vif->bss_conf, + LINK_CONTEXT_MODIFY_ACTIVE, + false); + } else { + iwl_mvm_rm_p2p_bcast_sta(mvm, vif); + iwl_mvm_binding_remove_vif(mvm, vif); + } + + /* Do not remove the PHY context as removing and adding + * a PHY context has timing overheads. Leaving it + * configured in FW would be useful in case the next ROC + * is with the same channel. + */ } } @@ -93,7 +113,8 @@ */ if (test_and_clear_bit(IWL_MVM_STATUS_ROC_AUX_RUNNING, &mvm->status)) { /* do the same in case of hot spot 2.0 */ - iwl_mvm_flush_sta(mvm, &mvm->aux_sta, true); + iwl_mvm_flush_sta(mvm, mvm->aux_sta.sta_id, + mvm->aux_sta.tfd_queue_msk); if (mvm->mld_api_is_used) { iwl_mvm_mld_rm_aux_sta(mvm); @@ -880,8 +901,8 @@ if (!le32_to_cpu(notif->status) || !le32_to_cpu(notif->start)) { /* End TE, notify mac80211 */ mvmvif->time_event_data.id = SESSION_PROTECT_CONF_MAX_ID; - ieee80211_remain_on_channel_expired(mvm->hw); iwl_mvm_p2p_roc_finished(mvm); + ieee80211_remain_on_channel_expired(mvm->hw); } else if (le32_to_cpu(notif->start)) { if (WARN_ON(mvmvif->time_event_data.id != le32_to_cpu(notif->conf_id))) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/tx.c +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/mvm/tx.c @@ -536,16 +536,20 @@ flags |= IWL_TX_FLAGS_ENCRYPT_DIS; /* - * For data packets rate info comes from the fw. Only - * set rate/antenna during connection establishment or in case - * no station is given. + * For data and mgmt packets rate info comes from the fw. Only + * set rate/antenna for injected frames with fixed rate, or + * when no sta is given. */ - if (!sta || !ieee80211_is_data(hdr->frame_control) || - mvmsta->sta_state < IEEE80211_STA_AUTHORIZED) { + if (unlikely(!sta || + info->control.flags & IEEE80211_TX_CTRL_RATE_INJECT)) { flags |= IWL_TX_FLAGS_CMD_RATE; rate_n_flags = iwl_mvm_get_tx_rate_n_flags(mvm, info, sta, hdr->frame_control); + } else if (!ieee80211_is_data(hdr->frame_control) || + mvmsta->sta_state < IEEE80211_STA_AUTHORIZED) { + /* These are important frames */ + flags |= IWL_TX_FLAGS_HIGH_PRI; } if (mvm->trans->trans_cfg->device_family >= @@ -1599,7 +1603,7 @@ seq_ctl = le16_to_cpu(tx_resp->seq_ctl); /* we can free until ssn % q.n_bd not inclusive */ - iwl_trans_reclaim(mvm->trans, txq_id, ssn, &skbs); + iwl_trans_reclaim(mvm->trans, txq_id, ssn, &skbs, false); while (!skb_queue_empty(&skbs)) { struct sk_buff *skb = __skb_dequeue(&skbs); @@ -1612,6 +1616,7 @@ iwl_trans_free_tx_cmd(mvm->trans, info->driver_data[1]); memset(&info->status, 0, sizeof(info->status)); + info->flags &= ~(IEEE80211_TX_STAT_ACK | IEEE80211_TX_STAT_TX_FILTERED); /* inform mac80211 about what happened with the frame */ switch (status & TX_STATUS_MSK) { @@ -1950,7 +1955,7 @@ * block-ack window (we assume that they've been successfully * transmitted ... if not, it's too late anyway). */ - iwl_trans_reclaim(mvm->trans, txq, index, &reclaimed_skbs); + iwl_trans_reclaim(mvm->trans, txq, index, &reclaimed_skbs, is_flush); skb_queue_walk(&reclaimed_skbs, skb) { struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); @@ -1964,6 +1969,8 @@ */ if (!is_flush) info->flags |= IEEE80211_TX_STAT_ACK; + else + info->flags &= ~IEEE80211_TX_STAT_ACK; } /* @@ -2290,24 +2297,10 @@ return ret; } -int iwl_mvm_flush_sta(struct iwl_mvm *mvm, void *sta, bool internal) +int iwl_mvm_flush_sta(struct iwl_mvm *mvm, u32 sta_id, u32 tfd_queue_mask) { - u32 sta_id, tfd_queue_msk; - - if (internal) { - struct iwl_mvm_int_sta *int_sta = sta; - - sta_id = int_sta->sta_id; - tfd_queue_msk = int_sta->tfd_queue_msk; - } else { - struct iwl_mvm_sta *mvm_sta = sta; - - sta_id = mvm_sta->deflink.sta_id; - tfd_queue_msk = mvm_sta->tfd_queue_msk; - } - if (iwl_mvm_has_new_tx_api(mvm)) return iwl_mvm_flush_sta_tids(mvm, sta_id, 0xffff); - return iwl_mvm_flush_tx_path(mvm, tfd_queue_msk); + return iwl_mvm_flush_tx_path(mvm, tfd_queue_mask); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c @@ -161,6 +161,7 @@ if (test_and_clear_bit(STATUS_DEVICE_ENABLED, &trans->status)) { IWL_DEBUG_INFO(trans, "DEVICE_ENABLED bit was set and is now cleared\n"); + iwl_pcie_synchronize_irqs(trans); iwl_pcie_rx_napi_sync(trans); iwl_txq_gen2_tx_free(trans); iwl_pcie_rx_stop(trans); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/queue/tx.c +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/queue/tx.c @@ -1561,7 +1561,7 @@ /* Frees buffers until index _not_ inclusive */ void iwl_txq_reclaim(struct iwl_trans *trans, int txq_id, int ssn, - struct sk_buff_head *skbs) + struct sk_buff_head *skbs, bool is_flush) { struct iwl_txq *txq = trans->txqs.txq[txq_id]; int tfd_num, read_ptr, last_to_free; @@ -1636,9 +1636,11 @@ if (iwl_txq_space(trans, txq) > txq->low_mark && test_bit(txq_id, trans->txqs.queue_stopped)) { struct sk_buff_head overflow_skbs; + struct sk_buff *skb; __skb_queue_head_init(&overflow_skbs); - skb_queue_splice_init(&txq->overflow_q, &overflow_skbs); + skb_queue_splice_init(&txq->overflow_q, + is_flush ? skbs : &overflow_skbs); /* * We are going to transmit from the overflow queue. @@ -1658,8 +1660,7 @@ */ spin_unlock_bh(&txq->lock); - while (!skb_queue_empty(&overflow_skbs)) { - struct sk_buff *skb = __skb_dequeue(&overflow_skbs); + while ((skb = __skb_dequeue(&overflow_skbs))) { struct iwl_device_tx_cmd *dev_cmd_ptr; dev_cmd_ptr = *(void **)((u8 *)skb->cb + only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/intel/iwlwifi/queue/tx.h +++ linux-riscv-6.5.0/drivers/net/wireless/intel/iwlwifi/queue/tx.h @@ -173,7 +173,7 @@ struct iwl_txq *txq, u16 byte_cnt, int num_tbs); void iwl_txq_reclaim(struct iwl_trans *trans, int txq_id, int ssn, - struct sk_buff_head *skbs); + struct sk_buff_head *skbs, bool is_flush); void iwl_txq_set_q_ptrs(struct iwl_trans *trans, int txq_id, int ptr); void iwl_trans_txq_freeze_timer(struct iwl_trans *trans, unsigned long txqs, bool freeze); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/mediatek/mt76/mt7603/beacon.c +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7603/beacon.c @@ -10,12 +10,31 @@ }; static void +mt7603_mac_stuck_beacon_recovery(struct mt7603_dev *dev) +{ + if (dev->beacon_check % 5 != 4) + return; + + mt76_clear(dev, MT_WPDMA_GLO_CFG, MT_WPDMA_GLO_CFG_TX_DMA_EN); + mt76_set(dev, MT_SCH_4, MT_SCH_4_RESET); + mt76_clear(dev, MT_SCH_4, MT_SCH_4_RESET); + mt76_set(dev, MT_WPDMA_GLO_CFG, MT_WPDMA_GLO_CFG_TX_DMA_EN); + + mt76_set(dev, MT_WF_CFG_OFF_WOCCR, MT_WF_CFG_OFF_WOCCR_TMAC_GC_DIS); + mt76_set(dev, MT_ARB_SCR, MT_ARB_SCR_TX_DISABLE); + mt76_clear(dev, MT_ARB_SCR, MT_ARB_SCR_TX_DISABLE); + mt76_clear(dev, MT_WF_CFG_OFF_WOCCR, MT_WF_CFG_OFF_WOCCR_TMAC_GC_DIS); +} + +static void mt7603_update_beacon_iter(void *priv, u8 *mac, struct ieee80211_vif *vif) { struct mt7603_dev *dev = (struct mt7603_dev *)priv; struct mt76_dev *mdev = &dev->mt76; struct mt7603_vif *mvif = (struct mt7603_vif *)vif->drv_priv; struct sk_buff *skb = NULL; + u32 om_idx = mvif->idx; + u32 val; if (!(mdev->beacon_mask & BIT(mvif->idx))) return; @@ -24,20 +43,33 @@ if (!skb) return; - mt76_tx_queue_skb(dev, dev->mphy.q_tx[MT_TXQ_BEACON], - MT_TXQ_BEACON, skb, &mvif->sta.wcid, NULL); + if (om_idx) + om_idx |= 0x10; + val = MT_DMA_FQCR0_BUSY | MT_DMA_FQCR0_MODE | + FIELD_PREP(MT_DMA_FQCR0_TARGET_BSS, om_idx) | + FIELD_PREP(MT_DMA_FQCR0_DEST_PORT_ID, 3) | + FIELD_PREP(MT_DMA_FQCR0_DEST_QUEUE_ID, 8); spin_lock_bh(&dev->ps_lock); - mt76_wr(dev, MT_DMA_FQCR0, MT_DMA_FQCR0_BUSY | - FIELD_PREP(MT_DMA_FQCR0_TARGET_WCID, mvif->sta.wcid.idx) | - FIELD_PREP(MT_DMA_FQCR0_TARGET_QID, - dev->mphy.q_tx[MT_TXQ_CAB]->hw_idx) | - FIELD_PREP(MT_DMA_FQCR0_DEST_PORT_ID, 3) | - FIELD_PREP(MT_DMA_FQCR0_DEST_QUEUE_ID, 8)); - if (!mt76_poll(dev, MT_DMA_FQCR0, MT_DMA_FQCR0_BUSY, 0, 5000)) + mt76_wr(dev, MT_DMA_FQCR0, val | + FIELD_PREP(MT_DMA_FQCR0_TARGET_QID, MT_TX_HW_QUEUE_BCN)); + if (!mt76_poll(dev, MT_DMA_FQCR0, MT_DMA_FQCR0_BUSY, 0, 5000)) { dev->beacon_check = MT7603_WATCHDOG_TIMEOUT; + goto out; + } + + mt76_wr(dev, MT_DMA_FQCR0, val | + FIELD_PREP(MT_DMA_FQCR0_TARGET_QID, MT_TX_HW_QUEUE_BMC)); + if (!mt76_poll(dev, MT_DMA_FQCR0, MT_DMA_FQCR0_BUSY, 0, 5000)) { + dev->beacon_check = MT7603_WATCHDOG_TIMEOUT; + goto out; + } + mt76_tx_queue_skb(dev, dev->mphy.q_tx[MT_TXQ_BEACON], + MT_TXQ_BEACON, skb, &mvif->sta.wcid, NULL); + +out: spin_unlock_bh(&dev->ps_lock); } @@ -81,6 +113,18 @@ data.dev = dev; __skb_queue_head_init(&data.q); + /* Flush all previous CAB queue packets and beacons */ + mt76_wr(dev, MT_WF_ARB_CAB_FLUSH, GENMASK(30, 16) | BIT(0)); + + mt76_queue_tx_cleanup(dev, dev->mphy.q_tx[MT_TXQ_CAB], false); + mt76_queue_tx_cleanup(dev, dev->mphy.q_tx[MT_TXQ_BEACON], false); + + if (dev->mphy.q_tx[MT_TXQ_BEACON]->queued > 0) + dev->beacon_check++; + else + dev->beacon_check = 0; + mt7603_mac_stuck_beacon_recovery(dev); + q = dev->mphy.q_tx[MT_TXQ_BEACON]; spin_lock(&q->lock); ieee80211_iterate_active_interfaces_atomic(mt76_hw(dev), @@ -89,14 +133,9 @@ mt76_queue_kick(dev, q); spin_unlock(&q->lock); - /* Flush all previous CAB queue packets */ - mt76_wr(dev, MT_WF_ARB_CAB_FLUSH, GENMASK(30, 16) | BIT(0)); - - mt76_queue_tx_cleanup(dev, dev->mphy.q_tx[MT_TXQ_CAB], false); - mt76_csa_check(mdev); if (mdev->csa_complete) - goto out; + return; q = dev->mphy.q_tx[MT_TXQ_CAB]; do { @@ -108,7 +147,7 @@ skb_queue_len(&data.q) < 8); if (skb_queue_empty(&data.q)) - goto out; + return; for (i = 0; i < ARRAY_SIZE(data.tail); i++) { if (!data.tail[i]) @@ -136,11 +175,6 @@ MT_WF_ARB_CAB_START_BSSn(0) | (MT_WF_ARB_CAB_START_BSS0n(1) * ((1 << (MT7603_MAX_INTERFACES - 1)) - 1))); - -out: - mt76_queue_tx_cleanup(dev, dev->mphy.q_tx[MT_TXQ_BEACON], false); - if (dev->mphy.q_tx[MT_TXQ_BEACON]->queued > hweight8(mdev->beacon_mask)) - dev->beacon_check++; } void mt7603_beacon_set_timer(struct mt7603_dev *dev, int idx, int intval) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/mediatek/mt76/mt7603/core.c +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7603/core.c @@ -42,11 +42,13 @@ } if (intr & MT_INT_RX_DONE(0)) { + dev->rx_pse_check = 0; mt7603_irq_disable(dev, MT_INT_RX_DONE(0)); napi_schedule(&dev->mt76.napi[0]); } if (intr & MT_INT_RX_DONE(1)) { + dev->rx_pse_check = 0; mt7603_irq_disable(dev, MT_INT_RX_DONE(1)); napi_schedule(&dev->mt76.napi[1]); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/mediatek/mt76/mt7603/mac.c +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7603/mac.c @@ -1430,15 +1430,6 @@ mt7603_beacon_set_timer(dev, -1, 0); - if (dev->reset_cause[RESET_CAUSE_RESET_FAILED] || - dev->cur_reset_cause == RESET_CAUSE_RX_PSE_BUSY || - dev->cur_reset_cause == RESET_CAUSE_BEACON_STUCK || - dev->cur_reset_cause == RESET_CAUSE_TX_HANG) - mt7603_pse_reset(dev); - - if (dev->reset_cause[RESET_CAUSE_RESET_FAILED]) - goto skip_dma_reset; - mt7603_mac_stop(dev); mt76_clear(dev, MT_WPDMA_GLO_CFG, @@ -1448,28 +1439,32 @@ mt7603_irq_disable(dev, mask); - mt76_set(dev, MT_WPDMA_GLO_CFG, MT_WPDMA_GLO_CFG_FORCE_TX_EOF); - mt7603_pse_client_reset(dev); mt76_queue_tx_cleanup(dev, dev->mt76.q_mcu[MT_MCUQ_WM], true); for (i = 0; i < __MT_TXQ_MAX; i++) mt76_queue_tx_cleanup(dev, dev->mphy.q_tx[i], true); + mt7603_dma_sched_reset(dev); + + mt76_tx_status_check(&dev->mt76, true); + mt76_for_each_q_rx(&dev->mt76, i) { mt76_queue_rx_reset(dev, i); } - mt76_tx_status_check(&dev->mt76, true); + if (dev->reset_cause[RESET_CAUSE_RESET_FAILED] || + dev->cur_reset_cause == RESET_CAUSE_RX_PSE_BUSY) + mt7603_pse_reset(dev); - mt7603_dma_sched_reset(dev); + if (!dev->reset_cause[RESET_CAUSE_RESET_FAILED]) { + mt7603_mac_dma_start(dev); - mt7603_mac_dma_start(dev); + mt7603_irq_enable(dev, mask); - mt7603_irq_enable(dev, mask); + clear_bit(MT76_RESET, &dev->mphy.state); + } -skip_dma_reset: - clear_bit(MT76_RESET, &dev->mphy.state); mutex_unlock(&dev->mt76.mutex); mt76_worker_enable(&dev->mt76.tx_worker); @@ -1559,20 +1554,29 @@ { u32 addr, val; - if (mt76_rr(dev, MT_MCU_DEBUG_RESET) & MT_MCU_DEBUG_RESET_QUEUES) - return true; - if (mt7603_rx_fifo_busy(dev)) - return false; + goto out; addr = mt7603_reg_map(dev, MT_CLIENT_BASE_PHYS_ADDR + MT_CLIENT_STATUS); mt76_wr(dev, addr, 3); val = mt76_rr(dev, addr) >> 16; - if (is_mt7628(dev) && (val & 0x4001) == 0x4001) - return true; + if (!(val & BIT(0))) + return false; + + if (is_mt7628(dev)) + val &= 0xa000; + else + val &= 0x8000; + if (!val) + return false; + +out: + if (mt76_rr(dev, MT_INT_SOURCE_CSR) & + (MT_INT_RX_DONE(0) | MT_INT_RX_DONE(1))) + return false; - return (val & 0x8001) == 0x8001 || (val & 0xe001) == 0xe001; + return true; } static bool only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/mediatek/mt76/mt7603/regs.h +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7603/regs.h @@ -462,6 +462,11 @@ #define MT_WF_SEC_BASE 0x21a00 #define MT_WF_SEC(ofs) (MT_WF_SEC_BASE + (ofs)) +#define MT_WF_CFG_OFF_BASE 0x21e00 +#define MT_WF_CFG_OFF(ofs) (MT_WF_CFG_OFF_BASE + (ofs)) +#define MT_WF_CFG_OFF_WOCCR MT_WF_CFG_OFF(0x004) +#define MT_WF_CFG_OFF_WOCCR_TMAC_GC_DIS BIT(4) + #define MT_SEC_SCR MT_WF_SEC(0x004) #define MT_SEC_SCR_MASK_ORDER GENMASK(1, 0) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c @@ -2147,7 +2147,7 @@ }; if (cmd == MCU_EXT_CMD(SET_RX_PATH) || - dev->mt76.hw->conf.flags & IEEE80211_CONF_MONITOR) + phy->mt76->hw->conf.flags & IEEE80211_CONF_MONITOR) req.switch_reason = CH_SWITCH_NORMAL; else if (phy->mt76->hw->conf.flags & IEEE80211_CONF_OFFCHANNEL) req.switch_reason = CH_SWITCH_SCAN_BYPASS_DPD; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/mediatek/mt76/mt7615/pci_mac.c +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7615/pci_mac.c @@ -106,7 +106,7 @@ else mt76_connac_write_hw_txp(mdev, tx_info, txp, id); - tx_info->skb = DMA_DUMMY_DATA; + tx_info->skb = NULL; return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/mediatek/mt76/mt76_connac3_mac.h +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt76_connac3_mac.h @@ -0,0 +1,327 @@ +/* SPDX-License-Identifier: ISC */ +/* Copyright (C) 2023 MediaTek Inc. */ + +#ifndef __MT76_CONNAC3_MAC_H +#define __MT76_CONNAC3_MAC_H + +#define MT_CT_PARSE_LEN 72 +#define MT_CT_DMA_BUF_NUM 2 + +#define MT_RXD0_LENGTH GENMASK(15, 0) +#define MT_RXD0_PKT_FLAG GENMASK(19, 16) +#define MT_RXD0_PKT_TYPE GENMASK(31, 27) + +#define MT_RXD0_MESH BIT(18) +#define MT_RXD0_MHCP BIT(19) +#define MT_RXD0_NORMAL_ETH_TYPE_OFS GENMASK(22, 16) +#define MT_RXD0_NORMAL_IP_SUM BIT(23) +#define MT_RXD0_NORMAL_UDP_TCP_SUM BIT(24) + +#define MT_RXD0_SW_PKT_TYPE_MASK GENMASK(31, 16) +#define MT_RXD0_SW_PKT_TYPE_MAP 0x380F +#define MT_RXD0_SW_PKT_TYPE_FRAME 0x3801 + +/* RXD DW1 */ +#define MT_RXD1_NORMAL_WLAN_IDX GENMASK(11, 0) +#define MT_RXD1_NORMAL_GROUP_1 BIT(16) +#define MT_RXD1_NORMAL_GROUP_2 BIT(17) +#define MT_RXD1_NORMAL_GROUP_3 BIT(18) +#define MT_RXD1_NORMAL_GROUP_4 BIT(19) +#define MT_RXD1_NORMAL_GROUP_5 BIT(20) +#define MT_RXD1_NORMAL_KEY_ID GENMASK(22, 21) +#define MT_RXD1_NORMAL_CM BIT(23) +#define MT_RXD1_NORMAL_CLM BIT(24) +#define MT_RXD1_NORMAL_ICV_ERR BIT(25) +#define MT_RXD1_NORMAL_TKIP_MIC_ERR BIT(26) +#define MT_RXD1_NORMAL_BAND_IDX GENMASK(28, 27) +#define MT_RXD1_NORMAL_SPP_EN BIT(29) +#define MT_RXD1_NORMAL_ADD_OM BIT(30) +#define MT_RXD1_NORMAL_SEC_DONE BIT(31) + +/* RXD DW2 */ +#define MT_RXD2_NORMAL_BSSID GENMASK(5, 0) +#define MT_RXD2_NORMAL_MAC_HDR_LEN GENMASK(12, 8) +#define MT_RXD2_NORMAL_HDR_TRANS BIT(7) +#define MT_RXD2_NORMAL_HDR_OFFSET GENMASK(15, 13) +#define MT_RXD2_NORMAL_SEC_MODE GENMASK(20, 16) +#define MT_RXD2_NORMAL_MU_BAR BIT(21) +#define MT_RXD2_NORMAL_SW_BIT BIT(22) +#define MT_RXD2_NORMAL_AMSDU_ERR BIT(23) +#define MT_RXD2_NORMAL_MAX_LEN_ERROR BIT(24) +#define MT_RXD2_NORMAL_HDR_TRANS_ERROR BIT(25) +#define MT_RXD2_NORMAL_INT_FRAME BIT(26) +#define MT_RXD2_NORMAL_FRAG BIT(27) +#define MT_RXD2_NORMAL_NULL_FRAME BIT(28) +#define MT_RXD2_NORMAL_NDATA BIT(29) +#define MT_RXD2_NORMAL_NON_AMPDU BIT(30) +#define MT_RXD2_NORMAL_BF_REPORT BIT(31) + +/* RXD DW3 */ +#define MT_RXD3_NORMAL_RXV_SEQ GENMASK(7, 0) +#define MT_RXD3_NORMAL_CH_FREQ GENMASK(15, 8) +#define MT_RXD3_NORMAL_ADDR_TYPE GENMASK(17, 16) +#define MT_RXD3_NORMAL_U2M BIT(0) +#define MT_RXD3_NORMAL_HTC_VLD BIT(18) +#define MT_RXD3_NORMAL_BEACON_MC BIT(20) +#define MT_RXD3_NORMAL_BEACON_UC BIT(21) +#define MT_RXD3_NORMAL_CO_ANT BIT(22) +#define MT_RXD3_NORMAL_FCS_ERR BIT(24) +#define MT_RXD3_NORMAL_VLAN2ETH BIT(31) + +/* RXD DW4 */ +#define MT_RXD4_NORMAL_PAYLOAD_FORMAT GENMASK(1, 0) +#define MT_RXD4_FIRST_AMSDU_FRAME GENMASK(1, 0) +#define MT_RXD4_MID_AMSDU_FRAME BIT(1) +#define MT_RXD4_LAST_AMSDU_FRAME BIT(0) + +#define MT_RXV_HDR_BAND_IDX BIT(24) + +/* RXD GROUP4 */ +#define MT_RXD8_FRAME_CONTROL GENMASK(15, 0) + +#define MT_RXD10_SEQ_CTRL GENMASK(15, 0) +#define MT_RXD10_QOS_CTL GENMASK(31, 16) + +#define MT_RXD11_HT_CONTROL GENMASK(31, 0) + +/* P-RXV */ +#define MT_PRXV_TX_RATE GENMASK(6, 0) +#define MT_PRXV_TX_DCM BIT(4) +#define MT_PRXV_TX_ER_SU_106T BIT(5) +#define MT_PRXV_NSTS GENMASK(10, 7) +#define MT_PRXV_TXBF BIT(11) +#define MT_PRXV_HT_AD_CODE BIT(12) +#define MT_PRXV_HE_RU_ALLOC GENMASK(30, 22) +#define MT_PRXV_RCPI3 GENMASK(31, 24) +#define MT_PRXV_RCPI2 GENMASK(23, 16) +#define MT_PRXV_RCPI1 GENMASK(15, 8) +#define MT_PRXV_RCPI0 GENMASK(7, 0) +#define MT_PRXV_HT_SHORT_GI GENMASK(4, 3) +#define MT_PRXV_HT_STBC GENMASK(10, 9) +#define MT_PRXV_TX_MODE GENMASK(14, 11) +#define MT_PRXV_FRAME_MODE GENMASK(2, 0) +#define MT_PRXV_DCM BIT(5) + +/* C-RXV */ +#define MT_CRXV_HE_NUM_USER GENMASK(26, 20) +#define MT_CRXV_HE_LTF_SIZE GENMASK(28, 27) +#define MT_CRXV_HE_LDPC_EXT_SYM BIT(30) + +#define MT_CRXV_HE_PE_DISAMBIG BIT(1) +#define MT_CRXV_HE_UPLINK BIT(2) + +#define MT_CRXV_HE_MU_AID GENMASK(27, 17) +#define MT_CRXV_HE_BEAM_CHNG BIT(29) + +#define MT_CRXV_HE_DOPPLER BIT(0) +#define MT_CRXV_HE_BSS_COLOR GENMASK(15, 10) +#define MT_CRXV_HE_TXOP_DUR GENMASK(19, 17) + +#define MT_CRXV_HE_SR_MASK GENMASK(11, 8) +#define MT_CRXV_HE_SR1_MASK GENMASK(16, 12) +#define MT_CRXV_HE_SR2_MASK GENMASK(20, 17) +#define MT_CRXV_HE_SR3_MASK GENMASK(24, 21) + +#define MT_CRXV_HE_RU0 GENMASK(8, 0) +#define MT_CRXV_HE_RU1 GENMASK(17, 9) +#define MT_CRXV_HE_RU2 GENMASK(26, 18) +#define MT_CRXV_HE_RU3_L GENMASK(31, 27) +#define MT_CRXV_HE_RU3_H GENMASK(3, 0) + +enum tx_header_format { + MT_HDR_FORMAT_802_3, + MT_HDR_FORMAT_CMD, + MT_HDR_FORMAT_802_11, + MT_HDR_FORMAT_802_11_EXT, +}; + +enum tx_pkt_type { + MT_TX_TYPE_CT, + MT_TX_TYPE_SF, + MT_TX_TYPE_CMD, + MT_TX_TYPE_FW, +}; + +enum tx_port_idx { + MT_TX_PORT_IDX_LMAC, + MT_TX_PORT_IDX_MCU +}; + +enum tx_mcu_port_q_idx { + MT_TX_MCU_PORT_RX_Q0 = 0x20, + MT_TX_MCU_PORT_RX_Q1, + MT_TX_MCU_PORT_RX_Q2, + MT_TX_MCU_PORT_RX_Q3, + MT_TX_MCU_PORT_RX_FWDL = 0x3e +}; + +enum tx_mgnt_type { + MT_TX_NORMAL, + MT_TX_TIMING, + MT_TX_ADDBA, +}; + +#define MT_CT_INFO_APPLY_TXD BIT(0) +#define MT_CT_INFO_COPY_HOST_TXD_ALL BIT(1) +#define MT_CT_INFO_MGMT_FRAME BIT(2) +#define MT_CT_INFO_NONE_CIPHER_FRAME BIT(3) +#define MT_CT_INFO_HSR2_TX BIT(4) +#define MT_CT_INFO_FROM_HOST BIT(7) + +#define MT_TXD_SIZE (8 * 4) + +#define MT_TXD0_Q_IDX GENMASK(31, 25) +#define MT_TXD0_PKT_FMT GENMASK(24, 23) +#define MT_TXD0_ETH_TYPE_OFFSET GENMASK(22, 16) +#define MT_TXD0_TX_BYTES GENMASK(15, 0) + +#define MT_TXD1_FIXED_RATE BIT(31) +#define MT_TXD1_OWN_MAC GENMASK(30, 25) +#define MT_TXD1_TID GENMASK(24, 21) +#define MT_TXD1_BIP BIT(24) +#define MT_TXD1_ETH_802_3 BIT(20) +#define MT_TXD1_HDR_INFO GENMASK(20, 16) +#define MT_TXD1_HDR_FORMAT GENMASK(15, 14) +#define MT_TXD1_TGID GENMASK(13, 12) +#define MT_TXD1_WLAN_IDX GENMASK(11, 0) + +#define MT_TXD2_POWER_OFFSET GENMASK(31, 26) +#define MT_TXD2_MAX_TX_TIME GENMASK(25, 16) +#define MT_TXD2_FRAG GENMASK(15, 14) +#define MT_TXD2_HTC_VLD BIT(13) +#define MT_TXD2_DURATION BIT(12) +#define MT_TXD2_HDR_PAD GENMASK(11, 10) +#define MT_TXD2_RTS BIT(9) +#define MT_TXD2_OWN_MAC_MAP BIT(8) +#define MT_TXD2_BF_TYPE GENMASK(6, 7) +#define MT_TXD2_FRAME_TYPE GENMASK(5, 4) +#define MT_TXD2_SUB_TYPE GENMASK(3, 0) + +#define MT_TXD3_SN_VALID BIT(31) +#define MT_TXD3_PN_VALID BIT(30) +#define MT_TXD3_SW_POWER_MGMT BIT(29) +#define MT_TXD3_BA_DISABLE BIT(28) +#define MT_TXD3_SEQ GENMASK(27, 16) +#define MT_TXD3_REM_TX_COUNT GENMASK(15, 11) +#define MT_TXD3_TX_COUNT GENMASK(10, 6) +#define MT_TXD3_HW_AMSDU BIT(5) +#define MT_TXD3_BCM BIT(4) +#define MT_TXD3_EEOSP BIT(3) +#define MT_TXD3_EMRD BIT(2) +#define MT_TXD3_PROTECT_FRAME BIT(1) +#define MT_TXD3_NO_ACK BIT(0) + +#define MT_TXD4_PN_LOW GENMASK(31, 0) + +#define MT_TXD5_PN_HIGH GENMASK(31, 16) +#define MT_TXD5_FL BIT(15) +#define MT_TXD5_BYPASS_TBB BIT(14) +#define MT_TXD5_BYPASS_RBB BIT(13) +#define MT_TXD5_BSS_COLOR_ZERO BIT(12) +#define MT_TXD5_TX_STATUS_HOST BIT(10) +#define MT_TXD5_TX_STATUS_MCU BIT(9) +#define MT_TXD5_TX_STATUS_FMT BIT(8) +#define MT_TXD5_PID GENMASK(7, 0) + +#define MT_TXD6_TX_SRC GENMASK(31, 30) +#define MT_TXD6_VTA BIT(28) +#define MT_TXD6_BW GENMASK(25, 22) +#define MT_TXD6_TX_RATE GENMASK(21, 16) +#define MT_TXD6_TIMESTAMP_OFS_EN BIT(15) +#define MT_TXD6_TIMESTAMP_OFS_IDX GENMASK(14, 10) +#define MT_TXD6_MSDU_CNT GENMASK(9, 4) +#define MT_TXD6_DIS_MAT BIT(3) +#define MT_TXD6_DAS BIT(2) +#define MT_TXD6_AMSDU_CAP BIT(1) + +#define MT_TXD7_TXD_LEN GENMASK(31, 30) +#define MT_TXD7_IP_SUM BIT(29) +#define MT_TXD7_DROP_BY_SDO BIT(28) +#define MT_TXD7_MAC_TXD BIT(27) +#define MT_TXD7_CTXD BIT(26) +#define MT_TXD7_CTXD_CNT GENMASK(25, 22) +#define MT_TXD7_UDP_TCP_SUM BIT(15) +#define MT_TXD7_TX_TIME GENMASK(9, 0) + +#define MT_TXD9_WLAN_IDX GENMASK(23, 8) + +#define MT_TX_RATE_STBC BIT(14) +#define MT_TX_RATE_NSS GENMASK(13, 10) +#define MT_TX_RATE_MODE GENMASK(9, 6) +#define MT_TX_RATE_SU_EXT_TONE BIT(5) +#define MT_TX_RATE_DCM BIT(4) +/* VHT/HE only use bits 0-3 */ +#define MT_TX_RATE_IDX GENMASK(5, 0) + +#define MT_TXFREE0_PKT_TYPE GENMASK(31, 27) +#define MT_TXFREE0_MSDU_CNT GENMASK(25, 16) +#define MT_TXFREE0_RX_BYTE GENMASK(15, 0) + +#define MT_TXFREE1_VER GENMASK(18, 16) + +#define MT_TXFREE_INFO_PAIR BIT(31) +#define MT_TXFREE_INFO_HEADER BIT(30) +#define MT_TXFREE_INFO_WLAN_ID GENMASK(23, 12) +#define MT_TXFREE_INFO_MSDU_ID GENMASK(14, 0) +#define MT_TXFREE_INFO_COUNT GENMASK(27, 24) +#define MT_TXFREE_INFO_STAT GENMASK(29, 28) + +#define MT_TXS0_BW GENMASK(31, 29) +#define MT_TXS0_TID GENMASK(28, 26) +#define MT_TXS0_AMPDU BIT(25) +#define MT_TXS0_TXS_FORMAT GENMASK(24, 23) +#define MT_TXS0_BA_ERROR BIT(22) +#define MT_TXS0_PS_FLAG BIT(21) +#define MT_TXS0_TXOP_TIMEOUT BIT(20) +#define MT_TXS0_BIP_ERROR BIT(19) + +#define MT_TXS0_QUEUE_TIMEOUT BIT(18) +#define MT_TXS0_RTS_TIMEOUT BIT(17) +#define MT_TXS0_ACK_TIMEOUT BIT(16) +#define MT_TXS0_ACK_ERROR_MASK GENMASK(18, 16) + +#define MT_TXS0_TX_STATUS_HOST BIT(15) +#define MT_TXS0_TX_STATUS_MCU BIT(14) +#define MT_TXS0_TX_RATE GENMASK(13, 0) + +#define MT_TXS1_SEQNO GENMASK(31, 20) +#define MT_TXS1_RESP_RATE GENMASK(19, 16) +#define MT_TXS1_RXV_SEQNO GENMASK(15, 8) +#define MT_TXS1_TX_POWER_DBM GENMASK(7, 0) + +#define MT_TXS2_BF_STATUS GENMASK(31, 30) +#define MT_TXS2_BAND GENMASK(29, 28) +#define MT_TXS2_WCID GENMASK(27, 16) +#define MT_TXS2_TX_DELAY GENMASK(15, 0) + +#define MT_TXS3_PID GENMASK(31, 24) +#define MT_TXS3_RATE_STBC BIT(7) +#define MT_TXS3_FIXED_RATE BIT(6) +#define MT_TXS3_SRC GENMASK(5, 4) +#define MT_TXS3_SHARED_ANTENNA BIT(3) +#define MT_TXS3_LAST_TX_RATE GENMASK(2, 0) + +#define MT_TXS4_TIMESTAMP GENMASK(31, 0) + +#define MT_TXS5_F0_FINAL_MPDU BIT(31) +#define MT_TXS5_F0_QOS BIT(30) +#define MT_TXS5_F0_TX_COUNT GENMASK(29, 25) +#define MT_TXS5_F0_FRONT_TIME GENMASK(24, 0) +#define MT_TXS5_F1_MPDU_TX_COUNT GENMASK(31, 24) +#define MT_TXS5_F1_MPDU_TX_BYTES GENMASK(23, 0) + +#define MT_TXS6_F0_NOISE_3 GENMASK(31, 24) +#define MT_TXS6_F0_NOISE_2 GENMASK(23, 16) +#define MT_TXS6_F0_NOISE_1 GENMASK(15, 8) +#define MT_TXS6_F0_NOISE_0 GENMASK(7, 0) +#define MT_TXS6_F1_MPDU_FAIL_COUNT GENMASK(31, 24) +#define MT_TXS6_F1_MPDU_FAIL_BYTES GENMASK(23, 0) + +#define MT_TXS7_F0_RCPI_3 GENMASK(31, 24) +#define MT_TXS7_F0_RCPI_2 GENMASK(23, 16) +#define MT_TXS7_F0_RCPI_1 GENMASK(15, 8) +#define MT_TXS7_F0_RCPI_0 GENMASK(7, 0) +#define MT_TXS7_F1_MPDU_RETRY_COUNT GENMASK(31, 24) +#define MT_TXS7_F1_MPDU_RETRY_BYTES GENMASK(23, 0) + +#endif /* __MT76_CONNAC3_MAC_H */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/mediatek/mt76/mt7915/mac.c +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7915/mac.c @@ -808,7 +808,7 @@ txp->rept_wds_wcid = cpu_to_le16(wcid->idx); else txp->rept_wds_wcid = cpu_to_le16(0x3ff); - tx_info->skb = DMA_DUMMY_DATA; + tx_info->skb = NULL; /* pass partial skb header to fw */ tx_info->buf[1].len = MT_CT_PARSE_LEN; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7915/mcu.h @@ -495,10 +495,14 @@ SER_RECOVER }; -#define MT7915_MAX_BEACON_SIZE 512 -#define MT7915_MAX_INBAND_FRAME_SIZE 256 -#define MT7915_MAX_BSS_OFFLOAD_SIZE (MT7915_MAX_BEACON_SIZE + \ - MT7915_MAX_INBAND_FRAME_SIZE + \ +#define MT7915_MAX_BEACON_SIZE 1308 +#define MT7915_BEACON_UPDATE_SIZE (sizeof(struct sta_req_hdr) + \ + sizeof(struct bss_info_bcn) + \ + sizeof(struct bss_info_bcn_cntdwn) + \ + sizeof(struct bss_info_bcn_mbss) + \ + MT_TXD_SIZE + \ + sizeof(struct bss_info_bcn_cont)) +#define MT7915_MAX_BSS_OFFLOAD_SIZE (MT7915_MAX_BEACON_SIZE + \ MT7915_BEACON_UPDATE_SIZE) #define MT7915_BSS_UPDATE_MAX_SIZE (sizeof(struct sta_req_hdr) + \ @@ -511,12 +515,6 @@ sizeof(struct bss_info_bmc_rate) +\ sizeof(struct bss_info_ext_bss)) -#define MT7915_BEACON_UPDATE_SIZE (sizeof(struct sta_req_hdr) + \ - sizeof(struct bss_info_bcn_cntdwn) + \ - sizeof(struct bss_info_bcn_mbss) + \ - sizeof(struct bss_info_bcn_cont) + \ - sizeof(struct bss_info_inband_discovery)) - static inline s8 mt7915_get_power_bound(struct mt7915_phy *phy, s8 txpower) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/mediatek/mt76/mt7921/pci.c +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7921/pci.c @@ -17,6 +17,8 @@ .driver_data = (kernel_ulong_t)MT7921_FIRMWARE_WM }, { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x7922), .driver_data = (kernel_ulong_t)MT7922_FIRMWARE_WM }, + { PCI_DEVICE(PCI_VENDOR_ID_ITTIM, 0x7922), + .driver_data = (kernel_ulong_t)MT7922_FIRMWARE_WM }, { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x0608), .driver_data = (kernel_ulong_t)MT7921_FIRMWARE_WM }, { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x0616), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c @@ -48,7 +48,7 @@ memset(txp, 0, sizeof(struct mt76_connac_hw_txp)); mt76_connac_write_hw_txp(mdev, tx_info, txp, id); - tx_info->skb = DMA_DUMMY_DATA; + tx_info->skb = NULL; return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/mediatek/mt76/mt7996/init.c +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7996/init.c @@ -729,16 +729,17 @@ IEEE80211_EHT_PHY_CAP0_SU_BEAMFORMER | IEEE80211_EHT_PHY_CAP0_SU_BEAMFORMEE; + val = max_t(u8, sts - 1, 3); eht_cap_elem->phy_cap_info[0] |= - u8_encode_bits(u8_get_bits(sts - 1, BIT(0)), + u8_encode_bits(u8_get_bits(val, BIT(0)), IEEE80211_EHT_PHY_CAP0_BEAMFORMEE_SS_80MHZ_MASK); eht_cap_elem->phy_cap_info[1] = - u8_encode_bits(u8_get_bits(sts - 1, GENMASK(2, 1)), + u8_encode_bits(u8_get_bits(val, GENMASK(2, 1)), IEEE80211_EHT_PHY_CAP1_BEAMFORMEE_SS_80MHZ_MASK) | - u8_encode_bits(sts - 1, + u8_encode_bits(val, IEEE80211_EHT_PHY_CAP1_BEAMFORMEE_SS_160MHZ_MASK) | - u8_encode_bits(sts - 1, + u8_encode_bits(val, IEEE80211_EHT_PHY_CAP1_BEAMFORMEE_SS_320MHZ_MASK); eht_cap_elem->phy_cap_info[2] = only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/mediatek/mt76/mt7996/mac.h +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7996/mac.h @@ -6,320 +6,7 @@ #ifndef __MT7996_MAC_H #define __MT7996_MAC_H -#define MT_CT_PARSE_LEN 72 -#define MT_CT_DMA_BUF_NUM 2 - -#define MT_RXD0_LENGTH GENMASK(15, 0) -#define MT_RXD0_PKT_TYPE GENMASK(31, 27) - -#define MT_RXD0_MESH BIT(18) -#define MT_RXD0_MHCP BIT(19) -#define MT_RXD0_NORMAL_ETH_TYPE_OFS GENMASK(22, 16) -#define MT_RXD0_NORMAL_IP_SUM BIT(23) -#define MT_RXD0_NORMAL_UDP_TCP_SUM BIT(24) - -#define MT_RXD0_SW_PKT_TYPE_MASK GENMASK(31, 16) -#define MT_RXD0_SW_PKT_TYPE_MAP 0x380F -#define MT_RXD0_SW_PKT_TYPE_FRAME 0x3801 - -/* RXD DW1 */ -#define MT_RXD1_NORMAL_WLAN_IDX GENMASK(11, 0) -#define MT_RXD1_NORMAL_GROUP_1 BIT(16) -#define MT_RXD1_NORMAL_GROUP_2 BIT(17) -#define MT_RXD1_NORMAL_GROUP_3 BIT(18) -#define MT_RXD1_NORMAL_GROUP_4 BIT(19) -#define MT_RXD1_NORMAL_GROUP_5 BIT(20) -#define MT_RXD1_NORMAL_KEY_ID GENMASK(22, 21) -#define MT_RXD1_NORMAL_CM BIT(23) -#define MT_RXD1_NORMAL_CLM BIT(24) -#define MT_RXD1_NORMAL_ICV_ERR BIT(25) -#define MT_RXD1_NORMAL_TKIP_MIC_ERR BIT(26) -#define MT_RXD1_NORMAL_BAND_IDX GENMASK(28, 27) -#define MT_RXD1_NORMAL_SPP_EN BIT(29) -#define MT_RXD1_NORMAL_ADD_OM BIT(30) -#define MT_RXD1_NORMAL_SEC_DONE BIT(31) - -/* RXD DW2 */ -#define MT_RXD2_NORMAL_BSSID GENMASK(5, 0) -#define MT_RXD2_NORMAL_MAC_HDR_LEN GENMASK(12, 8) -#define MT_RXD2_NORMAL_HDR_TRANS BIT(7) -#define MT_RXD2_NORMAL_HDR_OFFSET GENMASK(15, 13) -#define MT_RXD2_NORMAL_SEC_MODE GENMASK(20, 16) -#define MT_RXD2_NORMAL_MU_BAR BIT(21) -#define MT_RXD2_NORMAL_SW_BIT BIT(22) -#define MT_RXD2_NORMAL_AMSDU_ERR BIT(23) -#define MT_RXD2_NORMAL_MAX_LEN_ERROR BIT(24) -#define MT_RXD2_NORMAL_HDR_TRANS_ERROR BIT(25) -#define MT_RXD2_NORMAL_INT_FRAME BIT(26) -#define MT_RXD2_NORMAL_FRAG BIT(27) -#define MT_RXD2_NORMAL_NULL_FRAME BIT(28) -#define MT_RXD2_NORMAL_NDATA BIT(29) -#define MT_RXD2_NORMAL_NON_AMPDU BIT(30) -#define MT_RXD2_NORMAL_BF_REPORT BIT(31) - -/* RXD DW3 */ -#define MT_RXD3_NORMAL_RXV_SEQ GENMASK(7, 0) -#define MT_RXD3_NORMAL_CH_FREQ GENMASK(15, 8) -#define MT_RXD3_NORMAL_ADDR_TYPE GENMASK(17, 16) -#define MT_RXD3_NORMAL_U2M BIT(0) -#define MT_RXD3_NORMAL_HTC_VLD BIT(18) -#define MT_RXD3_NORMAL_BEACON_MC BIT(20) -#define MT_RXD3_NORMAL_BEACON_UC BIT(21) -#define MT_RXD3_NORMAL_CO_ANT BIT(22) -#define MT_RXD3_NORMAL_FCS_ERR BIT(24) -#define MT_RXD3_NORMAL_VLAN2ETH BIT(31) - -/* RXD DW4 */ -#define MT_RXD4_NORMAL_PAYLOAD_FORMAT GENMASK(1, 0) -#define MT_RXD4_FIRST_AMSDU_FRAME GENMASK(1, 0) -#define MT_RXD4_MID_AMSDU_FRAME BIT(1) -#define MT_RXD4_LAST_AMSDU_FRAME BIT(0) - -#define MT_RXV_HDR_BAND_IDX BIT(24) - -/* RXD GROUP4 */ -#define MT_RXD8_FRAME_CONTROL GENMASK(15, 0) - -#define MT_RXD10_SEQ_CTRL GENMASK(15, 0) -#define MT_RXD10_QOS_CTL GENMASK(31, 16) - -#define MT_RXD11_HT_CONTROL GENMASK(31, 0) - -/* P-RXV */ -#define MT_PRXV_TX_RATE GENMASK(6, 0) -#define MT_PRXV_TX_DCM BIT(4) -#define MT_PRXV_TX_ER_SU_106T BIT(5) -#define MT_PRXV_NSTS GENMASK(10, 7) -#define MT_PRXV_TXBF BIT(11) -#define MT_PRXV_HT_AD_CODE BIT(12) -#define MT_PRXV_HE_RU_ALLOC GENMASK(30, 22) -#define MT_PRXV_RCPI3 GENMASK(31, 24) -#define MT_PRXV_RCPI2 GENMASK(23, 16) -#define MT_PRXV_RCPI1 GENMASK(15, 8) -#define MT_PRXV_RCPI0 GENMASK(7, 0) -#define MT_PRXV_HT_SHORT_GI GENMASK(4, 3) -#define MT_PRXV_HT_STBC GENMASK(10, 9) -#define MT_PRXV_TX_MODE GENMASK(14, 11) -#define MT_PRXV_FRAME_MODE GENMASK(2, 0) -#define MT_PRXV_DCM BIT(5) - -/* C-RXV */ -#define MT_CRXV_HE_NUM_USER GENMASK(26, 20) -#define MT_CRXV_HE_LTF_SIZE GENMASK(28, 27) -#define MT_CRXV_HE_LDPC_EXT_SYM BIT(30) - -#define MT_CRXV_HE_PE_DISAMBIG BIT(1) -#define MT_CRXV_HE_UPLINK BIT(2) - -#define MT_CRXV_HE_MU_AID GENMASK(27, 17) -#define MT_CRXV_HE_BEAM_CHNG BIT(29) - -#define MT_CRXV_HE_DOPPLER BIT(0) -#define MT_CRXV_HE_BSS_COLOR GENMASK(15, 10) -#define MT_CRXV_HE_TXOP_DUR GENMASK(19, 17) - -#define MT_CRXV_HE_SR_MASK GENMASK(11, 8) -#define MT_CRXV_HE_SR1_MASK GENMASK(16, 12) -#define MT_CRXV_HE_SR2_MASK GENMASK(20, 17) -#define MT_CRXV_HE_SR3_MASK GENMASK(24, 21) - -#define MT_CRXV_HE_RU0 GENMASK(8, 0) -#define MT_CRXV_HE_RU1 GENMASK(17, 9) -#define MT_CRXV_HE_RU2 GENMASK(26, 18) -#define MT_CRXV_HE_RU3_L GENMASK(31, 27) -#define MT_CRXV_HE_RU3_H GENMASK(3, 0) - -enum tx_header_format { - MT_HDR_FORMAT_802_3, - MT_HDR_FORMAT_CMD, - MT_HDR_FORMAT_802_11, - MT_HDR_FORMAT_802_11_EXT, -}; - -enum tx_pkt_type { - MT_TX_TYPE_CT, - MT_TX_TYPE_SF, - MT_TX_TYPE_CMD, - MT_TX_TYPE_FW, -}; - -enum tx_port_idx { - MT_TX_PORT_IDX_LMAC, - MT_TX_PORT_IDX_MCU -}; - -enum tx_mcu_port_q_idx { - MT_TX_MCU_PORT_RX_Q0 = 0x20, - MT_TX_MCU_PORT_RX_Q1, - MT_TX_MCU_PORT_RX_Q2, - MT_TX_MCU_PORT_RX_Q3, - MT_TX_MCU_PORT_RX_FWDL = 0x3e -}; - -enum tx_mgnt_type { - MT_TX_NORMAL, - MT_TX_TIMING, - MT_TX_ADDBA, -}; - -#define MT_CT_INFO_APPLY_TXD BIT(0) -#define MT_CT_INFO_COPY_HOST_TXD_ALL BIT(1) -#define MT_CT_INFO_MGMT_FRAME BIT(2) -#define MT_CT_INFO_NONE_CIPHER_FRAME BIT(3) -#define MT_CT_INFO_HSR2_TX BIT(4) -#define MT_CT_INFO_FROM_HOST BIT(7) - -#define MT_TXD_SIZE (8 * 4) - -#define MT_TXD0_Q_IDX GENMASK(31, 25) -#define MT_TXD0_PKT_FMT GENMASK(24, 23) -#define MT_TXD0_ETH_TYPE_OFFSET GENMASK(22, 16) -#define MT_TXD0_TX_BYTES GENMASK(15, 0) - -#define MT_TXD1_FIXED_RATE BIT(31) -#define MT_TXD1_OWN_MAC GENMASK(30, 25) -#define MT_TXD1_TID GENMASK(24, 21) -#define MT_TXD1_BIP BIT(24) -#define MT_TXD1_ETH_802_3 BIT(20) -#define MT_TXD1_HDR_INFO GENMASK(20, 16) -#define MT_TXD1_HDR_FORMAT GENMASK(15, 14) -#define MT_TXD1_TGID GENMASK(13, 12) -#define MT_TXD1_WLAN_IDX GENMASK(11, 0) - -#define MT_TXD2_POWER_OFFSET GENMASK(31, 26) -#define MT_TXD2_MAX_TX_TIME GENMASK(25, 16) -#define MT_TXD2_FRAG GENMASK(15, 14) -#define MT_TXD2_HTC_VLD BIT(13) -#define MT_TXD2_DURATION BIT(12) -#define MT_TXD2_HDR_PAD GENMASK(11, 10) -#define MT_TXD2_RTS BIT(9) -#define MT_TXD2_OWN_MAC_MAP BIT(8) -#define MT_TXD2_BF_TYPE GENMASK(6, 7) -#define MT_TXD2_FRAME_TYPE GENMASK(5, 4) -#define MT_TXD2_SUB_TYPE GENMASK(3, 0) - -#define MT_TXD3_SN_VALID BIT(31) -#define MT_TXD3_PN_VALID BIT(30) -#define MT_TXD3_SW_POWER_MGMT BIT(29) -#define MT_TXD3_BA_DISABLE BIT(28) -#define MT_TXD3_SEQ GENMASK(27, 16) -#define MT_TXD3_REM_TX_COUNT GENMASK(15, 11) -#define MT_TXD3_TX_COUNT GENMASK(10, 6) -#define MT_TXD3_HW_AMSDU BIT(5) -#define MT_TXD3_BCM BIT(4) -#define MT_TXD3_EEOSP BIT(3) -#define MT_TXD3_EMRD BIT(2) -#define MT_TXD3_PROTECT_FRAME BIT(1) -#define MT_TXD3_NO_ACK BIT(0) - -#define MT_TXD4_PN_LOW GENMASK(31, 0) - -#define MT_TXD5_PN_HIGH GENMASK(31, 16) -#define MT_TXD5_FL BIT(15) -#define MT_TXD5_BYPASS_TBB BIT(14) -#define MT_TXD5_BYPASS_RBB BIT(13) -#define MT_TXD5_BSS_COLOR_ZERO BIT(12) -#define MT_TXD5_TX_STATUS_HOST BIT(10) -#define MT_TXD5_TX_STATUS_MCU BIT(9) -#define MT_TXD5_TX_STATUS_FMT BIT(8) -#define MT_TXD5_PID GENMASK(7, 0) - -#define MT_TXD6_TX_SRC GENMASK(31, 30) -#define MT_TXD6_VTA BIT(28) -#define MT_TXD6_BW GENMASK(25, 22) -#define MT_TXD6_TX_RATE GENMASK(21, 16) -#define MT_TXD6_TIMESTAMP_OFS_EN BIT(15) -#define MT_TXD6_TIMESTAMP_OFS_IDX GENMASK(14, 10) -#define MT_TXD6_MSDU_CNT GENMASK(9, 4) -#define MT_TXD6_DIS_MAT BIT(3) -#define MT_TXD6_DAS BIT(2) -#define MT_TXD6_AMSDU_CAP BIT(1) - -#define MT_TXD7_TXD_LEN GENMASK(31, 30) -#define MT_TXD7_IP_SUM BIT(29) -#define MT_TXD7_DROP_BY_SDO BIT(28) -#define MT_TXD7_MAC_TXD BIT(27) -#define MT_TXD7_CTXD BIT(26) -#define MT_TXD7_CTXD_CNT GENMASK(25, 22) -#define MT_TXD7_UDP_TCP_SUM BIT(15) -#define MT_TXD7_TX_TIME GENMASK(9, 0) - -#define MT_TX_RATE_STBC BIT(14) -#define MT_TX_RATE_NSS GENMASK(13, 10) -#define MT_TX_RATE_MODE GENMASK(9, 6) -#define MT_TX_RATE_SU_EXT_TONE BIT(5) -#define MT_TX_RATE_DCM BIT(4) -/* VHT/HE only use bits 0-3 */ -#define MT_TX_RATE_IDX GENMASK(5, 0) - -#define MT_TXFREE0_PKT_TYPE GENMASK(31, 27) -#define MT_TXFREE0_MSDU_CNT GENMASK(25, 16) -#define MT_TXFREE0_RX_BYTE GENMASK(15, 0) - -#define MT_TXFREE1_VER GENMASK(18, 16) - -#define MT_TXFREE_INFO_PAIR BIT(31) -#define MT_TXFREE_INFO_HEADER BIT(30) -#define MT_TXFREE_INFO_WLAN_ID GENMASK(23, 12) -#define MT_TXFREE_INFO_MSDU_ID GENMASK(14, 0) - -#define MT_TXS0_BW GENMASK(31, 29) -#define MT_TXS0_TID GENMASK(28, 26) -#define MT_TXS0_AMPDU BIT(25) -#define MT_TXS0_TXS_FORMAT GENMASK(24, 23) -#define MT_TXS0_BA_ERROR BIT(22) -#define MT_TXS0_PS_FLAG BIT(21) -#define MT_TXS0_TXOP_TIMEOUT BIT(20) -#define MT_TXS0_BIP_ERROR BIT(19) - -#define MT_TXS0_QUEUE_TIMEOUT BIT(18) -#define MT_TXS0_RTS_TIMEOUT BIT(17) -#define MT_TXS0_ACK_TIMEOUT BIT(16) -#define MT_TXS0_ACK_ERROR_MASK GENMASK(18, 16) - -#define MT_TXS0_TX_STATUS_HOST BIT(15) -#define MT_TXS0_TX_STATUS_MCU BIT(14) -#define MT_TXS0_TX_RATE GENMASK(13, 0) - -#define MT_TXS1_SEQNO GENMASK(31, 20) -#define MT_TXS1_RESP_RATE GENMASK(19, 16) -#define MT_TXS1_RXV_SEQNO GENMASK(15, 8) -#define MT_TXS1_TX_POWER_DBM GENMASK(7, 0) - -#define MT_TXS2_BF_STATUS GENMASK(31, 30) -#define MT_TXS2_BAND GENMASK(29, 28) -#define MT_TXS2_WCID GENMASK(27, 16) -#define MT_TXS2_TX_DELAY GENMASK(15, 0) - -#define MT_TXS3_PID GENMASK(31, 24) -#define MT_TXS3_RATE_STBC BIT(7) -#define MT_TXS3_FIXED_RATE BIT(6) -#define MT_TXS3_SRC GENMASK(5, 4) -#define MT_TXS3_SHARED_ANTENNA BIT(3) -#define MT_TXS3_LAST_TX_RATE GENMASK(2, 0) - -#define MT_TXS4_TIMESTAMP GENMASK(31, 0) - -#define MT_TXS5_F0_FINAL_MPDU BIT(31) -#define MT_TXS5_F0_QOS BIT(30) -#define MT_TXS5_F0_TX_COUNT GENMASK(29, 25) -#define MT_TXS5_F0_FRONT_TIME GENMASK(24, 0) -#define MT_TXS5_F1_MPDU_TX_COUNT GENMASK(31, 24) -#define MT_TXS5_F1_MPDU_TX_BYTES GENMASK(23, 0) - -#define MT_TXS6_F0_NOISE_3 GENMASK(31, 24) -#define MT_TXS6_F0_NOISE_2 GENMASK(23, 16) -#define MT_TXS6_F0_NOISE_1 GENMASK(15, 8) -#define MT_TXS6_F0_NOISE_0 GENMASK(7, 0) -#define MT_TXS6_F1_MPDU_FAIL_COUNT GENMASK(31, 24) -#define MT_TXS6_F1_MPDU_FAIL_BYTES GENMASK(23, 0) - -#define MT_TXS7_F0_RCPI_3 GENMASK(31, 24) -#define MT_TXS7_F0_RCPI_2 GENMASK(23, 16) -#define MT_TXS7_F0_RCPI_1 GENMASK(15, 8) -#define MT_TXS7_F0_RCPI_0 GENMASK(7, 0) -#define MT_TXS7_F1_MPDU_RETRY_COUNT GENMASK(31, 24) -#define MT_TXS7_F1_MPDU_RETRY_BYTES GENMASK(23, 0) +#include "../mt76_connac3_mac.h" struct mt7996_dfs_pulse { u32 max_width; /* us */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/mediatek/mt76/mt7996/main.c +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7996/main.c @@ -184,7 +184,7 @@ mvif->mt76.omac_idx = idx; mvif->phy = phy; mvif->mt76.band_idx = band_idx; - mvif->mt76.wmm_idx = band_idx; + mvif->mt76.wmm_idx = vif->type != NL80211_IFTYPE_AP; ret = mt7996_mcu_add_dev_info(phy, vif, true); if (ret) @@ -414,10 +414,16 @@ const struct ieee80211_tx_queue_params *params) { struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv; + const u8 mq_to_aci[] = { + [IEEE80211_AC_VO] = 3, + [IEEE80211_AC_VI] = 2, + [IEEE80211_AC_BE] = 0, + [IEEE80211_AC_BK] = 1, + }; + /* firmware uses access class index */ + mvif->queue_params[mq_to_aci[queue]] = *params; /* no need to update right away, we'll get BSS_CHANGED_QOS */ - queue = mt76_connac_lmac_mapping(queue); - mvif->queue_params[queue] = *params; return 0; } @@ -598,8 +604,8 @@ mt7996_mcu_add_beacon(hw, vif, info->enable_beacon); } - if (changed & BSS_CHANGED_UNSOL_BCAST_PROBE_RESP || - changed & BSS_CHANGED_FILS_DISCOVERY) + if (changed & (BSS_CHANGED_UNSOL_BCAST_PROBE_RESP | + BSS_CHANGED_FILS_DISCOVERY)) mt7996_mcu_beacon_inband_discov(dev, vif, changed); mutex_unlock(&dev->mt76.mutex); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/mediatek/mt76/mt7996/mcu.h +++ linux-riscv-6.5.0/drivers/net/wireless/mediatek/mt76/mt7996/mcu.h @@ -270,8 +270,6 @@ u8 enable; __le16 wcid; __le16 prob_rsp_len; -#define MAX_INBAND_FRAME_SIZE 512 - u8 pkt[MAX_INBAND_FRAME_SIZE]; } __packed; struct bss_bcn_content_tlv { @@ -283,8 +281,6 @@ u8 enable; u8 type; __le16 pkt_len; -#define MAX_BEACON_SIZE 512 - u8 pkt[MAX_BEACON_SIZE]; } __packed; struct bss_bcn_cntdwn_tlv { @@ -574,13 +570,14 @@ sizeof(struct sta_rec_hdr_trans) + \ sizeof(struct tlv)) +#define MT7996_MAX_BEACON_SIZE 1342 #define MT7996_BEACON_UPDATE_SIZE (sizeof(struct bss_req_hdr) + \ sizeof(struct bss_bcn_content_tlv) + \ + MT_TXD_SIZE + \ sizeof(struct bss_bcn_cntdwn_tlv) + \ sizeof(struct bss_bcn_mbss_tlv)) - -#define MT7996_INBAND_FRAME_SIZE (sizeof(struct bss_req_hdr) + \ - sizeof(struct bss_inband_discovery_tlv)) +#define MT7996_MAX_BSS_OFFLOAD_SIZE (MT7996_MAX_BEACON_SIZE + \ + MT7996_BEACON_UPDATE_SIZE) enum { UNI_BAND_CONFIG_RADIO_ENABLE, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/microchip/wilc1000/wlan.c +++ linux-riscv-6.5.0/drivers/net/wireless/microchip/wilc1000/wlan.c @@ -1492,7 +1492,7 @@ } if (!wilc->vmm_table) - wilc->vmm_table = kzalloc(WILC_VMM_TBL_SIZE, GFP_KERNEL); + wilc->vmm_table = kcalloc(WILC_VMM_TBL_SIZE, sizeof(u32), GFP_KERNEL); if (!wilc->vmm_table) { ret = -ENOBUFS; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/purelifi/plfxlc/mac.c +++ linux-riscv-6.5.0/drivers/net/wireless/purelifi/plfxlc/mac.c @@ -666,7 +666,7 @@ u32 sset, u8 *data) { if (sset == ETH_SS_STATS) - memcpy(data, *et_strings, sizeof(et_strings)); + memcpy(data, et_strings, sizeof(et_strings)); } static void plfxlc_get_et_stats(struct ieee80211_hw *hw, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.c +++ linux-riscv-6.5.0/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/dm.c @@ -799,7 +799,7 @@ } if (rtlpriv->btcoexist.bt_edca_dl != 0) { - edca_be_ul = rtlpriv->btcoexist.bt_edca_dl; + edca_be_dl = rtlpriv->btcoexist.bt_edca_dl; bt_change_edca = true; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/realtek/rtlwifi/rtl8192c/dm_common.c +++ linux-riscv-6.5.0/drivers/net/wireless/realtek/rtlwifi/rtl8192c/dm_common.c @@ -640,7 +640,7 @@ } if (rtlpriv->btcoexist.bt_edca_dl != 0) { - edca_be_ul = rtlpriv->btcoexist.bt_edca_dl; + edca_be_dl = rtlpriv->btcoexist.bt_edca_dl; bt_change_edca = true; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/dm.c +++ linux-riscv-6.5.0/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/dm.c @@ -466,7 +466,7 @@ } if (rtlpriv->btcoexist.bt_edca_dl != 0) { - edca_be_ul = rtlpriv->btcoexist.bt_edca_dl; + edca_be_dl = rtlpriv->btcoexist.bt_edca_dl; bt_change_edca = true; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/realtek/rtw88/debug.c +++ linux-riscv-6.5.0/drivers/net/wireless/realtek/rtw88/debug.c @@ -1233,9 +1233,9 @@ #define rtw_debugfs_add_core(name, mode, fopname, parent) \ do { \ rtw_debug_priv_ ##name.rtwdev = rtwdev; \ - if (!debugfs_create_file(#name, mode, \ + if (IS_ERR(debugfs_create_file(#name, mode, \ parent, &rtw_debug_priv_ ##name,\ - &file_ops_ ##fopname)) \ + &file_ops_ ##fopname))) \ pr_debug("Unable to initialize debugfs:%s\n", \ #name); \ } while (0) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wireless/silabs/wfx/data_tx.c +++ linux-riscv-6.5.0/drivers/net/wireless/silabs/wfx/data_tx.c @@ -226,53 +226,40 @@ static void wfx_tx_fixup_rates(struct ieee80211_tx_rate *rates) { - int i; - bool finished; + bool has_rate0 = false; + int i, j; - /* Firmware is not able to mix rates with different flags */ - for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) { - if (rates[0].flags & IEEE80211_TX_RC_SHORT_GI) - rates[i].flags |= IEEE80211_TX_RC_SHORT_GI; - if (!(rates[0].flags & IEEE80211_TX_RC_SHORT_GI)) + for (i = 1, j = 1; j < IEEE80211_TX_MAX_RATES; j++) { + if (rates[j].idx == -1) + break; + /* The device use the rates in descending order, whatever the request from minstrel. + * We have to trade off here. Most important is to respect the primary rate + * requested by minstrel. So, we drops the entries with rate higher than the + * previous. + */ + if (rates[j].idx >= rates[i - 1].idx) { + rates[i - 1].count += rates[j].count; + rates[i - 1].count = min_t(u16, 15, rates[i - 1].count); + } else { + memcpy(rates + i, rates + j, sizeof(rates[i])); + if (rates[i].idx == 0) + has_rate0 = true; + /* The device apply Short GI only on the first rate */ rates[i].flags &= ~IEEE80211_TX_RC_SHORT_GI; - if (!(rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS)) - rates[i].flags &= ~IEEE80211_TX_RC_USE_RTS_CTS; - } - - /* Sort rates and remove duplicates */ - do { - finished = true; - for (i = 0; i < IEEE80211_TX_MAX_RATES - 1; i++) { - if (rates[i + 1].idx == rates[i].idx && - rates[i].idx != -1) { - rates[i].count += rates[i + 1].count; - if (rates[i].count > 15) - rates[i].count = 15; - rates[i + 1].idx = -1; - rates[i + 1].count = 0; - - finished = false; - } - if (rates[i + 1].idx > rates[i].idx) { - swap(rates[i + 1], rates[i]); - finished = false; - } + i++; } - } while (!finished); + } /* Ensure that MCS0 or 1Mbps is present at the end of the retry list */ - for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) { - if (rates[i].idx == 0) - break; - if (rates[i].idx == -1) { - rates[i].idx = 0; - rates[i].count = 8; /* == hw->max_rate_tries */ - rates[i].flags = rates[i - 1].flags & IEEE80211_TX_RC_MCS; - break; - } + if (!has_rate0 && i < IEEE80211_TX_MAX_RATES) { + rates[i].idx = 0; + rates[i].count = 8; /* == hw->max_rate_tries */ + rates[i].flags = rates[0].flags & IEEE80211_TX_RC_MCS; + i++; + } + for (; i < IEEE80211_TX_MAX_RATES; i++) { + memset(rates + i, 0, sizeof(rates[i])); + rates[i].idx = -1; } - /* All retries use long GI */ - for (i = 1; i < IEEE80211_TX_MAX_RATES; i++) - rates[i].flags &= ~IEEE80211_TX_RC_SHORT_GI; } static u8 wfx_tx_get_retry_policy_id(struct wfx_vif *wvif, struct ieee80211_tx_info *tx_info) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wwan/iosm/iosm_ipc_imem.c +++ linux-riscv-6.5.0/drivers/net/wwan/iosm/iosm_ipc_imem.c @@ -4,7 +4,6 @@ */ #include -#include #include "iosm_ipc_chnl_cfg.h" #include "iosm_ipc_devlink.h" @@ -632,11 +631,6 @@ /* Complete all memory stores after setting bit */ smp_mb__after_atomic(); - if (ipc_imem->pcie->pci->device == INTEL_CP_DEVICE_7560_ID) { - pm_runtime_mark_last_busy(ipc_imem->dev); - pm_runtime_put_autosuspend(ipc_imem->dev); - } - return; err_ipc_mux_deinit: @@ -1240,7 +1234,6 @@ /* forward MDM_NOT_READY to listeners */ ipc_uevent_send(ipc_imem->dev, UEVENT_MDM_NOT_READY); - pm_runtime_get_sync(ipc_imem->dev); hrtimer_cancel(&ipc_imem->td_alloc_timer); hrtimer_cancel(&ipc_imem->tdupdate_timer); @@ -1426,16 +1419,6 @@ set_bit(IOSM_DEVLINK_INIT, &ipc_imem->flag); } - - if (!pm_runtime_enabled(ipc_imem->dev)) - pm_runtime_enable(ipc_imem->dev); - - pm_runtime_set_autosuspend_delay(ipc_imem->dev, - IPC_MEM_AUTO_SUSPEND_DELAY_MS); - pm_runtime_use_autosuspend(ipc_imem->dev); - pm_runtime_allow(ipc_imem->dev); - pm_runtime_mark_last_busy(ipc_imem->dev); - return ipc_imem; devlink_channel_fail: ipc_devlink_deinit(ipc_imem->ipc_devlink); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wwan/iosm/iosm_ipc_imem.h +++ linux-riscv-6.5.0/drivers/net/wwan/iosm/iosm_ipc_imem.h @@ -103,8 +103,6 @@ #define FULLY_FUNCTIONAL 0 #define IOSM_DEVLINK_INIT 1 -#define IPC_MEM_AUTO_SUSPEND_DELAY_MS 5000 - /* List of the supported UL/DL pipes. */ enum ipc_mem_pipes { IPC_MEM_PIPE_0 = 0, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wwan/iosm/iosm_ipc_pcie.c +++ linux-riscv-6.5.0/drivers/net/wwan/iosm/iosm_ipc_pcie.c @@ -6,7 +6,6 @@ #include #include #include -#include #include #include "iosm_ipc_imem.h" @@ -438,8 +437,7 @@ return 0; } -static DEFINE_RUNTIME_DEV_PM_OPS(iosm_ipc_pm, ipc_pcie_suspend_cb, - ipc_pcie_resume_cb, NULL); +static SIMPLE_DEV_PM_OPS(iosm_ipc_pm, ipc_pcie_suspend_cb, ipc_pcie_resume_cb); static struct pci_driver iosm_ipc_driver = { .name = KBUILD_MODNAME, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wwan/iosm/iosm_ipc_port.c +++ linux-riscv-6.5.0/drivers/net/wwan/iosm/iosm_ipc_port.c @@ -3,8 +3,6 @@ * Copyright (C) 2020-21 Intel Corporation. */ -#include - #include "iosm_ipc_chnl_cfg.h" #include "iosm_ipc_imem_ops.h" #include "iosm_ipc_port.h" @@ -15,16 +13,12 @@ struct iosm_cdev *ipc_port = wwan_port_get_drvdata(port); int ret = 0; - pm_runtime_get_sync(ipc_port->ipc_imem->dev); ipc_port->channel = ipc_imem_sys_port_open(ipc_port->ipc_imem, ipc_port->chl_id, IPC_HP_CDEV_OPEN); if (!ipc_port->channel) ret = -EIO; - pm_runtime_mark_last_busy(ipc_port->ipc_imem->dev); - pm_runtime_put_autosuspend(ipc_port->ipc_imem->dev); - return ret; } @@ -33,24 +27,15 @@ { struct iosm_cdev *ipc_port = wwan_port_get_drvdata(port); - pm_runtime_get_sync(ipc_port->ipc_imem->dev); ipc_imem_sys_port_close(ipc_port->ipc_imem, ipc_port->channel); - pm_runtime_mark_last_busy(ipc_port->ipc_imem->dev); - pm_runtime_put_autosuspend(ipc_port->ipc_imem->dev); } /* transfer control data to modem */ static int ipc_port_ctrl_tx(struct wwan_port *port, struct sk_buff *skb) { struct iosm_cdev *ipc_port = wwan_port_get_drvdata(port); - int ret; - pm_runtime_get_sync(ipc_port->ipc_imem->dev); - ret = ipc_imem_sys_cdev_write(ipc_port, skb); - pm_runtime_mark_last_busy(ipc_port->ipc_imem->dev); - pm_runtime_put_autosuspend(ipc_port->ipc_imem->dev); - - return ret; + return ipc_imem_sys_cdev_write(ipc_port, skb); } static const struct wwan_port_ops ipc_wwan_ctrl_ops = { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wwan/iosm/iosm_ipc_trace.c +++ linux-riscv-6.5.0/drivers/net/wwan/iosm/iosm_ipc_trace.c @@ -3,9 +3,7 @@ * Copyright (C) 2020-2021 Intel Corporation. */ -#include #include - #include "iosm_ipc_trace.h" /* sub buffer size and number of sub buffer */ @@ -99,8 +97,6 @@ if (ret) return ret; - pm_runtime_get_sync(ipc_trace->ipc_imem->dev); - mutex_lock(&ipc_trace->trc_mutex); if (val == TRACE_ENABLE && ipc_trace->mode != TRACE_ENABLE) { ipc_trace->channel = ipc_imem_sys_port_open(ipc_trace->ipc_imem, @@ -121,10 +117,6 @@ ret = count; unlock: mutex_unlock(&ipc_trace->trc_mutex); - - pm_runtime_mark_last_busy(ipc_trace->ipc_imem->dev); - pm_runtime_put_autosuspend(ipc_trace->ipc_imem->dev); - return ret; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/net/wwan/iosm/iosm_ipc_wwan.c +++ linux-riscv-6.5.0/drivers/net/wwan/iosm/iosm_ipc_wwan.c @@ -6,7 +6,6 @@ #include #include #include -#include #include #include #include @@ -52,13 +51,11 @@ struct iosm_netdev_priv *priv = wwan_netdev_drvpriv(netdev); struct iosm_wwan *ipc_wwan = priv->ipc_wwan; int if_id = priv->if_id; - int ret = 0; if (if_id < IP_MUX_SESSION_START || if_id >= ARRAY_SIZE(ipc_wwan->sub_netlist)) return -EINVAL; - pm_runtime_get_sync(ipc_wwan->ipc_imem->dev); /* get channel id */ priv->ch_id = ipc_imem_sys_wwan_open(ipc_wwan->ipc_imem, if_id); @@ -66,8 +63,7 @@ dev_err(ipc_wwan->dev, "cannot connect wwan0 & id %d to the IPC mem layer", if_id); - ret = -ENODEV; - goto err_out; + return -ENODEV; } /* enable tx path, DL data may follow */ @@ -76,11 +72,7 @@ dev_dbg(ipc_wwan->dev, "Channel id %d allocated to if_id %d", priv->ch_id, priv->if_id); -err_out: - pm_runtime_mark_last_busy(ipc_wwan->ipc_imem->dev); - pm_runtime_put_autosuspend(ipc_wwan->ipc_imem->dev); - - return ret; + return 0; } /* Bring-down the wwan net link */ @@ -90,12 +82,9 @@ netif_stop_queue(netdev); - pm_runtime_get_sync(priv->ipc_wwan->ipc_imem->dev); ipc_imem_sys_wwan_close(priv->ipc_wwan->ipc_imem, priv->if_id, priv->ch_id); priv->ch_id = -1; - pm_runtime_mark_last_busy(priv->ipc_wwan->ipc_imem->dev); - pm_runtime_put_autosuspend(priv->ipc_wwan->ipc_imem->dev); return 0; } @@ -117,7 +106,6 @@ if_id >= ARRAY_SIZE(ipc_wwan->sub_netlist)) return -EINVAL; - pm_runtime_get(ipc_wwan->ipc_imem->dev); /* Send the SKB to device for transmission */ ret = ipc_imem_sys_wwan_transmit(ipc_wwan->ipc_imem, if_id, priv->ch_id, skb); @@ -131,14 +119,9 @@ ret = NETDEV_TX_BUSY; dev_err(ipc_wwan->dev, "unable to push packets"); } else { - pm_runtime_mark_last_busy(ipc_wwan->ipc_imem->dev); - pm_runtime_put_autosuspend(ipc_wwan->ipc_imem->dev); goto exit; } - pm_runtime_mark_last_busy(ipc_wwan->ipc_imem->dev); - pm_runtime_put_autosuspend(ipc_wwan->ipc_imem->dev); - return ret; exit: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/nvdimm/of_pmem.c +++ linux-riscv-6.5.0/drivers/nvdimm/of_pmem.c @@ -30,7 +30,13 @@ if (!priv) return -ENOMEM; - priv->bus_desc.provider_name = kstrdup(pdev->name, GFP_KERNEL); + priv->bus_desc.provider_name = devm_kstrdup(&pdev->dev, pdev->name, + GFP_KERNEL); + if (!priv->bus_desc.provider_name) { + kfree(priv); + return -ENOMEM; + } + priv->bus_desc.module = THIS_MODULE; priv->bus_desc.of_node = np; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/nvdimm/region_devs.c +++ linux-riscv-6.5.0/drivers/nvdimm/region_devs.c @@ -938,7 +938,8 @@ { unsigned int cpu, lane; - cpu = get_cpu(); + migrate_disable(); + cpu = smp_processor_id(); if (nd_region->num_lanes < nr_cpu_ids) { struct nd_percpu_lane *ndl_lock, *ndl_count; @@ -957,16 +958,15 @@ void nd_region_release_lane(struct nd_region *nd_region, unsigned int lane) { if (nd_region->num_lanes < nr_cpu_ids) { - unsigned int cpu = get_cpu(); + unsigned int cpu = smp_processor_id(); struct nd_percpu_lane *ndl_lock, *ndl_count; ndl_count = per_cpu_ptr(nd_region->lane, cpu); ndl_lock = per_cpu_ptr(nd_region->lane, lane); if (--ndl_count->count == 0) spin_unlock(&ndl_lock->lock); - put_cpu(); } - put_cpu(); + migrate_enable(); } EXPORT_SYMBOL(nd_region_release_lane); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/nvme/host/auth.c +++ linux-riscv-6.5.0/drivers/nvme/host/auth.c @@ -341,7 +341,7 @@ struct nvmf_auth_dhchap_success1_data *data = chap->buf; size_t size = sizeof(*data); - if (chap->ctrl_key) + if (chap->s2) size += chap->hash_len; if (size > CHAP_BUF_SIZE) { @@ -825,7 +825,7 @@ goto fail2; } - if (chap->ctrl_key) { + if (chap->s2) { /* DH-HMAC-CHAP Step 5: send success2 */ dev_dbg(ctrl->device, "%s: qid %d send success2\n", __func__, chap->qid); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/nvme/host/fabrics.c +++ linux-riscv-6.5.0/drivers/nvme/host/fabrics.c @@ -645,8 +645,10 @@ { NVMF_OPT_TOS, "tos=%d" }, { NVMF_OPT_FAIL_FAST_TMO, "fast_io_fail_tmo=%d" }, { NVMF_OPT_DISCOVERY, "discovery" }, +#ifdef CONFIG_NVME_HOST_AUTH { NVMF_OPT_DHCHAP_SECRET, "dhchap_secret=%s" }, { NVMF_OPT_DHCHAP_CTRL_SECRET, "dhchap_ctrl_secret=%s" }, +#endif { NVMF_OPT_ERR, NULL } }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/nvme/host/ioctl.c +++ linux-riscv-6.5.0/drivers/nvme/host/ioctl.c @@ -108,9 +108,13 @@ if (!buf) goto out; - ret = -EFAULT; - if ((req_op(req) == REQ_OP_DRV_OUT) && copy_from_user(buf, ubuf, len)) - goto out_free_meta; + if (req_op(req) == REQ_OP_DRV_OUT) { + ret = -EFAULT; + if (copy_from_user(buf, ubuf, len)) + goto out_free_meta; + } else { + memset(buf, 0, len); + } bip = bio_integrity_alloc(bio, GFP_KERNEL, 1); if (IS_ERR(bip)) { @@ -507,10 +511,13 @@ struct nvme_uring_cmd_pdu *pdu = nvme_uring_cmd_pdu(ioucmd); req->bio = pdu->bio; - if (nvme_req(req)->flags & NVME_REQ_CANCELLED) + if (nvme_req(req)->flags & NVME_REQ_CANCELLED) { pdu->nvme_status = -EINTR; - else + } else { pdu->nvme_status = nvme_req(req)->status; + if (!pdu->nvme_status) + pdu->nvme_status = blk_status_to_errno(err); + } pdu->u.result = le64_to_cpu(nvme_req(req)->result.u64); /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/nvme/host/nvme.h +++ linux-riscv-6.5.0/drivers/nvme/host/nvme.h @@ -156,6 +156,11 @@ * No temperature thresholds for channels other than 0 (Composite). */ NVME_QUIRK_NO_SECONDARY_TEMP_THRESH = (1 << 19), + + /* + * Disables simple suspend/resume path. + */ + NVME_QUIRK_FORCE_NO_SIMPLE_SUSPEND = (1 << 20), }; /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/nvme/host/rdma.c +++ linux-riscv-6.5.0/drivers/nvme/host/rdma.c @@ -638,6 +638,9 @@ static void nvme_rdma_stop_queue(struct nvme_rdma_queue *queue) { + if (!test_bit(NVME_RDMA_Q_ALLOCATED, &queue->flags)) + return; + mutex_lock(&queue->queue_lock); if (test_and_clear_bit(NVME_RDMA_Q_LIVE, &queue->flags)) __nvme_rdma_stop_queue(queue); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/nvme/target/fabrics-cmd-auth.c +++ linux-riscv-6.5.0/drivers/nvme/target/fabrics-cmd-auth.c @@ -333,19 +333,21 @@ __func__, ctrl->cntlid, req->sq->qid, status, req->error_loc); req->cqe->result.u64 = 0; - nvmet_req_complete(req, status); if (req->sq->dhchap_step != NVME_AUTH_DHCHAP_MESSAGE_SUCCESS2 && req->sq->dhchap_step != NVME_AUTH_DHCHAP_MESSAGE_FAILURE2) { unsigned long auth_expire_secs = ctrl->kato ? ctrl->kato : 120; mod_delayed_work(system_wq, &req->sq->auth_expired_work, auth_expire_secs * HZ); - return; + goto complete; } /* Final states, clear up variables */ nvmet_auth_sq_free(req->sq); if (req->sq->dhchap_step == NVME_AUTH_DHCHAP_MESSAGE_FAILURE2) nvmet_ctrl_fatal_error(ctrl); + +complete: + nvmet_req_complete(req, status); } static int nvmet_auth_challenge(struct nvmet_req *req, void *d, int al) @@ -514,11 +516,12 @@ kfree(d); done: req->cqe->result.u64 = 0; - nvmet_req_complete(req, status); + if (req->sq->dhchap_step == NVME_AUTH_DHCHAP_MESSAGE_SUCCESS2) nvmet_auth_sq_free(req->sq); else if (req->sq->dhchap_step == NVME_AUTH_DHCHAP_MESSAGE_FAILURE1) { nvmet_auth_sq_free(req->sq); nvmet_ctrl_fatal_error(ctrl); } + nvmet_req_complete(req, status); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/nvme/target/fabrics-cmd.c +++ linux-riscv-6.5.0/drivers/nvme/target/fabrics-cmd.c @@ -244,6 +244,8 @@ goto out; } + d->subsysnqn[NVMF_NQN_FIELD_LEN - 1] = '\0'; + d->hostnqn[NVMF_NQN_FIELD_LEN - 1] = '\0'; status = nvmet_alloc_ctrl(d->subsysnqn, d->hostnqn, req, le32_to_cpu(c->kato), &ctrl); if (status) @@ -313,6 +315,8 @@ goto out; } + d->subsysnqn[NVMF_NQN_FIELD_LEN - 1] = '\0'; + d->hostnqn[NVMF_NQN_FIELD_LEN - 1] = '\0'; ctrl = nvmet_ctrl_find_get(d->subsysnqn, d->hostnqn, le16_to_cpu(d->cntlid), req); if (!ctrl) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/nvmem/imx-ocotp.c +++ linux-riscv-6.5.0/drivers/nvmem/imx-ocotp.c @@ -499,7 +499,7 @@ }; static const struct ocotp_params imx6sll_params = { - .nregs = 128, + .nregs = 80, .bank_address_words = 0, .set_timing = imx_ocotp_set_imx6_timing, .ctrl = IMX_OCOTP_BM_CTRL_DEFAULT, @@ -513,14 +513,14 @@ }; static const struct ocotp_params imx6ul_params = { - .nregs = 128, + .nregs = 144, .bank_address_words = 0, .set_timing = imx_ocotp_set_imx6_timing, .ctrl = IMX_OCOTP_BM_CTRL_DEFAULT, }; static const struct ocotp_params imx6ull_params = { - .nregs = 64, + .nregs = 80, .bank_address_words = 0, .set_timing = imx_ocotp_set_imx6_timing, .ctrl = IMX_OCOTP_BM_CTRL_DEFAULT, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/of/address.c +++ linux-riscv-6.5.0/drivers/of/address.c @@ -100,6 +100,32 @@ return IORESOURCE_MEM; } +static u64 of_bus_default_flags_map(__be32 *addr, const __be32 *range, int na, + int ns, int pna) +{ + u64 cp, s, da; + + /* Check that flags match */ + if (*addr != *range) + return OF_BAD_ADDR; + + /* Read address values, skipping high cell */ + cp = of_read_number(range + 1, na - 1); + s = of_read_number(range + na + pna, ns); + da = of_read_number(addr + 1, na - 1); + + pr_debug("default flags map, cp=%llx, s=%llx, da=%llx\n", cp, s, da); + + if (da < cp || da >= (cp + s)) + return OF_BAD_ADDR; + return da - cp; +} + +static int of_bus_default_flags_translate(__be32 *addr, u64 offset, int na) +{ + /* Keep "flags" part (high cell) in translated address */ + return of_bus_default_translate(addr + 1, offset, na - 1); +} #ifdef CONFIG_PCI static unsigned int of_bus_pci_get_flags(const __be32 *addr) @@ -374,8 +400,8 @@ .addresses = "reg", .match = of_bus_default_flags_match, .count_cells = of_bus_default_count_cells, - .map = of_bus_default_map, - .translate = of_bus_default_translate, + .map = of_bus_default_flags_map, + .translate = of_bus_default_flags_translate, .has_flags = true, .get_flags = of_bus_default_flags_get_flags, }, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/parisc/power.c +++ linux-riscv-6.5.0/drivers/parisc/power.c @@ -197,6 +197,14 @@ .priority = INT_MAX, }; +/* qemu soft power-off function */ +static int qemu_power_off(struct sys_off_data *data) +{ + /* this turns the system off via SeaBIOS */ + gsc_writel(0, (unsigned long) data->cb_data); + pdc_soft_power_button(1); + return NOTIFY_DONE; +} static int __init power_init(void) { @@ -226,7 +234,13 @@ soft_power_reg); } - power_task = kthread_run(kpowerswd, (void*)soft_power_reg, KTHREAD_NAME); + power_task = NULL; + if (running_on_qemu && soft_power_reg) + register_sys_off_handler(SYS_OFF_MODE_POWER_OFF, SYS_OFF_PRIO_DEFAULT, + qemu_power_off, (void *)soft_power_reg); + else + power_task = kthread_run(kpowerswd, (void*)soft_power_reg, + KTHREAD_NAME); if (IS_ERR(power_task)) { printk(KERN_ERR DRIVER_NAME ": thread creation failed. Driver not loaded.\n"); pdc_soft_power_button(0); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/parport/parport_pc.c +++ linux-riscv-6.5.0/drivers/parport/parport_pc.c @@ -2657,6 +2657,8 @@ netmos_9865, quatech_sppxp100, wch_ch382l, + brainboxes_uc146, + brainboxes_px203, }; @@ -2735,6 +2737,8 @@ /* netmos_9865 */ { 1, { { 0, -1 }, } }, /* quatech_sppxp100 */ { 1, { { 0, 1 }, } }, /* wch_ch382l */ { 1, { { 2, -1 }, } }, + /* brainboxes_uc146 */ { 1, { { 3, -1 }, } }, + /* brainboxes_px203 */ { 1, { { 0, -1 }, } }, }; static const struct pci_device_id parport_pc_pci_tbl[] = { @@ -2828,6 +2832,23 @@ PCI_ANY_ID, PCI_ANY_ID, 0, 0, quatech_sppxp100 }, /* WCH CH382L PCI-E single parallel port card */ { 0x1c00, 0x3050, 0x1c00, 0x3050, 0, 0, wch_ch382l }, + /* Brainboxes IX-500/550 */ + { PCI_VENDOR_ID_INTASHIELD, 0x402a, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_pcie_pport }, + /* Brainboxes UC-146/UC-157 */ + { PCI_VENDOR_ID_INTASHIELD, 0x0be1, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, brainboxes_uc146 }, + { PCI_VENDOR_ID_INTASHIELD, 0x0be2, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, brainboxes_uc146 }, + /* Brainboxes PX-146/PX-257 */ + { PCI_VENDOR_ID_INTASHIELD, 0x401c, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_pcie_pport }, + /* Brainboxes PX-203 */ + { PCI_VENDOR_ID_INTASHIELD, 0x4007, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, brainboxes_px203 }, + /* Brainboxes PX-475 */ + { PCI_VENDOR_ID_INTASHIELD, 0x401f, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, oxsemi_pcie_pport }, { 0, } /* terminate list */ }; MODULE_DEVICE_TABLE(pci, parport_pc_pci_tbl); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/pci/controller/dwc/pci-exynos.c +++ linux-riscv-6.5.0/drivers/pci/controller/dwc/pci-exynos.c @@ -375,7 +375,7 @@ return ret; } -static int __exit exynos_pcie_remove(struct platform_device *pdev) +static int exynos_pcie_remove(struct platform_device *pdev) { struct exynos_pcie *ep = platform_get_drvdata(pdev); @@ -431,7 +431,7 @@ static struct platform_driver exynos_pcie_driver = { .probe = exynos_pcie_probe, - .remove = __exit_p(exynos_pcie_remove), + .remove = exynos_pcie_remove, .driver = { .name = "exynos-pcie", .of_match_table = exynos_pcie_of_match, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/pci/controller/dwc/pci-keystone.c +++ linux-riscv-6.5.0/drivers/pci/controller/dwc/pci-keystone.c @@ -1101,7 +1101,7 @@ { }, }; -static int __init ks_pcie_probe(struct platform_device *pdev) +static int ks_pcie_probe(struct platform_device *pdev) { const struct dw_pcie_host_ops *host_ops; const struct dw_pcie_ep_ops *ep_ops; @@ -1303,7 +1303,7 @@ return ret; } -static int __exit ks_pcie_remove(struct platform_device *pdev) +static int ks_pcie_remove(struct platform_device *pdev) { struct keystone_pcie *ks_pcie = platform_get_drvdata(pdev); struct device_link **link = ks_pcie->link; @@ -1319,9 +1319,9 @@ return 0; } -static struct platform_driver ks_pcie_driver __refdata = { +static struct platform_driver ks_pcie_driver = { .probe = ks_pcie_probe, - .remove = __exit_p(ks_pcie_remove), + .remove = ks_pcie_remove, .driver = { .name = "keystone-pcie", .of_match_table = ks_pcie_of_match, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/pci/controller/dwc/pcie-designware.c +++ linux-riscv-6.5.0/drivers/pci/controller/dwc/pcie-designware.c @@ -732,6 +732,53 @@ } +static void dw_pcie_link_set_max_link_width(struct dw_pcie *pci, u32 num_lanes) +{ + u32 lnkcap, lwsc, plc; + u8 cap; + + if (!num_lanes) + return; + + /* Set the number of lanes */ + plc = dw_pcie_readl_dbi(pci, PCIE_PORT_LINK_CONTROL); + plc &= ~PORT_LINK_FAST_LINK_MODE; + plc &= ~PORT_LINK_MODE_MASK; + + /* Set link width speed control register */ + lwsc = dw_pcie_readl_dbi(pci, PCIE_LINK_WIDTH_SPEED_CONTROL); + lwsc &= ~PORT_LOGIC_LINK_WIDTH_MASK; + switch (num_lanes) { + case 1: + plc |= PORT_LINK_MODE_1_LANES; + lwsc |= PORT_LOGIC_LINK_WIDTH_1_LANES; + break; + case 2: + plc |= PORT_LINK_MODE_2_LANES; + lwsc |= PORT_LOGIC_LINK_WIDTH_2_LANES; + break; + case 4: + plc |= PORT_LINK_MODE_4_LANES; + lwsc |= PORT_LOGIC_LINK_WIDTH_4_LANES; + break; + case 8: + plc |= PORT_LINK_MODE_8_LANES; + lwsc |= PORT_LOGIC_LINK_WIDTH_8_LANES; + break; + default: + dev_err(pci->dev, "num-lanes %u: invalid value\n", num_lanes); + return; + } + dw_pcie_writel_dbi(pci, PCIE_PORT_LINK_CONTROL, plc); + dw_pcie_writel_dbi(pci, PCIE_LINK_WIDTH_SPEED_CONTROL, lwsc); + + cap = dw_pcie_find_capability(pci, PCI_CAP_ID_EXP); + lnkcap = dw_pcie_readl_dbi(pci, cap + PCI_EXP_LNKCAP); + lnkcap &= ~PCI_EXP_LNKCAP_MLW; + lnkcap |= FIELD_PREP(PCI_EXP_LNKCAP_MLW, num_lanes); + dw_pcie_writel_dbi(pci, cap + PCI_EXP_LNKCAP, lnkcap); +} + void dw_pcie_iatu_detect(struct dw_pcie *pci) { int max_region, ob, ib; @@ -1013,49 +1060,5 @@ val |= PORT_LINK_DLL_LINK_EN; dw_pcie_writel_dbi(pci, PCIE_PORT_LINK_CONTROL, val); - if (!pci->num_lanes) { - dev_dbg(pci->dev, "Using h/w default number of lanes\n"); - return; - } - - /* Set the number of lanes */ - val &= ~PORT_LINK_FAST_LINK_MODE; - val &= ~PORT_LINK_MODE_MASK; - switch (pci->num_lanes) { - case 1: - val |= PORT_LINK_MODE_1_LANES; - break; - case 2: - val |= PORT_LINK_MODE_2_LANES; - break; - case 4: - val |= PORT_LINK_MODE_4_LANES; - break; - case 8: - val |= PORT_LINK_MODE_8_LANES; - break; - default: - dev_err(pci->dev, "num-lanes %u: invalid value\n", pci->num_lanes); - return; - } - dw_pcie_writel_dbi(pci, PCIE_PORT_LINK_CONTROL, val); - - /* Set link width speed control register */ - val = dw_pcie_readl_dbi(pci, PCIE_LINK_WIDTH_SPEED_CONTROL); - val &= ~PORT_LOGIC_LINK_WIDTH_MASK; - switch (pci->num_lanes) { - case 1: - val |= PORT_LOGIC_LINK_WIDTH_1_LANES; - break; - case 2: - val |= PORT_LOGIC_LINK_WIDTH_2_LANES; - break; - case 4: - val |= PORT_LOGIC_LINK_WIDTH_4_LANES; - break; - case 8: - val |= PORT_LOGIC_LINK_WIDTH_8_LANES; - break; - } - dw_pcie_writel_dbi(pci, PCIE_LINK_WIDTH_SPEED_CONTROL, val); + dw_pcie_link_set_max_link_width(pci, pci->num_lanes); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/pci/controller/dwc/pcie-kirin.c +++ linux-riscv-6.5.0/drivers/pci/controller/dwc/pcie-kirin.c @@ -742,7 +742,7 @@ return ret; } -static int __exit kirin_pcie_remove(struct platform_device *pdev) +static int kirin_pcie_remove(struct platform_device *pdev) { struct kirin_pcie *kirin_pcie = platform_get_drvdata(pdev); @@ -819,7 +819,7 @@ static struct platform_driver kirin_pcie_driver = { .probe = kirin_pcie_probe, - .remove = __exit_p(kirin_pcie_remove), + .remove = kirin_pcie_remove, .driver = { .name = "kirin-pcie", .of_match_table = kirin_pcie_match, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/pci/controller/pci-mvebu.c +++ linux-riscv-6.5.0/drivers/pci/controller/pci-mvebu.c @@ -265,7 +265,7 @@ */ lnkcap = mvebu_readl(port, PCIE_CAP_PCIEXP + PCI_EXP_LNKCAP); lnkcap &= ~PCI_EXP_LNKCAP_MLW; - lnkcap |= (port->is_x4 ? 4 : 1) << 4; + lnkcap |= FIELD_PREP(PCI_EXP_LNKCAP_MLW, port->is_x4 ? 4 : 1); mvebu_writel(port, lnkcap, PCIE_CAP_PCIEXP + PCI_EXP_LNKCAP); /* Disable Root Bridge I/O space, memory space and bus mastering. */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/pci/endpoint/pci-epc-core.c +++ linux-riscv-6.5.0/drivers/pci/endpoint/pci-epc-core.c @@ -870,7 +870,6 @@ put_dev: put_device(&epc->dev); - kfree(epc); err_ret: return ERR_PTR(ret); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/pci/pci-acpi.c +++ linux-riscv-6.5.0/drivers/pci/pci-acpi.c @@ -911,7 +911,7 @@ { int acpi_state, d_max; - if (pdev->no_d3cold) + if (pdev->no_d3cold || !pdev->d3cold_allowed) d_max = ACPI_STATE_D3_HOT; else d_max = ACPI_STATE_D3_COLD; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/pci/pci-sysfs.c +++ linux-riscv-6.5.0/drivers/pci/pci-sysfs.c @@ -12,7 +12,7 @@ * Modeled after usb's driverfs.c */ - +#include #include #include #include @@ -230,8 +230,7 @@ if (err) return -EINVAL; - return sysfs_emit(buf, "%u\n", - (linkstat & PCI_EXP_LNKSTA_NLW) >> PCI_EXP_LNKSTA_NLW_SHIFT); + return sysfs_emit(buf, "%u\n", FIELD_GET(PCI_EXP_LNKSTA_NLW, linkstat)); } static DEVICE_ATTR_RO(current_link_width); @@ -530,10 +529,7 @@ return -EINVAL; pdev->d3cold_allowed = !!val; - if (pdev->d3cold_allowed) - pci_d3cold_enable(pdev); - else - pci_d3cold_disable(pdev); + pci_bridge_d3_update(pdev); pm_runtime_resume(dev); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/pcmcia/cs.c +++ linux-riscv-6.5.0/drivers/pcmcia/cs.c @@ -605,6 +605,7 @@ dev_warn(&skt->dev, "PCMCIA: unable to register socket\n"); skt->thread = NULL; complete(&skt->thread_done); + put_device(&skt->dev); return 0; } ret = pccard_sysfs_add_socket(&skt->dev); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/pcmcia/ds.c +++ linux-riscv-6.5.0/drivers/pcmcia/ds.c @@ -513,9 +513,6 @@ /* by default don't allow DMA */ p_dev->dma_mask = 0; p_dev->dev.dma_mask = &p_dev->dma_mask; - dev_set_name(&p_dev->dev, "%d.%d", p_dev->socket->sock, p_dev->device_no); - if (!dev_name(&p_dev->dev)) - goto err_free; p_dev->devname = kasprintf(GFP_KERNEL, "pcmcia%s", dev_name(&p_dev->dev)); if (!p_dev->devname) goto err_free; @@ -573,8 +570,15 @@ pcmcia_device_query(p_dev); - if (device_register(&p_dev->dev)) - goto err_unreg; + dev_set_name(&p_dev->dev, "%d.%d", p_dev->socket->sock, p_dev->device_no); + if (device_register(&p_dev->dev)) { + mutex_lock(&s->ops_mutex); + list_del(&p_dev->socket_device_list); + s->device_count--; + mutex_unlock(&s->ops_mutex); + put_device(&p_dev->dev); + return NULL; + } return p_dev; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/perf/arm_cspmu/arm_cspmu.c +++ linux-riscv-6.5.0/drivers/perf/arm_cspmu/arm_cspmu.c @@ -635,6 +635,9 @@ cspmu = to_arm_cspmu(event->pmu); + if (event->attr.type != event->pmu->type) + return -ENOENT; + /* * Following other "uncore" PMUs, we do not support sampling mode or * attach to a task (per-process mode). only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/perf/arm_pmuv3.c +++ linux-riscv-6.5.0/drivers/perf/arm_pmuv3.c @@ -428,12 +428,12 @@ #define ARMV8_IDX_TO_COUNTER(x) \ (((x) - ARMV8_IDX_COUNTER0) & ARMV8_PMU_COUNTER_MASK) -static inline u32 armv8pmu_pmcr_read(void) +static inline u64 armv8pmu_pmcr_read(void) { return read_pmcr(); } -static inline void armv8pmu_pmcr_write(u32 val) +static inline void armv8pmu_pmcr_write(u64 val) { val &= ARMV8_PMU_PMCR_MASK; isb(); @@ -978,7 +978,7 @@ static void armv8pmu_reset(void *info) { struct arm_pmu *cpu_pmu = (struct arm_pmu *)info; - u32 pmcr; + u64 pmcr; /* The counter and interrupt enable registers are unknown at reset. */ armv8pmu_disable_counter(U32_MAX); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/perf/hisilicon/hisi_pcie_pmu.c +++ linux-riscv-6.5.0/drivers/perf/hisilicon/hisi_pcie_pmu.c @@ -353,6 +353,10 @@ struct hisi_pcie_pmu *pcie_pmu = to_pcie_pmu(event->pmu); struct hw_perf_event *hwc = &event->hw; + /* Check the type first before going on, otherwise it's not our event */ + if (event->attr.type != event->pmu->type) + return -ENOENT; + event->cpu = pcie_pmu->on_cpu; if (EXT_COUNTER_IS_USED(hisi_pcie_get_event(event))) @@ -360,9 +364,6 @@ else hwc->event_base = HISI_PCIE_CNT; - if (event->attr.type != event->pmu->type) - return -ENOENT; - /* Sampling is not supported. */ if (is_sampling_event(event) || event->attach_state & PERF_ATTACH_TASK) return -EOPNOTSUPP; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c +++ linux-riscv-6.5.0/drivers/perf/hisilicon/hisi_uncore_pa_pmu.c @@ -505,8 +505,8 @@ ret = perf_pmu_register(&pa_pmu->pmu, name, -1); if (ret) { dev_err(pa_pmu->dev, "PMU register failed, ret = %d\n", ret); - cpuhp_state_remove_instance(CPUHP_AP_PERF_ARM_HISI_PA_ONLINE, - &pa_pmu->node); + cpuhp_state_remove_instance_nocalls(CPUHP_AP_PERF_ARM_HISI_PA_ONLINE, + &pa_pmu->node); return ret; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c +++ linux-riscv-6.5.0/drivers/perf/hisilicon/hisi_uncore_sllc_pmu.c @@ -450,8 +450,8 @@ ret = perf_pmu_register(&sllc_pmu->pmu, name, -1); if (ret) { dev_err(sllc_pmu->dev, "PMU register failed, ret = %d\n", ret); - cpuhp_state_remove_instance(CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE, - &sllc_pmu->node); + cpuhp_state_remove_instance_nocalls(CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE, + &sllc_pmu->node); return ret; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/perf/hisilicon/hns3_pmu.c +++ linux-riscv-6.5.0/drivers/perf/hisilicon/hns3_pmu.c @@ -1556,8 +1556,8 @@ ret = perf_pmu_register(&hns3_pmu->pmu, hns3_pmu->pmu.name, -1); if (ret) { pci_err(pdev, "failed to register perf PMU, ret = %d.\n", ret); - cpuhp_state_remove_instance(CPUHP_AP_PERF_ARM_HNS3_PMU_ONLINE, - &hns3_pmu->node); + cpuhp_state_remove_instance_nocalls(CPUHP_AP_PERF_ARM_HNS3_PMU_ONLINE, + &hns3_pmu->node); } return ret; @@ -1568,8 +1568,8 @@ struct hns3_pmu *hns3_pmu = pci_get_drvdata(pdev); perf_pmu_unregister(&hns3_pmu->pmu); - cpuhp_state_remove_instance(CPUHP_AP_PERF_ARM_HNS3_PMU_ONLINE, - &hns3_pmu->node); + cpuhp_state_remove_instance_nocalls(CPUHP_AP_PERF_ARM_HNS3_PMU_ONLINE, + &hns3_pmu->node); } static int hns3_pmu_init_dev(struct pci_dev *pdev) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/perf/riscv_pmu_sbi.c +++ linux-riscv-6.5.0/drivers/perf/riscv_pmu_sbi.c @@ -629,6 +629,11 @@ /* Firmware counter don't support overflow yet */ fidx = find_first_bit(cpu_hw_evt->used_hw_ctrs, RISCV_MAX_COUNTERS); + if (fidx == RISCV_MAX_COUNTERS) { + csr_clear(CSR_SIP, BIT(riscv_pmu_irq_num)); + return IRQ_NONE; + } + event = cpu_hw_evt->events[fidx]; if (!event) { csr_clear(CSR_SIP, BIT(riscv_pmu_irq_num)); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/phy/motorola/phy-mapphone-mdm6600.c +++ linux-riscv-6.5.0/drivers/phy/motorola/phy-mapphone-mdm6600.c @@ -122,16 +122,10 @@ { struct phy_mdm6600 *ddata = phy_get_drvdata(x); struct gpio_desc *enable_gpio = ddata->ctrl_gpios[PHY_MDM6600_ENABLE]; - int error; if (!ddata->enabled) return -ENODEV; - error = pinctrl_pm_select_default_state(ddata->dev); - if (error) - dev_warn(ddata->dev, "%s: error with default_state: %i\n", - __func__, error); - gpiod_set_value_cansleep(enable_gpio, 1); /* Allow aggressive PM for USB, it's only needed for n_gsm port */ @@ -160,11 +154,6 @@ gpiod_set_value_cansleep(enable_gpio, 0); - error = pinctrl_pm_select_sleep_state(ddata->dev); - if (error) - dev_warn(ddata->dev, "%s: error with sleep_state: %i\n", - __func__, error); - return 0; } @@ -456,6 +445,7 @@ { struct gpio_desc *reset_gpio = ddata->ctrl_gpios[PHY_MDM6600_RESET]; + int error; ddata->enabled = false; phy_mdm6600_cmd(ddata, PHY_MDM6600_CMD_BP_SHUTDOWN_REQ); @@ -471,6 +461,17 @@ } else { dev_err(ddata->dev, "Timed out powering down\n"); } + + /* + * Keep reset gpio high with padconf internal pull-up resistor to + * prevent modem from waking up during deeper SoC idle states. The + * gpio bank lines can have glitches if not in the always-on wkup + * domain. + */ + error = pinctrl_pm_select_sleep_state(ddata->dev); + if (error) + dev_warn(ddata->dev, "%s: error with sleep_state: %i\n", + __func__, error); } static void phy_mdm6600_deferred_power_on(struct work_struct *work) @@ -571,12 +572,6 @@ ddata->dev = &pdev->dev; platform_set_drvdata(pdev, ddata); - /* Active state selected in phy_mdm6600_power_on() */ - error = pinctrl_pm_select_sleep_state(ddata->dev); - if (error) - dev_warn(ddata->dev, "%s: error with sleep_state: %i\n", - __func__, error); - error = phy_mdm6600_init_lines(ddata); if (error) return error; @@ -627,10 +622,12 @@ pm_runtime_put_autosuspend(ddata->dev); cleanup: - if (error < 0) + if (error < 0) { phy_mdm6600_device_power_off(ddata); - pm_runtime_disable(ddata->dev); - pm_runtime_dont_use_autosuspend(ddata->dev); + pm_runtime_disable(ddata->dev); + pm_runtime_dont_use_autosuspend(ddata->dev); + } + return error; } @@ -639,6 +636,7 @@ struct phy_mdm6600 *ddata = platform_get_drvdata(pdev); struct gpio_desc *reset_gpio = ddata->ctrl_gpios[PHY_MDM6600_RESET]; + pm_runtime_get_noresume(ddata->dev); pm_runtime_dont_use_autosuspend(ddata->dev); pm_runtime_put_sync(ddata->dev); pm_runtime_disable(ddata->dev); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c +++ linux-riscv-6.5.0/drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c @@ -25,23 +25,73 @@ #define EUSB2_FORCE_VAL_5 0xeD #define V_CLK_19P2M_EN BIT(6) +#define EUSB2_TUNE_USB2_CROSSOVER 0x50 #define EUSB2_TUNE_IUSB2 0x51 +#define EUSB2_TUNE_RES_FSDIF 0x52 +#define EUSB2_TUNE_HSDISC 0x53 #define EUSB2_TUNE_SQUELCH_U 0x54 +#define EUSB2_TUNE_USB2_SLEW 0x55 +#define EUSB2_TUNE_USB2_EQU 0x56 #define EUSB2_TUNE_USB2_PREEM 0x57 +#define EUSB2_TUNE_USB2_HS_COMP_CUR 0x58 +#define EUSB2_TUNE_EUSB_SLEW 0x59 +#define EUSB2_TUNE_EUSB_EQU 0x5A +#define EUSB2_TUNE_EUSB_HS_COMP_CUR 0x5B -#define QCOM_EUSB2_REPEATER_INIT_CFG(o, v) \ +#define QCOM_EUSB2_REPEATER_INIT_CFG(r, v) \ { \ - .offset = o, \ + .reg = r, \ .val = v, \ } -struct eusb2_repeater_init_tbl { - unsigned int offset; - unsigned int val; +enum reg_fields { + F_TUNE_EUSB_HS_COMP_CUR, + F_TUNE_EUSB_EQU, + F_TUNE_EUSB_SLEW, + F_TUNE_USB2_HS_COMP_CUR, + F_TUNE_USB2_PREEM, + F_TUNE_USB2_EQU, + F_TUNE_USB2_SLEW, + F_TUNE_SQUELCH_U, + F_TUNE_HSDISC, + F_TUNE_RES_FSDIF, + F_TUNE_IUSB2, + F_TUNE_USB2_CROSSOVER, + F_NUM_TUNE_FIELDS, + + F_FORCE_VAL_5 = F_NUM_TUNE_FIELDS, + F_FORCE_EN_5, + + F_EN_CTL1, + + F_RPTR_STATUS, + F_NUM_FIELDS, +}; + +static struct reg_field eusb2_repeater_tune_reg_fields[F_NUM_FIELDS] = { + [F_TUNE_EUSB_HS_COMP_CUR] = REG_FIELD(EUSB2_TUNE_EUSB_HS_COMP_CUR, 0, 1), + [F_TUNE_EUSB_EQU] = REG_FIELD(EUSB2_TUNE_EUSB_EQU, 0, 1), + [F_TUNE_EUSB_SLEW] = REG_FIELD(EUSB2_TUNE_EUSB_SLEW, 0, 1), + [F_TUNE_USB2_HS_COMP_CUR] = REG_FIELD(EUSB2_TUNE_USB2_HS_COMP_CUR, 0, 1), + [F_TUNE_USB2_PREEM] = REG_FIELD(EUSB2_TUNE_USB2_PREEM, 0, 2), + [F_TUNE_USB2_EQU] = REG_FIELD(EUSB2_TUNE_USB2_EQU, 0, 1), + [F_TUNE_USB2_SLEW] = REG_FIELD(EUSB2_TUNE_USB2_SLEW, 0, 1), + [F_TUNE_SQUELCH_U] = REG_FIELD(EUSB2_TUNE_SQUELCH_U, 0, 2), + [F_TUNE_HSDISC] = REG_FIELD(EUSB2_TUNE_HSDISC, 0, 2), + [F_TUNE_RES_FSDIF] = REG_FIELD(EUSB2_TUNE_RES_FSDIF, 0, 2), + [F_TUNE_IUSB2] = REG_FIELD(EUSB2_TUNE_IUSB2, 0, 3), + [F_TUNE_USB2_CROSSOVER] = REG_FIELD(EUSB2_TUNE_USB2_CROSSOVER, 0, 2), + + [F_FORCE_VAL_5] = REG_FIELD(EUSB2_FORCE_VAL_5, 0, 7), + [F_FORCE_EN_5] = REG_FIELD(EUSB2_FORCE_EN_5, 0, 7), + + [F_EN_CTL1] = REG_FIELD(EUSB2_EN_CTL1, 0, 7), + + [F_RPTR_STATUS] = REG_FIELD(EUSB2_RPTR_STATUS, 0, 7), }; struct eusb2_repeater_cfg { - const struct eusb2_repeater_init_tbl *init_tbl; + const u32 *init_tbl; int init_tbl_num; const char * const *vreg_list; int num_vregs; @@ -49,11 +99,10 @@ struct eusb2_repeater { struct device *dev; - struct regmap *regmap; + struct regmap_field *regs[F_NUM_FIELDS]; struct phy *phy; struct regulator_bulk_data *vregs; const struct eusb2_repeater_cfg *cfg; - u16 base; enum phy_mode mode; }; @@ -61,10 +110,10 @@ "vdd18", "vdd3", }; -static const struct eusb2_repeater_init_tbl pm8550b_init_tbl[] = { - QCOM_EUSB2_REPEATER_INIT_CFG(EUSB2_TUNE_IUSB2, 0x8), - QCOM_EUSB2_REPEATER_INIT_CFG(EUSB2_TUNE_SQUELCH_U, 0x3), - QCOM_EUSB2_REPEATER_INIT_CFG(EUSB2_TUNE_USB2_PREEM, 0x5), +static const u32 pm8550b_init_tbl[F_NUM_TUNE_FIELDS] = { + [F_TUNE_IUSB2] = 0x8, + [F_TUNE_SQUELCH_U] = 0x3, + [F_TUNE_USB2_PREEM] = 0x5, }; static const struct eusb2_repeater_cfg pm8550b_eusb2_cfg = { @@ -92,9 +141,9 @@ static int eusb2_repeater_init(struct phy *phy) { + struct reg_field *regfields = eusb2_repeater_tune_reg_fields; struct eusb2_repeater *rptr = phy_get_drvdata(phy); - const struct eusb2_repeater_init_tbl *init_tbl = rptr->cfg->init_tbl; - int num = rptr->cfg->init_tbl_num; + const u32 *init_tbl = rptr->cfg->init_tbl; u32 val; int ret; int i; @@ -103,17 +152,21 @@ if (ret) return ret; - regmap_update_bits(rptr->regmap, rptr->base + EUSB2_EN_CTL1, - EUSB2_RPTR_EN, EUSB2_RPTR_EN); + regmap_field_update_bits(rptr->regs[F_EN_CTL1], EUSB2_RPTR_EN, EUSB2_RPTR_EN); - for (i = 0; i < num; i++) - regmap_update_bits(rptr->regmap, - rptr->base + init_tbl[i].offset, - init_tbl[i].val, init_tbl[i].val); - - ret = regmap_read_poll_timeout(rptr->regmap, - rptr->base + EUSB2_RPTR_STATUS, val, - val & RPTR_OK, 10, 5); + for (i = 0; i < F_NUM_TUNE_FIELDS; i++) { + if (init_tbl[i]) { + regmap_field_update_bits(rptr->regs[i], init_tbl[i], init_tbl[i]); + } else { + /* Write 0 if there's no value set */ + u32 mask = GENMASK(regfields[i].msb, regfields[i].lsb); + + regmap_field_update_bits(rptr->regs[i], mask, 0); + } + } + + ret = regmap_field_read_poll_timeout(rptr->regs[F_RPTR_STATUS], + val, val & RPTR_OK, 10, 5); if (ret) dev_err(rptr->dev, "initialization timed-out\n"); @@ -132,10 +185,10 @@ * per eUSB 1.2 Spec. Below implement software workaround until * PHY and controller is fixing seen observation. */ - regmap_update_bits(rptr->regmap, rptr->base + EUSB2_FORCE_EN_5, - F_CLK_19P2M_EN, F_CLK_19P2M_EN); - regmap_update_bits(rptr->regmap, rptr->base + EUSB2_FORCE_VAL_5, - V_CLK_19P2M_EN, V_CLK_19P2M_EN); + regmap_field_update_bits(rptr->regs[F_FORCE_EN_5], + F_CLK_19P2M_EN, F_CLK_19P2M_EN); + regmap_field_update_bits(rptr->regs[F_FORCE_VAL_5], + V_CLK_19P2M_EN, V_CLK_19P2M_EN); break; case PHY_MODE_USB_DEVICE: /* @@ -144,10 +197,10 @@ * repeater doesn't clear previous value due to shared * regulators (say host <-> device mode switch). */ - regmap_update_bits(rptr->regmap, rptr->base + EUSB2_FORCE_EN_5, - F_CLK_19P2M_EN, 0); - regmap_update_bits(rptr->regmap, rptr->base + EUSB2_FORCE_VAL_5, - V_CLK_19P2M_EN, 0); + regmap_field_update_bits(rptr->regs[F_FORCE_EN_5], + F_CLK_19P2M_EN, 0); + regmap_field_update_bits(rptr->regs[F_FORCE_VAL_5], + V_CLK_19P2M_EN, 0); break; default: return -EINVAL; @@ -176,8 +229,9 @@ struct device *dev = &pdev->dev; struct phy_provider *phy_provider; struct device_node *np = dev->of_node; + struct regmap *regmap; + int i, ret; u32 res; - int ret; rptr = devm_kzalloc(dev, sizeof(*rptr), GFP_KERNEL); if (!rptr) @@ -190,15 +244,22 @@ if (!rptr->cfg) return -EINVAL; - rptr->regmap = dev_get_regmap(dev->parent, NULL); - if (!rptr->regmap) + regmap = dev_get_regmap(dev->parent, NULL); + if (!regmap) return -ENODEV; ret = of_property_read_u32(np, "reg", &res); if (ret < 0) return ret; - rptr->base = res; + for (i = 0; i < F_NUM_FIELDS; i++) + eusb2_repeater_tune_reg_fields[i].reg += res; + + ret = devm_regmap_field_bulk_alloc(dev, regmap, rptr->regs, + eusb2_repeater_tune_reg_fields, + F_NUM_FIELDS); + if (ret) + return ret; ret = eusb2_repeater_init_vregs(rptr); if (ret < 0) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/phy/qualcomm/phy-qcom-qmp-combo.c +++ linux-riscv-6.5.0/drivers/phy/qualcomm/phy-qcom-qmp-combo.c @@ -772,10 +772,10 @@ QMP_PHY_INIT_CFG(QPHY_USB_V6_PCS_PCS_TX_RX_CONFIG, 0x0c), QMP_PHY_INIT_CFG(QPHY_USB_V6_PCS_EQ_CONFIG1, 0x4b), QMP_PHY_INIT_CFG(QPHY_USB_V6_PCS_EQ_CONFIG5, 0x10), - QMP_PHY_INIT_CFG(QPHY_USB_V6_PCS_USB3_POWER_STATE_CONFIG1, 0x68), }; static const struct qmp_phy_init_tbl sm8550_usb3_pcs_usb_tbl[] = { + QMP_PHY_INIT_CFG(QPHY_USB_V6_PCS_USB3_POWER_STATE_CONFIG1, 0x68), QMP_PHY_INIT_CFG(QPHY_USB_V6_PCS_USB3_LFPS_DET_HIGH_COUNT_VAL, 0xf8), QMP_PHY_INIT_CFG(QPHY_USB_V6_PCS_USB3_RXEQTRAINING_DFE_TIME_S2, 0x07), QMP_PHY_INIT_CFG(QPHY_USB_V6_PCS_USB3_RCVR_DTCT_DLY_U3_L, 0x40), @@ -2649,6 +2649,7 @@ void __iomem *tx2 = qmp->tx2; void __iomem *rx2 = qmp->rx2; void __iomem *pcs = qmp->pcs; + void __iomem *pcs_usb = qmp->pcs_usb; void __iomem *status; unsigned int val; int ret; @@ -2670,6 +2671,9 @@ qmp_combo_configure(pcs, cfg->pcs_tbl, cfg->pcs_tbl_num); + if (pcs_usb) + qmp_combo_configure(pcs_usb, cfg->pcs_usb_tbl, cfg->pcs_usb_tbl_num); + if (cfg->has_pwrdn_delay) usleep_range(10, 20); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/phy/qualcomm/phy-qcom-qmp-pcs-usb-v6.h +++ linux-riscv-6.5.0/drivers/phy/qualcomm/phy-qcom-qmp-pcs-usb-v6.h @@ -12,7 +12,7 @@ #define QPHY_USB_V6_PCS_LOCK_DETECT_CONFIG3 0xcc #define QPHY_USB_V6_PCS_LOCK_DETECT_CONFIG6 0xd8 #define QPHY_USB_V6_PCS_REFGEN_REQ_CONFIG1 0xdc -#define QPHY_USB_V6_PCS_USB3_POWER_STATE_CONFIG1 0x90 +#define QPHY_USB_V6_PCS_POWER_STATE_CONFIG1 0x90 #define QPHY_USB_V6_PCS_RX_SIGDET_LVL 0x188 #define QPHY_USB_V6_PCS_RCVR_DTCT_DLY_P1U2_L 0x190 #define QPHY_USB_V6_PCS_RCVR_DTCT_DLY_P1U2_H 0x194 @@ -23,6 +23,7 @@ #define QPHY_USB_V6_PCS_EQ_CONFIG1 0x1dc #define QPHY_USB_V6_PCS_EQ_CONFIG5 0x1ec +#define QPHY_USB_V6_PCS_USB3_POWER_STATE_CONFIG1 0x00 #define QPHY_USB_V6_PCS_USB3_LFPS_DET_HIGH_COUNT_VAL 0x18 #define QPHY_USB_V6_PCS_USB3_RXEQTRAINING_DFE_TIME_S2 0x3c #define QPHY_USB_V6_PCS_USB3_RCVR_DTCT_DLY_U3_L 0x40 only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/phy/qualcomm/phy-qcom-qmp-usb.c +++ linux-riscv-6.5.0/drivers/phy/qualcomm/phy-qcom-qmp-usb.c @@ -1480,8 +1480,6 @@ QMP_PHY_INIT_CFG(QPHY_V5_PCS_RCVR_DTCT_DLY_P1U2_H, 0x03), QMP_PHY_INIT_CFG(QPHY_V5_PCS_RX_SIGDET_LVL, 0xaa), QMP_PHY_INIT_CFG(QPHY_V5_PCS_PCS_TX_RX_CONFIG, 0x0c), - QMP_PHY_INIT_CFG(QPHY_V5_PCS_USB3_RXEQTRAINING_DFE_TIME_S2, 0x07), - QMP_PHY_INIT_CFG(QPHY_V5_PCS_USB3_LFPS_DET_HIGH_COUNT_VAL, 0xf8), QMP_PHY_INIT_CFG(QPHY_V5_PCS_CDR_RESET_TIME, 0x0a), QMP_PHY_INIT_CFG(QPHY_V5_PCS_ALIGN_DETECT_CONFIG1, 0x88), QMP_PHY_INIT_CFG(QPHY_V5_PCS_ALIGN_DETECT_CONFIG2, 0x13), @@ -1490,6 +1488,11 @@ QMP_PHY_INIT_CFG(QPHY_V5_PCS_REFGEN_REQ_CONFIG1, 0x21), }; +static const struct qmp_phy_init_tbl sc8280xp_usb3_uniphy_pcs_usb_tbl[] = { + QMP_PHY_INIT_CFG(QPHY_V5_PCS_USB3_RXEQTRAINING_DFE_TIME_S2, 0x07), + QMP_PHY_INIT_CFG(QPHY_V5_PCS_USB3_LFPS_DET_HIGH_COUNT_VAL, 0xf8), +}; + static const struct qmp_phy_init_tbl sa8775p_usb3_uniphy_pcs_tbl[] = { QMP_PHY_INIT_CFG(QPHY_V5_PCS_LOCK_DETECT_CONFIG1, 0xc4), QMP_PHY_INIT_CFG(QPHY_V5_PCS_LOCK_DETECT_CONFIG2, 0x89), @@ -1499,9 +1502,6 @@ QMP_PHY_INIT_CFG(QPHY_V5_PCS_RCVR_DTCT_DLY_P1U2_H, 0x03), QMP_PHY_INIT_CFG(QPHY_V5_PCS_RX_SIGDET_LVL, 0xaa), QMP_PHY_INIT_CFG(QPHY_V5_PCS_PCS_TX_RX_CONFIG, 0x0c), - QMP_PHY_INIT_CFG(QPHY_V5_PCS_USB3_RXEQTRAINING_DFE_TIME_S2, 0x07), - QMP_PHY_INIT_CFG(QPHY_V5_PCS_USB3_LFPS_DET_HIGH_COUNT_VAL, 0xf8), - QMP_PHY_INIT_CFG(QPHY_V5_PCS_USB3_POWER_STATE_CONFIG1, 0x6f), QMP_PHY_INIT_CFG(QPHY_V5_PCS_CDR_RESET_TIME, 0x0a), QMP_PHY_INIT_CFG(QPHY_V5_PCS_ALIGN_DETECT_CONFIG1, 0x88), QMP_PHY_INIT_CFG(QPHY_V5_PCS_ALIGN_DETECT_CONFIG2, 0x13), @@ -1510,6 +1510,12 @@ QMP_PHY_INIT_CFG(QPHY_V5_PCS_REFGEN_REQ_CONFIG1, 0x21), }; +static const struct qmp_phy_init_tbl sa8775p_usb3_uniphy_pcs_usb_tbl[] = { + QMP_PHY_INIT_CFG(QPHY_V5_PCS_USB3_RXEQTRAINING_DFE_TIME_S2, 0x07), + QMP_PHY_INIT_CFG(QPHY_V5_PCS_USB3_LFPS_DET_HIGH_COUNT_VAL, 0xf8), + QMP_PHY_INIT_CFG(QPHY_V5_PCS_USB3_POWER_STATE_CONFIG1, 0x6f), +}; + struct qmp_usb_offsets { u16 serdes; u16 pcs; @@ -1788,6 +1794,8 @@ .rx_tbl_num = ARRAY_SIZE(sc8280xp_usb3_uniphy_rx_tbl), .pcs_tbl = sa8775p_usb3_uniphy_pcs_tbl, .pcs_tbl_num = ARRAY_SIZE(sa8775p_usb3_uniphy_pcs_tbl), + .pcs_usb_tbl = sa8775p_usb3_uniphy_pcs_usb_tbl, + .pcs_usb_tbl_num = ARRAY_SIZE(sa8775p_usb3_uniphy_pcs_usb_tbl), .clk_list = qmp_v4_phy_clk_l, .num_clks = ARRAY_SIZE(qmp_v4_phy_clk_l), .reset_list = qcm2290_usb3phy_reset_l, @@ -1833,6 +1841,8 @@ .rx_tbl_num = ARRAY_SIZE(sc8280xp_usb3_uniphy_rx_tbl), .pcs_tbl = sc8280xp_usb3_uniphy_pcs_tbl, .pcs_tbl_num = ARRAY_SIZE(sc8280xp_usb3_uniphy_pcs_tbl), + .pcs_usb_tbl = sc8280xp_usb3_uniphy_pcs_usb_tbl, + .pcs_usb_tbl_num = ARRAY_SIZE(sc8280xp_usb3_uniphy_pcs_usb_tbl), .clk_list = qmp_v4_phy_clk_l, .num_clks = ARRAY_SIZE(qmp_v4_phy_clk_l), .reset_list = qcm2290_usb3phy_reset_l, @@ -2233,6 +2243,7 @@ void __iomem *tx = qmp->tx; void __iomem *rx = qmp->rx; void __iomem *pcs = qmp->pcs; + void __iomem *pcs_usb = qmp->pcs_usb; void __iomem *status; unsigned int val; int ret; @@ -2256,6 +2267,9 @@ qmp_usb_configure(pcs, cfg->pcs_tbl, cfg->pcs_tbl_num); + if (pcs_usb) + qmp_usb_configure(pcs_usb, cfg->pcs_usb_tbl, cfg->pcs_usb_tbl_num); + if (cfg->has_pwrdn_delay) usleep_range(10, 20); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/pinctrl/core.c +++ linux-riscv-6.5.0/drivers/pinctrl/core.c @@ -1243,17 +1243,17 @@ static int pinctrl_commit_state(struct pinctrl *p, struct pinctrl_state *state) { struct pinctrl_setting *setting, *setting2; - struct pinctrl_state *old_state = p->state; + struct pinctrl_state *old_state = READ_ONCE(p->state); int ret; - if (p->state) { + if (old_state) { /* * For each pinmux setting in the old state, forget SW's record * of mux owner for that pingroup. Any pingroups which are * still owned by the new state will be re-acquired by the call * to pinmux_enable_setting() in the loop below. */ - list_for_each_entry(setting, &p->state->settings, node) { + list_for_each_entry(setting, &old_state->settings, node) { if (setting->type != PIN_MAP_TYPE_MUX_GROUP) continue; pinmux_disable_setting(setting); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c +++ linux-riscv-6.5.0/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c @@ -31,7 +31,8 @@ char __iomem *tlmm_base; char __iomem *slew_base; struct clk_bulk_data clks[MAX_LPI_NUM_CLKS]; - struct mutex slew_access_lock; + /* Protects from concurrent register updates */ + struct mutex lock; DECLARE_BITMAP(ever_gpio, MAX_NR_GPIO); const struct lpi_pinctrl_variant_data *data; }; @@ -102,6 +103,7 @@ if (WARN_ON(i == g->nfuncs)) return -EINVAL; + mutex_lock(&pctrl->lock); val = lpi_gpio_read(pctrl, pin, LPI_GPIO_CFG_REG); /* @@ -127,6 +129,7 @@ u32p_replace_bits(&val, i, LPI_GPIO_FUNCTION_MASK); lpi_gpio_write(pctrl, pin, LPI_GPIO_CFG_REG, val); + mutex_unlock(&pctrl->lock); return 0; } @@ -232,14 +235,14 @@ if (slew_offset == LPI_NO_SLEW) break; - mutex_lock(&pctrl->slew_access_lock); + mutex_lock(&pctrl->lock); sval = ioread32(pctrl->slew_base + LPI_SLEW_RATE_CTL_REG); sval &= ~(LPI_SLEW_RATE_MASK << slew_offset); sval |= arg << slew_offset; iowrite32(sval, pctrl->slew_base + LPI_SLEW_RATE_CTL_REG); - mutex_unlock(&pctrl->slew_access_lock); + mutex_unlock(&pctrl->lock); break; default: return -EINVAL; @@ -255,6 +258,7 @@ lpi_gpio_write(pctrl, group, LPI_GPIO_VALUE_REG, val); } + mutex_lock(&pctrl->lock); val = lpi_gpio_read(pctrl, group, LPI_GPIO_CFG_REG); u32p_replace_bits(&val, pullup, LPI_GPIO_PULL_MASK); @@ -263,6 +267,7 @@ u32p_replace_bits(&val, output_enabled, LPI_GPIO_OE_MASK); lpi_gpio_write(pctrl, group, LPI_GPIO_CFG_REG, val); + mutex_unlock(&pctrl->lock); return 0; } @@ -464,7 +469,7 @@ pctrl->chip.label = dev_name(dev); pctrl->chip.can_sleep = false; - mutex_init(&pctrl->slew_access_lock); + mutex_init(&pctrl->lock); pctrl->ctrl = devm_pinctrl_register(dev, &pctrl->desc, pctrl); if (IS_ERR(pctrl->ctrl)) { @@ -486,7 +491,7 @@ return 0; err_pinctrl: - mutex_destroy(&pctrl->slew_access_lock); + mutex_destroy(&pctrl->lock); clk_bulk_disable_unprepare(MAX_LPI_NUM_CLKS, pctrl->clks); return ret; @@ -498,7 +503,7 @@ struct lpi_pinctrl *pctrl = platform_get_drvdata(pdev); int i; - mutex_destroy(&pctrl->slew_access_lock); + mutex_destroy(&pctrl->lock); clk_bulk_disable_unprepare(MAX_LPI_NUM_CLKS, pctrl->clks); for (i = 0; i < pctrl->data->npins; i++) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/pinctrl/renesas/pinctrl-rzg2l.c +++ linux-riscv-6.5.0/drivers/pinctrl/renesas/pinctrl-rzg2l.c @@ -1175,6 +1175,8 @@ u32 port; u8 bit; + irq_chip_disable_parent(d); + port = RZG2L_PIN_ID_TO_PORT(hwirq); bit = RZG2L_PIN_ID_TO_PIN(hwirq); @@ -1189,7 +1191,6 @@ spin_unlock_irqrestore(&pctrl->lock, flags); gpiochip_disable_irq(gc, hwirq); - irq_chip_disable_parent(d); } static void rzg2l_gpio_irq_enable(struct irq_data *d) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/platform/chrome/cros_ec.c +++ linux-riscv-6.5.0/drivers/platform/chrome/cros_ec.c @@ -320,17 +320,8 @@ EXPORT_SYMBOL(cros_ec_unregister); #ifdef CONFIG_PM_SLEEP -/** - * cros_ec_suspend() - Handle a suspend operation for the ChromeOS EC device. - * @ec_dev: Device to suspend. - * - * This can be called by drivers to handle a suspend event. - * - * Return: 0 on success or negative error code. - */ -int cros_ec_suspend(struct cros_ec_device *ec_dev) +static void cros_ec_send_suspend_event(struct cros_ec_device *ec_dev) { - struct device *dev = ec_dev->dev; int ret; u8 sleep_event; @@ -342,7 +333,26 @@ if (ret < 0) dev_dbg(ec_dev->dev, "Error %d sending suspend event to ec\n", ret); +} +/** + * cros_ec_suspend_prepare() - Handle a suspend prepare operation for the ChromeOS EC device. + * @ec_dev: Device to suspend. + * + * This can be called by drivers to handle a suspend prepare stage of suspend. + * + * Return: 0 always. + */ +int cros_ec_suspend_prepare(struct cros_ec_device *ec_dev) +{ + cros_ec_send_suspend_event(ec_dev); + return 0; +} +EXPORT_SYMBOL(cros_ec_suspend_prepare); + +static void cros_ec_disable_irq(struct cros_ec_device *ec_dev) +{ + struct device *dev = ec_dev->dev; if (device_may_wakeup(dev)) ec_dev->wake_enabled = !enable_irq_wake(ec_dev->irq); else @@ -350,7 +360,35 @@ disable_irq(ec_dev->irq); ec_dev->suspended = true; +} + +/** + * cros_ec_suspend_late() - Handle a suspend late operation for the ChromeOS EC device. + * @ec_dev: Device to suspend. + * + * This can be called by drivers to handle a suspend late stage of suspend. + * + * Return: 0 always. + */ +int cros_ec_suspend_late(struct cros_ec_device *ec_dev) +{ + cros_ec_disable_irq(ec_dev); + return 0; +} +EXPORT_SYMBOL(cros_ec_suspend_late); +/** + * cros_ec_suspend() - Handle a suspend operation for the ChromeOS EC device. + * @ec_dev: Device to suspend. + * + * This can be called by drivers to handle a suspend event. + * + * Return: 0 always. + */ +int cros_ec_suspend(struct cros_ec_device *ec_dev) +{ + cros_ec_send_suspend_event(ec_dev); + cros_ec_disable_irq(ec_dev); return 0; } EXPORT_SYMBOL(cros_ec_suspend); @@ -369,22 +407,11 @@ } } -/** - * cros_ec_resume() - Handle a resume operation for the ChromeOS EC device. - * @ec_dev: Device to resume. - * - * This can be called by drivers to handle a resume event. - * - * Return: 0 on success or negative error code. - */ -int cros_ec_resume(struct cros_ec_device *ec_dev) +static void cros_ec_send_resume_event(struct cros_ec_device *ec_dev) { int ret; u8 sleep_event; - ec_dev->suspended = false; - enable_irq(ec_dev->irq); - sleep_event = (!IS_ENABLED(CONFIG_ACPI) || pm_suspend_via_firmware()) ? HOST_SLEEP_EVENT_S3_RESUME : HOST_SLEEP_EVENT_S0IX_RESUME; @@ -393,6 +420,24 @@ if (ret < 0) dev_dbg(ec_dev->dev, "Error %d sending resume event to ec\n", ret); +} + +/** + * cros_ec_resume_complete() - Handle a resume complete operation for the ChromeOS EC device. + * @ec_dev: Device to resume. + * + * This can be called by drivers to handle a resume complete stage of resume. + */ +void cros_ec_resume_complete(struct cros_ec_device *ec_dev) +{ + cros_ec_send_resume_event(ec_dev); +} +EXPORT_SYMBOL(cros_ec_resume_complete); + +static void cros_ec_enable_irq(struct cros_ec_device *ec_dev) +{ + ec_dev->suspended = false; + enable_irq(ec_dev->irq); if (ec_dev->wake_enabled) disable_irq_wake(ec_dev->irq); @@ -402,8 +447,35 @@ * suspend. This way the clients know what to do with them. */ cros_ec_report_events_during_suspend(ec_dev); +} +/** + * cros_ec_resume_early() - Handle a resume early operation for the ChromeOS EC device. + * @ec_dev: Device to resume. + * + * This can be called by drivers to handle a resume early stage of resume. + * + * Return: 0 always. + */ +int cros_ec_resume_early(struct cros_ec_device *ec_dev) +{ + cros_ec_enable_irq(ec_dev); + return 0; +} +EXPORT_SYMBOL(cros_ec_resume_early); +/** + * cros_ec_resume() - Handle a resume operation for the ChromeOS EC device. + * @ec_dev: Device to resume. + * + * This can be called by drivers to handle a resume event. + * + * Return: 0 always. + */ +int cros_ec_resume(struct cros_ec_device *ec_dev) +{ + cros_ec_enable_irq(ec_dev); + cros_ec_send_resume_event(ec_dev); return 0; } EXPORT_SYMBOL(cros_ec_resume); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/platform/chrome/cros_ec.h +++ linux-riscv-6.5.0/drivers/platform/chrome/cros_ec.h @@ -14,7 +14,11 @@ void cros_ec_unregister(struct cros_ec_device *ec_dev); int cros_ec_suspend(struct cros_ec_device *ec_dev); +int cros_ec_suspend_late(struct cros_ec_device *ec_dev); +int cros_ec_suspend_prepare(struct cros_ec_device *ec_dev); int cros_ec_resume(struct cros_ec_device *ec_dev); +int cros_ec_resume_early(struct cros_ec_device *ec_dev); +void cros_ec_resume_complete(struct cros_ec_device *ec_dev); irqreturn_t cros_ec_irq_thread(int irq, void *data); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/platform/chrome/cros_ec_proto_test.c +++ linux-riscv-6.5.0/drivers/platform/chrome/cros_ec_proto_test.c @@ -2668,6 +2668,7 @@ ec_dev->dev->release = cros_ec_proto_test_release; ec_dev->cmd_xfer = cros_kunit_ec_xfer_mock; ec_dev->pkt_xfer = cros_kunit_ec_xfer_mock; + mutex_init(&ec_dev->lock); priv->msg = (struct cros_ec_command *)priv->_msg; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/platform/mellanox/mlxbf-bootctl.c +++ linux-riscv-6.5.0/drivers/platform/mellanox/mlxbf-bootctl.c @@ -19,6 +19,7 @@ #define MLXBF_BOOTCTL_SB_SECURE_MASK 0x03 #define MLXBF_BOOTCTL_SB_TEST_MASK 0x0c +#define MLXBF_BOOTCTL_SB_DEV_MASK BIT(4) #define MLXBF_SB_KEY_NUM 4 @@ -39,11 +40,18 @@ { MLXBF_BOOTCTL_NONE, "none" }, }; +enum { + MLXBF_BOOTCTL_SB_LIFECYCLE_PRODUCTION = 0, + MLXBF_BOOTCTL_SB_LIFECYCLE_GA_SECURE = 1, + MLXBF_BOOTCTL_SB_LIFECYCLE_GA_NON_SECURE = 2, + MLXBF_BOOTCTL_SB_LIFECYCLE_RMA = 3 +}; + static const char * const mlxbf_bootctl_lifecycle_states[] = { - [0] = "Production", - [1] = "GA Secured", - [2] = "GA Non-Secured", - [3] = "RMA", + [MLXBF_BOOTCTL_SB_LIFECYCLE_PRODUCTION] = "Production", + [MLXBF_BOOTCTL_SB_LIFECYCLE_GA_SECURE] = "GA Secured", + [MLXBF_BOOTCTL_SB_LIFECYCLE_GA_NON_SECURE] = "GA Non-Secured", + [MLXBF_BOOTCTL_SB_LIFECYCLE_RMA] = "RMA", }; /* Log header format. */ @@ -200,25 +208,30 @@ static ssize_t lifecycle_state_show(struct device *dev, struct device_attribute *attr, char *buf) { + int status_bits; + int use_dev_key; + int test_state; int lc_state; - lc_state = mlxbf_bootctl_smc(MLXBF_BOOTCTL_GET_TBB_FUSE_STATUS, - MLXBF_BOOTCTL_FUSE_STATUS_LIFECYCLE); - if (lc_state < 0) - return lc_state; - - lc_state &= - MLXBF_BOOTCTL_SB_TEST_MASK | MLXBF_BOOTCTL_SB_SECURE_MASK; + status_bits = mlxbf_bootctl_smc(MLXBF_BOOTCTL_GET_TBB_FUSE_STATUS, + MLXBF_BOOTCTL_FUSE_STATUS_LIFECYCLE); + if (status_bits < 0) + return status_bits; + + use_dev_key = status_bits & MLXBF_BOOTCTL_SB_DEV_MASK; + test_state = status_bits & MLXBF_BOOTCTL_SB_TEST_MASK; + lc_state = status_bits & MLXBF_BOOTCTL_SB_SECURE_MASK; /* * If the test bits are set, we specify that the current state may be * due to using the test bits. */ - if (lc_state & MLXBF_BOOTCTL_SB_TEST_MASK) { - lc_state &= MLXBF_BOOTCTL_SB_SECURE_MASK; - + if (test_state) { return sprintf(buf, "%s(test)\n", mlxbf_bootctl_lifecycle_states[lc_state]); + } else if (use_dev_key && + (lc_state == MLXBF_BOOTCTL_SB_LIFECYCLE_GA_SECURE)) { + return sprintf(buf, "Secured (development)\n"); } return sprintf(buf, "%s\n", mlxbf_bootctl_lifecycle_states[lc_state]); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/platform/surface/aggregator/core.c +++ linux-riscv-6.5.0/drivers/platform/surface/aggregator/core.c @@ -231,9 +231,12 @@ size_t n) { struct ssam_controller *ctrl; + int ret; ctrl = serdev_device_get_drvdata(dev); - return ssam_controller_receive_buf(ctrl, buf, n); + ret = ssam_controller_receive_buf(ctrl, buf, n); + + return ret < 0 ? 0 : ret; } static void ssam_write_wakeup(struct serdev_device *dev) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/platform/surface/surface_platform_profile.c +++ linux-riscv-6.5.0/drivers/platform/surface/surface_platform_profile.c @@ -159,8 +159,7 @@ set_bit(PLATFORM_PROFILE_BALANCED_PERFORMANCE, tpd->handler.choices); set_bit(PLATFORM_PROFILE_PERFORMANCE, tpd->handler.choices); - platform_profile_register(&tpd->handler); - return 0; + return platform_profile_register(&tpd->handler); } static void surface_platform_profile_remove(struct ssam_device *sdev) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/platform/x86/amd/pmc-quirks.c +++ linux-riscv-6.5.0/drivers/platform/x86/amd/pmc-quirks.c @@ -111,6 +111,79 @@ DMI_MATCH(DMI_PRODUCT_NAME, "21A1"), } }, + /* https://bugzilla.kernel.org/show_bug.cgi?id=218024 */ + { + .ident = "V14 G4 AMN", + .driver_data = &quirk_s2idle_bug, + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "82YT"), + } + }, + { + .ident = "V14 G4 AMN", + .driver_data = &quirk_s2idle_bug, + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "83GE"), + } + }, + { + .ident = "V15 G4 AMN", + .driver_data = &quirk_s2idle_bug, + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "82YU"), + } + }, + { + .ident = "V15 G4 AMN", + .driver_data = &quirk_s2idle_bug, + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "83CQ"), + } + }, + { + .ident = "IdeaPad 1 14AMN7", + .driver_data = &quirk_s2idle_bug, + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "82VF"), + } + }, + { + .ident = "IdeaPad 1 15AMN7", + .driver_data = &quirk_s2idle_bug, + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "82VG"), + } + }, + { + .ident = "IdeaPad 1 15AMN7", + .driver_data = &quirk_s2idle_bug, + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "82X5"), + } + }, + { + .ident = "IdeaPad Slim 3 14AMN8", + .driver_data = &quirk_s2idle_bug, + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "82XN"), + } + }, + { + .ident = "IdeaPad Slim 3 15AMN8", + .driver_data = &quirk_s2idle_bug, + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "82XQ"), + } + }, /* https://gitlab.freedesktop.org/drm/amd/-/issues/2684 */ { .ident = "HP Laptop 15s-eq2xxx", only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/platform/x86/amd/pmc.c +++ linux-riscv-6.5.0/drivers/platform/x86/amd/pmc.c @@ -912,33 +912,6 @@ { } }; -static int amd_pmc_get_dram_size(struct amd_pmc_dev *dev) -{ - int ret; - - switch (dev->cpu_id) { - case AMD_CPU_ID_YC: - if (!(dev->major > 90 || (dev->major == 90 && dev->minor > 39))) { - ret = -EINVAL; - goto err_dram_size; - } - break; - default: - ret = -EINVAL; - goto err_dram_size; - } - - ret = amd_pmc_send_cmd(dev, S2D_DRAM_SIZE, &dev->dram_size, dev->s2d_msg_id, true); - if (ret || !dev->dram_size) - goto err_dram_size; - - return 0; - -err_dram_size: - dev_err(dev->dev, "DRAM size command not supported for this platform\n"); - return ret; -} - static int amd_pmc_s2d_init(struct amd_pmc_dev *dev) { u32 phys_addr_low, phys_addr_hi; @@ -957,8 +930,8 @@ return -EIO; /* Get DRAM size */ - ret = amd_pmc_get_dram_size(dev); - if (ret) + ret = amd_pmc_send_cmd(dev, S2D_DRAM_SIZE, &dev->dram_size, dev->s2d_msg_id, true); + if (ret || !dev->dram_size) dev->dram_size = S2D_TELEMETRY_DRAMBYTES_MAX; /* Get STB DRAM address */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/platform/x86/apple-gmux.c +++ linux-riscv-6.5.0/drivers/platform/x86/apple-gmux.c @@ -105,6 +105,8 @@ #define GMUX_BRIGHTNESS_MASK 0x00ffffff #define GMUX_MAX_BRIGHTNESS GMUX_BRIGHTNESS_MASK +# define MMIO_GMUX_MAX_BRIGHTNESS 0xffff + static u8 gmux_pio_read8(struct apple_gmux_data *gmux_data, int port) { return inb(gmux_data->iostart + port); @@ -857,7 +859,17 @@ memset(&props, 0, sizeof(props)); props.type = BACKLIGHT_PLATFORM; - props.max_brightness = gmux_read32(gmux_data, GMUX_PORT_MAX_BRIGHTNESS); + + /* + * All MMIO gmux's have 0xffff as max brightness, but some iMacs incorrectly + * report 0x03ff, despite the firmware being happy to set 0xffff as the brightness + * at boot. Force 0xffff for all MMIO gmux's so they all have the correct brightness + * range. + */ + if (type == APPLE_GMUX_TYPE_MMIO) + props.max_brightness = MMIO_GMUX_MAX_BRIGHTNESS; + else + props.max_brightness = gmux_read32(gmux_data, GMUX_PORT_MAX_BRIGHTNESS); #if IS_REACHABLE(CONFIG_ACPI_VIDEO) register_bdev = acpi_video_get_backlight_type() == acpi_backlight_apple_gmux; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/platform/x86/asus-wmi.c +++ linux-riscv-6.5.0/drivers/platform/x86/asus-wmi.c @@ -3268,7 +3268,6 @@ { unsigned int key_value = 1; bool autorelease = 1; - int orig_code = code; if (asus->driver->key_filter) { asus->driver->key_filter(asus->driver, &code, &key_value, @@ -3277,16 +3276,10 @@ return; } - if (code >= NOTIFY_BRNUP_MIN && code <= NOTIFY_BRNUP_MAX) - code = ASUS_WMI_BRN_UP; - else if (code >= NOTIFY_BRNDOWN_MIN && code <= NOTIFY_BRNDOWN_MAX) - code = ASUS_WMI_BRN_DOWN; - - if (code == ASUS_WMI_BRN_DOWN || code == ASUS_WMI_BRN_UP) { - if (acpi_video_get_backlight_type() == acpi_backlight_vendor) { - asus_wmi_backlight_notify(asus, orig_code); - return; - } + if (acpi_video_get_backlight_type() == acpi_backlight_vendor && + code >= NOTIFY_BRNUP_MIN && code <= NOTIFY_BRNDOWN_MAX) { + asus_wmi_backlight_notify(asus, code); + return; } if (code == NOTIFY_KBD_BRTUP) { @@ -3846,6 +3839,12 @@ goto fail_wmi_handler; } + if (asus->driver->quirks->i8042_filter) { + err = i8042_install_filter(asus->driver->quirks->i8042_filter); + if (err) + pr_warn("Unable to install key filter - %d\n", err); + } + asus_wmi_battery_init(asus); asus_wmi_debugfs_init(asus); @@ -3880,6 +3879,8 @@ struct asus_wmi *asus; asus = platform_get_drvdata(device); + if (asus->driver->quirks->i8042_filter) + i8042_remove_filter(asus->driver->quirks->i8042_filter); wmi_remove_notify_handler(asus->driver->event_guid); asus_wmi_backlight_exit(asus); asus_wmi_input_exit(asus); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/platform/x86/asus-wmi.h +++ linux-riscv-6.5.0/drivers/platform/x86/asus-wmi.h @@ -18,7 +18,7 @@ #include #define ASUS_WMI_KEY_IGNORE (-1) -#define ASUS_WMI_BRN_DOWN 0x20 +#define ASUS_WMI_BRN_DOWN 0x2e #define ASUS_WMI_BRN_UP 0x2f struct module; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c +++ linux-riscv-6.5.0/drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.c @@ -176,7 +176,7 @@ static int create_attr_group(struct uncore_data *data, char *name) { - int ret, index = 0; + int ret, freq, index = 0; init_attribute_rw(max_freq_khz); init_attribute_rw(min_freq_khz); @@ -197,7 +197,11 @@ data->uncore_attrs[index++] = &data->min_freq_khz_dev_attr.attr; data->uncore_attrs[index++] = &data->initial_min_freq_khz_dev_attr.attr; data->uncore_attrs[index++] = &data->initial_max_freq_khz_dev_attr.attr; - data->uncore_attrs[index++] = &data->current_freq_khz_dev_attr.attr; + + ret = uncore_read_freq(data, &freq); + if (!ret) + data->uncore_attrs[index++] = &data->current_freq_khz_dev_attr.attr; + data->uncore_attrs[index] = NULL; data->uncore_attr_group.name = name; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/platform/x86/msi-ec.c +++ linux-riscv-6.5.0/drivers/platform/x86/msi-ec.c @@ -276,14 +276,13 @@ static const char * const ALLOWED_FW_3[] __initconst = { "1592EMS1.111", - "E1592IMS.10C", NULL }; static struct msi_ec_conf CONF3 __initdata = { .allowed_fw = ALLOWED_FW_3, .charge_control = { - .address = 0xef, + .address = 0xd7, .offset_start = 0x8a, .offset_end = 0x80, .range_min = 0x8a, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/platform/x86/thinkpad_acpi.c +++ linux-riscv-6.5.0/drivers/platform/x86/thinkpad_acpi.c @@ -9810,6 +9810,7 @@ * Individual addressing is broken on models that expose the * primary battery as BAT1. */ + TPACPI_Q_LNV('8', 'F', true), /* Thinkpad X120e */ TPACPI_Q_LNV('J', '7', true), /* B5400 */ TPACPI_Q_LNV('J', 'I', true), /* Thinkpad 11e */ TPACPI_Q_LNV3('R', '0', 'B', true), /* Thinkpad 11e gen 3 */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/platform/x86/touchscreen_dmi.c +++ linux-riscv-6.5.0/drivers/platform/x86/touchscreen_dmi.c @@ -42,6 +42,21 @@ .properties = archos_101_cesium_educ_props, }; +static const struct property_entry bush_bush_windows_tablet_props[] = { + PROPERTY_ENTRY_U32("touchscreen-size-x", 1850), + PROPERTY_ENTRY_U32("touchscreen-size-y", 1280), + PROPERTY_ENTRY_BOOL("touchscreen-swapped-x-y"), + PROPERTY_ENTRY_U32("silead,max-fingers", 10), + PROPERTY_ENTRY_BOOL("silead,home-button"), + PROPERTY_ENTRY_STRING("firmware-name", "gsl1680-bush-bush-windows-tablet.fw"), + { } +}; + +static const struct ts_dmi_data bush_bush_windows_tablet_data = { + .acpi_name = "MSSL1680:00", + .properties = bush_bush_windows_tablet_props, +}; + static const struct property_entry chuwi_hi8_props[] = { PROPERTY_ENTRY_U32("touchscreen-size-x", 1665), PROPERTY_ENTRY_U32("touchscreen-size-y", 1140), @@ -756,6 +771,21 @@ .properties = pipo_w11_props, }; +static const struct property_entry positivo_c4128b_props[] = { + PROPERTY_ENTRY_U32("touchscreen-min-x", 4), + PROPERTY_ENTRY_U32("touchscreen-min-y", 13), + PROPERTY_ENTRY_U32("touchscreen-size-x", 1915), + PROPERTY_ENTRY_U32("touchscreen-size-y", 1269), + PROPERTY_ENTRY_STRING("firmware-name", "gsl1680-positivo-c4128b.fw"), + PROPERTY_ENTRY_U32("silead,max-fingers", 10), + { } +}; + +static const struct ts_dmi_data positivo_c4128b_data = { + .acpi_name = "MSSL1680:00", + .properties = positivo_c4128b_props, +}; + static const struct property_entry pov_mobii_wintab_p800w_v20_props[] = { PROPERTY_ENTRY_U32("touchscreen-min-x", 32), PROPERTY_ENTRY_U32("touchscreen-min-y", 16), @@ -1071,6 +1101,13 @@ }, }, { + /* Bush Windows tablet */ + .driver_data = (void *)&bush_bush_windows_tablet_data, + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "Bush Windows tablet"), + }, + }, + { /* Chuwi Hi8 */ .driver_data = (void *)&chuwi_hi8_data, .matches = { @@ -1481,6 +1518,14 @@ }, }, { + /* Positivo C4128B */ + .driver_data = (void *)&positivo_c4128b_data, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Positivo Tecnologia SA"), + DMI_MATCH(DMI_PRODUCT_NAME, "C4128B-1"), + }, + }, + { /* Point of View mobii wintab p800w (v2.0) */ .driver_data = (void *)&pov_mobii_wintab_p800w_v20_data, .matches = { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/platform/x86/wmi.c +++ linux-riscv-6.5.0/drivers/platform/x86/wmi.c @@ -911,21 +911,13 @@ } static int wmi_char_open(struct inode *inode, struct file *filp) { - const char *driver_name = filp->f_path.dentry->d_iname; - struct wmi_block *wblock; - struct wmi_block *next; - - list_for_each_entry_safe(wblock, next, &wmi_block_list, list) { - if (!wblock->dev.dev.driver) - continue; - if (strcmp(driver_name, wblock->dev.dev.driver->name) == 0) { - filp->private_data = wblock; - break; - } - } + /* + * The miscdevice already stores a pointer to itself + * inside filp->private_data + */ + struct wmi_block *wblock = container_of(filp->private_data, struct wmi_block, char_dev); - if (!filp->private_data) - return -ENODEV; + filp->private_data = wblock; return nonseekable_open(inode, filp); } @@ -1270,8 +1262,8 @@ struct wmi_block *wblock, *next; union acpi_object *obj; acpi_status status; - int retval = 0; u32 i, total; + int retval; status = acpi_evaluate_object(device->handle, "_WDG", NULL, &out); if (ACPI_FAILURE(status)) @@ -1282,8 +1274,8 @@ return -ENXIO; if (obj->type != ACPI_TYPE_BUFFER) { - retval = -ENXIO; - goto out_free_pointer; + kfree(obj); + return -ENXIO; } gblock = (const struct guid_block *)obj->buffer.pointer; @@ -1293,13 +1285,18 @@ if (debug_dump_wdg) wmi_dump_wdg(&gblock[i]); + if (!gblock[i].instance_count) { + dev_info(wmi_bus_dev, FW_INFO "%pUL has zero instances\n", &gblock[i].guid); + continue; + } + if (guid_already_parsed_for_legacy(device, &gblock[i].guid)) continue; wblock = kzalloc(sizeof(*wblock), GFP_KERNEL); if (!wblock) { - retval = -ENOMEM; - break; + dev_err(wmi_bus_dev, "Failed to allocate %pUL\n", &gblock[i].guid); + continue; } wblock->acpi_device = device; @@ -1338,9 +1335,9 @@ } } -out_free_pointer: - kfree(out.pointer); - return retval; + kfree(obj); + + return 0; } /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/power/reset/Kconfig +++ linux-riscv-6.5.0/drivers/power/reset/Kconfig @@ -307,7 +307,7 @@ config POWER_MLXBF tristate "Mellanox BlueField power handling driver" - depends on (GPIO_MLXBF2 && ACPI) + depends on (GPIO_MLXBF2 || GPIO_MLXBF3) && ACPI help This driver supports reset or low power mode handling for Mellanox BlueField. only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/powercap/dtpm_cpu.c +++ linux-riscv-6.5.0/drivers/powercap/dtpm_cpu.c @@ -24,7 +24,6 @@ #include #include #include -#include struct dtpm_cpu { struct dtpm dtpm; @@ -104,8 +103,7 @@ if (pd->table[i].frequency < freq) continue; - return scale_pd_power_uw(pd_mask, pd->table[i].power * - MICROWATT_PER_MILLIWATT); + return scale_pd_power_uw(pd_mask, pd->table[i].power); } return 0; @@ -122,11 +120,9 @@ nr_cpus = cpumask_weight(&cpus); dtpm->power_min = em->table[0].power; - dtpm->power_min *= MICROWATT_PER_MILLIWATT; dtpm->power_min *= nr_cpus; dtpm->power_max = em->table[em->nr_perf_states - 1].power; - dtpm->power_max *= MICROWATT_PER_MILLIWATT; dtpm->power_max *= nr_cpus; return 0; @@ -144,6 +140,8 @@ if (policy) { for_each_cpu(dtpm_cpu->cpu, policy->related_cpus) per_cpu(dtpm_per_cpu, dtpm_cpu->cpu) = NULL; + + cpufreq_cpu_put(policy); } kfree(dtpm_cpu); @@ -195,12 +193,16 @@ return 0; pd = em_cpu_get(cpu); - if (!pd || em_is_artificial(pd)) - return -EINVAL; + if (!pd || em_is_artificial(pd)) { + ret = -EINVAL; + goto release_policy; + } dtpm_cpu = kzalloc(sizeof(*dtpm_cpu), GFP_KERNEL); - if (!dtpm_cpu) - return -ENOMEM; + if (!dtpm_cpu) { + ret = -ENOMEM; + goto release_policy; + } dtpm_init(&dtpm_cpu->dtpm, &dtpm_ops); dtpm_cpu->cpu = cpu; @@ -220,6 +222,7 @@ if (ret) goto out_dtpm_unregister; + cpufreq_cpu_put(policy); return 0; out_dtpm_unregister: @@ -231,6 +234,8 @@ per_cpu(dtpm_per_cpu, cpu) = NULL; kfree(dtpm_cpu); +release_policy: + cpufreq_cpu_put(policy); return ret; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/powercap/dtpm_devfreq.c +++ linux-riscv-6.5.0/drivers/powercap/dtpm_devfreq.c @@ -39,10 +39,8 @@ struct em_perf_domain *pd = em_pd_get(dev); dtpm->power_min = pd->table[0].power; - dtpm->power_min *= MICROWATT_PER_MILLIWATT; dtpm->power_max = pd->table[pd->nr_perf_states - 1].power; - dtpm->power_max *= MICROWATT_PER_MILLIWATT; return 0; } @@ -54,13 +52,10 @@ struct device *dev = devfreq->dev.parent; struct em_perf_domain *pd = em_pd_get(dev); unsigned long freq; - u64 power; int i; for (i = 0; i < pd->nr_perf_states; i++) { - - power = pd->table[i].power * MICROWATT_PER_MILLIWATT; - if (power > power_limit) + if (pd->table[i].power > power_limit) break; } @@ -68,7 +63,7 @@ dev_pm_qos_update_request(&dtpm_devfreq->qos_req, freq); - power_limit = pd->table[i - 1].power * MICROWATT_PER_MILLIWATT; + power_limit = pd->table[i - 1].power; return power_limit; } @@ -110,7 +105,7 @@ if (pd->table[i].frequency < freq) continue; - power = pd->table[i].power * MICROWATT_PER_MILLIWATT; + power = pd->table[i].power; power *= status.busy_time; power >>= 10; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/ptp/ptp_chardev.c +++ linux-riscv-6.5.0/drivers/ptp/ptp_chardev.c @@ -490,7 +490,8 @@ for (i = 0; i < cnt; i++) { event[i] = queue->buf[queue->head]; - queue->head = (queue->head + 1) % PTP_MAX_TIMESTAMPS; + /* Paired with READ_ONCE() in queue_cnt() */ + WRITE_ONCE(queue->head, (queue->head + 1) % PTP_MAX_TIMESTAMPS); } spin_unlock_irqrestore(&queue->lock, flags); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/ptp/ptp_private.h +++ linux-riscv-6.5.0/drivers/ptp/ptp_private.h @@ -76,9 +76,13 @@ * that a writer might concurrently increment the tail does not * matter, since the queue remains nonempty nonetheless. */ -static inline int queue_cnt(struct timestamp_event_queue *q) +static inline int queue_cnt(const struct timestamp_event_queue *q) { - int cnt = q->tail - q->head; + /* + * Paired with WRITE_ONCE() in enqueue_external_timestamp(), + * ptp_read(), extts_fifo_show(). + */ + int cnt = READ_ONCE(q->tail) - READ_ONCE(q->head); return cnt < 0 ? PTP_MAX_TIMESTAMPS + cnt : cnt; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/ptp/ptp_sysfs.c +++ linux-riscv-6.5.0/drivers/ptp/ptp_sysfs.c @@ -90,7 +90,8 @@ qcnt = queue_cnt(queue); if (qcnt) { event = queue->buf[queue->head]; - queue->head = (queue->head + 1) % PTP_MAX_TIMESTAMPS; + /* Paired with READ_ONCE() in queue_cnt() */ + WRITE_ONCE(queue->head, (queue->head + 1) % PTP_MAX_TIMESTAMPS); } spin_unlock_irqrestore(&queue->lock, flags); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/pwm/pwm-brcmstb.c +++ linux-riscv-6.5.0/drivers/pwm/pwm-brcmstb.c @@ -288,7 +288,7 @@ { struct brcmstb_pwm *p = dev_get_drvdata(dev); - clk_disable(p->clk); + clk_disable_unprepare(p->clk); return 0; } @@ -297,7 +297,7 @@ { struct brcmstb_pwm *p = dev_get_drvdata(dev); - clk_enable(p->clk); + clk_prepare_enable(p->clk); return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/pwm/pwm-sti.c +++ linux-riscv-6.5.0/drivers/pwm/pwm-sti.c @@ -79,6 +79,7 @@ unsigned int cpt_num_devs; unsigned int max_pwm_cnt; unsigned int max_prescale; + struct sti_cpt_ddata *ddata; }; struct sti_pwm_chip { @@ -314,7 +315,7 @@ { struct sti_pwm_chip *pc = to_sti_pwmchip(chip); struct sti_pwm_compat_data *cdata = pc->cdata; - struct sti_cpt_ddata *ddata = pwm_get_chip_data(pwm); + struct sti_cpt_ddata *ddata = &cdata->ddata[pwm->hwpwm]; struct device *dev = pc->dev; unsigned int effective_ticks; unsigned long long high, low; @@ -440,7 +441,7 @@ while (cpt_int_stat) { devicenum = ffs(cpt_int_stat) - 1; - ddata = pwm_get_chip_data(&pc->chip.pwms[devicenum]); + ddata = &pc->cdata->ddata[devicenum]; /* * Capture input: @@ -638,30 +639,28 @@ dev_err(dev, "failed to prepare clock\n"); return ret; } + + cdata->ddata = devm_kzalloc(dev, cdata->cpt_num_devs * sizeof(*cdata->ddata), GFP_KERNEL); + if (!cdata->ddata) + return -ENOMEM; } pc->chip.dev = dev; pc->chip.ops = &sti_pwm_ops; pc->chip.npwm = pc->cdata->pwm_num_devs; - ret = pwmchip_add(&pc->chip); - if (ret < 0) { - clk_unprepare(pc->pwm_clk); - clk_unprepare(pc->cpt_clk); - return ret; - } - for (i = 0; i < cdata->cpt_num_devs; i++) { - struct sti_cpt_ddata *ddata; - - ddata = devm_kzalloc(dev, sizeof(*ddata), GFP_KERNEL); - if (!ddata) - return -ENOMEM; + struct sti_cpt_ddata *ddata = &cdata->ddata[i]; init_waitqueue_head(&ddata->wait); mutex_init(&ddata->lock); + } - pwm_set_chip_data(&pc->chip.pwms[i], ddata); + ret = pwmchip_add(&pc->chip); + if (ret < 0) { + clk_unprepare(pc->pwm_clk); + clk_unprepare(pc->cpt_clk); + return ret; } platform_set_drvdata(pdev, pc); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/regulator/qcom-rpmh-regulator.c +++ linux-riscv-6.5.0/drivers/regulator/qcom-rpmh-regulator.c @@ -1096,7 +1096,7 @@ RPMH_VREG("smps1", "smp%s1", &pmic5_ftsmps525_lv, "vdd-s1"), RPMH_VREG("smps2", "smp%s2", &pmic5_ftsmps525_lv, "vdd-s2"), RPMH_VREG("smps3", "smp%s3", &pmic5_ftsmps525_lv, "vdd-s3"), - RPMH_VREG("smps4", "smp%s4", &pmic5_ftsmps525_lv, "vdd-s4"), + RPMH_VREG("smps4", "smp%s4", &pmic5_ftsmps525_mv, "vdd-s4"), RPMH_VREG("smps5", "smp%s5", &pmic5_ftsmps525_lv, "vdd-s5"), RPMH_VREG("smps6", "smp%s6", &pmic5_ftsmps525_lv, "vdd-s6"), RPMH_VREG("smps7", "smp%s7", &pmic5_ftsmps525_lv, "vdd-s7"), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/rtc/rtc-brcmstb-waketimer.c +++ linux-riscv-6.5.0/drivers/rtc/rtc-brcmstb-waketimer.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright © 2014-2017 Broadcom + * Copyright © 2014-2023 Broadcom */ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt @@ -34,6 +34,7 @@ u32 rate; unsigned long rtc_alarm; bool alarm_en; + bool alarm_expired; }; #define BRCMSTB_WKTMR_EVENT 0x00 @@ -64,6 +65,11 @@ writel_relaxed(reg - 1, timer->base + BRCMSTB_WKTMR_ALARM); writel_relaxed(WKTMR_ALARM_EVENT, timer->base + BRCMSTB_WKTMR_EVENT); (void)readl_relaxed(timer->base + BRCMSTB_WKTMR_EVENT); + if (timer->alarm_expired) { + timer->alarm_expired = false; + /* maintain call balance */ + enable_irq(timer->alarm_irq); + } } static void brcmstb_waketmr_set_alarm(struct brcmstb_waketmr *timer, @@ -105,10 +111,17 @@ return IRQ_HANDLED; if (timer->alarm_en) { - if (!device_may_wakeup(timer->dev)) + if (device_may_wakeup(timer->dev)) { + disable_irq_nosync(irq); + timer->alarm_expired = true; + } else { writel_relaxed(WKTMR_ALARM_EVENT, timer->base + BRCMSTB_WKTMR_EVENT); + } rtc_update_irq(timer->rtc, 1, RTC_IRQF | RTC_AF); + } else { + writel_relaxed(WKTMR_ALARM_EVENT, + timer->base + BRCMSTB_WKTMR_EVENT); } return IRQ_HANDLED; @@ -221,8 +234,14 @@ !brcmstb_waketmr_is_pending(timer)) return -EINVAL; timer->alarm_en = true; - if (timer->alarm_irq) + if (timer->alarm_irq) { + if (timer->alarm_expired) { + timer->alarm_expired = false; + /* maintain call balance */ + enable_irq(timer->alarm_irq); + } enable_irq(timer->alarm_irq); + } } else if (!enabled && timer->alarm_en) { if (timer->alarm_irq) disable_irq(timer->alarm_irq); @@ -352,6 +371,17 @@ return brcmstb_waketmr_prepare_suspend(timer); } +static int brcmstb_waketmr_suspend_noirq(struct device *dev) +{ + struct brcmstb_waketmr *timer = dev_get_drvdata(dev); + + /* Catch any alarms occurring prior to noirq */ + if (timer->alarm_expired && device_may_wakeup(dev)) + return -EBUSY; + + return 0; +} + static int brcmstb_waketmr_resume(struct device *dev) { struct brcmstb_waketmr *timer = dev_get_drvdata(dev); @@ -368,10 +398,17 @@ return ret; } +#else +#define brcmstb_waketmr_suspend NULL +#define brcmstb_waketmr_suspend_noirq NULL +#define brcmstb_waketmr_resume NULL #endif /* CONFIG_PM_SLEEP */ -static SIMPLE_DEV_PM_OPS(brcmstb_waketmr_pm_ops, - brcmstb_waketmr_suspend, brcmstb_waketmr_resume); +static const struct dev_pm_ops brcmstb_waketmr_pm_ops = { + .suspend = brcmstb_waketmr_suspend, + .suspend_noirq = brcmstb_waketmr_suspend_noirq, + .resume = brcmstb_waketmr_resume, +}; static const __maybe_unused struct of_device_id brcmstb_waketmr_of_match[] = { { .compatible = "brcm,brcmstb-waketimer" }, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/rtc/rtc-pcf85363.c +++ linux-riscv-6.5.0/drivers/rtc/rtc-pcf85363.c @@ -403,6 +403,7 @@ }, }; int ret, i, err; + bool wakeup_source; if (data) config = data; @@ -432,25 +433,36 @@ pcf85363->rtc->ops = &rtc_ops; pcf85363->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000; pcf85363->rtc->range_max = RTC_TIMESTAMP_END_2099; - clear_bit(RTC_FEATURE_ALARM, pcf85363->rtc->features); + + wakeup_source = device_property_read_bool(&client->dev, + "wakeup-source"); + if (client->irq > 0 || wakeup_source) { + regmap_write(pcf85363->regmap, CTRL_FLAGS, 0); + regmap_update_bits(pcf85363->regmap, CTRL_PIN_IO, + PIN_IO_INTAPM, PIN_IO_INTA_OUT); + } if (client->irq > 0) { unsigned long irqflags = IRQF_TRIGGER_LOW; if (dev_fwnode(&client->dev)) irqflags = 0; - - regmap_write(pcf85363->regmap, CTRL_FLAGS, 0); - regmap_update_bits(pcf85363->regmap, CTRL_PIN_IO, - PIN_IO_INTA_OUT, PIN_IO_INTAPM); ret = devm_request_threaded_irq(&client->dev, client->irq, NULL, pcf85363_rtc_handle_irq, irqflags | IRQF_ONESHOT, "pcf85363", client); - if (ret) - dev_warn(&client->dev, "unable to request IRQ, alarms disabled\n"); - else - set_bit(RTC_FEATURE_ALARM, pcf85363->rtc->features); + if (ret) { + dev_warn(&client->dev, + "unable to request IRQ, alarms disabled\n"); + client->irq = 0; + } + } + + if (client->irq > 0 || wakeup_source) { + device_init_wakeup(&client->dev, true); + set_bit(RTC_FEATURE_ALARM, pcf85363->rtc->features); + } else { + clear_bit(RTC_FEATURE_ALARM, pcf85363->rtc->features); } ret = devm_rtc_register_device(pcf85363->rtc); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/s390/block/dasd.c +++ linux-riscv-6.5.0/drivers/s390/block/dasd.c @@ -674,18 +674,20 @@ * we count each request only once. */ device = cqr->startdev; - if (device->profile.data) { - counter = 1; /* request is not yet queued on the start device */ - list_for_each(l, &device->ccw_queue) - if (++counter >= 31) - break; - } + if (!device->profile.data) + return; + + spin_lock(get_ccwdev_lock(device->cdev)); + counter = 1; /* request is not yet queued on the start device */ + list_for_each(l, &device->ccw_queue) + if (++counter >= 31) + break; + spin_unlock(get_ccwdev_lock(device->cdev)); + spin_lock(&device->profile.lock); - if (device->profile.data) { - device->profile.data->dasd_io_nr_req[counter]++; - if (rq_data_dir(req) == READ) - device->profile.data->dasd_read_nr_req[counter]++; - } + device->profile.data->dasd_io_nr_req[counter]++; + if (rq_data_dir(req) == READ) + device->profile.data->dasd_read_nr_req[counter]++; spin_unlock(&device->profile.lock); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/s390/cio/css.c +++ linux-riscv-6.5.0/drivers/s390/cio/css.c @@ -233,17 +233,19 @@ */ ret = dma_set_coherent_mask(&sch->dev, DMA_BIT_MASK(31)); if (ret) - goto err; + goto err_lock; /* * But we don't have such restrictions imposed on the stuff that * is handled by the streaming API. */ ret = dma_set_mask(&sch->dev, DMA_BIT_MASK(64)); if (ret) - goto err; + goto err_lock; return sch; +err_lock: + kfree(sch->lock); err: kfree(sch); return ERR_PTR(ret); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/s390/crypto/ap_queue.c +++ linux-riscv-6.5.0/drivers/s390/crypto/ap_queue.c @@ -1205,14 +1205,19 @@ spin_unlock_bh(&aq->lock); } -void ap_queue_init_state(struct ap_queue *aq) +void _ap_queue_init_state(struct ap_queue *aq) { - spin_lock_bh(&aq->lock); aq->dev_state = AP_DEV_STATE_OPERATING; aq->sm_state = AP_SM_STATE_RESET_START; aq->last_err_rc = 0; aq->assoc_idx = ASSOC_IDX_INVALID; ap_wait(ap_sm_event(aq, AP_SM_EVENT_POLL)); +} + +void ap_queue_init_state(struct ap_queue *aq) +{ + spin_lock_bh(&aq->lock); + _ap_queue_init_state(aq); spin_unlock_bh(&aq->lock); } EXPORT_SYMBOL(ap_queue_init_state); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/s390/net/ism_drv.c +++ linux-riscv-6.5.0/drivers/s390/net/ism_drv.c @@ -30,7 +30,6 @@ MODULE_DEVICE_TABLE(pci, ism_device_table); static debug_info_t *ism_debug_info; -static const struct smcd_ops ism_ops; #define NO_CLIENT 0xff /* must be >= MAX_CLIENTS */ static struct ism_client *clients[MAX_CLIENTS]; /* use an array rather than */ @@ -289,22 +288,6 @@ return ret; } -static int ism_query_rgid(struct ism_dev *ism, u64 rgid, u32 vid_valid, - u32 vid) -{ - union ism_query_rgid cmd; - - memset(&cmd, 0, sizeof(cmd)); - cmd.request.hdr.cmd = ISM_QUERY_RGID; - cmd.request.hdr.len = sizeof(cmd.request); - - cmd.request.rgid = rgid; - cmd.request.vlan_valid = vid_valid; - cmd.request.vlan_id = vid; - - return ism_cmd(ism, &cmd); -} - static void ism_free_dmb(struct ism_dev *ism, struct ism_dmb *dmb) { clear_bit(dmb->sba_idx, ism->sba_bitmap); @@ -429,23 +412,6 @@ return ism_cmd(ism, &cmd); } -static int ism_signal_ieq(struct ism_dev *ism, u64 rgid, u32 trigger_irq, - u32 event_code, u64 info) -{ - union ism_sig_ieq cmd; - - memset(&cmd, 0, sizeof(cmd)); - cmd.request.hdr.cmd = ISM_SIGNAL_IEQ; - cmd.request.hdr.len = sizeof(cmd.request); - - cmd.request.rgid = rgid; - cmd.request.trigger_irq = trigger_irq; - cmd.request.event_code = event_code; - cmd.request.info = info; - - return ism_cmd(ism, &cmd); -} - static unsigned int max_bytes(unsigned int start, unsigned int len, unsigned int boundary) { @@ -503,14 +469,6 @@ } EXPORT_SYMBOL_GPL(ism_get_seid); -static u16 ism_get_chid(struct ism_dev *ism) -{ - if (!ism || !ism->pdev) - return 0; - - return to_zpci(ism->pdev)->pchid; -} - static void ism_handle_event(struct ism_dev *ism) { struct ism_event *entry; @@ -569,11 +527,6 @@ return IRQ_HANDLED; } -static u64 ism_get_local_gid(struct ism_dev *ism) -{ - return ism->local_gid; -} - static int ism_dev_init(struct ism_dev *ism) { struct pci_dev *pdev = ism->pdev; @@ -774,6 +727,22 @@ /*************************** SMC-D Implementation *****************************/ #if IS_ENABLED(CONFIG_SMC) +static int ism_query_rgid(struct ism_dev *ism, u64 rgid, u32 vid_valid, + u32 vid) +{ + union ism_query_rgid cmd; + + memset(&cmd, 0, sizeof(cmd)); + cmd.request.hdr.cmd = ISM_QUERY_RGID; + cmd.request.hdr.len = sizeof(cmd.request); + + cmd.request.rgid = rgid; + cmd.request.vlan_valid = vid_valid; + cmd.request.vlan_id = vid; + + return ism_cmd(ism, &cmd); +} + static int smcd_query_rgid(struct smcd_dev *smcd, u64 rgid, u32 vid_valid, u32 vid) { @@ -811,6 +780,23 @@ return ism_cmd_simple(smcd->priv, ISM_RESET_VLAN); } +static int ism_signal_ieq(struct ism_dev *ism, u64 rgid, u32 trigger_irq, + u32 event_code, u64 info) +{ + union ism_sig_ieq cmd; + + memset(&cmd, 0, sizeof(cmd)); + cmd.request.hdr.cmd = ISM_SIGNAL_IEQ; + cmd.request.hdr.len = sizeof(cmd.request); + + cmd.request.rgid = rgid; + cmd.request.trigger_irq = trigger_irq; + cmd.request.event_code = event_code; + cmd.request.info = info; + + return ism_cmd(ism, &cmd); +} + static int smcd_signal_ieq(struct smcd_dev *smcd, u64 rgid, u32 trigger_irq, u32 event_code, u64 info) { @@ -830,11 +816,24 @@ SYSTEM_EID.type[0] != '0'; } +static u64 ism_get_local_gid(struct ism_dev *ism) +{ + return ism->local_gid; +} + static u64 smcd_get_local_gid(struct smcd_dev *smcd) { return ism_get_local_gid(smcd->priv); } +static u16 ism_get_chid(struct ism_dev *ism) +{ + if (!ism || !ism->pdev) + return 0; + + return to_zpci(ism->pdev)->pchid; +} + static u16 smcd_get_chid(struct smcd_dev *smcd) { return ism_get_chid(smcd->priv); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/scsi/be2iscsi/be_main.c +++ linux-riscv-6.5.0/drivers/scsi/be2iscsi/be_main.c @@ -2710,6 +2710,7 @@ kfree(pwrb_context->pwrb_handle_base); kfree(pwrb_context->pwrb_handle_basestd); } + kfree(phwi_ctxt->be_wrbq); return -ENOMEM; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/scsi/ibmvscsi/ibmvfc.c +++ linux-riscv-6.5.0/drivers/scsi/ibmvscsi/ibmvfc.c @@ -22,7 +22,6 @@ #include #include #include -#include #include #include #include @@ -1519,7 +1518,11 @@ unsigned long flags; spin_lock_irqsave(&queue->l_lock, flags); - BUG_ON(list_empty(&queue->free)); + if (list_empty(&queue->free)) { + ibmvfc_log(queue->vhost, 4, "empty event pool on queue:%ld\n", queue->hwq_id); + spin_unlock_irqrestore(&queue->l_lock, flags); + return NULL; + } evt = list_entry(queue->free.next, struct ibmvfc_event, queue_list); atomic_set(&evt->free, 0); list_del(&evt->queue_list); @@ -1948,9 +1951,15 @@ if (vhost->using_channels) { scsi_channel = hwq % vhost->scsi_scrqs.active_queues; evt = ibmvfc_get_event(&vhost->scsi_scrqs.scrqs[scsi_channel]); + if (!evt) + return SCSI_MLQUEUE_HOST_BUSY; + evt->hwq = hwq % vhost->scsi_scrqs.active_queues; - } else + } else { evt = ibmvfc_get_event(&vhost->crq); + if (!evt) + return SCSI_MLQUEUE_HOST_BUSY; + } ibmvfc_init_event(evt, ibmvfc_scsi_done, IBMVFC_CMD_FORMAT); evt->cmnd = cmnd; @@ -2038,6 +2047,11 @@ vhost->aborting_passthru = 1; evt = ibmvfc_get_event(&vhost->crq); + if (!evt) { + spin_unlock_irqrestore(vhost->host->host_lock, flags); + return -ENOMEM; + } + ibmvfc_init_event(evt, ibmvfc_bsg_timeout_done, IBMVFC_MAD_FORMAT); tmf = &evt->iu.tmf; @@ -2096,6 +2110,10 @@ goto unlock_out; evt = ibmvfc_get_event(&vhost->crq); + if (!evt) { + rc = -ENOMEM; + goto unlock_out; + } ibmvfc_init_event(evt, ibmvfc_sync_completion, IBMVFC_MAD_FORMAT); plogi = &evt->iu.plogi; memset(plogi, 0, sizeof(*plogi)); @@ -2214,6 +2232,11 @@ } evt = ibmvfc_get_event(&vhost->crq); + if (!evt) { + spin_unlock_irqrestore(vhost->host->host_lock, flags); + rc = -ENOMEM; + goto out; + } ibmvfc_init_event(evt, ibmvfc_sync_completion, IBMVFC_MAD_FORMAT); mad = &evt->iu.passthru; @@ -2302,6 +2325,11 @@ else evt = ibmvfc_get_event(&vhost->crq); + if (!evt) { + spin_unlock_irqrestore(vhost->host->host_lock, flags); + return -ENOMEM; + } + ibmvfc_init_event(evt, ibmvfc_sync_completion, IBMVFC_CMD_FORMAT); tmf = ibmvfc_init_vfc_cmd(evt, sdev); iu = ibmvfc_get_fcp_iu(vhost, tmf); @@ -2505,6 +2533,8 @@ struct ibmvfc_tmf *tmf; evt = ibmvfc_get_event(queue); + if (!evt) + return NULL; ibmvfc_init_event(evt, ibmvfc_sync_completion, IBMVFC_MAD_FORMAT); tmf = &evt->iu.tmf; @@ -2561,6 +2591,11 @@ if (found_evt && vhost->logged_in) { evt = ibmvfc_init_tmf(&queues[i], sdev, type); + if (!evt) { + spin_unlock(queues[i].q_lock); + spin_unlock_irqrestore(vhost->host->host_lock, flags); + return -ENOMEM; + } evt->sync_iu = &queues[i].cancel_rsp; ibmvfc_send_event(evt, vhost, default_timeout); list_add_tail(&evt->cancel, &cancelq); @@ -2774,6 +2809,10 @@ if (vhost->state == IBMVFC_ACTIVE) { evt = ibmvfc_get_event(&vhost->crq); + if (!evt) { + spin_unlock_irqrestore(vhost->host->host_lock, flags); + return -ENOMEM; + } ibmvfc_init_event(evt, ibmvfc_sync_completion, IBMVFC_CMD_FORMAT); tmf = ibmvfc_init_vfc_cmd(evt, sdev); iu = ibmvfc_get_fcp_iu(vhost, tmf); @@ -4032,6 +4071,12 @@ kref_get(&tgt->kref); evt = ibmvfc_get_event(&vhost->crq); + if (!evt) { + ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE); + kref_put(&tgt->kref, ibmvfc_release_tgt); + __ibmvfc_reset_host(vhost); + return; + } vhost->discovery_threads++; ibmvfc_init_event(evt, ibmvfc_tgt_prli_done, IBMVFC_MAD_FORMAT); evt->tgt = tgt; @@ -4139,6 +4184,12 @@ kref_get(&tgt->kref); tgt->logo_rcvd = 0; evt = ibmvfc_get_event(&vhost->crq); + if (!evt) { + ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE); + kref_put(&tgt->kref, ibmvfc_release_tgt); + __ibmvfc_reset_host(vhost); + return; + } vhost->discovery_threads++; ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_INIT_WAIT); ibmvfc_init_event(evt, ibmvfc_tgt_plogi_done, IBMVFC_MAD_FORMAT); @@ -4215,6 +4266,8 @@ kref_get(&tgt->kref); evt = ibmvfc_get_event(&vhost->crq); + if (!evt) + return NULL; ibmvfc_init_event(evt, done, IBMVFC_MAD_FORMAT); evt->tgt = tgt; mad = &evt->iu.implicit_logout; @@ -4242,6 +4295,13 @@ vhost->discovery_threads++; evt = __ibmvfc_tgt_get_implicit_logout_evt(tgt, ibmvfc_tgt_implicit_logout_done); + if (!evt) { + vhost->discovery_threads--; + ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE); + kref_put(&tgt->kref, ibmvfc_release_tgt); + __ibmvfc_reset_host(vhost); + return; + } ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_INIT_WAIT); if (ibmvfc_send_event(evt, vhost, default_timeout)) { @@ -4381,6 +4441,12 @@ kref_get(&tgt->kref); evt = ibmvfc_get_event(&vhost->crq); + if (!evt) { + ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT); + kref_put(&tgt->kref, ibmvfc_release_tgt); + __ibmvfc_reset_host(vhost); + return; + } vhost->discovery_threads++; ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_INIT_WAIT); ibmvfc_init_event(evt, ibmvfc_tgt_move_login_done, IBMVFC_MAD_FORMAT); @@ -4547,6 +4613,14 @@ vhost->abort_threads++; kref_get(&tgt->kref); evt = ibmvfc_get_event(&vhost->crq); + if (!evt) { + tgt_err(tgt, "Failed to get cancel event for ADISC.\n"); + vhost->abort_threads--; + kref_put(&tgt->kref, ibmvfc_release_tgt); + __ibmvfc_reset_host(vhost); + spin_unlock_irqrestore(vhost->host->host_lock, flags); + return; + } ibmvfc_init_event(evt, ibmvfc_tgt_adisc_cancel_done, IBMVFC_MAD_FORMAT); evt->tgt = tgt; @@ -4597,6 +4671,12 @@ kref_get(&tgt->kref); evt = ibmvfc_get_event(&vhost->crq); + if (!evt) { + ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE); + kref_put(&tgt->kref, ibmvfc_release_tgt); + __ibmvfc_reset_host(vhost); + return; + } vhost->discovery_threads++; ibmvfc_init_event(evt, ibmvfc_tgt_adisc_done, IBMVFC_MAD_FORMAT); evt->tgt = tgt; @@ -4700,6 +4780,12 @@ kref_get(&tgt->kref); evt = ibmvfc_get_event(&vhost->crq); + if (!evt) { + ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_NONE); + kref_put(&tgt->kref, ibmvfc_release_tgt); + __ibmvfc_reset_host(vhost); + return; + } vhost->discovery_threads++; evt->tgt = tgt; ibmvfc_init_event(evt, ibmvfc_tgt_query_target_done, IBMVFC_MAD_FORMAT); @@ -4872,6 +4958,13 @@ { struct ibmvfc_discover_targets *mad; struct ibmvfc_event *evt = ibmvfc_get_event(&vhost->crq); + int level = IBMVFC_DEFAULT_LOG_LEVEL; + + if (!evt) { + ibmvfc_log(vhost, level, "Discover Targets failed: no available events\n"); + ibmvfc_hard_reset_host(vhost); + return; + } ibmvfc_init_event(evt, ibmvfc_discover_targets_done, IBMVFC_MAD_FORMAT); mad = &evt->iu.discover_targets; @@ -4949,8 +5042,15 @@ struct ibmvfc_scsi_channels *scrqs = &vhost->scsi_scrqs; unsigned int num_channels = min(vhost->client_scsi_channels, vhost->max_vios_scsi_channels); + int level = IBMVFC_DEFAULT_LOG_LEVEL; int i; + if (!evt) { + ibmvfc_log(vhost, level, "Channel Setup failed: no available events\n"); + ibmvfc_hard_reset_host(vhost); + return; + } + memset(setup_buf, 0, sizeof(*setup_buf)); if (num_channels == 0) setup_buf->flags = cpu_to_be32(IBMVFC_CANCEL_CHANNELS); @@ -5012,6 +5112,13 @@ { struct ibmvfc_channel_enquiry *mad; struct ibmvfc_event *evt = ibmvfc_get_event(&vhost->crq); + int level = IBMVFC_DEFAULT_LOG_LEVEL; + + if (!evt) { + ibmvfc_log(vhost, level, "Channel Enquiry failed: no available events\n"); + ibmvfc_hard_reset_host(vhost); + return; + } ibmvfc_init_event(evt, ibmvfc_channel_enquiry_done, IBMVFC_MAD_FORMAT); mad = &evt->iu.channel_enquiry; @@ -5134,6 +5241,12 @@ struct ibmvfc_npiv_login_mad *mad; struct ibmvfc_event *evt = ibmvfc_get_event(&vhost->crq); + if (!evt) { + ibmvfc_dbg(vhost, "NPIV Login failed: no available events\n"); + ibmvfc_hard_reset_host(vhost); + return; + } + ibmvfc_gather_partition_info(vhost); ibmvfc_set_login_info(vhost); ibmvfc_init_event(evt, ibmvfc_npiv_login_done, IBMVFC_MAD_FORMAT); @@ -5198,6 +5311,12 @@ struct ibmvfc_event *evt; evt = ibmvfc_get_event(&vhost->crq); + if (!evt) { + ibmvfc_dbg(vhost, "NPIV Logout failed: no available events\n"); + ibmvfc_hard_reset_host(vhost); + return; + } + ibmvfc_init_event(evt, ibmvfc_npiv_logout_done, IBMVFC_MAD_FORMAT); mad = &evt->iu.npiv_logout; @@ -5804,7 +5923,7 @@ irq_failed: do { rc = plpar_hcall_norets(H_FREE_SUB_CRQ, vdev->unit_address, scrq->cookie); - } while (rtas_busy_delay(rc)); + } while (rc == H_BUSY || H_IS_LONG_BUSY(rc)); reg_failed: LEAVE; return rc; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/scsi/libfc/fc_lport.c +++ linux-riscv-6.5.0/drivers/scsi/libfc/fc_lport.c @@ -241,6 +241,12 @@ } mutex_lock(&lport->disc.disc_mutex); lport->ptp_rdata = fc_rport_create(lport, remote_fid); + if (!lport->ptp_rdata) { + printk(KERN_WARNING "libfc: Failed to setup lport 0x%x\n", + lport->port_id); + mutex_unlock(&lport->disc.disc_mutex); + return; + } kref_get(&lport->ptp_rdata->kref); lport->ptp_rdata->ids.port_name = remote_wwpn; lport->ptp_rdata->ids.node_name = remote_wwnn; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/scsi/mpi3mr/mpi/mpi30_cnfg.h +++ linux-riscv-6.5.0/drivers/scsi/mpi3mr/mpi/mpi30_cnfg.h @@ -1482,7 +1482,7 @@ #define MPI3_SECURITY1_KEY_RECORD_MAX 1 #endif #ifndef MPI3_SECURITY1_PAD_MAX -#define MPI3_SECURITY1_PAD_MAX 1 +#define MPI3_SECURITY1_PAD_MAX 4 #endif union mpi3_security1_key_data { __le32 dword[128]; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/scsi/mpi3mr/mpi/mpi30_ioc.h +++ linux-riscv-6.5.0/drivers/scsi/mpi3mr/mpi/mpi30_ioc.h @@ -28,6 +28,7 @@ __le64 driver_information_address; }; +#define MPI3_IOCINIT_MSGFLAGS_SCSIIOSTATUSREPLY_SUPPORTED (0x04) #define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_MASK (0x03) #define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_NOT_USED (0x00) #define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_SEPARATED (0x01) @@ -600,6 +601,7 @@ __le16 threshold_count; __le16 attached_dev_handle; __le16 reserved12; + __le32 reserved14; }; #define MPI3_EVENT_PCI_ERROR_RC_THRESHOLD_EXCEEDED (0x00) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/scsi/mpi3mr/mpi/mpi30_transport.h +++ linux-riscv-6.5.0/drivers/scsi/mpi3mr/mpi/mpi30_transport.h @@ -18,7 +18,7 @@ #define MPI3_VERSION_MAJOR (3) #define MPI3_VERSION_MINOR (0) -#define MPI3_VERSION_UNIT (27) +#define MPI3_VERSION_UNIT (28) #define MPI3_VERSION_DEV (0) #define MPI3_DEVHANDLE_INVALID (0xffff) struct mpi3_sysif_oper_queue_indexes { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/scsi/mpi3mr/mpi3mr.h +++ linux-riscv-6.5.0/drivers/scsi/mpi3mr/mpi3mr.h @@ -55,8 +55,8 @@ extern int prot_mask; extern atomic64_t event_counter; -#define MPI3MR_DRIVER_VERSION "8.4.1.0.0" -#define MPI3MR_DRIVER_RELDATE "16-March-2023" +#define MPI3MR_DRIVER_VERSION "8.5.1.0.0" +#define MPI3MR_DRIVER_RELDATE "5-December-2023" #define MPI3MR_DRIVER_NAME "mpi3mr" #define MPI3MR_DRIVER_LICENSE "GPL" @@ -66,11 +66,12 @@ #define MPI3MR_NAME_LENGTH 32 #define IOCNAME "%s: " -#define MPI3MR_MAX_SECTORS 2048 +#define MPI3MR_DEFAULT_MAX_IO_SIZE (1 * 1024 * 1024) /* Definitions for internal SGL and Chain SGL buffers */ #define MPI3MR_PAGE_SIZE_4K 4096 -#define MPI3MR_SG_DEPTH (MPI3MR_PAGE_SIZE_4K / sizeof(struct mpi3_sge_common)) +#define MPI3MR_DEFAULT_SGL_ENTRIES 256 +#define MPI3MR_MAX_SGL_ENTRIES 2048 /* Definitions for MAX values for shost */ #define MPI3MR_MAX_CMDS_LUN 128 @@ -206,6 +207,9 @@ */ #define MPI3MR_MAX_APP_XFER_SECTORS (2048 + 512) +#define MPI3MR_WRITE_SAME_MAX_LEN_256_BLKS 256 +#define MPI3MR_WRITE_SAME_MAX_LEN_2048_BLKS 2048 + /** * struct mpi3mr_nvme_pt_sge - Structure to store SGEs for NVMe * Encapsulated commands. @@ -214,14 +218,16 @@ * @length: SGE length * @rsvd: Reserved * @rsvd1: Reserved - * @sgl_type: sgl type + * @sub_type: sgl sub type + * @type: sgl type */ struct mpi3mr_nvme_pt_sge { - u64 base_addr; - u32 length; + __le64 base_addr; + __le32 length; u16 rsvd; u8 rsvd1; - u8 sgl_type; + u8 sub_type:4; + u8 type:4; }; /** @@ -243,6 +249,8 @@ u32 kern_buf_len; dma_addr_t kern_buf_dma; u8 data_dir; + u16 num_dma_desc; + struct dma_memory_desc *dma_desc; }; /* IOC State definitions */ @@ -323,6 +331,7 @@ u16 max_perids; u16 max_pds; u16 max_sasexpanders; + u32 max_data_length; u16 max_sasinitiators; u16 max_enclosures; u16 max_pcie_switches; @@ -472,6 +481,10 @@ /* HBA port flags */ #define MPI3MR_HBA_PORT_FLAG_DIRTY 0x01 +/* IOCTL data transfer sge*/ +#define MPI3MR_NUM_IOCTL_SGE 256 +#define MPI3MR_IOCTL_SGE_SIZE (8 * 1024) + /** * struct mpi3mr_hba_port - HBA's port information * @port_id: Port number @@ -501,7 +514,7 @@ u8 num_phys; u8 marked_responding; int lowest_phy; - u32 phy_mask; + u64 phy_mask; struct mpi3mr_hba_port *hba_port; struct sas_identify remote_identify; struct sas_rphy *rphy; @@ -676,6 +689,7 @@ * @io_unit_port: IO Unit port ID * @non_stl: Is this device not to be attached with SAS TL * @io_throttle_enabled: I/O throttling needed or not + * @wslen: Write same max length * @q_depth: Device specific Queue Depth * @wwid: World wide ID * @enclosure_logical_id: Enclosure logical identifier @@ -698,6 +712,7 @@ u8 io_unit_port; u8 non_stl; u8 io_throttle_enabled; + u16 wslen; u16 q_depth; u64 wwid; u64 enclosure_logical_id; @@ -751,6 +766,8 @@ * @dev_removed: Device removed in the Firmware * @dev_removedelay: Device is waiting to be removed in FW * @dev_type: Device type + * @dev_nvme_dif: Device is NVMe DIF enabled + * @wslen: Write same max length * @io_throttle_enabled: I/O throttling needed or not * @io_divert: Flag indicates io divert is on or off for the dev * @throttle_group: Pointer to throttle group info @@ -767,6 +784,8 @@ u8 dev_removed; u8 dev_removedelay; u8 dev_type; + u8 dev_nvme_dif; + u16 wslen; u8 io_throttle_enabled; u8 io_divert; struct mpi3mr_throttle_group_info *throttle_group; @@ -782,12 +801,14 @@ * @ncq_prio_enable: NCQ priority enable for SATA device * @pend_count: Counter to track pending I/Os during error * handling + * @wslen: Write same max length */ struct mpi3mr_sdev_priv_data { struct mpi3mr_stgt_priv_data *tgt_priv_data; u32 lun_id; u8 ncq_prio_enable; u32 pend_count; + u16 wslen; }; /** @@ -959,6 +980,7 @@ * @stop_drv_processing: Stop all command processing * @device_refresh_on: Don't process the events until devices are refreshed * @max_host_ios: Maximum host I/O count + * @max_sgl_entries: Max SGL entries per I/O * @chain_buf_count: Chain buffer count * @chain_buf_pool: Chain buffer pool * @chain_sgl_list: Chain SGL list @@ -1028,6 +1050,11 @@ * @sas_node_lock: Lock to protect SAS node list * @hba_port_table_list: List of HBA Ports * @enclosure_list: List of Enclosure objects + * @ioctl_dma_pool: DMA pool for IOCTL data buffers + * @ioctl_sge: DMA buffer descriptors for IOCTL data + * @ioctl_chain_sge: DMA buffer descriptor for IOCTL chain + * @ioctl_resp_sge: DMA buffer descriptor for Mgmt cmd response + * @ioctl_sges_allocated: Flag for IOCTL SGEs allocated or not */ struct mpi3mr_ioc { struct list_head list; @@ -1129,6 +1156,7 @@ u16 max_host_ios; spinlock_t tgtdev_lock; struct list_head tgtdev_list; + u16 max_sgl_entries; u32 chain_buf_count; struct dma_pool *chain_buf_pool; @@ -1212,6 +1240,12 @@ spinlock_t sas_node_lock; struct list_head hba_port_table_list; struct list_head enclosure_list; + + struct dma_pool *ioctl_dma_pool; + struct dma_memory_desc ioctl_sge[MPI3MR_NUM_IOCTL_SGE]; + struct dma_memory_desc ioctl_chain_sge; + struct dma_memory_desc ioctl_resp_sge; + bool ioctl_sges_allocated; }; /** only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/scsi/mpi3mr/mpi3mr_app.c +++ linux-riscv-6.5.0/drivers/scsi/mpi3mr/mpi3mr_app.c @@ -223,6 +223,22 @@ return rval; } + if (mrioc->unrecoverable) { + dprint_bsg_err(mrioc, "%s: unrecoverable controller\n", + __func__); + return -EFAULT; + } + + if (mrioc->reset_in_progress) { + dprint_bsg_err(mrioc, "%s: reset in progress\n", __func__); + return -EAGAIN; + } + + if (mrioc->stop_bsgs) { + dprint_bsg_err(mrioc, "%s: bsgs are blocked\n", __func__); + return -EAGAIN; + } + sg_copy_to_buffer(job->request_payload.sg_list, job->request_payload.sg_cnt, &pel_enable, sizeof(pel_enable)); @@ -548,7 +564,36 @@ } /** + * mpi3mr_total_num_ioctl_sges - Count number of SGEs required + * @drv_bufs: DMA address of the buffers to be placed in sgl + * @bufcnt: Number of DMA buffers + * + * This function returns total number of data SGEs required + * including zero length SGEs and excluding management request + * and response buffer for the given list of data buffer + * descriptors + * + * Return: Number of SGE elements needed + */ +static inline u16 mpi3mr_total_num_ioctl_sges(struct mpi3mr_buf_map *drv_bufs, + u8 bufcnt) +{ + u16 i, sge_count = 0; + + for (i = 0; i < bufcnt; i++, drv_bufs++) { + if (drv_bufs->data_dir == DMA_NONE || + drv_bufs->kern_buf) + continue; + sge_count += drv_bufs->num_dma_desc; + if (!drv_bufs->num_dma_desc) + sge_count++; + } + return sge_count; +} + +/** * mpi3mr_bsg_build_sgl - SGL construction for MPI commands + * @mrioc: Adapter instance reference * @mpi_req: MPI request * @sgl_offset: offset to start sgl in the MPI request * @drv_bufs: DMA address of the buffers to be placed in sgl @@ -560,27 +605,45 @@ * This function places the DMA address of the given buffers in * proper format as SGEs in the given MPI request. * - * Return: Nothing + * Return: 0 on success,-1 on failure */ -static void mpi3mr_bsg_build_sgl(u8 *mpi_req, uint32_t sgl_offset, - struct mpi3mr_buf_map *drv_bufs, u8 bufcnt, u8 is_rmc, - u8 is_rmr, u8 num_datasges) +static int mpi3mr_bsg_build_sgl(struct mpi3mr_ioc *mrioc, u8 *mpi_req, + u32 sgl_offset, struct mpi3mr_buf_map *drv_bufs, + u8 bufcnt, u8 is_rmc, u8 is_rmr, u8 num_datasges) { + struct mpi3_request_header *mpi_header = + (struct mpi3_request_header *)mpi_req; u8 *sgl = (mpi_req + sgl_offset), count = 0; struct mpi3_mgmt_passthrough_request *rmgmt_req = (struct mpi3_mgmt_passthrough_request *)mpi_req; struct mpi3mr_buf_map *drv_buf_iter = drv_bufs; - u8 sgl_flags, sgl_flags_last; + u8 flag, sgl_flags, sgl_flag_eob, sgl_flags_last, last_chain_sgl_flag; + u16 available_sges, i, sges_needed; + u32 sge_element_size = sizeof(struct mpi3_sge_common); + bool chain_used = false; sgl_flags = MPI3_SGE_FLAGS_ELEMENT_TYPE_SIMPLE | - MPI3_SGE_FLAGS_DLAS_SYSTEM | MPI3_SGE_FLAGS_END_OF_BUFFER; - sgl_flags_last = sgl_flags | MPI3_SGE_FLAGS_END_OF_LIST; + MPI3_SGE_FLAGS_DLAS_SYSTEM; + sgl_flag_eob = sgl_flags | MPI3_SGE_FLAGS_END_OF_BUFFER; + sgl_flags_last = sgl_flag_eob | MPI3_SGE_FLAGS_END_OF_LIST; + last_chain_sgl_flag = MPI3_SGE_FLAGS_ELEMENT_TYPE_LAST_CHAIN | + MPI3_SGE_FLAGS_DLAS_SYSTEM; + + sges_needed = mpi3mr_total_num_ioctl_sges(drv_bufs, bufcnt); if (is_rmc) { mpi3mr_add_sg_single(&rmgmt_req->command_sgl, sgl_flags_last, drv_buf_iter->kern_buf_len, drv_buf_iter->kern_buf_dma); - sgl = (u8 *)drv_buf_iter->kern_buf + drv_buf_iter->bsg_buf_len; + sgl = (u8 *)drv_buf_iter->kern_buf + + drv_buf_iter->bsg_buf_len; + available_sges = (drv_buf_iter->kern_buf_len - + drv_buf_iter->bsg_buf_len) / sge_element_size; + + if (sges_needed > available_sges) + return -1; + + chain_used = true; drv_buf_iter++; count++; if (is_rmr) { @@ -592,23 +655,95 @@ } else mpi3mr_build_zero_len_sge( &rmgmt_req->response_sgl); + if (num_datasges) { + i = 0; + goto build_sges; + } + } else { + if (sgl_offset >= MPI3MR_ADMIN_REQ_FRAME_SZ) + return -1; + available_sges = (MPI3MR_ADMIN_REQ_FRAME_SZ - sgl_offset) / + sge_element_size; + if (!available_sges) + return -1; } if (!num_datasges) { mpi3mr_build_zero_len_sge(sgl); - return; + return 0; + } + if (mpi_header->function == MPI3_BSG_FUNCTION_SMP_PASSTHROUGH) { + if ((sges_needed > 2) || (sges_needed > available_sges)) + return -1; + for (; count < bufcnt; count++, drv_buf_iter++) { + if (drv_buf_iter->data_dir == DMA_NONE || + !drv_buf_iter->num_dma_desc) + continue; + mpi3mr_add_sg_single(sgl, sgl_flags_last, + drv_buf_iter->dma_desc[0].size, + drv_buf_iter->dma_desc[0].dma_addr); + sgl += sge_element_size; + } + return 0; } + i = 0; + +build_sges: for (; count < bufcnt; count++, drv_buf_iter++) { if (drv_buf_iter->data_dir == DMA_NONE) continue; - if (num_datasges == 1 || !is_rmc) - mpi3mr_add_sg_single(sgl, sgl_flags_last, - drv_buf_iter->kern_buf_len, drv_buf_iter->kern_buf_dma); - else - mpi3mr_add_sg_single(sgl, sgl_flags, - drv_buf_iter->kern_buf_len, drv_buf_iter->kern_buf_dma); - sgl += sizeof(struct mpi3_sge_common); + if (!drv_buf_iter->num_dma_desc) { + if (chain_used && !available_sges) + return -1; + if (!chain_used && (available_sges == 1) && + (sges_needed > 1)) + goto setup_chain; + flag = sgl_flag_eob; + if (num_datasges == 1) + flag = sgl_flags_last; + mpi3mr_add_sg_single(sgl, flag, 0, 0); + sgl += sge_element_size; + sges_needed--; + available_sges--; + num_datasges--; + continue; + } + for (; i < drv_buf_iter->num_dma_desc; i++) { + if (chain_used && !available_sges) + return -1; + if (!chain_used && (available_sges == 1) && + (sges_needed > 1)) + goto setup_chain; + flag = sgl_flags; + if (i == (drv_buf_iter->num_dma_desc - 1)) { + if (num_datasges == 1) + flag = sgl_flags_last; + else + flag = sgl_flag_eob; + } + + mpi3mr_add_sg_single(sgl, flag, + drv_buf_iter->dma_desc[i].size, + drv_buf_iter->dma_desc[i].dma_addr); + sgl += sge_element_size; + available_sges--; + sges_needed--; + } num_datasges--; + i = 0; } + return 0; + +setup_chain: + available_sges = mrioc->ioctl_chain_sge.size / sge_element_size; + if (sges_needed > available_sges) + return -1; + mpi3mr_add_sg_single(sgl, last_chain_sgl_flag, + (sges_needed * sge_element_size), + mrioc->ioctl_chain_sge.dma_addr); + memset(mrioc->ioctl_chain_sge.addr, 0, mrioc->ioctl_chain_sge.size); + sgl = (u8 *)mrioc->ioctl_chain_sge.addr; + chain_used = true; + goto build_sges; } /** @@ -648,14 +783,20 @@ struct mpi3mr_buf_map *drv_bufs, u8 bufcnt) { struct mpi3mr_nvme_pt_sge *nvme_sgl; - u64 sgl_ptr; + __le64 sgl_dma; u8 count; size_t length = 0; + u16 available_sges = 0, i; + u32 sge_element_size = sizeof(struct mpi3mr_nvme_pt_sge); struct mpi3mr_buf_map *drv_buf_iter = drv_bufs; u64 sgemod_mask = ((u64)((mrioc->facts.sge_mod_mask) << mrioc->facts.sge_mod_shift) << 32); u64 sgemod_val = ((u64)(mrioc->facts.sge_mod_value) << mrioc->facts.sge_mod_shift) << 32; + u32 size; + + nvme_sgl = (struct mpi3mr_nvme_pt_sge *) + ((u8 *)(nvme_encap_request->command) + MPI3MR_NVME_CMD_SGL_OFFSET); /* * Not all commands require a data transfer. If no data, just return @@ -664,27 +805,59 @@ for (count = 0; count < bufcnt; count++, drv_buf_iter++) { if (drv_buf_iter->data_dir == DMA_NONE) continue; - sgl_ptr = (u64)drv_buf_iter->kern_buf_dma; length = drv_buf_iter->kern_buf_len; break; } - if (!length) + if (!length || !drv_buf_iter->num_dma_desc) return 0; - if (sgl_ptr & sgemod_mask) { + if (drv_buf_iter->num_dma_desc == 1) { + available_sges = 1; + goto build_sges; + } + + sgl_dma = cpu_to_le64(mrioc->ioctl_chain_sge.dma_addr); + if (sgl_dma & sgemod_mask) { dprint_bsg_err(mrioc, - "%s: SGL address collides with SGE modifier\n", + "%s: SGL chain address collides with SGE modifier\n", __func__); return -1; } - sgl_ptr &= ~sgemod_mask; - sgl_ptr |= sgemod_val; - nvme_sgl = (struct mpi3mr_nvme_pt_sge *) - ((u8 *)(nvme_encap_request->command) + MPI3MR_NVME_CMD_SGL_OFFSET); + sgl_dma &= ~sgemod_mask; + sgl_dma |= sgemod_val; + + memset(mrioc->ioctl_chain_sge.addr, 0, mrioc->ioctl_chain_sge.size); + available_sges = mrioc->ioctl_chain_sge.size / sge_element_size; + if (available_sges < drv_buf_iter->num_dma_desc) + return -1; memset(nvme_sgl, 0, sizeof(struct mpi3mr_nvme_pt_sge)); - nvme_sgl->base_addr = sgl_ptr; - nvme_sgl->length = length; + nvme_sgl->base_addr = sgl_dma; + size = drv_buf_iter->num_dma_desc * sizeof(struct mpi3mr_nvme_pt_sge); + nvme_sgl->length = cpu_to_le32(size); + nvme_sgl->type = MPI3MR_NVMESGL_LAST_SEGMENT; + nvme_sgl = (struct mpi3mr_nvme_pt_sge *)mrioc->ioctl_chain_sge.addr; + +build_sges: + for (i = 0; i < drv_buf_iter->num_dma_desc; i++) { + sgl_dma = cpu_to_le64(drv_buf_iter->dma_desc[i].dma_addr); + if (sgl_dma & sgemod_mask) { + dprint_bsg_err(mrioc, + "%s: SGL address collides with SGE modifier\n", + __func__); + return -1; + } + + sgl_dma &= ~sgemod_mask; + sgl_dma |= sgemod_val; + + nvme_sgl->base_addr = sgl_dma; + nvme_sgl->length = cpu_to_le32(drv_buf_iter->dma_desc[i].size); + nvme_sgl->type = MPI3MR_NVMESGL_DATA_SEGMENT; + nvme_sgl++; + available_sges--; + } + return 0; } @@ -712,7 +885,7 @@ dma_addr_t prp_entry_dma, prp_page_dma, dma_addr; u32 offset, entry_len, dev_pgsz; u32 page_mask_result, page_mask; - size_t length = 0; + size_t length = 0, desc_len; u8 count; struct mpi3mr_buf_map *drv_buf_iter = drv_bufs; u64 sgemod_mask = ((u64)((mrioc->facts.sge_mod_mask) << @@ -721,6 +894,7 @@ mrioc->facts.sge_mod_shift) << 32; u16 dev_handle = nvme_encap_request->dev_handle; struct mpi3mr_tgt_dev *tgtdev; + u16 desc_count = 0; tgtdev = mpi3mr_get_tgtdev_by_handle(mrioc, dev_handle); if (!tgtdev) { @@ -739,6 +913,21 @@ dev_pgsz = 1 << (tgtdev->dev_spec.pcie_inf.pgsz); mpi3mr_tgtdev_put(tgtdev); + page_mask = dev_pgsz - 1; + + if (dev_pgsz > MPI3MR_IOCTL_SGE_SIZE) { + dprint_bsg_err(mrioc, + "%s: NVMe device page size(%d) is greater than ioctl data sge size(%d) for handle 0x%04x\n", + __func__, dev_pgsz, MPI3MR_IOCTL_SGE_SIZE, dev_handle); + return -1; + } + + if (MPI3MR_IOCTL_SGE_SIZE % dev_pgsz) { + dprint_bsg_err(mrioc, + "%s: ioctl data sge size(%d) is not a multiple of NVMe device page size(%d) for handle 0x%04x\n", + __func__, MPI3MR_IOCTL_SGE_SIZE, dev_pgsz, dev_handle); + return -1; + } /* * Not all commands require a data transfer. If no data, just return @@ -747,14 +936,26 @@ for (count = 0; count < bufcnt; count++, drv_buf_iter++) { if (drv_buf_iter->data_dir == DMA_NONE) continue; - dma_addr = drv_buf_iter->kern_buf_dma; length = drv_buf_iter->kern_buf_len; break; } - if (!length) + if (!length || !drv_buf_iter->num_dma_desc) return 0; + for (count = 0; count < drv_buf_iter->num_dma_desc; count++) { + dma_addr = drv_buf_iter->dma_desc[count].dma_addr; + if (dma_addr & page_mask) { + dprint_bsg_err(mrioc, + "%s:dma_addr 0x%llx is not aligned with page size 0x%x\n", + __func__, dma_addr, dev_pgsz); + return -1; + } + } + + dma_addr = drv_buf_iter->dma_desc[0].dma_addr; + desc_len = drv_buf_iter->dma_desc[0].size; + mrioc->prp_sz = 0; mrioc->prp_list_virt = dma_alloc_coherent(&mrioc->pdev->dev, dev_pgsz, &mrioc->prp_list_dma, GFP_KERNEL); @@ -784,7 +985,6 @@ * Check if we are within 1 entry of a page boundary we don't * want our first entry to be a PRP List entry. */ - page_mask = dev_pgsz - 1; page_mask_result = (uintptr_t)((u8 *)prp_page + prp_size) & page_mask; if (!page_mask_result) { dprint_bsg_err(mrioc, "%s: PRP page is not page aligned\n", @@ -898,18 +1098,31 @@ prp_entry_dma += prp_size; } - /* - * Bump the phys address of the command's data buffer by the - * entry_len. - */ - dma_addr += entry_len; - /* decrement length accounting for last partial page. */ - if (entry_len > length) + if (entry_len >= length) { length = 0; - else + } else { + if (entry_len <= desc_len) { + dma_addr += entry_len; + desc_len -= entry_len; + } + if (!desc_len) { + if ((++desc_count) >= + drv_buf_iter->num_dma_desc) { + dprint_bsg_err(mrioc, + "%s: Invalid len %ld while building PRP\n", + __func__, length); + goto err_out; + } + dma_addr = + drv_buf_iter->dma_desc[desc_count].dma_addr; + desc_len = + drv_buf_iter->dma_desc[desc_count].size; + } length -= entry_len; + } } + return 0; err_out: if (mrioc->prp_list_virt) { @@ -919,10 +1132,66 @@ } return -1; } + +/** + * mpi3mr_map_data_buffer_dma - build dma descriptors for data + * buffers + * @mrioc: Adapter instance reference + * @drv_buf: buffer map descriptor + * @desc_count: Number of already consumed dma descriptors + * + * This function computes how many pre-allocated DMA descriptors + * are required for the given data buffer and if those number of + * descriptors are free, then setup the mapping of the scattered + * DMA address to the given data buffer, if the data direction + * of the buffer is DMA_TO_DEVICE then the actual data is copied to + * the DMA buffers + * + * Return: 0 on success, -1 on failure + */ +static int mpi3mr_map_data_buffer_dma(struct mpi3mr_ioc *mrioc, + struct mpi3mr_buf_map *drv_buf, + u16 desc_count) +{ + u16 i, needed_desc = drv_buf->kern_buf_len / MPI3MR_IOCTL_SGE_SIZE; + u32 buf_len = drv_buf->kern_buf_len, copied_len = 0; + + if (drv_buf->kern_buf_len % MPI3MR_IOCTL_SGE_SIZE) + needed_desc++; + if ((needed_desc + desc_count) > MPI3MR_NUM_IOCTL_SGE) { + dprint_bsg_err(mrioc, "%s: DMA descriptor mapping error %d:%d:%d\n", + __func__, needed_desc, desc_count, MPI3MR_NUM_IOCTL_SGE); + return -1; + } + drv_buf->dma_desc = kzalloc(sizeof(*drv_buf->dma_desc) * needed_desc, + GFP_KERNEL); + if (!drv_buf->dma_desc) + return -1; + for (i = 0; i < needed_desc; i++, desc_count++) { + drv_buf->dma_desc[i].addr = mrioc->ioctl_sge[desc_count].addr; + drv_buf->dma_desc[i].dma_addr = + mrioc->ioctl_sge[desc_count].dma_addr; + if (buf_len < mrioc->ioctl_sge[desc_count].size) + drv_buf->dma_desc[i].size = buf_len; + else + drv_buf->dma_desc[i].size = + mrioc->ioctl_sge[desc_count].size; + buf_len -= drv_buf->dma_desc[i].size; + memset(drv_buf->dma_desc[i].addr, 0, + mrioc->ioctl_sge[desc_count].size); + if (drv_buf->data_dir == DMA_TO_DEVICE) { + memcpy(drv_buf->dma_desc[i].addr, + drv_buf->bsg_buf + copied_len, + drv_buf->dma_desc[i].size); + copied_len += drv_buf->dma_desc[i].size; + } + } + drv_buf->num_dma_desc = needed_desc; + return 0; +} /** * mpi3mr_bsg_process_mpt_cmds - MPI Pass through BSG handler * @job: BSG job reference - * @reply_payload_rcv_len: length of payload recvd * * This function is the top level handler for MPI Pass through * command, this does basic validation of the input data buffers, @@ -938,10 +1207,9 @@ * Return: 0 on success and proper error codes on failure */ -static long mpi3mr_bsg_process_mpt_cmds(struct bsg_job *job, unsigned int *reply_payload_rcv_len) +static long mpi3mr_bsg_process_mpt_cmds(struct bsg_job *job) { long rval = -EINVAL; - struct mpi3mr_ioc *mrioc = NULL; u8 *mpi_req = NULL, *sense_buff_k = NULL; u8 mpi_msg_size = 0; @@ -949,9 +1217,10 @@ struct mpi3mr_bsg_mptcmd *karg; struct mpi3mr_buf_entry *buf_entries = NULL; struct mpi3mr_buf_map *drv_bufs = NULL, *drv_buf_iter = NULL; - u8 count, bufcnt = 0, is_rmcb = 0, is_rmrb = 0, din_cnt = 0, dout_cnt = 0; - u8 invalid_be = 0, erb_offset = 0xFF, mpirep_offset = 0xFF, sg_entries = 0; - u8 block_io = 0, resp_code = 0, nvme_fmt = 0; + u8 count, bufcnt = 0, is_rmcb = 0, is_rmrb = 0; + u8 din_cnt = 0, dout_cnt = 0; + u8 invalid_be = 0, erb_offset = 0xFF, mpirep_offset = 0xFF; + u8 block_io = 0, nvme_fmt = 0, resp_code = 0; struct mpi3_request_header *mpi_header = NULL; struct mpi3_status_reply_descriptor *status_desc; struct mpi3_scsi_task_mgmt_request *tm_req; @@ -963,6 +1232,7 @@ u32 din_size = 0, dout_size = 0; u8 *din_buf = NULL, *dout_buf = NULL; u8 *sgl_iter = NULL, *sgl_din_iter = NULL, *sgl_dout_iter = NULL; + u16 rmc_size = 0, desc_count = 0; bsg_req = job->request; karg = (struct mpi3mr_bsg_mptcmd *)&bsg_req->cmd.mptcmd; @@ -971,6 +1241,12 @@ if (!mrioc) return -ENODEV; + if (!mrioc->ioctl_sges_allocated) { + dprint_bsg_err(mrioc, "%s: DMA memory was not allocated\n", + __func__); + return -ENOMEM; + } + if (karg->timeout < MPI3MR_APP_DEFAULT_TIMEOUT) karg->timeout = MPI3MR_APP_DEFAULT_TIMEOUT; @@ -1011,26 +1287,13 @@ for (count = 0; count < bufcnt; count++, buf_entries++, drv_buf_iter++) { - if (sgl_dout_iter > (dout_buf + job->request_payload.payload_len)) { - dprint_bsg_err(mrioc, "%s: data_out buffer length mismatch\n", - __func__); - rval = -EINVAL; - goto out; - } - if (sgl_din_iter > (din_buf + job->reply_payload.payload_len)) { - dprint_bsg_err(mrioc, "%s: data_in buffer length mismatch\n", - __func__); - rval = -EINVAL; - goto out; - } - switch (buf_entries->buf_type) { case MPI3MR_BSG_BUFTYPE_RAIDMGMT_CMD: sgl_iter = sgl_dout_iter; sgl_dout_iter += buf_entries->buf_len; drv_buf_iter->data_dir = DMA_TO_DEVICE; is_rmcb = 1; - if (count != 0) + if ((count != 0) || !buf_entries->buf_len) invalid_be = 1; break; case MPI3MR_BSG_BUFTYPE_RAIDMGMT_RESP: @@ -1038,7 +1301,7 @@ sgl_din_iter += buf_entries->buf_len; drv_buf_iter->data_dir = DMA_FROM_DEVICE; is_rmrb = 1; - if (count != 1 || !is_rmcb) + if (count != 1 || !is_rmcb || !buf_entries->buf_len) invalid_be = 1; break; case MPI3MR_BSG_BUFTYPE_DATA_IN: @@ -1046,7 +1309,7 @@ sgl_din_iter += buf_entries->buf_len; drv_buf_iter->data_dir = DMA_FROM_DEVICE; din_cnt++; - din_size += drv_buf_iter->bsg_buf_len; + din_size += buf_entries->buf_len; if ((din_cnt > 1) && !is_rmcb) invalid_be = 1; break; @@ -1055,7 +1318,7 @@ sgl_dout_iter += buf_entries->buf_len; drv_buf_iter->data_dir = DMA_TO_DEVICE; dout_cnt++; - dout_size += drv_buf_iter->bsg_buf_len; + dout_size += buf_entries->buf_len; if ((dout_cnt > 1) && !is_rmcb) invalid_be = 1; break; @@ -1064,12 +1327,16 @@ sgl_din_iter += buf_entries->buf_len; drv_buf_iter->data_dir = DMA_NONE; mpirep_offset = count; + if (!buf_entries->buf_len) + invalid_be = 1; break; case MPI3MR_BSG_BUFTYPE_ERR_RESPONSE: sgl_iter = sgl_din_iter; sgl_din_iter += buf_entries->buf_len; drv_buf_iter->data_dir = DMA_NONE; erb_offset = count; + if (!buf_entries->buf_len) + invalid_be = 1; break; case MPI3MR_BSG_BUFTYPE_MPI_REQUEST: sgl_iter = sgl_dout_iter; @@ -1096,21 +1363,31 @@ goto out; } - drv_buf_iter->bsg_buf = sgl_iter; - drv_buf_iter->bsg_buf_len = buf_entries->buf_len; - - } - if (!is_rmcb && (dout_cnt || din_cnt)) { - sg_entries = dout_cnt + din_cnt; - if (((mpi_msg_size) + (sg_entries * - sizeof(struct mpi3_sge_common))) > MPI3MR_ADMIN_REQ_FRAME_SZ) { - dprint_bsg_err(mrioc, - "%s:%d: invalid message size passed\n", - __func__, __LINE__); + if (sgl_dout_iter > (dout_buf + job->request_payload.payload_len)) { + dprint_bsg_err(mrioc, "%s: data_out buffer length mismatch\n", + __func__); rval = -EINVAL; goto out; } + if (sgl_din_iter > (din_buf + job->reply_payload.payload_len)) { + dprint_bsg_err(mrioc, "%s: data_in buffer length mismatch\n", + __func__); + rval = -EINVAL; + goto out; + } + + drv_buf_iter->bsg_buf = sgl_iter; + drv_buf_iter->bsg_buf_len = buf_entries->buf_len; } + + if (is_rmcb && ((din_size + dout_size) > MPI3MR_MAX_APP_XFER_SIZE)) { + dprint_bsg_err(mrioc, "%s:%d: invalid data transfer size passed for function 0x%x din_size = %d, dout_size = %d\n", + __func__, __LINE__, mpi_header->function, din_size, + dout_size); + rval = -EINVAL; + goto out; + } + if (din_size > MPI3MR_MAX_APP_XFER_SIZE) { dprint_bsg_err(mrioc, "%s:%d: invalid data transfer size passed for function 0x%x din_size=%d\n", @@ -1126,30 +1403,64 @@ goto out; } + if (mpi_header->function == MPI3_BSG_FUNCTION_SMP_PASSTHROUGH) { + if (din_size > MPI3MR_IOCTL_SGE_SIZE || + dout_size > MPI3MR_IOCTL_SGE_SIZE) { + dprint_bsg_err(mrioc, "%s:%d: invalid message size passed:%d:%d:%d:%d\n", + __func__, __LINE__, din_cnt, dout_cnt, din_size, + dout_size); + rval = -EINVAL; + goto out; + } + } + drv_buf_iter = drv_bufs; for (count = 0; count < bufcnt; count++, drv_buf_iter++) { if (drv_buf_iter->data_dir == DMA_NONE) continue; drv_buf_iter->kern_buf_len = drv_buf_iter->bsg_buf_len; - if (is_rmcb && !count) - drv_buf_iter->kern_buf_len += ((dout_cnt + din_cnt) * - sizeof(struct mpi3_sge_common)); - - if (!drv_buf_iter->kern_buf_len) - continue; - - drv_buf_iter->kern_buf = dma_alloc_coherent(&mrioc->pdev->dev, - drv_buf_iter->kern_buf_len, &drv_buf_iter->kern_buf_dma, - GFP_KERNEL); - if (!drv_buf_iter->kern_buf) { - rval = -ENOMEM; - goto out; - } - if (drv_buf_iter->data_dir == DMA_TO_DEVICE) { + if (is_rmcb && !count) { + drv_buf_iter->kern_buf_len = + mrioc->ioctl_chain_sge.size; + drv_buf_iter->kern_buf = + mrioc->ioctl_chain_sge.addr; + drv_buf_iter->kern_buf_dma = + mrioc->ioctl_chain_sge.dma_addr; + drv_buf_iter->dma_desc = NULL; + drv_buf_iter->num_dma_desc = 0; + memset(drv_buf_iter->kern_buf, 0, + drv_buf_iter->kern_buf_len); tmplen = min(drv_buf_iter->kern_buf_len, - drv_buf_iter->bsg_buf_len); + drv_buf_iter->bsg_buf_len); + rmc_size = tmplen; memcpy(drv_buf_iter->kern_buf, drv_buf_iter->bsg_buf, tmplen); + } else if (is_rmrb && (count == 1)) { + drv_buf_iter->kern_buf_len = + mrioc->ioctl_resp_sge.size; + drv_buf_iter->kern_buf = + mrioc->ioctl_resp_sge.addr; + drv_buf_iter->kern_buf_dma = + mrioc->ioctl_resp_sge.dma_addr; + drv_buf_iter->dma_desc = NULL; + drv_buf_iter->num_dma_desc = 0; + memset(drv_buf_iter->kern_buf, 0, + drv_buf_iter->kern_buf_len); + tmplen = min(drv_buf_iter->kern_buf_len, + drv_buf_iter->bsg_buf_len); + drv_buf_iter->kern_buf_len = tmplen; + memset(drv_buf_iter->bsg_buf, 0, + drv_buf_iter->bsg_buf_len); + } else { + if (!drv_buf_iter->kern_buf_len) + continue; + if (mpi3mr_map_data_buffer_dma(mrioc, drv_buf_iter, desc_count)) { + rval = -ENOMEM; + dprint_bsg_err(mrioc, "%s:%d: mapping data buffers failed\n", + __func__, __LINE__); + goto out; + } + desc_count += drv_buf_iter->num_dma_desc; } } @@ -1219,9 +1530,14 @@ goto out; } } else { - mpi3mr_bsg_build_sgl(mpi_req, (mpi_msg_size), - drv_bufs, bufcnt, is_rmcb, is_rmrb, - (dout_cnt + din_cnt)); + if (mpi3mr_bsg_build_sgl(mrioc, mpi_req, mpi_msg_size, + drv_bufs, bufcnt, is_rmcb, is_rmrb, + (dout_cnt + din_cnt))) { + dprint_bsg_err(mrioc, "%s: sgl build failed\n", __func__); + rval = -EAGAIN; + mutex_unlock(&mrioc->bsg_cmds.mutex); + goto out; + } } if (mpi_header->function == MPI3_BSG_FUNCTION_SCSI_TASK_MGMT) { @@ -1257,7 +1573,7 @@ if (mpi_header->function == MPI3_BSG_FUNCTION_MGMT_PASSTHROUGH) { drv_buf_iter = &drv_bufs[0]; dprint_dump(drv_buf_iter->kern_buf, - drv_buf_iter->kern_buf_len, "mpi3_mgmt_req"); + rmc_size, "mpi3_mgmt_req"); } } @@ -1292,10 +1608,9 @@ MPI3_BSG_FUNCTION_MGMT_PASSTHROUGH) { drv_buf_iter = &drv_bufs[0]; dprint_dump(drv_buf_iter->kern_buf, - drv_buf_iter->kern_buf_len, "mpi3_mgmt_req"); + rmc_size, "mpi3_mgmt_req"); } } - if ((mpi_header->function == MPI3_BSG_FUNCTION_NVME_ENCAPSULATED) || (mpi_header->function == MPI3_BSG_FUNCTION_SCSI_IO)) mpi3mr_issue_tm(mrioc, @@ -1366,17 +1681,27 @@ for (count = 0; count < bufcnt; count++, drv_buf_iter++) { if (drv_buf_iter->data_dir == DMA_NONE) continue; - if (drv_buf_iter->data_dir == DMA_FROM_DEVICE) { - tmplen = min(drv_buf_iter->kern_buf_len, - drv_buf_iter->bsg_buf_len); + if ((count == 1) && is_rmrb) { memcpy(drv_buf_iter->bsg_buf, - drv_buf_iter->kern_buf, tmplen); + drv_buf_iter->kern_buf, + drv_buf_iter->kern_buf_len); + } else if (drv_buf_iter->data_dir == DMA_FROM_DEVICE) { + tmplen = 0; + for (desc_count = 0; + desc_count < drv_buf_iter->num_dma_desc; + desc_count++) { + memcpy(((u8 *)drv_buf_iter->bsg_buf + tmplen), + drv_buf_iter->dma_desc[desc_count].addr, + drv_buf_iter->dma_desc[desc_count].size); + tmplen += + drv_buf_iter->dma_desc[desc_count].size; } } + } out_unlock: if (din_buf) { - *reply_payload_rcv_len = + job->reply_payload_rcv_len = sg_copy_from_buffer(job->reply_payload.sg_list, job->reply_payload.sg_cnt, din_buf, job->reply_payload.payload_len); @@ -1392,13 +1717,8 @@ kfree(mpi_req); if (drv_bufs) { drv_buf_iter = drv_bufs; - for (count = 0; count < bufcnt; count++, drv_buf_iter++) { - if (drv_buf_iter->kern_buf && drv_buf_iter->kern_buf_dma) - dma_free_coherent(&mrioc->pdev->dev, - drv_buf_iter->kern_buf_len, - drv_buf_iter->kern_buf, - drv_buf_iter->kern_buf_dma); - } + for (count = 0; count < bufcnt; count++, drv_buf_iter++) + kfree(drv_buf_iter->dma_desc); kfree(drv_bufs); } kfree(bsg_reply_buf); @@ -1457,7 +1777,7 @@ rval = mpi3mr_bsg_process_drv_cmds(job); break; case MPI3MR_MPT_CMD: - rval = mpi3mr_bsg_process_mpt_cmds(job, &reply_payload_rcv_len); + rval = mpi3mr_bsg_process_mpt_cmds(job); break; default: pr_err("%s: unsupported BSG command(0x%08x)\n", only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/scsi/mpi3mr/mpi3mr_fw.c +++ linux-riscv-6.5.0/drivers/scsi/mpi3mr/mpi3mr_fw.c @@ -1059,6 +1059,114 @@ } /** + * mpi3mr_free_ioctl_dma_memory - free memory for ioctl dma + * @mrioc: Adapter instance reference + * + * Free the DMA memory allocated for IOCTL handling purpose. + + * + * Return: None + */ +static void mpi3mr_free_ioctl_dma_memory(struct mpi3mr_ioc *mrioc) +{ + struct dma_memory_desc *mem_desc; + u16 i; + + if (!mrioc->ioctl_dma_pool) + return; + + for (i = 0; i < MPI3MR_NUM_IOCTL_SGE; i++) { + mem_desc = &mrioc->ioctl_sge[i]; + if (mem_desc->addr) { + dma_pool_free(mrioc->ioctl_dma_pool, + mem_desc->addr, + mem_desc->dma_addr); + mem_desc->addr = NULL; + } + } + dma_pool_destroy(mrioc->ioctl_dma_pool); + mrioc->ioctl_dma_pool = NULL; + mem_desc = &mrioc->ioctl_chain_sge; + + if (mem_desc->addr) { + dma_free_coherent(&mrioc->pdev->dev, mem_desc->size, + mem_desc->addr, mem_desc->dma_addr); + mem_desc->addr = NULL; + } + mem_desc = &mrioc->ioctl_resp_sge; + if (mem_desc->addr) { + dma_free_coherent(&mrioc->pdev->dev, mem_desc->size, + mem_desc->addr, mem_desc->dma_addr); + mem_desc->addr = NULL; + } + + mrioc->ioctl_sges_allocated = false; +} + +/** + * mpi3mr_alloc_ioctl_dma_memory - Alloc memory for ioctl dma + * @mrioc: Adapter instance reference + + * + * This function allocates dmaable memory required to handle the + * application issued MPI3 IOCTL requests. + * + * Return: None + */ +static void mpi3mr_alloc_ioctl_dma_memory(struct mpi3mr_ioc *mrioc) + +{ + struct dma_memory_desc *mem_desc; + u16 i; + + mrioc->ioctl_dma_pool = dma_pool_create("ioctl dma pool", + &mrioc->pdev->dev, + MPI3MR_IOCTL_SGE_SIZE, + MPI3MR_PAGE_SIZE_4K, 0); + + if (!mrioc->ioctl_dma_pool) { + ioc_err(mrioc, "ioctl_dma_pool: dma_pool_create failed\n"); + goto out_failed; + } + + for (i = 0; i < MPI3MR_NUM_IOCTL_SGE; i++) { + mem_desc = &mrioc->ioctl_sge[i]; + mem_desc->size = MPI3MR_IOCTL_SGE_SIZE; + mem_desc->addr = dma_pool_zalloc(mrioc->ioctl_dma_pool, + GFP_KERNEL, + &mem_desc->dma_addr); + if (!mem_desc->addr) + goto out_failed; + } + + mem_desc = &mrioc->ioctl_chain_sge; + mem_desc->size = MPI3MR_PAGE_SIZE_4K; + mem_desc->addr = dma_alloc_coherent(&mrioc->pdev->dev, + mem_desc->size, + &mem_desc->dma_addr, + GFP_KERNEL); + if (!mem_desc->addr) + goto out_failed; + + mem_desc = &mrioc->ioctl_resp_sge; + mem_desc->size = MPI3MR_PAGE_SIZE_4K; + mem_desc->addr = dma_alloc_coherent(&mrioc->pdev->dev, + mem_desc->size, + &mem_desc->dma_addr, + GFP_KERNEL); + if (!mem_desc->addr) + goto out_failed; + + mrioc->ioctl_sges_allocated = true; + + return; +out_failed: + ioc_warn(mrioc, "cannot allocate DMA memory for the mpt commands\n" + "from the applications, application interface for MPT command is disabled\n"); + mpi3mr_free_ioctl_dma_memory(mrioc); +} + +/** * mpi3mr_clear_reset_history - clear reset history * @mrioc: Adapter instance reference * @@ -1163,6 +1271,12 @@ return -EPERM; } + if (mrioc->shost->max_sectors != (mrioc->facts.max_data_length / 512)) + ioc_err(mrioc, "Warning: The maximum data transfer length\n" + "\tchanged after reset: previous(%d), new(%d),\n" + "the driver cannot change this at run time\n", + mrioc->shost->max_sectors * 512, mrioc->facts.max_data_length); + if ((mrioc->sas_transport_enabled) && (mrioc->facts.ioc_capabilities & MPI3_IOCFACTS_CAPABILITY_MULTIPATH_ENABLED)) ioc_err(mrioc, @@ -1886,7 +2000,8 @@ reply_qid = qidx + 1; op_reply_q->num_replies = MPI3MR_OP_REP_Q_QD; - if (!mrioc->pdev->revision) + if ((mrioc->pdev->device == MPI3_MFGPAGE_DEVID_SAS4116) && + !mrioc->pdev->revision) op_reply_q->num_replies = MPI3MR_OP_REP_Q_QD4K; op_reply_q->ci = 0; op_reply_q->ephase = 1; @@ -2343,8 +2458,8 @@ ioc_err(mrioc, "Issue IOUCTL time_stamp: command timed out\n"); mrioc->init_cmds.is_waiting = 0; if (!(mrioc->init_cmds.state & MPI3MR_CMD_RESET)) - mpi3mr_soft_reset_handler(mrioc, - MPI3MR_RESET_FROM_TSU_TIMEOUT, 1); + mpi3mr_check_rh_fault_ioc(mrioc, + MPI3MR_RESET_FROM_TSU_TIMEOUT); retval = -1; goto out_unlock; } @@ -2856,6 +2971,7 @@ le16_to_cpu(facts_data->max_pcie_switches); mrioc->facts.max_sasexpanders = le16_to_cpu(facts_data->max_sas_expanders); + mrioc->facts.max_data_length = le16_to_cpu(facts_data->max_data_length); mrioc->facts.max_sasinitiators = le16_to_cpu(facts_data->max_sas_initiators); mrioc->facts.max_enclosures = le16_to_cpu(facts_data->max_enclosures); @@ -2893,13 +3009,18 @@ mrioc->facts.io_throttle_high = le16_to_cpu(facts_data->io_throttle_high); + if (mrioc->facts.max_data_length == + MPI3_IOCFACTS_MAX_DATA_LENGTH_NOT_REPORTED) + mrioc->facts.max_data_length = MPI3MR_DEFAULT_MAX_IO_SIZE; + else + mrioc->facts.max_data_length *= MPI3MR_PAGE_SIZE_4K; /* Store in 512b block count */ if (mrioc->facts.io_throttle_data_length) mrioc->io_throttle_data_length = (mrioc->facts.io_throttle_data_length * 2 * 4); else /* set the length to 1MB + 1K to disable throttle */ - mrioc->io_throttle_data_length = MPI3MR_MAX_SECTORS + 2; + mrioc->io_throttle_data_length = (mrioc->facts.max_data_length / 512) + 2; mrioc->io_throttle_high = (mrioc->facts.io_throttle_high * 2 * 1024); mrioc->io_throttle_low = (mrioc->facts.io_throttle_low * 2 * 1024); @@ -2914,9 +3035,9 @@ ioc_info(mrioc, "SGEModMask 0x%x SGEModVal 0x%x SGEModShift 0x%x ", mrioc->facts.sge_mod_mask, mrioc->facts.sge_mod_value, mrioc->facts.sge_mod_shift); - ioc_info(mrioc, "DMA mask %d InitialPE status 0x%x\n", + ioc_info(mrioc, "DMA mask %d InitialPE status 0x%x max_data_len (%d)\n", mrioc->facts.dma_mask, (facts_flags & - MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_MASK)); + MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_MASK), mrioc->facts.max_data_length); ioc_info(mrioc, "max_dev_per_throttle_group(%d), max_throttle_groups(%d)\n", mrioc->facts.max_dev_per_tg, mrioc->facts.max_io_throttle_group); @@ -3181,6 +3302,9 @@ current_time = ktime_get_real(); iocinit_req.time_stamp = cpu_to_le64(ktime_to_ms(current_time)); + iocinit_req.msg_flags |= + MPI3_IOCINIT_MSGFLAGS_SCSIIOSTATUSREPLY_SUPPORTED; + init_completion(&mrioc->init_cmds.done); retval = mpi3mr_admin_request_post(mrioc, &iocinit_req, sizeof(iocinit_req), 1); @@ -3359,8 +3483,8 @@ if (!(mrioc->init_cmds.state & MPI3MR_CMD_COMPLETE)) { ioc_err(mrioc, "Issue EvtNotify: command timed out\n"); if (!(mrioc->init_cmds.state & MPI3MR_CMD_RESET)) - mpi3mr_soft_reset_handler(mrioc, - MPI3MR_RESET_FROM_EVTACK_TIMEOUT, 1); + mpi3mr_check_rh_fault_ioc(mrioc, + MPI3MR_RESET_FROM_EVTACK_TIMEOUT); retval = -1; goto out_unlock; } @@ -3414,7 +3538,14 @@ if (!mrioc->chain_sgl_list) goto out_failed; - sz = MPI3MR_PAGE_SIZE_4K; + if (mrioc->max_sgl_entries > (mrioc->facts.max_data_length / + MPI3MR_PAGE_SIZE_4K)) + mrioc->max_sgl_entries = mrioc->facts.max_data_length / + MPI3MR_PAGE_SIZE_4K; + sz = mrioc->max_sgl_entries * sizeof(struct mpi3_sge_common); + ioc_info(mrioc, "number of sgl entries=%d chain buffer size=%dKB\n", + mrioc->max_sgl_entries, sz/1024); + mrioc->chain_buf_pool = dma_pool_create("chain_buf pool", &mrioc->pdev->dev, sz, 16, 0); if (!mrioc->chain_buf_pool) { @@ -3813,7 +3944,7 @@ } mrioc->max_host_ios = mrioc->facts.max_reqs - MPI3MR_INTERNAL_CMDS_RESVD; - + mrioc->shost->max_sectors = mrioc->facts.max_data_length / 512; mrioc->num_io_throttle_group = mrioc->facts.max_io_throttle_group; atomic_set(&mrioc->pend_large_data_sz, 0); @@ -3851,6 +3982,9 @@ } } + dprint_init(mrioc, "allocating ioctl dma buffers\n"); + mpi3mr_alloc_ioctl_dma_memory(mrioc); + if (!mrioc->init_cmds.reply) { retval = mpi3mr_alloc_reply_sense_bufs(mrioc); if (retval) { @@ -4270,6 +4404,7 @@ struct mpi3mr_intr_info *intr_info; mpi3mr_free_enclosure_list(mrioc); + mpi3mr_free_ioctl_dma_memory(mrioc); if (mrioc->sense_buf_pool) { if (mrioc->sense_buf) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/scsi/mpi3mr/mpi3mr_os.c +++ linux-riscv-6.5.0/drivers/scsi/mpi3mr/mpi3mr_os.c @@ -33,6 +33,12 @@ module_param(logging_level, int, 0); MODULE_PARM_DESC(logging_level, " bits for enabling additional logging info (default=0)"); +static int max_sgl_entries = MPI3MR_DEFAULT_SGL_ENTRIES; +module_param(max_sgl_entries, int, 0444); +MODULE_PARM_DESC(max_sgl_entries, + "Preferred max number of SG entries to be used for a single I/O\n" + "The actual value will be determined by the driver\n" + "(Minimum=256, Maximum=2048, default=256)"); /* Forward declarations*/ static void mpi3mr_send_event_ack(struct mpi3mr_ioc *mrioc, u8 event, @@ -424,6 +430,7 @@ tgt_priv->io_throttle_enabled = 0; tgt_priv->io_divert = 0; tgt_priv->throttle_group = NULL; + tgt_priv->wslen = 0; if (tgtdev->host_exposed) atomic_set(&tgt_priv->block_io, 1); } @@ -1034,6 +1041,20 @@ void mpi3mr_rfresh_tgtdevs(struct mpi3mr_ioc *mrioc) { struct mpi3mr_tgt_dev *tgtdev, *tgtdev_next; + struct mpi3mr_stgt_priv_data *tgt_priv; + + dprint_reset(mrioc, "refresh target devices: check for removals\n"); + list_for_each_entry_safe(tgtdev, tgtdev_next, &mrioc->tgtdev_list, + list) { + if ((tgtdev->dev_handle == MPI3MR_INVALID_DEV_HANDLE) && + tgtdev->is_hidden && + tgtdev->host_exposed && tgtdev->starget && + tgtdev->starget->hostdata) { + tgt_priv = tgtdev->starget->hostdata; + tgt_priv->dev_removed = 1; + atomic_set(&tgt_priv->block_io, 0); + } + } list_for_each_entry_safe(tgtdev, tgtdev_next, &mrioc->tgtdev_list, list) { @@ -1044,14 +1065,24 @@ mpi3mr_remove_tgtdev_from_host(mrioc, tgtdev); mpi3mr_tgtdev_del_from_list(mrioc, tgtdev, true); mpi3mr_tgtdev_put(tgtdev); + } else if (tgtdev->is_hidden & tgtdev->host_exposed) { + dprint_reset(mrioc, "hiding target device with perst_id(%d)\n", + tgtdev->perst_id); + mpi3mr_remove_tgtdev_from_host(mrioc, tgtdev); } } tgtdev = NULL; list_for_each_entry(tgtdev, &mrioc->tgtdev_list, list) { if ((tgtdev->dev_handle != MPI3MR_INVALID_DEV_HANDLE) && - !tgtdev->is_hidden && !tgtdev->host_exposed) - mpi3mr_report_tgtdev_to_host(mrioc, tgtdev->perst_id); + !tgtdev->is_hidden) { + if (!tgtdev->host_exposed) + mpi3mr_report_tgtdev_to_host(mrioc, + tgtdev->perst_id); + else if (tgtdev->starget) + starget_for_each_device(tgtdev->starget, + (void *)tgtdev, mpi3mr_update_sdev); + } } } @@ -1102,6 +1133,18 @@ tgtdev->io_throttle_enabled = (flags & MPI3_DEVICE0_FLAGS_IO_THROTTLING_REQUIRED) ? 1 : 0; + switch (flags & MPI3_DEVICE0_FLAGS_MAX_WRITE_SAME_MASK) { + case MPI3_DEVICE0_FLAGS_MAX_WRITE_SAME_256_LB: + tgtdev->wslen = MPI3MR_WRITE_SAME_MAX_LEN_256_BLKS; + break; + case MPI3_DEVICE0_FLAGS_MAX_WRITE_SAME_2048_LB: + tgtdev->wslen = MPI3MR_WRITE_SAME_MAX_LEN_2048_BLKS; + break; + case MPI3_DEVICE0_FLAGS_MAX_WRITE_SAME_NO_LIMIT: + default: + tgtdev->wslen = 0; + break; + } if (tgtdev->starget && tgtdev->starget->hostdata) { scsi_tgt_priv_data = (struct mpi3mr_stgt_priv_data *) @@ -1113,6 +1156,7 @@ tgtdev->io_throttle_enabled; if (is_added == true) atomic_set(&scsi_tgt_priv_data->block_io, 0); + scsi_tgt_priv_data->wslen = tgtdev->wslen; } switch (dev_pg0->access_status) { @@ -3161,6 +3205,7 @@ tg = stgt_priv_data->throttle_group; throttle_enabled_dev = stgt_priv_data->io_throttle_enabled; + dev_handle = stgt_priv_data->dev_handle; } } if (unlikely((data_len_blks >= mrioc->io_throttle_data_length) && @@ -3413,7 +3458,7 @@ scsi_bufflen(scmd)); return -ENOMEM; } - if (sges_left > MPI3MR_SG_DEPTH) { + if (sges_left > mrioc->max_sgl_entries) { sdev_printk(KERN_ERR, scmd->device, "scsi_dma_map returned unsupported sge count %d!\n", sges_left); @@ -3934,23 +3979,90 @@ } /** + * mpi3mr_setup_divert_ws - Setup Divert IO flag for write same + * @mrioc: Adapter instance reference + * @scmd: SCSI command reference + * @scsiio_req: MPI3 SCSI IO request + * @scsiio_flags: Pointer to MPI3 SCSI IO Flags + * @wslen: write same max length + * + * Gets values of unmap, ndob and number of blocks from write + * same scsi io and based on these values it sets divert IO flag + * and reason for diverting IO to firmware. + * + * Return: Nothing + */ +static inline void mpi3mr_setup_divert_ws(struct mpi3mr_ioc *mrioc, + struct scsi_cmnd *scmd, struct mpi3_scsi_io_request *scsiio_req, + u32 *scsiio_flags, u16 wslen) +{ + u8 unmap = 0, ndob = 0; + u8 opcode = scmd->cmnd[0]; + u32 num_blocks = 0; + u16 sa = (scmd->cmnd[8] << 8) | (scmd->cmnd[9]); + + if (opcode == WRITE_SAME_16) { + unmap = scmd->cmnd[1] & 0x08; + ndob = scmd->cmnd[1] & 0x01; + num_blocks = get_unaligned_be32(scmd->cmnd + 10); + } else if ((opcode == VARIABLE_LENGTH_CMD) && (sa == WRITE_SAME_32)) { + unmap = scmd->cmnd[10] & 0x08; + ndob = scmd->cmnd[10] & 0x01; + num_blocks = get_unaligned_be32(scmd->cmnd + 28); + } else + return; + + if ((unmap) && (ndob) && (num_blocks > wslen)) { + scsiio_req->msg_flags |= + MPI3_SCSIIO_MSGFLAGS_DIVERT_TO_FIRMWARE; + *scsiio_flags |= + MPI3_SCSIIO_FLAGS_DIVERT_REASON_WRITE_SAME_TOO_LARGE; + } +} + +/** * mpi3mr_eh_host_reset - Host reset error handling callback * @scmd: SCSI command reference * - * Issue controller reset if the scmd is for a Physical Device, - * if the scmd is for RAID volume, then wait for - * MPI3MR_RAID_ERRREC_RESET_TIMEOUT and checke whether any - * pending I/Os prior to issuing reset to the controller. + * Issue controller reset * * Return: SUCCESS of successful reset else FAILED */ static int mpi3mr_eh_host_reset(struct scsi_cmnd *scmd) { struct mpi3mr_ioc *mrioc = shost_priv(scmd->device->host); + int retval = FAILED, ret; + + ret = mpi3mr_soft_reset_handler(mrioc, + MPI3MR_RESET_FROM_EH_HOS, 1); + if (ret) + goto out; + + retval = SUCCESS; +out: + sdev_printk(KERN_INFO, scmd->device, + "Host reset is %s for scmd(%p)\n", + ((retval == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); + + return retval; +} + +/** + * mpi3mr_eh_bus_reset - Bus reset error handling callback + * @scmd: SCSI command reference + * + * Checks whether pending I/Os are present for the RAID volume; + * if not there's no need to reset the adapter. + * + * Return: SUCCESS of successful reset else FAILED + */ +static int mpi3mr_eh_bus_reset(struct scsi_cmnd *scmd) +{ + struct mpi3mr_ioc *mrioc = shost_priv(scmd->device->host); struct mpi3mr_stgt_priv_data *stgt_priv_data; struct mpi3mr_sdev_priv_data *sdev_priv_data; u8 dev_type = MPI3_DEVICE_DEVFORM_VD; - int retval = FAILED, ret; + int retval = FAILED; sdev_priv_data = scmd->device->hostdata; if (sdev_priv_data && sdev_priv_data->tgt_priv_data) { @@ -3960,25 +4072,16 @@ if (dev_type == MPI3_DEVICE_DEVFORM_VD) { mpi3mr_wait_for_host_io(mrioc, - MPI3MR_RAID_ERRREC_RESET_TIMEOUT); - if (!mpi3mr_get_fw_pending_ios(mrioc)) { + MPI3MR_RAID_ERRREC_RESET_TIMEOUT); + if (!mpi3mr_get_fw_pending_ios(mrioc)) retval = SUCCESS; - goto out; - } } + if (retval == FAILED) + mpi3mr_print_pending_host_io(mrioc); - mpi3mr_print_pending_host_io(mrioc); - ret = mpi3mr_soft_reset_handler(mrioc, - MPI3MR_RESET_FROM_EH_HOS, 1); - if (ret) - goto out; - - retval = SUCCESS; -out: sdev_printk(KERN_INFO, scmd->device, - "Host reset is %s for scmd(%p)\n", - ((retval == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); - + "Bus reset is %s for scmd(%p)\n", + ((retval == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); return retval; } @@ -4430,7 +4533,6 @@ unsigned long flags; int retval = 0; struct sas_rphy *rphy = NULL; - bool update_stgt_priv_data = false; scsi_tgt_priv_data = kzalloc(sizeof(*scsi_tgt_priv_data), GFP_KERNEL); if (!scsi_tgt_priv_data) @@ -4439,39 +4541,50 @@ starget->hostdata = scsi_tgt_priv_data; spin_lock_irqsave(&mrioc->tgtdev_lock, flags); - if (starget->channel == mrioc->scsi_device_channel) { tgt_dev = __mpi3mr_get_tgtdev_by_perst_id(mrioc, starget->id); - if (tgt_dev && !tgt_dev->is_hidden) - update_stgt_priv_data = true; - else + if (tgt_dev && !tgt_dev->is_hidden) { + scsi_tgt_priv_data->starget = starget; + scsi_tgt_priv_data->dev_handle = tgt_dev->dev_handle; + scsi_tgt_priv_data->perst_id = tgt_dev->perst_id; + scsi_tgt_priv_data->dev_type = tgt_dev->dev_type; + scsi_tgt_priv_data->tgt_dev = tgt_dev; + tgt_dev->starget = starget; + atomic_set(&scsi_tgt_priv_data->block_io, 0); + retval = 0; + if ((tgt_dev->dev_type == MPI3_DEVICE_DEVFORM_PCIE) && + ((tgt_dev->dev_spec.pcie_inf.dev_info & + MPI3_DEVICE0_PCIE_DEVICE_INFO_TYPE_MASK) == + MPI3_DEVICE0_PCIE_DEVICE_INFO_TYPE_NVME_DEVICE) && + ((tgt_dev->dev_spec.pcie_inf.dev_info & + MPI3_DEVICE0_PCIE_DEVICE_INFO_PITYPE_MASK) != + MPI3_DEVICE0_PCIE_DEVICE_INFO_PITYPE_0)) + scsi_tgt_priv_data->dev_nvme_dif = 1; + scsi_tgt_priv_data->io_throttle_enabled = tgt_dev->io_throttle_enabled; + scsi_tgt_priv_data->wslen = tgt_dev->wslen; + if (tgt_dev->dev_type == MPI3_DEVICE_DEVFORM_VD) + scsi_tgt_priv_data->throttle_group = tgt_dev->dev_spec.vd_inf.tg; + } else retval = -ENXIO; } else if (mrioc->sas_transport_enabled && !starget->channel) { rphy = dev_to_rphy(starget->dev.parent); tgt_dev = __mpi3mr_get_tgtdev_by_addr_and_rphy(mrioc, rphy->identify.sas_address, rphy); if (tgt_dev && !tgt_dev->is_hidden && !tgt_dev->non_stl && - (tgt_dev->dev_type == MPI3_DEVICE_DEVFORM_SAS_SATA)) - update_stgt_priv_data = true; - else + (tgt_dev->dev_type == MPI3_DEVICE_DEVFORM_SAS_SATA)) { + scsi_tgt_priv_data->starget = starget; + scsi_tgt_priv_data->dev_handle = tgt_dev->dev_handle; + scsi_tgt_priv_data->perst_id = tgt_dev->perst_id; + scsi_tgt_priv_data->dev_type = tgt_dev->dev_type; + scsi_tgt_priv_data->tgt_dev = tgt_dev; + scsi_tgt_priv_data->io_throttle_enabled = tgt_dev->io_throttle_enabled; + scsi_tgt_priv_data->wslen = tgt_dev->wslen; + tgt_dev->starget = starget; + atomic_set(&scsi_tgt_priv_data->block_io, 0); + retval = 0; + } else retval = -ENXIO; } - - if (update_stgt_priv_data) { - scsi_tgt_priv_data->starget = starget; - scsi_tgt_priv_data->dev_handle = tgt_dev->dev_handle; - scsi_tgt_priv_data->perst_id = tgt_dev->perst_id; - scsi_tgt_priv_data->dev_type = tgt_dev->dev_type; - scsi_tgt_priv_data->tgt_dev = tgt_dev; - tgt_dev->starget = starget; - atomic_set(&scsi_tgt_priv_data->block_io, 0); - retval = 0; - scsi_tgt_priv_data->io_throttle_enabled = - tgt_dev->io_throttle_enabled; - if (tgt_dev->dev_type == MPI3_DEVICE_DEVFORM_VD) - scsi_tgt_priv_data->throttle_group = - tgt_dev->dev_spec.vd_inf.tg; - } spin_unlock_irqrestore(&mrioc->tgtdev_lock, flags); return retval; @@ -4732,6 +4845,10 @@ mpi3mr_setup_eedp(mrioc, scmd, scsiio_req); + if (stgt_priv_data->wslen) + mpi3mr_setup_divert_ws(mrioc, scmd, scsiio_req, &scsiio_flags, + stgt_priv_data->wslen); + memcpy(scsiio_req->cdb.cdb32, scmd->cmnd, scmd->cmd_len); scsiio_req->data_length = cpu_to_le32(scsi_bufflen(scmd)); scsiio_req->dev_handle = cpu_to_le16(dev_handle); @@ -4811,6 +4928,7 @@ .change_queue_depth = mpi3mr_change_queue_depth, .eh_device_reset_handler = mpi3mr_eh_dev_reset, .eh_target_reset_handler = mpi3mr_eh_target_reset, + .eh_bus_reset_handler = mpi3mr_eh_bus_reset, .eh_host_reset_handler = mpi3mr_eh_host_reset, .bios_param = mpi3mr_bios_param, .map_queues = mpi3mr_map_queues, @@ -4818,10 +4936,10 @@ .no_write_same = 1, .can_queue = 1, .this_id = -1, - .sg_tablesize = MPI3MR_SG_DEPTH, + .sg_tablesize = MPI3MR_DEFAULT_SGL_ENTRIES, /* max xfer supported is 1M (2K in 512 byte sized sectors) */ - .max_sectors = 2048, + .max_sectors = (MPI3MR_DEFAULT_MAX_IO_SIZE / 512), .cmd_per_lun = MPI3MR_MAX_CMDS_LUN, .max_segment_size = 0xffffffff, .track_queue_depth = 1, @@ -4995,7 +5113,10 @@ mpi3mr_init_drv_cmd(&mrioc->evtack_cmds[i], MPI3MR_HOSTTAG_EVTACKCMD_MIN + i); - if (pdev->revision) + if ((pdev->device == MPI3_MFGPAGE_DEVID_SAS4116) && + !pdev->revision) + mrioc->enable_segqueue = false; + else mrioc->enable_segqueue = true; init_waitqueue_head(&mrioc->reset_waitq); @@ -5004,6 +5125,16 @@ mrioc->pdev = pdev; mrioc->stop_bsgs = 1; + mrioc->max_sgl_entries = max_sgl_entries; + if (max_sgl_entries > MPI3MR_MAX_SGL_ENTRIES) + mrioc->max_sgl_entries = MPI3MR_MAX_SGL_ENTRIES; + else if (max_sgl_entries < MPI3MR_DEFAULT_SGL_ENTRIES) + mrioc->max_sgl_entries = MPI3MR_DEFAULT_SGL_ENTRIES; + else { + mrioc->max_sgl_entries /= MPI3MR_DEFAULT_SGL_ENTRIES; + mrioc->max_sgl_entries *= MPI3MR_DEFAULT_SGL_ENTRIES; + } + /* init shost parameters */ shost->max_cmd_len = MPI3MR_MAX_CDB_LENGTH; shost->max_lun = -1; @@ -5068,7 +5199,7 @@ shost->nr_maps = 3; shost->can_queue = mrioc->max_host_ios; - shost->sg_tablesize = MPI3MR_SG_DEPTH; + shost->sg_tablesize = mrioc->max_sgl_entries; shost->max_id = mrioc->facts.max_perids + 1; retval = scsi_add_host(shost, &pdev->dev); @@ -5314,6 +5445,14 @@ PCI_DEVICE_SUB(MPI3_MFGPAGE_VENDORID_BROADCOM, MPI3_MFGPAGE_DEVID_SAS4116, PCI_ANY_ID, PCI_ANY_ID) }, + { + PCI_DEVICE_SUB(MPI3_MFGPAGE_VENDORID_BROADCOM, + MPI3_MFGPAGE_DEVID_SAS5116_MPI, PCI_ANY_ID, PCI_ANY_ID) + }, + { + PCI_DEVICE_SUB(MPI3_MFGPAGE_VENDORID_BROADCOM, + MPI3_MFGPAGE_DEVID_SAS5116_MPI_MGMT, PCI_ANY_ID, PCI_ANY_ID) + }, { 0 } }; MODULE_DEVICE_TABLE(pci, mpi3mr_pci_id_table); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/scsi/mpi3mr/mpi3mr_transport.c +++ linux-riscv-6.5.0/drivers/scsi/mpi3mr/mpi3mr_transport.c @@ -1587,7 +1587,7 @@ */ struct host_port { u64 sas_address; - u32 phy_mask; + u64 phy_mask; u16 handle; u8 iounit_port_id; u8 used; @@ -1611,7 +1611,7 @@ struct mpi3mr_sas_port *mr_sas_port) { struct mpi3mr_sas_phy *mr_sas_phy; - u32 phy_mask_xor; + u64 phy_mask_xor; u64 phys_to_be_added, phys_to_be_removed; int i; @@ -1619,7 +1619,7 @@ mr_sas_port->marked_responding = 1; dev_info(&mr_sas_port->port->dev, - "sas_address(0x%016llx), old: port_id %d phy_mask 0x%x, new: port_id %d phy_mask:0x%x\n", + "sas_address(0x%016llx), old: port_id %d phy_mask 0x%llx, new: port_id %d phy_mask:0x%llx\n", mr_sas_port->remote_identify.sas_address, mr_sas_port->hba_port->port_id, mr_sas_port->phy_mask, h_port->iounit_port_id, h_port->phy_mask); @@ -1637,7 +1637,7 @@ * if these phys are previously registered with another port * then delete these phys from that port first. */ - for_each_set_bit(i, (ulong *) &phys_to_be_added, BITS_PER_TYPE(u32)) { + for_each_set_bit(i, (ulong *) &phys_to_be_added, BITS_PER_TYPE(u64)) { mr_sas_phy = &mrioc->sas_hba.phy[i]; if (mr_sas_phy->phy_belongs_to_port) mpi3mr_del_phy_from_an_existing_port(mrioc, @@ -1649,7 +1649,7 @@ } /* Delete the phys which are not part of current mr_sas_port's port. */ - for_each_set_bit(i, (ulong *) &phys_to_be_removed, BITS_PER_TYPE(u32)) { + for_each_set_bit(i, (ulong *) &phys_to_be_removed, BITS_PER_TYPE(u64)) { mr_sas_phy = &mrioc->sas_hba.phy[i]; if (mr_sas_phy->phy_belongs_to_port) mpi3mr_del_phy_from_an_existing_port(mrioc, @@ -1671,7 +1671,7 @@ void mpi3mr_refresh_sas_ports(struct mpi3mr_ioc *mrioc) { - struct host_port h_port[32]; + struct host_port h_port[64]; int i, j, found, host_port_count = 0, port_idx; u16 sz, attached_handle, ioc_status; struct mpi3_sas_io_unit_page0 *sas_io_unit_pg0 = NULL; @@ -1742,7 +1742,7 @@ list_for_each_entry(mr_sas_port, &mrioc->sas_hba.sas_port_list, port_list) { ioc_info(mrioc, - "port_id:%d, sas_address:(0x%016llx), phy_mask:(0x%x), lowest phy id:%d\n", + "port_id:%d, sas_address:(0x%016llx), phy_mask:(0x%llx), lowest phy id:%d\n", mr_sas_port->hba_port->port_id, mr_sas_port->remote_identify.sas_address, mr_sas_port->phy_mask, mr_sas_port->lowest_phy); @@ -1751,7 +1751,7 @@ ioc_info(mrioc, "Host port details after reset\n"); for (i = 0; i < host_port_count; i++) { ioc_info(mrioc, - "port_id:%d, sas_address:(0x%016llx), phy_mask:(0x%x), lowest phy id:%d\n", + "port_id:%d, sas_address:(0x%016llx), phy_mask:(0x%llx), lowest phy id:%d\n", h_port[i].iounit_port_id, h_port[i].sas_address, h_port[i].phy_mask, h_port[i].lowest_phy); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/scsi/mpt3sas/mpt3sas_scsih.c +++ linux-riscv-6.5.0/drivers/scsi/mpt3sas/mpt3sas_scsih.c @@ -12913,8 +12913,10 @@ mpt3sas_ctl_init(hbas_to_enumerate); error = pci_register_driver(&mpt3sas_driver); - if (error) + if (error) { + mpt3sas_ctl_exit(hbas_to_enumerate); scsih_exit(); + } return error; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/soc/amlogic/meson-ee-pwrc.c +++ linux-riscv-6.5.0/drivers/soc/amlogic/meson-ee-pwrc.c @@ -229,7 +229,7 @@ static struct meson_ee_pwrc_mem_domain g12a_pwrc_mem_nna[] = { { G12A_HHI_NANOQ_MEM_PD_REG0, GENMASK(31, 0) }, - { G12A_HHI_NANOQ_MEM_PD_REG1, GENMASK(23, 0) }, + { G12A_HHI_NANOQ_MEM_PD_REG1, GENMASK(31, 0) }, }; #define VPU_PD(__name, __top_pd, __mem, __is_pwr_off, __resets, __clks) \ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/soc/bcm/bcm2835-power.c +++ linux-riscv-6.5.0/drivers/soc/bcm/bcm2835-power.c @@ -175,7 +175,7 @@ } writel(PM_PASSWORD | val, base + reg); - while (readl(base + reg) & ASB_ACK) { + while (!!(readl(base + reg) & ASB_ACK) == enable) { cpu_relax(); if (ktime_get_ns() - start >= 1000) return -ETIMEDOUT; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/soc/imx/gpc.c +++ linux-riscv-6.5.0/drivers/soc/imx/gpc.c @@ -498,6 +498,7 @@ pd_pdev->dev.parent = &pdev->dev; pd_pdev->dev.of_node = np; + pd_pdev->dev.fwnode = of_fwnode_handle(np); ret = platform_device_add(pd_pdev); if (ret) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/soc/qcom/llcc-qcom.c +++ linux-riscv-6.5.0/drivers/soc/qcom/llcc-qcom.c @@ -945,6 +945,9 @@ u32 version; struct regmap *regmap; + if (!IS_ERR(drv_data)) + return -EBUSY; + drv_data = devm_kzalloc(dev, sizeof(*drv_data), GFP_KERNEL); if (!drv_data) { ret = -ENOMEM; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/soc/qcom/pmic_glink_altmode.c +++ linux-riscv-6.5.0/drivers/soc/qcom/pmic_glink_altmode.c @@ -416,7 +416,7 @@ alt_port->bridge.funcs = &pmic_glink_altmode_bridge_funcs; alt_port->bridge.of_node = to_of_node(fwnode); alt_port->bridge.ops = DRM_BRIDGE_OP_HPD; - alt_port->bridge.type = DRM_MODE_CONNECTOR_USB; + alt_port->bridge.type = DRM_MODE_CONNECTOR_DisplayPort; ret = devm_drm_bridge_add(dev, &alt_port->bridge); if (ret) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/soundwire/dmi-quirks.c +++ linux-riscv-6.5.0/drivers/soundwire/dmi-quirks.c @@ -141,7 +141,7 @@ { .matches = { DMI_MATCH(DMI_SYS_VENDOR, "HP"), - DMI_MATCH(DMI_PRODUCT_NAME, "OMEN by HP Gaming Laptop 16-k0xxx"), + DMI_MATCH(DMI_PRODUCT_NAME, "OMEN by HP Gaming Laptop 16"), }, .driver_data = (void *)hp_omen_16, }, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/spi/Kconfig +++ linux-riscv-6.5.0/drivers/spi/Kconfig @@ -1124,6 +1124,7 @@ config SPI_ZYNQ_QSPI tristate "Xilinx Zynq QSPI controller" depends on ARCH_ZYNQ || COMPILE_TEST + depends on SPI_MEM help This enables support for the Zynq Quad SPI controller in master mode. only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/spi/spi-npcm-fiu.c +++ linux-riscv-6.5.0/drivers/spi/spi-npcm-fiu.c @@ -353,8 +353,9 @@ uma_cfg |= ilog2(op->cmd.buswidth); uma_cfg |= ilog2(op->addr.buswidth) << NPCM_FIU_UMA_CFG_ADBPCK_SHIFT; - uma_cfg |= ilog2(op->dummy.buswidth) - << NPCM_FIU_UMA_CFG_DBPCK_SHIFT; + if (op->dummy.nbytes) + uma_cfg |= ilog2(op->dummy.buswidth) + << NPCM_FIU_UMA_CFG_DBPCK_SHIFT; uma_cfg |= ilog2(op->data.buswidth) << NPCM_FIU_UMA_CFG_RDBPCK_SHIFT; uma_cfg |= op->dummy.nbytes << NPCM_FIU_UMA_CFG_DBSIZ_SHIFT; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/spi/spi-omap2-mcspi.c +++ linux-riscv-6.5.0/drivers/spi/spi-omap2-mcspi.c @@ -117,7 +117,7 @@ struct omap2_mcspi { struct completion txdone; - struct spi_master *master; + struct spi_controller *ctlr; /* Virtual base address of the controller */ void __iomem *base; unsigned long phys; @@ -125,10 +125,12 @@ struct omap2_mcspi_dma *dma_channels; struct device *dev; struct omap2_mcspi_regs ctx; + struct clk *ref_clk; int fifo_depth; - bool slave_aborted; + bool target_aborted; unsigned int pin_dir:1; size_t max_xfer_len; + u32 ref_clk_hz; }; struct omap2_mcspi_cs { @@ -141,17 +143,17 @@ u32 chconf0, chctrl0; }; -static inline void mcspi_write_reg(struct spi_master *master, +static inline void mcspi_write_reg(struct spi_controller *ctlr, int idx, u32 val) { - struct omap2_mcspi *mcspi = spi_master_get_devdata(master); + struct omap2_mcspi *mcspi = spi_controller_get_devdata(ctlr); writel_relaxed(val, mcspi->base + idx); } -static inline u32 mcspi_read_reg(struct spi_master *master, int idx) +static inline u32 mcspi_read_reg(struct spi_controller *ctlr, int idx) { - struct omap2_mcspi *mcspi = spi_master_get_devdata(master); + struct omap2_mcspi *mcspi = spi_controller_get_devdata(ctlr); return readl_relaxed(mcspi->base + idx); } @@ -235,7 +237,7 @@ static void omap2_mcspi_set_cs(struct spi_device *spi, bool enable) { - struct omap2_mcspi *mcspi = spi_master_get_devdata(spi->master); + struct omap2_mcspi *mcspi = spi_controller_get_devdata(spi->controller); u32 l; /* The controller handles the inverted chip selects @@ -266,24 +268,24 @@ } } -static void omap2_mcspi_set_mode(struct spi_master *master) +static void omap2_mcspi_set_mode(struct spi_controller *ctlr) { - struct omap2_mcspi *mcspi = spi_master_get_devdata(master); + struct omap2_mcspi *mcspi = spi_controller_get_devdata(ctlr); struct omap2_mcspi_regs *ctx = &mcspi->ctx; u32 l; /* - * Choose master or slave mode + * Choose host or target mode */ - l = mcspi_read_reg(master, OMAP2_MCSPI_MODULCTRL); + l = mcspi_read_reg(ctlr, OMAP2_MCSPI_MODULCTRL); l &= ~(OMAP2_MCSPI_MODULCTRL_STEST); - if (spi_controller_is_slave(master)) { + if (spi_controller_is_target(ctlr)) { l |= (OMAP2_MCSPI_MODULCTRL_MS); } else { l &= ~(OMAP2_MCSPI_MODULCTRL_MS); l |= OMAP2_MCSPI_MODULCTRL_SINGLE; } - mcspi_write_reg(master, OMAP2_MCSPI_MODULCTRL, l); + mcspi_write_reg(ctlr, OMAP2_MCSPI_MODULCTRL, l); ctx->modulctrl = l; } @@ -291,14 +293,14 @@ static void omap2_mcspi_set_fifo(const struct spi_device *spi, struct spi_transfer *t, int enable) { - struct spi_master *master = spi->master; + struct spi_controller *ctlr = spi->controller; struct omap2_mcspi_cs *cs = spi->controller_state; struct omap2_mcspi *mcspi; unsigned int wcnt; int max_fifo_depth, bytes_per_word; u32 chconf, xferlevel; - mcspi = spi_master_get_devdata(master); + mcspi = spi_controller_get_devdata(ctlr); chconf = mcspi_cached_chconf0(spi); if (enable) { @@ -326,7 +328,7 @@ xferlevel |= bytes_per_word - 1; } - mcspi_write_reg(master, OMAP2_MCSPI_XFERLEVEL, xferlevel); + mcspi_write_reg(ctlr, OMAP2_MCSPI_XFERLEVEL, xferlevel); mcspi_write_chconf0(spi, chconf); mcspi->fifo_depth = max_fifo_depth; @@ -364,9 +366,9 @@ static int mcspi_wait_for_completion(struct omap2_mcspi *mcspi, struct completion *x) { - if (spi_controller_is_slave(mcspi->master)) { + if (spi_controller_is_target(mcspi->ctlr)) { if (wait_for_completion_interruptible(x) || - mcspi->slave_aborted) + mcspi->target_aborted) return -EINTR; } else { wait_for_completion(x); @@ -378,7 +380,7 @@ static void omap2_mcspi_rx_callback(void *data) { struct spi_device *spi = data; - struct omap2_mcspi *mcspi = spi_master_get_devdata(spi->master); + struct omap2_mcspi *mcspi = spi_controller_get_devdata(spi->controller); struct omap2_mcspi_dma *mcspi_dma = &mcspi->dma_channels[spi_get_chipselect(spi, 0)]; /* We must disable the DMA RX request */ @@ -390,7 +392,7 @@ static void omap2_mcspi_tx_callback(void *data) { struct spi_device *spi = data; - struct omap2_mcspi *mcspi = spi_master_get_devdata(spi->master); + struct omap2_mcspi *mcspi = spi_controller_get_devdata(spi->controller); struct omap2_mcspi_dma *mcspi_dma = &mcspi->dma_channels[spi_get_chipselect(spi, 0)]; /* We must disable the DMA TX request */ @@ -407,7 +409,7 @@ struct omap2_mcspi_dma *mcspi_dma; struct dma_async_tx_descriptor *tx; - mcspi = spi_master_get_devdata(spi->master); + mcspi = spi_controller_get_devdata(spi->controller); mcspi_dma = &mcspi->dma_channels[spi_get_chipselect(spi, 0)]; dmaengine_slave_config(mcspi_dma->dma_tx, &cfg); @@ -445,13 +447,13 @@ void __iomem *chstat_reg = cs->base + OMAP2_MCSPI_CHSTAT0; struct dma_async_tx_descriptor *tx; - mcspi = spi_master_get_devdata(spi->master); + mcspi = spi_controller_get_devdata(spi->controller); mcspi_dma = &mcspi->dma_channels[spi_get_chipselect(spi, 0)]; count = xfer->len; /* * In the "End-of-Transfer Procedure" section for DMA RX in OMAP35x TRM - * it mentions reducing DMA transfer length by one element in master + * it mentions reducing DMA transfer length by one element in host * normal mode. */ if (mcspi->fifo_depth == 0) @@ -514,7 +516,7 @@ omap2_mcspi_set_dma_req(spi, 1, 1); ret = mcspi_wait_for_completion(mcspi, &mcspi_dma->dma_rx_completion); - if (ret || mcspi->slave_aborted) { + if (ret || mcspi->target_aborted) { dmaengine_terminate_sync(mcspi_dma->dma_rx); omap2_mcspi_set_dma_req(spi, 1, 0); return 0; @@ -590,7 +592,7 @@ void __iomem *irqstat_reg; int wait_res; - mcspi = spi_master_get_devdata(spi->master); + mcspi = spi_controller_get_devdata(spi->controller); mcspi_dma = &mcspi->dma_channels[spi_get_chipselect(spi, 0)]; if (cs->word_len <= 8) { @@ -617,14 +619,14 @@ rx = xfer->rx_buf; tx = xfer->tx_buf; - mcspi->slave_aborted = false; + mcspi->target_aborted = false; reinit_completion(&mcspi_dma->dma_tx_completion); reinit_completion(&mcspi_dma->dma_rx_completion); reinit_completion(&mcspi->txdone); if (tx) { - /* Enable EOW IRQ to know end of tx in slave mode */ - if (spi_controller_is_slave(spi->master)) - mcspi_write_reg(spi->master, + /* Enable EOW IRQ to know end of tx in target mode */ + if (spi_controller_is_target(spi->controller)) + mcspi_write_reg(spi->controller, OMAP2_MCSPI_IRQENABLE, OMAP2_MCSPI_IRQSTATUS_EOW); omap2_mcspi_tx_dma(spi, xfer, cfg); @@ -637,15 +639,15 @@ int ret; ret = mcspi_wait_for_completion(mcspi, &mcspi_dma->dma_tx_completion); - if (ret || mcspi->slave_aborted) { + if (ret || mcspi->target_aborted) { dmaengine_terminate_sync(mcspi_dma->dma_tx); omap2_mcspi_set_dma_req(spi, 0, 0); return 0; } - if (spi_controller_is_slave(mcspi->master)) { + if (spi_controller_is_target(mcspi->ctlr)) { ret = mcspi_wait_for_completion(mcspi, &mcspi->txdone); - if (ret || mcspi->slave_aborted) + if (ret || mcspi->target_aborted) return 0; } @@ -656,7 +658,7 @@ OMAP2_MCSPI_IRQSTATUS_EOW) < 0) dev_err(&spi->dev, "EOW timed out\n"); - mcspi_write_reg(mcspi->master, OMAP2_MCSPI_IRQSTATUS, + mcspi_write_reg(mcspi->ctlr, OMAP2_MCSPI_IRQSTATUS, OMAP2_MCSPI_IRQSTATUS_EOW); } @@ -880,12 +882,12 @@ return count - c; } -static u32 omap2_mcspi_calc_divisor(u32 speed_hz) +static u32 omap2_mcspi_calc_divisor(u32 speed_hz, u32 ref_clk_hz) { u32 div; for (div = 0; div < 15; div++) - if (speed_hz >= (OMAP2_MCSPI_MAX_FREQ >> div)) + if (speed_hz >= (ref_clk_hz >> div)) return div; return 15; @@ -897,11 +899,11 @@ { struct omap2_mcspi_cs *cs = spi->controller_state; struct omap2_mcspi *mcspi; - u32 l = 0, clkd = 0, div, extclk = 0, clkg = 0; + u32 ref_clk_hz, l = 0, clkd = 0, div, extclk = 0, clkg = 0; u8 word_len = spi->bits_per_word; u32 speed_hz = spi->max_speed_hz; - mcspi = spi_master_get_devdata(spi->master); + mcspi = spi_controller_get_devdata(spi->controller); if (t != NULL && t->bits_per_word) word_len = t->bits_per_word; @@ -911,14 +913,15 @@ if (t && t->speed_hz) speed_hz = t->speed_hz; - speed_hz = min_t(u32, speed_hz, OMAP2_MCSPI_MAX_FREQ); - if (speed_hz < (OMAP2_MCSPI_MAX_FREQ / OMAP2_MCSPI_MAX_DIVIDER)) { - clkd = omap2_mcspi_calc_divisor(speed_hz); - speed_hz = OMAP2_MCSPI_MAX_FREQ >> clkd; + ref_clk_hz = mcspi->ref_clk_hz; + speed_hz = min_t(u32, speed_hz, ref_clk_hz); + if (speed_hz < (ref_clk_hz / OMAP2_MCSPI_MAX_DIVIDER)) { + clkd = omap2_mcspi_calc_divisor(speed_hz, ref_clk_hz); + speed_hz = ref_clk_hz >> clkd; clkg = 0; } else { - div = (OMAP2_MCSPI_MAX_FREQ + speed_hz - 1) / speed_hz; - speed_hz = OMAP2_MCSPI_MAX_FREQ / div; + div = (ref_clk_hz + speed_hz - 1) / speed_hz; + speed_hz = ref_clk_hz / div; clkd = (div - 1) & 0xf; extclk = (div - 1) >> 4; clkg = OMAP2_MCSPI_CHCONF_CLKG; @@ -926,7 +929,7 @@ l = mcspi_cached_chconf0(spi); - /* standard 4-wire master mode: SCK, MOSI/out, MISO/in, nCS + /* standard 4-wire host mode: SCK, MOSI/out, MISO/in, nCS * REVISIT: this controller could support SPI_3WIRE mode. */ if (mcspi->pin_dir == MCSPI_PINDIR_D0_IN_D1_OUT) { @@ -1017,13 +1020,13 @@ return ret; } -static void omap2_mcspi_release_dma(struct spi_master *master) +static void omap2_mcspi_release_dma(struct spi_controller *ctlr) { - struct omap2_mcspi *mcspi = spi_master_get_devdata(master); + struct omap2_mcspi *mcspi = spi_controller_get_devdata(ctlr); struct omap2_mcspi_dma *mcspi_dma; int i; - for (i = 0; i < master->num_chipselect; i++) { + for (i = 0; i < ctlr->num_chipselect; i++) { mcspi_dma = &mcspi->dma_channels[i]; if (mcspi_dma->dma_rx) { @@ -1054,7 +1057,7 @@ { bool initial_setup = false; int ret; - struct omap2_mcspi *mcspi = spi_master_get_devdata(spi->master); + struct omap2_mcspi *mcspi = spi_controller_get_devdata(spi->controller); struct omap2_mcspi_regs *ctx = &mcspi->ctx; struct omap2_mcspi_cs *cs = spi->controller_state; @@ -1096,24 +1099,24 @@ struct omap2_mcspi *mcspi = data; u32 irqstat; - irqstat = mcspi_read_reg(mcspi->master, OMAP2_MCSPI_IRQSTATUS); + irqstat = mcspi_read_reg(mcspi->ctlr, OMAP2_MCSPI_IRQSTATUS); if (!irqstat) return IRQ_NONE; - /* Disable IRQ and wakeup slave xfer task */ - mcspi_write_reg(mcspi->master, OMAP2_MCSPI_IRQENABLE, 0); + /* Disable IRQ and wakeup target xfer task */ + mcspi_write_reg(mcspi->ctlr, OMAP2_MCSPI_IRQENABLE, 0); if (irqstat & OMAP2_MCSPI_IRQSTATUS_EOW) complete(&mcspi->txdone); return IRQ_HANDLED; } -static int omap2_mcspi_slave_abort(struct spi_master *master) +static int omap2_mcspi_target_abort(struct spi_controller *ctlr) { - struct omap2_mcspi *mcspi = spi_master_get_devdata(master); + struct omap2_mcspi *mcspi = spi_controller_get_devdata(ctlr); struct omap2_mcspi_dma *mcspi_dma = mcspi->dma_channels; - mcspi->slave_aborted = true; + mcspi->target_aborted = true; complete(&mcspi_dma->dma_rx_completion); complete(&mcspi_dma->dma_tx_completion); complete(&mcspi->txdone); @@ -1121,7 +1124,7 @@ return 0; } -static int omap2_mcspi_transfer_one(struct spi_master *master, +static int omap2_mcspi_transfer_one(struct spi_controller *ctlr, struct spi_device *spi, struct spi_transfer *t) { @@ -1129,7 +1132,7 @@ /* We only enable one channel at a time -- the one whose message is * -- although this controller would gladly * arbitrate among multiple channels. This corresponds to "single - * channel" master mode. As a side effect, we need to manage the + * channel" host mode. As a side effect, we need to manage the * chipselect with the FORCE bit ... CS != channel enable. */ @@ -1141,13 +1144,13 @@ int status = 0; u32 chconf; - mcspi = spi_master_get_devdata(master); + mcspi = spi_controller_get_devdata(ctlr); mcspi_dma = mcspi->dma_channels + spi_get_chipselect(spi, 0); cs = spi->controller_state; cd = spi->controller_data; /* - * The slave driver could have changed spi->mode in which case + * The target driver could have changed spi->mode in which case * it will be different from cs->mode (the current hardware setup). * If so, set par_override (even though its not a parity issue) so * omap2_mcspi_setup_transfer will be called to configure the hardware @@ -1175,7 +1178,7 @@ if (cd && cd->cs_per_word) { chconf = mcspi->ctx.modulctrl; chconf &= ~OMAP2_MCSPI_MODULCTRL_SINGLE; - mcspi_write_reg(master, OMAP2_MCSPI_MODULCTRL, chconf); + mcspi_write_reg(ctlr, OMAP2_MCSPI_MODULCTRL, chconf); mcspi->ctx.modulctrl = mcspi_read_cs_reg(spi, OMAP2_MCSPI_MODULCTRL); } @@ -1201,8 +1204,8 @@ unsigned count; if ((mcspi_dma->dma_rx && mcspi_dma->dma_tx) && - master->cur_msg_mapped && - master->can_dma(master, spi, t)) + ctlr->cur_msg_mapped && + ctlr->can_dma(ctlr, spi, t)) omap2_mcspi_set_fifo(spi, t, 1); omap2_mcspi_set_enable(spi, 1); @@ -1213,8 +1216,8 @@ + OMAP2_MCSPI_TX0); if ((mcspi_dma->dma_rx && mcspi_dma->dma_tx) && - master->cur_msg_mapped && - master->can_dma(master, spi, t)) + ctlr->cur_msg_mapped && + ctlr->can_dma(ctlr, spi, t)) count = omap2_mcspi_txrx_dma(spi, t); else count = omap2_mcspi_txrx_pio(spi, t); @@ -1240,7 +1243,7 @@ if (cd && cd->cs_per_word) { chconf = mcspi->ctx.modulctrl; chconf |= OMAP2_MCSPI_MODULCTRL_SINGLE; - mcspi_write_reg(master, OMAP2_MCSPI_MODULCTRL, chconf); + mcspi_write_reg(ctlr, OMAP2_MCSPI_MODULCTRL, chconf); mcspi->ctx.modulctrl = mcspi_read_cs_reg(spi, OMAP2_MCSPI_MODULCTRL); } @@ -1256,10 +1259,10 @@ return status; } -static int omap2_mcspi_prepare_message(struct spi_master *master, +static int omap2_mcspi_prepare_message(struct spi_controller *ctlr, struct spi_message *msg) { - struct omap2_mcspi *mcspi = spi_master_get_devdata(master); + struct omap2_mcspi *mcspi = spi_controller_get_devdata(ctlr); struct omap2_mcspi_regs *ctx = &mcspi->ctx; struct omap2_mcspi_cs *cs; @@ -1283,29 +1286,29 @@ return 0; } -static bool omap2_mcspi_can_dma(struct spi_master *master, +static bool omap2_mcspi_can_dma(struct spi_controller *ctlr, struct spi_device *spi, struct spi_transfer *xfer) { - struct omap2_mcspi *mcspi = spi_master_get_devdata(spi->master); + struct omap2_mcspi *mcspi = spi_controller_get_devdata(spi->controller); struct omap2_mcspi_dma *mcspi_dma = &mcspi->dma_channels[spi_get_chipselect(spi, 0)]; if (!mcspi_dma->dma_rx || !mcspi_dma->dma_tx) return false; - if (spi_controller_is_slave(master)) + if (spi_controller_is_target(ctlr)) return true; - master->dma_rx = mcspi_dma->dma_rx; - master->dma_tx = mcspi_dma->dma_tx; + ctlr->dma_rx = mcspi_dma->dma_rx; + ctlr->dma_tx = mcspi_dma->dma_tx; return (xfer->len >= DMA_MIN_BYTES); } static size_t omap2_mcspi_max_xfer_size(struct spi_device *spi) { - struct omap2_mcspi *mcspi = spi_master_get_devdata(spi->master); + struct omap2_mcspi *mcspi = spi_controller_get_devdata(spi->controller); struct omap2_mcspi_dma *mcspi_dma = &mcspi->dma_channels[spi_get_chipselect(spi, 0)]; @@ -1317,7 +1320,7 @@ static int omap2_mcspi_controller_setup(struct omap2_mcspi *mcspi) { - struct spi_master *master = mcspi->master; + struct spi_controller *ctlr = mcspi->ctlr; struct omap2_mcspi_regs *ctx = &mcspi->ctx; int ret = 0; @@ -1325,11 +1328,11 @@ if (ret < 0) return ret; - mcspi_write_reg(master, OMAP2_MCSPI_WAKEUPENABLE, + mcspi_write_reg(ctlr, OMAP2_MCSPI_WAKEUPENABLE, OMAP2_MCSPI_WAKEUPENABLE_WKEN); ctx->wakeupenable = OMAP2_MCSPI_WAKEUPENABLE_WKEN; - omap2_mcspi_set_mode(master); + omap2_mcspi_set_mode(ctlr); pm_runtime_mark_last_busy(mcspi->dev); pm_runtime_put_autosuspend(mcspi->dev); return 0; @@ -1353,8 +1356,8 @@ */ static int omap_mcspi_runtime_resume(struct device *dev) { - struct spi_master *master = dev_get_drvdata(dev); - struct omap2_mcspi *mcspi = spi_master_get_devdata(master); + struct spi_controller *ctlr = dev_get_drvdata(dev); + struct omap2_mcspi *mcspi = spi_controller_get_devdata(ctlr); struct omap2_mcspi_regs *ctx = &mcspi->ctx; struct omap2_mcspi_cs *cs; int error; @@ -1364,8 +1367,8 @@ dev_warn(dev, "%s: failed to set pins: %i\n", __func__, error); /* McSPI: context restore */ - mcspi_write_reg(master, OMAP2_MCSPI_MODULCTRL, ctx->modulctrl); - mcspi_write_reg(master, OMAP2_MCSPI_WAKEUPENABLE, ctx->wakeupenable); + mcspi_write_reg(ctlr, OMAP2_MCSPI_MODULCTRL, ctx->modulctrl); + mcspi_write_reg(ctlr, OMAP2_MCSPI_WAKEUPENABLE, ctx->wakeupenable); list_for_each_entry(cs, &ctx->cs, node) { /* @@ -1420,7 +1423,7 @@ static int omap2_mcspi_probe(struct platform_device *pdev) { - struct spi_master *master; + struct spi_controller *ctlr; const struct omap2_mcspi_platform_config *pdata; struct omap2_mcspi *mcspi; struct resource *r; @@ -1430,32 +1433,30 @@ const struct of_device_id *match; if (of_property_read_bool(node, "spi-slave")) - master = spi_alloc_slave(&pdev->dev, sizeof(*mcspi)); + ctlr = spi_alloc_target(&pdev->dev, sizeof(*mcspi)); else - master = spi_alloc_master(&pdev->dev, sizeof(*mcspi)); - if (!master) + ctlr = spi_alloc_host(&pdev->dev, sizeof(*mcspi)); + if (!ctlr) return -ENOMEM; /* the spi->mode bits understood by this driver: */ - master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH; - master->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 32); - master->setup = omap2_mcspi_setup; - master->auto_runtime_pm = true; - master->prepare_message = omap2_mcspi_prepare_message; - master->can_dma = omap2_mcspi_can_dma; - master->transfer_one = omap2_mcspi_transfer_one; - master->set_cs = omap2_mcspi_set_cs; - master->cleanup = omap2_mcspi_cleanup; - master->slave_abort = omap2_mcspi_slave_abort; - master->dev.of_node = node; - master->max_speed_hz = OMAP2_MCSPI_MAX_FREQ; - master->min_speed_hz = OMAP2_MCSPI_MAX_FREQ >> 15; - master->use_gpio_descriptors = true; + ctlr->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH; + ctlr->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 32); + ctlr->setup = omap2_mcspi_setup; + ctlr->auto_runtime_pm = true; + ctlr->prepare_message = omap2_mcspi_prepare_message; + ctlr->can_dma = omap2_mcspi_can_dma; + ctlr->transfer_one = omap2_mcspi_transfer_one; + ctlr->set_cs = omap2_mcspi_set_cs; + ctlr->cleanup = omap2_mcspi_cleanup; + ctlr->target_abort = omap2_mcspi_target_abort; + ctlr->dev.of_node = node; + ctlr->use_gpio_descriptors = true; - platform_set_drvdata(pdev, master); + platform_set_drvdata(pdev, ctlr); - mcspi = spi_master_get_devdata(master); - mcspi->master = master; + mcspi = spi_controller_get_devdata(ctlr); + mcspi->ctlr = ctlr; match = of_match_device(omap_mcspi_of_match, &pdev->dev); if (match) { @@ -1463,24 +1464,24 @@ pdata = match->data; of_property_read_u32(node, "ti,spi-num-cs", &num_cs); - master->num_chipselect = num_cs; + ctlr->num_chipselect = num_cs; if (of_property_read_bool(node, "ti,pindir-d0-out-d1-in")) mcspi->pin_dir = MCSPI_PINDIR_D0_OUT_D1_IN; } else { pdata = dev_get_platdata(&pdev->dev); - master->num_chipselect = pdata->num_cs; + ctlr->num_chipselect = pdata->num_cs; mcspi->pin_dir = pdata->pin_dir; } regs_offset = pdata->regs_offset; if (pdata->max_xfer_len) { mcspi->max_xfer_len = pdata->max_xfer_len; - master->max_transfer_size = omap2_mcspi_max_xfer_size; + ctlr->max_transfer_size = omap2_mcspi_max_xfer_size; } mcspi->base = devm_platform_get_and_ioremap_resource(pdev, 0, &r); if (IS_ERR(mcspi->base)) { status = PTR_ERR(mcspi->base); - goto free_master; + goto free_ctlr; } mcspi->phys = r->start + regs_offset; mcspi->base += regs_offset; @@ -1489,38 +1490,44 @@ INIT_LIST_HEAD(&mcspi->ctx.cs); - mcspi->dma_channels = devm_kcalloc(&pdev->dev, master->num_chipselect, + mcspi->dma_channels = devm_kcalloc(&pdev->dev, ctlr->num_chipselect, sizeof(struct omap2_mcspi_dma), GFP_KERNEL); if (mcspi->dma_channels == NULL) { status = -ENOMEM; - goto free_master; + goto free_ctlr; } - for (i = 0; i < master->num_chipselect; i++) { + for (i = 0; i < ctlr->num_chipselect; i++) { sprintf(mcspi->dma_channels[i].dma_rx_ch_name, "rx%d", i); sprintf(mcspi->dma_channels[i].dma_tx_ch_name, "tx%d", i); status = omap2_mcspi_request_dma(mcspi, &mcspi->dma_channels[i]); if (status == -EPROBE_DEFER) - goto free_master; + goto free_ctlr; } status = platform_get_irq(pdev, 0); - if (status < 0) { - dev_err_probe(&pdev->dev, status, "no irq resource found\n"); - goto free_master; - } + if (status < 0) + goto free_ctlr; init_completion(&mcspi->txdone); status = devm_request_irq(&pdev->dev, status, omap2_mcspi_irq_handler, 0, pdev->name, mcspi); if (status) { dev_err(&pdev->dev, "Cannot request IRQ"); - goto free_master; + goto free_ctlr; } + mcspi->ref_clk = devm_clk_get_optional_enabled(&pdev->dev, NULL); + if (mcspi->ref_clk) + mcspi->ref_clk_hz = clk_get_rate(mcspi->ref_clk); + else + mcspi->ref_clk_hz = OMAP2_MCSPI_MAX_FREQ; + ctlr->max_speed_hz = mcspi->ref_clk_hz; + ctlr->min_speed_hz = mcspi->ref_clk_hz >> 15; + pm_runtime_use_autosuspend(&pdev->dev); pm_runtime_set_autosuspend_delay(&pdev->dev, SPI_AUTOSUSPEND_TIMEOUT); pm_runtime_enable(&pdev->dev); @@ -1529,7 +1536,7 @@ if (status < 0) goto disable_pm; - status = devm_spi_register_controller(&pdev->dev, master); + status = devm_spi_register_controller(&pdev->dev, ctlr); if (status < 0) goto disable_pm; @@ -1539,18 +1546,18 @@ pm_runtime_dont_use_autosuspend(&pdev->dev); pm_runtime_put_sync(&pdev->dev); pm_runtime_disable(&pdev->dev); -free_master: - omap2_mcspi_release_dma(master); - spi_master_put(master); +free_ctlr: + omap2_mcspi_release_dma(ctlr); + spi_controller_put(ctlr); return status; } static void omap2_mcspi_remove(struct platform_device *pdev) { - struct spi_master *master = platform_get_drvdata(pdev); - struct omap2_mcspi *mcspi = spi_master_get_devdata(master); + struct spi_controller *ctlr = platform_get_drvdata(pdev); + struct omap2_mcspi *mcspi = spi_controller_get_devdata(ctlr); - omap2_mcspi_release_dma(master); + omap2_mcspi_release_dma(ctlr); pm_runtime_dont_use_autosuspend(mcspi->dev); pm_runtime_put_sync(mcspi->dev); @@ -1562,8 +1569,8 @@ static int __maybe_unused omap2_mcspi_suspend(struct device *dev) { - struct spi_master *master = dev_get_drvdata(dev); - struct omap2_mcspi *mcspi = spi_master_get_devdata(master); + struct spi_controller *ctlr = dev_get_drvdata(dev); + struct omap2_mcspi *mcspi = spi_controller_get_devdata(ctlr); int error; error = pinctrl_pm_select_sleep_state(dev); @@ -1571,9 +1578,9 @@ dev_warn(mcspi->dev, "%s: failed to set pins: %i\n", __func__, error); - error = spi_master_suspend(master); + error = spi_controller_suspend(ctlr); if (error) - dev_warn(mcspi->dev, "%s: master suspend failed: %i\n", + dev_warn(mcspi->dev, "%s: controller suspend failed: %i\n", __func__, error); return pm_runtime_force_suspend(dev); @@ -1581,13 +1588,13 @@ static int __maybe_unused omap2_mcspi_resume(struct device *dev) { - struct spi_master *master = dev_get_drvdata(dev); - struct omap2_mcspi *mcspi = spi_master_get_devdata(master); + struct spi_controller *ctlr = dev_get_drvdata(dev); + struct omap2_mcspi *mcspi = spi_controller_get_devdata(ctlr); int error; - error = spi_master_resume(master); + error = spi_controller_resume(ctlr); if (error) - dev_warn(mcspi->dev, "%s: master resume failed: %i\n", + dev_warn(mcspi->dev, "%s: controller resume failed: %i\n", __func__, error); return pm_runtime_force_resume(dev); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/spi/spi-tegra20-slink.c +++ linux-riscv-6.5.0/drivers/spi/spi-tegra20-slink.c @@ -1093,6 +1093,8 @@ reset_control_deassert(tspi->rst); spi_irq = platform_get_irq(pdev, 0); + if (spi_irq < 0) + return spi_irq; tspi->irq = spi_irq; ret = request_threaded_irq(tspi->irq, tegra_slink_isr, tegra_slink_isr_thread, IRQF_ONESHOT, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/spi/spi.c +++ linux-riscv-6.5.0/drivers/spi/spi.c @@ -3347,33 +3347,52 @@ } EXPORT_SYMBOL_GPL(spi_unregister_controller); +static inline int __spi_check_suspended(const struct spi_controller *ctlr) +{ + return ctlr->flags & SPI_CONTROLLER_SUSPENDED ? -ESHUTDOWN : 0; +} + +static inline void __spi_mark_suspended(struct spi_controller *ctlr) +{ + mutex_lock(&ctlr->bus_lock_mutex); + ctlr->flags |= SPI_CONTROLLER_SUSPENDED; + mutex_unlock(&ctlr->bus_lock_mutex); +} + +static inline void __spi_mark_resumed(struct spi_controller *ctlr) +{ + mutex_lock(&ctlr->bus_lock_mutex); + ctlr->flags &= ~SPI_CONTROLLER_SUSPENDED; + mutex_unlock(&ctlr->bus_lock_mutex); +} + int spi_controller_suspend(struct spi_controller *ctlr) { - int ret; + int ret = 0; /* Basically no-ops for non-queued controllers */ - if (!ctlr->queued) - return 0; - - ret = spi_stop_queue(ctlr); - if (ret) - dev_err(&ctlr->dev, "queue stop failed\n"); + if (ctlr->queued) { + ret = spi_stop_queue(ctlr); + if (ret) + dev_err(&ctlr->dev, "queue stop failed\n"); + } + __spi_mark_suspended(ctlr); return ret; } EXPORT_SYMBOL_GPL(spi_controller_suspend); int spi_controller_resume(struct spi_controller *ctlr) { - int ret; - - if (!ctlr->queued) - return 0; + int ret = 0; - ret = spi_start_queue(ctlr); - if (ret) - dev_err(&ctlr->dev, "queue restart failed\n"); + __spi_mark_resumed(ctlr); + if (ctlr->queued) { + ret = spi_start_queue(ctlr); + if (ret) + dev_err(&ctlr->dev, "queue restart failed\n"); + } return ret; } EXPORT_SYMBOL_GPL(spi_controller_resume); @@ -4184,8 +4203,7 @@ ctlr->cur_msg = msg; ret = __spi_pump_transfer_message(ctlr, msg, was_busy); if (ret) - goto out; - + dev_err(&ctlr->dev, "noqueue transfer failed\n"); ctlr->cur_msg = NULL; ctlr->fallback = false; @@ -4201,7 +4219,6 @@ spi_idle_runtime_pm(ctlr); } -out: mutex_unlock(&ctlr->io_mutex); } @@ -4224,6 +4241,11 @@ int status; struct spi_controller *ctlr = spi->controller; + if (__spi_check_suspended(ctlr)) { + dev_warn_once(&spi->dev, "Attempted to sync while suspend\n"); + return -ESHUTDOWN; + } + status = __spi_validate(spi, message); if (status != 0) return status; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/staging/media/sunxi/cedrus/cedrus_hw.c +++ linux-riscv-6.5.0/drivers/staging/media/sunxi/cedrus/cedrus_hw.c @@ -172,12 +172,12 @@ { struct cedrus_dev *dev = dev_get_drvdata(device); - reset_control_assert(dev->rstc); - clk_disable_unprepare(dev->ram_clk); clk_disable_unprepare(dev->mod_clk); clk_disable_unprepare(dev->ahb_clk); + reset_control_assert(dev->rstc); + return 0; } @@ -186,11 +186,18 @@ struct cedrus_dev *dev = dev_get_drvdata(device); int ret; + ret = reset_control_reset(dev->rstc); + if (ret) { + dev_err(dev->dev, "Failed to apply reset\n"); + + return ret; + } + ret = clk_prepare_enable(dev->ahb_clk); if (ret) { dev_err(dev->dev, "Failed to enable AHB clock\n"); - return ret; + goto err_rst; } ret = clk_prepare_enable(dev->mod_clk); @@ -207,21 +214,14 @@ goto err_mod_clk; } - ret = reset_control_reset(dev->rstc); - if (ret) { - dev_err(dev->dev, "Failed to apply reset\n"); - - goto err_ram_clk; - } - return 0; -err_ram_clk: - clk_disable_unprepare(dev->ram_clk); err_mod_clk: clk_disable_unprepare(dev->mod_clk); err_ahb_clk: clk_disable_unprepare(dev->ahb_clk); +err_rst: + reset_control_assert(dev->rstc); return ret; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/tee/optee/device.c +++ linux-riscv-6.5.0/drivers/tee/optee/device.c @@ -60,7 +60,16 @@ kfree(optee_device); } -static int optee_register_device(const uuid_t *device_uuid) +static ssize_t need_supplicant_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + return 0; +} + +static DEVICE_ATTR_RO(need_supplicant); + +static int optee_register_device(const uuid_t *device_uuid, u32 func) { struct tee_client_device *optee_device = NULL; int rc; @@ -83,6 +92,10 @@ put_device(&optee_device->dev); } + if (func == PTA_CMD_GET_DEVICES_SUPP) + device_create_file(&optee_device->dev, + &dev_attr_need_supplicant); + return rc; } @@ -142,7 +155,7 @@ num_devices = shm_size / sizeof(uuid_t); for (idx = 0; idx < num_devices; idx++) { - rc = optee_register_device(&device_uuid[idx]); + rc = optee_register_device(&device_uuid[idx], func); if (rc) goto out_shm; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/thermal/intel/intel_powerclamp.c +++ linux-riscv-6.5.0/drivers/thermal/intel/intel_powerclamp.c @@ -256,7 +256,7 @@ static const struct kernel_param_ops max_idle_ops = { .set = max_idle_set, - .get = param_get_int, + .get = param_get_byte, }; module_param_cb(max_idle, &max_idle_ops, &max_idle, 0644); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/thermal/mediatek/auxadc_thermal.c +++ linux-riscv-6.5.0/drivers/thermal/mediatek/auxadc_thermal.c @@ -1268,7 +1268,7 @@ mtk_thermal_turn_on_buffer(mt, apmixed_base); - if (mt->conf->version != MTK_THERMAL_V2) + if (mt->conf->version != MTK_THERMAL_V1) mtk_thermal_release_periodic_ts(mt, auxadc_base); if (mt->conf->version == MTK_THERMAL_V1) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/thermal/thermal_core.c +++ linux-riscv-6.5.0/drivers/thermal/thermal_core.c @@ -667,7 +667,8 @@ if (result) goto release_ida; - sprintf(dev->attr_name, "cdev%d_trip_point", dev->id); + snprintf(dev->attr_name, sizeof(dev->attr_name), "cdev%d_trip_point", + dev->id); sysfs_attr_init(&dev->attr.attr); dev->attr.attr.name = dev->attr_name; dev->attr.attr.mode = 0444; @@ -676,7 +677,8 @@ if (result) goto remove_symbol_link; - sprintf(dev->weight_attr_name, "cdev%d_weight", dev->id); + snprintf(dev->weight_attr_name, sizeof(dev->weight_attr_name), + "cdev%d_weight", dev->id); sysfs_attr_init(&dev->weight_attr.attr); dev->weight_attr.attr.name = dev->weight_attr_name; dev->weight_attr.attr.mode = S_IWUSR | S_IRUGO; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/thermal/thermal_trip.c +++ linux-riscv-6.5.0/drivers/thermal/thermal_trip.c @@ -57,6 +57,7 @@ { struct thermal_trip trip; int low = -INT_MAX, high = INT_MAX; + bool same_trip = false; int i, ret; lockdep_assert_held(&tz->lock); @@ -65,6 +66,7 @@ return; for (i = 0; i < tz->num_trips; i++) { + bool low_set = false; int trip_low; ret = __thermal_zone_get_trip(tz, i , &trip); @@ -73,18 +75,31 @@ trip_low = trip.temperature - trip.hysteresis; - if (trip_low < tz->temperature && trip_low > low) + if (trip_low < tz->temperature && trip_low > low) { low = trip_low; + low_set = true; + same_trip = false; + } if (trip.temperature > tz->temperature && - trip.temperature < high) + trip.temperature < high) { high = trip.temperature; + same_trip = low_set; + } } /* No need to change trip points */ if (tz->prev_low_trip == low && tz->prev_high_trip == high) return; + /* + * If "high" and "low" are the same, skip the change unless this is the + * first time. + */ + if (same_trip && (tz->prev_low_trip != -INT_MAX || + tz->prev_high_trip != INT_MAX)) + return; + tz->prev_low_trip = low; tz->prev_high_trip = high; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/thunderbolt/quirks.c +++ linux-riscv-6.5.0/drivers/thunderbolt/quirks.c @@ -31,6 +31,9 @@ { struct tb_port *port; + if (tb_switch_is_icm(sw)) + return; + tb_switch_for_each_port(sw, port) { if (!tb_port_is_usb3_down(port)) continue; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/thunderbolt/tb.c +++ linux-riscv-6.5.0/drivers/thunderbolt/tb.c @@ -1907,14 +1907,14 @@ in = &sw->ports[ev->port]; if (!tb_port_is_dpin(in)) { tb_port_warn(in, "bandwidth request to non-DP IN adapter\n"); - goto unlock; + goto put_sw; } tb_port_dbg(in, "handling bandwidth allocation request\n"); if (!usb4_dp_port_bandwidth_mode_enabled(in)) { tb_port_warn(in, "bandwidth allocation mode not enabled\n"); - goto unlock; + goto put_sw; } ret = usb4_dp_port_requested_bandwidth(in); @@ -1923,7 +1923,7 @@ tb_port_dbg(in, "no bandwidth request active\n"); else tb_port_warn(in, "failed to read requested bandwidth\n"); - goto unlock; + goto put_sw; } requested_bw = ret; @@ -1932,7 +1932,7 @@ tunnel = tb_find_tunnel(tb, TB_TUNNEL_DP, in, NULL); if (!tunnel) { tb_port_warn(in, "failed to find tunnel\n"); - goto unlock; + goto put_sw; } out = tunnel->dst_port; @@ -1959,6 +1959,8 @@ tb_recalc_estimated_bandwidth(tb); } +put_sw: + tb_switch_put(sw); unlock: mutex_unlock(&tb->lock); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/tty/hvc/hvc_xen.c +++ linux-riscv-6.5.0/drivers/tty/hvc/hvc_xen.c @@ -377,18 +377,21 @@ #ifdef CONFIG_HVC_XEN_FRONTEND static void xencons_disconnect_backend(struct xencons_info *info) { - if (info->irq > 0) - unbind_from_irqhandler(info->irq, NULL); - info->irq = 0; + if (info->hvc != NULL) + hvc_remove(info->hvc); + info->hvc = NULL; + if (info->irq > 0) { + evtchn_put(info->evtchn); + info->irq = 0; + info->evtchn = 0; + } + /* evtchn_put() will also close it so this is only an error path */ if (info->evtchn > 0) xenbus_free_evtchn(info->xbdev, info->evtchn); info->evtchn = 0; if (info->gntref > 0) gnttab_free_grant_references(info->gntref); info->gntref = 0; - if (info->hvc != NULL) - hvc_remove(info->hvc); - info->hvc = NULL; } static void xencons_free(struct xencons_info *info) @@ -433,7 +436,7 @@ if (ret) return ret; info->evtchn = evtchn; - irq = bind_interdomain_evtchn_to_irq_lateeoi(dev, evtchn); + irq = bind_evtchn_to_irq_lateeoi(evtchn); if (irq < 0) return irq; info->irq = irq; @@ -553,10 +556,23 @@ if (dev->state == XenbusStateClosed) break; fallthrough; /* Missed the backend's CLOSING state */ - case XenbusStateClosing: + case XenbusStateClosing: { + struct xencons_info *info = dev_get_drvdata(&dev->dev);; + + /* + * Don't tear down the evtchn and grant ref before the other + * end has disconnected, but do stop userspace from trying + * to use the device before we allow the backend to close. + */ + if (info->hvc) { + hvc_remove(info->hvc); + info->hvc = NULL; + } + xenbus_frontend_closed(dev); break; } + } } static const struct xenbus_device_id xencons_ids[] = { @@ -588,7 +604,7 @@ ops = &dom0_hvc_ops; r = xen_initial_domain_console_init(); if (r < 0) - return r; + goto register_fe; info = vtermno_to_xencons(HVC_COOKIE); } else { ops = &domU_hvc_ops; @@ -597,7 +613,7 @@ else r = xen_pv_console_init(); if (r < 0) - return r; + goto register_fe; info = vtermno_to_xencons(HVC_COOKIE); info->irq = bind_evtchn_to_irq_lateeoi(info->evtchn); @@ -616,12 +632,13 @@ list_del(&info->list); spin_unlock_irqrestore(&xencons_lock, flags); if (info->irq) - unbind_from_irqhandler(info->irq, NULL); + evtchn_put(info->evtchn); kfree(info); return r; } r = 0; + register_fe: #ifdef CONFIG_HVC_XEN_FRONTEND r = xenbus_register_frontend(&xencons_driver); #endif only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/tty/serial/8250/8250_dw.c +++ linux-riscv-6.5.0/drivers/tty/serial/8250/8250_dw.c @@ -795,6 +795,7 @@ { "INT33C5", (kernel_ulong_t)&dw8250_dw_apb }, { "INT3434", (kernel_ulong_t)&dw8250_dw_apb }, { "INT3435", (kernel_ulong_t)&dw8250_dw_apb }, + { "INTC10EE", (kernel_ulong_t)&dw8250_dw_apb }, { }, }; MODULE_DEVICE_TABLE(acpi, dw8250_acpi_match); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/tty/serial/8250/8250_early.c +++ linux-riscv-6.5.0/drivers/tty/serial/8250/8250_early.c @@ -190,5 +190,6 @@ OF_EARLYCON_DECLARE(omap8250, "ti,omap2-uart", early_omap8250_setup); OF_EARLYCON_DECLARE(omap8250, "ti,omap3-uart", early_omap8250_setup); OF_EARLYCON_DECLARE(omap8250, "ti,omap4-uart", early_omap8250_setup); +OF_EARLYCON_DECLARE(omap8250, "ti,am654-uart", early_omap8250_setup); #endif only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/tty/serial/8250/8250_pci.c +++ linux-riscv-6.5.0/drivers/tty/serial/8250/8250_pci.c @@ -2427,6 +2427,153 @@ .init = pci_oxsemi_tornado_init, .setup = pci_oxsemi_tornado_setup, }, + /* + * Brainboxes devices - all Oxsemi based + */ + { + .vendor = PCI_VENDOR_ID_INTASHIELD, + .device = 0x4027, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .init = pci_oxsemi_tornado_init, + .setup = pci_oxsemi_tornado_setup, + }, + { + .vendor = PCI_VENDOR_ID_INTASHIELD, + .device = 0x4028, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .init = pci_oxsemi_tornado_init, + .setup = pci_oxsemi_tornado_setup, + }, + { + .vendor = PCI_VENDOR_ID_INTASHIELD, + .device = 0x4029, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .init = pci_oxsemi_tornado_init, + .setup = pci_oxsemi_tornado_setup, + }, + { + .vendor = PCI_VENDOR_ID_INTASHIELD, + .device = 0x4019, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .init = pci_oxsemi_tornado_init, + .setup = pci_oxsemi_tornado_setup, + }, + { + .vendor = PCI_VENDOR_ID_INTASHIELD, + .device = 0x4016, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .init = pci_oxsemi_tornado_init, + .setup = pci_oxsemi_tornado_setup, + }, + { + .vendor = PCI_VENDOR_ID_INTASHIELD, + .device = 0x4015, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .init = pci_oxsemi_tornado_init, + .setup = pci_oxsemi_tornado_setup, + }, + { + .vendor = PCI_VENDOR_ID_INTASHIELD, + .device = 0x400A, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .init = pci_oxsemi_tornado_init, + .setup = pci_oxsemi_tornado_setup, + }, + { + .vendor = PCI_VENDOR_ID_INTASHIELD, + .device = 0x400E, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .init = pci_oxsemi_tornado_init, + .setup = pci_oxsemi_tornado_setup, + }, + { + .vendor = PCI_VENDOR_ID_INTASHIELD, + .device = 0x400C, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .init = pci_oxsemi_tornado_init, + .setup = pci_oxsemi_tornado_setup, + }, + { + .vendor = PCI_VENDOR_ID_INTASHIELD, + .device = 0x400B, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .init = pci_oxsemi_tornado_init, + .setup = pci_oxsemi_tornado_setup, + }, + { + .vendor = PCI_VENDOR_ID_INTASHIELD, + .device = 0x400F, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .init = pci_oxsemi_tornado_init, + .setup = pci_oxsemi_tornado_setup, + }, + { + .vendor = PCI_VENDOR_ID_INTASHIELD, + .device = 0x4010, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .init = pci_oxsemi_tornado_init, + .setup = pci_oxsemi_tornado_setup, + }, + { + .vendor = PCI_VENDOR_ID_INTASHIELD, + .device = 0x4011, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .init = pci_oxsemi_tornado_init, + .setup = pci_oxsemi_tornado_setup, + }, + { + .vendor = PCI_VENDOR_ID_INTASHIELD, + .device = 0x401D, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .init = pci_oxsemi_tornado_init, + .setup = pci_oxsemi_tornado_setup, + }, + { + .vendor = PCI_VENDOR_ID_INTASHIELD, + .device = 0x401E, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .init = pci_oxsemi_tornado_init, + .setup = pci_oxsemi_tornado_setup, + }, + { + .vendor = PCI_VENDOR_ID_INTASHIELD, + .device = 0x4013, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .init = pci_oxsemi_tornado_init, + .setup = pci_oxsemi_tornado_setup, + }, + { + .vendor = PCI_VENDOR_ID_INTASHIELD, + .device = 0x4017, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .init = pci_oxsemi_tornado_init, + .setup = pci_oxsemi_tornado_setup, + }, + { + .vendor = PCI_VENDOR_ID_INTASHIELD, + .device = 0x4018, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .init = pci_oxsemi_tornado_init, + .setup = pci_oxsemi_tornado_setup, + }, { .vendor = PCI_VENDOR_ID_INTEL, .device = 0x8811, @@ -4912,6 +5059,12 @@ pbn_b1_bt_1_115200 }, /* + * IntaShield IS-100 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x0D60, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, + pbn_b2_1_115200 }, + /* * IntaShield IS-200 */ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_IS200, @@ -4923,6 +5076,27 @@ { PCI_VENDOR_ID_INTASHIELD, PCI_DEVICE_ID_INTASHIELD_IS400, PCI_ANY_ID, PCI_ANY_ID, 0, 0, /* 135a.0dc0 */ pbn_b2_4_115200 }, + /* + * IntaShield IX-100 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x4027, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_oxsemi_1_15625000 }, + /* + * IntaShield IX-200 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x4028, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_oxsemi_2_15625000 }, + /* + * IntaShield IX-400 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x4029, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_oxsemi_4_15625000 }, /* Brainboxes Devices */ /* * Brainboxes UC-101 @@ -4938,10 +5112,14 @@ PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_b2_1_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x0AA2, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_1_115200 }, /* - * Brainboxes UC-257 + * Brainboxes UC-253/UC-734 */ - { PCI_VENDOR_ID_INTASHIELD, 0x0861, + { PCI_VENDOR_ID_INTASHIELD, 0x0CA1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_b2_2_115200 }, @@ -4977,6 +5155,14 @@ PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_b2_2_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x08E2, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x08E3, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, /* * Brainboxes UC-310 */ @@ -4987,6 +5173,14 @@ /* * Brainboxes UC-313 */ + { PCI_VENDOR_ID_INTASHIELD, 0x08A1, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x08A2, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, { PCI_VENDOR_ID_INTASHIELD, 0x08A3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, @@ -5001,6 +5195,10 @@ /* * Brainboxes UC-346 */ + { PCI_VENDOR_ID_INTASHIELD, 0x0B01, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_4_115200 }, { PCI_VENDOR_ID_INTASHIELD, 0x0B02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, @@ -5012,6 +5210,10 @@ PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_b2_2_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x0A82, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, { PCI_VENDOR_ID_INTASHIELD, 0x0A83, PCI_ANY_ID, PCI_ANY_ID, 0, 0, @@ -5024,13 +5226,95 @@ 0, 0, pbn_b2_4_115200 }, /* - * Brainboxes UC-420/431 + * Brainboxes UC-420 */ { PCI_VENDOR_ID_INTASHIELD, 0x0921, PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_b2_4_115200 }, /* + * Brainboxes UC-607 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x09A1, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x09A2, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x09A3, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, + /* + * Brainboxes UC-836 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x0D41, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_4_115200 }, + /* + * Brainboxes UP-189 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x0AC1, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x0AC2, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x0AC3, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, + /* + * Brainboxes UP-200 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x0B21, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x0B22, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x0B23, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, + /* + * Brainboxes UP-869 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x0C01, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x0C02, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x0C03, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, + /* + * Brainboxes UP-880 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x0C21, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x0C22, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x0C23, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_2_115200 }, + /* * Brainboxes PX-101 */ { PCI_VENDOR_ID_INTASHIELD, 0x4005, @@ -5062,7 +5346,7 @@ { PCI_VENDOR_ID_INTASHIELD, 0x4015, PCI_ANY_ID, PCI_ANY_ID, 0, 0, - pbn_oxsemi_4_15625000 }, + pbn_oxsemi_2_15625000 }, /* * Brainboxes PX-260/PX-701 */ @@ -5071,6 +5355,13 @@ 0, 0, pbn_oxsemi_4_15625000 }, /* + * Brainboxes PX-275/279 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x0E41, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b2_8_115200 }, + /* * Brainboxes PX-310 */ { PCI_VENDOR_ID_INTASHIELD, 0x400E, @@ -5117,16 +5408,38 @@ 0, 0, pbn_oxsemi_4_15625000 }, /* - * Brainboxes PX-803 + * Brainboxes PX-475 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x401D, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_oxsemi_1_15625000 }, + /* + * Brainboxes PX-803/PX-857 */ { PCI_VENDOR_ID_INTASHIELD, 0x4009, PCI_ANY_ID, PCI_ANY_ID, 0, 0, - pbn_b0_1_115200 }, + pbn_b0_2_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x4018, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_oxsemi_2_15625000 }, { PCI_VENDOR_ID_INTASHIELD, 0x401E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, - pbn_oxsemi_1_15625000 }, + pbn_oxsemi_2_15625000 }, + /* + * Brainboxes PX-820 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x4002, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b0_4_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x4013, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_oxsemi_4_15625000 }, /* * Brainboxes PX-846 */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/tty/serial/amba-pl011.c +++ linux-riscv-6.5.0/drivers/tty/serial/amba-pl011.c @@ -218,17 +218,18 @@ /* Deals with DMA transactions */ -struct pl011_sgbuf { - struct scatterlist sg; - char *buf; +struct pl011_dmabuf { + dma_addr_t dma; + size_t len; + char *buf; }; struct pl011_dmarx_data { struct dma_chan *chan; struct completion complete; bool use_buf_b; - struct pl011_sgbuf sgbuf_a; - struct pl011_sgbuf sgbuf_b; + struct pl011_dmabuf dbuf_a; + struct pl011_dmabuf dbuf_b; dma_cookie_t cookie; bool running; struct timer_list timer; @@ -241,7 +242,8 @@ struct pl011_dmatx_data { struct dma_chan *chan; - struct scatterlist sg; + dma_addr_t dma; + size_t len; char *buf; bool queued; }; @@ -365,32 +367,24 @@ #define PL011_DMA_BUFFER_SIZE PAGE_SIZE -static int pl011_sgbuf_init(struct dma_chan *chan, struct pl011_sgbuf *sg, +static int pl011_dmabuf_init(struct dma_chan *chan, struct pl011_dmabuf *db, enum dma_data_direction dir) { - dma_addr_t dma_addr; - - sg->buf = dma_alloc_coherent(chan->device->dev, - PL011_DMA_BUFFER_SIZE, &dma_addr, GFP_KERNEL); - if (!sg->buf) + db->buf = dma_alloc_coherent(chan->device->dev, PL011_DMA_BUFFER_SIZE, + &db->dma, GFP_KERNEL); + if (!db->buf) return -ENOMEM; - - sg_init_table(&sg->sg, 1); - sg_set_page(&sg->sg, phys_to_page(dma_addr), - PL011_DMA_BUFFER_SIZE, offset_in_page(dma_addr)); - sg_dma_address(&sg->sg) = dma_addr; - sg_dma_len(&sg->sg) = PL011_DMA_BUFFER_SIZE; + db->len = PL011_DMA_BUFFER_SIZE; return 0; } -static void pl011_sgbuf_free(struct dma_chan *chan, struct pl011_sgbuf *sg, +static void pl011_dmabuf_free(struct dma_chan *chan, struct pl011_dmabuf *db, enum dma_data_direction dir) { - if (sg->buf) { + if (db->buf) { dma_free_coherent(chan->device->dev, - PL011_DMA_BUFFER_SIZE, sg->buf, - sg_dma_address(&sg->sg)); + PL011_DMA_BUFFER_SIZE, db->buf, db->dma); } } @@ -551,8 +545,8 @@ spin_lock_irqsave(&uap->port.lock, flags); if (uap->dmatx.queued) - dma_unmap_sg(dmatx->chan->device->dev, &dmatx->sg, 1, - DMA_TO_DEVICE); + dma_unmap_single(dmatx->chan->device->dev, dmatx->dma, + dmatx->len, DMA_TO_DEVICE); dmacr = uap->dmacr; uap->dmacr = dmacr & ~UART011_TXDMAE; @@ -638,18 +632,19 @@ memcpy(&dmatx->buf[first], &xmit->buf[0], second); } - dmatx->sg.length = count; - - if (dma_map_sg(dma_dev->dev, &dmatx->sg, 1, DMA_TO_DEVICE) != 1) { + dmatx->len = count; + dmatx->dma = dma_map_single(dma_dev->dev, dmatx->buf, count, + DMA_TO_DEVICE); + if (dmatx->dma == DMA_MAPPING_ERROR) { uap->dmatx.queued = false; dev_dbg(uap->port.dev, "unable to map TX DMA\n"); return -EBUSY; } - desc = dmaengine_prep_slave_sg(chan, &dmatx->sg, 1, DMA_MEM_TO_DEV, + desc = dmaengine_prep_slave_single(chan, dmatx->dma, dmatx->len, DMA_MEM_TO_DEV, DMA_PREP_INTERRUPT | DMA_CTRL_ACK); if (!desc) { - dma_unmap_sg(dma_dev->dev, &dmatx->sg, 1, DMA_TO_DEVICE); + dma_unmap_single(dma_dev->dev, dmatx->dma, dmatx->len, DMA_TO_DEVICE); uap->dmatx.queued = false; /* * If DMA cannot be used right now, we complete this @@ -812,8 +807,8 @@ dmaengine_terminate_async(uap->dmatx.chan); if (uap->dmatx.queued) { - dma_unmap_sg(uap->dmatx.chan->device->dev, &uap->dmatx.sg, 1, - DMA_TO_DEVICE); + dma_unmap_single(uap->dmatx.chan->device->dev, uap->dmatx.dma, + uap->dmatx.len, DMA_TO_DEVICE); uap->dmatx.queued = false; uap->dmacr &= ~UART011_TXDMAE; pl011_write(uap->dmacr, uap, REG_DMACR); @@ -827,15 +822,15 @@ struct dma_chan *rxchan = uap->dmarx.chan; struct pl011_dmarx_data *dmarx = &uap->dmarx; struct dma_async_tx_descriptor *desc; - struct pl011_sgbuf *sgbuf; + struct pl011_dmabuf *dbuf; if (!rxchan) return -EIO; /* Start the RX DMA job */ - sgbuf = uap->dmarx.use_buf_b ? - &uap->dmarx.sgbuf_b : &uap->dmarx.sgbuf_a; - desc = dmaengine_prep_slave_sg(rxchan, &sgbuf->sg, 1, + dbuf = uap->dmarx.use_buf_b ? + &uap->dmarx.dbuf_b : &uap->dmarx.dbuf_a; + desc = dmaengine_prep_slave_single(rxchan, dbuf->dma, dbuf->len, DMA_DEV_TO_MEM, DMA_PREP_INTERRUPT | DMA_CTRL_ACK); /* @@ -875,8 +870,8 @@ bool readfifo) { struct tty_port *port = &uap->port.state->port; - struct pl011_sgbuf *sgbuf = use_buf_b ? - &uap->dmarx.sgbuf_b : &uap->dmarx.sgbuf_a; + struct pl011_dmabuf *dbuf = use_buf_b ? + &uap->dmarx.dbuf_b : &uap->dmarx.dbuf_a; int dma_count = 0; u32 fifotaken = 0; /* only used for vdbg() */ @@ -885,7 +880,7 @@ if (uap->dmarx.poll_rate) { /* The data can be taken by polling */ - dmataken = sgbuf->sg.length - dmarx->last_residue; + dmataken = dbuf->len - dmarx->last_residue; /* Recalculate the pending size */ if (pending >= dmataken) pending -= dmataken; @@ -899,7 +894,7 @@ * Note that tty_insert_flip_buf() tries to take as many chars * as it can. */ - dma_count = tty_insert_flip_string(port, sgbuf->buf + dmataken, + dma_count = tty_insert_flip_string(port, dbuf->buf + dmataken, pending); uap->port.icount.rx += dma_count; @@ -910,7 +905,7 @@ /* Reset the last_residue for Rx DMA poll */ if (uap->dmarx.poll_rate) - dmarx->last_residue = sgbuf->sg.length; + dmarx->last_residue = dbuf->len; /* * Only continue with trying to read the FIFO if all DMA chars have @@ -945,8 +940,8 @@ { struct pl011_dmarx_data *dmarx = &uap->dmarx; struct dma_chan *rxchan = dmarx->chan; - struct pl011_sgbuf *sgbuf = dmarx->use_buf_b ? - &dmarx->sgbuf_b : &dmarx->sgbuf_a; + struct pl011_dmabuf *dbuf = dmarx->use_buf_b ? + &dmarx->dbuf_b : &dmarx->dbuf_a; size_t pending; struct dma_tx_state state; enum dma_status dmastat; @@ -968,7 +963,7 @@ pl011_write(uap->dmacr, uap, REG_DMACR); uap->dmarx.running = false; - pending = sgbuf->sg.length - state.residue; + pending = dbuf->len - state.residue; BUG_ON(pending > PL011_DMA_BUFFER_SIZE); /* Then we terminate the transfer - we now know our residue */ dmaengine_terminate_all(rxchan); @@ -995,8 +990,8 @@ struct pl011_dmarx_data *dmarx = &uap->dmarx; struct dma_chan *rxchan = dmarx->chan; bool lastbuf = dmarx->use_buf_b; - struct pl011_sgbuf *sgbuf = dmarx->use_buf_b ? - &dmarx->sgbuf_b : &dmarx->sgbuf_a; + struct pl011_dmabuf *dbuf = dmarx->use_buf_b ? + &dmarx->dbuf_b : &dmarx->dbuf_a; size_t pending; struct dma_tx_state state; int ret; @@ -1014,7 +1009,7 @@ * the DMA irq handler. So we check the residue here. */ rxchan->device->device_tx_status(rxchan, dmarx->cookie, &state); - pending = sgbuf->sg.length - state.residue; + pending = dbuf->len - state.residue; BUG_ON(pending > PL011_DMA_BUFFER_SIZE); /* Then we terminate the transfer - we now know our residue */ dmaengine_terminate_all(rxchan); @@ -1066,16 +1061,16 @@ unsigned long flags; unsigned int dmataken = 0; unsigned int size = 0; - struct pl011_sgbuf *sgbuf; + struct pl011_dmabuf *dbuf; int dma_count; struct dma_tx_state state; - sgbuf = dmarx->use_buf_b ? &uap->dmarx.sgbuf_b : &uap->dmarx.sgbuf_a; + dbuf = dmarx->use_buf_b ? &uap->dmarx.dbuf_b : &uap->dmarx.dbuf_a; rxchan->device->device_tx_status(rxchan, dmarx->cookie, &state); if (likely(state.residue < dmarx->last_residue)) { - dmataken = sgbuf->sg.length - dmarx->last_residue; + dmataken = dbuf->len - dmarx->last_residue; size = dmarx->last_residue - state.residue; - dma_count = tty_insert_flip_string(port, sgbuf->buf + dmataken, + dma_count = tty_insert_flip_string(port, dbuf->buf + dmataken, size); if (dma_count == size) dmarx->last_residue = state.residue; @@ -1122,7 +1117,7 @@ return; } - sg_init_one(&uap->dmatx.sg, uap->dmatx.buf, PL011_DMA_BUFFER_SIZE); + uap->dmatx.len = PL011_DMA_BUFFER_SIZE; /* The DMA buffer is now the FIFO the TTY subsystem can use */ uap->port.fifosize = PL011_DMA_BUFFER_SIZE; @@ -1132,7 +1127,7 @@ goto skip_rx; /* Allocate and map DMA RX buffers */ - ret = pl011_sgbuf_init(uap->dmarx.chan, &uap->dmarx.sgbuf_a, + ret = pl011_dmabuf_init(uap->dmarx.chan, &uap->dmarx.dbuf_a, DMA_FROM_DEVICE); if (ret) { dev_err(uap->port.dev, "failed to init DMA %s: %d\n", @@ -1140,12 +1135,12 @@ goto skip_rx; } - ret = pl011_sgbuf_init(uap->dmarx.chan, &uap->dmarx.sgbuf_b, + ret = pl011_dmabuf_init(uap->dmarx.chan, &uap->dmarx.dbuf_b, DMA_FROM_DEVICE); if (ret) { dev_err(uap->port.dev, "failed to init DMA %s: %d\n", "RX buffer B", ret); - pl011_sgbuf_free(uap->dmarx.chan, &uap->dmarx.sgbuf_a, + pl011_dmabuf_free(uap->dmarx.chan, &uap->dmarx.dbuf_a, DMA_FROM_DEVICE); goto skip_rx; } @@ -1199,8 +1194,9 @@ /* In theory, this should already be done by pl011_dma_flush_buffer */ dmaengine_terminate_all(uap->dmatx.chan); if (uap->dmatx.queued) { - dma_unmap_sg(uap->dmatx.chan->device->dev, &uap->dmatx.sg, 1, - DMA_TO_DEVICE); + dma_unmap_single(uap->dmatx.chan->device->dev, + uap->dmatx.dma, uap->dmatx.len, + DMA_TO_DEVICE); uap->dmatx.queued = false; } @@ -1211,8 +1207,8 @@ if (uap->using_rx_dma) { dmaengine_terminate_all(uap->dmarx.chan); /* Clean up the RX DMA */ - pl011_sgbuf_free(uap->dmarx.chan, &uap->dmarx.sgbuf_a, DMA_FROM_DEVICE); - pl011_sgbuf_free(uap->dmarx.chan, &uap->dmarx.sgbuf_b, DMA_FROM_DEVICE); + pl011_dmabuf_free(uap->dmarx.chan, &uap->dmarx.dbuf_a, DMA_FROM_DEVICE); + pl011_dmabuf_free(uap->dmarx.chan, &uap->dmarx.dbuf_b, DMA_FROM_DEVICE); if (uap->dmarx.poll_rate) del_timer_sync(&uap->dmarx.timer); uap->using_rx_dma = false; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/tty/serial/ma35d1_serial.c +++ linux-riscv-6.5.0/drivers/tty/serial/ma35d1_serial.c @@ -552,11 +552,19 @@ */ static void ma35d1serial_console_write(struct console *co, const char *s, u32 count) { - struct uart_ma35d1_port *up = &ma35d1serial_ports[co->index]; + struct uart_ma35d1_port *up; unsigned long flags; int locked = 1; u32 ier; + if ((co->index < 0) || (co->index >= MA35_UART_NR)) { + pr_warn("Failed to write on ononsole port %x, out of range\n", + co->index); + return; + } + + up = &ma35d1serial_ports[co->index]; + if (up->port.sysrq) locked = 0; else if (oops_in_progress) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/tty/serial/meson_uart.c +++ linux-riscv-6.5.0/drivers/tty/serial/meson_uart.c @@ -379,10 +379,14 @@ else val |= AML_UART_STOP_BIT_1SB; - if (cflags & CRTSCTS) - val &= ~AML_UART_TWO_WIRE_EN; - else + if (cflags & CRTSCTS) { + if (port->flags & UPF_HARD_FLOW) + val &= ~AML_UART_TWO_WIRE_EN; + else + termios->c_cflag &= ~CRTSCTS; + } else { val |= AML_UART_TWO_WIRE_EN; + } writel(val, port->membase + AML_UART_CONTROL); @@ -697,6 +701,7 @@ u32 fifosize = 64; /* Default is 64, 128 for EE UART_0 */ int ret = 0; int irq; + bool has_rtscts; if (pdev->dev.of_node) pdev->id = of_alias_get_id(pdev->dev.of_node, "serial"); @@ -724,6 +729,7 @@ return irq; of_property_read_u32(pdev->dev.of_node, "fifo-size", &fifosize); + has_rtscts = of_property_read_bool(pdev->dev.of_node, "uart-has-rtscts"); if (meson_ports[pdev->id]) { dev_err(&pdev->dev, "port %d already allocated\n", pdev->id); @@ -743,6 +749,8 @@ port->mapsize = resource_size(res_mem); port->irq = irq; port->flags = UPF_BOOT_AUTOCONF | UPF_LOW_LATENCY; + if (has_rtscts) + port->flags |= UPF_HARD_FLOW; port->has_sysrq = IS_ENABLED(CONFIG_SERIAL_MESON_CONSOLE); port->dev = &pdev->dev; port->line = pdev->id; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/tty/sysrq.c +++ linux-riscv-6.5.0/drivers/tty/sysrq.c @@ -263,13 +263,14 @@ if (in_hardirq()) regs = get_irq_regs(); - pr_info("CPU%d:\n", smp_processor_id()); + pr_info("CPU%d:\n", get_cpu()); if (regs) show_regs(regs); else show_stack(NULL, NULL, KERN_INFO); schedule_work(&sysrq_showallcpus); + put_cpu(); } } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/tty/tty_jobctrl.c +++ linux-riscv-6.5.0/drivers/tty/tty_jobctrl.c @@ -300,12 +300,7 @@ return; } - spin_lock_irq(¤t->sighand->siglock); - put_pid(current->signal->tty_old_pgrp); - current->signal->tty_old_pgrp = NULL; - tty = tty_kref_get(current->signal->tty); - spin_unlock_irq(¤t->sighand->siglock); - + tty = get_current_tty(); if (tty) { unsigned long flags; @@ -320,6 +315,16 @@ tty_kref_put(tty); } + /* If tty->ctrl.pgrp is not NULL, it may be assigned to + * current->signal->tty_old_pgrp in a race condition, and + * cause pid memleak. Release current->signal->tty_old_pgrp + * after tty->ctrl.pgrp set to NULL. + */ + spin_lock_irq(¤t->sighand->siglock); + put_pid(current->signal->tty_old_pgrp); + current->signal->tty_old_pgrp = NULL; + spin_unlock_irq(¤t->sighand->siglock); + /* Now clear signal->tty under the lock */ read_lock(&tasklist_lock); session_clear_tty(task_session(current)); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/tty/vcc.c +++ linux-riscv-6.5.0/drivers/tty/vcc.c @@ -579,18 +579,22 @@ return -ENOMEM; name = kstrdup(dev_name(&vdev->dev), GFP_KERNEL); + if (!name) { + rv = -ENOMEM; + goto free_port; + } rv = vio_driver_init(&port->vio, vdev, VDEV_CONSOLE_CON, vcc_versions, ARRAY_SIZE(vcc_versions), NULL, name); if (rv) - goto free_port; + goto free_name; port->vio.debug = vcc_dbg_vio; vcc_ldc_cfg.debug = vcc_dbg_ldc; rv = vio_ldc_alloc(&port->vio, &vcc_ldc_cfg, port); if (rv) - goto free_port; + goto free_name; spin_lock_init(&port->lock); @@ -624,6 +628,11 @@ goto unreg_tty; } port->domain = kstrdup(domain, GFP_KERNEL); + if (!port->domain) { + rv = -ENOMEM; + goto unreg_tty; + } + mdesc_release(hp); @@ -653,8 +662,9 @@ vcc_table_remove(port->index); free_ldc: vio_ldc_free(&port->vio); -free_port: +free_name: kfree(name); +free_port: kfree(port); return rv; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/ufs/core/ufs-mcq.c +++ linux-riscv-6.5.0/drivers/ufs/core/ufs-mcq.c @@ -433,7 +433,7 @@ for (i = 0; i < hba->nr_hw_queues; i++) { hwq = &hba->uhq[i]; - hwq->max_entries = hba->nutrs; + hwq->max_entries = hba->nutrs + 1; spin_lock_init(&hwq->sq_lock); spin_lock_init(&hwq->cq_lock); mutex_init(&hwq->sq_mutex); @@ -632,6 +632,7 @@ int tag = scsi_cmd_to_rq(cmd)->tag; struct ufshcd_lrb *lrbp = &hba->lrb[tag]; struct ufs_hw_queue *hwq; + unsigned long flags; int err = FAILED; if (!ufshcd_cmd_inflight(lrbp->cmd)) { @@ -672,8 +673,10 @@ } err = SUCCESS; + spin_lock_irqsave(&hwq->cq_lock, flags); if (ufshcd_cmd_inflight(lrbp->cmd)) ufshcd_release_scsi_cmd(hba, lrbp); + spin_unlock_irqrestore(&hwq->cq_lock, flags); out: return err; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/ufs/host/ufs-qcom.c +++ linux-riscv-6.5.0/drivers/ufs/host/ufs-qcom.c @@ -820,8 +820,13 @@ return ret; } - /* Use the agreed gear */ - host->hs_gear = dev_req_params->gear_tx; + /* + * Update hs_gear only when the gears are scaled to a higher value. This is because, + * the PHY gear settings are backwards compatible and we only need to change the PHY + * settings while scaling to higher gears. + */ + if (dev_req_params->gear_tx > host->hs_gear) + host->hs_gear = dev_req_params->gear_tx; /* enable the device ref clock before changing to HS mode */ if (!ufshcd_is_hs_mode(&hba->pwr_info) && only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/usb/cdns3/cdnsp-ring.c +++ linux-riscv-6.5.0/drivers/usb/cdns3/cdnsp-ring.c @@ -1529,6 +1529,7 @@ unsigned long flags; int counter = 0; + local_bh_disable(); spin_lock_irqsave(&pdev->lock, flags); if (pdev->cdnsp_state & (CDNSP_STATE_HALTED | CDNSP_STATE_DYING)) { @@ -1541,6 +1542,7 @@ cdnsp_died(pdev); spin_unlock_irqrestore(&pdev->lock, flags); + local_bh_enable(); return IRQ_HANDLED; } @@ -1557,6 +1559,7 @@ cdnsp_update_erst_dequeue(pdev, event_ring_deq, 1); spin_unlock_irqrestore(&pdev->lock, flags); + local_bh_enable(); return IRQ_HANDLED; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/usb/core/config.c +++ linux-riscv-6.5.0/drivers/usb/core/config.c @@ -1047,7 +1047,7 @@ if (cap->bDescriptorType != USB_DT_DEVICE_CAPABILITY) { dev_notice(ddev, "descriptor type invalid, skip\n"); - continue; + goto skip_to_next_descriptor; } switch (cap_type) { @@ -1081,6 +1081,7 @@ break; } +skip_to_next_descriptor: total_len -= length; buffer += length; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/usb/dwc2/hcd.c +++ linux-riscv-6.5.0/drivers/usb/dwc2/hcd.c @@ -4769,8 +4769,8 @@ if (qh_allocated && qh->channel && qh->channel->qh == qh) qh->channel->qh = NULL; fail2: - spin_unlock_irqrestore(&hsotg->lock, flags); urb->hcpriv = NULL; + spin_unlock_irqrestore(&hsotg->lock, flags); kfree(qtd); fail1: if (qh_allocated) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/usb/dwc2/hcd_intr.c +++ linux-riscv-6.5.0/drivers/usb/dwc2/hcd_intr.c @@ -2015,15 +2015,17 @@ { struct dwc2_qtd *qtd; struct dwc2_host_chan *chan; - u32 hcint, hcintmsk; + u32 hcint, hcintraw, hcintmsk; chan = hsotg->hc_ptr_array[chnum]; - hcint = dwc2_readl(hsotg, HCINT(chnum)); + hcintraw = dwc2_readl(hsotg, HCINT(chnum)); hcintmsk = dwc2_readl(hsotg, HCINTMSK(chnum)); + hcint = hcintraw & hcintmsk; + dwc2_writel(hsotg, hcint, HCINT(chnum)); + if (!chan) { dev_err(hsotg->dev, "## hc_ptr_array for channel is NULL ##\n"); - dwc2_writel(hsotg, hcint, HCINT(chnum)); return; } @@ -2032,11 +2034,9 @@ chnum); dev_vdbg(hsotg->dev, " hcint 0x%08x, hcintmsk 0x%08x, hcint&hcintmsk 0x%08x\n", - hcint, hcintmsk, hcint & hcintmsk); + hcintraw, hcintmsk, hcint); } - dwc2_writel(hsotg, hcint, HCINT(chnum)); - /* * If we got an interrupt after someone called * dwc2_hcd_endpoint_disable() we don't want to crash below @@ -2046,8 +2046,7 @@ return; } - chan->hcint = hcint; - hcint &= hcintmsk; + chan->hcint = hcintraw; /* * If the channel was halted due to a dequeue, the qtd list might only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/usb/dwc3/core.h +++ linux-riscv-6.5.0/drivers/usb/dwc3/core.h @@ -211,6 +211,11 @@ #define DWC3_GRXTHRCFG_RXPKTCNT(n) (((n) & 0xf) << 24) #define DWC3_GRXTHRCFG_PKTCNTSEL BIT(29) +/* Global TX Threshold Configuration Register */ +#define DWC3_GTXTHRCFG_MAXTXBURSTSIZE(n) (((n) & 0xff) << 16) +#define DWC3_GTXTHRCFG_TXPKTCNT(n) (((n) & 0xf) << 24) +#define DWC3_GTXTHRCFG_PKTCNTSEL BIT(29) + /* Global RX Threshold Configuration Register for DWC_usb31 only */ #define DWC31_GRXTHRCFG_MAXRXBURSTSIZE(n) (((n) & 0x1f) << 16) #define DWC31_GRXTHRCFG_RXPKTCNT(n) (((n) & 0x1f) << 21) @@ -1045,6 +1050,10 @@ * @test_mode_nr: test feature selector * @lpm_nyet_threshold: LPM NYET response threshold * @hird_threshold: HIRD threshold + * @rx_thr_num_pkt: USB receive packet count + * @rx_max_burst: max USB receive burst size + * @tx_thr_num_pkt: USB transmit packet count + * @tx_max_burst: max USB transmit burst size * @rx_thr_num_pkt_prd: periodic ESS receive packet count * @rx_max_burst_prd: max periodic ESS receive burst size * @tx_thr_num_pkt_prd: periodic ESS transmit packet count @@ -1273,6 +1282,10 @@ u8 test_mode_nr; u8 lpm_nyet_threshold; u8 hird_threshold; + u8 rx_thr_num_pkt; + u8 rx_max_burst; + u8 tx_thr_num_pkt; + u8 tx_max_burst; u8 rx_thr_num_pkt_prd; u8 rx_max_burst_prd; u8 tx_thr_num_pkt_prd; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/usb/dwc3/drd.c +++ linux-riscv-6.5.0/drivers/usb/dwc3/drd.c @@ -505,6 +505,7 @@ dwc->role_switch_default_mode = USB_DR_MODE_PERIPHERAL; mode = DWC3_GCTL_PRTCAP_DEVICE; } + dwc3_set_mode(dwc, mode); dwc3_role_switch.fwnode = dev_fwnode(dwc->dev); dwc3_role_switch.set = dwc3_usb_role_switch_set; @@ -526,7 +527,6 @@ } } - dwc3_set_mode(dwc, mode); return 0; } #else only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/usb/dwc3/dwc3-qcom.c +++ linux-riscv-6.5.0/drivers/usb/dwc3/dwc3-qcom.c @@ -549,7 +549,7 @@ irq_set_status_flags(irq, IRQ_NOAUTOEN); ret = devm_request_threaded_irq(qcom->dev, irq, NULL, qcom_dwc3_resume_irq, - IRQF_TRIGGER_HIGH | IRQF_ONESHOT, + IRQF_ONESHOT, "qcom_dwc3 HS", qcom); if (ret) { dev_err(qcom->dev, "hs_phy_irq failed: %d\n", ret); @@ -564,7 +564,7 @@ irq_set_status_flags(irq, IRQ_NOAUTOEN); ret = devm_request_threaded_irq(qcom->dev, irq, NULL, qcom_dwc3_resume_irq, - IRQF_TRIGGER_HIGH | IRQF_ONESHOT, + IRQF_ONESHOT, "qcom_dwc3 DP_HS", qcom); if (ret) { dev_err(qcom->dev, "dp_hs_phy_irq failed: %d\n", ret); @@ -579,7 +579,7 @@ irq_set_status_flags(irq, IRQ_NOAUTOEN); ret = devm_request_threaded_irq(qcom->dev, irq, NULL, qcom_dwc3_resume_irq, - IRQF_TRIGGER_HIGH | IRQF_ONESHOT, + IRQF_ONESHOT, "qcom_dwc3 DM_HS", qcom); if (ret) { dev_err(qcom->dev, "dm_hs_phy_irq failed: %d\n", ret); @@ -594,7 +594,7 @@ irq_set_status_flags(irq, IRQ_NOAUTOEN); ret = devm_request_threaded_irq(qcom->dev, irq, NULL, qcom_dwc3_resume_irq, - IRQF_TRIGGER_HIGH | IRQF_ONESHOT, + IRQF_ONESHOT, "qcom_dwc3 SS", qcom); if (ret) { dev_err(qcom->dev, "ss_phy_irq failed: %d\n", ret); @@ -758,6 +758,7 @@ if (!qcom->dwc3) { ret = -ENODEV; dev_err(dev, "failed to get dwc3 platform device\n"); + of_platform_depopulate(dev); } node_put: @@ -766,9 +767,9 @@ return ret; } -static struct platform_device * -dwc3_qcom_create_urs_usb_platdev(struct device *dev) +static struct platform_device *dwc3_qcom_create_urs_usb_platdev(struct device *dev) { + struct platform_device *urs_usb = NULL; struct fwnode_handle *fwh; struct acpi_device *adev; char name[8]; @@ -788,9 +789,26 @@ adev = to_acpi_device_node(fwh); if (!adev) - return NULL; + goto err_put_handle; + + urs_usb = acpi_create_platform_device(adev, NULL); + if (IS_ERR_OR_NULL(urs_usb)) + goto err_put_handle; + + return urs_usb; + +err_put_handle: + fwnode_handle_put(fwh); + + return urs_usb; +} - return acpi_create_platform_device(adev, NULL); +static void dwc3_qcom_destroy_urs_usb_platdev(struct platform_device *urs_usb) +{ + struct fwnode_handle *fwh = urs_usb->dev.fwnode; + + platform_device_unregister(urs_usb); + fwnode_handle_put(fwh); } static int dwc3_qcom_probe(struct platform_device *pdev) @@ -874,13 +892,13 @@ qcom->qscratch_base = devm_ioremap_resource(dev, parent_res); if (IS_ERR(qcom->qscratch_base)) { ret = PTR_ERR(qcom->qscratch_base); - goto clk_disable; + goto free_urs; } ret = dwc3_qcom_setup_irq(pdev); if (ret) { dev_err(dev, "failed to setup IRQs, err=%d\n", ret); - goto clk_disable; + goto free_urs; } /* @@ -899,7 +917,7 @@ if (ret) { dev_err(dev, "failed to register DWC3 Core, err=%d\n", ret); - goto depopulate; + goto free_urs; } ret = dwc3_qcom_interconnect_init(qcom); @@ -931,10 +949,16 @@ interconnect_exit: dwc3_qcom_interconnect_exit(qcom); depopulate: - if (np) + if (np) { of_platform_depopulate(&pdev->dev); - else - platform_device_put(pdev); + } else { + device_remove_software_node(&qcom->dwc3->dev); + platform_device_del(qcom->dwc3); + } + platform_device_put(qcom->dwc3); +free_urs: + if (qcom->urs_usb) + dwc3_qcom_destroy_urs_usb_platdev(qcom->urs_usb); clk_disable: for (i = qcom->num_clocks - 1; i >= 0; i--) { clk_disable_unprepare(qcom->clks[i]); @@ -953,11 +977,16 @@ struct device *dev = &pdev->dev; int i; - device_remove_software_node(&qcom->dwc3->dev); - if (np) + if (np) { of_platform_depopulate(&pdev->dev); - else - platform_device_put(pdev); + } else { + device_remove_software_node(&qcom->dwc3->dev); + platform_device_del(qcom->dwc3); + } + platform_device_put(qcom->dwc3); + + if (qcom->urs_usb) + dwc3_qcom_destroy_urs_usb_platdev(qcom->urs_usb); for (i = qcom->num_clocks - 1; i >= 0; i--) { clk_disable_unprepare(qcom->clks[i]); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/usb/gadget/function/f_hid.c +++ linux-riscv-6.5.0/drivers/usb/gadget/function/f_hid.c @@ -92,6 +92,7 @@ { struct f_hidg *hidg = container_of(dev, struct f_hidg, dev); + kfree(hidg->report_desc); kfree(hidg->set_report_buf); kfree(hidg); } @@ -1287,9 +1288,9 @@ hidg->report_length = opts->report_length; hidg->report_desc_length = opts->report_desc_length; if (opts->report_desc) { - hidg->report_desc = devm_kmemdup(&hidg->dev, opts->report_desc, - opts->report_desc_length, - GFP_KERNEL); + hidg->report_desc = kmemdup(opts->report_desc, + opts->report_desc_length, + GFP_KERNEL); if (!hidg->report_desc) { ret = -ENOMEM; goto err_put_device; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/usb/gadget/legacy/raw_gadget.c +++ linux-riscv-6.5.0/drivers/usb/gadget/legacy/raw_gadget.c @@ -663,12 +663,12 @@ if (WARN_ON(in && dev->ep0_out_pending)) { ret = -ENODEV; dev->state = STATE_DEV_FAILED; - goto out_done; + goto out_unlock; } if (WARN_ON(!in && dev->ep0_in_pending)) { ret = -ENODEV; dev->state = STATE_DEV_FAILED; - goto out_done; + goto out_unlock; } dev->req->buf = data; @@ -683,7 +683,7 @@ "fail, usb_ep_queue returned %d\n", ret); spin_lock_irqsave(&dev->lock, flags); dev->state = STATE_DEV_FAILED; - goto out_done; + goto out_queue_failed; } ret = wait_for_completion_interruptible(&dev->ep0_done); @@ -692,13 +692,16 @@ usb_ep_dequeue(dev->gadget->ep0, dev->req); wait_for_completion(&dev->ep0_done); spin_lock_irqsave(&dev->lock, flags); - goto out_done; + if (dev->ep0_status == -ECONNRESET) + dev->ep0_status = -EINTR; + goto out_interrupted; } spin_lock_irqsave(&dev->lock, flags); - ret = dev->ep0_status; -out_done: +out_interrupted: + ret = dev->ep0_status; +out_queue_failed: dev->ep0_urb_queued = false; out_unlock: spin_unlock_irqrestore(&dev->lock, flags); @@ -1067,7 +1070,7 @@ "fail, usb_ep_queue returned %d\n", ret); spin_lock_irqsave(&dev->lock, flags); dev->state = STATE_DEV_FAILED; - goto out_done; + goto out_queue_failed; } ret = wait_for_completion_interruptible(&done); @@ -1076,13 +1079,16 @@ usb_ep_dequeue(ep->ep, ep->req); wait_for_completion(&done); spin_lock_irqsave(&dev->lock, flags); - goto out_done; + if (ep->status == -ECONNRESET) + ep->status = -EINTR; + goto out_interrupted; } spin_lock_irqsave(&dev->lock, flags); - ret = ep->status; -out_done: +out_interrupted: + ret = ep->status; +out_queue_failed: ep->urb_queued = false; out_unlock: spin_unlock_irqrestore(&dev->lock, flags); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/usb/host/xhci-pci.c +++ linux-riscv-6.5.0/drivers/usb/host/xhci-pci.c @@ -693,7 +693,9 @@ /* USB-2 and USB-3 roothubs initialized, allow runtime pm suspend */ pm_runtime_put_noidle(&dev->dev); - if (xhci->quirks & XHCI_DEFAULT_PM_RUNTIME_ALLOW) + if (pci_choose_state(dev, PMSG_SUSPEND) == PCI_D0) + pm_runtime_forbid(&dev->dev); + else if (xhci->quirks & XHCI_DEFAULT_PM_RUNTIME_ALLOW) pm_runtime_allow(&dev->dev); dma_set_max_seg_size(&dev->dev, UINT_MAX); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/usb/host/xhci-plat.c +++ linux-riscv-6.5.0/drivers/usb/host/xhci-plat.c @@ -149,7 +149,7 @@ int ret; int irq; struct xhci_plat_priv *priv = NULL; - + bool of_match; if (usb_disabled()) return -ENODEV; @@ -254,16 +254,23 @@ &xhci->imod_interval); } - hcd->usb_phy = devm_usb_get_phy_by_phandle(sysdev, "usb-phy", 0); - if (IS_ERR(hcd->usb_phy)) { - ret = PTR_ERR(hcd->usb_phy); - if (ret == -EPROBE_DEFER) - goto disable_clk; - hcd->usb_phy = NULL; - } else { - ret = usb_phy_init(hcd->usb_phy); - if (ret) - goto disable_clk; + /* + * Drivers such as dwc3 manages PHYs themself (and rely on driver name + * matching for the xhci platform device). + */ + of_match = of_match_device(pdev->dev.driver->of_match_table, &pdev->dev); + if (of_match) { + hcd->usb_phy = devm_usb_get_phy_by_phandle(sysdev, "usb-phy", 0); + if (IS_ERR(hcd->usb_phy)) { + ret = PTR_ERR(hcd->usb_phy); + if (ret == -EPROBE_DEFER) + goto disable_clk; + hcd->usb_phy = NULL; + } else { + ret = usb_phy_init(hcd->usb_phy); + if (ret) + goto disable_clk; + } } hcd->tpl_support = of_usb_host_tpl_support(sysdev->of_node); @@ -286,15 +293,17 @@ goto dealloc_usb2_hcd; } - xhci->shared_hcd->usb_phy = devm_usb_get_phy_by_phandle(sysdev, - "usb-phy", 1); - if (IS_ERR(xhci->shared_hcd->usb_phy)) { - xhci->shared_hcd->usb_phy = NULL; - } else { - ret = usb_phy_init(xhci->shared_hcd->usb_phy); - if (ret) - dev_err(sysdev, "%s init usb3phy fail (ret=%d)\n", - __func__, ret); + if (of_match) { + xhci->shared_hcd->usb_phy = devm_usb_get_phy_by_phandle(sysdev, + "usb-phy", 1); + if (IS_ERR(xhci->shared_hcd->usb_phy)) { + xhci->shared_hcd->usb_phy = NULL; + } else { + ret = usb_phy_init(xhci->shared_hcd->usb_phy); + if (ret) + dev_err(sysdev, "%s init usb3phy fail (ret=%d)\n", + __func__, ret); + } } xhci->shared_hcd->tpl_support = hcd->tpl_support; @@ -459,23 +468,38 @@ int ret; if (!device_may_wakeup(dev) && (xhci->quirks & XHCI_SUSPEND_RESUME_CLKS)) { - clk_prepare_enable(xhci->clk); - clk_prepare_enable(xhci->reg_clk); + ret = clk_prepare_enable(xhci->clk); + if (ret) + return ret; + + ret = clk_prepare_enable(xhci->reg_clk); + if (ret) { + clk_disable_unprepare(xhci->clk); + return ret; + } } ret = xhci_priv_resume_quirk(hcd); if (ret) - return ret; + goto disable_clks; ret = xhci_resume(xhci, PMSG_RESUME); if (ret) - return ret; + goto disable_clks; pm_runtime_disable(dev); pm_runtime_set_active(dev); pm_runtime_enable(dev); return 0; + +disable_clks: + if (!device_may_wakeup(dev) && (xhci->quirks & XHCI_SUSPEND_RESUME_CLKS)) { + clk_disable_unprepare(xhci->clk); + clk_disable_unprepare(xhci->reg_clk); + } + + return ret; } static int __maybe_unused xhci_plat_runtime_suspend(struct device *dev) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/usb/host/xhci.c +++ linux-riscv-6.5.0/drivers/usb/host/xhci.c @@ -968,6 +968,7 @@ int retval = 0; bool comp_timer_running = false; bool pending_portevent = false; + bool suspended_usb3_devs = false; bool reinit_xhc = false; if (!hcd->state) @@ -1115,10 +1116,17 @@ /* * Resume roothubs only if there are pending events. * USB 3 devices resend U3 LFPS wake after a 100ms delay if - * the first wake signalling failed, give it that chance. + * the first wake signalling failed, give it that chance if + * there are suspended USB 3 devices. */ + if (xhci->usb3_rhub.bus_state.suspended_ports || + xhci->usb3_rhub.bus_state.bus_suspended) + suspended_usb3_devs = true; + pending_portevent = xhci_pending_portevent(xhci); - if (!pending_portevent && msg.event == PM_EVENT_AUTO_RESUME) { + + if (suspended_usb3_devs && !pending_portevent && + msg.event == PM_EVENT_AUTO_RESUME) { msleep(120); pending_portevent = xhci_pending_portevent(xhci); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/usb/storage/unusual_cypress.h +++ linux-riscv-6.5.0/drivers/usb/storage/unusual_cypress.h @@ -19,7 +19,7 @@ "Cypress ISD-300LP", USB_SC_CYP_ATACB, USB_PR_DEVICE, NULL, 0), -UNUSUAL_DEV( 0x14cd, 0x6116, 0x0160, 0x0160, +UNUSUAL_DEV( 0x14cd, 0x6116, 0x0150, 0x0160, "Super Top", "USB 2.0 SATA BRIDGE", USB_SC_CYP_ATACB, USB_PR_DEVICE, NULL, 0), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/usb/typec/ucsi/ucsi_glink.c +++ linux-riscv-6.5.0/drivers/usb/typec/ucsi/ucsi_glink.c @@ -9,9 +9,13 @@ #include #include #include +#include +#include #include #include "ucsi.h" +#define PMIC_GLINK_MAX_PORTS 2 + #define UCSI_BUF_SIZE 48 #define MSG_TYPE_REQ_RESP 1 @@ -53,6 +57,9 @@ struct pmic_glink_ucsi { struct device *dev; + struct gpio_desc *port_orientation[PMIC_GLINK_MAX_PORTS]; + struct typec_switch *port_switch[PMIC_GLINK_MAX_PORTS]; + struct pmic_glink_client *client; struct ucsi *ucsi; @@ -221,8 +228,20 @@ } con_num = UCSI_CCI_CONNECTOR(cci); - if (con_num) + if (con_num) { + if (con_num < PMIC_GLINK_MAX_PORTS && + ucsi->port_orientation[con_num - 1]) { + int orientation = gpiod_get_value(ucsi->port_orientation[con_num - 1]); + + if (orientation >= 0) { + typec_switch_set(ucsi->port_switch[con_num - 1], + orientation ? TYPEC_ORIENTATION_REVERSE + : TYPEC_ORIENTATION_NORMAL); + } + } + ucsi_connector_change(ucsi->ucsi, con_num); + } if (ucsi->sync_pending && cci & UCSI_CCI_BUSY) { ucsi->sync_val = -EBUSY; @@ -283,6 +302,7 @@ { struct pmic_glink_ucsi *ucsi; struct device *dev = &adev->dev; + struct fwnode_handle *fwnode; int ret; ucsi = devm_kzalloc(dev, sizeof(*ucsi), GFP_KERNEL); @@ -310,6 +330,38 @@ ucsi_set_drvdata(ucsi->ucsi, ucsi); + device_for_each_child_node(dev, fwnode) { + struct gpio_desc *desc; + u32 port; + + ret = fwnode_property_read_u32(fwnode, "reg", &port); + if (ret < 0) { + dev_err(dev, "missing reg property of %pOFn\n", fwnode); + return ret; + } + + if (port >= PMIC_GLINK_MAX_PORTS) { + dev_warn(dev, "invalid connector number, ignoring\n"); + continue; + } + + desc = devm_gpiod_get_index_optional(&adev->dev, "orientation", port, GPIOD_IN); + + /* If GPIO isn't found, continue */ + if (!desc) + continue; + + if (IS_ERR(desc)) + return dev_err_probe(dev, PTR_ERR(desc), + "unable to acquire orientation gpio\n"); + ucsi->port_orientation[port] = desc; + + ucsi->port_switch[port] = fwnode_typec_switch_get(fwnode); + if (IS_ERR(ucsi->port_switch[port])) + return dev_err_probe(dev, PTR_ERR(ucsi->port_switch[port]), + "failed to acquire orientation-switch\n"); + } + ucsi->client = devm_pmic_glink_register_client(dev, PMIC_GLINK_OWNER_USBC, pmic_glink_ucsi_callback, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/usb/usbip/stub_dev.c +++ linux-riscv-6.5.0/drivers/usb/usbip/stub_dev.c @@ -464,8 +464,13 @@ /* release port */ rc = usb_hub_release_port(udev->parent, udev->portnum, (struct usb_dev_state *) udev); - if (rc) { - dev_dbg(&udev->dev, "unable to release port\n"); + /* + * NOTE: If a HUB disconnect triggered disconnect of the down stream + * device usb_hub_release_port will return -ENODEV so we can safely ignore + * that error here. + */ + if (rc && (rc != -ENODEV)) { + dev_dbg(&udev->dev, "unable to release port (%i)\n", rc); return; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/vdpa/mlx5/net/debug.c +++ linux-riscv-6.5.0/drivers/vdpa/mlx5/net/debug.c @@ -146,7 +146,8 @@ ndev->rx_dent = debugfs_create_dir("rx", ndev->debugfs); } -void mlx5_vdpa_remove_debugfs(struct dentry *dbg) +void mlx5_vdpa_remove_debugfs(struct mlx5_vdpa_net *ndev) { - debugfs_remove_recursive(dbg); + debugfs_remove_recursive(ndev->debugfs); + ndev->debugfs = NULL; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/vdpa/mlx5/net/mlx5_vnet.c +++ linux-riscv-6.5.0/drivers/vdpa/mlx5/net/mlx5_vnet.c @@ -625,30 +625,70 @@ mlx5_db_free(ndev->mvdev.mdev, &vcq->db); } +static int read_umem_params(struct mlx5_vdpa_net *ndev) +{ + u32 in[MLX5_ST_SZ_DW(query_hca_cap_in)] = {}; + u16 opmod = (MLX5_CAP_VDPA_EMULATION << 1) | (HCA_CAP_OPMOD_GET_CUR & 0x01); + struct mlx5_core_dev *mdev = ndev->mvdev.mdev; + int out_size; + void *caps; + void *out; + int err; + + out_size = MLX5_ST_SZ_BYTES(query_hca_cap_out); + out = kzalloc(out_size, GFP_KERNEL); + if (!out) + return -ENOMEM; + + MLX5_SET(query_hca_cap_in, in, opcode, MLX5_CMD_OP_QUERY_HCA_CAP); + MLX5_SET(query_hca_cap_in, in, op_mod, opmod); + err = mlx5_cmd_exec_inout(mdev, query_hca_cap, in, out); + if (err) { + mlx5_vdpa_warn(&ndev->mvdev, + "Failed reading vdpa umem capabilities with err %d\n", err); + goto out; + } + + caps = MLX5_ADDR_OF(query_hca_cap_out, out, capability); + + ndev->umem_1_buffer_param_a = MLX5_GET(virtio_emulation_cap, caps, umem_1_buffer_param_a); + ndev->umem_1_buffer_param_b = MLX5_GET(virtio_emulation_cap, caps, umem_1_buffer_param_b); + + ndev->umem_2_buffer_param_a = MLX5_GET(virtio_emulation_cap, caps, umem_2_buffer_param_a); + ndev->umem_2_buffer_param_b = MLX5_GET(virtio_emulation_cap, caps, umem_2_buffer_param_b); + + ndev->umem_3_buffer_param_a = MLX5_GET(virtio_emulation_cap, caps, umem_3_buffer_param_a); + ndev->umem_3_buffer_param_b = MLX5_GET(virtio_emulation_cap, caps, umem_3_buffer_param_b); + +out: + kfree(out); + return 0; +} + static void set_umem_size(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq, int num, struct mlx5_vdpa_umem **umemp) { - struct mlx5_core_dev *mdev = ndev->mvdev.mdev; - int p_a; - int p_b; + u32 p_a; + u32 p_b; switch (num) { case 1: - p_a = MLX5_CAP_DEV_VDPA_EMULATION(mdev, umem_1_buffer_param_a); - p_b = MLX5_CAP_DEV_VDPA_EMULATION(mdev, umem_1_buffer_param_b); + p_a = ndev->umem_1_buffer_param_a; + p_b = ndev->umem_1_buffer_param_b; *umemp = &mvq->umem1; break; case 2: - p_a = MLX5_CAP_DEV_VDPA_EMULATION(mdev, umem_2_buffer_param_a); - p_b = MLX5_CAP_DEV_VDPA_EMULATION(mdev, umem_2_buffer_param_b); + p_a = ndev->umem_2_buffer_param_a; + p_b = ndev->umem_2_buffer_param_b; *umemp = &mvq->umem2; break; case 3: - p_a = MLX5_CAP_DEV_VDPA_EMULATION(mdev, umem_3_buffer_param_a); - p_b = MLX5_CAP_DEV_VDPA_EMULATION(mdev, umem_3_buffer_param_b); + p_a = ndev->umem_3_buffer_param_a; + p_b = ndev->umem_3_buffer_param_b; *umemp = &mvq->umem3; break; } + (*umemp)->size = p_a * mvq->num_ent + p_b; } @@ -2679,6 +2719,11 @@ goto out; } mlx5_vdpa_add_debugfs(ndev); + + err = read_umem_params(ndev); + if (err) + goto err_setup; + err = setup_virtqueues(mvdev); if (err) { mlx5_vdpa_warn(mvdev, "setup_virtqueues\n"); @@ -2713,7 +2758,7 @@ err_rqt: teardown_virtqueues(ndev); err_setup: - mlx5_vdpa_remove_debugfs(ndev->debugfs); + mlx5_vdpa_remove_debugfs(ndev); out: return err; } @@ -2727,8 +2772,7 @@ if (!ndev->setup) return; - mlx5_vdpa_remove_debugfs(ndev->debugfs); - ndev->debugfs = NULL; + mlx5_vdpa_remove_debugfs(ndev); teardown_steering(ndev); destroy_tir(ndev); destroy_rqt(ndev); @@ -2751,13 +2795,18 @@ struct mlx5_control_vq *cvq = &mvdev->cvq; int err = 0; - if (mvdev->actual_features & BIT_ULL(VIRTIO_NET_F_CTRL_VQ)) + if (mvdev->actual_features & BIT_ULL(VIRTIO_NET_F_CTRL_VQ)) { + u16 idx = cvq->vring.last_avail_idx; + err = vringh_init_iotlb(&cvq->vring, mvdev->actual_features, MLX5_CVQ_MAX_ENT, false, (struct vring_desc *)(uintptr_t)cvq->desc_addr, (struct vring_avail *)(uintptr_t)cvq->driver_addr, (struct vring_used *)(uintptr_t)cvq->device_addr); + if (!err) + cvq->vring.last_avail_idx = cvq->vring.last_used_idx = idx; + } return err; } @@ -3489,8 +3538,6 @@ struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev); struct workqueue_struct *wq; - mlx5_vdpa_remove_debugfs(ndev->debugfs); - ndev->debugfs = NULL; unregister_link_notifier(ndev); _vdpa_unregister_device(dev); wq = mvdev->wq; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/vdpa/mlx5/net/mlx5_vnet.h +++ linux-riscv-6.5.0/drivers/vdpa/mlx5/net/mlx5_vnet.h @@ -65,6 +65,15 @@ struct hlist_head macvlan_hash[MLX5V_MACVLAN_SIZE]; struct mlx5_vdpa_irq_pool irqp; struct dentry *debugfs; + + u32 umem_1_buffer_param_a; + u32 umem_1_buffer_param_b; + + u32 umem_2_buffer_param_a; + u32 umem_2_buffer_param_b; + + u32 umem_3_buffer_param_a; + u32 umem_3_buffer_param_b; }; struct mlx5_vdpa_counter { @@ -88,7 +97,7 @@ }; void mlx5_vdpa_add_debugfs(struct mlx5_vdpa_net *ndev); -void mlx5_vdpa_remove_debugfs(struct dentry *dbg); +void mlx5_vdpa_remove_debugfs(struct mlx5_vdpa_net *ndev); void mlx5_vdpa_add_rx_flow_table(struct mlx5_vdpa_net *ndev); void mlx5_vdpa_remove_rx_flow_table(struct mlx5_vdpa_net *ndev); void mlx5_vdpa_add_tirn(struct mlx5_vdpa_net *ndev); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c +++ linux-riscv-6.5.0/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c @@ -437,7 +437,7 @@ if (blk->shared_backend) { blk->buffer = shared_buffer; } else { - blk->buffer = kvmalloc(VDPASIM_BLK_CAPACITY << SECTOR_SHIFT, + blk->buffer = kvzalloc(VDPASIM_BLK_CAPACITY << SECTOR_SHIFT, GFP_KERNEL); if (!blk->buffer) { ret = -ENOMEM; @@ -495,16 +495,17 @@ goto parent_err; if (shared_backend) { - shared_buffer = kvmalloc(VDPASIM_BLK_CAPACITY << SECTOR_SHIFT, + shared_buffer = kvzalloc(VDPASIM_BLK_CAPACITY << SECTOR_SHIFT, GFP_KERNEL); if (!shared_buffer) { ret = -ENOMEM; - goto parent_err; + goto mgmt_dev_err; } } return 0; - +mgmt_dev_err: + vdpa_mgmtdev_unregister(&mgmt_dev); parent_err: device_unregister(&vdpasim_blk_mgmtdev); return ret; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/vhost/vdpa.c +++ linux-riscv-6.5.0/drivers/vhost/vdpa.c @@ -1498,7 +1498,6 @@ err: put_device(&v->dev); - ida_simple_remove(&vhost_vdpa_ida, v->minor); return r; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/vhost/vhost.c +++ linux-riscv-6.5.0/drivers/vhost/vhost.c @@ -1458,9 +1458,7 @@ goto done; } - if ((msg.type == VHOST_IOTLB_UPDATE || - msg.type == VHOST_IOTLB_INVALIDATE) && - msg.size == 0) { + if (msg.type == VHOST_IOTLB_UPDATE && msg.size == 0) { ret = -EINVAL; goto done; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/video/backlight/pwm_bl.c +++ linux-riscv-6.5.0/drivers/video/backlight/pwm_bl.c @@ -626,9 +626,14 @@ { struct backlight_device *bl = platform_get_drvdata(pdev); struct pwm_bl_data *pb = bl_get_data(bl); + struct pwm_state state; backlight_device_unregister(bl); pwm_backlight_power_off(pb); + pwm_get_state(pb->pwm, &state); + state.duty_cycle = 0; + state.enabled = false; + pwm_apply_state(pb->pwm, &state); if (pb->exit) pb->exit(&pdev->dev); @@ -638,8 +643,13 @@ { struct backlight_device *bl = platform_get_drvdata(pdev); struct pwm_bl_data *pb = bl_get_data(bl); + struct pwm_state state; pwm_backlight_power_off(pb); + pwm_get_state(pb->pwm, &state); + state.duty_cycle = 0; + state.enabled = false; + pwm_apply_state(pb->pwm, &state); } #ifdef CONFIG_PM_SLEEP @@ -647,12 +657,24 @@ { struct backlight_device *bl = dev_get_drvdata(dev); struct pwm_bl_data *pb = bl_get_data(bl); + struct pwm_state state; if (pb->notify) pb->notify(pb->dev, 0); pwm_backlight_power_off(pb); + /* + * Note that disabling the PWM doesn't guarantee that the output stays + * at its inactive state. However without the PWM disabled, the PWM + * driver refuses to suspend. So disable here even though this might + * enable the backlight on poorly designed boards. + */ + pwm_get_state(pb->pwm, &state); + state.duty_cycle = 0; + state.enabled = false; + pwm_apply_state(pb->pwm, &state); + if (pb->notify_after) pb->notify_after(pb->dev, 0); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/video/fbdev/aty/atyfb_base.c +++ linux-riscv-6.5.0/drivers/video/fbdev/aty/atyfb_base.c @@ -3440,11 +3440,15 @@ } info->fix.mmio_start = raddr; +#if defined(__i386__) || defined(__ia64__) /* * By using strong UC we force the MTRR to never have an * effect on the MMIO region on both non-PAT and PAT systems. */ par->ati_regbase = ioremap_uc(info->fix.mmio_start, 0x1000); +#else + par->ati_regbase = ioremap(info->fix.mmio_start, 0x1000); +#endif if (par->ati_regbase == NULL) return -ENOMEM; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/video/fbdev/fsl-diu-fb.c +++ linux-riscv-6.5.0/drivers/video/fbdev/fsl-diu-fb.c @@ -490,7 +490,7 @@ * Workaround for failed writing desc register of planes. * Needed with MPC5121 DIU rev 2.0 silicon. */ -void wr_reg_wa(u32 *reg, u32 val) +static void wr_reg_wa(u32 *reg, u32 val) { do { out_be32(reg, val); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/video/fbdev/imsttfb.c +++ linux-riscv-6.5.0/drivers/video/fbdev/imsttfb.c @@ -1419,7 +1419,6 @@ if ((info->var.xres * info->var.yres) * (info->var.bits_per_pixel >> 3) > info->fix.smem_len || !(compute_imstt_regvals(par, info->var.xres, info->var.yres))) { printk("imsttfb: %ux%ux%u not supported\n", info->var.xres, info->var.yres, info->var.bits_per_pixel); - framebuffer_release(info); return -ENODEV; } @@ -1452,14 +1451,11 @@ FBINFO_HWACCEL_FILLRECT | FBINFO_HWACCEL_YPAN; - if (fb_alloc_cmap(&info->cmap, 0, 0)) { - framebuffer_release(info); + if (fb_alloc_cmap(&info->cmap, 0, 0)) return -ENODEV; - } if (register_framebuffer(info) < 0) { fb_dealloc_cmap(&info->cmap); - framebuffer_release(info); return -ENODEV; } @@ -1499,8 +1495,8 @@ if (!request_mem_region(addr, size, "imsttfb")) { printk(KERN_ERR "imsttfb: Can't reserve memory region\n"); - framebuffer_release(info); - return -ENODEV; + ret = -ENODEV; + goto release_info; } switch (pdev->device) { @@ -1517,36 +1513,39 @@ printk(KERN_INFO "imsttfb: Device 0x%x unknown, " "contact maintainer.\n", pdev->device); ret = -ENODEV; - goto error; + goto release_mem_region; } info->fix.smem_start = addr; info->screen_base = (__u8 *)ioremap(addr, par->ramdac == IBM ? 0x400000 : 0x800000); if (!info->screen_base) - goto error; + goto release_mem_region; info->fix.mmio_start = addr + 0x800000; par->dc_regs = ioremap(addr + 0x800000, 0x1000); if (!par->dc_regs) - goto error; + goto unmap_screen_base; par->cmap_regs_phys = addr + 0x840000; par->cmap_regs = (__u8 *)ioremap(addr + 0x840000, 0x1000); if (!par->cmap_regs) - goto error; + goto unmap_dc_regs; info->pseudo_palette = par->palette; ret = init_imstt(info); if (ret) - goto error; + goto unmap_cmap_regs; pci_set_drvdata(pdev, info); - return ret; + return 0; -error: - if (par->dc_regs) - iounmap(par->dc_regs); - if (info->screen_base) - iounmap(info->screen_base); +unmap_cmap_regs: + iounmap(par->cmap_regs); +unmap_dc_regs: + iounmap(par->dc_regs); +unmap_screen_base: + iounmap(info->screen_base); +release_mem_region: release_mem_region(addr, size); +release_info: framebuffer_release(info); return ret; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/video/fbdev/omap/omapfb_main.c +++ linux-riscv-6.5.0/drivers/video/fbdev/omap/omapfb_main.c @@ -1648,13 +1648,13 @@ } fbdev->int_irq = platform_get_irq(pdev, 0); if (fbdev->int_irq < 0) { - r = ENXIO; + r = -ENXIO; goto cleanup; } fbdev->ext_irq = platform_get_irq(pdev, 1); if (fbdev->ext_irq < 0) { - r = ENXIO; + r = -ENXIO; goto cleanup; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/video/fbdev/uvesafb.c +++ linux-riscv-6.5.0/drivers/video/fbdev/uvesafb.c @@ -1931,10 +1931,10 @@ } } - cn_del_callback(&uvesafb_cn_id); driver_remove_file(&uvesafb_driver.driver, &driver_attr_v86d); platform_device_unregister(uvesafb_device); platform_driver_unregister(&uvesafb_driver); + cn_del_callback(&uvesafb_cn_id); } module_exit(uvesafb_exit); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/virt/coco/sev-guest/sev-guest.c +++ linux-riscv-6.5.0/drivers/virt/coco/sev-guest/sev-guest.c @@ -57,6 +57,11 @@ struct snp_secrets_page_layout *layout; struct snp_req_data input; + union { + struct snp_report_req report; + struct snp_derived_key_req derived_key; + struct snp_ext_report_req ext_report; + } req; u32 *os_area_msg_seqno; u8 *vmpck; }; @@ -473,8 +478,8 @@ static int get_report(struct snp_guest_dev *snp_dev, struct snp_guest_request_ioctl *arg) { struct snp_guest_crypto *crypto = snp_dev->crypto; + struct snp_report_req *req = &snp_dev->req.report; struct snp_report_resp *resp; - struct snp_report_req req; int rc, resp_len; lockdep_assert_held(&snp_cmd_mutex); @@ -482,7 +487,7 @@ if (!arg->req_data || !arg->resp_data) return -EINVAL; - if (copy_from_user(&req, (void __user *)arg->req_data, sizeof(req))) + if (copy_from_user(req, (void __user *)arg->req_data, sizeof(*req))) return -EFAULT; /* @@ -496,7 +501,7 @@ return -ENOMEM; rc = handle_guest_request(snp_dev, SVM_VMGEXIT_GUEST_REQUEST, arg, - SNP_MSG_REPORT_REQ, &req, sizeof(req), resp->data, + SNP_MSG_REPORT_REQ, req, sizeof(*req), resp->data, resp_len); if (rc) goto e_free; @@ -511,9 +516,9 @@ static int get_derived_key(struct snp_guest_dev *snp_dev, struct snp_guest_request_ioctl *arg) { + struct snp_derived_key_req *req = &snp_dev->req.derived_key; struct snp_guest_crypto *crypto = snp_dev->crypto; struct snp_derived_key_resp resp = {0}; - struct snp_derived_key_req req; int rc, resp_len; /* Response data is 64 bytes and max authsize for GCM is 16 bytes. */ u8 buf[64 + 16]; @@ -532,11 +537,11 @@ if (sizeof(buf) < resp_len) return -ENOMEM; - if (copy_from_user(&req, (void __user *)arg->req_data, sizeof(req))) + if (copy_from_user(req, (void __user *)arg->req_data, sizeof(*req))) return -EFAULT; rc = handle_guest_request(snp_dev, SVM_VMGEXIT_GUEST_REQUEST, arg, - SNP_MSG_KEY_REQ, &req, sizeof(req), buf, resp_len); + SNP_MSG_KEY_REQ, req, sizeof(*req), buf, resp_len); if (rc) return rc; @@ -552,8 +557,8 @@ static int get_ext_report(struct snp_guest_dev *snp_dev, struct snp_guest_request_ioctl *arg) { + struct snp_ext_report_req *req = &snp_dev->req.ext_report; struct snp_guest_crypto *crypto = snp_dev->crypto; - struct snp_ext_report_req req; struct snp_report_resp *resp; int ret, npages = 0, resp_len; @@ -562,18 +567,18 @@ if (!arg->req_data || !arg->resp_data) return -EINVAL; - if (copy_from_user(&req, (void __user *)arg->req_data, sizeof(req))) + if (copy_from_user(req, (void __user *)arg->req_data, sizeof(*req))) return -EFAULT; /* userspace does not want certificate data */ - if (!req.certs_len || !req.certs_address) + if (!req->certs_len || !req->certs_address) goto cmd; - if (req.certs_len > SEV_FW_BLOB_MAX_SIZE || - !IS_ALIGNED(req.certs_len, PAGE_SIZE)) + if (req->certs_len > SEV_FW_BLOB_MAX_SIZE || + !IS_ALIGNED(req->certs_len, PAGE_SIZE)) return -EINVAL; - if (!access_ok((const void __user *)req.certs_address, req.certs_len)) + if (!access_ok((const void __user *)req->certs_address, req->certs_len)) return -EFAULT; /* @@ -582,8 +587,8 @@ * the host. If host does not supply any certs in it, then copy * zeros to indicate that certificate data was not provided. */ - memset(snp_dev->certs_data, 0, req.certs_len); - npages = req.certs_len >> PAGE_SHIFT; + memset(snp_dev->certs_data, 0, req->certs_len); + npages = req->certs_len >> PAGE_SHIFT; cmd: /* * The intermediate response buffer is used while decrypting the @@ -597,14 +602,14 @@ snp_dev->input.data_npages = npages; ret = handle_guest_request(snp_dev, SVM_VMGEXIT_EXT_GUEST_REQUEST, arg, - SNP_MSG_REPORT_REQ, &req.data, - sizeof(req.data), resp->data, resp_len); + SNP_MSG_REPORT_REQ, &req->data, + sizeof(req->data), resp->data, resp_len); /* If certs length is invalid then copy the returned length */ if (arg->vmm_error == SNP_GUEST_VMM_ERR_INVALID_LEN) { - req.certs_len = snp_dev->input.data_npages << PAGE_SHIFT; + req->certs_len = snp_dev->input.data_npages << PAGE_SHIFT; - if (copy_to_user((void __user *)arg->req_data, &req, sizeof(req))) + if (copy_to_user((void __user *)arg->req_data, req, sizeof(*req))) ret = -EFAULT; } @@ -612,8 +617,8 @@ goto e_free; if (npages && - copy_to_user((void __user *)req.certs_address, snp_dev->certs_data, - req.certs_len)) { + copy_to_user((void __user *)req->certs_address, snp_dev->certs_data, + req->certs_len)) { ret = -EFAULT; goto e_free; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/virtio/virtio_balloon.c +++ linux-riscv-6.5.0/drivers/virtio/virtio_balloon.c @@ -395,7 +395,11 @@ virtio_cread_le(vb->vdev, struct virtio_balloon_config, num_pages, &num_pages); - target = num_pages; + /* + * Aligned up to guest page size to avoid inflating and deflating + * balloon endlessly. + */ + target = ALIGN(num_pages, VIRTIO_BALLOON_PAGES_PER_PAGE); return target - vb->num_pages; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/virtio/virtio_mmio.c +++ linux-riscv-6.5.0/drivers/virtio/virtio_mmio.c @@ -631,14 +631,17 @@ spin_lock_init(&vm_dev->lock); vm_dev->base = devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(vm_dev->base)) - return PTR_ERR(vm_dev->base); + if (IS_ERR(vm_dev->base)) { + rc = PTR_ERR(vm_dev->base); + goto free_vm_dev; + } /* Check magic value */ magic = readl(vm_dev->base + VIRTIO_MMIO_MAGIC_VALUE); if (magic != ('v' | 'i' << 8 | 'r' << 16 | 't' << 24)) { dev_warn(&pdev->dev, "Wrong magic value 0x%08lx!\n", magic); - return -ENODEV; + rc = -ENODEV; + goto free_vm_dev; } /* Check device version */ @@ -646,7 +649,8 @@ if (vm_dev->version < 1 || vm_dev->version > 2) { dev_err(&pdev->dev, "Version %ld not supported!\n", vm_dev->version); - return -ENXIO; + rc = -ENXIO; + goto free_vm_dev; } vm_dev->vdev.id.device = readl(vm_dev->base + VIRTIO_MMIO_DEVICE_ID); @@ -655,7 +659,8 @@ * virtio-mmio device with an ID 0 is a (dummy) placeholder * with no function. End probing now with no error reported. */ - return -ENODEV; + rc = -ENODEV; + goto free_vm_dev; } vm_dev->vdev.id.vendor = readl(vm_dev->base + VIRTIO_MMIO_VENDOR_ID); @@ -685,6 +690,10 @@ put_device(&vm_dev->vdev.dev); return rc; + +free_vm_dev: + kfree(vm_dev); + return rc; } static int virtio_mmio_remove(struct platform_device *pdev) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/virtio/virtio_pci_modern_dev.c +++ linux-riscv-6.5.0/drivers/virtio/virtio_pci_modern_dev.c @@ -291,7 +291,7 @@ err = -EINVAL; mdev->common = vp_modern_map_capability(mdev, common, sizeof(struct virtio_pci_common_cfg), 4, - 0, sizeof(struct virtio_pci_common_cfg), + 0, sizeof(struct virtio_pci_modern_common_cfg), NULL, NULL); if (!mdev->common) goto err_map_common; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/watchdog/ixp4xx_wdt.c +++ linux-riscv-6.5.0/drivers/watchdog/ixp4xx_wdt.c @@ -105,6 +105,25 @@ .owner = THIS_MODULE, }; +/* + * The A0 version of the IXP422 had a bug in the watchdog making + * is useless, but we still need to use it to restart the system + * as it is the only way, so in this special case we register a + * "dummy" watchdog that doesn't really work, but will support + * the restart operation. + */ +static int ixp4xx_wdt_dummy(struct watchdog_device *wdd) +{ + return 0; +} + +static const struct watchdog_ops ixp4xx_wdt_restart_only_ops = { + .start = ixp4xx_wdt_dummy, + .stop = ixp4xx_wdt_dummy, + .restart = ixp4xx_wdt_restart, + .owner = THIS_MODULE, +}; + static const struct watchdog_info ixp4xx_wdt_info = { .options = WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE @@ -114,14 +133,17 @@ static int ixp4xx_wdt_probe(struct platform_device *pdev) { + static const struct watchdog_ops *iwdt_ops; struct device *dev = &pdev->dev; struct ixp4xx_wdt *iwdt; struct clk *clk; int ret; if (!(read_cpuid_id() & 0xf) && !cpu_is_ixp46x()) { - dev_err(dev, "Rev. A0 IXP42x CPU detected - watchdog disabled\n"); - return -ENODEV; + dev_info(dev, "Rev. A0 IXP42x CPU detected - only restart supported\n"); + iwdt_ops = &ixp4xx_wdt_restart_only_ops; + } else { + iwdt_ops = &ixp4xx_wdt_ops; } iwdt = devm_kzalloc(dev, sizeof(*iwdt), GFP_KERNEL); @@ -141,7 +163,7 @@ iwdt->rate = IXP4XX_TIMER_FREQ; iwdt->wdd.info = &ixp4xx_wdt_info; - iwdt->wdd.ops = &ixp4xx_wdt_ops; + iwdt->wdd.ops = iwdt_ops; iwdt->wdd.min_timeout = 1; iwdt->wdd.max_timeout = U32_MAX / iwdt->rate; iwdt->wdd.parent = dev; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/watchdog/sbsa_gwdt.c +++ linux-riscv-6.5.0/drivers/watchdog/sbsa_gwdt.c @@ -153,14 +153,14 @@ timeout = clamp_t(unsigned int, timeout, 1, wdd->max_hw_heartbeat_ms / 1000); if (action) - sbsa_gwdt_reg_write(gwdt->clk * timeout, gwdt); + sbsa_gwdt_reg_write((u64)gwdt->clk * timeout, gwdt); else /* * In the single stage mode, The first signal (WS0) is ignored, * the timeout is (WOR * 2), so the WOR should be configured * to half value of timeout. */ - sbsa_gwdt_reg_write(gwdt->clk / 2 * timeout, gwdt); + sbsa_gwdt_reg_write(((u64)gwdt->clk / 2) * timeout, gwdt); return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/xen/platform-pci.c +++ linux-riscv-6.5.0/drivers/xen/platform-pci.c @@ -64,7 +64,7 @@ static irqreturn_t do_hvm_evtchn_intr(int irq, void *dev_id) { - return xen_hvm_evtchn_do_upcall(); + return xen_evtchn_do_upcall(); } static int xen_allocate_irq(struct pci_dev *pdev) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/xen/swiotlb-xen.c +++ linux-riscv-6.5.0/drivers/xen/swiotlb-xen.c @@ -405,4 +405,5 @@ .get_sgtable = dma_common_get_sgtable, .alloc_pages = dma_common_alloc_pages, .free_pages = dma_common_free_pages, + .max_mapping_size = swiotlb_max_mapping_size, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/xen/xen-pciback/conf_space.c +++ linux-riscv-6.5.0/drivers/xen/xen-pciback/conf_space.c @@ -288,12 +288,6 @@ u16 val; int ret = 0; - err = pci_read_config_word(dev, PCI_COMMAND, &val); - if (err) - return err; - if (!(val & PCI_COMMAND_INTX_DISABLE)) - ret |= INTERRUPT_TYPE_INTX; - /* * Do not trust dev->msi(x)_enabled here, as enabling could be done * bypassing the pci_*msi* functions, by the qemu. @@ -316,6 +310,19 @@ if (val & PCI_MSIX_FLAGS_ENABLE) ret |= INTERRUPT_TYPE_MSIX; } + + /* + * PCIe spec says device cannot use INTx if MSI/MSI-X is enabled, + * so check for INTx only when both are disabled. + */ + if (!ret) { + err = pci_read_config_word(dev, PCI_COMMAND, &val); + if (err) + return err; + if (!(val & PCI_COMMAND_INTX_DISABLE)) + ret |= INTERRUPT_TYPE_INTX; + } + return ret ?: INTERRUPT_TYPE_NONE; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/xen/xen-pciback/conf_space_capability.c +++ linux-riscv-6.5.0/drivers/xen/xen-pciback/conf_space_capability.c @@ -236,10 +236,16 @@ return PCIBIOS_SET_FAILED; if (new_value & field_config->enable_bit) { - /* don't allow enabling together with other interrupt types */ + /* + * Don't allow enabling together with other interrupt type, but do + * allow enabling MSI(-X) while INTx is still active to please Linuxes + * MSI(-X) startup sequence. It is safe to do, as according to PCI + * spec, device with enabled MSI(-X) shouldn't use INTx. + */ int int_type = xen_pcibk_get_interrupt_type(dev); if (int_type == INTERRUPT_TYPE_NONE || + int_type == INTERRUPT_TYPE_INTX || int_type == field_config->int_type) goto write; return PCIBIOS_SET_FAILED; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/xen/xen-pciback/conf_space_header.c +++ linux-riscv-6.5.0/drivers/xen/xen-pciback/conf_space_header.c @@ -104,24 +104,9 @@ pci_clear_mwi(dev); } - if (dev_data && dev_data->allow_interrupt_control) { - if ((cmd->val ^ value) & PCI_COMMAND_INTX_DISABLE) { - if (value & PCI_COMMAND_INTX_DISABLE) { - pci_intx(dev, 0); - } else { - /* Do not allow enabling INTx together with MSI or MSI-X. */ - switch (xen_pcibk_get_interrupt_type(dev)) { - case INTERRUPT_TYPE_NONE: - pci_intx(dev, 1); - break; - case INTERRUPT_TYPE_INTX: - break; - default: - return PCIBIOS_SET_FAILED; - } - } - } - } + if (dev_data && dev_data->allow_interrupt_control && + ((cmd->val ^ value) & PCI_COMMAND_INTX_DISABLE)) + pci_intx(dev, !(value & PCI_COMMAND_INTX_DISABLE)); cmd->val = value; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/drivers/xen/xenbus/xenbus_probe.c +++ linux-riscv-6.5.0/drivers/xen/xenbus/xenbus_probe.c @@ -1025,7 +1025,7 @@ if (err < 0) { pr_err("xenstore_late_init couldn't bind irq err=%d\n", err); - return err; + goto out_error; } xs_init_irq = err; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/9p/xattr.c +++ linux-riscv-6.5.0/fs/9p/xattr.c @@ -68,7 +68,7 @@ struct p9_fid *fid; int ret; - p9_debug(P9_DEBUG_VFS, "name = %s value_len = %zu\n", + p9_debug(P9_DEBUG_VFS, "name = '%s' value_len = %zu\n", name, buffer_size); fid = v9fs_fid_lookup(dentry); if (IS_ERR(fid)) @@ -139,7 +139,8 @@ ssize_t v9fs_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size) { - return v9fs_xattr_get(dentry, NULL, buffer, buffer_size); + /* Txattrwalk with an empty string lists xattrs instead */ + return v9fs_xattr_get(dentry, "", buffer, buffer_size); } static int v9fs_xattr_handler_get(const struct xattr_handler *handler, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/afs/dynroot.c +++ linux-riscv-6.5.0/fs/afs/dynroot.c @@ -132,8 +132,8 @@ ret = dns_query(net->net, "afsdb", name, len, "srv=1", NULL, NULL, false); - if (ret == -ENODATA) - ret = -EDESTADDRREQ; + if (ret == -ENODATA || ret == -ENOKEY) + ret = -ENOENT; return ret; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/afs/internal.h +++ linux-riscv-6.5.0/fs/afs/internal.h @@ -553,6 +553,7 @@ }; struct afs_server_list { + struct rcu_head rcu; afs_volid_t vids[AFS_MAXTYPES]; /* Volume IDs */ refcount_t usage; unsigned char nr_servers; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/afs/server_list.c +++ linux-riscv-6.5.0/fs/afs/server_list.c @@ -17,7 +17,7 @@ for (i = 0; i < slist->nr_servers; i++) afs_unuse_server(net, slist->servers[i].server, afs_server_trace_put_slist); - kfree(slist); + kfree_rcu(slist, rcu); } } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/afs/super.c +++ linux-riscv-6.5.0/fs/afs/super.c @@ -407,6 +407,8 @@ return PTR_ERR(volume); ctx->volume = volume; + if (volume->type != AFSVL_RWVOL) + ctx->flock_mode = afs_flock_mode_local; } return 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/afs/vl_rotate.c +++ linux-riscv-6.5.0/fs/afs/vl_rotate.c @@ -58,6 +58,12 @@ } /* Status load is ordered after lookup counter load */ + if (cell->dns_status == DNS_LOOKUP_GOT_NOT_FOUND) { + pr_warn("No record of cell %s\n", cell->name); + vc->error = -ENOENT; + return false; + } + if (cell->dns_source == DNS_RECORD_UNAVAILABLE) { vc->error = -EDESTADDRREQ; return false; @@ -285,6 +291,7 @@ */ static void afs_vl_dump_edestaddrreq(const struct afs_vl_cursor *vc) { + struct afs_cell *cell = vc->cell; static int count; int i; @@ -294,6 +301,9 @@ rcu_read_lock(); pr_notice("EDESTADDR occurred\n"); + pr_notice("CELL: %s err=%d\n", cell->name, cell->error); + pr_notice("DNS: src=%u st=%u lc=%x\n", + cell->dns_source, cell->dns_status, cell->dns_lookup_count); pr_notice("VC: ut=%lx ix=%u ni=%hu fl=%hx err=%hd\n", vc->untried, vc->index, vc->nr_iterations, vc->flags, vc->error); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/backref.c +++ linux-riscv-6.5.0/fs/btrfs/backref.c @@ -3196,12 +3196,14 @@ * We still need to do a tree search to find out the parents. This is for * TREE_BLOCK_REF backref (keyed or inlined). * + * @trans: Transaction handle. * @ref_key: The same as @ref_key in handle_direct_tree_backref() * @tree_key: The first key of this tree block. * @path: A clean (released) path, to avoid allocating path every time * the function get called. */ -static int handle_indirect_tree_backref(struct btrfs_backref_cache *cache, +static int handle_indirect_tree_backref(struct btrfs_trans_handle *trans, + struct btrfs_backref_cache *cache, struct btrfs_path *path, struct btrfs_key *ref_key, struct btrfs_key *tree_key, @@ -3315,7 +3317,7 @@ * If we know the block isn't shared we can avoid * checking its backrefs. */ - if (btrfs_block_can_be_shared(root, eb)) + if (btrfs_block_can_be_shared(trans, root, eb)) upper->checked = 0; else upper->checked = 1; @@ -3363,17 +3365,18 @@ * links aren't yet bi-directional. Needs to finish such links. * Use btrfs_backref_finish_upper_links() to finish such linkage. * + * @trans: Transaction handle. * @path: Released path for indirect tree backref lookup * @iter: Released backref iter for extent tree search * @node_key: The first key of the tree block */ -int btrfs_backref_add_tree_node(struct btrfs_backref_cache *cache, +int btrfs_backref_add_tree_node(struct btrfs_trans_handle *trans, + struct btrfs_backref_cache *cache, struct btrfs_path *path, struct btrfs_backref_iter *iter, struct btrfs_key *node_key, struct btrfs_backref_node *cur) { - struct btrfs_fs_info *fs_info = cache->fs_info; struct btrfs_backref_edge *edge; struct btrfs_backref_node *exist; int ret; @@ -3462,25 +3465,21 @@ ret = handle_direct_tree_backref(cache, &key, cur); if (ret < 0) goto out; - continue; - } else if (unlikely(key.type == BTRFS_EXTENT_REF_V0_KEY)) { - ret = -EINVAL; - btrfs_print_v0_err(fs_info); - btrfs_handle_fs_error(fs_info, ret, NULL); - goto out; - } else if (key.type != BTRFS_TREE_BLOCK_REF_KEY) { - continue; + } else if (key.type == BTRFS_TREE_BLOCK_REF_KEY) { + /* + * key.type == BTRFS_TREE_BLOCK_REF_KEY, inline ref + * offset means the root objectid. We need to search + * the tree to get its parent bytenr. + */ + ret = handle_indirect_tree_backref(trans, cache, path, + &key, node_key, cur); + if (ret < 0) + goto out; } - /* - * key.type == BTRFS_TREE_BLOCK_REF_KEY, inline ref offset - * means the root objectid. We need to search the tree to get - * its parent bytenr. + * Unrecognized tree backref items (if it can pass tree-checker) + * would be ignored. */ - ret = handle_indirect_tree_backref(cache, path, &key, node_key, - cur); - if (ret < 0) - goto out; } ret = 0; cur->checked = 1; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/backref.h +++ linux-riscv-6.5.0/fs/btrfs/backref.h @@ -540,7 +540,8 @@ bytenr); } -int btrfs_backref_add_tree_node(struct btrfs_backref_cache *cache, +int btrfs_backref_add_tree_node(struct btrfs_trans_handle *trans, + struct btrfs_backref_cache *cache, struct btrfs_path *path, struct btrfs_backref_iter *iter, struct btrfs_key *node_key, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/ctree.c +++ linux-riscv-6.5.0/fs/btrfs/ctree.c @@ -359,7 +359,7 @@ return ret; } - btrfs_mark_buffer_dirty(cow); + btrfs_mark_buffer_dirty(trans, cow); *cow_ret = cow; return 0; } @@ -367,7 +367,8 @@ /* * check if the tree block can be shared by multiple trees */ -int btrfs_block_can_be_shared(struct btrfs_root *root, +int btrfs_block_can_be_shared(struct btrfs_trans_handle *trans, + struct btrfs_root *root, struct extent_buffer *buf) { /* @@ -376,11 +377,21 @@ * not allocated by tree relocation, we know the block is not shared. */ if (test_bit(BTRFS_ROOT_SHAREABLE, &root->state) && - buf != root->node && buf != root->commit_root && + buf != root->node && (btrfs_header_generation(buf) <= btrfs_root_last_snapshot(&root->root_item) || - btrfs_header_flag(buf, BTRFS_HEADER_FLAG_RELOC))) - return 1; + btrfs_header_flag(buf, BTRFS_HEADER_FLAG_RELOC))) { + if (buf != root->commit_root) + return 1; + /* + * An extent buffer that used to be the commit root may still be + * shared because the tree height may have increased and it + * became a child of a higher level root. This can happen when + * snapshotting a subvolume created in the current transaction. + */ + if (btrfs_header_generation(buf) == trans->transid) + return 1; + } return 0; } @@ -415,7 +426,7 @@ * are only allowed for blocks use full backrefs. */ - if (btrfs_block_can_be_shared(root, buf)) { + if (btrfs_block_can_be_shared(trans, root, buf)) { ret = btrfs_lookup_extent_info(trans, fs_info, buf->start, btrfs_header_level(buf), 1, &refs, &flags); @@ -616,7 +627,7 @@ cow->start); btrfs_set_node_ptr_generation(parent, parent_slot, trans->transid); - btrfs_mark_buffer_dirty(parent); + btrfs_mark_buffer_dirty(trans, parent); if (last_ref) { ret = btrfs_tree_mod_log_free_eb(buf); if (ret) { @@ -632,7 +643,7 @@ if (unlock_orig) btrfs_tree_unlock(buf); free_extent_buffer_stale(buf); - btrfs_mark_buffer_dirty(cow); + btrfs_mark_buffer_dirty(trans, cow); *cow_ret = cow; return 0; } @@ -682,18 +693,30 @@ u64 search_start; int ret; - if (test_bit(BTRFS_ROOT_DELETING, &root->state)) - btrfs_err(fs_info, - "COW'ing blocks on a fs root that's being dropped"); - - if (trans->transaction != fs_info->running_transaction) - WARN(1, KERN_CRIT "trans %llu running %llu\n", - trans->transid, - fs_info->running_transaction->transid); - - if (trans->transid != fs_info->generation) - WARN(1, KERN_CRIT "trans %llu running %llu\n", - trans->transid, fs_info->generation); + if (unlikely(test_bit(BTRFS_ROOT_DELETING, &root->state))) { + btrfs_abort_transaction(trans, -EUCLEAN); + btrfs_crit(fs_info, + "attempt to COW block %llu on root %llu that is being deleted", + buf->start, btrfs_root_id(root)); + return -EUCLEAN; + } + + /* + * COWing must happen through a running transaction, which always + * matches the current fs generation (it's a transaction with a state + * less than TRANS_STATE_UNBLOCKED). If it doesn't, then turn the fs + * into error state to prevent the commit of any transaction. + */ + if (unlikely(trans->transaction != fs_info->running_transaction || + trans->transid != fs_info->generation)) { + btrfs_abort_transaction(trans, -EUCLEAN); + btrfs_crit(fs_info, +"unexpected transaction when attempting to COW block %llu on root %llu, transaction %llu running transaction %llu fs generation %llu", + buf->start, btrfs_root_id(root), trans->transid, + fs_info->running_transaction->transid, + fs_info->generation); + return -EUCLEAN; + } if (!should_cow_block(trans, root, buf)) { *cow_ret = buf; @@ -805,8 +828,22 @@ int progress_passed = 0; struct btrfs_disk_key disk_key; - WARN_ON(trans->transaction != fs_info->running_transaction); - WARN_ON(trans->transid != fs_info->generation); + /* + * COWing must happen through a running transaction, which always + * matches the current fs generation (it's a transaction with a state + * less than TRANS_STATE_UNBLOCKED). If it doesn't, then turn the fs + * into error state to prevent the commit of any transaction. + */ + if (unlikely(trans->transaction != fs_info->running_transaction || + trans->transid != fs_info->generation)) { + btrfs_abort_transaction(trans, -EUCLEAN); + btrfs_crit(fs_info, +"unexpected transaction when attempting to reallocate parent %llu for root %llu, transaction %llu running transaction %llu fs generation %llu", + parent->start, btrfs_root_id(root), trans->transid, + fs_info->running_transaction->transid, + fs_info->generation); + return -EUCLEAN; + } parent_nritems = btrfs_header_nritems(parent); blocksize = fs_info->nodesize; @@ -1160,7 +1197,7 @@ goto out; } btrfs_set_node_key(parent, &right_key, pslot + 1); - btrfs_mark_buffer_dirty(parent); + btrfs_mark_buffer_dirty(trans, parent); } } if (btrfs_header_nritems(mid) == 1) { @@ -1218,7 +1255,7 @@ goto out; } btrfs_set_node_key(parent, &mid_key, pslot); - btrfs_mark_buffer_dirty(parent); + btrfs_mark_buffer_dirty(trans, parent); } /* update the path */ @@ -1325,7 +1362,7 @@ return ret; } btrfs_set_node_key(parent, &disk_key, pslot); - btrfs_mark_buffer_dirty(parent); + btrfs_mark_buffer_dirty(trans, parent); if (btrfs_header_nritems(left) > orig_slot) { path->nodes[level] = left; path->slots[level + 1] -= 1; @@ -1385,7 +1422,7 @@ return ret; } btrfs_set_node_key(parent, &disk_key, pslot + 1); - btrfs_mark_buffer_dirty(parent); + btrfs_mark_buffer_dirty(trans, parent); if (btrfs_header_nritems(mid) <= orig_slot) { path->nodes[level] = right; @@ -2641,7 +2678,8 @@ * higher levels * */ -static void fixup_low_keys(struct btrfs_path *path, +static void fixup_low_keys(struct btrfs_trans_handle *trans, + struct btrfs_path *path, struct btrfs_disk_key *key, int level) { int i; @@ -2658,7 +2696,7 @@ BTRFS_MOD_LOG_KEY_REPLACE); BUG_ON(ret < 0); btrfs_set_node_key(t, key, tslot); - btrfs_mark_buffer_dirty(path->nodes[i]); + btrfs_mark_buffer_dirty(trans, path->nodes[i]); if (tslot != 0) break; } @@ -2670,10 +2708,11 @@ * This function isn't completely safe. It's the caller's responsibility * that the new key won't break the order */ -void btrfs_set_item_key_safe(struct btrfs_fs_info *fs_info, +void btrfs_set_item_key_safe(struct btrfs_trans_handle *trans, struct btrfs_path *path, const struct btrfs_key *new_key) { + struct btrfs_fs_info *fs_info = trans->fs_info; struct btrfs_disk_key disk_key; struct extent_buffer *eb; int slot; @@ -2711,9 +2750,9 @@ btrfs_cpu_key_to_disk(&disk_key, new_key); btrfs_set_item_key(eb, &disk_key, slot); - btrfs_mark_buffer_dirty(eb); + btrfs_mark_buffer_dirty(trans, eb); if (slot == 0) - fixup_low_keys(path, &disk_key, 1); + fixup_low_keys(trans, path, &disk_key, 1); } /* @@ -2844,8 +2883,8 @@ } btrfs_set_header_nritems(src, src_nritems - push_items); btrfs_set_header_nritems(dst, dst_nritems + push_items); - btrfs_mark_buffer_dirty(src); - btrfs_mark_buffer_dirty(dst); + btrfs_mark_buffer_dirty(trans, src); + btrfs_mark_buffer_dirty(trans, dst); return ret; } @@ -2920,8 +2959,8 @@ btrfs_set_header_nritems(src, src_nritems - push_items); btrfs_set_header_nritems(dst, dst_nritems + push_items); - btrfs_mark_buffer_dirty(src); - btrfs_mark_buffer_dirty(dst); + btrfs_mark_buffer_dirty(trans, src); + btrfs_mark_buffer_dirty(trans, dst); return ret; } @@ -2970,7 +3009,7 @@ btrfs_set_node_ptr_generation(c, 0, lower_gen); - btrfs_mark_buffer_dirty(c); + btrfs_mark_buffer_dirty(trans, c); old = root->node; ret = btrfs_tree_mod_log_insert_root(root->node, c, false); @@ -3042,7 +3081,7 @@ WARN_ON(trans->transid == 0); btrfs_set_node_ptr_generation(lower, slot, trans->transid); btrfs_set_header_nritems(lower, nritems + 1); - btrfs_mark_buffer_dirty(lower); + btrfs_mark_buffer_dirty(trans, lower); return 0; } @@ -3121,8 +3160,8 @@ btrfs_set_header_nritems(split, c_nritems - mid); btrfs_set_header_nritems(c, mid); - btrfs_mark_buffer_dirty(c); - btrfs_mark_buffer_dirty(split); + btrfs_mark_buffer_dirty(trans, c); + btrfs_mark_buffer_dirty(trans, split); ret = insert_ptr(trans, path, &disk_key, split->start, path->slots[level + 1] + 1, level + 1); @@ -3288,15 +3327,15 @@ btrfs_set_header_nritems(left, left_nritems); if (left_nritems) - btrfs_mark_buffer_dirty(left); + btrfs_mark_buffer_dirty(trans, left); else btrfs_clear_buffer_dirty(trans, left); - btrfs_mark_buffer_dirty(right); + btrfs_mark_buffer_dirty(trans, right); btrfs_item_key(right, &disk_key, 0); btrfs_set_node_key(upper, &disk_key, slot + 1); - btrfs_mark_buffer_dirty(upper); + btrfs_mark_buffer_dirty(trans, upper); /* then fixup the leaf pointer in the path */ if (path->slots[0] >= left_nritems) { @@ -3508,14 +3547,14 @@ btrfs_set_token_item_offset(&token, i, push_space); } - btrfs_mark_buffer_dirty(left); + btrfs_mark_buffer_dirty(trans, left); if (right_nritems) - btrfs_mark_buffer_dirty(right); + btrfs_mark_buffer_dirty(trans, right); else btrfs_clear_buffer_dirty(trans, right); btrfs_item_key(right, &disk_key, 0); - fixup_low_keys(path, &disk_key, 1); + fixup_low_keys(trans, path, &disk_key, 1); /* then fixup the leaf pointer in the path */ if (path->slots[0] < push_items) { @@ -3646,8 +3685,8 @@ if (ret < 0) return ret; - btrfs_mark_buffer_dirty(right); - btrfs_mark_buffer_dirty(l); + btrfs_mark_buffer_dirty(trans, right); + btrfs_mark_buffer_dirty(trans, l); BUG_ON(path->slots[0] != slot); if (mid <= slot) { @@ -3888,7 +3927,7 @@ path->nodes[0] = right; path->slots[0] = 0; if (path->slots[1] == 0) - fixup_low_keys(path, &disk_key, 1); + fixup_low_keys(trans, path, &disk_key, 1); } /* * We create a new leaf 'right' for the required ins_len and @@ -3987,7 +4026,8 @@ return ret; } -static noinline int split_item(struct btrfs_path *path, +static noinline int split_item(struct btrfs_trans_handle *trans, + struct btrfs_path *path, const struct btrfs_key *new_key, unsigned long split_offset) { @@ -4046,7 +4086,7 @@ write_extent_buffer(leaf, buf + split_offset, btrfs_item_ptr_offset(leaf, slot), item_size - split_offset); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); BUG_ON(btrfs_leaf_free_space(leaf) < 0); kfree(buf); @@ -4080,7 +4120,7 @@ if (ret) return ret; - ret = split_item(path, new_key, split_offset); + ret = split_item(trans, path, new_key, split_offset); return ret; } @@ -4090,7 +4130,8 @@ * off the end of the item or if we shift the item to chop bytes off * the front. */ -void btrfs_truncate_item(struct btrfs_path *path, u32 new_size, int from_end) +void btrfs_truncate_item(struct btrfs_trans_handle *trans, + struct btrfs_path *path, u32 new_size, int from_end) { int slot; struct extent_buffer *leaf; @@ -4166,11 +4207,11 @@ btrfs_set_disk_key_offset(&disk_key, offset + size_diff); btrfs_set_item_key(leaf, &disk_key, slot); if (slot == 0) - fixup_low_keys(path, &disk_key, 1); + fixup_low_keys(trans, path, &disk_key, 1); } btrfs_set_item_size(leaf, slot, new_size); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); if (btrfs_leaf_free_space(leaf) < 0) { btrfs_print_leaf(leaf); @@ -4181,7 +4222,8 @@ /* * make the item pointed to by the path bigger, data_size is the added size. */ -void btrfs_extend_item(struct btrfs_path *path, u32 data_size) +void btrfs_extend_item(struct btrfs_trans_handle *trans, + struct btrfs_path *path, u32 data_size) { int slot; struct extent_buffer *leaf; @@ -4231,7 +4273,7 @@ data_end = old_data; old_size = btrfs_item_size(leaf, slot); btrfs_set_item_size(leaf, slot, old_size + data_size); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); if (btrfs_leaf_free_space(leaf) < 0) { btrfs_print_leaf(leaf); @@ -4242,6 +4284,7 @@ /* * Make space in the node before inserting one or more items. * + * @trans: transaction handle * @root: root we are inserting items to * @path: points to the leaf/slot where we are going to insert new items * @batch: information about the batch of items to insert @@ -4249,7 +4292,8 @@ * Main purpose is to save stack depth by doing the bulk of the work in a * function that doesn't call btrfs_search_slot */ -static void setup_items_for_insert(struct btrfs_root *root, struct btrfs_path *path, +static void setup_items_for_insert(struct btrfs_trans_handle *trans, + struct btrfs_root *root, struct btrfs_path *path, const struct btrfs_item_batch *batch) { struct btrfs_fs_info *fs_info = root->fs_info; @@ -4269,7 +4313,7 @@ */ if (path->slots[0] == 0) { btrfs_cpu_key_to_disk(&disk_key, &batch->keys[0]); - fixup_low_keys(path, &disk_key, 1); + fixup_low_keys(trans, path, &disk_key, 1); } btrfs_unlock_up_safe(path, 1); @@ -4328,7 +4372,7 @@ } btrfs_set_header_nritems(leaf, nritems + batch->nr); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); if (btrfs_leaf_free_space(leaf) < 0) { btrfs_print_leaf(leaf); @@ -4339,12 +4383,14 @@ /* * Insert a new item into a leaf. * + * @trans: Transaction handle. * @root: The root of the btree. * @path: A path pointing to the target leaf and slot. * @key: The key of the new item. * @data_size: The size of the data associated with the new key. */ -void btrfs_setup_item_for_insert(struct btrfs_root *root, +void btrfs_setup_item_for_insert(struct btrfs_trans_handle *trans, + struct btrfs_root *root, struct btrfs_path *path, const struct btrfs_key *key, u32 data_size) @@ -4356,7 +4402,7 @@ batch.total_data_size = data_size; batch.nr = 1; - setup_items_for_insert(root, path, &batch); + setup_items_for_insert(trans, root, path, &batch); } /* @@ -4382,7 +4428,7 @@ slot = path->slots[0]; BUG_ON(slot < 0); - setup_items_for_insert(root, path, batch); + setup_items_for_insert(trans, root, path, batch); return 0; } @@ -4407,7 +4453,7 @@ leaf = path->nodes[0]; ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); write_extent_buffer(leaf, data, ptr, data_size); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); } btrfs_free_path(path); return ret; @@ -4438,7 +4484,7 @@ return ret; path->slots[0]++; - btrfs_setup_item_for_insert(root, path, new_key, item_size); + btrfs_setup_item_for_insert(trans, root, path, new_key, item_size); leaf = path->nodes[0]; memcpy_extent_buffer(leaf, btrfs_item_ptr_offset(leaf, path->slots[0]), @@ -4496,9 +4542,9 @@ struct btrfs_disk_key disk_key; btrfs_node_key(parent, &disk_key, 0); - fixup_low_keys(path, &disk_key, level + 1); + fixup_low_keys(trans, path, &disk_key, level + 1); } - btrfs_mark_buffer_dirty(parent); + btrfs_mark_buffer_dirty(trans, parent); return 0; } @@ -4595,7 +4641,7 @@ struct btrfs_disk_key disk_key; btrfs_item_key(leaf, &disk_key, 0); - fixup_low_keys(path, &disk_key, 1); + fixup_low_keys(trans, path, &disk_key, 1); } /* @@ -4660,11 +4706,11 @@ * dirtied this buffer */ if (path->nodes[0] == leaf) - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); free_extent_buffer(leaf); } } else { - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); } } return ret; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/ctree.h +++ linux-riscv-6.5.0/fs/btrfs/ctree.h @@ -518,7 +518,7 @@ int type); int btrfs_previous_extent_item(struct btrfs_root *root, struct btrfs_path *path, u64 min_objectid); -void btrfs_set_item_key_safe(struct btrfs_fs_info *fs_info, +void btrfs_set_item_key_safe(struct btrfs_trans_handle *trans, struct btrfs_path *path, const struct btrfs_key *new_key); struct extent_buffer *btrfs_root_node(struct btrfs_root *root); @@ -540,12 +540,15 @@ struct btrfs_root *root, struct extent_buffer *buf, struct extent_buffer **cow_ret, u64 new_root_objectid); -int btrfs_block_can_be_shared(struct btrfs_root *root, +int btrfs_block_can_be_shared(struct btrfs_trans_handle *trans, + struct btrfs_root *root, struct extent_buffer *buf); int btrfs_del_ptr(struct btrfs_trans_handle *trans, struct btrfs_root *root, struct btrfs_path *path, int level, int slot); -void btrfs_extend_item(struct btrfs_path *path, u32 data_size); -void btrfs_truncate_item(struct btrfs_path *path, u32 new_size, int from_end); +void btrfs_extend_item(struct btrfs_trans_handle *trans, + struct btrfs_path *path, u32 data_size); +void btrfs_truncate_item(struct btrfs_trans_handle *trans, + struct btrfs_path *path, u32 new_size, int from_end); int btrfs_split_item(struct btrfs_trans_handle *trans, struct btrfs_root *root, struct btrfs_path *path, @@ -609,7 +612,8 @@ int nr; }; -void btrfs_setup_item_for_insert(struct btrfs_root *root, +void btrfs_setup_item_for_insert(struct btrfs_trans_handle *trans, + struct btrfs_root *root, struct btrfs_path *path, const struct btrfs_key *key, u32 data_size); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/delalloc-space.c +++ linux-riscv-6.5.0/fs/btrfs/delalloc-space.c @@ -322,9 +322,6 @@ } else { if (current->journal_info) flush = BTRFS_RESERVE_FLUSH_LIMIT; - - if (btrfs_transaction_in_commit(fs_info)) - schedule_timeout(1); } num_bytes = ALIGN(num_bytes, fs_info->sectorsize); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/delayed-ref.c +++ linux-riscv-6.5.0/fs/btrfs/delayed-ref.c @@ -103,24 +103,17 @@ * Transfer bytes to our delayed refs rsv. * * @fs_info: the filesystem - * @src: source block rsv to transfer from * @num_bytes: number of bytes to transfer * - * This transfers up to the num_bytes amount from the src rsv to the + * This transfers up to the num_bytes amount, previously reserved, to the * delayed_refs_rsv. Any extra bytes are returned to the space info. */ void btrfs_migrate_to_delayed_refs_rsv(struct btrfs_fs_info *fs_info, - struct btrfs_block_rsv *src, u64 num_bytes) { struct btrfs_block_rsv *delayed_refs_rsv = &fs_info->delayed_refs_rsv; u64 to_free = 0; - spin_lock(&src->lock); - src->reserved -= num_bytes; - src->size -= num_bytes; - spin_unlock(&src->lock); - spin_lock(&delayed_refs_rsv->lock); if (delayed_refs_rsv->size > delayed_refs_rsv->reserved) { u64 delta = delayed_refs_rsv->size - @@ -163,6 +156,8 @@ struct btrfs_block_rsv *block_rsv = &fs_info->delayed_refs_rsv; u64 limit = btrfs_calc_delayed_ref_bytes(fs_info, 1); u64 num_bytes = 0; + u64 refilled_bytes; + u64 to_free; int ret = -ENOSPC; spin_lock(&block_rsv->lock); @@ -178,9 +173,38 @@ ret = btrfs_reserve_metadata_bytes(fs_info, block_rsv, num_bytes, flush); if (ret) return ret; - btrfs_block_rsv_add_bytes(block_rsv, num_bytes, false); - trace_btrfs_space_reservation(fs_info, "delayed_refs_rsv", - 0, num_bytes, 1); + + /* + * We may have raced with someone else, so check again if we the block + * reserve is still not full and release any excess space. + */ + spin_lock(&block_rsv->lock); + if (block_rsv->reserved < block_rsv->size) { + u64 needed = block_rsv->size - block_rsv->reserved; + + if (num_bytes >= needed) { + block_rsv->reserved += needed; + block_rsv->full = true; + to_free = num_bytes - needed; + refilled_bytes = needed; + } else { + block_rsv->reserved += num_bytes; + to_free = 0; + refilled_bytes = num_bytes; + } + } else { + to_free = num_bytes; + refilled_bytes = 0; + } + spin_unlock(&block_rsv->lock); + + if (to_free > 0) + btrfs_space_info_free_bytes_may_use(fs_info, block_rsv->space_info, + to_free); + + if (refilled_bytes > 0) + trace_btrfs_space_reservation(fs_info, "delayed_refs_rsv", 0, + refilled_bytes, 1); return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/delayed-ref.h +++ linux-riscv-6.5.0/fs/btrfs/delayed-ref.h @@ -407,7 +407,6 @@ int btrfs_delayed_refs_rsv_refill(struct btrfs_fs_info *fs_info, enum btrfs_reserve_flush_enum flush); void btrfs_migrate_to_delayed_refs_rsv(struct btrfs_fs_info *fs_info, - struct btrfs_block_rsv *src, u64 num_bytes); bool btrfs_check_space_for_delayed_refs(struct btrfs_fs_info *fs_info); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/dev-replace.c +++ linux-riscv-6.5.0/fs/btrfs/dev-replace.c @@ -442,7 +442,7 @@ dev_replace->item_needs_writeback = 0; up_write(&dev_replace->rwsem); - btrfs_mark_buffer_dirty(eb); + btrfs_mark_buffer_dirty(trans, eb); out: btrfs_free_path(path); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/dir-item.c +++ linux-riscv-6.5.0/fs/btrfs/dir-item.c @@ -38,7 +38,7 @@ di = btrfs_match_dir_item_name(fs_info, path, name, name_len); if (di) return ERR_PTR(-EEXIST); - btrfs_extend_item(path, data_size); + btrfs_extend_item(trans, path, data_size); } else if (ret < 0) return ERR_PTR(ret); WARN_ON(ret > 0); @@ -93,7 +93,7 @@ write_extent_buffer(leaf, name, name_ptr, name_len); write_extent_buffer(leaf, data, data_ptr, data_len); - btrfs_mark_buffer_dirty(path->nodes[0]); + btrfs_mark_buffer_dirty(trans, path->nodes[0]); return ret; } @@ -153,7 +153,7 @@ name_ptr = (unsigned long)(dir_item + 1); write_extent_buffer(leaf, name->name, name_ptr, name->len); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); second_insert: /* FIXME, use some real flag for selecting the extra index */ @@ -439,7 +439,7 @@ start = btrfs_item_ptr_offset(leaf, path->slots[0]); memmove_extent_buffer(leaf, ptr, ptr + sub_item_len, item_len - (ptr + sub_item_len - start)); - btrfs_truncate_item(path, item_len - sub_item_len, 1); + btrfs_truncate_item(trans, path, item_len - sub_item_len, 1); } return ret; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/disk-io.h +++ linux-riscv-6.5.0/fs/btrfs/disk-io.h @@ -105,7 +105,8 @@ } void btrfs_put_root(struct btrfs_root *root); -void btrfs_mark_buffer_dirty(struct extent_buffer *buf); +void btrfs_mark_buffer_dirty(struct btrfs_trans_handle *trans, + struct extent_buffer *buf); int btrfs_buffer_uptodate(struct extent_buffer *buf, u64 parent_transid, int atomic); int btrfs_read_extent_buffer(struct extent_buffer *buf, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/free-space-cache.c +++ linux-riscv-6.5.0/fs/btrfs/free-space-cache.c @@ -195,7 +195,7 @@ btrfs_set_inode_nlink(leaf, inode_item, 1); btrfs_set_inode_transid(leaf, inode_item, trans->transid); btrfs_set_inode_block_group(leaf, inode_item, offset); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); btrfs_release_path(path); key.objectid = BTRFS_FREE_SPACE_OBJECTID; @@ -213,7 +213,7 @@ struct btrfs_free_space_header); memzero_extent_buffer(leaf, (unsigned long)header, sizeof(*header)); btrfs_set_free_space_key(leaf, header, &disk_key); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); btrfs_release_path(path); return 0; @@ -1185,7 +1185,7 @@ btrfs_set_free_space_entries(leaf, header, entries); btrfs_set_free_space_bitmaps(leaf, header, bitmaps); btrfs_set_free_space_generation(leaf, header, trans->transid); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); btrfs_release_path(path); return 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/free-space-tree.c +++ linux-riscv-6.5.0/fs/btrfs/free-space-tree.c @@ -89,7 +89,7 @@ struct btrfs_free_space_info); btrfs_set_free_space_extent_count(leaf, info, 0); btrfs_set_free_space_flags(leaf, info, 0); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); ret = 0; out: @@ -287,7 +287,7 @@ flags |= BTRFS_FREE_SPACE_USING_BITMAPS; btrfs_set_free_space_flags(leaf, info, flags); expected_extent_count = btrfs_free_space_extent_count(leaf, info); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); btrfs_release_path(path); if (extent_count != expected_extent_count) { @@ -324,7 +324,7 @@ ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); write_extent_buffer(leaf, bitmap_cursor, ptr, data_size); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); btrfs_release_path(path); i += extent_size; @@ -430,7 +430,7 @@ flags &= ~BTRFS_FREE_SPACE_USING_BITMAPS; btrfs_set_free_space_flags(leaf, info, flags); expected_extent_count = btrfs_free_space_extent_count(leaf, info); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); btrfs_release_path(path); nrbits = block_group->length >> block_group->fs_info->sectorsize_bits; @@ -495,7 +495,7 @@ extent_count += new_extents; btrfs_set_free_space_extent_count(path->nodes[0], info, extent_count); - btrfs_mark_buffer_dirty(path->nodes[0]); + btrfs_mark_buffer_dirty(trans, path->nodes[0]); btrfs_release_path(path); if (!(flags & BTRFS_FREE_SPACE_USING_BITMAPS) && @@ -533,7 +533,8 @@ return !!extent_buffer_test_bit(leaf, ptr, i); } -static void free_space_set_bits(struct btrfs_block_group *block_group, +static void free_space_set_bits(struct btrfs_trans_handle *trans, + struct btrfs_block_group *block_group, struct btrfs_path *path, u64 *start, u64 *size, int bit) { @@ -563,7 +564,7 @@ extent_buffer_bitmap_set(leaf, ptr, first, last - first); else extent_buffer_bitmap_clear(leaf, ptr, first, last - first); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); *size -= end - *start; *start = end; @@ -656,7 +657,7 @@ cur_start = start; cur_size = size; while (1) { - free_space_set_bits(block_group, path, &cur_start, &cur_size, + free_space_set_bits(trans, block_group, path, &cur_start, &cur_size, !remove); if (cur_size == 0) break; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/inode-item.c +++ linux-riscv-6.5.0/fs/btrfs/inode-item.c @@ -167,7 +167,7 @@ memmove_extent_buffer(leaf, ptr, ptr + del_len, item_size - (ptr + del_len - item_start)); - btrfs_truncate_item(path, item_size - del_len, 1); + btrfs_truncate_item(trans, path, item_size - del_len, 1); out: btrfs_free_path(path); @@ -229,7 +229,7 @@ item_start = btrfs_item_ptr_offset(leaf, path->slots[0]); memmove_extent_buffer(leaf, ptr, ptr + sub_item_len, item_size - (ptr + sub_item_len - item_start)); - btrfs_truncate_item(path, item_size - sub_item_len, 1); + btrfs_truncate_item(trans, path, item_size - sub_item_len, 1); out: btrfs_free_path(path); @@ -282,7 +282,7 @@ name)) goto out; - btrfs_extend_item(path, ins_len); + btrfs_extend_item(trans, path, ins_len); ret = 0; } if (ret < 0) @@ -299,7 +299,7 @@ ptr = (unsigned long)&extref->name; write_extent_buffer(path->nodes[0], name->name, ptr, name->len); - btrfs_mark_buffer_dirty(path->nodes[0]); + btrfs_mark_buffer_dirty(trans, path->nodes[0]); out: btrfs_free_path(path); @@ -338,7 +338,7 @@ goto out; old_size = btrfs_item_size(path->nodes[0], path->slots[0]); - btrfs_extend_item(path, ins_len); + btrfs_extend_item(trans, path, ins_len); ref = btrfs_item_ptr(path->nodes[0], path->slots[0], struct btrfs_inode_ref); ref = (struct btrfs_inode_ref *)((unsigned long)ref + old_size); @@ -364,7 +364,7 @@ ptr = (unsigned long)(ref + 1); } write_extent_buffer(path->nodes[0], name->name, ptr, name->len); - btrfs_mark_buffer_dirty(path->nodes[0]); + btrfs_mark_buffer_dirty(trans, path->nodes[0]); out: btrfs_free_path(path); @@ -591,7 +591,7 @@ num_dec = (orig_num_bytes - extent_num_bytes); if (extent_start != 0) control->sub_bytes += num_dec; - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); } else { extent_num_bytes = btrfs_file_extent_disk_num_bytes(leaf, fi); @@ -617,7 +617,7 @@ btrfs_set_file_extent_ram_bytes(leaf, fi, size); size = btrfs_file_extent_calc_inline_size(size); - btrfs_truncate_item(path, size, 1); + btrfs_truncate_item(trans, path, size, 1); } else if (!del_item) { /* * We have to bail so the last_size is set to only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/messages.c +++ linux-riscv-6.5.0/fs/btrfs/messages.c @@ -252,12 +252,6 @@ } #endif -void __cold btrfs_print_v0_err(struct btrfs_fs_info *fs_info) -{ - btrfs_err(fs_info, -"Unsupported V0 extent filesystem detected. Aborting. Please re-create your filesystem with a newer kernel"); -} - #if BITS_PER_LONG == 32 void __cold btrfs_warn_32bit_limit(struct btrfs_fs_info *fs_info) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/messages.h +++ linux-riscv-6.5.0/fs/btrfs/messages.h @@ -181,8 +181,6 @@ #define ASSERT(expr) (void)(expr) #endif -void __cold btrfs_print_v0_err(struct btrfs_fs_info *fs_info); - __printf(5, 6) __cold void __btrfs_handle_fs_error(struct btrfs_fs_info *fs_info, const char *function, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/print-tree.c +++ linux-riscv-6.5.0/fs/btrfs/print-tree.c @@ -95,8 +95,10 @@ int ref_index = 0; if (unlikely(item_size < sizeof(*ei))) { - btrfs_print_v0_err(eb->fs_info); - btrfs_handle_fs_error(eb->fs_info, -EINVAL, NULL); + btrfs_err(eb->fs_info, + "unexpected extent item size, has %u expect >= %zu", + item_size, sizeof(*ei)); + btrfs_handle_fs_error(eb->fs_info, -EUCLEAN, NULL); } ei = btrfs_item_ptr(eb, slot, struct btrfs_extent_item); @@ -291,10 +293,6 @@ btrfs_file_extent_num_bytes(l, fi), btrfs_file_extent_ram_bytes(l, fi)); break; - case BTRFS_EXTENT_REF_V0_KEY: - btrfs_print_v0_err(fs_info); - btrfs_handle_fs_error(fs_info, -EINVAL, NULL); - break; case BTRFS_BLOCK_GROUP_ITEM_KEY: bi = btrfs_item_ptr(l, i, struct btrfs_block_group_item); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/qgroup.c +++ linux-riscv-6.5.0/fs/btrfs/qgroup.c @@ -622,7 +622,7 @@ ret = btrfs_insert_empty_item(trans, quota_root, path, &key, 0); - btrfs_mark_buffer_dirty(path->nodes[0]); + btrfs_mark_buffer_dirty(trans, path->nodes[0]); btrfs_free_path(path); return ret; @@ -700,7 +700,7 @@ btrfs_set_qgroup_info_excl(leaf, qgroup_info, 0); btrfs_set_qgroup_info_excl_cmpr(leaf, qgroup_info, 0); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); btrfs_release_path(path); @@ -719,7 +719,7 @@ btrfs_set_qgroup_limit_rsv_rfer(leaf, qgroup_limit, 0); btrfs_set_qgroup_limit_rsv_excl(leaf, qgroup_limit, 0); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); ret = 0; out: @@ -808,7 +808,7 @@ btrfs_set_qgroup_limit_rsv_rfer(l, qgroup_limit, qgroup->rsv_rfer); btrfs_set_qgroup_limit_rsv_excl(l, qgroup_limit, qgroup->rsv_excl); - btrfs_mark_buffer_dirty(l); + btrfs_mark_buffer_dirty(trans, l); out: btrfs_free_path(path); @@ -854,7 +854,7 @@ btrfs_set_qgroup_info_excl(l, qgroup_info, qgroup->excl); btrfs_set_qgroup_info_excl_cmpr(l, qgroup_info, qgroup->excl_cmpr); - btrfs_mark_buffer_dirty(l); + btrfs_mark_buffer_dirty(trans, l); out: btrfs_free_path(path); @@ -896,7 +896,7 @@ btrfs_set_qgroup_status_rescan(l, ptr, fs_info->qgroup_rescan_progress.objectid); - btrfs_mark_buffer_dirty(l); + btrfs_mark_buffer_dirty(trans, l); out: btrfs_free_path(path); @@ -1069,7 +1069,7 @@ BTRFS_QGROUP_STATUS_FLAGS_MASK); btrfs_set_qgroup_status_rescan(leaf, ptr, 0); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); key.objectid = 0; key.type = BTRFS_ROOT_REF_KEY; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/ref-verify.c +++ linux-riscv-6.5.0/fs/btrfs/ref-verify.c @@ -791,6 +791,7 @@ dump_ref_action(fs_info, ra); kfree(ref); kfree(ra); + kfree(re); goto out_unlock; } else if (be->num_refs == 0) { btrfs_err(fs_info, @@ -800,6 +801,7 @@ dump_ref_action(fs_info, ra); kfree(ref); kfree(ra); + kfree(re); goto out_unlock; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/root-tree.c +++ linux-riscv-6.5.0/fs/btrfs/root-tree.c @@ -191,7 +191,7 @@ btrfs_set_root_generation_v2(item, btrfs_root_generation(item)); write_extent_buffer(l, item, ptr, sizeof(*item)); - btrfs_mark_buffer_dirty(path->nodes[0]); + btrfs_mark_buffer_dirty(trans, path->nodes[0]); out: btrfs_free_path(path); return ret; @@ -438,7 +438,7 @@ btrfs_set_root_ref_name_len(leaf, ref, name->len); ptr = (unsigned long)(ref + 1); write_extent_buffer(leaf, name->name, ptr, name->len); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); if (key.type == BTRFS_ROOT_BACKREF_KEY) { btrfs_release_path(path); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/send.c +++ linux-riscv-6.5.0/fs/btrfs/send.c @@ -8160,7 +8160,7 @@ } sctx->send_filp = fget(arg->send_fd); - if (!sctx->send_filp) { + if (!sctx->send_filp || !(sctx->send_filp->f_mode & FMODE_WRITE)) { ret = -EBADF; goto out; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/tests/extent-buffer-tests.c +++ linux-riscv-6.5.0/fs/btrfs/tests/extent-buffer-tests.c @@ -61,7 +61,11 @@ key.type = BTRFS_EXTENT_CSUM_KEY; key.offset = 0; - btrfs_setup_item_for_insert(root, path, &key, value_len); + /* + * Passing a NULL trans handle is fine here, we have a dummy root eb + * and the tree is a single node (level 0). + */ + btrfs_setup_item_for_insert(NULL, root, path, &key, value_len); write_extent_buffer(eb, value, btrfs_item_ptr_offset(eb, 0), value_len); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/tests/inode-tests.c +++ linux-riscv-6.5.0/fs/btrfs/tests/inode-tests.c @@ -34,7 +34,11 @@ key.type = BTRFS_EXTENT_DATA_KEY; key.offset = start; - btrfs_setup_item_for_insert(root, &path, &key, value_len); + /* + * Passing a NULL trans handle is fine here, we have a dummy root eb + * and the tree is a single node (level 0). + */ + btrfs_setup_item_for_insert(NULL, root, &path, &key, value_len); fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item); btrfs_set_file_extent_generation(leaf, fi, 1); btrfs_set_file_extent_type(leaf, fi, type); @@ -64,7 +68,11 @@ key.type = BTRFS_INODE_ITEM_KEY; key.offset = 0; - btrfs_setup_item_for_insert(root, &path, &key, value_len); + /* + * Passing a NULL trans handle is fine here, we have a dummy root eb + * and the tree is a single node (level 0). + */ + btrfs_setup_item_for_insert(NULL, root, &path, &key, value_len); } /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/tree-log.c +++ linux-riscv-6.5.0/fs/btrfs/tree-log.c @@ -504,9 +504,9 @@ found_size = btrfs_item_size(path->nodes[0], path->slots[0]); if (found_size > item_size) - btrfs_truncate_item(path, item_size, 1); + btrfs_truncate_item(trans, path, item_size, 1); else if (found_size < item_size) - btrfs_extend_item(path, item_size - found_size); + btrfs_extend_item(trans, path, item_size - found_size); } else if (ret) { return ret; } @@ -574,7 +574,7 @@ } } no_copy: - btrfs_mark_buffer_dirty(path->nodes[0]); + btrfs_mark_buffer_dirty(trans, path->nodes[0]); btrfs_release_path(path); return 0; } @@ -3530,7 +3530,7 @@ last_offset = max(last_offset, curr_end); } btrfs_set_dir_log_end(path->nodes[0], item, last_offset); - btrfs_mark_buffer_dirty(path->nodes[0]); + btrfs_mark_buffer_dirty(trans, path->nodes[0]); btrfs_release_path(path); return 0; } @@ -4488,7 +4488,7 @@ dst_index++; } - btrfs_mark_buffer_dirty(dst_path->nodes[0]); + btrfs_mark_buffer_dirty(trans, dst_path->nodes[0]); btrfs_release_path(dst_path); out: kfree(ins_data); @@ -4693,7 +4693,7 @@ write_extent_buffer(leaf, &fi, btrfs_item_ptr_offset(leaf, path->slots[0]), sizeof(fi)); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); btrfs_release_path(path); @@ -4722,7 +4722,7 @@ struct extent_buffer *leaf; int slot; int ins_nr = 0; - int start_slot; + int start_slot = 0; int ret; if (!(inode->flags & BTRFS_INODE_PREALLOC)) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/uuid-tree.c +++ linux-riscv-6.5.0/fs/btrfs/uuid-tree.c @@ -124,7 +124,7 @@ * An item with that type already exists. * Extend the item and store the new subid at the end. */ - btrfs_extend_item(path, sizeof(subid_le)); + btrfs_extend_item(trans, path, sizeof(subid_le)); eb = path->nodes[0]; slot = path->slots[0]; offset = btrfs_item_ptr_offset(eb, slot); @@ -139,7 +139,7 @@ ret = 0; subid_le = cpu_to_le64(subid_cpu); write_extent_buffer(eb, &subid_le, offset, sizeof(subid_le)); - btrfs_mark_buffer_dirty(eb); + btrfs_mark_buffer_dirty(trans, eb); out: btrfs_free_path(path); @@ -221,7 +221,7 @@ move_src = offset + sizeof(subid); move_len = item_size - (move_src - btrfs_item_ptr_offset(eb, slot)); memmove_extent_buffer(eb, move_dst, move_src, move_len); - btrfs_truncate_item(path, item_size - sizeof(subid), 1); + btrfs_truncate_item(trans, path, item_size - sizeof(subid), 1); out: btrfs_free_path(path); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/btrfs/xattr.c +++ linux-riscv-6.5.0/fs/btrfs/xattr.c @@ -188,15 +188,15 @@ if (old_data_len + name_len + sizeof(*di) == item_size) { /* No other xattrs packed in the same leaf item. */ if (size > old_data_len) - btrfs_extend_item(path, size - old_data_len); + btrfs_extend_item(trans, path, size - old_data_len); else if (size < old_data_len) - btrfs_truncate_item(path, data_size, 1); + btrfs_truncate_item(trans, path, data_size, 1); } else { /* There are other xattrs packed in the same item. */ ret = btrfs_delete_one_dir_name(trans, root, path, di); if (ret) goto out; - btrfs_extend_item(path, data_size); + btrfs_extend_item(trans, path, data_size); } ptr = btrfs_item_ptr(leaf, slot, char); @@ -205,7 +205,7 @@ btrfs_set_dir_data_len(leaf, di, size); data_ptr = ((unsigned long)(di + 1)) + name_len; write_extent_buffer(leaf, value, data_ptr, size); - btrfs_mark_buffer_dirty(leaf); + btrfs_mark_buffer_dirty(trans, leaf); } else { /* * Insert, and we had space for the xattr, so path->slots[0] is only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/dlm/midcomms.c +++ linux-riscv-6.5.0/fs/dlm/midcomms.c @@ -1119,15 +1119,15 @@ break; case DLM_VERSION_3_2: + /* send ack back if necessary */ + dlm_send_ack_threshold(node, DLM_SEND_ACK_BACK_MSG_THRESHOLD); + msg = dlm_midcomms_get_msg_3_2(mh, nodeid, len, allocation, ppc); if (!msg) { dlm_free_mhandle(mh); goto err; } - - /* send ack back if necessary */ - dlm_send_ack_threshold(node, DLM_SEND_ACK_BACK_MSG_THRESHOLD); break; default: dlm_free_mhandle(mh); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ecryptfs/inode.c +++ linux-riscv-6.5.0/fs/ecryptfs/inode.c @@ -998,6 +998,14 @@ return rc; } +static int ecryptfs_do_getattr(const struct path *path, struct kstat *stat, + u32 request_mask, unsigned int flags) +{ + if (flags & AT_GETATTR_NOSEC) + return vfs_getattr_nosec(path, stat, request_mask, flags); + return vfs_getattr(path, stat, request_mask, flags); +} + static int ecryptfs_getattr(struct mnt_idmap *idmap, const struct path *path, struct kstat *stat, u32 request_mask, unsigned int flags) @@ -1006,8 +1014,8 @@ struct kstat lower_stat; int rc; - rc = vfs_getattr(ecryptfs_dentry_to_lower_path(dentry), &lower_stat, - request_mask, flags); + rc = ecryptfs_do_getattr(ecryptfs_dentry_to_lower_path(dentry), + &lower_stat, request_mask, flags); if (!rc) { fsstack_copy_attr_all(d_inode(dentry), ecryptfs_inode_to_lower(d_inode(dentry))); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/erofs/utils.c +++ linux-riscv-6.5.0/fs/erofs/utils.c @@ -77,12 +77,7 @@ struct erofs_sb_info *const sbi = EROFS_SB(sb); struct erofs_workgroup *pre; - /* - * Bump up before making this visible to others for the XArray in order - * to avoid potential UAF without serialized by xa_lock. - */ - lockref_get(&grp->lockref); - + DBG_BUGON(grp->lockref.count < 1); repeat: xa_lock(&sbi->managed_pslots); pre = __xa_cmpxchg(&sbi->managed_pslots, grp->index, @@ -96,7 +91,6 @@ cond_resched(); goto repeat; } - lockref_put_return(&grp->lockref); grp = pre; } xa_unlock(&sbi->managed_pslots); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/exfat/namei.c +++ linux-riscv-6.5.0/fs/exfat/namei.c @@ -351,14 +351,20 @@ if (exfat_check_max_dentries(inode)) return -ENOSPC; - /* we trust p_dir->size regardless of FAT type */ - if (exfat_find_last_cluster(sb, p_dir, &last_clu)) - return -EIO; - /* * Allocate new cluster to this directory */ - exfat_chain_set(&clu, last_clu + 1, 0, p_dir->flags); + if (ei->start_clu != EXFAT_EOF_CLUSTER) { + /* we trust p_dir->size regardless of FAT type */ + if (exfat_find_last_cluster(sb, p_dir, &last_clu)) + return -EIO; + + exfat_chain_set(&clu, last_clu + 1, 0, p_dir->flags); + } else { + /* This directory is empty */ + exfat_chain_set(&clu, EXFAT_EOF_CLUSTER, 0, + ALLOC_NO_FAT_CHAIN); + } /* allocate a cluster */ ret = exfat_alloc_cluster(inode, 1, &clu, IS_DIRSYNC(inode)); @@ -368,6 +374,11 @@ if (exfat_zeroed_cluster(inode, clu.dir)) return -EIO; + if (ei->start_clu == EXFAT_EOF_CLUSTER) { + ei->start_clu = clu.dir; + p_dir->dir = clu.dir; + } + /* append to the FAT chain */ if (clu.flags != p_dir->flags) { /* no-fat-chain bit is disabled, @@ -646,7 +657,7 @@ info->type = exfat_get_entry_type(ep); info->attr = le16_to_cpu(ep->dentry.file.attr); info->size = le64_to_cpu(ep2->dentry.stream.valid_size); - if ((info->type == TYPE_FILE) && (info->size == 0)) { + if (info->size == 0) { info->flags = ALLOC_NO_FAT_CHAIN; info->start_clu = EXFAT_EOF_CLUSTER; } else { @@ -890,6 +901,9 @@ dentries_per_clu = sbi->dentries_per_clu; + if (p_dir->dir == EXFAT_EOF_CLUSTER) + return 0; + exfat_chain_dup(&clu, p_dir); while (clu.dir != EXFAT_EOF_CLUSTER) { @@ -1257,7 +1271,8 @@ } /* Free the clusters if new_inode is a dir(as if exfat_rmdir) */ - if (new_entry_type == TYPE_DIR) { + if (new_entry_type == TYPE_DIR && + new_ei->start_clu != EXFAT_EOF_CLUSTER) { /* new_ei, new_clu_to_free */ struct exfat_chain new_clu_to_free; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ext2/file.c +++ linux-riscv-6.5.0/fs/ext2/file.c @@ -258,7 +258,6 @@ goto out_unlock; } - iocb->ki_pos += status; ret += status; endbyte = pos + status - 1; ret2 = filemap_write_and_wait_range(inode->i_mapping, pos, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ext4/acl.h +++ linux-riscv-6.5.0/fs/ext4/acl.h @@ -68,6 +68,11 @@ static inline int ext4_init_acl(handle_t *handle, struct inode *inode, struct inode *dir) { + /* usually, the umask is applied by posix_acl_create(), but if + ext4 ACL support is disabled at compile time, we need to do + it here, because posix_acl_create() will never be called */ + inode->i_mode &= ~current_umask(); + return 0; } #endif /* CONFIG_EXT4_FS_POSIX_ACL */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ext4/extents.c +++ linux-riscv-6.5.0/fs/ext4/extents.c @@ -1010,6 +1010,11 @@ ix = curp->p_idx; } + if (unlikely(ix > EXT_MAX_INDEX(curp->p_hdr))) { + EXT4_ERROR_INODE(inode, "ix > EXT_MAX_INDEX!"); + return -EFSCORRUPTED; + } + len = EXT_LAST_INDEX(curp->p_hdr) - ix + 1; BUG_ON(len < 0); if (len > 0) { @@ -1019,11 +1024,6 @@ memmove(ix + 1, ix, len * sizeof(struct ext4_extent_idx)); } - if (unlikely(ix > EXT_MAX_INDEX(curp->p_hdr))) { - EXT4_ERROR_INODE(inode, "ix > EXT_MAX_INDEX!"); - return -EFSCORRUPTED; - } - ix->ei_block = cpu_to_le32(logical); ext4_idx_store_pblock(ix, ptr); le16_add_cpu(&curp->p_hdr->eh_entries, 1); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ext4/inode.c +++ linux-riscv-6.5.0/fs/ext4/inode.c @@ -789,10 +789,22 @@ int ext4_get_block_unwritten(struct inode *inode, sector_t iblock, struct buffer_head *bh_result, int create) { + int ret = 0; + ext4_debug("ext4_get_block_unwritten: inode %lu, create flag %d\n", inode->i_ino, create); - return _ext4_get_block(inode, iblock, bh_result, + ret = _ext4_get_block(inode, iblock, bh_result, EXT4_GET_BLOCKS_CREATE_UNWRIT_EXT); + + /* + * If the buffer is marked unwritten, mark it as new to make sure it is + * zeroed out correctly in case of partial writes. Otherwise, there is + * a chance of stale data getting exposed. + */ + if (ret == 0 && buffer_unwritten(bh_result)) + set_buffer_new(bh_result); + + return ret; } /* Maximum number of blocks we map for direct IO at once. */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ext4/resize.c +++ linux-riscv-6.5.0/fs/ext4/resize.c @@ -560,13 +560,8 @@ if (meta_bg == 0 && !ext4_bg_has_super(sb, group)) goto handle_itb; - if (meta_bg == 1) { - ext4_group_t first_group; - first_group = ext4_meta_bg_first_group(sb, group); - if (first_group != group + 1 && - first_group != group + EXT4_DESC_PER_BLOCK(sb) - 1) - goto handle_itb; - } + if (meta_bg == 1) + goto handle_itb; block = start + ext4_bg_has_super(sb, group); /* Copy all of the GDT blocks into the backup in this group */ @@ -1191,8 +1186,10 @@ ext4_group_first_block_no(sb, group)); BUFFER_TRACE(bh, "get_write_access"); if ((err = ext4_journal_get_write_access(handle, sb, bh, - EXT4_JTR_NONE))) + EXT4_JTR_NONE))) { + brelse(bh); break; + } lock_buffer(bh); memcpy(bh->b_data, data, size); if (rest) @@ -1601,6 +1598,8 @@ int gdb_num_end = ((group + flex_gd->count - 1) / EXT4_DESC_PER_BLOCK(sb)); int meta_bg = ext4_has_feature_meta_bg(sb); + sector_t padding_blocks = meta_bg ? 0 : sbi->s_sbh->b_blocknr - + ext4_group_first_block_no(sb, 0); sector_t old_gdb = 0; update_backups(sb, ext4_group_first_block_no(sb, 0), @@ -1612,8 +1611,8 @@ gdb_num); if (old_gdb == gdb_bh->b_blocknr) continue; - update_backups(sb, gdb_bh->b_blocknr, gdb_bh->b_data, - gdb_bh->b_size, meta_bg); + update_backups(sb, gdb_bh->b_blocknr - padding_blocks, + gdb_bh->b_data, gdb_bh->b_size, meta_bg); old_gdb = gdb_bh->b_blocknr; } } @@ -1980,9 +1979,7 @@ errout: ret = ext4_journal_stop(handle); - if (!err) - err = ret; - return ret; + return err ? err : ret; invalid_resize_inode: ext4_error(sb, "corrupted/inconsistent resize inode"); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ext4/super.c +++ linux-riscv-6.5.0/fs/ext4/super.c @@ -6425,6 +6425,7 @@ struct ext4_mount_options old_opts; ext4_group_t g; int err = 0; + int alloc_ctx; #ifdef CONFIG_QUOTA int enable_quota = 0; int i, j; @@ -6465,7 +6466,16 @@ } + /* + * Changing the DIOREAD_NOLOCK or DELALLOC mount options may cause + * two calls to ext4_should_dioread_nolock() to return inconsistent + * values, triggering WARN_ON in ext4_add_complete_io(). we grab + * here s_writepages_rwsem to avoid race between writepages ops and + * remount. + */ + alloc_ctx = ext4_writepages_down_write(sb); ext4_apply_options(fc, sb); + ext4_writepages_up_write(sb, alloc_ctx); if ((old_opts.s_mount_opt & EXT4_MOUNT_JOURNAL_CHECKSUM) ^ test_opt(sb, JOURNAL_CHECKSUM)) { @@ -6683,6 +6693,8 @@ if ((sb->s_flags & SB_RDONLY) && !(old_sb_flags & SB_RDONLY) && sb_any_quota_suspended(sb)) dquot_resume(sb, -1); + + alloc_ctx = ext4_writepages_down_write(sb); sb->s_flags = old_sb_flags; sbi->s_mount_opt = old_opts.s_mount_opt; sbi->s_mount_opt2 = old_opts.s_mount_opt2; @@ -6691,6 +6703,8 @@ sbi->s_commit_interval = old_opts.s_commit_interval; sbi->s_min_batch_time = old_opts.s_min_batch_time; sbi->s_max_batch_time = old_opts.s_max_batch_time; + ext4_writepages_up_write(sb, alloc_ctx); + if (!test_opt(sb, BLOCK_VALIDITY) && sbi->s_system_blks) ext4_release_system_zone(sb); #ifdef CONFIG_QUOTA only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/f2fs/compress.c +++ linux-riscv-6.5.0/fs/f2fs/compress.c @@ -1988,7 +1988,7 @@ int f2fs_init_page_array_cache(struct f2fs_sb_info *sbi) { dev_t dev = sbi->sb->s_bdev->bd_dev; - char slab_name[32]; + char slab_name[35]; if (!f2fs_sb_has_compression(sbi)) return 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/f2fs/extent_cache.c +++ linux-riscv-6.5.0/fs/f2fs/extent_cache.c @@ -74,40 +74,14 @@ } } -static bool __may_read_extent_tree(struct inode *inode) -{ - struct f2fs_sb_info *sbi = F2FS_I_SB(inode); - - if (!test_opt(sbi, READ_EXTENT_CACHE)) - return false; - if (is_inode_flag_set(inode, FI_NO_EXTENT)) - return false; - if (is_inode_flag_set(inode, FI_COMPRESSED_FILE) && - !f2fs_sb_has_readonly(sbi)) - return false; - return S_ISREG(inode->i_mode); -} - -static bool __may_age_extent_tree(struct inode *inode) -{ - struct f2fs_sb_info *sbi = F2FS_I_SB(inode); - - if (!test_opt(sbi, AGE_EXTENT_CACHE)) - return false; - if (is_inode_flag_set(inode, FI_COMPRESSED_FILE)) - return false; - if (file_is_cold(inode)) - return false; - - return S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode); -} - static bool __init_may_extent_tree(struct inode *inode, enum extent_type type) { if (type == EX_READ) - return __may_read_extent_tree(inode); - else if (type == EX_BLOCK_AGE) - return __may_age_extent_tree(inode); + return test_opt(F2FS_I_SB(inode), READ_EXTENT_CACHE) && + S_ISREG(inode->i_mode); + if (type == EX_BLOCK_AGE) + return test_opt(F2FS_I_SB(inode), AGE_EXTENT_CACHE) && + (S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode)); return false; } @@ -120,7 +94,22 @@ if (list_empty(&F2FS_I_SB(inode)->s_list)) return false; - return __init_may_extent_tree(inode, type); + if (!__init_may_extent_tree(inode, type)) + return false; + + if (type == EX_READ) { + if (is_inode_flag_set(inode, FI_NO_EXTENT)) + return false; + if (is_inode_flag_set(inode, FI_COMPRESSED_FILE) && + !f2fs_sb_has_readonly(F2FS_I_SB(inode))) + return false; + } else if (type == EX_BLOCK_AGE) { + if (is_inode_flag_set(inode, FI_COMPRESSED_FILE)) + return false; + if (file_is_cold(inode)) + return false; + } + return true; } static void __try_update_largest_extent(struct extent_tree *et, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/f2fs/node.c +++ linux-riscv-6.5.0/fs/f2fs/node.c @@ -1467,7 +1467,8 @@ ofs_of_node(page), cpver_of_node(page), next_blkaddr_of_node(page)); set_sbi_flag(sbi, SBI_NEED_FSCK); - err = -EINVAL; + f2fs_handle_error(sbi, ERROR_INCONSISTENT_FOOTER); + err = -EFSCORRUPTED; out_err: ClearPageUptodate(page); out_put_err: @@ -2389,7 +2390,7 @@ blk_addr = le32_to_cpu(nat_blk->entries[i].block_addr); if (blk_addr == NEW_ADDR) - return -EINVAL; + return -EFSCORRUPTED; if (blk_addr == NULL_ADDR) { add_free_nid(sbi, start_nid, true, true); @@ -2504,7 +2505,14 @@ if (ret) { f2fs_up_read(&nm_i->nat_tree_lock); - f2fs_err(sbi, "NAT is corrupt, run fsck to fix it"); + + if (ret == -EFSCORRUPTED) { + f2fs_err(sbi, "NAT is corrupt, run fsck to fix it"); + set_sbi_flag(sbi, SBI_NEED_FSCK); + f2fs_handle_error(sbi, + ERROR_INCONSISTENT_NAT); + } + return ret; } } @@ -2743,7 +2751,9 @@ f2fs_update_inode_page(inode); /* 3: update and set xattr node page dirty */ - memcpy(F2FS_NODE(xpage), F2FS_NODE(page), VALID_XATTR_BLOCK_SIZE); + if (page) + memcpy(F2FS_NODE(xpage), F2FS_NODE(page), + VALID_XATTR_BLOCK_SIZE); set_page_dirty(xpage); f2fs_put_page(xpage, 1); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/f2fs/xattr.c +++ linux-riscv-6.5.0/fs/f2fs/xattr.c @@ -364,10 +364,10 @@ *xe = __find_xattr(cur_addr, last_txattr_addr, NULL, index, len, name); if (!*xe) { - f2fs_err(F2FS_I_SB(inode), "inode (%lu) has corrupted xattr", + f2fs_err(F2FS_I_SB(inode), "lookup inode (%lu) has corrupted xattr", inode->i_ino); set_sbi_flag(F2FS_I_SB(inode), SBI_NEED_FSCK); - err = -EFSCORRUPTED; + err = -ENODATA; f2fs_handle_error(F2FS_I_SB(inode), ERROR_CORRUPTED_XATTR); goto out; @@ -584,13 +584,12 @@ if ((void *)(entry) + sizeof(__u32) > last_base_addr || (void *)XATTR_NEXT_ENTRY(entry) > last_base_addr) { - f2fs_err(F2FS_I_SB(inode), "inode (%lu) has corrupted xattr", + f2fs_err(F2FS_I_SB(inode), "list inode (%lu) has corrupted xattr", inode->i_ino); set_sbi_flag(F2FS_I_SB(inode), SBI_NEED_FSCK); - error = -EFSCORRUPTED; f2fs_handle_error(F2FS_I_SB(inode), ERROR_CORRUPTED_XATTR); - goto cleanup; + break; } if (!prefix) @@ -650,7 +649,7 @@ if (size > MAX_VALUE_LEN(inode)) return -E2BIG; - +retry: error = read_all_xattrs(inode, ipage, &base_addr); if (error) return error; @@ -660,7 +659,14 @@ /* find entry with wanted name. */ here = __find_xattr(base_addr, last_base_addr, NULL, index, len, name); if (!here) { - f2fs_err(F2FS_I_SB(inode), "inode (%lu) has corrupted xattr", + if (!F2FS_I(inode)->i_xattr_nid) { + f2fs_notice(F2FS_I_SB(inode), + "recover xattr in inode (%lu)", inode->i_ino); + f2fs_recover_xattr_data(inode, NULL); + kfree(base_addr); + goto retry; + } + f2fs_err(F2FS_I_SB(inode), "set inode (%lu) has corrupted xattr", inode->i_ino); set_sbi_flag(F2FS_I_SB(inode), SBI_NEED_FSCK); error = -EFSCORRUPTED; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/fs-writeback.c +++ linux-riscv-6.5.0/fs/fs-writeback.c @@ -613,6 +613,24 @@ kfree(isw); } +static bool isw_prepare_wbs_switch(struct inode_switch_wbs_context *isw, + struct list_head *list, int *nr) +{ + struct inode *inode; + + list_for_each_entry(inode, list, i_io_list) { + if (!inode_prepare_wbs_switch(inode, isw->new_wb)) + continue; + + isw->inodes[*nr] = inode; + (*nr)++; + + if (*nr >= WB_MAX_INODES_PER_ISW - 1) + return true; + } + return false; +} + /** * cleanup_offline_cgwb - detach associated inodes * @wb: target wb @@ -625,7 +643,6 @@ { struct cgroup_subsys_state *memcg_css; struct inode_switch_wbs_context *isw; - struct inode *inode; int nr; bool restart = false; @@ -647,17 +664,17 @@ nr = 0; spin_lock(&wb->list_lock); - list_for_each_entry(inode, &wb->b_attached, i_io_list) { - if (!inode_prepare_wbs_switch(inode, isw->new_wb)) - continue; - - isw->inodes[nr++] = inode; - - if (nr >= WB_MAX_INODES_PER_ISW - 1) { - restart = true; - break; - } - } + /* + * In addition to the inodes that have completed writeback, also switch + * cgwbs for those inodes only with dirty timestamps. Otherwise, those + * inodes won't be written back for a long time when lazytime is + * enabled, and thus pinning the dying cgwbs. It won't break the + * bandwidth restrictions, as writeback of inode metadata is not + * accounted for. + */ + restart = isw_prepare_wbs_switch(isw, &wb->b_attached, &nr); + if (!restart) + restart = isw_prepare_wbs_switch(isw, &wb->b_dirty_time, &nr); spin_unlock(&wb->list_lock); /* no attached inodes? bail out */ @@ -1535,10 +1552,15 @@ if (wbc->pages_skipped) { /* - * writeback is not making progress due to locked - * buffers. Skip this inode for now. + * Writeback is not making progress due to locked buffers. + * Skip this inode for now. Although having skipped pages + * is odd for clean inodes, it can happen for some + * filesystems so handle that gracefully. */ - redirty_tail_locked(inode, wb); + if (inode->i_state & I_DIRTY_ALL) + redirty_tail_locked(inode, wb); + else + inode_cgwb_move_to_attached(inode, wb); return; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/gfs2/inode.c +++ linux-riscv-6.5.0/fs/gfs2/inode.c @@ -1860,16 +1860,24 @@ int gfs2_permission(struct mnt_idmap *idmap, struct inode *inode, int mask) { + int may_not_block = mask & MAY_NOT_BLOCK; struct gfs2_inode *ip; struct gfs2_holder i_gh; + struct gfs2_glock *gl; int error; gfs2_holder_mark_uninitialized(&i_gh); ip = GFS2_I(inode); - if (gfs2_glock_is_locked_by_me(ip->i_gl) == NULL) { - if (mask & MAY_NOT_BLOCK) + gl = rcu_dereference_check(ip->i_gl, !may_not_block); + if (unlikely(!gl)) { + /* inode is getting torn down, must be RCU mode */ + WARN_ON_ONCE(!may_not_block); + return -ECHILD; + } + if (gfs2_glock_is_locked_by_me(gl) == NULL) { + if (may_not_block) return -ECHILD; - error = gfs2_glock_nq_init(ip->i_gl, LM_ST_SHARED, LM_FLAG_ANY, &i_gh); + error = gfs2_glock_nq_init(gl, LM_ST_SHARED, LM_FLAG_ANY, &i_gh); if (error) return error; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/gfs2/ops_fstype.c +++ linux-riscv-6.5.0/fs/gfs2/ops_fstype.c @@ -1261,10 +1261,8 @@ if (!sb_rdonly(sb)) { error = init_threads(sdp); - if (error) { - gfs2_withdraw_delayed(sdp); + if (error) goto fail_per_node; - } } error = gfs2_freeze_lock_shared(sdp); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/gfs2/quota.c +++ linux-riscv-6.5.0/fs/gfs2/quota.c @@ -441,6 +441,17 @@ (sync_gen && (qd->qd_sync_gen >= *sync_gen))) return 0; + /* + * If qd_change is 0 it means a pending quota change was negated. + * We should not sync it, but we still have a qd reference and slot + * reference taken by gfs2_quota_change -> do_qc that need to be put. + */ + if (!qd->qd_change && test_and_clear_bit(QDF_CHANGE, &qd->qd_flags)) { + slot_put(qd); + qd_put(qd); + return 0; + } + if (!lockref_get_not_dead(&qd->qd_lockref)) return 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/gfs2/super.c +++ linux-riscv-6.5.0/fs/gfs2/super.c @@ -1558,7 +1558,7 @@ wait_on_bit_io(&ip->i_flags, GIF_GLOP_PENDING, TASK_UNINTERRUPTIBLE); gfs2_glock_add_to_lru(ip->i_gl); gfs2_glock_put_eventually(ip->i_gl); - ip->i_gl = NULL; + rcu_assign_pointer(ip->i_gl, NULL); } } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/inode.c +++ linux-riscv-6.5.0/fs/inode.c @@ -215,6 +215,8 @@ lockdep_set_class_and_name(&mapping->invalidate_lock, &sb->s_type->invalidate_lock_key, "mapping.invalidate_lock"); + if (sb->s_iflags & SB_I_STABLE_WRITES) + mapping_set_stable_writes(mapping); inode->i_private = NULL; inode->i_mapping = mapping; INIT_HLIST_HEAD(&inode->i_dentry); /* buggered by rcu freeing */ @@ -2499,6 +2501,22 @@ EXPORT_SYMBOL(current_time); /** + * inode_set_ctime_current - set the ctime to current_time + * @inode: inode + * + * Set the inode->i_ctime to the current value for the inode. Returns + * the current value that was assigned to i_ctime. + */ +struct timespec64 inode_set_ctime_current(struct inode *inode) +{ + struct timespec64 now = current_time(inode); + + inode_set_ctime(inode, now.tv_sec, now.tv_nsec); + return now; +} +EXPORT_SYMBOL(inode_set_ctime_current); + +/** * in_group_or_capable - check whether caller is CAP_FSETID privileged * @idmap: idmap of the mount @inode was found from * @inode: inode to check only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/nfs/pnfs.c +++ linux-riscv-6.5.0/fs/nfs/pnfs.c @@ -2634,31 +2634,44 @@ return mode == 0; } -static int -pnfs_layout_return_unused_byserver(struct nfs_server *server, void *data) +static int pnfs_layout_return_unused_byserver(struct nfs_server *server, + void *data) { const struct pnfs_layout_range *range = data; + const struct cred *cred; struct pnfs_layout_hdr *lo; struct inode *inode; + nfs4_stateid stateid; + enum pnfs_iomode iomode; + restart: rcu_read_lock(); list_for_each_entry_rcu(lo, &server->layouts, plh_layouts) { - if (!pnfs_layout_can_be_returned(lo) || + inode = lo->plh_inode; + if (!inode || !pnfs_layout_can_be_returned(lo) || test_bit(NFS_LAYOUT_RETURN_REQUESTED, &lo->plh_flags)) continue; - inode = lo->plh_inode; spin_lock(&inode->i_lock); - if (!pnfs_should_return_unused_layout(lo, range)) { + if (!lo->plh_inode || + !pnfs_should_return_unused_layout(lo, range)) { spin_unlock(&inode->i_lock); continue; } + pnfs_get_layout_hdr(lo); + pnfs_set_plh_return_info(lo, range->iomode, 0); + if (pnfs_mark_matching_lsegs_return(lo, &lo->plh_return_segs, + range, 0) != 0 || + !pnfs_prepare_layoutreturn(lo, &stateid, &cred, &iomode)) { + spin_unlock(&inode->i_lock); + rcu_read_unlock(); + pnfs_put_layout_hdr(lo); + cond_resched(); + goto restart; + } spin_unlock(&inode->i_lock); - inode = pnfs_grab_inode_layout_hdr(lo); - if (!inode) - continue; rcu_read_unlock(); - pnfs_mark_layout_for_return(inode, range); - iput(inode); + pnfs_send_layoutreturn(lo, &stateid, &cred, iomode, false); + pnfs_put_layout_hdr(lo); cond_resched(); goto restart; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/nfsd/cache.h +++ linux-riscv-6.5.0/fs/nfsd/cache.h @@ -84,7 +84,8 @@ void nfsd_net_reply_cache_destroy(struct nfsd_net *nn); int nfsd_reply_cache_init(struct nfsd_net *); void nfsd_reply_cache_shutdown(struct nfsd_net *); -int nfsd_cache_lookup(struct svc_rqst *); +int nfsd_cache_lookup(struct svc_rqst *rqstp, unsigned int start, + unsigned int len); void nfsd_cache_update(struct svc_rqst *, int, __be32 *); int nfsd_reply_cache_stats_show(struct seq_file *m, void *v); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/nfsd/filecache.c +++ linux-riscv-6.5.0/fs/nfsd/filecache.c @@ -989,22 +989,21 @@ unsigned char need = may_flags & NFSD_FILE_MAY_MASK; struct net *net = SVC_NET(rqstp); struct nfsd_file *new, *nf; - const struct cred *cred; + bool stale_retry = true; bool open_retry = true; struct inode *inode; __be32 status; int ret; +retry: status = fh_verify(rqstp, fhp, S_IFREG, may_flags|NFSD_MAY_OWNER_OVERRIDE); if (status != nfs_ok) return status; inode = d_inode(fhp->fh_dentry); - cred = get_current_cred(); -retry: rcu_read_lock(); - nf = nfsd_file_lookup_locked(net, cred, inode, need, want_gc); + nf = nfsd_file_lookup_locked(net, current_cred(), inode, need, want_gc); rcu_read_unlock(); if (nf) { @@ -1026,7 +1025,7 @@ rcu_read_lock(); spin_lock(&inode->i_lock); - nf = nfsd_file_lookup_locked(net, cred, inode, need, want_gc); + nf = nfsd_file_lookup_locked(net, current_cred(), inode, need, want_gc); if (unlikely(nf)) { spin_unlock(&inode->i_lock); rcu_read_unlock(); @@ -1058,6 +1057,7 @@ goto construction_err; } open_retry = false; + fh_put(fhp); goto retry; } this_cpu_inc(nfsd_file_cache_hits); @@ -1074,7 +1074,6 @@ nfsd_file_check_write_error(nf); *pnf = nf; } - put_cred(cred); trace_nfsd_file_acquire(rqstp, inode, may_flags, nf, status); return status; @@ -1088,8 +1087,20 @@ status = nfs_ok; trace_nfsd_file_opened(nf, status); } else { - status = nfsd_open_verified(rqstp, fhp, may_flags, - &nf->nf_file); + ret = nfsd_open_verified(rqstp, fhp, may_flags, + &nf->nf_file); + if (ret == -EOPENSTALE && stale_retry) { + stale_retry = false; + nfsd_file_unhash(nf); + clear_and_wake_up_bit(NFSD_FILE_PENDING, + &nf->nf_flags); + if (refcount_dec_and_test(&nf->nf_ref)) + nfsd_file_free(nf); + nf = NULL; + fh_put(fhp); + goto retry; + } + status = nfserrno(ret); trace_nfsd_file_open(nf, status); } } else only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/nfsd/nfs4state.c +++ linux-riscv-6.5.0/fs/nfsd/nfs4state.c @@ -2785,7 +2785,7 @@ /* XXX: alternatively, we could get/drop in seq start/stop */ drop_client(clp); - return 0; + return seq_release(inode, file); } static const struct file_operations client_states_fops = { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/nfsd/nfscache.c +++ linux-riscv-6.5.0/fs/nfsd/nfscache.c @@ -314,33 +314,53 @@ return prune_cache_entries(nn); } -/* - * Walk an xdr_buf and get a CRC for at most the first RC_CSUMLEN bytes + +/** + * nfsd_cache_csum - Checksum incoming NFS Call arguments + * @buf: buffer containing a whole RPC Call message + * @start: starting byte of the NFS Call header + * @remaining: size of the NFS Call header, in bytes + * + * Compute a weak checksum of the leading bytes of an NFS procedure + * call header to help verify that a retransmitted Call matches an + * entry in the duplicate reply cache. + * + * To avoid assumptions about how the RPC message is laid out in + * @buf and what else it might contain (eg, a GSS MIC suffix), the + * caller passes us the exact location and length of the NFS Call + * header. + * + * Returns a 32-bit checksum value, as defined in RFC 793. */ -static __wsum -nfsd_cache_csum(struct svc_rqst *rqstp) +static __wsum nfsd_cache_csum(struct xdr_buf *buf, unsigned int start, + unsigned int remaining) { + unsigned int base, len; + struct xdr_buf subbuf; + __wsum csum = 0; + void *p; int idx; - unsigned int base; - __wsum csum; - struct xdr_buf *buf = &rqstp->rq_arg; - const unsigned char *p = buf->head[0].iov_base; - size_t csum_len = min_t(size_t, buf->head[0].iov_len + buf->page_len, - RC_CSUMLEN); - size_t len = min(buf->head[0].iov_len, csum_len); + + if (remaining > RC_CSUMLEN) + remaining = RC_CSUMLEN; + if (xdr_buf_subsegment(buf, &subbuf, start, remaining)) + return csum; /* rq_arg.head first */ - csum = csum_partial(p, len, 0); - csum_len -= len; + if (subbuf.head[0].iov_len) { + len = min_t(unsigned int, subbuf.head[0].iov_len, remaining); + csum = csum_partial(subbuf.head[0].iov_base, len, csum); + remaining -= len; + } /* Continue into page array */ - idx = buf->page_base / PAGE_SIZE; - base = buf->page_base & ~PAGE_MASK; - while (csum_len) { - p = page_address(buf->pages[idx]) + base; - len = min_t(size_t, PAGE_SIZE - base, csum_len); + idx = subbuf.page_base / PAGE_SIZE; + base = subbuf.page_base & ~PAGE_MASK; + while (remaining) { + p = page_address(subbuf.pages[idx]) + base; + len = min_t(unsigned int, PAGE_SIZE - base, remaining); csum = csum_partial(p, len, csum); - csum_len -= len; + remaining -= len; base = 0; ++idx; } @@ -411,6 +431,8 @@ /** * nfsd_cache_lookup - Find an entry in the duplicate reply cache * @rqstp: Incoming Call to find + * @start: starting byte in @rqstp->rq_arg of the NFS Call header + * @len: size of the NFS Call header, in bytes * * Try to find an entry matching the current call in the cache. When none * is found, we try to grab the oldest expired entry off the LRU list. If @@ -423,7 +445,8 @@ * %RC_REPLY: Reply from cache * %RC_DROPIT: Do not process the request further */ -int nfsd_cache_lookup(struct svc_rqst *rqstp) +int nfsd_cache_lookup(struct svc_rqst *rqstp, unsigned int start, + unsigned int len) { struct nfsd_net *nn; struct svc_cacherep *rp, *found; @@ -438,7 +461,7 @@ goto out; } - csum = nfsd_cache_csum(rqstp); + csum = nfsd_cache_csum(&rqstp->rq_arg, start, len); /* * Since the common case is a cache miss followed by an insert, @@ -582,24 +605,17 @@ return; } -/* - * Copy cached reply to current reply buffer. Should always fit. - * FIXME as reply is in a page, we should just attach the page, and - * keep a refcount.... - */ static int nfsd_cache_append(struct svc_rqst *rqstp, struct kvec *data) { - struct kvec *vec = &rqstp->rq_res.head[0]; + __be32 *p; - if (vec->iov_len + data->iov_len > PAGE_SIZE) { - printk(KERN_WARNING "nfsd: cached reply too large (%zd).\n", - data->iov_len); - return 0; - } - memcpy((char*)vec->iov_base + vec->iov_len, data->iov_base, data->iov_len); - vec->iov_len += data->iov_len; - return 1; + p = xdr_reserve_space(&rqstp->rq_res_stream, data->iov_len); + if (unlikely(!p)) + return false; + memcpy(p, data->iov_base, data->iov_len); + xdr_commit_encode(&rqstp->rq_res_stream); + return true; } /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/nfsd/nfssvc.c +++ linux-riscv-6.5.0/fs/nfsd/nfssvc.c @@ -1046,6 +1046,8 @@ { const struct svc_procedure *proc = rqstp->rq_procinfo; __be32 *statp = rqstp->rq_accept_statp; + unsigned int start, len; + __be32 *nfs_reply; /* * Give the xdr decoder a chance to change this if it wants @@ -1053,10 +1055,17 @@ */ rqstp->rq_cachetype = proc->pc_cachetype; + /* + * ->pc_decode advances the argument stream past the NFS + * Call header, so grab the header's starting location and + * size now for the call to nfsd_cache_lookup(). + */ + start = xdr_stream_pos(&rqstp->rq_arg_stream); + len = xdr_stream_remaining(&rqstp->rq_arg_stream); if (!proc->pc_decode(rqstp, &rqstp->rq_arg_stream)) goto out_decode_err; - switch (nfsd_cache_lookup(rqstp)) { + switch (nfsd_cache_lookup(rqstp, start, len)) { case RC_DOIT: break; case RC_REPLY: @@ -1065,6 +1074,7 @@ goto out_dropit; } + nfs_reply = xdr_inline_decode(&rqstp->rq_res_stream, 0); *statp = proc->pc_func(rqstp); if (test_bit(RQ_DROPME, &rqstp->rq_flags)) goto out_update_drop; @@ -1072,7 +1082,7 @@ if (!proc->pc_encode(rqstp, &rqstp->rq_res_stream)) goto out_encode_err; - nfsd_cache_update(rqstp, rqstp->rq_cachetype, statp + 1); + nfsd_cache_update(rqstp, rqstp->rq_cachetype, nfs_reply); out_cached_reply: return 1; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/nfsd/vfs.c +++ linux-riscv-6.5.0/fs/nfsd/vfs.c @@ -823,7 +823,7 @@ * and additional flags. * N.B. After this call fhp needs an fh_put */ -static __be32 +static int __nfsd_open(struct svc_rqst *rqstp, struct svc_fh *fhp, umode_t type, int may_flags, struct file **filp) { @@ -831,14 +831,12 @@ struct inode *inode; struct file *file; int flags = O_RDONLY|O_LARGEFILE; - __be32 err; - int host_err = 0; + int host_err = -EPERM; path.mnt = fhp->fh_export->ex_path.mnt; path.dentry = fhp->fh_dentry; inode = d_inode(path.dentry); - err = nfserr_perm; if (IS_APPEND(inode) && (may_flags & NFSD_MAY_WRITE)) goto out; @@ -847,7 +845,7 @@ host_err = nfsd_open_break_lease(inode, may_flags); if (host_err) /* NOMEM or WOULDBLOCK */ - goto out_nfserr; + goto out; if (may_flags & NFSD_MAY_WRITE) { if (may_flags & NFSD_MAY_READ) @@ -859,13 +857,13 @@ file = dentry_open(&path, flags, current_cred()); if (IS_ERR(file)) { host_err = PTR_ERR(file); - goto out_nfserr; + goto out; } host_err = ima_file_check(file, may_flags); if (host_err) { fput(file); - goto out_nfserr; + goto out; } if (may_flags & NFSD_MAY_64BIT_COOKIE) @@ -874,10 +872,8 @@ file->f_mode |= FMODE_32BITHASH; *filp = file; -out_nfserr: - err = nfserrno(host_err); out: - return err; + return host_err; } __be32 @@ -885,6 +881,7 @@ int may_flags, struct file **filp) { __be32 err; + int host_err; bool retried = false; validate_process_creds(); @@ -904,12 +901,13 @@ retry: err = fh_verify(rqstp, fhp, type, may_flags); if (!err) { - err = __nfsd_open(rqstp, fhp, type, may_flags, filp); - if (err == nfserr_stale && !retried) { + host_err = __nfsd_open(rqstp, fhp, type, may_flags, filp); + if (host_err == -EOPENSTALE && !retried) { retried = true; fh_put(fhp); goto retry; } + err = nfserrno(host_err); } validate_process_creds(); return err; @@ -922,13 +920,13 @@ * @may_flags: internal permission flags * @filp: OUT: open "struct file *" * - * Returns an nfsstat value in network byte order. + * Returns zero on success, or a negative errno value. */ -__be32 +int nfsd_open_verified(struct svc_rqst *rqstp, struct svc_fh *fhp, int may_flags, struct file **filp) { - __be32 err; + int err; validate_process_creds(); err = __nfsd_open(rqstp, fhp, S_IFREG, may_flags, filp); @@ -1781,6 +1779,12 @@ if (!flen || isdotent(fname, flen) || !tlen || isdotent(tname, tlen)) goto out; + err = (rqstp->rq_vers == 2) ? nfserr_acces : nfserr_xdev; + if (ffhp->fh_export->ex_path.mnt != tfhp->fh_export->ex_path.mnt) + goto out; + if (ffhp->fh_export->ex_path.dentry != tfhp->fh_export->ex_path.dentry) + goto out; + retry: host_err = fh_want_write(ffhp); if (host_err) { @@ -1812,12 +1816,6 @@ if (ndentry == trap) goto out_dput_new; - host_err = -EXDEV; - if (ffhp->fh_export->ex_path.mnt != tfhp->fh_export->ex_path.mnt) - goto out_dput_new; - if (ffhp->fh_export->ex_path.dentry != tfhp->fh_export->ex_path.dentry) - goto out_dput_new; - if ((ndentry->d_sb->s_export_op->flags & EXPORT_OP_CLOSE_BEFORE_UNLINK) && nfsd_has_cached_files(ndentry)) { close_cached = true; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/nfsd/vfs.h +++ linux-riscv-6.5.0/fs/nfsd/vfs.h @@ -104,8 +104,8 @@ int nfsd_open_break_lease(struct inode *, int); __be32 nfsd_open(struct svc_rqst *, struct svc_fh *, umode_t, int, struct file **); -__be32 nfsd_open_verified(struct svc_rqst *, struct svc_fh *, - int, struct file **); +int nfsd_open_verified(struct svc_rqst *rqstp, struct svc_fh *fhp, + int may_flags, struct file **filp); __be32 nfsd_splice_read(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file, loff_t offset, unsigned long *count, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/nilfs2/sufile.c +++ linux-riscv-6.5.0/fs/nilfs2/sufile.c @@ -501,15 +501,38 @@ down_write(&NILFS_MDT(sufile)->mi_sem); ret = nilfs_sufile_get_segment_usage_block(sufile, segnum, 0, &bh); - if (!ret) { - mark_buffer_dirty(bh); - nilfs_mdt_mark_dirty(sufile); - kaddr = kmap_atomic(bh->b_page); - su = nilfs_sufile_block_get_segment_usage(sufile, segnum, bh, kaddr); + if (ret) + goto out_sem; + + kaddr = kmap_atomic(bh->b_page); + su = nilfs_sufile_block_get_segment_usage(sufile, segnum, bh, kaddr); + if (unlikely(nilfs_segment_usage_error(su))) { + struct the_nilfs *nilfs = sufile->i_sb->s_fs_info; + + kunmap_atomic(kaddr); + brelse(bh); + if (nilfs_segment_is_active(nilfs, segnum)) { + nilfs_error(sufile->i_sb, + "active segment %llu is erroneous", + (unsigned long long)segnum); + } else { + /* + * Segments marked erroneous are never allocated by + * nilfs_sufile_alloc(); only active segments, ie, + * the segments indexed by ns_segnum or ns_nextnum, + * can be erroneous here. + */ + WARN_ON_ONCE(1); + } + ret = -EIO; + } else { nilfs_segment_usage_set_dirty(su); kunmap_atomic(kaddr); + mark_buffer_dirty(bh); + nilfs_mdt_mark_dirty(sufile); brelse(bh); } +out_sem: up_write(&NILFS_MDT(sufile)->mi_sem); return ret; } @@ -536,9 +559,14 @@ kaddr = kmap_atomic(bh->b_page); su = nilfs_sufile_block_get_segment_usage(sufile, segnum, bh, kaddr); - WARN_ON(nilfs_segment_usage_error(su)); - if (modtime) + if (modtime) { + /* + * Check segusage error and set su_lastmod only when updating + * this entry with a valid timestamp, not for cancellation. + */ + WARN_ON_ONCE(nilfs_segment_usage_error(su)); su->su_lastmod = cpu_to_le64(modtime); + } su->su_nblocks = cpu_to_le32(nblocks); kunmap_atomic(kaddr); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/nilfs2/the_nilfs.c +++ linux-riscv-6.5.0/fs/nilfs2/the_nilfs.c @@ -716,7 +716,11 @@ goto failed_sbh; } nilfs_release_super_block(nilfs); - sb_set_blocksize(sb, blocksize); + if (!sb_set_blocksize(sb, blocksize)) { + nilfs_err(sb, "bad blocksize %d", blocksize); + err = -EINVAL; + goto out; + } err = nilfs_load_super_block(nilfs, sb, blocksize, &sbp); if (err) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/notify/fanotify/fanotify_user.c +++ linux-riscv-6.5.0/fs/notify/fanotify/fanotify_user.c @@ -1585,16 +1585,25 @@ } /* Check if filesystem can encode a unique fid */ -static int fanotify_test_fid(struct dentry *dentry) +static int fanotify_test_fid(struct dentry *dentry, unsigned int flags) { + unsigned int mark_type = flags & FANOTIFY_MARK_TYPE_BITS; + const struct export_operations *nop = dentry->d_sb->s_export_op; + + /* + * We need to make sure that the filesystem supports encoding of + * file handles so user can use name_to_handle_at() to compare fids + * reported with events to the file handle of watched objects. + */ + if (!nop) + return -EOPNOTSUPP; + /* - * We need to make sure that the file system supports at least - * encoding a file handle so user can use name_to_handle_at() to - * compare fid returned with event to the file handle of watched - * objects. However, even the relaxed AT_HANDLE_FID flag requires - * at least empty export_operations for ecoding unique file ids. + * For sb/mount mark, we also need to make sure that the filesystem + * supports decoding file handles, so user has a way to map back the + * reported fids to filesystem objects. */ - if (!dentry->d_sb->s_export_op) + if (mark_type != FAN_MARK_INODE && !nop->fh_to_dentry) return -EOPNOTSUPP; return 0; @@ -1812,7 +1821,7 @@ if (ret) goto path_put_and_out; - ret = fanotify_test_fid(path.dentry); + ret = fanotify_test_fid(path.dentry, flags); if (ret) goto path_put_and_out; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ntfs3/attrib.c +++ linux-riscv-6.5.0/fs/ntfs3/attrib.c @@ -1736,10 +1736,8 @@ le_b = NULL; attr_b = ni_find_attr(ni, NULL, &le_b, ATTR_DATA, NULL, 0, NULL, &mi_b); - if (!attr_b) { - err = -ENOENT; - goto out; - } + if (!attr_b) + return -ENOENT; attr = attr_b; le = le_b; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ntfs3/attrlist.c +++ linux-riscv-6.5.0/fs/ntfs3/attrlist.c @@ -52,7 +52,8 @@ if (!attr->non_res) { lsize = le32_to_cpu(attr->res.data_size); - le = kmalloc(al_aligned(lsize), GFP_NOFS | __GFP_NOWARN); + /* attr is resident: lsize < record_size (1K or 4K) */ + le = kvmalloc(al_aligned(lsize), GFP_KERNEL); if (!le) { err = -ENOMEM; goto out; @@ -80,7 +81,17 @@ if (err < 0) goto out; - le = kmalloc(al_aligned(lsize), GFP_NOFS | __GFP_NOWARN); + /* attr is nonresident. + * The worst case: + * 1T (2^40) extremely fragmented file. + * cluster = 4K (2^12) => 2^28 fragments + * 2^9 fragments per one record => 2^19 records + * 2^5 bytes of ATTR_LIST_ENTRY per one record => 2^24 bytes. + * + * the result is 16M bytes per attribute list. + * Use kvmalloc to allocate in range [several Kbytes - dozen Mbytes] + */ + le = kvmalloc(al_aligned(lsize), GFP_KERNEL); if (!le) { err = -ENOMEM; goto out; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ntfs3/bitmap.c +++ linux-riscv-6.5.0/fs/ntfs3/bitmap.c @@ -659,7 +659,8 @@ wnd->bits_last = wbits; wnd->free_bits = - kcalloc(wnd->nwnd, sizeof(u16), GFP_NOFS | __GFP_NOWARN); + kvmalloc_array(wnd->nwnd, sizeof(u16), GFP_KERNEL | __GFP_ZERO); + if (!wnd->free_bits) return -ENOMEM; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ntfs3/dir.c +++ linux-riscv-6.5.0/fs/ntfs3/dir.c @@ -309,7 +309,11 @@ return 0; } - dt_type = (fname->dup.fa & FILE_ATTRIBUTE_DIRECTORY) ? DT_DIR : DT_REG; + /* NTFS: symlinks are "dir + reparse" or "file + reparse" */ + if (fname->dup.fa & FILE_ATTRIBUTE_REPARSE_POINT) + dt_type = DT_LNK; + else + dt_type = (fname->dup.fa & FILE_ATTRIBUTE_DIRECTORY) ? DT_DIR : DT_REG; return !dir_emit(ctx, (s8 *)name, name_len, ino, dt_type); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ntfs3/frecord.c +++ linux-riscv-6.5.0/fs/ntfs3/frecord.c @@ -2148,7 +2148,7 @@ for (i = 0; i < pages_per_frame; i++) { pg = pages[i]; - if (i == idx) + if (i == idx || !pg) continue; unlock_page(pg); put_page(pg); @@ -3208,6 +3208,12 @@ if (!fname || !memcmp(&fname->dup, dup, sizeof(fname->dup))) continue; + /* Check simple case when parent inode equals current inode. */ + if (ino_get(&fname->home) == ni->vfs_inode.i_ino) { + ntfs_set_state(sbi, NTFS_DIRTY_ERROR); + continue; + } + /* ntfs_iget5 may sleep. */ dir = ntfs_iget5(sb, &fname->home, NULL); if (IS_ERR(dir)) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ntfs3/fslog.c +++ linux-riscv-6.5.0/fs/ntfs3/fslog.c @@ -2168,8 +2168,10 @@ if (!page) { page = kmalloc(log->page_size, GFP_NOFS); - if (!page) - return -ENOMEM; + if (!page) { + err = -ENOMEM; + goto out; + } } /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ntfs3/fsntfs.c +++ linux-riscv-6.5.0/fs/ntfs3/fsntfs.c @@ -983,18 +983,11 @@ if (err) return err; - mark_inode_dirty(&ni->vfs_inode); + mark_inode_dirty_sync(&ni->vfs_inode); /* verify(!ntfs_update_mftmirr()); */ - /* - * If we used wait=1, sync_inode_metadata waits for the io for the - * inode to finish. It hangs when media is removed. - * So wait=0 is sent down to sync_inode_metadata - * and filemap_fdatawrite is used for the data blocks. - */ - err = sync_inode_metadata(&ni->vfs_inode, 0); - if (!err) - err = filemap_fdatawrite(ni->vfs_inode.i_mapping); + /* write mft record on disk. */ + err = _ni_write_inode(&ni->vfs_inode, 1); return err; } @@ -2461,10 +2454,12 @@ { CLST end, i, zone_len, zlen; struct wnd_bitmap *wnd = &sbi->used.bitmap; + bool dirty = false; down_write_nested(&wnd->rw_lock, BITMAP_MUTEX_CLUSTERS); if (!wnd_is_used(wnd, lcn, len)) { - ntfs_set_state(sbi, NTFS_DIRTY_ERROR); + /* mark volume as dirty out of wnd->rw_lock */ + dirty = true; end = lcn + len; len = 0; @@ -2518,6 +2513,8 @@ out: up_write(&wnd->rw_lock); + if (dirty) + ntfs_set_state(sbi, NTFS_DIRTY_ERROR); } /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ntfs3/index.c +++ linux-riscv-6.5.0/fs/ntfs3/index.c @@ -729,6 +729,9 @@ u32 total = le32_to_cpu(hdr->total); u16 offs[128]; + if (unlikely(!cmp)) + return NULL; + fill_table: if (end > total) return NULL; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ntfs3/ntfs_fs.h +++ linux-riscv-6.5.0/fs/ntfs3/ntfs_fs.h @@ -42,9 +42,11 @@ #define MINUS_ONE_T ((size_t)(-1)) /* Biggest MFT / smallest cluster */ #define MAXIMUM_BYTES_PER_MFT 4096 +#define MAXIMUM_SHIFT_BYTES_PER_MFT 12 #define NTFS_BLOCKS_PER_MFT_RECORD (MAXIMUM_BYTES_PER_MFT / 512) #define MAXIMUM_BYTES_PER_INDEX 4096 +#define MAXIMUM_SHIFT_BYTES_PER_INDEX 12 #define NTFS_BLOCKS_PER_INODE (MAXIMUM_BYTES_PER_INDEX / 512) /* NTFS specific error code when fixup failed. */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ntfs3/record.c +++ linux-riscv-6.5.0/fs/ntfs3/record.c @@ -193,8 +193,9 @@ { const struct MFT_REC *rec = mi->mrec; u32 used = le32_to_cpu(rec->used); - u32 t32, off, asize; + u32 t32, off, asize, prev_type; u16 t16; + u64 data_size, alloc_size, tot_size; if (!attr) { u32 total = le32_to_cpu(rec->total); @@ -213,6 +214,7 @@ if (!is_rec_inuse(rec)) return NULL; + prev_type = 0; attr = Add2Ptr(rec, off); } else { /* Check if input attr inside record. */ @@ -226,11 +228,11 @@ return NULL; } - if (off + asize < off) { - /* Overflow check. */ + /* Overflow check. */ + if (off + asize < off) return NULL; - } + prev_type = le32_to_cpu(attr->type); attr = Add2Ptr(attr, asize); off += asize; } @@ -250,7 +252,11 @@ /* 0x100 is last known attribute for now. */ t32 = le32_to_cpu(attr->type); - if ((t32 & 0xf) || (t32 > 0x100)) + if (!t32 || (t32 & 0xf) || (t32 > 0x100)) + return NULL; + + /* attributes in record must be ordered by type */ + if (t32 < prev_type) return NULL; /* Check overflow and boundary. */ @@ -259,16 +265,15 @@ /* Check size of attribute. */ if (!attr->non_res) { + /* Check resident fields. */ if (asize < SIZEOF_RESIDENT) return NULL; t16 = le16_to_cpu(attr->res.data_off); - if (t16 > asize) return NULL; - t32 = le32_to_cpu(attr->res.data_size); - if (t16 + t32 > asize) + if (t16 + le32_to_cpu(attr->res.data_size) > asize) return NULL; t32 = sizeof(short) * attr->name_len; @@ -278,21 +283,52 @@ return attr; } - /* Check some nonresident fields. */ - if (attr->name_len && - le16_to_cpu(attr->name_off) + sizeof(short) * attr->name_len > - le16_to_cpu(attr->nres.run_off)) { + /* Check nonresident fields. */ + if (attr->non_res != 1) + return NULL; + + t16 = le16_to_cpu(attr->nres.run_off); + if (t16 > asize) + return NULL; + + t32 = sizeof(short) * attr->name_len; + if (t32 && le16_to_cpu(attr->name_off) + t32 > t16) + return NULL; + + /* Check start/end vcn. */ + if (le64_to_cpu(attr->nres.svcn) > le64_to_cpu(attr->nres.evcn) + 1) + return NULL; + + data_size = le64_to_cpu(attr->nres.data_size); + if (le64_to_cpu(attr->nres.valid_size) > data_size) return NULL; - } - if (attr->nres.svcn || !is_attr_ext(attr)) { + alloc_size = le64_to_cpu(attr->nres.alloc_size); + if (data_size > alloc_size) + return NULL; + + t32 = mi->sbi->cluster_mask; + if (alloc_size & t32) + return NULL; + + if (!attr->nres.svcn && is_attr_ext(attr)) { + /* First segment of sparse/compressed attribute */ + if (asize + 8 < SIZEOF_NONRESIDENT_EX) + return NULL; + + tot_size = le64_to_cpu(attr->nres.total_size); + if (tot_size & t32) + return NULL; + + if (tot_size > alloc_size) + return NULL; + } else { if (asize + 8 < SIZEOF_NONRESIDENT) return NULL; if (attr->nres.c_unit) return NULL; - } else if (asize + 8 < SIZEOF_NONRESIDENT_EX) - return NULL; + } return attr; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ntfs3/super.c +++ linux-riscv-6.5.0/fs/ntfs3/super.c @@ -453,15 +453,23 @@ * ntfs3.1 * cluster size * number of clusters + * total number of mft records + * number of used mft records ~= number of files + folders + * real state of ntfs "dirty"/"clean" + * current state of ntfs "dirty"/"clean" */ static int ntfs3_volinfo(struct seq_file *m, void *o) { struct super_block *sb = m->private; struct ntfs_sb_info *sbi = sb->s_fs_info; - seq_printf(m, "ntfs%d.%d\n%u\n%zu\n", sbi->volume.major_ver, - sbi->volume.minor_ver, sbi->cluster_size, - sbi->used.bitmap.nbits); + seq_printf(m, "ntfs%d.%d\n%u\n%zu\n\%zu\n%zu\n%s\n%s\n", + sbi->volume.major_ver, sbi->volume.minor_ver, + sbi->cluster_size, sbi->used.bitmap.nbits, + sbi->mft.bitmap.nbits, + sbi->mft.bitmap.nbits - wnd_zeroes(&sbi->mft.bitmap), + sbi->volume.real_dirty ? "dirty" : "clean", + (sbi->volume.flags & VOLUME_FLAG_DIRTY) ? "dirty" : "clean"); return 0; } @@ -490,7 +498,12 @@ struct super_block *sb = pde_data(file_inode(file)); struct ntfs_sb_info *sbi = sb->s_fs_info; ssize_t ret = count; - u8 *label = kmalloc(count, GFP_NOFS); + u8 *label; + + if (sb_rdonly(sb)) + return -EROFS; + + label = kmalloc(count, GFP_NOFS); if (!label) return -ENOMEM; @@ -838,7 +851,7 @@ struct ntfs_sb_info *sbi = sb->s_fs_info; int err; u32 mb, gb, boot_sector_size, sct_per_clst, record_size; - u64 sectors, clusters, mlcn, mlcn2; + u64 sectors, clusters, mlcn, mlcn2, dev_size0; struct NTFS_BOOT *boot; struct buffer_head *bh; struct MFT_REC *rec; @@ -847,6 +860,9 @@ u32 boot_off = 0; const char *hint = "Primary boot"; + /* Save original dev_size. Used with alternative boot. */ + dev_size0 = dev_size; + sbi->volume.blocks = dev_size >> PAGE_SHIFT; bh = ntfs_bread(sb, 0); @@ -855,6 +871,11 @@ check_boot: err = -EINVAL; + + /* Corrupted image; do not read OOB */ + if (bh->b_size - sizeof(*boot) < boot_off) + goto out; + boot = (struct NTFS_BOOT *)Add2Ptr(bh->b_data, boot_off); if (memcmp(boot->system_id, "NTFS ", sizeof("NTFS ") - 1)) { @@ -901,9 +922,17 @@ goto out; } - sbi->record_size = record_size = - boot->record_size < 0 ? 1 << (-boot->record_size) : - (u32)boot->record_size << cluster_bits; + if (boot->record_size >= 0) { + record_size = (u32)boot->record_size << cluster_bits; + } else if (-boot->record_size <= MAXIMUM_SHIFT_BYTES_PER_MFT) { + record_size = 1u << (-boot->record_size); + } else { + ntfs_err(sb, "%s: invalid record size %d.", hint, + boot->record_size); + goto out; + } + + sbi->record_size = record_size; sbi->record_bits = blksize_bits(record_size); sbi->attr_size_tr = (5 * record_size >> 4); // ~320 bytes @@ -920,9 +949,15 @@ goto out; } - sbi->index_size = boot->index_size < 0 ? - 1u << (-boot->index_size) : - (u32)boot->index_size << cluster_bits; + if (boot->index_size >= 0) { + sbi->index_size = (u32)boot->index_size << cluster_bits; + } else if (-boot->index_size <= MAXIMUM_SHIFT_BYTES_PER_INDEX) { + sbi->index_size = 1u << (-boot->index_size); + } else { + ntfs_err(sb, "%s: invalid index size %d.", hint, + boot->index_size); + goto out; + } /* Check index record size. */ if (sbi->index_size < SECTOR_SIZE || !is_power_of_2(sbi->index_size)) { @@ -1065,9 +1100,9 @@ } out: - if (err == -EINVAL && !bh->b_blocknr && dev_size > PAGE_SHIFT) { + if (err == -EINVAL && !bh->b_blocknr && dev_size0 > PAGE_SHIFT) { u32 block_size = min_t(u32, sector_size, PAGE_SIZE); - u64 lbo = dev_size - sizeof(*boot); + u64 lbo = dev_size0 - sizeof(*boot); /* * Try alternative boot (last sector) @@ -1081,6 +1116,7 @@ boot_off = lbo & (block_size - 1); hint = "Alternative boot"; + dev_size = dev_size0; /* restore original size. */ goto check_boot; } brelse(bh); @@ -1369,7 +1405,7 @@ } bytes = inode->i_size; - sbi->def_table = t = kmalloc(bytes, GFP_NOFS | __GFP_NOWARN); + sbi->def_table = t = kvmalloc(bytes, GFP_KERNEL); if (!t) { err = -ENOMEM; goto put_inode_out; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/ntfs3/xattr.c +++ linux-riscv-6.5.0/fs/ntfs3/xattr.c @@ -211,7 +211,8 @@ size = le32_to_cpu(info->size); /* Enumerate all xattrs. */ - for (ret = 0, off = 0; off < size; off += ea_size) { + ret = 0; + for (off = 0; off + sizeof(struct EA_FULL) < size; off += ea_size) { ea = Add2Ptr(ea_all, off); ea_size = unpacked_ea_size(ea); @@ -219,6 +220,10 @@ break; if (buffer) { + /* Check if we can use field ea->name */ + if (off + ea_size > size) + break; + if (ret + ea->name_len + 1 > bytes_per_buffer) { err = -ERANGE; goto out; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/overlayfs/inode.c +++ linux-riscv-6.5.0/fs/overlayfs/inode.c @@ -171,7 +171,7 @@ type = ovl_path_real(dentry, &realpath); old_cred = ovl_override_creds(dentry->d_sb); - err = vfs_getattr(&realpath, stat, request_mask, flags); + err = ovl_do_getattr(&realpath, stat, request_mask, flags); if (err) goto out; @@ -196,8 +196,8 @@ (!is_dir ? STATX_NLINK : 0); ovl_path_lower(dentry, &realpath); - err = vfs_getattr(&realpath, &lowerstat, - lowermask, flags); + err = ovl_do_getattr(&realpath, &lowerstat, lowermask, + flags); if (err) goto out; @@ -249,8 +249,8 @@ ovl_path_lowerdata(dentry, &realpath); if (realpath.dentry) { - err = vfs_getattr(&realpath, &lowerdatastat, - lowermask, flags); + err = ovl_do_getattr(&realpath, &lowerdatastat, + lowermask, flags); if (err) goto out; } else { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/overlayfs/overlayfs.h +++ linux-riscv-6.5.0/fs/overlayfs/overlayfs.h @@ -360,6 +360,14 @@ return ((OPEN_FMODE(flags) & FMODE_WRITE) || (flags & O_TRUNC)); } +static inline int ovl_do_getattr(const struct path *path, struct kstat *stat, + u32 request_mask, unsigned int flags) +{ + if (flags & AT_GETATTR_NOSEC) + return vfs_getattr_nosec(path, stat, request_mask, flags); + return vfs_getattr(path, stat, request_mask, flags); +} + /* util.c */ int ovl_want_write(struct dentry *dentry); void ovl_drop_write(struct dentry *dentry); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/proc/proc_sysctl.c +++ linux-riscv-6.5.0/fs/proc/proc_sysctl.c @@ -1574,7 +1574,6 @@ {"hung_task_panic", "kernel.hung_task_panic" }, {"numa_zonelist_order", "vm.numa_zonelist_order" }, {"softlockup_all_cpu_backtrace", "kernel.softlockup_all_cpu_backtrace" }, - {"softlockup_panic", "kernel.softlockup_panic" }, { } }; @@ -1590,6 +1589,13 @@ return NULL; } +bool sysctl_is_alias(char *param) +{ + const char *alias = sysctl_find_alias(param); + + return alias != NULL; +} + /* Set sysctl value passed on kernel command line. */ static int process_sysctl_arg(char *param, char *val, const char *unused, void *arg) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/pstore/platform.c +++ linux-riscv-6.5.0/fs/pstore/platform.c @@ -573,6 +573,8 @@ */ int pstore_register(struct pstore_info *psi) { + char *new_backend; + if (backend && strcmp(backend, psi->name)) { pr_warn("backend '%s' already in use: ignoring '%s'\n", backend, psi->name); @@ -593,11 +595,16 @@ return -EINVAL; } + new_backend = kstrdup(psi->name, GFP_KERNEL); + if (!new_backend) + return -ENOMEM; + mutex_lock(&psinfo_lock); if (psinfo) { pr_warn("backend '%s' already loaded: ignoring '%s'\n", psinfo->name, psi->name); mutex_unlock(&psinfo_lock); + kfree(new_backend); return -EBUSY; } @@ -630,7 +637,7 @@ * Update the module parameter backend, so it is visible * through /sys/module/pstore/parameters/backend */ - backend = kstrdup(psi->name, GFP_KERNEL); + backend = new_backend; pr_info("Registered %s as persistent store backend\n", psi->name); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/smb/client/cached_dir.h +++ linux-riscv-6.5.0/fs/smb/client/cached_dir.h @@ -49,7 +49,7 @@ struct cached_dirents dirents; }; -#define MAX_CACHED_FIDS 16 +/* default MAX_CACHED_FIDS is 16 */ struct cached_fids { /* Must be held when: * - accessing the cfids->entries list @@ -57,7 +57,7 @@ spinlock_t cfid_list_lock; int num_entries; struct list_head entries; - struct task_struct *laundromat; + struct delayed_work laundromat_work; }; extern struct cached_fids *init_cached_dirs(void); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/smb/client/cifs_debug.c +++ linux-riscv-6.5.0/fs/smb/client/cifs_debug.c @@ -279,6 +279,8 @@ struct cifs_ses *ses; struct cifs_tcon *tcon; struct cifs_server_iface *iface; + size_t iface_weight = 0, iface_min_speed = 0; + struct cifs_server_iface *last_iface = NULL; int c, i, j; seq_puts(m, @@ -452,6 +454,11 @@ seq_printf(m, "\n\n\tSessions: "); i = 0; list_for_each_entry(ses, &server->smb_ses_list, smb_ses_list) { + spin_lock(&ses->ses_lock); + if (ses->ses_status == SES_EXITING) { + spin_unlock(&ses->ses_lock); + continue; + } i++; if ((ses->serverDomain == NULL) || (ses->serverOS == NULL) || @@ -472,6 +479,7 @@ ses->ses_count, ses->serverOS, ses->serverNOS, ses->capabilities, ses->ses_status); } + spin_unlock(&ses->ses_lock); seq_printf(m, "\n\tSecurity type: %s ", get_security_type_str(server->ops->select_sectype(server, ses->sectype))); @@ -536,11 +544,25 @@ "\tLast updated: %lu seconds ago", ses->iface_count, (jiffies - ses->iface_last_update) / HZ); + + last_iface = list_last_entry(&ses->iface_list, + struct cifs_server_iface, + iface_head); + iface_min_speed = last_iface->speed; + j = 0; list_for_each_entry(iface, &ses->iface_list, iface_head) { seq_printf(m, "\n\t%d)", ++j); cifs_dump_iface(m, iface); + + iface_weight = iface->speed / iface_min_speed; + seq_printf(m, "\t\tWeight (cur,total): (%zu,%zu)" + "\n\t\tAllocated channels: %u\n", + iface->weight_fulfilled, + iface_weight, + iface->num_channels); + if (is_ses_using_iface(ses, iface)) seq_puts(m, "\t\t[CONNECTED]\n"); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/smb/client/cifs_ioctl.h +++ linux-riscv-6.5.0/fs/smb/client/cifs_ioctl.h @@ -26,6 +26,11 @@ __u64 cifs_posix_caps; } __packed; +struct smb_mnt_tcon_info { + __u32 tid; + __u64 session_id; +} __packed; + struct smb_snapshot_array { __u32 number_of_snapshots; __u32 number_of_snapshots_returned; @@ -108,6 +113,7 @@ #define CIFS_IOC_NOTIFY _IOW(CIFS_IOCTL_MAGIC, 9, struct smb3_notify) #define CIFS_DUMP_FULL_KEY _IOWR(CIFS_IOCTL_MAGIC, 10, struct smb3_full_key_debug_info) #define CIFS_IOC_NOTIFY_INFO _IOWR(CIFS_IOCTL_MAGIC, 11, struct smb3_notify_info) +#define CIFS_IOC_GET_TCON_INFO _IOR(CIFS_IOCTL_MAGIC, 12, struct smb_mnt_tcon_info) #define CIFS_IOC_SHUTDOWN _IOR('X', 125, __u32) /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/smb/client/cifs_spnego.c +++ linux-riscv-6.5.0/fs/smb/client/cifs_spnego.c @@ -64,8 +64,8 @@ * strlen(";sec=ntlmsspi") */ #define MAX_MECH_STR_LEN 13 -/* strlen of "host=" */ -#define HOST_KEY_LEN 5 +/* strlen of ";host=" */ +#define HOST_KEY_LEN 6 /* strlen of ";ip4=" or ";ip6=" */ #define IP_KEY_LEN 5 only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/smb/client/cifsfs.c +++ linux-riscv-6.5.0/fs/smb/client/cifsfs.c @@ -117,6 +117,10 @@ MODULE_PARM_DESC(cifs_max_pending, "Simultaneous requests to server for " "CIFS/SMB1 dialect (N/A for SMB3) " "Default: 32767 Range: 2 to 32767."); +unsigned int dir_cache_timeout = 30; +module_param(dir_cache_timeout, uint, 0644); +MODULE_PARM_DESC(dir_cache_timeout, "Number of seconds to cache directory contents for which we have a lease. Default: 30 " + "Range: 1 to 65000 seconds, 0 to disable caching dir contents"); #ifdef CONFIG_CIFS_STATS2 unsigned int slow_rsp_threshold = 1; module_param(slow_rsp_threshold, uint, 0644); @@ -695,6 +699,8 @@ seq_printf(s, ",snapshot=%llu", tcon->snapshot_time); if (tcon->handle_timeout) seq_printf(s, ",handletimeout=%u", tcon->handle_timeout); + if (tcon->max_cached_dirs != MAX_CACHED_FIDS) + seq_printf(s, ",max_cached_dirs=%u", tcon->max_cached_dirs); /* * Display file and directory attribute timeout in seconds. @@ -1185,36 +1191,108 @@ const struct inode_operations cifs_symlink_inode_ops = { .get_link = cifs_get_link, + .setattr = cifs_setattr, .permission = cifs_permission, .listxattr = cifs_listxattr, }; +/* + * Advance the EOF marker to after the source range. + */ +static int cifs_precopy_set_eof(struct inode *src_inode, struct cifsInodeInfo *src_cifsi, + struct cifs_tcon *src_tcon, + unsigned int xid, loff_t src_end) +{ + struct cifsFileInfo *writeable_srcfile; + int rc = -EINVAL; + + writeable_srcfile = find_writable_file(src_cifsi, FIND_WR_FSUID_ONLY); + if (writeable_srcfile) { + if (src_tcon->ses->server->ops->set_file_size) + rc = src_tcon->ses->server->ops->set_file_size( + xid, src_tcon, writeable_srcfile, + src_inode->i_size, true /* no need to set sparse */); + else + rc = -ENOSYS; + cifsFileInfo_put(writeable_srcfile); + cifs_dbg(FYI, "SetFSize for copychunk rc = %d\n", rc); + } + + if (rc < 0) + goto set_failed; + + netfs_resize_file(&src_cifsi->netfs, src_end); + fscache_resize_cookie(cifs_inode_cookie(src_inode), src_end); + return 0; + +set_failed: + return filemap_write_and_wait(src_inode->i_mapping); +} + +/* + * Flush out either the folio that overlaps the beginning of a range in which + * pos resides or the folio that overlaps the end of a range unless that folio + * is entirely within the range we're going to invalidate. We extend the flush + * bounds to encompass the folio. + */ +static int cifs_flush_folio(struct inode *inode, loff_t pos, loff_t *_fstart, loff_t *_fend, + bool first) +{ + struct folio *folio; + unsigned long long fpos, fend; + pgoff_t index = pos / PAGE_SIZE; + size_t size; + int rc = 0; + + folio = filemap_get_folio(inode->i_mapping, index); + if (IS_ERR(folio)) + return 0; + + size = folio_size(folio); + fpos = folio_pos(folio); + fend = fpos + size - 1; + *_fstart = min_t(unsigned long long, *_fstart, fpos); + *_fend = max_t(unsigned long long, *_fend, fend); + if ((first && pos == fpos) || (!first && pos == fend)) + goto out; + + rc = filemap_write_and_wait_range(inode->i_mapping, fpos, fend); +out: + folio_put(folio); + return rc; +} + static loff_t cifs_remap_file_range(struct file *src_file, loff_t off, struct file *dst_file, loff_t destoff, loff_t len, unsigned int remap_flags) { struct inode *src_inode = file_inode(src_file); struct inode *target_inode = file_inode(dst_file); + struct cifsInodeInfo *src_cifsi = CIFS_I(src_inode); + struct cifsInodeInfo *target_cifsi = CIFS_I(target_inode); struct cifsFileInfo *smb_file_src = src_file->private_data; - struct cifsFileInfo *smb_file_target; - struct cifs_tcon *target_tcon; + struct cifsFileInfo *smb_file_target = dst_file->private_data; + struct cifs_tcon *target_tcon, *src_tcon; + unsigned long long destend, fstart, fend, new_size; unsigned int xid; int rc; - if (remap_flags & ~(REMAP_FILE_DEDUP | REMAP_FILE_ADVISORY)) + if (remap_flags & REMAP_FILE_DEDUP) + return -EOPNOTSUPP; + if (remap_flags & ~REMAP_FILE_ADVISORY) return -EINVAL; cifs_dbg(FYI, "clone range\n"); xid = get_xid(); - if (!src_file->private_data || !dst_file->private_data) { + if (!smb_file_src || !smb_file_target) { rc = -EBADF; cifs_dbg(VFS, "missing cifsFileInfo on copy range src file\n"); goto out; } - smb_file_target = dst_file->private_data; + src_tcon = tlink_tcon(smb_file_src->tlink); target_tcon = tlink_tcon(smb_file_target->tlink); /* @@ -1227,20 +1305,63 @@ if (len == 0) len = src_inode->i_size - off; - cifs_dbg(FYI, "about to flush pages\n"); - /* should we flush first and last page first */ - truncate_inode_pages_range(&target_inode->i_data, destoff, - PAGE_ALIGN(destoff + len)-1); + cifs_dbg(FYI, "clone range\n"); + + /* Flush the source buffer */ + rc = filemap_write_and_wait_range(src_inode->i_mapping, off, + off + len - 1); + if (rc) + goto unlock; - if (target_tcon->ses->server->ops->duplicate_extents) + /* The server-side copy will fail if the source crosses the EOF marker. + * Advance the EOF marker after the flush above to the end of the range + * if it's short of that. + */ + if (src_cifsi->netfs.remote_i_size < off + len) { + rc = cifs_precopy_set_eof(src_inode, src_cifsi, src_tcon, xid, off + len); + if (rc < 0) + goto unlock; + } + + new_size = destoff + len; + destend = destoff + len - 1; + + /* Flush the folios at either end of the destination range to prevent + * accidental loss of dirty data outside of the range. + */ + fstart = destoff; + fend = destend; + + rc = cifs_flush_folio(target_inode, destoff, &fstart, &fend, true); + if (rc) + goto unlock; + rc = cifs_flush_folio(target_inode, destend, &fstart, &fend, false); + if (rc) + goto unlock; + + /* Discard all the folios that overlap the destination region. */ + cifs_dbg(FYI, "about to discard pages %llx-%llx\n", fstart, fend); + truncate_inode_pages_range(&target_inode->i_data, fstart, fend); + + fscache_invalidate(cifs_inode_cookie(target_inode), NULL, + i_size_read(target_inode), 0); + + rc = -EOPNOTSUPP; + if (target_tcon->ses->server->ops->duplicate_extents) { rc = target_tcon->ses->server->ops->duplicate_extents(xid, smb_file_src, smb_file_target, off, len, destoff); - else - rc = -EOPNOTSUPP; + if (rc == 0 && new_size > i_size_read(target_inode)) { + truncate_setsize(target_inode, new_size); + netfs_resize_file(&target_cifsi->netfs, new_size); + fscache_resize_cookie(cifs_inode_cookie(target_inode), + new_size); + } + } /* force revalidate of size and timestamps of target file now that target is updated on the server */ CIFS_I(target_inode)->time = 0; +unlock: /* although unlocking in the reverse order from locking is not strictly necessary here it is a little cleaner to be consistent */ unlock_two_nondirectories(src_inode, target_inode); @@ -1256,10 +1377,12 @@ { struct inode *src_inode = file_inode(src_file); struct inode *target_inode = file_inode(dst_file); + struct cifsInodeInfo *src_cifsi = CIFS_I(src_inode); struct cifsFileInfo *smb_file_src; struct cifsFileInfo *smb_file_target; struct cifs_tcon *src_tcon; struct cifs_tcon *target_tcon; + unsigned long long destend, fstart, fend; ssize_t rc; cifs_dbg(FYI, "copychunk range\n"); @@ -1299,13 +1422,41 @@ if (rc) goto unlock; - /* should we flush first and last page first */ - truncate_inode_pages(&target_inode->i_data, 0); + /* The server-side copy will fail if the source crosses the EOF marker. + * Advance the EOF marker after the flush above to the end of the range + * if it's short of that. + */ + if (src_cifsi->server_eof < off + len) { + rc = cifs_precopy_set_eof(src_inode, src_cifsi, src_tcon, xid, off + len); + if (rc < 0) + goto unlock; + } + + destend = destoff + len - 1; + + /* Flush the folios at either end of the destination range to prevent + * accidental loss of dirty data outside of the range. + */ + fstart = destoff; + fend = destend; + + rc = cifs_flush_folio(target_inode, destoff, &fstart, &fend, true); + if (rc) + goto unlock; + rc = cifs_flush_folio(target_inode, destend, &fstart, &fend, false); + if (rc) + goto unlock; + + /* Discard all the folios that overlap the destination region. */ + truncate_inode_pages_range(&target_inode->i_data, fstart, fend); rc = file_modified(dst_file); - if (!rc) + if (!rc) { rc = target_tcon->ses->server->ops->copychunk_range(xid, smb_file_src, smb_file_target, off, len, destoff); + if (rc > 0 && destoff + rc > i_size_read(target_inode)) + truncate_setsize(target_inode, destoff + rc); + } file_accessed(src_file); @@ -1679,6 +1830,12 @@ CIFS_MAX_REQ); } + /* Limit max to about 18 hours, and setting to zero disables directory entry caching */ + if (dir_cache_timeout > 65000) { + dir_cache_timeout = 65000; + cifs_dbg(VFS, "dir_cache_timeout set to max of 65000 seconds\n"); + } + cifsiod_wq = alloc_workqueue("cifsiod", WQ_FREEZABLE|WQ_MEM_RECLAIM, 0); if (!cifsiod_wq) { rc = -ENOMEM; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/smb/client/cifspdu.h +++ linux-riscv-6.5.0/fs/smb/client/cifspdu.h @@ -2570,7 +2570,7 @@ struct win_dev { - unsigned char type[8]; /* IntxCHR or IntxBLK */ + unsigned char type[8]; /* IntxCHR or IntxBLK or LnxFIFO*/ __le64 major; __le64 minor; } __attribute__((packed)); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/smb/client/cifsproto.h +++ linux-riscv-6.5.0/fs/smb/client/cifsproto.h @@ -81,7 +81,7 @@ extern char *build_wildcard_path_from_dentry(struct dentry *direntry); char *cifs_build_devname(char *nodename, const char *prepath); extern void delete_mid(struct mid_q_entry *mid); -extern void release_mid(struct mid_q_entry *mid); +void __release_mid(struct kref *refcount); extern void cifs_wake_up_task(struct mid_q_entry *mid); extern int cifs_handle_standard(struct TCP_Server_Info *server, struct mid_q_entry *mid); @@ -513,7 +513,7 @@ extern struct cifs_ses *sesInfoAlloc(void); extern void sesInfoFree(struct cifs_ses *); -extern struct cifs_tcon *tconInfoAlloc(void); +extern struct cifs_tcon *tcon_info_alloc(bool dir_leases_enabled); extern void tconInfoFree(struct cifs_tcon *); extern int cifs_sign_rqst(struct smb_rqst *rqst, struct TCP_Server_Info *server, @@ -741,4 +741,9 @@ return true; } +static inline void release_mid(struct mid_q_entry *mid) +{ + kref_put(&mid->refcount, __release_mid); +} + #endif /* _CIFSPROTO_H */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/smb/client/fs_context.h +++ linux-riscv-6.5.0/fs/smb/client/fs_context.h @@ -128,6 +128,7 @@ Opt_closetimeo, Opt_echo_interval, Opt_max_credits, + Opt_max_cached_dirs, Opt_snapshot, Opt_max_channels, Opt_handletimeout, @@ -261,6 +262,7 @@ __u32 handle_timeout; /* persistent and durable handle timeout in ms */ unsigned int max_credits; /* smb3 max_credits 10 < credits < 60000 */ unsigned int max_channels; + unsigned int max_cached_dirs; __u16 compression; /* compression algorithm 0xFFFF default 0=disabled */ bool rootfs:1; /* if it's a SMB root file system */ bool witness:1; /* use witness protocol */ @@ -287,7 +289,7 @@ */ #define SMB3_MAX_DCLOSETIMEO (1 << 30) #define SMB3_DEF_DCLOSETIMEO (1 * HZ) /* even 1 sec enough to help eg open/write/close/open/read */ - +#define MAX_CACHED_FIDS 16 extern char *cifs_sanitize_prepath(char *prepath, gfp_t gfp); #endif only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/smb/client/ioctl.c +++ linux-riscv-6.5.0/fs/smb/client/ioctl.c @@ -117,6 +117,20 @@ return rc; } +static long smb_mnt_get_tcon_info(struct cifs_tcon *tcon, void __user *arg) +{ + int rc = 0; + struct smb_mnt_tcon_info tcon_inf; + + tcon_inf.tid = tcon->tid; + tcon_inf.session_id = tcon->ses->Suid; + + if (copy_to_user(arg, &tcon_inf, sizeof(struct smb_mnt_tcon_info))) + rc = -EFAULT; + + return rc; +} + static long smb_mnt_get_fsinfo(unsigned int xid, struct cifs_tcon *tcon, void __user *arg) { @@ -414,6 +428,17 @@ tcon = tlink_tcon(pSMBFile->tlink); rc = smb_mnt_get_fsinfo(xid, tcon, (void __user *)arg); break; + case CIFS_IOC_GET_TCON_INFO: + cifs_sb = CIFS_SB(inode->i_sb); + tlink = cifs_sb_tlink(cifs_sb); + if (IS_ERR(tlink)) { + rc = PTR_ERR(tlink); + break; + } + tcon = tlink_tcon(tlink); + rc = smb_mnt_get_tcon_info(tcon, (void __user *)arg); + cifs_put_tlink(tlink); + break; case CIFS_ENUMERATE_SNAPSHOTS: if (pSMBFile == NULL) break; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/smb/client/sess.c +++ linux-riscv-6.5.0/fs/smb/client/sess.c @@ -164,7 +164,9 @@ int left; int rc = 0; int tries = 0; + size_t iface_weight = 0, iface_min_speed = 0; struct cifs_server_iface *iface = NULL, *niface = NULL; + struct cifs_server_iface *last_iface = NULL; spin_lock(&ses->chan_lock); @@ -186,28 +188,17 @@ } if (!(server->capabilities & SMB2_GLOBAL_CAP_MULTI_CHANNEL)) { - ses->chan_max = 1; spin_unlock(&ses->chan_lock); cifs_server_dbg(VFS, "no multichannel support\n"); return 0; } spin_unlock(&ses->chan_lock); - /* - * Keep connecting to same, fastest, iface for all channels as - * long as its RSS. Try next fastest one if not RSS or channel - * creation fails. - */ - spin_lock(&ses->iface_lock); - iface = list_first_entry(&ses->iface_list, struct cifs_server_iface, - iface_head); - spin_unlock(&ses->iface_lock); - while (left > 0) { tries++; if (tries > 3*ses->chan_max) { - cifs_dbg(FYI, "too many channel open attempts (%d channels left to open)\n", + cifs_dbg(VFS, "too many channel open attempts (%d channels left to open)\n", left); break; } @@ -215,17 +206,35 @@ spin_lock(&ses->iface_lock); if (!ses->iface_count) { spin_unlock(&ses->iface_lock); + cifs_dbg(VFS, "server %s does not advertise interfaces\n", + ses->server->hostname); break; } + if (!iface) + iface = list_first_entry(&ses->iface_list, struct cifs_server_iface, + iface_head); + last_iface = list_last_entry(&ses->iface_list, struct cifs_server_iface, + iface_head); + iface_min_speed = last_iface->speed; + list_for_each_entry_safe_from(iface, niface, &ses->iface_list, iface_head) { + /* do not mix rdma and non-rdma interfaces */ + if (iface->rdma_capable != ses->server->rdma) + continue; + /* skip ifaces that are unusable */ if (!iface->is_active || (is_ses_using_iface(ses, iface) && - !iface->rss_capable)) { + !iface->rss_capable)) + continue; + + /* check if we already allocated enough channels */ + iface_weight = iface->speed / iface_min_speed; + + if (iface->weight_fulfilled >= iface_weight) continue; - } /* take ref before unlock */ kref_get(&iface->refcount); @@ -242,10 +251,21 @@ continue; } - cifs_dbg(FYI, "successfully opened new channel on iface:%pIS\n", + iface->num_channels++; + iface->weight_fulfilled++; + cifs_dbg(VFS, "successfully opened new channel on iface:%pIS\n", &iface->sockaddr); break; } + + /* reached end of list. reset weight_fulfilled and start over */ + if (list_entry_is_head(iface, &ses->iface_list, iface_head)) { + list_for_each_entry(iface, &ses->iface_list, iface_head) + iface->weight_fulfilled = 0; + spin_unlock(&ses->iface_lock); + iface = NULL; + continue; + } spin_unlock(&ses->iface_lock); left--; @@ -264,8 +284,11 @@ cifs_chan_update_iface(struct cifs_ses *ses, struct TCP_Server_Info *server) { unsigned int chan_index; + size_t iface_weight = 0, iface_min_speed = 0; struct cifs_server_iface *iface = NULL; struct cifs_server_iface *old_iface = NULL; + struct cifs_server_iface *last_iface = NULL; + struct sockaddr_storage ss; int rc = 0; spin_lock(&ses->chan_lock); @@ -284,14 +307,49 @@ } spin_unlock(&ses->chan_lock); + spin_lock(&server->srv_lock); + ss = server->dstaddr; + spin_unlock(&server->srv_lock); + spin_lock(&ses->iface_lock); + if (!ses->iface_count) { + spin_unlock(&ses->iface_lock); + cifs_dbg(VFS, "server %s does not advertise interfaces\n", ses->server->hostname); + return 0; + } + + last_iface = list_last_entry(&ses->iface_list, struct cifs_server_iface, + iface_head); + iface_min_speed = last_iface->speed; + /* then look for a new one */ list_for_each_entry(iface, &ses->iface_list, iface_head) { + if (!chan_index) { + /* if we're trying to get the updated iface for primary channel */ + if (!cifs_match_ipaddr((struct sockaddr *) &ss, + (struct sockaddr *) &iface->sockaddr)) + continue; + + kref_get(&iface->refcount); + break; + } + + /* do not mix rdma and non-rdma interfaces */ + if (iface->rdma_capable != server->rdma) + continue; + if (!iface->is_active || (is_ses_using_iface(ses, iface) && !iface->rss_capable)) { continue; } + + /* check if we already allocated enough channels */ + iface_weight = iface->speed / iface_min_speed; + + if (iface->weight_fulfilled >= iface_weight) + continue; + kref_get(&iface->refcount); break; } @@ -302,16 +360,41 @@ cifs_dbg(FYI, "unable to find a suitable iface\n"); } + if (!chan_index && !iface) { + cifs_dbg(FYI, "unable to get the interface matching: %pIS\n", + &ss); + spin_unlock(&ses->iface_lock); + return 0; + } + /* now drop the ref to the current iface */ if (old_iface && iface) { cifs_dbg(FYI, "replacing iface: %pIS with %pIS\n", &old_iface->sockaddr, &iface->sockaddr); + + old_iface->num_channels--; + if (old_iface->weight_fulfilled) + old_iface->weight_fulfilled--; + iface->num_channels++; + iface->weight_fulfilled++; + kref_put(&old_iface->refcount, release_iface); } else if (old_iface) { cifs_dbg(FYI, "releasing ref to iface: %pIS\n", &old_iface->sockaddr); + + old_iface->num_channels--; + if (old_iface->weight_fulfilled) + old_iface->weight_fulfilled--; + kref_put(&old_iface->refcount, release_iface); + } else if (!chan_index) { + /* special case: update interface for primary channel */ + cifs_dbg(FYI, "referencing primary channel iface: %pIS\n", + &iface->sockaddr); + iface->num_channels++; + iface->weight_fulfilled++; } else { WARN_ON(!iface); cifs_dbg(FYI, "adding new iface: %pIS\n", &iface->sockaddr); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/smb/client/smb2misc.c +++ linux-riscv-6.5.0/fs/smb/client/smb2misc.c @@ -787,7 +787,7 @@ { struct close_cancelled_open *cancelled; - cancelled = kzalloc(sizeof(*cancelled), GFP_ATOMIC); + cancelled = kzalloc(sizeof(*cancelled), GFP_KERNEL); if (!cancelled) return -ENOMEM; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/smb/client/smb2transport.c +++ linux-riscv-6.5.0/fs/smb/client/smb2transport.c @@ -452,6 +452,8 @@ ptriplet->encryption.context, ses->smb3encryptionkey, SMB3_ENC_DEC_KEY_SIZE); + if (rc) + return rc; rc = generate_key(ses, ptriplet->decryption.label, ptriplet->decryption.context, ses->smb3decryptionkey, @@ -460,9 +462,6 @@ return rc; } - if (rc) - return rc; - #ifdef CONFIG_CIFS_DEBUG_DUMP_KEYS cifs_dbg(VFS, "%s: dumping generated AES session keys\n", __func__); /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/smb/client/xattr.c +++ linux-riscv-6.5.0/fs/smb/client/xattr.c @@ -150,10 +150,13 @@ if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_NO_XATTR) goto out; - if (pTcon->ses->server->ops->set_EA) + if (pTcon->ses->server->ops->set_EA) { rc = pTcon->ses->server->ops->set_EA(xid, pTcon, full_path, name, value, (__u16)size, cifs_sb->local_nls, cifs_sb); + if (rc == 0) + inode_set_ctime_current(inode); + } break; case XATTR_CIFS_ACL: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/smb/server/smb_common.c +++ linux-riscv-6.5.0/fs/smb/server/smb_common.c @@ -372,11 +372,22 @@ return 0; } +/** + * set_smb1_rsp_status() - set error type in smb response header + * @work: smb work containing smb response header + * @err: error code to set in response + */ +static void set_smb1_rsp_status(struct ksmbd_work *work, __le32 err) +{ + work->send_no_response = 1; +} + static struct smb_version_ops smb1_server_ops = { .get_cmd_val = get_smb1_cmd_val, .init_rsp_hdr = init_smb1_rsp_hdr, .allocate_rsp_buf = smb1_allocate_rsp_buf, .check_user_session = smb1_check_user_session, + .set_rsp_status = set_smb1_rsp_status, }; static int smb1_negotiate(struct ksmbd_work *work) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/smb/server/smbacl.c +++ linux-riscv-6.5.0/fs/smb/server/smbacl.c @@ -1107,6 +1107,7 @@ struct smb_acl *pdacl; struct smb_sid *powner_sid = NULL, *pgroup_sid = NULL; int powner_sid_size = 0, pgroup_sid_size = 0, pntsd_size; + int pntsd_alloc_size; if (parent_pntsd->osidoffset) { powner_sid = (struct smb_sid *)((char *)parent_pntsd + @@ -1119,9 +1120,10 @@ pgroup_sid_size = 1 + 1 + 6 + (pgroup_sid->num_subauth * 4); } - pntsd = kzalloc(sizeof(struct smb_ntsd) + powner_sid_size + - pgroup_sid_size + sizeof(struct smb_acl) + - nt_size, GFP_KERNEL); + pntsd_alloc_size = sizeof(struct smb_ntsd) + powner_sid_size + + pgroup_sid_size + sizeof(struct smb_acl) + nt_size; + + pntsd = kzalloc(pntsd_alloc_size, GFP_KERNEL); if (!pntsd) { rc = -ENOMEM; goto free_aces_base; @@ -1136,6 +1138,27 @@ pntsd->gsidoffset = parent_pntsd->gsidoffset; pntsd->dacloffset = parent_pntsd->dacloffset; + if ((u64)le32_to_cpu(pntsd->osidoffset) + powner_sid_size > + pntsd_alloc_size) { + rc = -EINVAL; + kfree(pntsd); + goto free_aces_base; + } + + if ((u64)le32_to_cpu(pntsd->gsidoffset) + pgroup_sid_size > + pntsd_alloc_size) { + rc = -EINVAL; + kfree(pntsd); + goto free_aces_base; + } + + if ((u64)le32_to_cpu(pntsd->dacloffset) + sizeof(struct smb_acl) + nt_size > + pntsd_alloc_size) { + rc = -EINVAL; + kfree(pntsd); + goto free_aces_base; + } + if (pntsd->osidoffset) { struct smb_sid *owner_sid = (struct smb_sid *)((char *)pntsd + le32_to_cpu(pntsd->osidoffset)); @@ -1162,7 +1185,7 @@ pntsd_size += sizeof(struct smb_acl) + nt_size; } - ksmbd_vfs_set_sd_xattr(conn, idmap, path, pntsd, pntsd_size); + ksmbd_vfs_set_sd_xattr(conn, idmap, path, pntsd, pntsd_size, false); kfree(pntsd); } @@ -1354,7 +1377,7 @@ int set_info_sec(struct ksmbd_conn *conn, struct ksmbd_tree_connect *tcon, const struct path *path, struct smb_ntsd *pntsd, int ntsd_len, - bool type_check) + bool type_check, bool get_write) { int rc; struct smb_fattr fattr = {{0}}; @@ -1414,7 +1437,8 @@ if (test_share_config_flag(tcon->share_conf, KSMBD_SHARE_FLAG_ACL_XATTR)) { /* Update WinACL in xattr */ ksmbd_vfs_remove_sd_xattrs(idmap, path); - ksmbd_vfs_set_sd_xattr(conn, idmap, path, pntsd, ntsd_len); + ksmbd_vfs_set_sd_xattr(conn, idmap, path, pntsd, ntsd_len, + get_write); } out: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/smb/server/smbacl.h +++ linux-riscv-6.5.0/fs/smb/server/smbacl.h @@ -207,7 +207,7 @@ __le32 *pdaccess, int uid); int set_info_sec(struct ksmbd_conn *conn, struct ksmbd_tree_connect *tcon, const struct path *path, struct smb_ntsd *pntsd, int ntsd_len, - bool type_check); + bool type_check, bool get_write); void id_to_sid(unsigned int cid, uint sidtype, struct smb_sid *ssid); void ksmbd_init_domain(u32 *sub_auth); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/smb/server/vfs.c +++ linux-riscv-6.5.0/fs/smb/server/vfs.c @@ -97,6 +97,13 @@ return -ENOENT; } + err = mnt_want_write(parent_path->mnt); + if (err) { + path_put(parent_path); + putname(filename); + return -ENOENT; + } + inode_lock_nested(parent_path->dentry->d_inode, I_MUTEX_PARENT); d = lookup_one_qstr_excl(&last, parent_path->dentry, 0); if (IS_ERR(d)) @@ -123,6 +130,7 @@ err_out: inode_unlock(d_inode(parent_path->dentry)); + mnt_drop_write(parent_path->mnt); path_put(parent_path); putname(filename); return -ENOENT; @@ -173,10 +181,6 @@ return err; } - err = mnt_want_write(path.mnt); - if (err) - goto out_err; - mode |= S_IFREG; err = vfs_create(mnt_idmap(path.mnt), d_inode(path.dentry), dentry, mode, true); @@ -186,9 +190,7 @@ } else { pr_err("File(%s): creation failed (err:%d)\n", name, err); } - mnt_drop_write(path.mnt); -out_err: done_path_create(&path, dentry); return err; } @@ -219,10 +221,6 @@ return err; } - err = mnt_want_write(path.mnt); - if (err) - goto out_err2; - idmap = mnt_idmap(path.mnt); mode |= S_IFDIR; err = vfs_mkdir(idmap, d_inode(path.dentry), dentry, mode); @@ -233,21 +231,19 @@ dentry->d_name.len); if (IS_ERR(d)) { err = PTR_ERR(d); - goto out_err1; + goto out_err; } if (unlikely(d_is_negative(d))) { dput(d); err = -ENOENT; - goto out_err1; + goto out_err; } ksmbd_vfs_inherit_owner(work, d_inode(path.dentry), d_inode(d)); dput(d); } -out_err1: - mnt_drop_write(path.mnt); -out_err2: +out_err: done_path_create(&path, dentry); if (err) pr_err("mkdir(%s): creation failed (err:%d)\n", name, err); @@ -463,7 +459,8 @@ fp->stream.name, (void *)stream_buf, size, - 0); + 0, + true); if (err < 0) goto out; @@ -605,10 +602,6 @@ goto out_err; } - err = mnt_want_write(path->mnt); - if (err) - goto out_err; - idmap = mnt_idmap(path->mnt); if (S_ISDIR(d_inode(path->dentry)->i_mode)) { err = vfs_rmdir(idmap, d_inode(parent), path->dentry); @@ -619,7 +612,6 @@ if (err) ksmbd_debug(VFS, "unlink failed, err %d\n", err); } - mnt_drop_write(path->mnt); out_err: ksmbd_revert_fsids(work); @@ -665,16 +657,11 @@ goto out3; } - err = mnt_want_write(newpath.mnt); - if (err) - goto out3; - err = vfs_link(oldpath.dentry, mnt_idmap(newpath.mnt), d_inode(newpath.dentry), dentry, NULL); if (err) ksmbd_debug(VFS, "vfs_link failed err %d\n", err); - mnt_drop_write(newpath.mnt); out3: done_path_create(&newpath, dentry); @@ -924,18 +911,22 @@ * @attr_value: xattr value to set * @attr_size: size of xattr value * @flags: destination buffer length + * @get_write: get write access to a mount * * Return: 0 on success, otherwise error */ int ksmbd_vfs_setxattr(struct mnt_idmap *idmap, const struct path *path, const char *attr_name, - void *attr_value, size_t attr_size, int flags) + void *attr_value, size_t attr_size, int flags, + bool get_write) { int err; - err = mnt_want_write(path->mnt); - if (err) - return err; + if (get_write == true) { + err = mnt_want_write(path->mnt); + if (err) + return err; + } err = vfs_setxattr(idmap, path->dentry, @@ -945,7 +936,8 @@ flags); if (err) ksmbd_debug(VFS, "setxattr failed, err %d\n", err); - mnt_drop_write(path->mnt); + if (get_write == true) + mnt_drop_write(path->mnt); return err; } @@ -1268,6 +1260,13 @@ } if (!err) { + err = mnt_want_write(parent_path->mnt); + if (err) { + path_put(path); + path_put(parent_path); + return err; + } + err = ksmbd_vfs_lock_parent(parent_path->dentry, path->dentry); if (err) { path_put(path); @@ -1277,6 +1276,14 @@ return err; } +void ksmbd_vfs_kern_path_unlock(struct path *parent_path, struct path *path) +{ + inode_unlock(d_inode(parent_path->dentry)); + mnt_drop_write(parent_path->mnt); + path_put(path); + path_put(parent_path); +} + struct dentry *ksmbd_vfs_kern_path_create(struct ksmbd_work *work, const char *name, unsigned int flags, @@ -1431,7 +1438,8 @@ int ksmbd_vfs_set_sd_xattr(struct ksmbd_conn *conn, struct mnt_idmap *idmap, const struct path *path, - struct smb_ntsd *pntsd, int len) + struct smb_ntsd *pntsd, int len, + bool get_write) { int rc; struct ndr sd_ndr = {0}, acl_ndr = {0}; @@ -1491,7 +1499,7 @@ rc = ksmbd_vfs_setxattr(idmap, path, XATTR_NAME_SD, sd_ndr.data, - sd_ndr.offset, 0); + sd_ndr.offset, 0, get_write); if (rc < 0) pr_err("Failed to store XATTR ntacl :%d\n", rc); @@ -1580,7 +1588,8 @@ int ksmbd_vfs_set_dos_attrib_xattr(struct mnt_idmap *idmap, const struct path *path, - struct xattr_dos_attrib *da) + struct xattr_dos_attrib *da, + bool get_write) { struct ndr n; int err; @@ -1590,7 +1599,7 @@ return err; err = ksmbd_vfs_setxattr(idmap, path, XATTR_NAME_DOS_ATTRIBUTE, - (void *)n.data, n.offset, 0); + (void *)n.data, n.offset, 0, get_write); if (err) ksmbd_debug(SMB, "failed to store dos attribute in xattr\n"); kfree(n.data); @@ -1861,10 +1870,6 @@ } posix_state_to_acl(&acl_state, acls->a_entries); - rc = mnt_want_write(path->mnt); - if (rc) - goto out_err; - rc = set_posix_acl(idmap, dentry, ACL_TYPE_ACCESS, acls); if (rc < 0) ksmbd_debug(SMB, "Set posix acl(ACL_TYPE_ACCESS) failed, rc : %d\n", @@ -1876,9 +1881,7 @@ ksmbd_debug(SMB, "Set posix acl(ACL_TYPE_DEFAULT) failed, rc : %d\n", rc); } - mnt_drop_write(path->mnt); -out_err: free_acl_state(&acl_state); posix_acl_release(acls); return rc; @@ -1908,10 +1911,6 @@ } } - rc = mnt_want_write(path->mnt); - if (rc) - goto out_err; - rc = set_posix_acl(idmap, dentry, ACL_TYPE_ACCESS, acls); if (rc < 0) ksmbd_debug(SMB, "Set posix acl(ACL_TYPE_ACCESS) failed, rc : %d\n", @@ -1923,9 +1922,7 @@ ksmbd_debug(SMB, "Set posix acl(ACL_TYPE_DEFAULT) failed, rc : %d\n", rc); } - mnt_drop_write(path->mnt); -out_err: posix_acl_release(acls); return rc; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/smb/server/vfs.h +++ linux-riscv-6.5.0/fs/smb/server/vfs.h @@ -109,7 +109,8 @@ int attr_name_len); int ksmbd_vfs_setxattr(struct mnt_idmap *idmap, const struct path *path, const char *attr_name, - void *attr_value, size_t attr_size, int flags); + void *attr_value, size_t attr_size, int flags, + bool get_write); int ksmbd_vfs_xattr_stream_name(char *stream_name, char **xattr_stream_name, size_t *xattr_stream_name_size, int s_type); int ksmbd_vfs_remove_xattr(struct mnt_idmap *idmap, @@ -117,6 +118,7 @@ int ksmbd_vfs_kern_path_locked(struct ksmbd_work *work, char *name, unsigned int flags, struct path *parent_path, struct path *path, bool caseless); +void ksmbd_vfs_kern_path_unlock(struct path *parent_path, struct path *path); struct dentry *ksmbd_vfs_kern_path_create(struct ksmbd_work *work, const char *name, unsigned int flags, @@ -144,14 +146,16 @@ int ksmbd_vfs_set_sd_xattr(struct ksmbd_conn *conn, struct mnt_idmap *idmap, const struct path *path, - struct smb_ntsd *pntsd, int len); + struct smb_ntsd *pntsd, int len, + bool get_write); int ksmbd_vfs_get_sd_xattr(struct ksmbd_conn *conn, struct mnt_idmap *idmap, struct dentry *dentry, struct smb_ntsd **pntsd); int ksmbd_vfs_set_dos_attrib_xattr(struct mnt_idmap *idmap, const struct path *path, - struct xattr_dos_attrib *da); + struct xattr_dos_attrib *da, + bool get_write); int ksmbd_vfs_get_dos_attrib_xattr(struct mnt_idmap *idmap, struct dentry *dentry, struct xattr_dos_attrib *da); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/stat.c +++ linux-riscv-6.5.0/fs/stat.c @@ -131,7 +131,8 @@ idmap = mnt_idmap(path->mnt); if (inode->i_op->getattr) return inode->i_op->getattr(idmap, path, stat, - request_mask, query_flags); + request_mask, + query_flags | AT_GETATTR_NOSEC); generic_fillattr(idmap, inode, stat); return 0; @@ -164,6 +165,9 @@ { int retval; + if (WARN_ON_ONCE(query_flags & AT_GETATTR_NOSEC)) + return -EPERM; + retval = security_inode_getattr(path); if (retval) return retval; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/fs/xfs/xfs_inode_item_recover.c +++ linux-riscv-6.5.0/fs/xfs/xfs_inode_item_recover.c @@ -369,24 +369,26 @@ * superblock flag to determine whether we need to look at di_flushiter * to skip replay when the on disk inode is newer than the log one */ - if (!xfs_has_v3inodes(mp) && - ldip->di_flushiter < be16_to_cpu(dip->di_flushiter)) { - /* - * Deal with the wrap case, DI_MAX_FLUSH is less - * than smaller numbers - */ - if (be16_to_cpu(dip->di_flushiter) == DI_MAX_FLUSH && - ldip->di_flushiter < (DI_MAX_FLUSH >> 1)) { - /* do nothing */ - } else { - trace_xfs_log_recover_inode_skip(log, in_f); - error = 0; - goto out_release; + if (!xfs_has_v3inodes(mp)) { + if (ldip->di_flushiter < be16_to_cpu(dip->di_flushiter)) { + /* + * Deal with the wrap case, DI_MAX_FLUSH is less + * than smaller numbers + */ + if (be16_to_cpu(dip->di_flushiter) == DI_MAX_FLUSH && + ldip->di_flushiter < (DI_MAX_FLUSH >> 1)) { + /* do nothing */ + } else { + trace_xfs_log_recover_inode_skip(log, in_f); + error = 0; + goto out_release; + } } + + /* Take the opportunity to reset the flush iteration count */ + ldip->di_flushiter = 0; } - /* Take the opportunity to reset the flush iteration count */ - ldip->di_flushiter = 0; if (unlikely(S_ISREG(ldip->di_mode))) { if ((ldip->di_format != XFS_DINODE_FMT_EXTENTS) && only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/acpi/ghes.h +++ linux-riscv-6.5.0/include/acpi/ghes.h @@ -73,8 +73,12 @@ void ghes_unregister_vendor_record_notifier(struct notifier_block *nb); struct list_head *ghes_get_devices(void); + +void ghes_estatus_pool_region_free(unsigned long addr, u32 size); #else static inline struct list_head *ghes_get_devices(void) { return NULL; } + +static inline void ghes_estatus_pool_region_free(unsigned long addr, u32 size) { return; } #endif int ghes_estatus_pool_init(unsigned int num_ghes); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/drm/bridge/samsung-dsim.h +++ linux-riscv-6.5.0/include/drm/bridge/samsung-dsim.h @@ -53,6 +53,7 @@ unsigned int plltmr_reg; unsigned int has_freqband:1; unsigned int has_clklane_stop:1; + unsigned int has_broken_fifoctrl_emptyhdr:1; unsigned int num_clks; unsigned int min_freq; unsigned int max_freq; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/drm/drm_atomic_helper.h +++ linux-riscv-6.5.0/include/drm/drm_atomic_helper.h @@ -97,6 +97,8 @@ int drm_atomic_helper_prepare_planes(struct drm_device *dev, struct drm_atomic_state *state); +void drm_atomic_helper_unprepare_planes(struct drm_device *dev, + struct drm_atomic_state *state); #define DRM_PLANE_COMMIT_ACTIVE_ONLY BIT(0) #define DRM_PLANE_COMMIT_NO_DISABLE_AFTER_MODESET BIT(1) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/drm/gpu_scheduler.h +++ linux-riscv-6.5.0/include/drm/gpu_scheduler.h @@ -68,8 +68,7 @@ DRM_SCHED_PRIORITY_HIGH, DRM_SCHED_PRIORITY_KERNEL, - DRM_SCHED_PRIORITY_COUNT, - DRM_SCHED_PRIORITY_UNSET = -2 + DRM_SCHED_PRIORITY_COUNT }; /* Used to chose between FIFO and RR jobs scheduling */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/amd-pstate.h +++ linux-riscv-6.5.0/include/linux/amd-pstate.h @@ -70,6 +70,10 @@ u32 nominal_perf; u32 lowest_nonlinear_perf; u32 lowest_perf; + u32 min_limit_perf; + u32 max_limit_perf; + u32 min_limit_freq; + u32 max_limit_freq; u32 max_freq; u32 min_freq; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/clk-provider.h +++ linux-riscv-6.5.0/include/linux/clk-provider.h @@ -74,7 +74,7 @@ unsigned long parent_rate); /** - * struct clk_duty - Struture encoding the duty cycle ratio of a clock + * struct clk_duty - Structure encoding the duty cycle ratio of a clock * * @num: Numerator of the duty cycle ratio * @den: Denominator of the duty cycle ratio @@ -129,7 +129,7 @@ * @restore_context: Restore the context of the clock after a restoration * of power. * - * @recalc_rate Recalculate the rate of this clock, by querying hardware. The + * @recalc_rate: Recalculate the rate of this clock, by querying hardware. The * parent rate is an input parameter. It is up to the caller to * ensure that the prepare_mutex is held across this call. If the * driver cannot figure out a rate for this clock, it must return @@ -456,7 +456,7 @@ * clock with the clock framework * @dev: device that is registering this clock * @name: name of this clock - * @parent_name: name of clock's parent + * @parent_data: name of clock's parent * @flags: framework-specific flags * @fixed_rate: non-adjustable clock rate * @fixed_accuracy: non-adjustable clock accuracy @@ -471,7 +471,7 @@ * the clock framework * @dev: device that is registering this clock * @name: name of this clock - * @parent_name: name of clock's parent + * @parent_data: name of clock's parent * @flags: framework-specific flags * @fixed_rate: non-adjustable clock rate */ @@ -649,7 +649,7 @@ * Clock with an adjustable divider affecting its output frequency. Implements * .recalc_rate, .set_rate and .round_rate * - * Flags: + * @flags: * CLK_DIVIDER_ONE_BASED - by default the divisor is the value read from the * register plus one. If CLK_DIVIDER_ONE_BASED is set then the divider is * the raw value read from the register, with the value of zero considered @@ -1130,11 +1130,12 @@ * @mwidth: width of the numerator bit field * @nshift: shift to the denominator bit field * @nwidth: width of the denominator bit field + * @approximation: clk driver's callback for calculating the divider clock * @lock: register lock * * Clock with adjustable fractional divider affecting its output frequency. * - * Flags: + * @flags: * CLK_FRAC_DIVIDER_ZERO_BASED - by default the numerator and denominator * is the value read from the register. If CLK_FRAC_DIVIDER_ZERO_BASED * is set then the numerator and denominator are both the value read @@ -1191,7 +1192,7 @@ * Clock with an adjustable multiplier affecting its output frequency. * Implements .recalc_rate, .set_rate and .round_rate * - * Flags: + * @flags: * CLK_MULTIPLIER_ZERO_BYPASS - By default, the multiplier is the value read * from the register, with 0 being a valid value effectively * zeroing the output clock rate. If CLK_MULTIPLIER_ZERO_BYPASS is only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/cpuhotplug.h +++ linux-riscv-6.5.0/include/linux/cpuhotplug.h @@ -190,10 +190,12 @@ /* Must be the last timer callback */ CPUHP_AP_DUMMY_TIMER_STARTING, CPUHP_AP_ARM_XEN_STARTING, + CPUHP_AP_ARM_XEN_RUNSTATE_STARTING, CPUHP_AP_ARM_CORESIGHT_STARTING, CPUHP_AP_ARM_CORESIGHT_CTI_STARTING, CPUHP_AP_ARM64_ISNDEP_STARTING, CPUHP_AP_SMPCFD_DYING, + CPUHP_AP_HRTIMERS_DYING, CPUHP_AP_X86_TBOOT_DYING, CPUHP_AP_ARM_CACHE_B15_RAC_DYING, CPUHP_AP_ONLINE, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/damon.h +++ linux-riscv-6.5.0/include/linux/damon.h @@ -626,6 +626,13 @@ return ctx->ops.id == DAMON_OPS_VADDR || ctx->ops.id == DAMON_OPS_FVADDR; } +static inline unsigned int damon_max_nr_accesses(const struct damon_attrs *attrs) +{ + /* {aggr,sample}_interval are unsigned long, hence could overflow */ + return min(attrs->aggr_interval / attrs->sample_interval, + (unsigned long)UINT_MAX); +} + int damon_start(struct damon_ctx **ctxs, int nr_ctxs, bool exclusive); int damon_stop(struct damon_ctx **ctxs, int nr_ctxs); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/ethtool.h +++ linux-riscv-6.5.0/include/linux/ethtool.h @@ -1045,10 +1045,10 @@ /** * ethtool_sprintf - Write formatted string to ethtool string data - * @data: Pointer to start of string to update + * @data: Pointer to a pointer to the start of string to update * @fmt: Format of string to write * - * Write formatted string to data. Update data to point at start of + * Write formatted string to *data. Update *data to point at start of * next string. */ extern __printf(2, 3) void ethtool_sprintf(u8 **data, const char *fmt, ...); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/f2fs_fs.h +++ linux-riscv-6.5.0/include/linux/f2fs_fs.h @@ -104,6 +104,7 @@ ERROR_CORRUPTED_VERITY_XATTR, ERROR_CORRUPTED_XATTR, ERROR_INVALID_NODE_REFERENCE, + ERROR_INCONSISTENT_NAT, ERROR_MAX, }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/generic-radix-tree.h +++ linux-riscv-6.5.0/include/linux/generic-radix-tree.h @@ -38,6 +38,7 @@ #include #include +#include #include #include #include @@ -184,6 +185,12 @@ static inline void __genradix_iter_advance(struct genradix_iter *iter, size_t obj_size) { + if (iter->offset + obj_size < iter->offset) { + iter->offset = SIZE_MAX; + iter->pos = SIZE_MAX; + return; + } + iter->offset += obj_size; if (!is_power_of_2(obj_size) && only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/hisi_acc_qm.h +++ linux-riscv-6.5.0/include/linux/hisi_acc_qm.h @@ -144,6 +144,13 @@ QM_NOT_READY, }; +enum qm_misc_ctl_bits { + QM_DRIVER_REMOVING = 0x0, + QM_RST_SCHED, + QM_RESETTING, + QM_MODULE_PARAM, +}; + enum qm_cap_bits { QM_SUPPORT_DB_ISOLATION = 0x0, QM_SUPPORT_FUNC_QOS, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/hrtimer.h +++ linux-riscv-6.5.0/include/linux/hrtimer.h @@ -531,9 +531,9 @@ int hrtimers_prepare_cpu(unsigned int cpu); #ifdef CONFIG_HOTPLUG_CPU -int hrtimers_dead_cpu(unsigned int cpu); +int hrtimers_cpu_dying(unsigned int cpu); #else -#define hrtimers_dead_cpu NULL +#define hrtimers_cpu_dying NULL #endif #endif only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/hugetlb.h +++ linux-riscv-6.5.0/include/linux/hugetlb.h @@ -58,6 +58,7 @@ long adds_in_progress; struct list_head region_cache; long region_cache_count; + struct rw_semaphore rw_sema; #ifdef CONFIG_CGROUP_HUGETLB /* * On private mappings, the counter to uncharge reservations is stored @@ -1245,6 +1246,8 @@ return (vma->vm_flags & VM_MAYSHARE) && vma->vm_private_data; } +bool __vma_private_lock(struct vm_area_struct *vma); + /* * Safe version of huge_pte_offset() to check the locks. See comments * above huge_pte_offset(). only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/hw_random.h +++ linux-riscv-6.5.0/include/linux/hw_random.h @@ -63,5 +63,6 @@ extern void devm_hwrng_unregister(struct device *dve, struct hwrng *rng); extern long hwrng_msleep(struct hwrng *rng, unsigned int msecs); +extern long hwrng_yield(struct hwrng *rng); #endif /* LINUX_HWRANDOM_H_ */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/idr.h +++ linux-riscv-6.5.0/include/linux/idr.h @@ -200,7 +200,7 @@ */ #define idr_for_each_entry_ul(idr, entry, tmp, id) \ for (tmp = 0, id = 0; \ - tmp <= id && ((entry) = idr_get_next_ul(idr, &(id))) != NULL; \ + ((entry) = tmp <= id ? idr_get_next_ul(idr, &(id)) : NULL) != NULL; \ tmp = id, ++id) /** @@ -224,10 +224,12 @@ * @id: Entry ID. * * Continue to iterate over entries, continuing after the current position. + * After normal termination @entry is left with the value NULL. This + * is convenient for a "not found" value. */ #define idr_for_each_entry_continue_ul(idr, entry, tmp, id) \ for (tmp = id; \ - tmp <= id && ((entry) = idr_get_next_ul(idr, &(id))) != NULL; \ + ((entry) = tmp <= id ? idr_get_next_ul(idr, &(id)) : NULL) != NULL; \ tmp = id, ++id) /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/ieee80211.h +++ linux-riscv-6.5.0/include/linux/ieee80211.h @@ -4237,6 +4237,35 @@ } /** + * ieee80211_is_protected_dual_of_public_action - check if skb contains a + * protected dual of public action management frame + * @skb: the skb containing the frame, length will be checked + * + * Return: true if the skb contains a protected dual of public action + * management frame, false otherwise. + */ +static inline bool +ieee80211_is_protected_dual_of_public_action(struct sk_buff *skb) +{ + u8 action; + + if (!ieee80211_is_public_action((void *)skb->data, skb->len) || + skb->len < IEEE80211_MIN_ACTION_SIZE + 1) + return false; + + action = *(u8 *)(skb->data + IEEE80211_MIN_ACTION_SIZE); + + return action != WLAN_PUB_ACTION_20_40_BSS_COEX && + action != WLAN_PUB_ACTION_DSE_REG_LOC_ANN && + action != WLAN_PUB_ACTION_MSMT_PILOT && + action != WLAN_PUB_ACTION_TDLS_DISCOVER_RES && + action != WLAN_PUB_ACTION_LOC_TRACK_NOTI && + action != WLAN_PUB_ACTION_FTM_REQUEST && + action != WLAN_PUB_ACTION_FTM_RESPONSE && + action != WLAN_PUB_ACTION_FILS_DISCOVERY; +} + +/** * _ieee80211_is_group_privacy_action - check if frame is a group addressed * privacy action frame * @hdr: the frame only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/iommu.h +++ linux-riscv-6.5.0/include/linux/iommu.h @@ -703,6 +703,7 @@ dev->iommu->priv = priv; } +extern struct mutex iommu_probe_device_lock; int iommu_probe_device(struct device *dev); int iommu_dev_enable_feature(struct device *dev, enum iommu_dev_features f); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/irq.h +++ linux-riscv-6.5.0/include/linux/irq.h @@ -215,8 +215,6 @@ * IRQD_SINGLE_TARGET - IRQ allows only a single affinity target * IRQD_DEFAULT_TRIGGER_SET - Expected trigger already been set * IRQD_CAN_RESERVE - Can use reservation mode - * IRQD_MSI_NOMASK_QUIRK - Non-maskable MSI quirk for affinity change - * required * IRQD_HANDLE_ENFORCE_IRQCTX - Enforce that handle_irq_*() is only invoked * from actual interrupt context. * IRQD_AFFINITY_ON_ACTIVATE - Affinity is set on activation. Don't call @@ -247,11 +245,10 @@ IRQD_SINGLE_TARGET = BIT(24), IRQD_DEFAULT_TRIGGER_SET = BIT(25), IRQD_CAN_RESERVE = BIT(26), - IRQD_MSI_NOMASK_QUIRK = BIT(27), - IRQD_HANDLE_ENFORCE_IRQCTX = BIT(28), - IRQD_AFFINITY_ON_ACTIVATE = BIT(29), - IRQD_IRQ_ENABLED_ON_SUSPEND = BIT(30), - IRQD_RESEND_WHEN_IN_PROGRESS = BIT(31), + IRQD_HANDLE_ENFORCE_IRQCTX = BIT(27), + IRQD_AFFINITY_ON_ACTIVATE = BIT(28), + IRQD_IRQ_ENABLED_ON_SUSPEND = BIT(29), + IRQD_RESEND_WHEN_IN_PROGRESS = BIT(30), }; #define __irqd_to_state(d) ACCESS_PRIVATE((d)->common, state_use_accessors) @@ -426,21 +423,6 @@ return __irqd_to_state(d) & IRQD_CAN_RESERVE; } -static inline void irqd_set_msi_nomask_quirk(struct irq_data *d) -{ - __irqd_to_state(d) |= IRQD_MSI_NOMASK_QUIRK; -} - -static inline void irqd_clr_msi_nomask_quirk(struct irq_data *d) -{ - __irqd_to_state(d) &= ~IRQD_MSI_NOMASK_QUIRK; -} - -static inline bool irqd_msi_nomask_quirk(struct irq_data *d) -{ - return __irqd_to_state(d) & IRQD_MSI_NOMASK_QUIRK; -} - static inline void irqd_set_affinity_on_activate(struct irq_data *d) { __irqd_to_state(d) |= IRQD_AFFINITY_ON_ACTIVATE; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/kasan.h +++ linux-riscv-6.5.0/include/linux/kasan.h @@ -464,10 +464,10 @@ #endif /* (CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS) && !CONFIG_KASAN_VMALLOC */ -#ifdef CONFIG_KASAN_INLINE +#ifdef CONFIG_KASAN void kasan_non_canonical_hook(unsigned long addr); -#else /* CONFIG_KASAN_INLINE */ +#else /* CONFIG_KASAN */ static inline void kasan_non_canonical_hook(unsigned long addr) { } -#endif /* CONFIG_KASAN_INLINE */ +#endif /* CONFIG_KASAN */ #endif /* LINUX_KASAN_H */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/kprobes.h +++ linux-riscv-6.5.0/include/linux/kprobes.h @@ -140,7 +140,7 @@ * */ struct kretprobe_holder { - struct kretprobe *rp; + struct kretprobe __rcu *rp; refcount_t ref; }; @@ -202,10 +202,8 @@ #ifdef CONFIG_KRETPROBE_ON_RETHOOK static nokprobe_inline struct kretprobe *get_kretprobe(struct kretprobe_instance *ri) { - RCU_LOCKDEP_WARN(!rcu_read_lock_any_held(), - "Kretprobe is accessed from instance under preemptive context"); - - return (struct kretprobe *)READ_ONCE(ri->node.rethook->data); + /* rethook::data is non-changed field, so that you can access it freely. */ + return (struct kretprobe *)ri->node.rethook->data; } static nokprobe_inline unsigned long get_kretprobe_retaddr(struct kretprobe_instance *ri) { @@ -250,10 +248,7 @@ static nokprobe_inline struct kretprobe *get_kretprobe(struct kretprobe_instance *ri) { - RCU_LOCKDEP_WARN(!rcu_read_lock_any_held(), - "Kretprobe is accessed from instance under preemptive context"); - - return READ_ONCE(ri->rph->rp); + return rcu_dereference_check(ri->rph->rp, rcu_read_lock_any_held()); } static nokprobe_inline unsigned long get_kretprobe_retaddr(struct kretprobe_instance *ri) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/mfd/core.h +++ linux-riscv-6.5.0/include/linux/mfd/core.h @@ -92,7 +92,7 @@ * (above) when matching OF nodes with devices that have identical * compatible strings */ - const u64 of_reg; + u64 of_reg; /* Set to 'true' to use 'of_reg' (above) - allows for of_reg=0 */ bool use_of_reg; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/mmc/card.h +++ linux-riscv-6.5.0/include/linux/mmc/card.h @@ -295,7 +295,9 @@ #define MMC_QUIRK_BROKEN_HPI (1<<13) /* Disable broken HPI support */ #define MMC_QUIRK_BROKEN_SD_DISCARD (1<<14) /* Disable broken SD discard support */ #define MMC_QUIRK_BROKEN_SD_CACHE (1<<15) /* Disable broken SD cache support */ +#define MMC_QUIRK_BROKEN_CACHE_FLUSH (1<<16) /* Don't flush cache until the write has occurred */ + bool written_flag; /* Indicates eMMC has been written since power on */ bool reenable_cmdq; /* Re-enable Command Queue */ unsigned int erase_size; /* erase size in sectors */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/msi.h +++ linux-riscv-6.5.0/include/linux/msi.h @@ -547,12 +547,6 @@ MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS = (1 << 5), /* Free MSI descriptors */ MSI_FLAG_FREE_MSI_DESCS = (1 << 6), - /* - * Quirk to handle MSI implementations which do not provide - * masking. Currently known to affect x86, but has to be partially - * handled in the core MSI code. - */ - MSI_FLAG_NOMASK_QUIRK = (1 << 7), /* Mask for the generic functionality */ MSI_GENERIC_FLAGS_MASK = GENMASK(15, 0), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/mtd/jedec.h +++ linux-riscv-6.5.0/include/linux/mtd/jedec.h @@ -21,6 +21,9 @@ /* JEDEC features */ #define JEDEC_FEATURE_16_BIT_BUS (1 << 0) +/* JEDEC Optional Commands */ +#define JEDEC_OPT_CMD_READ_CACHE BIT(1) + struct nand_jedec_params { /* rev info and features block */ /* 'J' 'E' 'S' 'D' */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/mtd/onfi.h +++ linux-riscv-6.5.0/include/linux/mtd/onfi.h @@ -55,6 +55,7 @@ #define ONFI_SUBFEATURE_PARAM_LEN 4 /* ONFI optional commands SET/GET FEATURES supported? */ +#define ONFI_OPT_CMD_READ_CACHE BIT(1) #define ONFI_OPT_CMD_SET_GET_FEATURES BIT(2) struct nand_onfi_params { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/mtd/rawnand.h +++ linux-riscv-6.5.0/include/linux/mtd/rawnand.h @@ -225,6 +225,7 @@ * struct nand_parameters - NAND generic parameters from the parameter page * @model: Model name * @supports_set_get_features: The NAND chip supports setting/getting features + * @supports_read_cache: The NAND chip supports read cache operations * @set_feature_list: Bitmap of features that can be set * @get_feature_list: Bitmap of features that can be get * @onfi: ONFI specific parameters @@ -233,6 +234,7 @@ /* Generic parameters */ const char *model; bool supports_set_get_features; + bool supports_read_cache; DECLARE_BITMAP(set_feature_list, ONFI_FEATURE_NUMBER); DECLARE_BITMAP(get_feature_list, ONFI_FEATURE_NUMBER); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/netdevice.h +++ linux-riscv-6.5.0/include/linux/netdevice.h @@ -1783,6 +1783,13 @@ ML_PRIV_CAN, }; +enum netdev_stat_type { + NETDEV_PCPU_STAT_NONE, + NETDEV_PCPU_STAT_LSTATS, /* struct pcpu_lstats */ + NETDEV_PCPU_STAT_TSTATS, /* struct pcpu_sw_netstats */ + NETDEV_PCPU_STAT_DSTATS, /* struct pcpu_dstats */ +}; + /** * struct net_device - The DEVICE structure. * @@ -1979,10 +1986,14 @@ * * @ml_priv: Mid-layer private * @ml_priv_type: Mid-layer private type - * @lstats: Loopback statistics - * @tstats: Tunnel statistics - * @dstats: Dummy statistics - * @vstats: Virtual ethernet statistics + * + * @pcpu_stat_type: Type of device statistics which the core should + * allocate/free: none, lstats, tstats, dstats. none + * means the driver is handling statistics allocation/ + * freeing internally. + * @lstats: Loopback statistics: packets, bytes + * @tstats: Tunnel statistics: RX/TX packets, RX/TX bytes + * @dstats: Dummy statistics: RX/TX/drop packets, RX/TX bytes * * @garp_port: GARP * @mrp_port: MRP @@ -2337,6 +2348,7 @@ void *ml_priv; enum netdev_ml_priv_type ml_priv_type; + enum netdev_stat_type pcpu_stat_type:8; union { struct pcpu_lstats __percpu *lstats; struct pcpu_sw_netstats __percpu *tstats; @@ -2734,6 +2746,16 @@ struct u64_stats_sync syncp; } __aligned(4 * sizeof(u64)); +struct pcpu_dstats { + u64 rx_packets; + u64 rx_bytes; + u64 rx_drops; + u64 tx_packets; + u64 tx_bytes; + u64 tx_drops; + struct u64_stats_sync syncp; +} __aligned(8 * sizeof(u64)); + struct pcpu_lstats { u64_stats_t packets; u64_stats_t bytes; @@ -5230,5 +5252,6 @@ #define DEV_STATS_INC(DEV, FIELD) atomic_long_inc(&(DEV)->stats.__##FIELD) #define DEV_STATS_ADD(DEV, FIELD, VAL) \ atomic_long_add((VAL), &(DEV)->stats.__##FIELD) +#define DEV_STATS_READ(DEV, FIELD) atomic_long_read(&(DEV)->stats.__##FIELD) #endif /* _LINUX_NETDEVICE_H */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/numa.h +++ linux-riscv-6.5.0/include/linux/numa.h @@ -12,6 +12,7 @@ #define MAX_NUMNODES (1 << NODES_SHIFT) #define NUMA_NO_NODE (-1) +#define NUMA_NO_MEMBLK (-1) /* optionally keep NUMA memory info available post init */ #ifdef CONFIG_NUMA_KEEP_MEMINFO @@ -25,7 +26,7 @@ #include /* Generic implementation available */ -int numa_map_to_online_node(int node); +int numa_nearest_node(int node, unsigned int state); #ifndef memory_add_physaddr_to_nid static inline int memory_add_physaddr_to_nid(u64 start) @@ -43,11 +44,18 @@ return 0; } #endif +#ifndef numa_fill_memblks +static inline int __init numa_fill_memblks(u64 start, u64 end) +{ + return NUMA_NO_MEMBLK; +} +#endif #else /* !CONFIG_NUMA */ -static inline int numa_map_to_online_node(int node) +static inline int numa_nearest_node(int node, unsigned int state) { return NUMA_NO_NODE; } + static inline int memory_add_physaddr_to_nid(u64 start) { return 0; @@ -58,6 +66,8 @@ } #endif +#define numa_map_to_online_node(node) numa_nearest_node(node, N_ONLINE) + #ifdef CONFIG_HAVE_ARCH_NODE_DEV_GROUP extern const struct attribute_group arch_node_dev_group; #endif only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/objtool.h +++ linux-riscv-6.5.0/include/linux/objtool.h @@ -130,7 +130,8 @@ * it will be ignored. */ .macro VALIDATE_UNRET_BEGIN -#if defined(CONFIG_NOINSTR_VALIDATION) && defined(CONFIG_CPU_UNRET_ENTRY) +#if defined(CONFIG_NOINSTR_VALIDATION) && \ + (defined(CONFIG_CPU_UNRET_ENTRY) || defined(CONFIG_CPU_SRSO)) .Lhere_\@: .pushsection .discard.validate_unret .long .Lhere_\@ - . only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/pagemap.h +++ linux-riscv-6.5.0/include/linux/pagemap.h @@ -203,6 +203,8 @@ /* writeback related tags are not used */ AS_NO_WRITEBACK_TAGS = 5, AS_LARGE_FOLIO_SUPPORT = 6, + AS_STABLE_WRITES, /* must wait for writeback before modifying + folio contents */ }; /** @@ -273,6 +275,21 @@ return !test_bit(AS_NO_WRITEBACK_TAGS, &mapping->flags); } +static inline bool mapping_stable_writes(const struct address_space *mapping) +{ + return test_bit(AS_STABLE_WRITES, &mapping->flags); +} + +static inline void mapping_set_stable_writes(struct address_space *mapping) +{ + set_bit(AS_STABLE_WRITES, &mapping->flags); +} + +static inline void mapping_clear_stable_writes(struct address_space *mapping) +{ + clear_bit(AS_STABLE_WRITES, &mapping->flags); +} + static inline gfp_t mapping_gfp_mask(struct address_space * mapping) { return mapping->gfp_mask; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/pm.h +++ linux-riscv-6.5.0/include/linux/pm.h @@ -374,24 +374,39 @@ RUNTIME_PM_OPS(runtime_suspend_fn, runtime_resume_fn, idle_fn) \ } -#ifdef CONFIG_PM -#define _EXPORT_DEV_PM_OPS(name, license, ns) \ +#define _EXPORT_PM_OPS(name, license, ns) \ const struct dev_pm_ops name; \ __EXPORT_SYMBOL(name, license, ns); \ const struct dev_pm_ops name -#define EXPORT_PM_FN_GPL(name) EXPORT_SYMBOL_GPL(name) -#define EXPORT_PM_FN_NS_GPL(name, ns) EXPORT_SYMBOL_NS_GPL(name, ns) -#else -#define _EXPORT_DEV_PM_OPS(name, license, ns) \ + +#define _DISCARD_PM_OPS(name, license, ns) \ static __maybe_unused const struct dev_pm_ops __static_##name + +#ifdef CONFIG_PM +#define _EXPORT_DEV_PM_OPS(name, license, ns) _EXPORT_PM_OPS(name, license, ns) +#define EXPORT_PM_FN_GPL(name) EXPORT_SYMBOL_GPL(name) +#define EXPORT_PM_FN_NS_GPL(name, ns) EXPORT_SYMBOL_NS_GPL(name, ns) +#else +#define _EXPORT_DEV_PM_OPS(name, license, ns) _DISCARD_PM_OPS(name, license, ns) #define EXPORT_PM_FN_GPL(name) #define EXPORT_PM_FN_NS_GPL(name, ns) #endif -#define EXPORT_DEV_PM_OPS(name) _EXPORT_DEV_PM_OPS(name, "", "") -#define EXPORT_GPL_DEV_PM_OPS(name) _EXPORT_DEV_PM_OPS(name, "GPL", "") -#define EXPORT_NS_DEV_PM_OPS(name, ns) _EXPORT_DEV_PM_OPS(name, "", #ns) -#define EXPORT_NS_GPL_DEV_PM_OPS(name, ns) _EXPORT_DEV_PM_OPS(name, "GPL", #ns) +#ifdef CONFIG_PM_SLEEP +#define _EXPORT_DEV_SLEEP_PM_OPS(name, license, ns) _EXPORT_PM_OPS(name, license, ns) +#else +#define _EXPORT_DEV_SLEEP_PM_OPS(name, license, ns) _DISCARD_PM_OPS(name, license, ns) +#endif + +#define EXPORT_DEV_PM_OPS(name) _EXPORT_DEV_PM_OPS(name, "", "") +#define EXPORT_GPL_DEV_PM_OPS(name) _EXPORT_DEV_PM_OPS(name, "GPL", "") +#define EXPORT_NS_DEV_PM_OPS(name, ns) _EXPORT_DEV_PM_OPS(name, "", #ns) +#define EXPORT_NS_GPL_DEV_PM_OPS(name, ns) _EXPORT_DEV_PM_OPS(name, "GPL", #ns) + +#define EXPORT_DEV_SLEEP_PM_OPS(name) _EXPORT_DEV_SLEEP_PM_OPS(name, "", "") +#define EXPORT_GPL_DEV_SLEEP_PM_OPS(name) _EXPORT_DEV_SLEEP_PM_OPS(name, "GPL", "") +#define EXPORT_NS_DEV_SLEEP_PM_OPS(name, ns) _EXPORT_DEV_SLEEP_PM_OPS(name, "", #ns) +#define EXPORT_NS_GPL_DEV_SLEEP_PM_OPS(name, ns) _EXPORT_DEV_SLEEP_PM_OPS(name, "GPL", #ns) /* * Use this if you want to use the same suspend and resume callbacks for suspend @@ -404,19 +419,19 @@ _DEFINE_DEV_PM_OPS(name, suspend_fn, resume_fn, NULL, NULL, NULL) #define EXPORT_SIMPLE_DEV_PM_OPS(name, suspend_fn, resume_fn) \ - EXPORT_DEV_PM_OPS(name) = { \ + EXPORT_DEV_SLEEP_PM_OPS(name) = { \ SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \ } #define EXPORT_GPL_SIMPLE_DEV_PM_OPS(name, suspend_fn, resume_fn) \ - EXPORT_GPL_DEV_PM_OPS(name) = { \ + EXPORT_GPL_DEV_SLEEP_PM_OPS(name) = { \ SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \ } #define EXPORT_NS_SIMPLE_DEV_PM_OPS(name, suspend_fn, resume_fn, ns) \ - EXPORT_NS_DEV_PM_OPS(name, ns) = { \ + EXPORT_NS_DEV_SLEEP_PM_OPS(name, ns) = { \ SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \ } #define EXPORT_NS_GPL_SIMPLE_DEV_PM_OPS(name, suspend_fn, resume_fn, ns) \ - EXPORT_NS_GPL_DEV_PM_OPS(name, ns) = { \ + EXPORT_NS_GPL_DEV_SLEEP_PM_OPS(name, ns) = { \ SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \ } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/preempt.h +++ linux-riscv-6.5.0/include/linux/preempt.h @@ -99,14 +99,21 @@ return level; } +/* + * These macro definitions avoid redundant invocations of preempt_count() + * because such invocations would result in redundant loads given that + * preempt_count() is commonly implemented with READ_ONCE(). + */ + #define nmi_count() (preempt_count() & NMI_MASK) #define hardirq_count() (preempt_count() & HARDIRQ_MASK) #ifdef CONFIG_PREEMPT_RT # define softirq_count() (current->softirq_disable_cnt & SOFTIRQ_MASK) +# define irq_count() ((preempt_count() & (NMI_MASK | HARDIRQ_MASK)) | softirq_count()) #else # define softirq_count() (preempt_count() & SOFTIRQ_MASK) +# define irq_count() (preempt_count() & (NMI_MASK | HARDIRQ_MASK | SOFTIRQ_MASK)) #endif -#define irq_count() (nmi_count() | hardirq_count() | softirq_count()) /* * Macros to retrieve the current execution context: @@ -119,7 +126,11 @@ #define in_nmi() (nmi_count()) #define in_hardirq() (hardirq_count()) #define in_serving_softirq() (softirq_count() & SOFTIRQ_OFFSET) -#define in_task() (!(in_nmi() | in_hardirq() | in_serving_softirq())) +#ifdef CONFIG_PREEMPT_RT +# define in_task() (!((preempt_count() & (NMI_MASK | HARDIRQ_MASK)) | in_serving_softirq())) +#else +# define in_task() (!(preempt_count() & (NMI_MASK | HARDIRQ_MASK | SOFTIRQ_OFFSET))) +#endif /* * The following macros are deprecated and should not be used in new code: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/pwm.h +++ linux-riscv-6.5.0/include/linux/pwm.h @@ -41,8 +41,8 @@ }; enum { - PWMF_REQUESTED = 1 << 0, - PWMF_EXPORTED = 1 << 1, + PWMF_REQUESTED = 0, + PWMF_EXPORTED = 1, }; /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/rethook.h +++ linux-riscv-6.5.0/include/linux/rethook.h @@ -29,7 +29,12 @@ */ struct rethook { void *data; - rethook_handler_t handler; + /* + * To avoid sparse warnings, this uses a raw function pointer with + * __rcu, instead of rethook_handler_t. But this must be same as + * rethook_handler_t. + */ + void (__rcu *handler) (struct rethook_node *, void *, unsigned long, struct pt_regs *); struct freelist_head pool; refcount_t ref; struct rcu_head rcu; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/sched/coredump.h +++ linux-riscv-6.5.0/include/linux/sched/coredump.h @@ -91,4 +91,14 @@ MMF_DISABLE_THP_MASK | MMF_HAS_MDWE_MASK) #define MMF_VM_MERGE_ANY 29 +#define MMF_HAS_MDWE_NO_INHERIT 30 + +static inline unsigned long mmf_init_flags(unsigned long flags) +{ + if (flags & (1UL << MMF_HAS_MDWE_NO_INHERIT)) + flags &= ~((1UL << MMF_HAS_MDWE) | + (1UL << MMF_HAS_MDWE_NO_INHERIT)); + return flags & MMF_INIT_MASK; +} + #endif /* _LINUX_SCHED_COREDUMP_H */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/scmi_protocol.h +++ linux-riscv-6.5.0/include/linux/scmi_protocol.h @@ -97,10 +97,17 @@ u32 clk_id); }; +struct scmi_perf_domain_info { + char name[SCMI_MAX_STR_SIZE]; + bool set_perf; +}; + /** * struct scmi_perf_proto_ops - represents the various operations provided * by SCMI Performance Protocol * + * @num_domains_get: gets the number of supported performance domains + * @info_get: get the information of a performance domain * @limits_set: sets limits on the performance level of a domain * @limits_get: gets limits on the performance level of a domain * @level_set: sets the performance level of a domain @@ -120,6 +127,9 @@ * or in some other (abstract) scale */ struct scmi_perf_proto_ops { + int (*num_domains_get)(const struct scmi_protocol_handle *ph); + const struct scmi_perf_domain_info __must_check *(*info_get) + (const struct scmi_protocol_handle *ph, u32 domain); int (*limits_set)(const struct scmi_protocol_handle *ph, u32 domain, u32 max_perf, u32 min_perf); int (*limits_get)(const struct scmi_protocol_handle *ph, u32 domain, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/skmsg.h +++ linux-riscv-6.5.0/include/linux/skmsg.h @@ -106,6 +106,7 @@ struct mutex work_mutex; struct sk_psock_work_state work_state; struct delayed_work work; + struct sock *sk_pair; struct rcu_work rwork; }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/socket.h +++ linux-riscv-6.5.0/include/linux/socket.h @@ -383,6 +383,7 @@ #define SOL_MPTCP 284 #define SOL_MCTP 285 #define SOL_SMC 286 +#define SOL_VSOCK 287 /* IPX options */ #define IPX_TYPE 1 only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/spi/spi.h +++ linux-riscv-6.5.0/include/linux/spi/spi.h @@ -564,6 +564,7 @@ #define SPI_CONTROLLER_MUST_TX BIT(4) /* Requires tx */ #define SPI_MASTER_GPIO_SS BIT(5) /* GPIO CS must select slave */ +#define SPI_CONTROLLER_SUSPENDED BIT(6) /* Currently suspended */ /* Flag indicating if the allocation of this struct is devres-managed */ bool devm_allocated; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/stmmac.h +++ linux-riscv-6.5.0/include/linux/stmmac.h @@ -172,6 +172,7 @@ bool hs_enable; /* FPE handshake enable */ enum stmmac_fpe_state lp_fpe_state; /* Link Partner FPE state */ enum stmmac_fpe_state lo_fpe_state; /* Local station FPE state */ + u32 fpe_csr; /* MAC_FPE_CTRL_STS reg cache */ }; struct stmmac_safety_feature_cfg { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/string.h +++ linux-riscv-6.5.0/include/linux/string.h @@ -5,7 +5,9 @@ #include /* for inline */ #include /* for size_t */ #include /* for NULL */ +#include /* for ERR_PTR() */ #include /* for E2BIG */ +#include /* for check_mul_overflow() */ #include #include @@ -14,6 +16,44 @@ extern void *vmemdup_user(const void __user *, size_t); extern void *memdup_user_nul(const void __user *, size_t); +/** + * memdup_array_user - duplicate array from user space + * @src: source address in user space + * @n: number of array members to copy + * @size: size of one array member + * + * Return: an ERR_PTR() on failure. Result is physically + * contiguous, to be freed by kfree(). + */ +static inline void *memdup_array_user(const void __user *src, size_t n, size_t size) +{ + size_t nbytes; + + if (check_mul_overflow(n, size, &nbytes)) + return ERR_PTR(-EOVERFLOW); + + return memdup_user(src, nbytes); +} + +/** + * vmemdup_array_user - duplicate array from user space + * @src: source address in user space + * @n: number of array members to copy + * @size: size of one array member + * + * Return: an ERR_PTR() on failure. Result may be not + * physically contiguous. Use kvfree() to free. + */ +static inline void *vmemdup_array_user(const void __user *src, size_t n, size_t size) +{ + size_t nbytes; + + if (check_mul_overflow(n, size, &nbytes)) + return ERR_PTR(-EOVERFLOW); + + return vmemdup_user(src, nbytes); +} + /* * Include machine specific inline routines */ @@ -277,10 +317,12 @@ */ #define strtomem_pad(dest, src, pad) do { \ const size_t _dest_len = __builtin_object_size(dest, 1); \ + const size_t _src_len = __builtin_object_size(src, 1); \ \ BUILD_BUG_ON(!__builtin_constant_p(_dest_len) || \ _dest_len == (size_t)-1); \ - memcpy_and_pad(dest, _dest_len, src, strnlen(src, _dest_len), pad); \ + memcpy_and_pad(dest, _dest_len, src, \ + strnlen(src, min(_src_len, _dest_len)), pad); \ } while (0) /** @@ -298,10 +340,11 @@ */ #define strtomem(dest, src) do { \ const size_t _dest_len = __builtin_object_size(dest, 1); \ + const size_t _src_len = __builtin_object_size(src, 1); \ \ BUILD_BUG_ON(!__builtin_constant_p(_dest_len) || \ _dest_len == (size_t)-1); \ - memcpy(dest, src, min(_dest_len, strnlen(src, _dest_len))); \ + memcpy(dest, src, strnlen(src, min(_src_len, _dest_len))); \ } while (0) /** only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/sunrpc/clnt.h +++ linux-riscv-6.5.0/include/linux/sunrpc/clnt.h @@ -92,6 +92,7 @@ }; const struct cred *cl_cred; unsigned int cl_max_connect; /* max number of transports not to the same IP */ + struct super_block *pipefs_sb; }; /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/sysctl.h +++ linux-riscv-6.5.0/include/linux/sysctl.h @@ -227,6 +227,7 @@ extern struct ctl_table_header *register_sysctl_mount_point(const char *path); void do_sysctl_args(void); +bool sysctl_is_alias(char *param); int do_proc_douintvec(struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos, int (*conv)(unsigned long *lvalp, @@ -270,6 +271,11 @@ static inline void do_sysctl_args(void) { } + +static inline bool sysctl_is_alias(char *param) +{ + return false; +} #endif /* CONFIG_SYSCTL */ int sysctl_max_threads(struct ctl_table *table, int write, void *buffer, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/topology.h +++ linux-riscv-6.5.0/include/linux/topology.h @@ -251,7 +251,7 @@ #else static __always_inline int sched_numa_find_nth_cpu(const struct cpumask *cpus, int cpu, int node) { - return cpumask_nth(cpu, cpus); + return cpumask_nth_and(cpu, cpus, cpu_online_mask); } static inline const struct cpumask * only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/torture.h +++ linux-riscv-6.5.0/include/linux/torture.h @@ -81,7 +81,8 @@ } /* Definitions for high-resolution-timer sleeps. */ -int torture_hrtimeout_ns(ktime_t baset_ns, u32 fuzzt_ns, struct torture_random_state *trsp); +int torture_hrtimeout_ns(ktime_t baset_ns, u32 fuzzt_ns, const enum hrtimer_mode mode, + struct torture_random_state *trsp); int torture_hrtimeout_us(u32 baset_us, u32 fuzzt_ns, struct torture_random_state *trsp); int torture_hrtimeout_ms(u32 baset_ms, u32 fuzzt_us, struct torture_random_state *trsp); int torture_hrtimeout_jiffies(u32 baset_j, struct torture_random_state *trsp); @@ -108,12 +109,15 @@ bool torture_must_stop_irq(void); void torture_kthread_stopping(char *title); int _torture_create_kthread(int (*fn)(void *arg), void *arg, char *s, char *m, - char *f, struct task_struct **tp); + char *f, struct task_struct **tp, void (*cbf)(struct task_struct *tp)); void _torture_stop_kthread(char *m, struct task_struct **tp); #define torture_create_kthread(n, arg, tp) \ _torture_create_kthread(n, (arg), #n, "Creating " #n " task", \ - "Failed to create " #n, &(tp)) + "Failed to create " #n, &(tp), NULL) +#define torture_create_kthread_cb(n, arg, tp, cbf) \ + _torture_create_kthread(n, (arg), #n, "Creating " #n " task", \ + "Failed to create " #n, &(tp), cbf) #define torture_stop_kthread(n, tp) \ _torture_stop_kthread("Stopping " #n " task", &(tp)) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/udp.h +++ linux-riscv-6.5.0/include/linux/udp.h @@ -32,25 +32,30 @@ return (num + net_hash_mix(net)) & mask; } +enum { + UDP_FLAGS_CORK, /* Cork is required */ + UDP_FLAGS_NO_CHECK6_TX, /* Send zero UDP6 checksums on TX? */ + UDP_FLAGS_NO_CHECK6_RX, /* Allow zero UDP6 checksums on RX? */ + UDP_FLAGS_GRO_ENABLED, /* Request GRO aggregation */ + UDP_FLAGS_ACCEPT_FRAGLIST, + UDP_FLAGS_ACCEPT_L4, + UDP_FLAGS_ENCAP_ENABLED, /* This socket enabled encap */ + UDP_FLAGS_UDPLITE_SEND_CC, /* set via udplite setsockopt */ + UDP_FLAGS_UDPLITE_RECV_CC, /* set via udplite setsockopt */ +}; + struct udp_sock { /* inet_sock has to be the first member */ struct inet_sock inet; #define udp_port_hash inet.sk.__sk_common.skc_u16hashes[0] #define udp_portaddr_hash inet.sk.__sk_common.skc_u16hashes[1] #define udp_portaddr_node inet.sk.__sk_common.skc_portaddr_node + + unsigned long udp_flags; + int pending; /* Any pending frames ? */ - unsigned int corkflag; /* Cork is required */ __u8 encap_type; /* Is this an Encapsulation socket? */ - unsigned char no_check6_tx:1,/* Send zero UDP6 checksums on TX? */ - no_check6_rx:1,/* Allow zero UDP6 checksums on RX? */ - encap_enabled:1, /* This socket enabled encap - * processing; UDP tunnels and - * different encapsulation layer set - * this - */ - gro_enabled:1, /* Request GRO aggregation */ - accept_udp_l4:1, - accept_udp_fraglist:1; + /* * Following member retains the information to create a UDP header * when the socket is uncorked. @@ -62,12 +67,6 @@ */ __u16 pcslen; __u16 pcrlen; -/* indicator bits used by pcflag: */ -#define UDPLITE_BIT 0x1 /* set by udplite proto init function */ -#define UDPLITE_SEND_CC 0x2 /* set via udplite setsockopt */ -#define UDPLITE_RECV_CC 0x4 /* set via udplite setsocktopt */ - __u8 pcflag; /* marks socket as UDP-Lite if > 0 */ - __u8 unused[3]; /* * For encapsulation sockets. */ @@ -95,28 +94,39 @@ int forward_threshold; }; +#define udp_test_bit(nr, sk) \ + test_bit(UDP_FLAGS_##nr, &udp_sk(sk)->udp_flags) +#define udp_set_bit(nr, sk) \ + set_bit(UDP_FLAGS_##nr, &udp_sk(sk)->udp_flags) +#define udp_test_and_set_bit(nr, sk) \ + test_and_set_bit(UDP_FLAGS_##nr, &udp_sk(sk)->udp_flags) +#define udp_clear_bit(nr, sk) \ + clear_bit(UDP_FLAGS_##nr, &udp_sk(sk)->udp_flags) +#define udp_assign_bit(nr, sk, val) \ + assign_bit(UDP_FLAGS_##nr, &udp_sk(sk)->udp_flags, val) + #define UDP_MAX_SEGMENTS (1 << 6UL) #define udp_sk(ptr) container_of_const(ptr, struct udp_sock, inet.sk) static inline void udp_set_no_check6_tx(struct sock *sk, bool val) { - udp_sk(sk)->no_check6_tx = val; + udp_assign_bit(NO_CHECK6_TX, sk, val); } static inline void udp_set_no_check6_rx(struct sock *sk, bool val) { - udp_sk(sk)->no_check6_rx = val; + udp_assign_bit(NO_CHECK6_RX, sk, val); } -static inline bool udp_get_no_check6_tx(struct sock *sk) +static inline bool udp_get_no_check6_tx(const struct sock *sk) { - return udp_sk(sk)->no_check6_tx; + return udp_test_bit(NO_CHECK6_TX, sk); } -static inline bool udp_get_no_check6_rx(struct sock *sk) +static inline bool udp_get_no_check6_rx(const struct sock *sk) { - return udp_sk(sk)->no_check6_rx; + return udp_test_bit(NO_CHECK6_RX, sk); } static inline void udp_cmsg_recv(struct msghdr *msg, struct sock *sk, @@ -135,10 +145,12 @@ if (!skb_is_gso(skb)) return false; - if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4 && !udp_sk(sk)->accept_udp_l4) + if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4 && + !udp_test_bit(ACCEPT_L4, sk)) return true; - if (skb_shinfo(skb)->gso_type & SKB_GSO_FRAGLIST && !udp_sk(sk)->accept_udp_fraglist) + if (skb_shinfo(skb)->gso_type & SKB_GSO_FRAGLIST && + !udp_test_bit(ACCEPT_FRAGLIST, sk)) return true; return false; @@ -146,8 +158,8 @@ static inline void udp_allow_gso(struct sock *sk) { - udp_sk(sk)->accept_udp_l4 = 1; - udp_sk(sk)->accept_udp_fraglist = 1; + udp_set_bit(ACCEPT_L4, sk); + udp_set_bit(ACCEPT_FRAGLIST, sk); } #define udp_portaddr_for_each_entry(__sk, list) \ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/verification.h +++ linux-riscv-6.5.0/include/linux/verification.h @@ -8,6 +8,7 @@ #ifndef _LINUX_VERIFICATION_H #define _LINUX_VERIFICATION_H +#include #include /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/virtio_net.h +++ linux-riscv-6.5.0/include/linux/virtio_net.h @@ -3,8 +3,8 @@ #define _LINUX_VIRTIO_NET_H #include +#include #include -#include #include static inline bool virtio_net_hdr_match_proto(__be16 protocol, __u8 gso_type) @@ -151,9 +151,22 @@ unsigned int nh_off = p_off; struct skb_shared_info *shinfo = skb_shinfo(skb); - /* UFO may not include transport header in gso_size. */ - if (gso_type & SKB_GSO_UDP) + switch (gso_type & ~SKB_GSO_TCP_ECN) { + case SKB_GSO_UDP: + /* UFO may not include transport header in gso_size. */ nh_off -= thlen; + break; + case SKB_GSO_UDP_L4: + if (!(hdr->flags & VIRTIO_NET_HDR_F_NEEDS_CSUM)) + return -EINVAL; + if (skb->csum_offset != offsetof(struct udphdr, check)) + return -EINVAL; + if (skb->len - p_off > gso_size * UDP_MAX_SEGMENTS) + return -EINVAL; + if (gso_type != SKB_GSO_UDP_L4) + return -EINVAL; + break; + } /* Kernel has a special handling for GSO_BY_FRAGS. */ if (gso_size == GSO_BY_FRAGS) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/linux/workqueue.h +++ linux-riscv-6.5.0/include/linux/workqueue.h @@ -222,18 +222,16 @@ * to generate better code. */ #ifdef CONFIG_LOCKDEP -#define __INIT_WORK(_work, _func, _onstack) \ +#define __INIT_WORK_KEY(_work, _func, _onstack, _key) \ do { \ - static struct lock_class_key __key; \ - \ __init_work((_work), _onstack); \ (_work)->data = (atomic_long_t) WORK_DATA_INIT(); \ - lockdep_init_map(&(_work)->lockdep_map, "(work_completion)"#_work, &__key, 0); \ + lockdep_init_map(&(_work)->lockdep_map, "(work_completion)"#_work, (_key), 0); \ INIT_LIST_HEAD(&(_work)->entry); \ (_work)->func = (_func); \ } while (0) #else -#define __INIT_WORK(_work, _func, _onstack) \ +#define __INIT_WORK_KEY(_work, _func, _onstack, _key) \ do { \ __init_work((_work), _onstack); \ (_work)->data = (atomic_long_t) WORK_DATA_INIT(); \ @@ -242,12 +240,22 @@ } while (0) #endif +#define __INIT_WORK(_work, _func, _onstack) \ + do { \ + static __maybe_unused struct lock_class_key __key; \ + \ + __INIT_WORK_KEY(_work, _func, _onstack, &__key); \ + } while (0) + #define INIT_WORK(_work, _func) \ __INIT_WORK((_work), (_func), 0) #define INIT_WORK_ONSTACK(_work, _func) \ __INIT_WORK((_work), (_func), 1) +#define INIT_WORK_ONSTACK_KEY(_work, _func, _key) \ + __INIT_WORK_KEY((_work), (_func), 1, _key) + #define __INIT_DELAYED_WORK(_work, _func, _tflags) \ do { \ INIT_WORK(&(_work)->work, (_func)); \ @@ -683,8 +691,32 @@ return fn(arg); } #else -long work_on_cpu(int cpu, long (*fn)(void *), void *arg); -long work_on_cpu_safe(int cpu, long (*fn)(void *), void *arg); +long work_on_cpu_key(int cpu, long (*fn)(void *), + void *arg, struct lock_class_key *key); +/* + * A new key is defined for each caller to make sure the work + * associated with the function doesn't share its locking class. + */ +#define work_on_cpu(_cpu, _fn, _arg) \ +({ \ + static struct lock_class_key __key; \ + \ + work_on_cpu_key(_cpu, _fn, _arg, &__key); \ +}) + +long work_on_cpu_safe_key(int cpu, long (*fn)(void *), + void *arg, struct lock_class_key *key); + +/* + * A new key is defined for each caller to make sure the work + * associated with the function doesn't share its locking class. + */ +#define work_on_cpu_safe(_cpu, _fn, _arg) \ +({ \ + static struct lock_class_key __key; \ + \ + work_on_cpu_safe_key(_cpu, _fn, _arg, &__key); \ +}) #endif /* CONFIG_SMP */ #ifdef CONFIG_FREEZER only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/net/af_unix.h +++ linux-riscv-6.5.0/include/net/af_unix.h @@ -75,6 +75,7 @@ }; #define unix_sk(ptr) container_of_const(ptr, struct unix_sock, sk) +#define unix_peer(sk) (unix_sk(sk)->peer) #define peer_wait peer_wq.wait only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/net/bluetooth/hci_mon.h +++ linux-riscv-6.5.0/include/net/bluetooth/hci_mon.h @@ -56,7 +56,7 @@ __u8 type; __u8 bus; bdaddr_t bdaddr; - char name[8]; + char name[8] __nonstring; } __packed; #define HCI_MON_NEW_INDEX_SIZE 16 only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/net/flow.h +++ linux-riscv-6.5.0/include/net/flow.h @@ -40,8 +40,8 @@ #define FLOWI_FLAG_KNOWN_NH 0x02 __u32 flowic_secid; kuid_t flowic_uid; - struct flowi_tunnel flowic_tun_key; __u32 flowic_multipath_hash; + struct flowi_tunnel flowic_tun_key; }; union flowi_uli { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/net/genetlink.h +++ linux-riscv-6.5.0/include/net/genetlink.h @@ -12,10 +12,12 @@ * struct genl_multicast_group - generic netlink multicast group * @name: name of the multicast group, names are per-family * @flags: GENL_* flags (%GENL_ADMIN_PERM or %GENL_UNS_ADMIN_PERM) + * @cap_sys_admin: whether %CAP_SYS_ADMIN is required for binding */ struct genl_multicast_group { char name[GENL_NAMSIZ]; u8 flags; + u8 cap_sys_admin:1; }; struct genl_split_ops; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/net/netfilter/nf_conntrack_act_ct.h +++ linux-riscv-6.5.0/include/net/netfilter/nf_conntrack_act_ct.h @@ -20,7 +20,22 @@ #endif } -static inline struct nf_conn_act_ct_ext *nf_conn_act_ct_ext_add(struct nf_conn *ct) +static inline void nf_conn_act_ct_ext_fill(struct sk_buff *skb, struct nf_conn *ct, + enum ip_conntrack_info ctinfo) +{ +#if IS_ENABLED(CONFIG_NET_ACT_CT) + struct nf_conn_act_ct_ext *act_ct_ext; + + act_ct_ext = nf_conn_act_ct_ext_find(ct); + if (dev_net(skb->dev) == &init_net && act_ct_ext) + act_ct_ext->ifindex[CTINFO2DIR(ctinfo)] = skb->dev->ifindex; +#endif +} + +static inline struct +nf_conn_act_ct_ext *nf_conn_act_ct_ext_add(struct sk_buff *skb, + struct nf_conn *ct, + enum ip_conntrack_info ctinfo) { #if IS_ENABLED(CONFIG_NET_ACT_CT) struct nf_conn_act_ct_ext *act_ct = nf_ct_ext_find(ct, NF_CT_EXT_ACT_CT); @@ -29,22 +44,11 @@ return act_ct; act_ct = nf_ct_ext_add(ct, NF_CT_EXT_ACT_CT, GFP_ATOMIC); + nf_conn_act_ct_ext_fill(skb, ct, ctinfo); return act_ct; #else return NULL; #endif } -static inline void nf_conn_act_ct_ext_fill(struct sk_buff *skb, struct nf_conn *ct, - enum ip_conntrack_info ctinfo) -{ -#if IS_ENABLED(CONFIG_NET_ACT_CT) - struct nf_conn_act_ct_ext *act_ct_ext; - - act_ct_ext = nf_conn_act_ct_ext_find(ct); - if (dev_net(skb->dev) == &init_net && act_ct_ext) - act_ct_ext->ifindex[CTINFO2DIR(ctinfo)] = skb->dev->ifindex; -#endif -} - #endif /* _NF_CONNTRACK_ACT_CT_H */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/net/netfilter/nf_flow_table.h +++ linux-riscv-6.5.0/include/net/netfilter/nf_flow_table.h @@ -53,6 +53,7 @@ struct list_head list; int family; int (*init)(struct nf_flowtable *ft); + bool (*gc)(const struct flow_offload *flow); int (*setup)(struct nf_flowtable *ft, struct net_device *dev, enum flow_block_command cmd); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/net/netns/xfrm.h +++ linux-riscv-6.5.0/include/net/netns/xfrm.h @@ -50,6 +50,7 @@ struct list_head policy_all; struct hlist_head *policy_byidx; unsigned int policy_idx_hmask; + unsigned int idx_generator; struct hlist_head policy_inexact[XFRM_POLICY_MAX]; struct xfrm_policy_hash policy_bydst[XFRM_POLICY_MAX]; unsigned int policy_count[XFRM_POLICY_MAX * 2]; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/net/tc_act/tc_ct.h +++ linux-riscv-6.5.0/include/net/tc_act/tc_ct.h @@ -57,6 +57,11 @@ return to_ct_params(a)->nf_ft; } +static inline struct nf_conntrack_helper *tcf_ct_helper(const struct tc_action *a) +{ + return to_ct_params(a)->helper; +} + #else static inline uint16_t tcf_ct_zone(const struct tc_action *a) { return 0; } static inline int tcf_ct_action(const struct tc_action *a) { return 0; } @@ -64,6 +69,10 @@ { return NULL; } +static inline struct nf_conntrack_helper *tcf_ct_helper(const struct tc_action *a) +{ + return NULL; +} #endif /* CONFIG_NF_CONNTRACK */ #if IS_ENABLED(CONFIG_NET_ACT_CT) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/net/udp_tunnel.h +++ linux-riscv-6.5.0/include/net/udp_tunnel.h @@ -174,16 +174,13 @@ } #endif -static inline void udp_tunnel_encap_enable(struct socket *sock) +static inline void udp_tunnel_encap_enable(struct sock *sk) { - struct udp_sock *up = udp_sk(sock->sk); - - if (up->encap_enabled) + if (udp_test_and_set_bit(ENCAP_ENABLED, sk)) return; - up->encap_enabled = 1; #if IS_ENABLED(CONFIG_IPV6) - if (sock->sk->sk_family == PF_INET6) + if (READ_ONCE(sk->sk_family) == PF_INET6) ipv6_stub->udpv6_encap_enable(); #endif udp_encap_enable(); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/net/udplite.h +++ linux-riscv-6.5.0/include/net/udplite.h @@ -66,14 +66,18 @@ /* Fast-path computation of checksum. Socket may not be locked. */ static inline __wsum udplite_csum(struct sk_buff *skb) { - const struct udp_sock *up = udp_sk(skb->sk); const int off = skb_transport_offset(skb); + const struct sock *sk = skb->sk; int len = skb->len - off; - if ((up->pcflag & UDPLITE_SEND_CC) && up->pcslen < len) { - if (0 < up->pcslen) - len = up->pcslen; - udp_hdr(skb)->len = htons(up->pcslen); + if (udp_test_bit(UDPLITE_SEND_CC, sk)) { + u16 pcslen = READ_ONCE(udp_sk(sk)->pcslen); + + if (pcslen < len) { + if (pcslen > 0) + len = pcslen; + udp_hdr(skb)->len = htons(pcslen); + } } skb->ip_summed = CHECKSUM_NONE; /* no HW support for checksumming */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/rdma/ib_umem.h +++ linux-riscv-6.5.0/include/rdma/ib_umem.h @@ -77,6 +77,13 @@ { __rdma_block_iter_start(biter, umem->sgt_append.sgt.sgl, umem->sgt_append.sgt.nents, pgsz); + biter->__sg_advance = ib_umem_offset(umem) & ~(pgsz - 1); + biter->__sg_numblocks = ib_umem_num_dma_blocks(umem, pgsz); +} + +static inline bool __rdma_umem_block_iter_next(struct ib_block_iter *biter) +{ + return __rdma_block_iter_next(biter) && biter->__sg_numblocks--; } /** @@ -92,7 +99,7 @@ */ #define rdma_umem_for_each_dma_block(umem, biter, pgsz) \ for (__rdma_umem_block_iter_start(biter, umem, pgsz); \ - __rdma_block_iter_next(biter);) + __rdma_umem_block_iter_next(biter);) #ifdef CONFIG_INFINIBAND_USER_MEM only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/rdma/ib_verbs.h +++ linux-riscv-6.5.0/include/rdma/ib_verbs.h @@ -2846,6 +2846,7 @@ /* internal states */ struct scatterlist *__sg; /* sg holding the current aligned block */ dma_addr_t __dma_addr; /* unaligned DMA address of this block */ + size_t __sg_numblocks; /* ib_umem_num_dma_blocks() */ unsigned int __sg_nents; /* number of SG entries */ unsigned int __sg_advance; /* number of bytes to advance in sg in next step */ unsigned int __pg_bit; /* alignment of current block */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/soc/tegra/bpmp.h +++ linux-riscv-6.5.0/include/soc/tegra/bpmp.h @@ -102,8 +102,12 @@ #ifdef CONFIG_DEBUG_FS struct dentry *debugfs_mirror; #endif + + bool suspended; }; +#define TEGRA_BPMP_MESSAGE_RESET BIT(0) + struct tegra_bpmp_message { unsigned int mrq; @@ -117,6 +121,8 @@ size_t size; int ret; } rx; + + unsigned long flags; }; #if IS_ENABLED(CONFIG_TEGRA_BPMP) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/sound/soc-acpi.h +++ linux-riscv-6.5.0/include/sound/soc-acpi.h @@ -67,6 +67,10 @@ * @i2s_link_mask: I2S/TDM links enabled on the board * @num_dai_drivers: number of elements in @dai_drivers * @dai_drivers: pointer to dai_drivers, used e.g. in nocodec mode + * @subsystem_vendor: optional PCI SSID vendor value + * @subsystem_device: optional PCI SSID device value + * @subsystem_id_set: true if a value has been written to + * subsystem_vendor and subsystem_device. */ struct snd_soc_acpi_mach_params { u32 acpi_ipc_irq_index; @@ -79,6 +83,9 @@ u32 i2s_link_mask; u32 num_dai_drivers; struct snd_soc_dai_driver *dai_drivers; + unsigned short subsystem_vendor; + unsigned short subsystem_device; + bool subsystem_id_set; }; /** only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/sound/soc-card.h +++ linux-riscv-6.5.0/include/sound/soc-card.h @@ -59,6 +59,43 @@ void snd_soc_card_remove_dai_link(struct snd_soc_card *card, struct snd_soc_dai_link *dai_link); +#ifdef CONFIG_PCI +static inline void snd_soc_card_set_pci_ssid(struct snd_soc_card *card, + unsigned short vendor, + unsigned short device) +{ + card->pci_subsystem_vendor = vendor; + card->pci_subsystem_device = device; + card->pci_subsystem_set = true; +} + +static inline int snd_soc_card_get_pci_ssid(struct snd_soc_card *card, + unsigned short *vendor, + unsigned short *device) +{ + if (!card->pci_subsystem_set) + return -ENOENT; + + *vendor = card->pci_subsystem_vendor; + *device = card->pci_subsystem_device; + + return 0; +} +#else /* !CONFIG_PCI */ +static inline void snd_soc_card_set_pci_ssid(struct snd_soc_card *card, + unsigned short vendor, + unsigned short device) +{ +} + +static inline int snd_soc_card_get_pci_ssid(struct snd_soc_card *card, + unsigned short *vendor, + unsigned short *device) +{ + return -ENOENT; +} +#endif /* CONFIG_PCI */ + /* device driver data */ static inline void snd_soc_card_set_drvdata(struct snd_soc_card *card, void *data) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/sound/soc-dai.h +++ linux-riscv-6.5.0/include/sound/soc-dai.h @@ -355,6 +355,7 @@ /* bit field */ unsigned int no_capture_mute:1; + unsigned int mute_unmute_on_trigger:1; }; struct snd_soc_cdai_ops { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/sound/soc-dapm.h +++ linux-riscv-6.5.0/include/sound/soc-dapm.h @@ -423,6 +423,7 @@ int snd_soc_dapm_update_dai(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params, struct snd_soc_dai *dai); +int snd_soc_dapm_widget_name_cmp(struct snd_soc_dapm_widget *widget, const char *s); /* dapm path setup */ int snd_soc_dapm_new_widgets(struct snd_soc_card *card); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/sound/soc.h +++ linux-riscv-6.5.0/include/sound/soc.h @@ -931,6 +931,17 @@ #ifdef CONFIG_DMI char dmi_longname[80]; #endif /* CONFIG_DMI */ + +#ifdef CONFIG_PCI + /* + * PCI does not define 0 as invalid, so pci_subsystem_set indicates + * whether a value has been written to these fields. + */ + unsigned short pci_subsystem_vendor; + unsigned short pci_subsystem_device; + bool pci_subsystem_set; +#endif /* CONFIG_PCI */ + char topology_shortname[32]; struct device *dev; @@ -1125,6 +1136,8 @@ unsigned int pop_wait:1; unsigned int fe_compr:1; /* for Dynamic PCM */ + bool initialized; + int num_components; struct snd_soc_component *components[]; /* CPU/Codec/Platform */ }; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/sound/sof.h +++ linux-riscv-6.5.0/include/sound/sof.h @@ -64,6 +64,14 @@ const char *name; const char *platform; + /* + * PCI SSID. As PCI does not define 0 as invalid, the subsystem_id_set + * flag indicates that a value has been written to these members. + */ + unsigned short subsystem_vendor; + unsigned short subsystem_device; + bool subsystem_id_set; + struct device *dev; /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/trace/events/btrfs.h +++ linux-riscv-6.5.0/include/trace/events/btrfs.h @@ -38,7 +38,6 @@ __print_symbolic(type, \ { BTRFS_TREE_BLOCK_REF_KEY, "TREE_BLOCK_REF" }, \ { BTRFS_EXTENT_DATA_REF_KEY, "EXTENT_DATA_REF" }, \ - { BTRFS_EXTENT_REF_V0_KEY, "EXTENT_REF_V0" }, \ { BTRFS_SHARED_BLOCK_REF_KEY, "SHARED_BLOCK_REF" }, \ { BTRFS_SHARED_DATA_REF_KEY, "SHARED_DATA_REF" }) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/trace/events/neigh.h +++ linux-riscv-6.5.0/include/trace/events/neigh.h @@ -39,7 +39,6 @@ ), TP_fast_assign( - struct in6_addr *pin6; __be32 *p32; __entry->family = tbl->family; @@ -47,7 +46,6 @@ __entry->entries = atomic_read(&tbl->gc_entries); __entry->created = n != NULL; __entry->gc_exempt = exempt_from_gc; - pin6 = (struct in6_addr *)__entry->primary_key6; p32 = (__be32 *)__entry->primary_key4; if (tbl->family == AF_INET) @@ -57,6 +55,8 @@ #if IS_ENABLED(CONFIG_IPV6) if (tbl->family == AF_INET6) { + struct in6_addr *pin6; + pin6 = (struct in6_addr *)__entry->primary_key6; *pin6 = *(struct in6_addr *)pkey; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/trace/events/rxrpc.h +++ linux-riscv-6.5.0/include/trace/events/rxrpc.h @@ -328,7 +328,7 @@ E_(rxrpc_rtt_tx_ping, "PING") #define rxrpc_rtt_rx_traces \ - EM(rxrpc_rtt_rx_cancel, "CNCL") \ + EM(rxrpc_rtt_rx_other_ack, "OACK") \ EM(rxrpc_rtt_rx_obsolete, "OBSL") \ EM(rxrpc_rtt_rx_lost, "LOST") \ EM(rxrpc_rtt_rx_ping_response, "PONG") \ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/uapi/linux/btrfs_tree.h +++ linux-riscv-6.5.0/include/uapi/linux/btrfs_tree.h @@ -220,7 +220,11 @@ #define BTRFS_EXTENT_DATA_REF_KEY 178 -#define BTRFS_EXTENT_REF_V0_KEY 180 +/* + * Obsolete key. Defintion removed in 6.6, value may be reused in the future. + * + * #define BTRFS_EXTENT_REF_V0_KEY 180 + */ #define BTRFS_SHARED_BLOCK_REF_KEY 182 only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/uapi/linux/fcntl.h +++ linux-riscv-6.5.0/include/uapi/linux/fcntl.h @@ -116,5 +116,8 @@ #define AT_HANDLE_FID AT_REMOVEDIR /* file handle is needed to compare object identity and may not be usable to open_by_handle_at(2) */ +#if defined(__KERNEL__) +#define AT_GETATTR_NOSEC 0x80000000 +#endif #endif /* _UAPI_LINUX_FCNTL_H */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/uapi/linux/gtp.h +++ linux-riscv-6.5.0/include/uapi/linux/gtp.h @@ -33,6 +33,6 @@ GTPA_PAD, __GTPA_MAX, }; -#define GTPA_MAX (__GTPA_MAX + 1) +#define GTPA_MAX (__GTPA_MAX - 1) #endif /* _UAPI_LINUX_GTP_H_ */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/uapi/linux/v4l2-subdev.h +++ linux-riscv-6.5.0/include/uapi/linux/v4l2-subdev.h @@ -239,7 +239,7 @@ * set (which is the default), the 'stream' fields will be forced to 0 by the * kernel. */ - #define V4L2_SUBDEV_CLIENT_CAP_STREAMS (1U << 0) + #define V4L2_SUBDEV_CLIENT_CAP_STREAMS (1ULL << 0) /** * struct v4l2_subdev_client_capability - Capabilities of the client accessing only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/uapi/linux/vm_sockets.h +++ linux-riscv-6.5.0/include/uapi/linux/vm_sockets.h @@ -191,4 +191,21 @@ #define IOCTL_VM_SOCKETS_GET_LOCAL_CID _IO(7, 0xb9) +/* MSG_ZEROCOPY notifications are encoded in the standard error format, + * sock_extended_err. See Documentation/networking/msg_zerocopy.rst in + * kernel source tree for more details. + */ + +/* 'cmsg_level' field value of 'struct cmsghdr' for notification parsing + * when MSG_ZEROCOPY flag is used on transmissions. + */ + +#define SOL_VSOCK 287 + +/* 'cmsg_type' field value of 'struct cmsghdr' for notification parsing + * when MSG_ZEROCOPY flag is used on transmissions. + */ + +#define VSOCK_RECVERR 1 + #endif /* _UAPI_VM_SOCKETS_H */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/uapi/scsi/scsi_bsg_mpi3mr.h +++ linux-riscv-6.5.0/include/uapi/scsi/scsi_bsg_mpi3mr.h @@ -491,6 +491,8 @@ #define MPI3MR_NVME_DATA_FORMAT_PRP 0 #define MPI3MR_NVME_DATA_FORMAT_SGL1 1 #define MPI3MR_NVME_DATA_FORMAT_SGL2 2 +#define MPI3MR_NVMESGL_DATA_SEGMENT 0x00 +#define MPI3MR_NVMESGL_LAST_SEGMENT 0x03 /* MPI3: task management related definitions */ struct mpi3_scsi_task_mgmt_request { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/video/sticore.h +++ linux-riscv-6.5.0/include/video/sticore.h @@ -232,7 +232,7 @@ u8 height; u8 font_type; /* language type */ u8 bytes_per_char; - u32 next_font; + s32 next_font; /* note: signed int */ u8 underline_height; u8 underline_pos; u8 res008[2]; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/include/xen/events.h +++ linux-riscv-6.5.0/include/xen/events.h @@ -106,8 +106,7 @@ evtchn_port_t evtchn_from_irq(unsigned irq); int xen_set_callback_via(uint64_t via); -void xen_evtchn_do_upcall(struct pt_regs *regs); -int xen_hvm_evtchn_do_upcall(void); +int xen_evtchn_do_upcall(void); /* Bind a pirq for a physical interrupt to an irq. */ int xen_bind_pirq_gsi_to_irq(unsigned gsi, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/init/Makefile +++ linux-riscv-6.5.0/init/Makefile @@ -60,4 +60,5 @@ $(obj)/version-timestamp.o: include/generated/utsversion.h CFLAGS_version-timestamp.o := -include include/generated/utsversion.h KASAN_SANITIZE_version-timestamp.o := n +KCSAN_SANITIZE_version-timestamp.o := n GCOV_PROFILE_version-timestamp.o := n only in patch2: unchanged: --- linux-riscv-6.5.0.orig/init/main.c +++ linux-riscv-6.5.0/init/main.c @@ -530,6 +530,10 @@ { size_t len = strlen(param); + /* Handle params aliased to sysctls */ + if (sysctl_is_alias(param)) + return 0; + repair_env_string(param, val); /* Handle obsolete-style parameters */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/io_uring/kbuf.h +++ linux-riscv-6.5.0/io_uring/kbuf.h @@ -15,6 +15,7 @@ struct page **buf_pages; struct io_uring_buf_ring *buf_ring; }; + struct rcu_head rcu; }; __u16 bgid; @@ -28,6 +29,8 @@ __u8 is_mapped; /* ring mapped provided buffers, but mmap'ed by application */ __u8 is_mmap; + /* bl is visible from an RCU point of view for lookup */ + __u8 is_ready; }; struct io_buffer { @@ -51,6 +54,8 @@ int io_register_pbuf_ring(struct io_ring_ctx *ctx, void __user *arg); int io_unregister_pbuf_ring(struct io_ring_ctx *ctx, void __user *arg); +void io_kbuf_mmap_list_free(struct io_ring_ctx *ctx); + unsigned int __io_put_kbuf(struct io_kiocb *req, unsigned issue_flags); void io_kbuf_recycle_legacy(struct io_kiocb *req, unsigned issue_flags); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/audit_watch.c +++ linux-riscv-6.5.0/kernel/audit_watch.c @@ -527,11 +527,18 @@ unsigned long ino; dev_t dev; - exe_file = get_task_exe_file(tsk); + /* only do exe filtering if we are recording @current events/records */ + if (tsk != current) + return 0; + + if (!current->mm) + return 0; + exe_file = get_mm_exe_file(current->mm); if (!exe_file) return 0; ino = file_inode(exe_file)->i_ino; dev = file_inode(exe_file)->i_sb->s_dev; fput(exe_file); + return audit_mark_compare(mark, ino, dev); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/bpf/hashtab.c +++ linux-riscv-6.5.0/kernel/bpf/hashtab.c @@ -155,13 +155,15 @@ hash = hash & min_t(u32, HASHTAB_MAP_LOCK_MASK, htab->n_buckets - 1); preempt_disable(); + local_irq_save(flags); if (unlikely(__this_cpu_inc_return(*(htab->map_locked[hash])) != 1)) { __this_cpu_dec(*(htab->map_locked[hash])); + local_irq_restore(flags); preempt_enable(); return -EBUSY; } - raw_spin_lock_irqsave(&b->raw_lock, flags); + raw_spin_lock(&b->raw_lock); *pflags = flags; return 0; @@ -172,8 +174,9 @@ unsigned long flags) { hash = hash & min_t(u32, HASHTAB_MAP_LOCK_MASK, htab->n_buckets - 1); - raw_spin_unlock_irqrestore(&b->raw_lock, flags); + raw_spin_unlock(&b->raw_lock); __this_cpu_dec(*(htab->map_locked[hash])); + local_irq_restore(flags); preempt_enable(); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/bpf/memalloc.c +++ linux-riscv-6.5.0/kernel/bpf/memalloc.c @@ -712,6 +712,8 @@ memcg = get_memcg(c); old_memcg = set_active_memcg(memcg); ret = __alloc(c, NUMA_NO_NODE, GFP_KERNEL | __GFP_NOWARN | __GFP_ACCOUNT); + if (ret) + *(struct bpf_mem_cache **)ret = c; set_active_memcg(old_memcg); mem_cgroup_put(memcg); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/cgroup/cgroup.c +++ linux-riscv-6.5.0/kernel/cgroup/cgroup.c @@ -3836,14 +3836,6 @@ return psi_trigger_poll(&ctx->psi.trigger, of->file, pt); } -static int cgroup_pressure_open(struct kernfs_open_file *of) -{ - if (of->file->f_mode & FMODE_WRITE && !capable(CAP_SYS_RESOURCE)) - return -EPERM; - - return 0; -} - static void cgroup_pressure_release(struct kernfs_open_file *of) { struct cgroup_file_ctx *ctx = of->priv; @@ -5243,7 +5235,6 @@ { .name = "io.pressure", .file_offset = offsetof(struct cgroup, psi_files[PSI_IO]), - .open = cgroup_pressure_open, .seq_show = cgroup_io_pressure_show, .write = cgroup_io_pressure_write, .poll = cgroup_pressure_poll, @@ -5252,7 +5243,6 @@ { .name = "memory.pressure", .file_offset = offsetof(struct cgroup, psi_files[PSI_MEM]), - .open = cgroup_pressure_open, .seq_show = cgroup_memory_pressure_show, .write = cgroup_memory_pressure_write, .poll = cgroup_pressure_poll, @@ -5261,7 +5251,6 @@ { .name = "cpu.pressure", .file_offset = offsetof(struct cgroup, psi_files[PSI_CPU]), - .open = cgroup_pressure_open, .seq_show = cgroup_cpu_pressure_show, .write = cgroup_cpu_pressure_write, .poll = cgroup_pressure_poll, @@ -5271,7 +5260,6 @@ { .name = "irq.pressure", .file_offset = offsetof(struct cgroup, psi_files[PSI_IRQ]), - .open = cgroup_pressure_open, .seq_show = cgroup_irq_pressure_show, .write = cgroup_irq_pressure_write, .poll = cgroup_pressure_poll, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/cgroup/legacy_freezer.c +++ linux-riscv-6.5.0/kernel/cgroup/legacy_freezer.c @@ -66,9 +66,15 @@ bool cgroup_freezing(struct task_struct *task) { bool ret; + unsigned int state; rcu_read_lock(); - ret = task_freezer(task)->state & CGROUP_FREEZING; + /* Check if the cgroup is still FREEZING, but not FROZEN. The extra + * !FROZEN check is required, because the FREEZING bit is not cleared + * when the state FROZEN is reached. + */ + state = task_freezer(task)->state; + ret = (state & CGROUP_FREEZING) && !(state & CGROUP_FROZEN); rcu_read_unlock(); return ret; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/debug/debug_core.c +++ linux-riscv-6.5.0/kernel/debug/debug_core.c @@ -1006,6 +1006,9 @@ if (panic_timeout) return; + debug_locks_off(); + console_flush_on_panic(CONSOLE_FLUSH_PENDING); + if (dbg_kdb_mode) kdb_printf("PANIC: %s\n", msg); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/events/ring_buffer.c +++ linux-riscv-6.5.0/kernel/events/ring_buffer.c @@ -699,6 +699,12 @@ watermark = 0; } + /* + * kcalloc_node() is unable to allocate buffer if the size is larger + * than: PAGE_SIZE << MAX_ORDER; directly bail out in this case. + */ + if (get_order((unsigned long)nr_pages * sizeof(void *)) > MAX_ORDER) + return -ENOMEM; rb->aux_pages = kcalloc_node(nr_pages, sizeof(void *), GFP_KERNEL, node); if (!rb->aux_pages) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/futex/core.c +++ linux-riscv-6.5.0/kernel/futex/core.c @@ -248,7 +248,17 @@ * but access_ok() should be faster than find_vma() */ if (!fshared) { - key->private.mm = mm; + /* + * On no-MMU, shared futexes are treated as private, therefore + * we must not include the current process in the key. Since + * there is only one address space, the address is a unique key + * on its own. + */ + if (IS_ENABLED(CONFIG_MMU)) + key->private.mm = mm; + else + key->private.mm = NULL; + key->private.address = address; return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/irq/debugfs.c +++ linux-riscv-6.5.0/kernel/irq/debugfs.c @@ -121,7 +121,6 @@ BIT_MASK_DESCR(IRQD_AFFINITY_ON_ACTIVATE), BIT_MASK_DESCR(IRQD_MANAGED_SHUTDOWN), BIT_MASK_DESCR(IRQD_CAN_RESERVE), - BIT_MASK_DESCR(IRQD_MSI_NOMASK_QUIRK), BIT_MASK_DESCR(IRQD_FORWARDED_TO_VCPU), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/irq/generic-chip.c +++ linux-riscv-6.5.0/kernel/irq/generic-chip.c @@ -544,21 +544,34 @@ void irq_remove_generic_chip(struct irq_chip_generic *gc, u32 msk, unsigned int clr, unsigned int set) { - unsigned int i = gc->irq_base; + unsigned int i, virq; raw_spin_lock(&gc_lock); list_del(&gc->list); raw_spin_unlock(&gc_lock); - for (; msk; msk >>= 1, i++) { + for (i = 0; msk; msk >>= 1, i++) { if (!(msk & 0x01)) continue; + /* + * Interrupt domain based chips store the base hardware + * interrupt number in gc::irq_base. Otherwise gc::irq_base + * contains the base Linux interrupt number. + */ + if (gc->domain) { + virq = irq_find_mapping(gc->domain, gc->irq_base + i); + if (!virq) + continue; + } else { + virq = gc->irq_base + i; + } + /* Remove handler first. That will mask the irq line */ - irq_set_handler(i, NULL); - irq_set_chip(i, &no_irq_chip); - irq_set_chip_data(i, NULL); - irq_modify_status(i, clr, set); + irq_set_handler(virq, NULL); + irq_set_chip(virq, &no_irq_chip); + irq_set_chip_data(virq, NULL); + irq_modify_status(virq, clr, set); } } EXPORT_SYMBOL_GPL(irq_remove_generic_chip); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/irq/matrix.c +++ linux-riscv-6.5.0/kernel/irq/matrix.c @@ -466,16 +466,16 @@ } /** - * irq_matrix_allocated - Get the number of allocated irqs on the local cpu + * irq_matrix_allocated - Get the number of allocated non-managed irqs on the local CPU * @m: Pointer to the matrix to search * - * This returns number of allocated irqs + * This returns number of allocated non-managed interrupts. */ unsigned int irq_matrix_allocated(struct irq_matrix *m) { struct cpumap *cm = this_cpu_ptr(m->maps); - return cm->allocated; + return cm->allocated - cm->managed_allocated; } #ifdef CONFIG_GENERIC_IRQ_DEBUGFS only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/irq/msi.c +++ linux-riscv-6.5.0/kernel/irq/msi.c @@ -1204,7 +1204,6 @@ #define VIRQ_CAN_RESERVE 0x01 #define VIRQ_ACTIVATE 0x02 -#define VIRQ_NOMASK_QUIRK 0x04 static int msi_init_virq(struct irq_domain *domain, int virq, unsigned int vflags) { @@ -1213,8 +1212,6 @@ if (!(vflags & VIRQ_CAN_RESERVE)) { irqd_clr_can_reserve(irqd); - if (vflags & VIRQ_NOMASK_QUIRK) - irqd_set_msi_nomask_quirk(irqd); /* * If the interrupt is managed but no CPU is available to @@ -1275,15 +1272,8 @@ * Interrupt can use a reserved vector and will not occupy * a real device vector until the interrupt is requested. */ - if (msi_check_reservation_mode(domain, info, dev)) { + if (msi_check_reservation_mode(domain, info, dev)) vflags |= VIRQ_CAN_RESERVE; - /* - * MSI affinity setting requires a special quirk (X86) when - * reservation mode is active. - */ - if (info->flags & MSI_FLAG_NOMASK_QUIRK) - vflags |= VIRQ_NOMASK_QUIRK; - } xa_for_each_range(xa, idx, desc, ctrl->first, ctrl->last) { if (!msi_desc_match(desc, MSI_DESC_NOTASSOCIATED)) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/kexec.c +++ linux-riscv-6.5.0/kernel/kexec.c @@ -242,7 +242,7 @@ ((flags & KEXEC_ARCH_MASK) != KEXEC_ARCH_DEFAULT)) return -EINVAL; - ksegments = memdup_user(segments, nr_segments * sizeof(ksegments[0])); + ksegments = memdup_array_user(segments, nr_segments, sizeof(ksegments[0])); if (IS_ERR(ksegments)) return PTR_ERR(ksegments); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/kprobes.c +++ linux-riscv-6.5.0/kernel/kprobes.c @@ -2254,7 +2254,7 @@ if (!rp->rph) return -ENOMEM; - rp->rph->rp = rp; + rcu_assign_pointer(rp->rph->rp, rp); for (i = 0; i < rp->maxactive; i++) { inst = kzalloc(sizeof(struct kretprobe_instance) + rp->data_size, GFP_KERNEL); @@ -2315,7 +2315,7 @@ #ifdef CONFIG_KRETPROBE_ON_RETHOOK rethook_free(rps[i]->rh); #else - rps[i]->rph->rp = NULL; + rcu_assign_pointer(rps[i]->rph->rp, NULL); #endif } mutex_unlock(&kprobe_mutex); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/livepatch/core.c +++ linux-riscv-6.5.0/kernel/livepatch/core.c @@ -243,7 +243,7 @@ * symbols are exported and normal relas can be used instead. */ if (!sec_vmlinux && sym_vmlinux) { - pr_err("invalid access to vmlinux symbol '%s' from module-specific livepatch relocation section", + pr_err("invalid access to vmlinux symbol '%s' from module-specific livepatch relocation section\n", sym_name); return -EINVAL; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/locking/locktorture.c +++ linux-riscv-6.5.0/kernel/locking/locktorture.c @@ -45,6 +45,7 @@ torture_param(int, rt_boost, 2, "Do periodic rt-boost. 0=Disable, 1=Only for rt_mutex, 2=For all lock types."); torture_param(int, rt_boost_factor, 50, "A factor determining how often rt-boost happens."); +torture_param(int, writer_fifo, 0, "Run writers at sched_set_fifo() priority"); torture_param(int, verbose, 1, "Enable verbose debugging printk()s"); torture_param(int, nested_locks, 0, "Number of nested locks (max = 8)"); /* Going much higher trips "BUG: MAX_LOCKDEP_CHAIN_HLOCKS too low!" errors */ @@ -809,7 +810,8 @@ bool skip_main_lock; VERBOSE_TOROUT_STRING("lock_torture_writer task started"); - set_user_nice(current, MAX_NICE); + if (!rt_task(current)) + set_user_nice(current, MAX_NICE); do { if ((torture_random(&rand) & 0xfffff) == 0) @@ -1015,8 +1017,7 @@ if (writer_tasks) { for (i = 0; i < cxt.nrealwriters_stress; i++) - torture_stop_kthread(lock_torture_writer, - writer_tasks[i]); + torture_stop_kthread(lock_torture_writer, writer_tasks[i]); kfree(writer_tasks); writer_tasks = NULL; } @@ -1244,8 +1245,9 @@ goto create_reader; /* Create writer. */ - firsterr = torture_create_kthread(lock_torture_writer, &cxt.lwsa[i], - writer_tasks[i]); + firsterr = torture_create_kthread_cb(lock_torture_writer, &cxt.lwsa[i], + writer_tasks[i], + writer_fifo ? sched_set_fifo : NULL); if (torture_init_error(firsterr)) goto unwind; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/locking/test-ww_mutex.c +++ linux-riscv-6.5.0/kernel/locking/test-ww_mutex.c @@ -466,7 +466,6 @@ } while (!time_after(jiffies, stress->timeout)); kfree(order); - kfree(stress); } struct reorder_lock { @@ -531,7 +530,6 @@ list_for_each_entry_safe(ll, ln, &locks, link) kfree(ll); kfree(order); - kfree(stress); } static void stress_one_work(struct work_struct *work) @@ -552,8 +550,6 @@ break; } } while (!time_after(jiffies, stress->timeout)); - - kfree(stress); } #define STRESS_INORDER BIT(0) @@ -564,15 +560,24 @@ static int stress(int nlocks, int nthreads, unsigned int flags) { struct ww_mutex *locks; - int n; + struct stress *stress_array; + int n, count; locks = kmalloc_array(nlocks, sizeof(*locks), GFP_KERNEL); if (!locks) return -ENOMEM; + stress_array = kmalloc_array(nthreads, sizeof(*stress_array), + GFP_KERNEL); + if (!stress_array) { + kfree(locks); + return -ENOMEM; + } + for (n = 0; n < nlocks; n++) ww_mutex_init(&locks[n], &ww_class); + count = 0; for (n = 0; nthreads; n++) { struct stress *stress; void (*fn)(struct work_struct *work); @@ -596,9 +601,7 @@ if (!fn) continue; - stress = kmalloc(sizeof(*stress), GFP_KERNEL); - if (!stress) - break; + stress = &stress_array[count++]; INIT_WORK(&stress->work, fn); stress->locks = locks; @@ -613,6 +616,7 @@ for (n = 0; n < nlocks; n++) ww_mutex_destroy(&locks[n]); + kfree(stress_array); kfree(locks); return 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/padata.c +++ linux-riscv-6.5.0/kernel/padata.c @@ -202,7 +202,7 @@ *cb_cpu = cpu; } - err = -EBUSY; + err = -EBUSY; if ((pinst->flags & PADATA_RESET)) goto out; @@ -1102,12 +1102,16 @@ */ void padata_free_shell(struct padata_shell *ps) { + struct parallel_data *pd; + if (!ps) return; mutex_lock(&ps->pinst->lock); list_del(&ps->list); - padata_free_pd(rcu_dereference_protected(ps->pd, 1)); + pd = rcu_dereference_protected(ps->pd, 1); + if (refcount_dec_and_test(&pd->refcnt)) + padata_free_pd(pd); mutex_unlock(&ps->pinst->lock); kfree(ps); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/power/snapshot.c +++ linux-riscv-6.5.0/kernel/power/snapshot.c @@ -2474,8 +2474,9 @@ pbe->copy_page = tmp; } else { /* Copy of the page will be stored in normal memory */ - kaddr = safe_pages_list; - safe_pages_list = safe_pages_list->next; + kaddr = __get_safe_page(ca->gfp_mask); + if (!kaddr) + return ERR_PTR(-ENOMEM); pbe->copy_page = virt_to_page(kaddr); } pbe->next = highmem_pblist; @@ -2655,8 +2656,9 @@ return ERR_PTR(-ENOMEM); } pbe->orig_address = page_address(page); - pbe->address = safe_pages_list; - safe_pages_list = safe_pages_list->next; + pbe->address = __get_safe_page(ca->gfp_mask); + if (!pbe->address) + return ERR_PTR(-ENOMEM); pbe->next = restore_pblist; restore_pblist = pbe; return pbe->address; @@ -2687,8 +2689,6 @@ if (handle->cur > 1 && handle->cur > nr_meta_pages + nr_copy_pages) return 0; - handle->sync_read = 1; - if (!handle->cur) { if (!buffer) /* This makes the buffer be freed by swsusp_free() */ @@ -2724,7 +2724,6 @@ memory_bm_position_reset(&orig_bm); restore_pblist = NULL; handle->buffer = get_buffer(&orig_bm, &ca); - handle->sync_read = 0; if (IS_ERR(handle->buffer)) return PTR_ERR(handle->buffer); } @@ -2734,9 +2733,8 @@ handle->buffer = get_buffer(&orig_bm, &ca); if (IS_ERR(handle->buffer)) return PTR_ERR(handle->buffer); - if (handle->buffer != buffer) - handle->sync_read = 0; } + handle->sync_read = (handle->buffer == buffer); handle->cur++; return PAGE_SIZE; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/rcu/srcutree.c +++ linux-riscv-6.5.0/kernel/rcu/srcutree.c @@ -223,7 +223,7 @@ snp->grplo = cpu; snp->grphi = cpu; } - sdp->grpmask = 1 << (cpu - sdp->mynode->grplo); + sdp->grpmask = 1UL << (cpu - sdp->mynode->grplo); } smp_store_release(&ssp->srcu_sup->srcu_size_state, SRCU_SIZE_WAIT_BARRIER); return true; @@ -782,8 +782,7 @@ spin_lock_rcu_node(sdp); /* Interrupts already disabled. */ rcu_segcblist_advance(&sdp->srcu_cblist, rcu_seq_current(&ssp->srcu_sup->srcu_gp_seq)); - (void)rcu_segcblist_accelerate(&sdp->srcu_cblist, - rcu_seq_snap(&ssp->srcu_sup->srcu_gp_seq)); + WARN_ON_ONCE(!rcu_segcblist_segempty(&sdp->srcu_cblist, RCU_NEXT_TAIL)); spin_unlock_rcu_node(sdp); /* Interrupts remain disabled. */ WRITE_ONCE(ssp->srcu_sup->srcu_gp_start, jiffies); WRITE_ONCE(ssp->srcu_sup->srcu_n_exp_nodelay, 0); @@ -833,7 +832,7 @@ int cpu; for (cpu = snp->grplo; cpu <= snp->grphi; cpu++) { - if (!(mask & (1 << (cpu - snp->grplo)))) + if (!(mask & (1UL << (cpu - snp->grplo)))) continue; srcu_schedule_cbs_sdp(per_cpu_ptr(ssp->sda, cpu), delay); } @@ -1242,10 +1241,37 @@ spin_lock_irqsave_sdp_contention(sdp, &flags); if (rhp) rcu_segcblist_enqueue(&sdp->srcu_cblist, rhp); + /* + * The snapshot for acceleration must be taken _before_ the read of the + * current gp sequence used for advancing, otherwise advancing may fail + * and acceleration may then fail too. + * + * This could happen if: + * + * 1) The RCU_WAIT_TAIL segment has callbacks (gp_num = X + 4) and the + * RCU_NEXT_READY_TAIL also has callbacks (gp_num = X + 8). + * + * 2) The grace period for RCU_WAIT_TAIL is seen as started but not + * completed so rcu_seq_current() returns X + SRCU_STATE_SCAN1. + * + * 3) This value is passed to rcu_segcblist_advance() which can't move + * any segment forward and fails. + * + * 4) srcu_gp_start_if_needed() still proceeds with callback acceleration. + * But then the call to rcu_seq_snap() observes the grace period for the + * RCU_WAIT_TAIL segment as completed and the subsequent one for the + * RCU_NEXT_READY_TAIL segment as started (ie: X + 4 + SRCU_STATE_SCAN1) + * so it returns a snapshot of the next grace period, which is X + 12. + * + * 5) The value of X + 12 is passed to rcu_segcblist_accelerate() but the + * freshly enqueued callback in RCU_NEXT_TAIL can't move to + * RCU_NEXT_READY_TAIL which already has callbacks for a previous grace + * period (gp_num = X + 8). So acceleration fails. + */ + s = rcu_seq_snap(&ssp->srcu_sup->srcu_gp_seq); rcu_segcblist_advance(&sdp->srcu_cblist, rcu_seq_current(&ssp->srcu_sup->srcu_gp_seq)); - s = rcu_seq_snap(&ssp->srcu_sup->srcu_gp_seq); - (void)rcu_segcblist_accelerate(&sdp->srcu_cblist, s); + WARN_ON_ONCE(!rcu_segcblist_accelerate(&sdp->srcu_cblist, s) && rhp); if (ULONG_CMP_LT(sdp->srcu_gp_seq_needed, s)) { sdp->srcu_gp_seq_needed = s; needgp = true; @@ -1692,6 +1718,7 @@ ssp = sdp->ssp; rcu_cblist_init(&ready_cbs); spin_lock_irq_rcu_node(sdp); + WARN_ON_ONCE(!rcu_segcblist_segempty(&sdp->srcu_cblist, RCU_NEXT_TAIL)); rcu_segcblist_advance(&sdp->srcu_cblist, rcu_seq_current(&ssp->srcu_sup->srcu_gp_seq)); if (sdp->srcu_cblist_invoking || @@ -1720,8 +1747,6 @@ */ spin_lock_irq_rcu_node(sdp); rcu_segcblist_add_len(&sdp->srcu_cblist, -len); - (void)rcu_segcblist_accelerate(&sdp->srcu_cblist, - rcu_seq_snap(&ssp->srcu_sup->srcu_gp_seq)); sdp->srcu_cblist_invoking = false; more = rcu_segcblist_ready_cbs(&sdp->srcu_cblist); spin_unlock_irq_rcu_node(sdp); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/rcu/tree.c +++ linux-riscv-6.5.0/kernel/rcu/tree.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -1552,10 +1553,22 @@ */ static void rcu_gp_fqs(bool first_time) { + int nr_fqs = READ_ONCE(rcu_state.nr_fqs_jiffies_stall); struct rcu_node *rnp = rcu_get_root(); WRITE_ONCE(rcu_state.gp_activity, jiffies); WRITE_ONCE(rcu_state.n_force_qs, rcu_state.n_force_qs + 1); + + WARN_ON_ONCE(nr_fqs > 3); + /* Only countdown nr_fqs for stall purposes if jiffies moves. */ + if (nr_fqs) { + if (nr_fqs == 1) { + WRITE_ONCE(rcu_state.jiffies_stall, + jiffies + rcu_jiffies_till_stall_check()); + } + WRITE_ONCE(rcu_state.nr_fqs_jiffies_stall, --nr_fqs); + } + if (first_time) { /* Collect dyntick-idle snapshots. */ force_qs_rnp(dyntick_save_progress_counter); @@ -3384,6 +3397,14 @@ success = true; } + /* + * The kvfree_rcu() caller considers the pointer freed at this point + * and likely removes any references to it. Since the actual slab + * freeing (and kmemleak_free()) is deferred, tell kmemleak to ignore + * this object (no scanning or false positives reporting). + */ + kmemleak_ignore(ptr); + // Set timer to drain after KFREE_DRAIN_JIFFIES. if (rcu_scheduler_active == RCU_SCHEDULER_RUNNING) schedule_delayed_monitor_work(krcp); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/rcu/tree.h +++ linux-riscv-6.5.0/kernel/rcu/tree.h @@ -386,6 +386,10 @@ /* in jiffies. */ unsigned long jiffies_stall; /* Time at which to check */ /* for CPU stalls. */ + int nr_fqs_jiffies_stall; /* Number of fqs loops after + * which read jiffies and set + * jiffies_stall. Stall + * warnings disabled if !0. */ unsigned long jiffies_resched; /* Time at which to resched */ /* a reluctant CPU. */ unsigned long n_force_qs_gpstart; /* Snapshot of n_force_qs at */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/rcu/tree_stall.h +++ linux-riscv-6.5.0/kernel/rcu/tree_stall.h @@ -149,12 +149,17 @@ /** * rcu_cpu_stall_reset - restart stall-warning timeout for current grace period * + * To perform the reset request from the caller, disable stall detection until + * 3 fqs loops have passed. This is required to ensure a fresh jiffies is + * loaded. It should be safe to do from the fqs loop as enough timer + * interrupts and context switches should have passed. + * * The caller must disable hard irqs. */ void rcu_cpu_stall_reset(void) { - WRITE_ONCE(rcu_state.jiffies_stall, - jiffies + rcu_jiffies_till_stall_check()); + WRITE_ONCE(rcu_state.nr_fqs_jiffies_stall, 3); + WRITE_ONCE(rcu_state.jiffies_stall, ULONG_MAX); } ////////////////////////////////////////////////////////////////////////////// @@ -170,6 +175,7 @@ WRITE_ONCE(rcu_state.gp_start, j); j1 = rcu_jiffies_till_stall_check(); smp_mb(); // ->gp_start before ->jiffies_stall and caller's ->gp_seq. + WRITE_ONCE(rcu_state.nr_fqs_jiffies_stall, 0); WRITE_ONCE(rcu_state.jiffies_stall, j + j1); rcu_state.jiffies_resched = j + j1 / 2; rcu_state.n_force_qs_gpstart = READ_ONCE(rcu_state.n_force_qs); @@ -725,6 +731,16 @@ !rcu_gp_in_progress()) return; rcu_stall_kick_kthreads(); + + /* + * Check if it was requested (via rcu_cpu_stall_reset()) that the FQS + * loop has to set jiffies to ensure a non-stale jiffies value. This + * is required to have good jiffies value after coming out of long + * breaks of jiffies updates. Not doing so can cause false positives. + */ + if (READ_ONCE(rcu_state.nr_fqs_jiffies_stall) > 0) + return; + j = jiffies; /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/reboot.c +++ linux-riscv-6.5.0/kernel/reboot.c @@ -74,6 +74,7 @@ void emergency_restart(void) { kmsg_dump(KMSG_DUMP_EMERG); + system_state = SYSTEM_RESTART; machine_emergency_restart(); } EXPORT_SYMBOL_GPL(emergency_restart); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/sched/cpufreq_schedutil.c +++ linux-riscv-6.5.0/kernel/sched/cpufreq_schedutil.c @@ -350,7 +350,8 @@ * Except when the rq is capped by uclamp_max. */ if (!uclamp_rq_is_capped(cpu_rq(sg_cpu->cpu)) && - sugov_cpu_is_busy(sg_cpu) && next_f < sg_policy->next_freq) { + sugov_cpu_is_busy(sg_cpu) && next_f < sg_policy->next_freq && + !sg_policy->need_freq_update) { next_f = sg_policy->next_freq; /* Restore cached freq as next_freq has changed */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/sched/deadline.c +++ linux-riscv-6.5.0/kernel/sched/deadline.c @@ -2449,9 +2449,11 @@ double_unlock_balance(this_rq, src_rq); if (push_task) { + preempt_disable(); raw_spin_rq_unlock(this_rq); stop_one_cpu_nowait(src_rq->cpu, push_cpu_stop, push_task, &src_rq->push_work); + preempt_enable(); raw_spin_rq_lock(this_rq); } } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/sched/topology.c +++ linux-riscv-6.5.0/kernel/sched/topology.c @@ -2113,12 +2113,16 @@ */ int sched_numa_find_nth_cpu(const struct cpumask *cpus, int cpu, int node) { - struct __cmp_key k = { .cpus = cpus, .node = node, .cpu = cpu }; + struct __cmp_key k = { .cpus = cpus, .cpu = cpu }; struct cpumask ***hop_masks; int hop, ret = nr_cpu_ids; rcu_read_lock(); + /* CPU-less node entries are uninitialized in sched_domains_numa_masks */ + node = numa_nearest_node(node, N_CPU); + k.node = node; + k.masks = rcu_dereference(sched_domains_numa_masks); if (!k.masks) goto unlock; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/smp.c +++ linux-riscv-6.5.0/kernel/smp.c @@ -168,6 +168,8 @@ static ulong csd_lock_timeout = 5000; /* CSD lock timeout in milliseconds. */ module_param(csd_lock_timeout, ulong, 0444); +static int panic_on_ipistall; /* CSD panic timeout in milliseconds, 300000 for five minutes. */ +module_param(panic_on_ipistall, int, 0444); static atomic_t csd_bug_count = ATOMIC_INIT(0); @@ -228,6 +230,7 @@ } ts2 = sched_clock(); + /* How long since we last checked for a stuck CSD lock.*/ ts_delta = ts2 - *ts1; if (likely(ts_delta <= csd_lock_timeout_ns || csd_lock_timeout_ns == 0)) return false; @@ -241,9 +244,17 @@ else cpux = cpu; cpu_cur_csd = smp_load_acquire(&per_cpu(cur_csd, cpux)); /* Before func and info. */ + /* How long since this CSD lock was stuck. */ + ts_delta = ts2 - ts0; pr_alert("csd: %s non-responsive CSD lock (#%d) on CPU#%d, waiting %llu ns for CPU#%02d %pS(%ps).\n", - firsttime ? "Detected" : "Continued", *bug_id, raw_smp_processor_id(), ts2 - ts0, + firsttime ? "Detected" : "Continued", *bug_id, raw_smp_processor_id(), ts_delta, cpu, csd->func, csd->info); + /* + * If the CSD lock is still stuck after 5 minutes, it is unlikely + * to become unstuck. Use a signed comparison to avoid triggering + * on underflows when the TSC is out of sync between sockets. + */ + BUG_ON(panic_on_ipistall > 0 && (s64)ts_delta > ((s64)panic_on_ipistall * NSEC_PER_MSEC)); if (cpu_cur_csd && csd != cpu_cur_csd) { pr_alert("\tcsd: CSD lock (#%d) handling prior %pS(%ps) request.\n", *bug_id, READ_ONCE(per_cpu(cur_csd_func, cpux)), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/time/hrtimer.c +++ linux-riscv-6.5.0/kernel/time/hrtimer.c @@ -2219,29 +2219,22 @@ } } -int hrtimers_dead_cpu(unsigned int scpu) +int hrtimers_cpu_dying(unsigned int dying_cpu) { struct hrtimer_cpu_base *old_base, *new_base; - int i; + int i, ncpu = cpumask_first(cpu_active_mask); - BUG_ON(cpu_online(scpu)); - tick_cancel_sched_timer(scpu); + tick_cancel_sched_timer(dying_cpu); + + old_base = this_cpu_ptr(&hrtimer_bases); + new_base = &per_cpu(hrtimer_bases, ncpu); - /* - * this BH disable ensures that raise_softirq_irqoff() does - * not wakeup ksoftirqd (and acquire the pi-lock) while - * holding the cpu_base lock - */ - local_bh_disable(); - local_irq_disable(); - old_base = &per_cpu(hrtimer_bases, scpu); - new_base = this_cpu_ptr(&hrtimer_bases); /* * The caller is globally serialized and nobody else * takes two locks at once, deadlock is not possible. */ - raw_spin_lock(&new_base->lock); - raw_spin_lock_nested(&old_base->lock, SINGLE_DEPTH_NESTING); + raw_spin_lock(&old_base->lock); + raw_spin_lock_nested(&new_base->lock, SINGLE_DEPTH_NESTING); for (i = 0; i < HRTIMER_MAX_CLOCK_BASES; i++) { migrate_hrtimer_list(&old_base->clock_base[i], @@ -2252,15 +2245,13 @@ * The migration might have changed the first expiring softirq * timer on this CPU. Update it. */ - hrtimer_update_softirq_timer(new_base, false); + __hrtimer_get_next_event(new_base, HRTIMER_ACTIVE_SOFT); + /* Tell the other CPU to retrigger the next event */ + smp_call_function_single(ncpu, retrigger_next_event, NULL, 0); - raw_spin_unlock(&old_base->lock); raw_spin_unlock(&new_base->lock); + raw_spin_unlock(&old_base->lock); - /* Check, if we got expired work to do */ - __hrtimer_peek_ahead_timers(); - local_irq_enable(); - local_bh_enable(); return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/torture.c +++ linux-riscv-6.5.0/kernel/torture.c @@ -37,6 +37,7 @@ #include #include #include +#include #include "rcu/rcu.h" MODULE_LICENSE("GPL"); @@ -83,14 +84,15 @@ * nanosecond random fuzz. This function and its friends desynchronize * testing from the timer wheel. */ -int torture_hrtimeout_ns(ktime_t baset_ns, u32 fuzzt_ns, struct torture_random_state *trsp) +int torture_hrtimeout_ns(ktime_t baset_ns, u32 fuzzt_ns, const enum hrtimer_mode mode, + struct torture_random_state *trsp) { ktime_t hto = baset_ns; if (trsp) hto += (torture_random(trsp) >> 3) % fuzzt_ns; - set_current_state(TASK_UNINTERRUPTIBLE); - return schedule_hrtimeout(&hto, HRTIMER_MODE_REL); + set_current_state(TASK_IDLE); + return schedule_hrtimeout(&hto, mode); } EXPORT_SYMBOL_GPL(torture_hrtimeout_ns); @@ -102,7 +104,7 @@ { ktime_t baset_ns = baset_us * NSEC_PER_USEC; - return torture_hrtimeout_ns(baset_ns, fuzzt_ns, trsp); + return torture_hrtimeout_ns(baset_ns, fuzzt_ns, HRTIMER_MODE_REL, trsp); } EXPORT_SYMBOL_GPL(torture_hrtimeout_us); @@ -119,7 +121,7 @@ fuzzt_ns = (u32)~0U; else fuzzt_ns = fuzzt_us * NSEC_PER_USEC; - return torture_hrtimeout_ns(baset_ns, fuzzt_ns, trsp); + return torture_hrtimeout_ns(baset_ns, fuzzt_ns, HRTIMER_MODE_REL, trsp); } EXPORT_SYMBOL_GPL(torture_hrtimeout_ms); @@ -132,7 +134,7 @@ { ktime_t baset_ns = jiffies_to_nsecs(baset_j); - return torture_hrtimeout_ns(baset_ns, jiffies_to_nsecs(1), trsp); + return torture_hrtimeout_ns(baset_ns, jiffies_to_nsecs(1), HRTIMER_MODE_REL, trsp); } EXPORT_SYMBOL_GPL(torture_hrtimeout_jiffies); @@ -149,7 +151,7 @@ fuzzt_ns = (u32)~0U; else fuzzt_ns = fuzzt_ms * NSEC_PER_MSEC; - return torture_hrtimeout_ns(baset_ns, fuzzt_ns, trsp); + return torture_hrtimeout_ns(baset_ns, fuzzt_ns, HRTIMER_MODE_REL, trsp); } EXPORT_SYMBOL_GPL(torture_hrtimeout_s); @@ -711,7 +713,7 @@ * suddenly applied to or removed from the system. */ static struct task_struct *stutter_task; -static int stutter_pause_test; +static ktime_t stutter_till_abs_time; static int stutter; static int stutter_gap; @@ -721,30 +723,16 @@ */ bool stutter_wait(const char *title) { - unsigned int i = 0; bool ret = false; - int spt; + ktime_t till_ns; cond_resched_tasks_rcu_qs(); - spt = READ_ONCE(stutter_pause_test); - for (; spt; spt = READ_ONCE(stutter_pause_test)) { - if (!ret) { - sched_set_normal(current, MAX_NICE); - ret = true; - } - if (spt == 1) { - schedule_timeout_interruptible(1); - } else if (spt == 2) { - while (READ_ONCE(stutter_pause_test)) { - if (!(i++ & 0xffff)) - torture_hrtimeout_us(10, 0, NULL); - cond_resched(); - } - } else { - schedule_timeout_interruptible(round_jiffies_relative(HZ)); - } - torture_shutdown_absorb(title); + till_ns = READ_ONCE(stutter_till_abs_time); + if (till_ns && ktime_before(ktime_get(), till_ns)) { + torture_hrtimeout_ns(till_ns, 0, HRTIMER_MODE_ABS, NULL); + ret = true; } + torture_shutdown_absorb(title); return ret; } EXPORT_SYMBOL_GPL(stutter_wait); @@ -755,23 +743,16 @@ */ static int torture_stutter(void *arg) { - DEFINE_TORTURE_RANDOM(rand); - int wtime; + ktime_t till_ns; VERBOSE_TOROUT_STRING("torture_stutter task started"); do { if (!torture_must_stop() && stutter > 1) { - wtime = stutter; - if (stutter > 2) { - WRITE_ONCE(stutter_pause_test, 1); - wtime = stutter - 3; - torture_hrtimeout_jiffies(wtime, &rand); - wtime = 2; - } - WRITE_ONCE(stutter_pause_test, 2); - torture_hrtimeout_jiffies(wtime, NULL); + till_ns = ktime_add_ns(ktime_get(), + jiffies_to_nsecs(stutter)); + WRITE_ONCE(stutter_till_abs_time, till_ns); + torture_hrtimeout_jiffies(stutter - 1, NULL); } - WRITE_ONCE(stutter_pause_test, 0); if (!torture_must_stop()) torture_hrtimeout_jiffies(stutter_gap, NULL); torture_shutdown_absorb("torture_stutter"); @@ -926,7 +907,7 @@ * it starts, you will need to open-code your own. */ int _torture_create_kthread(int (*fn)(void *arg), void *arg, char *s, char *m, - char *f, struct task_struct **tp) + char *f, struct task_struct **tp, void (*cbf)(struct task_struct *tp)) { int ret = 0; @@ -938,6 +919,10 @@ *tp = NULL; return ret; } + + if (cbf) + cbf(*tp); + wake_up_process(*tp); // Process is sleeping, so ordering provided. torture_shuffle_task_register(*tp); return ret; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/trace/fprobe.c +++ linux-riscv-6.5.0/kernel/trace/fprobe.c @@ -189,7 +189,7 @@ { int i, size; - if (num < 0) + if (num <= 0) return -EINVAL; if (!fp->exit_handler) { @@ -202,8 +202,8 @@ size = fp->nr_maxactive; else size = num * num_possible_cpus() * 2; - if (size < 0) - return -E2BIG; + if (size <= 0) + return -EINVAL; fp->rethook = rethook_alloc((void *)fp, fprobe_exit_handler); if (!fp->rethook) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/trace/rethook.c +++ linux-riscv-6.5.0/kernel/trace/rethook.c @@ -63,7 +63,7 @@ */ void rethook_stop(struct rethook *rh) { - WRITE_ONCE(rh->handler, NULL); + rcu_assign_pointer(rh->handler, NULL); } /** @@ -78,11 +78,17 @@ */ void rethook_free(struct rethook *rh) { - WRITE_ONCE(rh->handler, NULL); + rethook_stop(rh); call_rcu(&rh->rcu, rethook_free_rcu); } +static inline rethook_handler_t rethook_get_handler(struct rethook *rh) +{ + return (rethook_handler_t)rcu_dereference_check(rh->handler, + rcu_read_lock_any_held()); +} + /** * rethook_alloc() - Allocate struct rethook. * @data: a data to pass the @handler when hooking the return. @@ -102,7 +108,7 @@ } rh->data = data; - rh->handler = handler; + rcu_assign_pointer(rh->handler, handler); rh->pool.head = NULL; refcount_set(&rh->ref, 1); @@ -142,9 +148,10 @@ */ void rethook_recycle(struct rethook_node *node) { - lockdep_assert_preemption_disabled(); + rethook_handler_t handler; - if (likely(READ_ONCE(node->rethook->handler))) + handler = rethook_get_handler(node->rethook); + if (likely(handler)) freelist_add(&node->freelist, &node->rethook->pool); else call_rcu(&node->rcu, free_rethook_node_rcu); @@ -160,11 +167,9 @@ */ struct rethook_node *rethook_try_get(struct rethook *rh) { - rethook_handler_t handler = READ_ONCE(rh->handler); + rethook_handler_t handler = rethook_get_handler(rh); struct freelist_node *fn; - lockdep_assert_preemption_disabled(); - /* Check whether @rh is going to be freed. */ if (unlikely(!handler)) return NULL; @@ -312,7 +317,7 @@ rhn = container_of(first, struct rethook_node, llist); if (WARN_ON_ONCE(rhn->frame != frame)) break; - handler = READ_ONCE(rhn->rethook->handler); + handler = rethook_get_handler(rhn->rethook); if (handler) handler(rhn, rhn->rethook->data, correct_ret_addr, regs); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/trace/trace_events_filter.c +++ linux-riscv-6.5.0/kernel/trace/trace_events_filter.c @@ -2088,6 +2088,9 @@ struct event_filter *filter = NULL; int err; + if (file->flags & EVENT_FILE_FL_FREED) + return -ENODEV; + if (!strcmp(strstrip(filter_string), "0")) { filter_disable(file); filter = event_filter(file); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/trace/trace_kprobe.c +++ linux-riscv-6.5.0/kernel/trace/trace_kprobe.c @@ -705,6 +705,41 @@ .priority = 1 /* Invoked after kprobe module callback */ }; +static int count_symbols(void *data, unsigned long unused) +{ + unsigned int *count = data; + + (*count)++; + + return 0; +} + +struct sym_count_ctx { + unsigned int count; + const char *name; +}; + +static int count_mod_symbols(void *data, const char *name, unsigned long unused) +{ + struct sym_count_ctx *ctx = data; + + if (strcmp(name, ctx->name) == 0) + ctx->count++; + + return 0; +} + +static unsigned int number_of_same_symbols(char *func_name) +{ + struct sym_count_ctx ctx = { .count = 0, .name = func_name }; + + kallsyms_on_each_match_symbol(count_symbols, func_name, &ctx.count); + + module_kallsyms_on_each_symbol(NULL, count_mod_symbols, &ctx); + + return ctx.count; +} + static int __trace_kprobe_create(int argc, const char *argv[]) { /* @@ -836,6 +871,31 @@ } } + if (symbol && !strchr(symbol, ':')) { + unsigned int count; + + count = number_of_same_symbols(symbol); + if (count > 1) { + /* + * Users should use ADDR to remove the ambiguity of + * using KSYM only. + */ + trace_probe_log_err(0, NON_UNIQ_SYMBOL); + ret = -EADDRNOTAVAIL; + + goto error; + } else if (count == 0) { + /* + * We can return ENOENT earlier than when register the + * kprobe. + */ + trace_probe_log_err(0, BAD_PROBE_ADDR); + ret = -ENOENT; + + goto error; + } + } + trace_probe_log_set_index(0); if (event) { ret = traceprobe_parse_event_name(&event, &group, gbuf, @@ -959,10 +1019,10 @@ /** * __kprobe_event_gen_cmd_start - Generate a kprobe event command from arg list * @cmd: A pointer to the dynevent_cmd struct representing the new event + * @kretprobe: Is this a return probe? * @name: The name of the kprobe event * @loc: The location of the kprobe event - * @kretprobe: Is this a return probe? - * @args: Variable number of arg (pairs), one pair for each field + * @...: Variable number of arg (pairs), one pair for each field * * NOTE: Users normally won't want to call this function directly, but * rather use the kprobe_event_gen_cmd_start() wrapper, which automatically @@ -1035,7 +1095,7 @@ /** * __kprobe_event_add_fields - Add probe fields to a kprobe command from arg list * @cmd: A pointer to the dynevent_cmd struct representing the new event - * @args: Variable number of arg (pairs), one pair for each field + * @...: Variable number of arg (pairs), one pair for each field * * NOTE: Users normally won't want to call this function directly, but * rather use the kprobe_event_add_fields() wrapper, which @@ -1699,6 +1759,7 @@ } #ifdef CONFIG_PERF_EVENTS + /* create a trace_kprobe, but don't add it to global lists */ struct trace_event_call * create_local_trace_kprobe(char *func, void *addr, unsigned long offs, @@ -1709,6 +1770,24 @@ int ret; char *event; + if (func) { + unsigned int count; + + count = number_of_same_symbols(func); + if (count > 1) + /* + * Users should use addr to remove the ambiguity of + * using func only. + */ + return ERR_PTR(-EADDRNOTAVAIL); + else if (count == 0) + /* + * We can return ENOENT earlier than when register the + * kprobe. + */ + return ERR_PTR(-ENOENT); + } + /* * local trace_kprobes are not added to dyn_event, so they are never * searched in find_trace_kprobe(). Therefore, there is no concern of only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/trace/trace_probe.h +++ linux-riscv-6.5.0/kernel/trace/trace_probe.h @@ -438,6 +438,7 @@ C(BAD_MAXACT, "Invalid maxactive number"), \ C(MAXACT_TOO_BIG, "Maxactive is too big"), \ C(BAD_PROBE_ADDR, "Invalid probed address or symbol"), \ + C(NON_UNIQ_SYMBOL, "The symbol is not unique"), \ C(BAD_RETPROBE, "Retprobe address must be an function entry"), \ C(NO_TRACEPOINT, "Tracepoint is not found"), \ C(BAD_ADDR_SUFFIX, "Invalid probed address suffix"), \ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/kernel/watch_queue.c +++ linux-riscv-6.5.0/kernel/watch_queue.c @@ -331,7 +331,7 @@ filter.__reserved != 0) return -EINVAL; - tf = memdup_user(_filter->filters, filter.nr_filters * sizeof(*tf)); + tf = memdup_array_user(_filter->filters, filter.nr_filters, sizeof(*tf)); if (IS_ERR(tf)) return PTR_ERR(tf); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/lib/errname.c +++ linux-riscv-6.5.0/lib/errname.c @@ -111,9 +111,6 @@ E(ENOSPC), E(ENOSR), E(ENOSTR), -#ifdef ENOSYM - E(ENOSYM), -#endif E(ENOSYS), E(ENOTBLK), E(ENOTCONN), @@ -144,9 +141,6 @@ #endif E(EREMOTE), E(EREMOTEIO), -#ifdef EREMOTERELEASE - E(EREMOTERELEASE), -#endif E(ERESTART), E(ERFKILL), E(EROFS), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/lib/generic-radix-tree.c +++ linux-riscv-6.5.0/lib/generic-radix-tree.c @@ -166,6 +166,10 @@ struct genradix_root *r; struct genradix_node *n; unsigned level, i; + + if (iter->offset == SIZE_MAX) + return NULL; + restart: r = READ_ONCE(radix->root); if (!r) @@ -184,10 +188,17 @@ (GENRADIX_ARY - 1); while (!n->children[i]) { + size_t objs_per_ptr = genradix_depth_size(level); + + if (iter->offset + objs_per_ptr < iter->offset) { + iter->offset = SIZE_MAX; + iter->pos = SIZE_MAX; + return NULL; + } + i++; - iter->offset = round_down(iter->offset + - genradix_depth_size(level), - genradix_depth_size(level)); + iter->offset = round_down(iter->offset + objs_per_ptr, + objs_per_ptr); iter->pos = (iter->offset >> PAGE_SHIFT) * objs_per_page; if (i == GENRADIX_ARY) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/lib/group_cpus.c +++ linux-riscv-6.5.0/lib/group_cpus.c @@ -366,13 +366,25 @@ if (!masks) goto fail_node_to_cpumask; - /* Stabilize the cpumasks */ - cpus_read_lock(); build_node_to_cpumask(node_to_cpumask); + /* + * Make a local cache of 'cpu_present_mask', so the two stages + * spread can observe consistent 'cpu_present_mask' without holding + * cpu hotplug lock, then we can reduce deadlock risk with cpu + * hotplug code. + * + * Here CPU hotplug may happen when reading `cpu_present_mask`, and + * we can live with the case because it only affects that hotplug + * CPU is handled in the 1st or 2nd stage, and either way is correct + * from API user viewpoint since 2-stage spread is sort of + * optimization. + */ + cpumask_copy(npresmsk, data_race(cpu_present_mask)); + /* grouping present CPUs first */ ret = __group_cpus_evenly(curgrp, numgrps, node_to_cpumask, - cpu_present_mask, nmsk, masks); + npresmsk, nmsk, masks); if (ret < 0) goto fail_build_affinity; nr_present = ret; @@ -387,15 +399,13 @@ curgrp = 0; else curgrp = nr_present; - cpumask_andnot(npresmsk, cpu_possible_mask, cpu_present_mask); + cpumask_andnot(npresmsk, cpu_possible_mask, npresmsk); ret = __group_cpus_evenly(curgrp, numgrps, node_to_cpumask, npresmsk, nmsk, masks); if (ret >= 0) nr_others = ret; fail_build_affinity: - cpus_read_unlock(); - if (ret >= 0) WARN_ON(nr_present + nr_others < numgrps); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/lib/kunit/executor.c +++ linux-riscv-6.5.0/lib/kunit/executor.c @@ -102,8 +102,10 @@ { struct kunit_suite * const *suites; - for (suites = suite_set.start; suites < suite_set.end; suites++) + for (suites = suite_set.start; suites < suite_set.end; suites++) { + kfree((*suites)->test_cases); kfree(*suites); + } kfree(suite_set.start); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/lib/test_ida.c +++ linux-riscv-6.5.0/lib/test_ida.c @@ -150,6 +150,45 @@ IDA_BUG_ON(ida, !ida_is_empty(ida)); } +/* + * Check various situations where we attempt to free an ID we don't own. + */ +static void ida_check_bad_free(struct ida *ida) +{ + unsigned long i; + + printk("vvv Ignore \"not allocated\" warnings\n"); + /* IDA is empty; all of these will fail */ + ida_free(ida, 0); + for (i = 0; i < 31; i++) + ida_free(ida, 1 << i); + + /* IDA contains a single value entry */ + IDA_BUG_ON(ida, ida_alloc_min(ida, 3, GFP_KERNEL) != 3); + ida_free(ida, 0); + for (i = 0; i < 31; i++) + ida_free(ida, 1 << i); + + /* IDA contains a single bitmap */ + IDA_BUG_ON(ida, ida_alloc_min(ida, 1023, GFP_KERNEL) != 1023); + ida_free(ida, 0); + for (i = 0; i < 31; i++) + ida_free(ida, 1 << i); + + /* IDA contains a tree */ + IDA_BUG_ON(ida, ida_alloc_min(ida, (1 << 20) - 1, GFP_KERNEL) != (1 << 20) - 1); + ida_free(ida, 0); + for (i = 0; i < 31; i++) + ida_free(ida, 1 << i); + printk("^^^ \"not allocated\" warnings over\n"); + + ida_free(ida, 3); + ida_free(ida, 1023); + ida_free(ida, (1 << 20) - 1); + + IDA_BUG_ON(ida, !ida_is_empty(ida)); +} + static DEFINE_IDA(ida); static int ida_checks(void) @@ -162,6 +201,7 @@ ida_check_leaf(&ida, 1024 * 64); ida_check_max(&ida); ida_check_conv(&ida); + ida_check_bad_free(&ida); printk("IDA: %u of %u tests passed\n", tests_passed, tests_run); return (tests_run != tests_passed) ? 0 : -EINVAL; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/lib/zstd/common/fse_decompress.c +++ linux-riscv-6.5.0/lib/zstd/common/fse_decompress.c @@ -312,7 +312,7 @@ typedef struct { short ncount[FSE_MAX_SYMBOL_VALUE + 1]; - FSE_DTable dtable[1]; /* Dynamically sized */ + FSE_DTable dtable[]; /* Dynamically sized */ } FSE_DecompressWksp; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/mm/cma.c +++ linux-riscv-6.5.0/mm/cma.c @@ -501,7 +501,7 @@ */ if (page) { for (i = 0; i < count; i++) - page_kasan_tag_reset(page + i); + page_kasan_tag_reset(nth_page(page, i)); } if (ret && !no_warn) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/mm/damon/core.c +++ linux-riscv-6.5.0/mm/damon/core.c @@ -476,20 +476,14 @@ static unsigned int damon_accesses_bp_to_nr_accesses( unsigned int accesses_bp, struct damon_attrs *attrs) { - unsigned int max_nr_accesses = - attrs->aggr_interval / attrs->sample_interval; - - return accesses_bp * max_nr_accesses / 10000; + return accesses_bp * damon_max_nr_accesses(attrs) / 10000; } /* convert nr_accesses to access ratio in bp (per 10,000) */ static unsigned int damon_nr_accesses_to_accesses_bp( unsigned int nr_accesses, struct damon_attrs *attrs) { - unsigned int max_nr_accesses = - attrs->aggr_interval / attrs->sample_interval; - - return nr_accesses * 10000 / max_nr_accesses; + return nr_accesses * 10000 / damon_max_nr_accesses(attrs); } static unsigned int damon_nr_accesses_for_new_attrs(unsigned int nr_accesses, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/mm/damon/lru_sort.c +++ linux-riscv-6.5.0/mm/damon/lru_sort.c @@ -193,9 +193,7 @@ if (err) return err; - /* aggr_interval / sample_interval is the maximum nr_accesses */ - hot_thres = damon_lru_sort_mon_attrs.aggr_interval / - damon_lru_sort_mon_attrs.sample_interval * + hot_thres = damon_max_nr_accesses(&damon_lru_sort_mon_attrs) * hot_thres_access_freq / 1000; scheme = damon_lru_sort_new_hot_scheme(hot_thres); if (!scheme) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/mm/damon/ops-common.c +++ linux-riscv-6.5.0/mm/damon/ops-common.c @@ -73,7 +73,6 @@ int damon_hot_score(struct damon_ctx *c, struct damon_region *r, struct damos *s) { - unsigned int max_nr_accesses; int freq_subscore; unsigned int age_in_sec; int age_in_log, age_subscore; @@ -81,8 +80,8 @@ unsigned int age_weight = s->quota.weight_age; int hotness; - max_nr_accesses = c->attrs.aggr_interval / c->attrs.sample_interval; - freq_subscore = r->nr_accesses * DAMON_MAX_SUBSCORE / max_nr_accesses; + freq_subscore = r->nr_accesses * DAMON_MAX_SUBSCORE / + damon_max_nr_accesses(&c->attrs); age_in_sec = (unsigned long)r->age * c->attrs.aggr_interval / 1000000; for (age_in_log = 0; age_in_log < DAMON_MAX_AGE_IN_LOG && age_in_sec; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/mm/damon/sysfs-schemes.c +++ linux-riscv-6.5.0/mm/damon/sysfs-schemes.c @@ -125,6 +125,9 @@ struct damon_sysfs_scheme_regions *regions = kmalloc(sizeof(*regions), GFP_KERNEL); + if (!regions) + return NULL; + regions->kobj = (struct kobject){}; INIT_LIST_HEAD(®ions->regions_list); regions->nr_regions = 0; @@ -1649,6 +1652,8 @@ sysfs_regions = sysfs_schemes->schemes_arr[schemes_idx]->tried_regions; region = damon_sysfs_scheme_region_alloc(r); + if (!region) + return 0; list_add_tail(®ion->list, &sysfs_regions->regions_list); sysfs_regions->nr_regions++; if (kobject_init_and_add(®ion->kobj, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/mm/damon/sysfs.c +++ linux-riscv-6.5.0/mm/damon/sysfs.c @@ -1144,64 +1144,83 @@ return err; } -/* - * Search a target in a context that corresponds to the sysfs target input. - * - * Return: pointer to the target if found, NULL if not found, or negative - * error code if the search failed. - */ -static struct damon_target *damon_sysfs_existing_target( - struct damon_sysfs_target *sys_target, struct damon_ctx *ctx) +static int damon_sysfs_update_target_pid(struct damon_target *target, int pid) { - struct pid *pid; - struct damon_target *t; + struct pid *pid_new; - if (!damon_target_has_pid(ctx)) { - /* Up to only one target for paddr could exist */ - damon_for_each_target(t, ctx) - return t; - return NULL; - } - - /* ops.id should be DAMON_OPS_VADDR or DAMON_OPS_FVADDR */ - pid = find_get_pid(sys_target->pid); - if (!pid) - return ERR_PTR(-EINVAL); - damon_for_each_target(t, ctx) { - if (t->pid == pid) { - put_pid(pid); - return t; - } + pid_new = find_get_pid(pid); + if (!pid_new) + return -EINVAL; + + if (pid_new == target->pid) { + put_pid(pid_new); + return 0; + } + + put_pid(target->pid); + target->pid = pid_new; + return 0; +} + +static int damon_sysfs_update_target(struct damon_target *target, + struct damon_ctx *ctx, + struct damon_sysfs_target *sys_target) +{ + int err = 0; + + if (damon_target_has_pid(ctx)) { + err = damon_sysfs_update_target_pid(target, sys_target->pid); + if (err) + return err; } - put_pid(pid); - return NULL; + + /* + * Do monitoring target region boundary update only if one or more + * regions are set by the user. This is for keeping current monitoring + * target results and range easier, especially for dynamic monitoring + * target regions update ops like 'vaddr'. + */ + if (sys_target->regions->nr) + err = damon_sysfs_set_regions(target, sys_target->regions); + return err; } static int damon_sysfs_set_targets(struct damon_ctx *ctx, struct damon_sysfs_targets *sysfs_targets) { - int i, err; + struct damon_target *t, *next; + int i = 0, err; /* Multiple physical address space monitoring targets makes no sense */ if (ctx->ops.id == DAMON_OPS_PADDR && sysfs_targets->nr > 1) return -EINVAL; - for (i = 0; i < sysfs_targets->nr; i++) { + damon_for_each_target_safe(t, next, ctx) { + if (i < sysfs_targets->nr) { + err = damon_sysfs_update_target(t, ctx, + sysfs_targets->targets_arr[i]); + if (err) + return err; + } else { + if (damon_target_has_pid(ctx)) + put_pid(t->pid); + damon_destroy_target(t); + } + i++; + } + + for (; i < sysfs_targets->nr; i++) { struct damon_sysfs_target *st = sysfs_targets->targets_arr[i]; - struct damon_target *t = damon_sysfs_existing_target(st, ctx); - if (IS_ERR(t)) - return PTR_ERR(t); - if (!t) - err = damon_sysfs_add_target(st, ctx); - else - err = damon_sysfs_set_regions(t, st->regions); + err = damon_sysfs_add_target(st, ctx); if (err) return err; } return 0; } +static bool damon_sysfs_schemes_regions_updating; + static void damon_sysfs_before_terminate(struct damon_ctx *ctx) { struct damon_target *t, *next; @@ -1209,10 +1228,12 @@ /* damon_sysfs_schemes_update_regions_stop() might not yet called */ kdamond = damon_sysfs_cmd_request.kdamond; - if (kdamond && damon_sysfs_cmd_request.cmd == + if (kdamond && (damon_sysfs_cmd_request.cmd == DAMON_SYSFS_CMD_UPDATE_SCHEMES_TRIED_REGIONS && + damon_sysfs_schemes_regions_updating) && ctx == kdamond->damon_ctx) { damon_sysfs_schemes_update_regions_stop(ctx); + damon_sysfs_schemes_regions_updating = false; mutex_unlock(&damon_sysfs_lock); } @@ -1331,7 +1352,6 @@ static int damon_sysfs_cmd_request_callback(struct damon_ctx *c) { struct damon_sysfs_kdamond *kdamond; - static bool damon_sysfs_schemes_regions_updating; int err = 0; /* avoid deadlock due to concurrent state_store('off') */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/mm/filemap.c +++ linux-riscv-6.5.0/mm/filemap.c @@ -3428,7 +3428,7 @@ } } - if (pmd_none(*vmf->pmd)) + if (pmd_none(*vmf->pmd) && vmf->prealloc_pte) pmd_install(mm, vmf->pmd, &vmf->prealloc_pte); return false; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/mm/huge_memory.c +++ linux-riscv-6.5.0/mm/huge_memory.c @@ -2759,13 +2759,15 @@ int nr = folio_nr_pages(folio); xas_split(&xas, folio, folio_order(folio)); - if (folio_test_swapbacked(folio)) { - __lruvec_stat_mod_folio(folio, NR_SHMEM_THPS, - -nr); - } else { - __lruvec_stat_mod_folio(folio, NR_FILE_THPS, - -nr); - filemap_nr_thps_dec(mapping); + if (folio_test_pmd_mappable(folio)) { + if (folio_test_swapbacked(folio)) { + __lruvec_stat_mod_folio(folio, + NR_SHMEM_THPS, -nr); + } else { + __lruvec_stat_mod_folio(folio, + NR_FILE_THPS, -nr); + filemap_nr_thps_dec(mapping); + } } } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/mm/hugetlb.c +++ linux-riscv-6.5.0/mm/hugetlb.c @@ -96,6 +96,7 @@ static void __hugetlb_vma_unlock_write_free(struct vm_area_struct *vma); static void hugetlb_unshare_pmds(struct vm_area_struct *vma, unsigned long start, unsigned long end); +static struct resv_map *vma_resv_map(struct vm_area_struct *vma); static inline bool subpool_is_free(struct hugepage_subpool *spool) { @@ -266,6 +267,10 @@ struct hugetlb_vma_lock *vma_lock = vma->vm_private_data; down_read(&vma_lock->rw_sema); + } else if (__vma_private_lock(vma)) { + struct resv_map *resv_map = vma_resv_map(vma); + + down_read(&resv_map->rw_sema); } } @@ -275,6 +280,10 @@ struct hugetlb_vma_lock *vma_lock = vma->vm_private_data; up_read(&vma_lock->rw_sema); + } else if (__vma_private_lock(vma)) { + struct resv_map *resv_map = vma_resv_map(vma); + + up_read(&resv_map->rw_sema); } } @@ -284,6 +293,10 @@ struct hugetlb_vma_lock *vma_lock = vma->vm_private_data; down_write(&vma_lock->rw_sema); + } else if (__vma_private_lock(vma)) { + struct resv_map *resv_map = vma_resv_map(vma); + + down_write(&resv_map->rw_sema); } } @@ -293,17 +306,27 @@ struct hugetlb_vma_lock *vma_lock = vma->vm_private_data; up_write(&vma_lock->rw_sema); + } else if (__vma_private_lock(vma)) { + struct resv_map *resv_map = vma_resv_map(vma); + + up_write(&resv_map->rw_sema); } } int hugetlb_vma_trylock_write(struct vm_area_struct *vma) { - struct hugetlb_vma_lock *vma_lock = vma->vm_private_data; - if (!__vma_shareable_lock(vma)) - return 1; + if (__vma_shareable_lock(vma)) { + struct hugetlb_vma_lock *vma_lock = vma->vm_private_data; - return down_write_trylock(&vma_lock->rw_sema); + return down_write_trylock(&vma_lock->rw_sema); + } else if (__vma_private_lock(vma)) { + struct resv_map *resv_map = vma_resv_map(vma); + + return down_write_trylock(&resv_map->rw_sema); + } + + return 1; } void hugetlb_vma_assert_locked(struct vm_area_struct *vma) @@ -312,6 +335,10 @@ struct hugetlb_vma_lock *vma_lock = vma->vm_private_data; lockdep_assert_held(&vma_lock->rw_sema); + } else if (__vma_private_lock(vma)) { + struct resv_map *resv_map = vma_resv_map(vma); + + lockdep_assert_held(&resv_map->rw_sema); } } @@ -344,6 +371,11 @@ struct hugetlb_vma_lock *vma_lock = vma->vm_private_data; __hugetlb_vma_unlock_write_put(vma_lock); + } else if (__vma_private_lock(vma)) { + struct resv_map *resv_map = vma_resv_map(vma); + + /* no free for anon vmas, but still need to unlock */ + up_write(&resv_map->rw_sema); } } @@ -1062,6 +1094,7 @@ kref_init(&resv_map->refs); spin_lock_init(&resv_map->lock); INIT_LIST_HEAD(&resv_map->regions); + init_rwsem(&resv_map->rw_sema); resv_map->adds_in_progress = 0; /* @@ -1132,8 +1165,7 @@ VM_BUG_ON_VMA(!is_vm_hugetlb_page(vma), vma); VM_BUG_ON_VMA(vma->vm_flags & VM_MAYSHARE, vma); - set_vma_private_data(vma, (get_vma_private_data(vma) & - HPAGE_RESV_MASK) | (unsigned long)map); + set_vma_private_data(vma, (unsigned long)map); } static void set_vma_resv_flags(struct vm_area_struct *vma, unsigned long flags) @@ -1151,6 +1183,13 @@ return (get_vma_private_data(vma) & flag) != 0; } +bool __vma_private_lock(struct vm_area_struct *vma) +{ + return !(vma->vm_flags & VM_MAYSHARE) && + get_vma_private_data(vma) & ~HPAGE_RESV_MASK && + is_vma_resv_set(vma, HPAGE_RESV_OWNER); +} + void hugetlb_dup_vma_private(struct vm_area_struct *vma) { VM_BUG_ON_VMA(!is_vm_hugetlb_page(vma), vma); @@ -6489,13 +6528,7 @@ struct page *page = NULL; spinlock_t *ptl; pte_t *pte, entry; - - /* - * FOLL_PIN is not supported for follow_page(). Ordinary GUP goes via - * follow_hugetlb_page(). - */ - if (WARN_ON_ONCE(flags & FOLL_PIN)) - return NULL; + int ret; hugetlb_vma_lock_read(vma); pte = hugetlb_walk(vma, haddr, huge_page_size(h)); @@ -6505,8 +6538,23 @@ ptl = huge_pte_lock(h, mm, pte); entry = huge_ptep_get(pte); if (pte_present(entry)) { - page = pte_page(entry) + - ((address & ~huge_page_mask(h)) >> PAGE_SHIFT); + page = pte_page(entry); + + if (!huge_pte_write(entry)) { + if (flags & FOLL_WRITE) { + page = NULL; + goto out; + } + + if (gup_must_unshare(vma, flags, page)) { + /* Tell the caller to do unsharing */ + page = ERR_PTR(-EMLINK); + goto out; + } + } + + page = nth_page(page, ((address & ~huge_page_mask(h)) >> PAGE_SHIFT)); + /* * Note that page may be a sub-page, and with vmemmap * optimizations the page struct may be read only. @@ -6516,8 +6564,10 @@ * try_grab_page() should always be able to get the page here, * because we hold the ptl lock and have verified pte_present(). */ - if (try_grab_page(page, flags)) { - page = NULL; + ret = try_grab_page(page, flags); + + if (WARN_ON_ONCE(ret)) { + page = ERR_PTR(ret); goto out; } } @@ -7015,8 +7065,10 @@ */ if (chg >= 0 && add < 0) region_abort(resv_map, from, to, regions_needed); - if (vma && is_vma_resv_set(vma, HPAGE_RESV_OWNER)) + if (vma && is_vma_resv_set(vma, HPAGE_RESV_OWNER)) { kref_put(&resv_map->refs, resv_map_release); + set_vma_resv_map(vma, NULL); + } return false; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/mm/kasan/report.c +++ linux-riscv-6.5.0/mm/kasan/report.c @@ -621,9 +621,8 @@ } #endif /* CONFIG_KASAN_HW_TAGS */ -#ifdef CONFIG_KASAN_INLINE /* - * With CONFIG_KASAN_INLINE, accesses to bogus pointers (outside the high + * With CONFIG_KASAN, accesses to bogus pointers (outside the high * canonical half of the address space) cause out-of-bounds shadow memory reads * before the actual access. For addresses in the low canonical half of the * address space, as well as most non-canonical addresses, that out-of-bounds @@ -659,4 +658,3 @@ pr_alert("KASAN: %s in range [0x%016lx-0x%016lx]\n", bug_type, orig_addr, orig_addr + KASAN_GRANULE_SIZE - 1); } -#endif only in patch2: unchanged: --- linux-riscv-6.5.0.orig/mm/memory_hotplug.c +++ linux-riscv-6.5.0/mm/memory_hotplug.c @@ -1063,6 +1063,9 @@ kasan_remove_zero_shadow(__va(PFN_PHYS(pfn)), PFN_PHYS(nr_pages)); } +/* + * Must be called with mem_hotplug_lock in write mode. + */ int __ref online_pages(unsigned long pfn, unsigned long nr_pages, struct zone *zone, struct memory_group *group) { @@ -1083,7 +1086,6 @@ !IS_ALIGNED(pfn + nr_pages, PAGES_PER_SECTION))) return -EINVAL; - mem_hotplug_begin(); /* associate pfn range with the zone */ move_pfn_range_to_zone(zone, pfn, nr_pages, NULL, MIGRATE_ISOLATE); @@ -1142,7 +1144,6 @@ writeback_set_ratelimit(); memory_notify(MEM_ONLINE, &arg); - mem_hotplug_done(); return 0; failed_addition: @@ -1151,7 +1152,6 @@ (((unsigned long long) pfn + nr_pages) << PAGE_SHIFT) - 1); memory_notify(MEM_CANCEL_ONLINE, &arg); remove_pfn_range_from_zone(zone, pfn, nr_pages); - mem_hotplug_done(); return ret; } @@ -1357,7 +1357,7 @@ ret = create_memory_block_devices(start, size, mhp_altmap.alloc, group); if (ret) { - arch_remove_memory(start, size, NULL); + arch_remove_memory(start, size, params.altmap); goto error; } @@ -1586,7 +1586,7 @@ */ if (HPageMigratable(head)) goto found; - skip = compound_nr(head) - (page - head); + skip = compound_nr(head) - (pfn - page_to_pfn(head)); pfn += skip - 1; } return -ENOENT; @@ -1760,6 +1760,9 @@ return 0; } +/* + * Must be called with mem_hotplug_lock in write mode. + */ int __ref offline_pages(unsigned long start_pfn, unsigned long nr_pages, struct zone *zone, struct memory_group *group) { @@ -1782,8 +1785,6 @@ !IS_ALIGNED(start_pfn + nr_pages, PAGES_PER_SECTION))) return -EINVAL; - mem_hotplug_begin(); - /* * Don't allow to offline memory blocks that contain holes. * Consequently, memory blocks with holes can never get onlined @@ -1919,7 +1920,6 @@ memory_notify(MEM_OFFLINE, &arg); remove_pfn_range_from_zone(zone, start_pfn, nr_pages); - mem_hotplug_done(); return 0; failed_removal_isolated: @@ -1934,7 +1934,6 @@ (unsigned long long) start_pfn << PAGE_SHIFT, ((unsigned long long) end_pfn << PAGE_SHIFT) - 1, reason); - mem_hotplug_done(); return ret; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/mm/migrate.c +++ linux-riscv-6.5.0/mm/migrate.c @@ -2160,6 +2160,7 @@ const int __user *nodes, int __user *status, int flags) { + compat_uptr_t __user *compat_pages = (void __user *)pages; int current_node = NUMA_NO_NODE; LIST_HEAD(pagelist); int start, i; @@ -2172,8 +2173,17 @@ int node; err = -EFAULT; - if (get_user(p, pages + i)) - goto out_flush; + if (in_compat_syscall()) { + compat_uptr_t cp; + + if (get_user(cp, compat_pages + i)) + goto out_flush; + + p = compat_ptr(cp); + } else { + if (get_user(p, pages + i)) + goto out_flush; + } if (get_user(node, nodes + i)) goto out_flush; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/mm/page-writeback.c +++ linux-riscv-6.5.0/mm/page-writeback.c @@ -3131,7 +3131,7 @@ */ void folio_wait_stable(struct folio *folio) { - if (folio_inode(folio)->i_sb->s_iflags & SB_I_STABLE_WRITES) + if (mapping_stable_writes(folio_mapping(folio))) folio_wait_writeback(folio); } EXPORT_SYMBOL_GPL(folio_wait_stable); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/mm/readahead.c +++ linux-riscv-6.5.0/mm/readahead.c @@ -748,7 +748,8 @@ */ ret = -EINVAL; if (!f.file->f_mapping || !f.file->f_mapping->a_ops || - !S_ISREG(file_inode(f.file)->i_mode)) + (!S_ISREG(file_inode(f.file)->i_mode) && + !S_ISBLK(file_inode(f.file)->i_mode))) goto out; ret = vfs_fadvise(f.file, offset, count, POSIX_FADV_WILLNEED); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/9p/client.c +++ linux-riscv-6.5.0/net/9p/client.c @@ -540,12 +540,14 @@ return 0; if (!p9_is_proto_dotl(c)) { - char *ename; + char *ename = NULL; err = p9pdu_readf(&req->rc, c->proto_version, "s?d", &ename, &ecode); - if (err) + if (err) { + kfree(ename); goto out_err; + } if (p9_is_proto_dotu(c) && ecode < 512) err = -ecode; @@ -1979,7 +1981,7 @@ goto error; } p9_debug(P9_DEBUG_9P, - ">>> TXATTRWALK file_fid %d, attr_fid %d name %s\n", + ">>> TXATTRWALK file_fid %d, attr_fid %d name '%s'\n", file_fid->fid, attr_fid->fid, attr_name); req = p9_client_rpc(clnt, P9_TXATTRWALK, "dds", only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/appletalk/ddp.c +++ linux-riscv-6.5.0/net/appletalk/ddp.c @@ -1811,15 +1811,14 @@ break; } case TIOCINQ: { - /* - * These two are safe on a single CPU system as only - * user tasks fiddle here - */ - struct sk_buff *skb = skb_peek(&sk->sk_receive_queue); + struct sk_buff *skb; long amount = 0; + spin_lock_irq(&sk->sk_receive_queue.lock); + skb = skb_peek(&sk->sk_receive_queue); if (skb) amount = skb->len - sizeof(struct ddpehdr); + spin_unlock_irq(&sk->sk_receive_queue.lock); rc = put_user(amount, (int __user *)argp); break; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/atm/ioctl.c +++ linux-riscv-6.5.0/net/atm/ioctl.c @@ -73,14 +73,17 @@ case SIOCINQ: { struct sk_buff *skb; + int amount; if (sock->state != SS_CONNECTED) { error = -EINVAL; goto done; } + spin_lock_irq(&sk->sk_receive_queue.lock); skb = skb_peek(&sk->sk_receive_queue); - error = put_user(skb ? skb->len : 0, - (int __user *)argp) ? -EFAULT : 0; + amount = skb ? skb->len : 0; + spin_unlock_irq(&sk->sk_receive_queue.lock); + error = put_user(amount, (int __user *)argp) ? -EFAULT : 0; goto done; } case ATM_SETSC: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/bluetooth/af_bluetooth.c +++ linux-riscv-6.5.0/net/bluetooth/af_bluetooth.c @@ -264,11 +264,14 @@ if (flags & MSG_OOB) return -EOPNOTSUPP; + lock_sock(sk); + skb = skb_recv_datagram(sk, flags, &err); if (!skb) { if (sk->sk_shutdown & RCV_SHUTDOWN) - return 0; + err = 0; + release_sock(sk); return err; } @@ -294,6 +297,8 @@ skb_free_datagram(sk, skb); + release_sock(sk); + if (flags & MSG_TRUNC) copied = skblen; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/bluetooth/amp.c +++ linux-riscv-6.5.0/net/bluetooth/amp.c @@ -109,7 +109,7 @@ struct hci_conn *hcon; u8 role = out ? HCI_ROLE_MASTER : HCI_ROLE_SLAVE; - hcon = hci_conn_add(hdev, AMP_LINK, dst, role); + hcon = hci_conn_add(hdev, AMP_LINK, dst, role, __next_handle(mgr)); if (!hcon) return NULL; @@ -117,7 +117,6 @@ hcon->state = BT_CONNECT; hcon->attempt++; - hcon->handle = __next_handle(mgr); hcon->remote_id = remote_id; hcon->amp_mgr = amp_mgr_get(mgr); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/bluetooth/hci_sock.c +++ linux-riscv-6.5.0/net/bluetooth/hci_sock.c @@ -439,7 +439,8 @@ ni->type = hdev->dev_type; ni->bus = hdev->bus; bacpy(&ni->bdaddr, &hdev->bdaddr); - memcpy(ni->name, hdev->name, 8); + memcpy_and_pad(ni->name, sizeof(ni->name), hdev->name, + strnlen(hdev->name, sizeof(ni->name)), '\0'); opcode = cpu_to_le16(HCI_MON_NEW_INDEX); break; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/bluetooth/hci_sysfs.c +++ linux-riscv-6.5.0/net/bluetooth/hci_sysfs.c @@ -35,7 +35,7 @@ { struct hci_dev *hdev = conn->hdev; - BT_DBG("conn %p", conn); + bt_dev_dbg(hdev, "conn %p", conn); conn->dev.type = &bt_link; conn->dev.class = &bt_class; @@ -48,27 +48,30 @@ { struct hci_dev *hdev = conn->hdev; - BT_DBG("conn %p", conn); + bt_dev_dbg(hdev, "conn %p", conn); if (device_is_registered(&conn->dev)) return; dev_set_name(&conn->dev, "%s:%d", hdev->name, conn->handle); - if (device_add(&conn->dev) < 0) { + if (device_add(&conn->dev) < 0) bt_dev_err(hdev, "failed to register connection device"); - return; - } - - hci_dev_hold(hdev); } void hci_conn_del_sysfs(struct hci_conn *conn) { struct hci_dev *hdev = conn->hdev; - if (!device_is_registered(&conn->dev)) + bt_dev_dbg(hdev, "conn %p", conn); + + if (!device_is_registered(&conn->dev)) { + /* If device_add() has *not* succeeded, use *only* put_device() + * to drop the reference count. + */ + put_device(&conn->dev); return; + } while (1) { struct device *dev; @@ -80,9 +83,7 @@ put_device(dev); } - device_del(&conn->dev); - - hci_dev_put(hdev); + device_unregister(&conn->dev); } static void bt_host_release(struct device *dev) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/bluetooth/l2cap_core.c +++ linux-riscv-6.5.0/net/bluetooth/l2cap_core.c @@ -6492,6 +6492,14 @@ kfree_skb(skb); } +static inline void l2cap_sig_send_rej(struct l2cap_conn *conn, u16 ident) +{ + struct l2cap_cmd_rej_unk rej; + + rej.reason = cpu_to_le16(L2CAP_REJ_NOT_UNDERSTOOD); + l2cap_send_cmd(conn, ident, L2CAP_COMMAND_REJ, sizeof(rej), &rej); +} + static inline void l2cap_sig_channel(struct l2cap_conn *conn, struct sk_buff *skb) { @@ -6517,23 +6525,24 @@ if (len > skb->len || !cmd->ident) { BT_DBG("corrupted command"); + l2cap_sig_send_rej(conn, cmd->ident); break; } err = l2cap_bredr_sig_cmd(conn, cmd, len, skb->data); if (err) { - struct l2cap_cmd_rej_unk rej; - BT_ERR("Wrong link type (%d)", err); - - rej.reason = cpu_to_le16(L2CAP_REJ_NOT_UNDERSTOOD); - l2cap_send_cmd(conn, cmd->ident, L2CAP_COMMAND_REJ, - sizeof(rej), &rej); + l2cap_sig_send_rej(conn, cmd->ident); } skb_pull(skb, len); } + if (skb->len > 0) { + BT_DBG("corrupted command"); + l2cap_sig_send_rej(conn, 0); + } + drop: kfree_skb(skb); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/bridge/netfilter/nf_conntrack_bridge.c +++ linux-riscv-6.5.0/net/bridge/netfilter/nf_conntrack_bridge.c @@ -37,7 +37,7 @@ ktime_t tstamp = skb->tstamp; struct ip_frag_state state; struct iphdr *iph; - int err; + int err = 0; /* for offloaded checksums cleanup checksum before fragmentation */ if (skb->ip_summed == CHECKSUM_PARTIAL && only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/core/dev.h +++ linux-riscv-6.5.0/net/core/dev.h @@ -62,6 +62,9 @@ int netdev_get_name(struct net *net, char *name, int ifindex); int dev_change_name(struct net_device *dev, const char *newname); +#define netdev_for_each_altname(dev, namenode) \ + list_for_each_entry((namenode), &(dev)->name_node->list, list) + int netdev_name_node_alt_create(struct net_device *dev, const char *name); int netdev_name_node_alt_destroy(struct net_device *dev, const char *name); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/core/drop_monitor.c +++ linux-riscv-6.5.0/net/core/drop_monitor.c @@ -183,7 +183,7 @@ } static const struct genl_multicast_group dropmon_mcgrps[] = { - { .name = "events", }, + { .name = "events", .cap_sys_admin = 1 }, }; static void send_dm_alert(struct work_struct *work) @@ -1619,11 +1619,13 @@ .cmd = NET_DM_CMD_START, .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, .doit = net_dm_cmd_trace, + .flags = GENL_ADMIN_PERM, }, { .cmd = NET_DM_CMD_STOP, .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, .doit = net_dm_cmd_trace, + .flags = GENL_ADMIN_PERM, }, { .cmd = NET_DM_CMD_CONFIG_GET, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/core/page_pool.c +++ linux-riscv-6.5.0/net/core/page_pool.c @@ -210,8 +210,12 @@ return -ENOMEM; #endif - if (ptr_ring_init(&pool->ring, ring_qsize, GFP_KERNEL) < 0) + if (ptr_ring_init(&pool->ring, ring_qsize, GFP_KERNEL) < 0) { +#ifdef CONFIG_PAGE_POOL_STATS + free_percpu(pool->recycle_stats); +#endif return -ENOMEM; + } atomic_set(&pool->pages_state_release_cnt, 0); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/core/pktgen.c +++ linux-riscv-6.5.0/net/core/pktgen.c @@ -669,19 +669,19 @@ seq_puts(seq, " Flags: "); for (i = 0; i < NR_PKT_FLAGS; i++) { - if (i == F_FLOW_SEQ) + if (i == FLOW_SEQ_SHIFT) if (!pkt_dev->cflows) continue; - if (pkt_dev->flags & (1 << i)) + if (pkt_dev->flags & (1 << i)) { seq_printf(seq, "%s ", pkt_flag_names[i]); - else if (i == F_FLOW_SEQ) - seq_puts(seq, "FLOW_RND "); - #ifdef CONFIG_XFRM - if (i == F_IPSEC && pkt_dev->spi) - seq_printf(seq, "spi:%u", pkt_dev->spi); + if (i == IPSEC_SHIFT && pkt_dev->spi) + seq_printf(seq, "spi:%u ", pkt_dev->spi); #endif + } else if (i == FLOW_SEQ_SHIFT) { + seq_puts(seq, "FLOW_RND "); + } } seq_puts(seq, "\n"); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/core/rtnetlink.c +++ linux-riscv-6.5.0/net/core/rtnetlink.c @@ -5504,13 +5504,11 @@ rtnl_offload_xstats_get_size_hw_s_info_one(const struct net_device *dev, enum netdev_offload_xstats_type type) { - bool enabled = netdev_offload_xstats_enabled(dev, type); - return nla_total_size(0) + /* IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST */ nla_total_size(sizeof(u8)) + /* IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED */ - (enabled ? nla_total_size(sizeof(u8)) : 0) + + nla_total_size(sizeof(u8)) + 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/core/stream.c +++ linux-riscv-6.5.0/net/core/stream.c @@ -117,7 +117,7 @@ */ int sk_stream_wait_memory(struct sock *sk, long *timeo_p) { - int err = 0; + int ret, err = 0; long vm_wait = 0; long current_timeo = *timeo_p; DEFINE_WAIT_FUNC(wait, woken_wake_function); @@ -142,11 +142,13 @@ set_bit(SOCK_NOSPACE, &sk->sk_socket->flags); sk->sk_write_pending++; - sk_wait_event(sk, ¤t_timeo, READ_ONCE(sk->sk_err) || - (READ_ONCE(sk->sk_shutdown) & SEND_SHUTDOWN) || - (sk_stream_memory_free(sk) && - !vm_wait), &wait); + ret = sk_wait_event(sk, ¤t_timeo, READ_ONCE(sk->sk_err) || + (READ_ONCE(sk->sk_shutdown) & SEND_SHUTDOWN) || + (sk_stream_memory_free(sk) && !vm_wait), + &wait); sk->sk_write_pending--; + if (ret < 0) + goto do_error; if (vm_wait) { vm_wait -= current_timeo; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/ethtool/netlink.c +++ linux-riscv-6.5.0/net/ethtool/netlink.c @@ -531,6 +531,7 @@ idx++; } + ret = 0; } rtnl_unlock(); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/ipv4/af_inet.c +++ linux-riscv-6.5.0/net/ipv4/af_inet.c @@ -587,7 +587,6 @@ 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_*. @@ -603,7 +602,6 @@ } remove_wait_queue(sk_sleep(sk), &wait); sk->sk_write_pending -= writebias; - sk->sk_wait_pending--; return timeo; } @@ -632,6 +630,7 @@ return -EINVAL; if (uaddr->sa_family == AF_UNSPEC) { + sk->sk_disconnects++; err = sk->sk_prot->disconnect(sk, flags); sock->state = err ? SS_DISCONNECTING : SS_UNCONNECTED; goto out; @@ -686,6 +685,7 @@ int writebias = (sk->sk_protocol == IPPROTO_TCP) && tcp_sk(sk)->fastopen_req && tcp_sk(sk)->fastopen_req->data ? 1 : 0; + int dis = sk->sk_disconnects; /* Error code is set above */ if (!timeo || !inet_wait_for_connect(sk, timeo, writebias)) @@ -694,6 +694,11 @@ err = sock_intr_errno(timeo); if (signal_pending(current)) goto out; + + if (dis != sk->sk_disconnects) { + err = -EPIPE; + goto out; + } } /* Connection was closed by RST, timeout, ICMP error @@ -715,6 +720,7 @@ sock_error: err = sock_error(sk) ? : -ECONNABORTED; sock->state = SS_UNCONNECTED; + sk->sk_disconnects++; if (sk->sk_prot->disconnect(sk, flags)) sock->state = SS_DISCONNECTING; goto out; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/ipv4/esp4.c +++ linux-riscv-6.5.0/net/ipv4/esp4.c @@ -732,7 +732,9 @@ skb->csum = csum_block_sub(skb->csum, csumdiff, skb->len - trimlen); } - pskb_trim(skb, skb->len - trimlen); + ret = pskb_trim(skb, skb->len - trimlen); + if (unlikely(ret)) + return ret; ret = nexthdr[1]; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/ipv4/inet_connection_sock.c +++ linux-riscv-6.5.0/net/ipv4/inet_connection_sock.c @@ -1145,7 +1145,6 @@ 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; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/ipv4/ip_gre.c +++ linux-riscv-6.5.0/net/ipv4/ip_gre.c @@ -635,15 +635,18 @@ } if (dev->header_ops) { + int pull_len = tunnel->hlen + sizeof(struct iphdr); + if (skb_cow_head(skb, 0)) goto free_skb; tnl_params = (const struct iphdr *)skb->data; - /* Pull skb since ip_tunnel_xmit() needs skb->data pointing - * to gre header. - */ - skb_pull(skb, tunnel->hlen + sizeof(struct iphdr)); + if (!pskb_network_may_pull(skb, pull_len)) + goto free_skb; + + /* ip_tunnel_xmit() needs skb->data pointing to gre header. */ + skb_pull(skb, pull_len); skb_reset_mac_header(skb); if (skb->ip_summed == CHECKSUM_PARTIAL && only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/ipv4/syncookies.c +++ linux-riscv-6.5.0/net/ipv4/syncookies.c @@ -41,7 +41,6 @@ * requested/supported by the syn/synack exchange. */ #define TSBITS 6 -#define TSMASK (((__u32)1 << TSBITS) - 1) static u32 cookie_hash(__be32 saddr, __be32 daddr, __be16 sport, __be16 dport, u32 count, int c) @@ -62,27 +61,22 @@ */ u64 cookie_init_timestamp(struct request_sock *req, u64 now) { - struct inet_request_sock *ireq; - u32 ts, ts_now = tcp_ns_to_ts(now); + const struct inet_request_sock *ireq = inet_rsk(req); + u64 ts, ts_now = tcp_ns_to_ts(now); u32 options = 0; - ireq = inet_rsk(req); - options = ireq->wscale_ok ? ireq->snd_wscale : TS_OPT_WSCALE_MASK; if (ireq->sack_ok) options |= TS_OPT_SACK; if (ireq->ecn_ok) options |= TS_OPT_ECN; - ts = ts_now & ~TSMASK; + ts = (ts_now >> TSBITS) << TSBITS; ts |= options; - if (ts > ts_now) { - ts >>= TSBITS; - ts--; - ts <<= TSBITS; - ts |= options; - } - return (u64)ts * (NSEC_PER_SEC / TCP_TS_HZ); + if (ts > ts_now) + ts -= (1UL << TSBITS); + + return ts * (NSEC_PER_SEC / TCP_TS_HZ); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/ipv4/tcp_ipv4.c +++ linux-riscv-6.5.0/net/ipv4/tcp_ipv4.c @@ -1869,6 +1869,7 @@ #ifdef CONFIG_TLS_DEVICE tail->decrypted != skb->decrypted || #endif + !mptcp_skb_can_collapse(tail, skb) || thtail->doff != th->doff || memcmp(thtail + 1, th + 1, hdrlen - sizeof(*th))) goto no_coalesce; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/ipv4/tcp_metrics.c +++ linux-riscv-6.5.0/net/ipv4/tcp_metrics.c @@ -470,11 +470,15 @@ u32 val, crtt = 0; /* cached RTT scaled by 8 */ sk_dst_confirm(sk); + /* ssthresh may have been reduced unnecessarily during. + * 3WHS. Restore it back to its initial default. + */ + tp->snd_ssthresh = TCP_INFINITE_SSTHRESH; if (!dst) goto reset; rcu_read_lock(); - tm = tcp_get_metrics(sk, dst, true); + tm = tcp_get_metrics(sk, dst, false); if (!tm) { rcu_read_unlock(); goto reset; @@ -489,11 +493,6 @@ tp->snd_ssthresh = val; if (tp->snd_ssthresh > tp->snd_cwnd_clamp) tp->snd_ssthresh = tp->snd_cwnd_clamp; - } else { - /* ssthresh may have been reduced unnecessarily during. - * 3WHS. Restore it back to its initial default. - */ - tp->snd_ssthresh = TCP_INFINITE_SSTHRESH; } val = tcp_metric_get(tm, TCP_METRIC_REORDERING); if (val && tp->reordering != val) @@ -908,7 +907,7 @@ match = net ? net_eq(tm_net(tm), net) : !refcount_read(&tm_net(tm)->ns.count); if (match) { - *pp = tm->tcpm_next; + rcu_assign_pointer(*pp, tm->tcpm_next); kfree_rcu(tm, rcu_head); } else { pp = &tm->tcpm_next; @@ -949,7 +948,7 @@ if (addr_same(&tm->tcpm_daddr, &daddr) && (!src || addr_same(&tm->tcpm_saddr, &saddr)) && net_eq(tm_net(tm), net)) { - *pp = tm->tcpm_next; + rcu_assign_pointer(*pp, tm->tcpm_next); kfree_rcu(tm, rcu_head); found = true; } else { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/ipv4/tcp_recovery.c +++ linux-riscv-6.5.0/net/ipv4/tcp_recovery.c @@ -104,7 +104,7 @@ tp->rack.advanced = 0; tcp_rack_detect_loss(sk, &timeout); if (timeout) { - timeout = usecs_to_jiffies(timeout) + TCP_TIMEOUT_MIN; + timeout = usecs_to_jiffies(timeout + TCP_TIMEOUT_MIN_US); inet_csk_reset_xmit_timer(sk, ICSK_TIME_REO_TIMEOUT, timeout, inet_csk(sk)->icsk_rto); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/ipv4/udp_offload.c +++ linux-riscv-6.5.0/net/ipv4/udp_offload.c @@ -557,10 +557,10 @@ NAPI_GRO_CB(skb)->is_flist = 0; if (!sk || !udp_sk(sk)->gro_receive) { if (skb->dev->features & NETIF_F_GRO_FRAGLIST) - NAPI_GRO_CB(skb)->is_flist = sk ? !udp_sk(sk)->gro_enabled : 1; + NAPI_GRO_CB(skb)->is_flist = sk ? !udp_test_bit(GRO_ENABLED, sk) : 1; if ((!sk && (skb->dev->features & NETIF_F_GRO_UDP_FWD)) || - (sk && udp_sk(sk)->gro_enabled) || NAPI_GRO_CB(skb)->is_flist) + (sk && udp_test_bit(GRO_ENABLED, sk)) || NAPI_GRO_CB(skb)->is_flist) return call_gro_receive(udp_gro_receive_segment, head, skb); /* no GRO, be sure flush the current packet */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/ipv4/udp_tunnel_core.c +++ linux-riscv-6.5.0/net/ipv4/udp_tunnel_core.c @@ -78,7 +78,7 @@ udp_sk(sk)->gro_receive = cfg->gro_receive; udp_sk(sk)->gro_complete = cfg->gro_complete; - udp_tunnel_encap_enable(sock); + udp_tunnel_encap_enable(sk); } EXPORT_SYMBOL_GPL(setup_udp_tunnel_sock); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/ipv4/udplite.c +++ linux-riscv-6.5.0/net/ipv4/udplite.c @@ -21,7 +21,6 @@ static int udplite_sk_init(struct sock *sk) { udp_init_sock(sk); - udp_sk(sk)->pcflag = UDPLITE_BIT; pr_warn_once("UDP-Lite is deprecated and scheduled to be removed in 2025, " "please contact the netdev mailing list\n"); return 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/ipv4/xfrm4_input.c +++ linux-riscv-6.5.0/net/ipv4/xfrm4_input.c @@ -85,11 +85,11 @@ struct udphdr *uh; struct iphdr *iph; int iphlen, len; - __u8 *udpdata; __be32 *udpdata32; - __u16 encap_type = up->encap_type; + u16 encap_type; + encap_type = READ_ONCE(up->encap_type); /* if this is not encapsulated socket, then just return now */ if (!encap_type) return 1; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/ipv6/esp6.c +++ linux-riscv-6.5.0/net/ipv6/esp6.c @@ -770,7 +770,9 @@ skb->csum = csum_block_sub(skb->csum, csumdiff, skb->len - trimlen); } - pskb_trim(skb, skb->len - trimlen); + ret = pskb_trim(skb, skb->len - trimlen); + if (unlikely(ret)) + return ret; ret = nexthdr[1]; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/ipv6/ip6_fib.c +++ linux-riscv-6.5.0/net/ipv6/ip6_fib.c @@ -1501,13 +1501,9 @@ if (!pn_leaf && !(pn->fn_flags & RTN_RTINFO)) { pn_leaf = fib6_find_prefix(info->nl_net, table, pn); -#if RT6_DEBUG >= 2 - if (!pn_leaf) { - WARN_ON(!pn_leaf); + if (!pn_leaf) pn_leaf = info->nl_net->ipv6.fib6_null_entry; - } -#endif fib6_info_hold(pn_leaf); rcu_assign_pointer(pn->leaf, pn_leaf); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/ipv6/syncookies.c +++ linux-riscv-6.5.0/net/ipv6/syncookies.c @@ -180,14 +180,15 @@ treq = tcp_rsk(req); treq->tfo_listener = false; - if (security_inet_conn_request(sk, skb, req)) - goto out_free; - req->mss = mss; ireq->ir_rmt_port = th->source; ireq->ir_num = ntohs(th->dest); ireq->ir_v6_rmt_addr = ipv6_hdr(skb)->saddr; ireq->ir_v6_loc_addr = ipv6_hdr(skb)->daddr; + + if (security_inet_conn_request(sk, skb, req)) + goto out_free; + if (ipv6_opt_accepted(sk, skb, &TCP_SKB_CB(skb)->header.h6) || np->rxopt.bits.rxinfo || np->rxopt.bits.rxoinfo || np->rxopt.bits.rxhlim || np->rxopt.bits.rxohlim) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/ipv6/xfrm6_input.c +++ linux-riscv-6.5.0/net/ipv6/xfrm6_input.c @@ -81,14 +81,14 @@ struct ipv6hdr *ip6h; int len; int ip6hlen = sizeof(struct ipv6hdr); - __u8 *udpdata; __be32 *udpdata32; - __u16 encap_type = up->encap_type; + u16 encap_type; if (skb->protocol == htons(ETH_P_IP)) return xfrm4_udp_encap_rcv(sk, skb); + encap_type = READ_ONCE(up->encap_type); /* if this is not encapsulated socket, then just return now */ if (!encap_type) return 1; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/ipv6/xfrm6_policy.c +++ linux-riscv-6.5.0/net/ipv6/xfrm6_policy.c @@ -117,10 +117,10 @@ { struct xfrm_dst *xdst = (struct xfrm_dst *)dst; - if (likely(xdst->u.rt6.rt6i_idev)) - in6_dev_put(xdst->u.rt6.rt6i_idev); dst_destroy_metrics_generic(dst); rt6_uncached_list_del(&xdst->u.rt6); + if (likely(xdst->u.rt6.rt6i_idev)) + in6_dev_put(xdst->u.rt6.rt6i_idev); xfrm_dst_destroy(xdst); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/l2tp/l2tp_core.c +++ linux-riscv-6.5.0/net/l2tp/l2tp_core.c @@ -1139,9 +1139,9 @@ switch (tunnel->encap) { case L2TP_ENCAPTYPE_UDP: /* No longer an encapsulation socket. See net/ipv4/udp.c */ - (udp_sk(sk))->encap_type = 0; - (udp_sk(sk))->encap_rcv = NULL; - (udp_sk(sk))->encap_destroy = NULL; + WRITE_ONCE(udp_sk(sk)->encap_type, 0); + udp_sk(sk)->encap_rcv = NULL; + udp_sk(sk)->encap_destroy = NULL; break; case L2TP_ENCAPTYPE_IP: break; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/llc/llc_input.c +++ linux-riscv-6.5.0/net/llc/llc_input.c @@ -127,8 +127,14 @@ skb->transport_header += llc_len; skb_pull(skb, llc_len); if (skb->protocol == htons(ETH_P_802_2)) { - __be16 pdulen = eth_hdr(skb)->h_proto; - s32 data_size = ntohs(pdulen) - llc_len; + __be16 pdulen; + s32 data_size; + + if (skb->mac_len < ETH_HLEN) + return 0; + + pdulen = eth_hdr(skb)->h_proto; + data_size = ntohs(pdulen) - llc_len; if (data_size < 0 || !pskb_may_pull(skb, data_size)) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/llc/llc_s_ac.c +++ linux-riscv-6.5.0/net/llc/llc_s_ac.c @@ -153,6 +153,9 @@ int rc = 1; u32 data_size; + if (skb->mac_len < ETH_HLEN) + return 1; + llc_pdu_decode_sa(skb, mac_da); llc_pdu_decode_da(skb, mac_sa); llc_pdu_decode_ssap(skb, &dsap); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/llc/llc_station.c +++ linux-riscv-6.5.0/net/llc/llc_station.c @@ -76,6 +76,9 @@ u32 data_size; struct sk_buff *nskb; + if (skb->mac_len < ETH_HLEN) + goto out; + /* The test request command is type U (llc_len = 3) */ data_size = ntohs(eth_hdr(skb)->h_proto) - 3; nskb = llc_alloc_frame(NULL, skb->dev, LLC_PDU_TYPE_U, data_size); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/mac80211/driver-ops.c +++ linux-riscv-6.5.0/net/mac80211/driver-ops.c @@ -510,10 +510,13 @@ if (ret) return ret; - for_each_set_bit(link_id, &links_to_add, IEEE80211_MLD_MAX_NUM_LINKS) { - link = rcu_access_pointer(sdata->link[link_id]); + if (!local->in_reconfig) { + for_each_set_bit(link_id, &links_to_add, + IEEE80211_MLD_MAX_NUM_LINKS) { + link = rcu_access_pointer(sdata->link[link_id]); - ieee80211_link_debugfs_drv_add(link); + ieee80211_link_debugfs_drv_add(link); + } } return 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/mac80211/driver-ops.h +++ linux-riscv-6.5.0/net/mac80211/driver-ops.h @@ -23,7 +23,7 @@ static inline struct ieee80211_sub_if_data * get_bss_sdata(struct ieee80211_sub_if_data *sdata) { - if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) + if (sdata && sdata->vif.type == NL80211_IFTYPE_AP_VLAN) sdata = container_of(sdata->bss, struct ieee80211_sub_if_data, u.ap); @@ -638,10 +638,13 @@ struct ieee80211_sub_if_data *sdata, u32 queues, bool drop) { - struct ieee80211_vif *vif = sdata ? &sdata->vif : NULL; + struct ieee80211_vif *vif; might_sleep(); + sdata = get_bss_sdata(sdata); + vif = sdata ? &sdata->vif : NULL; + if (sdata && !check_sdata_in_driver(sdata)) return; @@ -657,6 +660,8 @@ { might_sleep(); + sdata = get_bss_sdata(sdata); + if (sdata && !check_sdata_in_driver(sdata)) return; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/mac80211/drop.h +++ linux-riscv-6.5.0/net/mac80211/drop.h @@ -53,4 +53,7 @@ #undef DEF }; +#define RX_RES_IS_UNUSABLE(result) \ + (((__force u32)(result) & SKB_DROP_REASON_SUBSYS_MASK) == ___RX_DROP_UNUSABLE) + #endif /* MAC80211_DROP_H */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/mac80211/ibss.c +++ linux-riscv-6.5.0/net/mac80211/ibss.c @@ -1072,7 +1072,7 @@ &chandef); memcpy(&cap_ie, elems->vht_cap_elem, sizeof(cap_ie)); ieee80211_vht_cap_ie_to_sta_vht_cap(sdata, sband, - &cap_ie, + &cap_ie, NULL, &sta->deflink); if (memcmp(&cap, &sta->sta.deflink.vht_cap, sizeof(cap))) rates_updated |= true; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/mac80211/iface.c +++ linux-riscv-6.5.0/net/mac80211/iface.c @@ -691,7 +691,7 @@ ieee80211_recalc_ps(local); if (cancel_scan) - flush_delayed_work(&local->scan_work); + wiphy_delayed_work_flush(local->hw.wiphy, &local->scan_work); if (local->open_count == 0) { ieee80211_stop_device(local); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/mac80211/link.c +++ linux-riscv-6.5.0/net/mac80211/link.c @@ -195,7 +195,7 @@ memset(to_free, 0, sizeof(links)); - if (old_links == new_links) + if (old_links == new_links && dormant_links == sdata->vif.dormant_links) return 0; /* if there were no old links, need to clear the pointers to deflink */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/mac80211/main.c +++ linux-riscv-6.5.0/net/mac80211/main.c @@ -335,10 +335,7 @@ struct ieee80211_sub_if_data *sdata; int ret; - /* wait for scan work complete */ flush_workqueue(local->workqueue); - flush_work(&local->sched_scan_stopped_work); - flush_work(&local->radar_detected_work); rtnl_lock(); /* we might do interface manipulations, so need both */ @@ -379,8 +376,8 @@ ieee80211_scan_cancel(local); /* make sure any new ROC will consider local->in_reconfig */ - flush_delayed_work(&local->roc_work); - flush_work(&local->hw_roc_done); + wiphy_delayed_work_flush(local->hw.wiphy, &local->roc_work); + wiphy_work_flush(local->hw.wiphy, &local->hw_roc_done); /* wait for all packet processing to be done */ synchronize_net(); @@ -809,12 +806,12 @@ INIT_LIST_HEAD(&local->chanctx_list); mutex_init(&local->chanctx_mtx); - INIT_DELAYED_WORK(&local->scan_work, ieee80211_scan_work); + wiphy_delayed_work_init(&local->scan_work, ieee80211_scan_work); INIT_WORK(&local->restart_work, ieee80211_restart_work); - INIT_WORK(&local->radar_detected_work, - ieee80211_dfs_radar_detected_work); + wiphy_work_init(&local->radar_detected_work, + ieee80211_dfs_radar_detected_work); INIT_WORK(&local->reconfig_filter, ieee80211_reconfig_filter); local->smps_mode = IEEE80211_SMPS_OFF; @@ -825,8 +822,8 @@ ieee80211_dynamic_ps_disable_work); timer_setup(&local->dynamic_ps_timer, ieee80211_dynamic_ps_timer, 0); - INIT_WORK(&local->sched_scan_stopped_work, - ieee80211_sched_scan_stopped_work); + wiphy_work_init(&local->sched_scan_stopped_work, + ieee80211_sched_scan_stopped_work); spin_lock_init(&local->ack_status_lock); idr_init(&local->ack_status_frames); @@ -1482,13 +1479,15 @@ */ ieee80211_remove_interfaces(local); + wiphy_lock(local->hw.wiphy); + wiphy_delayed_work_cancel(local->hw.wiphy, &local->roc_work); + wiphy_work_cancel(local->hw.wiphy, &local->sched_scan_stopped_work); + wiphy_work_cancel(local->hw.wiphy, &local->radar_detected_work); + wiphy_unlock(local->hw.wiphy); rtnl_unlock(); - cancel_delayed_work_sync(&local->roc_work); cancel_work_sync(&local->restart_work); cancel_work_sync(&local->reconfig_filter); - flush_work(&local->sched_scan_stopped_work); - flush_work(&local->radar_detected_work); ieee80211_clear_tx_pending(local); rate_control_deinitialize(local); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/mac80211/mesh_pathtbl.c +++ linux-riscv-6.5.0/net/mac80211/mesh_pathtbl.c @@ -648,7 +648,7 @@ cache = &sdata->u.mesh.tx_cache; spin_lock_bh(&cache->walk_lock); - entry = rhashtable_lookup(&cache->rht, addr, fast_tx_rht_params); + entry = rhashtable_lookup_fast(&cache->rht, addr, fast_tx_rht_params); if (entry) mesh_fast_tx_entry_free(cache, entry); spin_unlock_bh(&cache->walk_lock); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/mac80211/mesh_plink.c +++ linux-riscv-6.5.0/net/mac80211/mesh_plink.c @@ -451,7 +451,7 @@ changed |= IEEE80211_RC_BW_CHANGED; ieee80211_vht_cap_ie_to_sta_vht_cap(sdata, sband, - elems->vht_cap_elem, + elems->vht_cap_elem, NULL, &sta->deflink); ieee80211_he_cap_ie_to_sta_he_cap(sdata, sband, elems->he_cap, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/mac80211/offchannel.c +++ linux-riscv-6.5.0/net/mac80211/offchannel.c @@ -230,7 +230,7 @@ if (dur == LONG_MAX) return false; - mod_delayed_work(local->workqueue, &local->roc_work, dur); + wiphy_delayed_work_queue(local->hw.wiphy, &local->roc_work, dur); return true; } @@ -258,7 +258,7 @@ roc->notified = true; } -static void ieee80211_hw_roc_start(struct work_struct *work) +static void ieee80211_hw_roc_start(struct wiphy *wiphy, struct wiphy_work *work) { struct ieee80211_local *local = container_of(work, struct ieee80211_local, hw_roc_start); @@ -285,7 +285,7 @@ trace_api_ready_on_channel(local); - ieee80211_queue_work(hw, &local->hw_roc_start); + wiphy_work_queue(hw->wiphy, &local->hw_roc_start); } EXPORT_SYMBOL_GPL(ieee80211_ready_on_channel); @@ -338,7 +338,7 @@ tmp->started = true; tmp->abort = true; } - ieee80211_queue_work(&local->hw, &local->hw_roc_done); + wiphy_work_queue(local->hw.wiphy, &local->hw_roc_done); return; } @@ -368,8 +368,8 @@ ieee80211_hw_config(local, 0); } - ieee80211_queue_delayed_work(&local->hw, &local->roc_work, - msecs_to_jiffies(min_dur)); + wiphy_delayed_work_queue(local->hw.wiphy, &local->roc_work, + msecs_to_jiffies(min_dur)); /* tell userspace or send frame(s) */ list_for_each_entry(tmp, &local->roc_list, list) { @@ -407,8 +407,8 @@ _ieee80211_start_next_roc(local); } else { /* delay it a bit */ - ieee80211_queue_delayed_work(&local->hw, &local->roc_work, - round_jiffies_relative(HZ/2)); + wiphy_delayed_work_queue(local->hw.wiphy, &local->roc_work, + round_jiffies_relative(HZ / 2)); } } @@ -451,7 +451,7 @@ } } -static void ieee80211_roc_work(struct work_struct *work) +static void ieee80211_roc_work(struct wiphy *wiphy, struct wiphy_work *work) { struct ieee80211_local *local = container_of(work, struct ieee80211_local, roc_work.work); @@ -461,7 +461,7 @@ mutex_unlock(&local->mtx); } -static void ieee80211_hw_roc_done(struct work_struct *work) +static void ieee80211_hw_roc_done(struct wiphy *wiphy, struct wiphy_work *work) { struct ieee80211_local *local = container_of(work, struct ieee80211_local, hw_roc_done); @@ -482,7 +482,7 @@ trace_api_remain_on_channel_expired(local); - ieee80211_queue_work(hw, &local->hw_roc_done); + wiphy_work_queue(hw->wiphy, &local->hw_roc_done); } EXPORT_SYMBOL_GPL(ieee80211_remain_on_channel_expired); @@ -586,8 +586,8 @@ /* if not HW assist, just queue & schedule work */ if (!local->ops->remain_on_channel) { list_add_tail(&roc->list, &local->roc_list); - ieee80211_queue_delayed_work(&local->hw, - &local->roc_work, 0); + wiphy_delayed_work_queue(local->hw.wiphy, + &local->roc_work, 0); } else { /* otherwise actually kick it off here * (for error handling) @@ -695,7 +695,7 @@ if (!cookie) return -ENOENT; - flush_work(&local->hw_roc_start); + wiphy_work_flush(local->hw.wiphy, &local->hw_roc_start); mutex_lock(&local->mtx); list_for_each_entry_safe(roc, tmp, &local->roc_list, list) { @@ -745,7 +745,7 @@ } else { /* go through work struct to return to the operating channel */ found->abort = true; - mod_delayed_work(local->workqueue, &local->roc_work, 0); + wiphy_delayed_work_queue(local->hw.wiphy, &local->roc_work, 0); } out_unlock: @@ -994,9 +994,9 @@ void ieee80211_roc_setup(struct ieee80211_local *local) { - INIT_WORK(&local->hw_roc_start, ieee80211_hw_roc_start); - INIT_WORK(&local->hw_roc_done, ieee80211_hw_roc_done); - INIT_DELAYED_WORK(&local->roc_work, ieee80211_roc_work); + wiphy_work_init(&local->hw_roc_start, ieee80211_hw_roc_start); + wiphy_work_init(&local->hw_roc_done, ieee80211_hw_roc_done); + wiphy_delayed_work_init(&local->roc_work, ieee80211_roc_work); INIT_LIST_HEAD(&local->roc_list); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/mac80211/scan.c +++ linux-riscv-6.5.0/net/mac80211/scan.c @@ -274,8 +274,8 @@ * the beacon/proberesp rx gives us an opportunity to upgrade * to active scan */ - set_bit(SCAN_BEACON_DONE, &local->scanning); - ieee80211_queue_delayed_work(&local->hw, &local->scan_work, 0); + set_bit(SCAN_BEACON_DONE, &local->scanning); + wiphy_delayed_work_queue(local->hw.wiphy, &local->scan_work, 0); } if (ieee80211_is_probe_resp(mgmt->frame_control)) { @@ -505,7 +505,7 @@ memcpy(&local->scan_info, info, sizeof(*info)); - ieee80211_queue_delayed_work(&local->hw, &local->scan_work, 0); + wiphy_delayed_work_queue(local->hw.wiphy, &local->scan_work, 0); } EXPORT_SYMBOL(ieee80211_scan_completed); @@ -545,8 +545,7 @@ /* We need to set power level at maximum rate for scanning. */ ieee80211_hw_config(local, 0); - ieee80211_queue_delayed_work(&local->hw, - &local->scan_work, 0); + wiphy_delayed_work_queue(local->hw.wiphy, &local->scan_work, 0); return 0; } @@ -603,8 +602,8 @@ lockdep_is_held(&local->mtx)))) return; - ieee80211_queue_delayed_work(&local->hw, &local->scan_work, - round_jiffies_relative(0)); + wiphy_delayed_work_queue(local->hw.wiphy, &local->scan_work, + round_jiffies_relative(0)); } static void ieee80211_send_scan_probe_req(struct ieee80211_sub_if_data *sdata, @@ -795,8 +794,8 @@ } /* Now, just wait a bit and we are all done! */ - ieee80211_queue_delayed_work(&local->hw, &local->scan_work, - next_delay); + wiphy_delayed_work_queue(local->hw.wiphy, &local->scan_work, + next_delay); return 0; } else { /* Do normal software scan */ @@ -1043,7 +1042,7 @@ local->next_scan_state = SCAN_SET_CHANNEL; } -void ieee80211_scan_work(struct work_struct *work) +void ieee80211_scan_work(struct wiphy *wiphy, struct wiphy_work *work) { struct ieee80211_local *local = container_of(work, struct ieee80211_local, scan_work.work); @@ -1137,7 +1136,8 @@ } } while (next_delay == 0); - ieee80211_queue_delayed_work(&local->hw, &local->scan_work, next_delay); + wiphy_delayed_work_queue(local->hw.wiphy, &local->scan_work, + next_delay); goto out; out_complete: @@ -1280,12 +1280,7 @@ goto out; } - /* - * If the work is currently running, it must be blocked on - * the mutex, but we'll set scan_sdata = NULL and it'll - * simply exit once it acquires the mutex. - */ - cancel_delayed_work(&local->scan_work); + wiphy_delayed_work_cancel(local->hw.wiphy, &local->scan_work); /* and clean up */ memset(&local->scan_info, 0, sizeof(local->scan_info)); __ieee80211_scan_completed(&local->hw, true); @@ -1427,10 +1422,11 @@ mutex_unlock(&local->mtx); - cfg80211_sched_scan_stopped(local->hw.wiphy, 0); + cfg80211_sched_scan_stopped_locked(local->hw.wiphy, 0); } -void ieee80211_sched_scan_stopped_work(struct work_struct *work) +void ieee80211_sched_scan_stopped_work(struct wiphy *wiphy, + struct wiphy_work *work) { struct ieee80211_local *local = container_of(work, struct ieee80211_local, @@ -1453,6 +1449,6 @@ if (local->in_reconfig) return; - schedule_work(&local->sched_scan_stopped_work); + wiphy_work_queue(hw->wiphy, &local->sched_scan_stopped_work); } EXPORT_SYMBOL(ieee80211_sched_scan_stopped); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/mac80211/sta_info.c +++ linux-riscv-6.5.0/net/mac80211/sta_info.c @@ -2990,7 +2990,7 @@ WLAN_EXT_CAPA9_MAX_MSDU_IN_AMSDU_MSB) << 1; if (val) - sta->sta.max_amsdu_subframes = 4 << val; + sta->sta.max_amsdu_subframes = 4 << (4 - val); } #ifdef CONFIG_LOCKDEP only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/mac80211/tx.c +++ linux-riscv-6.5.0/net/mac80211/tx.c @@ -665,7 +665,8 @@ } if (unlikely(tx->key && tx->key->flags & KEY_FLAG_TAINTED && - !ieee80211_is_deauth(hdr->frame_control))) + !ieee80211_is_deauth(hdr->frame_control)) && + tx->skb->protocol != tx->sdata->control_port_protocol) return TX_DROP; if (!skip_hw && tx->key && only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/mac80211/util.c +++ linux-riscv-6.5.0/net/mac80211/util.c @@ -2340,8 +2340,8 @@ */ if (aborted) set_bit(SCAN_ABORTED, &local->scanning); - ieee80211_queue_delayed_work(&local->hw, &local->scan_work, 0); - flush_delayed_work(&local->scan_work); + wiphy_delayed_work_queue(local->hw.wiphy, &local->scan_work, 0); + wiphy_delayed_work_flush(local->hw.wiphy, &local->scan_work); } } @@ -4356,7 +4356,8 @@ mutex_unlock(&local->mtx); } -void ieee80211_dfs_radar_detected_work(struct work_struct *work) +void ieee80211_dfs_radar_detected_work(struct wiphy *wiphy, + struct wiphy_work *work) { struct ieee80211_local *local = container_of(work, struct ieee80211_local, radar_detected_work); @@ -4374,9 +4375,7 @@ } mutex_unlock(&local->chanctx_mtx); - wiphy_lock(local->hw.wiphy); ieee80211_dfs_cac_cancel(local); - wiphy_unlock(local->hw.wiphy); if (num_chanctx > 1) /* XXX: multi-channel is not supported yet */ @@ -4391,7 +4390,7 @@ trace_api_radar_detected(local); - schedule_work(&local->radar_detected_work); + wiphy_work_queue(hw->wiphy, &local->radar_detected_work); } EXPORT_SYMBOL(ieee80211_radar_detected); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/mac80211/vht.c +++ linux-riscv-6.5.0/net/mac80211/vht.c @@ -4,7 +4,7 @@ * * Portions of this file * Copyright(c) 2015 - 2016 Intel Deutschland GmbH - * Copyright (C) 2018 - 2022 Intel Corporation + * Copyright (C) 2018 - 2023 Intel Corporation */ #include @@ -116,12 +116,14 @@ ieee80211_vht_cap_ie_to_sta_vht_cap(struct ieee80211_sub_if_data *sdata, struct ieee80211_supported_band *sband, const struct ieee80211_vht_cap *vht_cap_ie, + const struct ieee80211_vht_cap *vht_cap_ie2, struct link_sta_info *link_sta) { struct ieee80211_sta_vht_cap *vht_cap = &link_sta->pub->vht_cap; struct ieee80211_sta_vht_cap own_cap; u32 cap_info, i; bool have_80mhz; + u32 mpdu_len; memset(vht_cap, 0, sizeof(*vht_cap)); @@ -318,10 +320,20 @@ link_sta->pub->bandwidth = ieee80211_sta_cur_vht_bw(link_sta); /* + * Work around the Cisco 9115 FW 17.3 bug by taking the min of + * both reported MPDU lengths. + */ + mpdu_len = vht_cap->cap & IEEE80211_VHT_CAP_MAX_MPDU_MASK; + if (vht_cap_ie2) + mpdu_len = min_t(u32, mpdu_len, + le32_get_bits(vht_cap_ie2->vht_cap_info, + IEEE80211_VHT_CAP_MAX_MPDU_MASK)); + + /* * FIXME - should the amsdu len be per link? store per link * and maintain a minimum? */ - switch (vht_cap->cap & IEEE80211_VHT_CAP_MAX_MPDU_MASK) { + switch (mpdu_len) { case IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_11454: link_sta->pub->agg.max_amsdu_len = IEEE80211_MAX_MPDU_LEN_VHT_11454; break; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/mptcp/fastopen.c +++ linux-riscv-6.5.0/net/mptcp/fastopen.c @@ -52,6 +52,7 @@ mptcp_set_owner_r(skb, sk); __skb_queue_tail(&sk->sk_receive_queue, skb); + mptcp_sk(sk)->bytes_received += skb->len; sk->sk_data_ready(sk); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/mptcp/pm_netlink.c +++ linux-riscv-6.5.0/net/mptcp/pm_netlink.c @@ -1537,8 +1537,9 @@ struct mptcp_pm_addr_entry *entry; list_for_each_entry(entry, rm_list, list) { - remove_anno_list_by_saddr(msk, &entry->addr); - if (alist.nr < MPTCP_RM_IDS_MAX) + if ((remove_anno_list_by_saddr(msk, &entry->addr) || + lookup_subflow_by_saddr(&msk->conn_list, &entry->addr)) && + alist.nr < MPTCP_RM_IDS_MAX) alist.ids[alist.nr++] = entry->addr.id; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/mptcp/sockopt.c +++ linux-riscv-6.5.0/net/mptcp/sockopt.c @@ -737,8 +737,11 @@ val = inet_sk(sk)->tos; mptcp_for_each_subflow(msk, subflow) { struct sock *ssk = mptcp_subflow_tcp_sock(subflow); + bool slow; + slow = lock_sock_fast(ssk); __ip_sock_set_tos(ssk, val); + unlock_sock_fast(ssk, slow); } release_sock(sk); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/netfilter/nf_flow_table_core.c +++ linux-riscv-6.5.0/net/netfilter/nf_flow_table_core.c @@ -316,12 +316,6 @@ } EXPORT_SYMBOL_GPL(flow_offload_refresh); -static bool nf_flow_is_outdated(const struct flow_offload *flow) -{ - return test_bit(IPS_SEEN_REPLY_BIT, &flow->ct->status) && - !test_bit(NF_FLOW_HW_ESTABLISHED, &flow->flags); -} - static inline bool nf_flow_has_expired(const struct flow_offload *flow) { return nf_flow_timeout_delta(flow->timeout) <= 0; @@ -407,12 +401,18 @@ return err; } +static bool nf_flow_custom_gc(struct nf_flowtable *flow_table, + const struct flow_offload *flow) +{ + return flow_table->type->gc && flow_table->type->gc(flow); +} + static void nf_flow_offload_gc_step(struct nf_flowtable *flow_table, struct flow_offload *flow, void *data) { if (nf_flow_has_expired(flow) || nf_ct_is_dying(flow->ct) || - nf_flow_is_outdated(flow)) + nf_flow_custom_gc(flow_table, flow)) flow_offload_teardown(flow); if (test_bit(NF_FLOW_TEARDOWN, &flow->flags)) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/netfilter/nf_nat_redirect.c +++ linux-riscv-6.5.0/net/netfilter/nf_nat_redirect.c @@ -80,6 +80,26 @@ static const struct in6_addr loopback_addr = IN6ADDR_LOOPBACK_INIT; +static bool nf_nat_redirect_ipv6_usable(const struct inet6_ifaddr *ifa, unsigned int scope) +{ + unsigned int ifa_addr_type = ipv6_addr_type(&ifa->addr); + + if (ifa_addr_type & IPV6_ADDR_MAPPED) + return false; + + if ((ifa->flags & IFA_F_TENTATIVE) && (!(ifa->flags & IFA_F_OPTIMISTIC))) + return false; + + if (scope) { + unsigned int ifa_scope = ifa_addr_type & IPV6_ADDR_SCOPE_MASK; + + if (!(scope & ifa_scope)) + return false; + } + + return true; +} + unsigned int nf_nat_redirect_ipv6(struct sk_buff *skb, const struct nf_nat_range2 *range, unsigned int hooknum) @@ -89,14 +109,19 @@ if (hooknum == NF_INET_LOCAL_OUT) { newdst.in6 = loopback_addr; } else { + unsigned int scope = ipv6_addr_scope(&ipv6_hdr(skb)->daddr); struct inet6_dev *idev; - struct inet6_ifaddr *ifa; bool addr = false; idev = __in6_dev_get(skb->dev); if (idev != NULL) { + const struct inet6_ifaddr *ifa; + read_lock_bh(&idev->lock); list_for_each_entry(ifa, &idev->addr_list, if_list) { + if (!nf_nat_redirect_ipv6_usable(ifa, scope)) + continue; + newdst.in6 = ifa->addr; addr = true; break; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/netfilter/nfnetlink_log.c +++ linux-riscv-6.5.0/net/netfilter/nfnetlink_log.c @@ -700,8 +700,8 @@ unsigned int plen = 0; struct nfnl_log_net *log = nfnl_log_pernet(net); const struct nfnl_ct_hook *nfnl_ct = NULL; + enum ip_conntrack_info ctinfo = 0; struct nf_conn *ct = NULL; - enum ip_conntrack_info ctinfo; if (li_user && li_user->type == NF_LOG_TYPE_ULOG) li = li_user; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/netfilter/nft_byteorder.c +++ linux-riscv-6.5.0/net/netfilter/nft_byteorder.c @@ -38,13 +38,14 @@ switch (priv->size) { case 8: { + u64 *dst64 = (void *)dst; u64 src64; switch (priv->op) { case NFT_BYTEORDER_NTOH: for (i = 0; i < priv->len / 8; i++) { src64 = nft_reg_load64(&src[i]); - nft_reg_store64(&dst[i], + nft_reg_store64(&dst64[i], be64_to_cpu((__force __be64)src64)); } break; @@ -52,7 +53,7 @@ for (i = 0; i < priv->len / 8; i++) { src64 = (__force __u64) cpu_to_be64(nft_reg_load64(&src[i])); - nft_reg_store64(&dst[i], src64); + nft_reg_store64(&dst64[i], src64); } break; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/netfilter/nft_fib.c +++ linux-riscv-6.5.0/net/netfilter/nft_fib.c @@ -144,11 +144,15 @@ switch (priv->result) { case NFT_FIB_RESULT_OIF: index = dev ? dev->ifindex : 0; - *dreg = (priv->flags & NFTA_FIB_F_PRESENT) ? !!index : index; + if (priv->flags & NFTA_FIB_F_PRESENT) + nft_reg_store8(dreg, !!index); + else + *dreg = index; + break; case NFT_FIB_RESULT_OIFNAME: if (priv->flags & NFTA_FIB_F_PRESENT) - *dreg = !!dev; + nft_reg_store8(dreg, !!dev); else strncpy(reg, dev ? dev->name : "", IFNAMSIZ); break; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/netfilter/xt_owner.c +++ linux-riscv-6.5.0/net/netfilter/xt_owner.c @@ -76,18 +76,23 @@ */ return false; - filp = sk->sk_socket->file; - if (filp == NULL) + read_lock_bh(&sk->sk_callback_lock); + filp = sk->sk_socket ? sk->sk_socket->file : NULL; + if (filp == NULL) { + read_unlock_bh(&sk->sk_callback_lock); return ((info->match ^ info->invert) & (XT_OWNER_UID | XT_OWNER_GID)) == 0; + } if (info->match & XT_OWNER_UID) { kuid_t uid_min = make_kuid(net->user_ns, info->uid_min); kuid_t uid_max = make_kuid(net->user_ns, info->uid_max); if ((uid_gte(filp->f_cred->fsuid, uid_min) && uid_lte(filp->f_cred->fsuid, uid_max)) ^ - !(info->invert & XT_OWNER_UID)) + !(info->invert & XT_OWNER_UID)) { + read_unlock_bh(&sk->sk_callback_lock); return false; + } } if (info->match & XT_OWNER_GID) { @@ -112,10 +117,13 @@ } } - if (match ^ !(info->invert & XT_OWNER_GID)) + if (match ^ !(info->invert & XT_OWNER_GID)) { + read_unlock_bh(&sk->sk_callback_lock); return false; + } } + read_unlock_bh(&sk->sk_callback_lock); return true; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/netfilter/xt_recent.c +++ linux-riscv-6.5.0/net/netfilter/xt_recent.c @@ -561,7 +561,7 @@ { struct recent_table *t = pde_data(file_inode(file)); struct recent_entry *e; - char buf[sizeof("+b335:1d35:1e55:dead:c0de:1715:5afe:c0de")]; + char buf[sizeof("+b335:1d35:1e55:dead:c0de:1715:255.255.255.255")]; const char *c = buf; union nf_inet_addr addr = {}; u_int16_t family; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/netlink/genetlink.c +++ linux-riscv-6.5.0/net/netlink/genetlink.c @@ -1693,6 +1693,9 @@ if ((grp->flags & GENL_UNS_ADMIN_PERM) && !ns_capable(net->user_ns, CAP_NET_ADMIN)) ret = -EPERM; + if (grp->cap_sys_admin && + !ns_capable(net->user_ns, CAP_SYS_ADMIN)) + ret = -EPERM; break; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/nfc/nci/spi.c +++ linux-riscv-6.5.0/net/nfc/nci/spi.c @@ -151,6 +151,8 @@ int ret; skb = nci_skb_alloc(nspi->ndev, 0, GFP_KERNEL); + if (!skb) + return -ENOMEM; /* add the NCI SPI header to the start of the buffer */ hdr = skb_push(skb, NCI_SPI_HDR_LEN); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/openvswitch/conntrack.c +++ linux-riscv-6.5.0/net/openvswitch/conntrack.c @@ -1043,7 +1043,7 @@ if (err) return err; - nf_conn_act_ct_ext_add(ct); + nf_conn_act_ct_ext_add(skb, ct, ctinfo); } else if (IS_ENABLED(CONFIG_NF_CONNTRACK_LABELS) && labels_nonzero(&info->labels.mask)) { err = ovs_ct_set_labels(ct, key, &info->labels.value, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/packet/internal.h +++ linux-riscv-6.5.0/net/packet/internal.h @@ -122,7 +122,7 @@ __be16 num; struct packet_rollover *rollover; struct packet_mclist *mclist; - atomic_t mapped; + atomic_long_t mapped; enum tpacket_versions tp_version; unsigned int tp_hdrlen; unsigned int tp_reserve; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/psample/psample.c +++ linux-riscv-6.5.0/net/psample/psample.c @@ -31,7 +31,8 @@ static const struct genl_multicast_group psample_nl_mcgrps[] = { [PSAMPLE_NL_MCGRP_CONFIG] = { .name = PSAMPLE_NL_MCGRP_CONFIG_NAME }, - [PSAMPLE_NL_MCGRP_SAMPLE] = { .name = PSAMPLE_NL_MCGRP_SAMPLE_NAME }, + [PSAMPLE_NL_MCGRP_SAMPLE] = { .name = PSAMPLE_NL_MCGRP_SAMPLE_NAME, + .flags = GENL_UNS_ADMIN_PERM }, }; static struct genl_family psample_nl_family __ro_after_init; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/rfkill/rfkill-gpio.c +++ linux-riscv-6.5.0/net/rfkill/rfkill-gpio.c @@ -108,13 +108,13 @@ rfkill->clk = devm_clk_get(&pdev->dev, NULL); - gpio = devm_gpiod_get_optional(&pdev->dev, "reset", GPIOD_OUT_LOW); + gpio = devm_gpiod_get_optional(&pdev->dev, "reset", GPIOD_ASIS); if (IS_ERR(gpio)) return PTR_ERR(gpio); rfkill->reset_gpio = gpio; - gpio = devm_gpiod_get_optional(&pdev->dev, "shutdown", GPIOD_OUT_LOW); + gpio = devm_gpiod_get_optional(&pdev->dev, "shutdown", GPIOD_ASIS); if (IS_ERR(gpio)) return PTR_ERR(gpio); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/rose/af_rose.c +++ linux-riscv-6.5.0/net/rose/af_rose.c @@ -1315,9 +1315,11 @@ case TIOCINQ: { struct sk_buff *skb; long amount = 0L; - /* These two are safe on a single CPU system as only user tasks fiddle here */ + + spin_lock_irq(&sk->sk_receive_queue.lock); if ((skb = skb_peek(&sk->sk_receive_queue)) != NULL) amount = skb->len; + spin_unlock_irq(&sk->sk_receive_queue.lock); return put_user(amount, (unsigned int __user *) argp); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/rxrpc/conn_object.c +++ linux-riscv-6.5.0/net/rxrpc/conn_object.c @@ -212,7 +212,7 @@ conn->idle_timestamp = jiffies; if (atomic_dec_and_test(&conn->active)) rxrpc_set_service_reap_timer(conn->rxnet, - jiffies + rxrpc_connection_expiry); + jiffies + rxrpc_connection_expiry * HZ); } rxrpc_put_call(call, rxrpc_call_put_io_thread); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/rxrpc/input.c +++ linux-riscv-6.5.0/net/rxrpc/input.c @@ -643,12 +643,8 @@ clear_bit(i + RXRPC_CALL_RTT_PEND_SHIFT, &call->rtt_avail); smp_mb(); /* Read data before setting avail bit */ set_bit(i, &call->rtt_avail); - if (type != rxrpc_rtt_rx_cancel) - rxrpc_peer_add_rtt(call, type, i, acked_serial, ack_serial, - sent_at, resp_time); - else - trace_rxrpc_rtt_rx(call, rxrpc_rtt_rx_cancel, i, - orig_serial, acked_serial, 0, 0); + rxrpc_peer_add_rtt(call, type, i, acked_serial, ack_serial, + sent_at, resp_time); matched = true; } @@ -801,28 +797,21 @@ summary.ack_reason, nr_acks); rxrpc_inc_stat(call->rxnet, stat_rx_acks[ack.reason]); - switch (ack.reason) { - case RXRPC_ACK_PING_RESPONSE: - rxrpc_complete_rtt_probe(call, skb->tstamp, acked_serial, ack_serial, - rxrpc_rtt_rx_ping_response); - break; - case RXRPC_ACK_REQUESTED: - rxrpc_complete_rtt_probe(call, skb->tstamp, acked_serial, ack_serial, - rxrpc_rtt_rx_requested_ack); - break; - default: - if (acked_serial != 0) + if (acked_serial != 0) { + switch (ack.reason) { + case RXRPC_ACK_PING_RESPONSE: rxrpc_complete_rtt_probe(call, skb->tstamp, acked_serial, ack_serial, - rxrpc_rtt_rx_cancel); - break; - } - - if (ack.reason == RXRPC_ACK_PING) { - rxrpc_send_ACK(call, RXRPC_ACK_PING_RESPONSE, ack_serial, - rxrpc_propose_ack_respond_to_ping); - } else if (sp->hdr.flags & RXRPC_REQUEST_ACK) { - rxrpc_send_ACK(call, RXRPC_ACK_REQUESTED, ack_serial, - rxrpc_propose_ack_respond_to_ack); + rxrpc_rtt_rx_ping_response); + break; + case RXRPC_ACK_REQUESTED: + rxrpc_complete_rtt_probe(call, skb->tstamp, acked_serial, ack_serial, + rxrpc_rtt_rx_requested_ack); + break; + default: + rxrpc_complete_rtt_probe(call, skb->tstamp, acked_serial, ack_serial, + rxrpc_rtt_rx_other_ack); + break; + } } /* If we get an EXCEEDS_WINDOW ACK from the server, it probably @@ -835,7 +824,7 @@ rxrpc_is_client_call(call)) { rxrpc_set_call_completion(call, RXRPC_CALL_REMOTELY_ABORTED, 0, -ENETRESET); - return; + goto send_response; } /* If we get an OUT_OF_SEQUENCE ACK from the server, that can also @@ -849,7 +838,7 @@ rxrpc_is_client_call(call)) { rxrpc_set_call_completion(call, RXRPC_CALL_REMOTELY_ABORTED, 0, -ENETRESET); - return; + goto send_response; } /* Discard any out-of-order or duplicate ACKs (outside lock). */ @@ -857,7 +846,7 @@ trace_rxrpc_rx_discard_ack(call->debug_id, ack_serial, first_soft_ack, call->acks_first_seq, prev_pkt, call->acks_prev_seq); - return; + goto send_response; } info.rxMTU = 0; @@ -897,7 +886,7 @@ case RXRPC_CALL_SERVER_AWAIT_ACK: break; default: - return; + goto send_response; } if (before(hard_ack, call->acks_hard_ack) || @@ -909,7 +898,7 @@ if (after(hard_ack, call->acks_hard_ack)) { if (rxrpc_rotate_tx_window(call, hard_ack, &summary)) { rxrpc_end_tx_phase(call, false, rxrpc_eproto_unexpected_ack); - return; + goto send_response; } } @@ -927,6 +916,14 @@ rxrpc_propose_ack_ping_for_lost_reply); rxrpc_congestion_management(call, skb, &summary, acked_serial); + +send_response: + if (ack.reason == RXRPC_ACK_PING) + rxrpc_send_ACK(call, RXRPC_ACK_PING_RESPONSE, ack_serial, + rxrpc_propose_ack_respond_to_ping); + else if (sp->hdr.flags & RXRPC_REQUEST_ACK) + rxrpc_send_ACK(call, RXRPC_ACK_REQUESTED, ack_serial, + rxrpc_propose_ack_respond_to_ack); } /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/rxrpc/local_object.c +++ linux-riscv-6.5.0/net/rxrpc/local_object.c @@ -87,7 +87,7 @@ struct rxrpc_local *local = container_of(timer, struct rxrpc_local, client_conn_reap_timer); - if (local->kill_all_client_conns && + if (!local->kill_all_client_conns && test_and_set_bit(RXRPC_CLIENT_CONN_REAP_TIMER, &local->client_conn_flags)) rxrpc_wake_up_io_thread(local); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/sched/act_ct.c +++ linux-riscv-6.5.0/net/sched/act_ct.c @@ -278,7 +278,16 @@ return err; } +static bool tcf_ct_flow_is_outdated(const struct flow_offload *flow) +{ + return test_bit(IPS_SEEN_REPLY_BIT, &flow->ct->status) && + test_bit(IPS_HW_OFFLOAD_BIT, &flow->ct->status) && + !test_bit(NF_FLOW_HW_PENDING, &flow->flags) && + !test_bit(NF_FLOW_HW_ESTABLISHED, &flow->flags); +} + static struct nf_flowtable_type flowtable_ct = { + .gc = tcf_ct_flow_is_outdated, .action = tcf_ct_flow_table_fill_actions, .owner = THIS_MODULE, }; @@ -367,6 +376,17 @@ entry->tuplehash[dir].tuple.tc.iifidx = act_ct_ext->ifindex[dir]; } +static void tcf_ct_flow_ct_ext_ifidx_update(struct flow_offload *entry) +{ + struct nf_conn_act_ct_ext *act_ct_ext; + + act_ct_ext = nf_conn_act_ct_ext_find(entry->ct); + if (act_ct_ext) { + tcf_ct_flow_tc_ifidx(entry, act_ct_ext, FLOW_OFFLOAD_DIR_ORIGINAL); + tcf_ct_flow_tc_ifidx(entry, act_ct_ext, FLOW_OFFLOAD_DIR_REPLY); + } +} + static void tcf_ct_flow_table_add(struct tcf_ct_flow_table *ct_ft, struct nf_conn *ct, bool tcp, bool bidirectional) @@ -662,6 +682,8 @@ else ctinfo = IP_CT_ESTABLISHED_REPLY; + nf_conn_act_ct_ext_fill(skb, ct, ctinfo); + tcf_ct_flow_ct_ext_ifidx_update(flow); flow_offload_refresh(nf_ft, flow, force_refresh); if (!test_bit(IPS_ASSURED_BIT, &ct->status)) { /* Process this flow in SW to allow promoting to ASSURED */ @@ -1021,7 +1043,7 @@ tcf_ct_act_set_labels(ct, p->labels, p->labels_mask); if (!nf_ct_is_confirmed(ct)) - nf_conn_act_ct_ext_add(ct); + nf_conn_act_ct_ext_add(skb, ct, ctinfo); /* This will take care of sending queued events * even if the connection is already confirmed. @@ -1512,6 +1534,9 @@ if (bind) { struct flow_action_entry *entry = entry_data; + if (tcf_ct_helper(act)) + return -EOPNOTSUPP; + entry->id = FLOW_ACTION_CT; entry->ct.action = tcf_ct_action(act); entry->ct.zone = tcf_ct_zone(act); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/sched/cls_u32.c +++ linux-riscv-6.5.0/net/sched/cls_u32.c @@ -366,7 +366,7 @@ idr_init(&root_ht->handle_idr); if (tp_c == NULL) { - tp_c = kzalloc(struct_size(tp_c, hlist->ht, 1), GFP_KERNEL); + tp_c = kzalloc(sizeof(*tp_c), GFP_KERNEL); if (tp_c == NULL) { kfree(root_ht); return -ENOBUFS; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/smc/smc.h +++ linux-riscv-6.5.0/net/smc/smc.h @@ -374,4 +374,9 @@ int smc_nl_enable_hs_limitation(struct sk_buff *skb, struct genl_info *info); int smc_nl_disable_hs_limitation(struct sk_buff *skb, struct genl_info *info); +static inline void smc_sock_set_flag(struct sock *sk, enum sock_flags flag) +{ + set_bit(flag, &sk->sk_flags); +} + #endif /* __SMC_H */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/smc/smc_cdc.c +++ linux-riscv-6.5.0/net/smc/smc_cdc.c @@ -28,13 +28,15 @@ { struct smc_cdc_tx_pend *cdcpend = (struct smc_cdc_tx_pend *)pnd_snd; struct smc_connection *conn = cdcpend->conn; + struct smc_buf_desc *sndbuf_desc; struct smc_sock *smc; int diff; + sndbuf_desc = conn->sndbuf_desc; smc = container_of(conn, struct smc_sock, conn); bh_lock_sock(&smc->sk); - if (!wc_status) { - diff = smc_curs_diff(cdcpend->conn->sndbuf_desc->len, + if (!wc_status && sndbuf_desc) { + diff = smc_curs_diff(sndbuf_desc->len, &cdcpend->conn->tx_curs_fin, &cdcpend->cursor); /* sndbuf_space is decreased in smc_sendmsg */ @@ -114,9 +116,6 @@ union smc_host_cursor cfed; int rc; - if (unlikely(!READ_ONCE(conn->sndbuf_desc))) - return -ENOBUFS; - smc_cdc_add_pending_send(conn, pend); conn->tx_cdc_seq++; @@ -385,7 +384,7 @@ smc->sk.sk_shutdown |= RCV_SHUTDOWN; if (smc->clcsock && smc->clcsock->sk) smc->clcsock->sk->sk_shutdown |= RCV_SHUTDOWN; - sock_set_flag(&smc->sk, SOCK_DONE); + smc_sock_set_flag(&smc->sk, SOCK_DONE); sock_hold(&smc->sk); /* sock_put in close_work */ if (!queue_work(smc_close_wq, &conn->close_work)) sock_put(&smc->sk); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/smc/smc_clc.c +++ linux-riscv-6.5.0/net/smc/smc_clc.c @@ -986,6 +986,7 @@ u8 *eid, struct smc_init_info *ini) { struct smc_connection *conn = &smc->conn; + struct smcd_dev *smcd = conn->lgr->smcd; struct smc_clc_msg_accept_confirm *clc; struct smc_clc_first_contact_ext fce; struct smc_clc_fce_gid_ext gle; @@ -1004,17 +1005,15 @@ memcpy(clc->hdr.eyecatcher, SMCD_EYECATCHER, sizeof(SMCD_EYECATCHER)); clc->hdr.typev1 = SMC_TYPE_D; - clc->d0.gid = - conn->lgr->smcd->ops->get_local_gid(conn->lgr->smcd); - clc->d0.token = conn->rmb_desc->token; + clc->d0.gid = htonll(smcd->ops->get_local_gid(smcd)); + clc->d0.token = htonll(conn->rmb_desc->token); clc->d0.dmbe_size = conn->rmbe_size_comp; clc->d0.dmbe_idx = 0; memcpy(&clc->d0.linkid, conn->lgr->id, SMC_LGR_ID_SIZE); if (version == SMC_V1) { clc->hdr.length = htons(SMCD_CLC_ACCEPT_CONFIRM_LEN); } else { - clc_v2->d1.chid = - htons(smc_ism_get_chid(conn->lgr->smcd)); + clc_v2->d1.chid = htons(smc_ism_get_chid(smcd)); if (eid && eid[0]) memcpy(clc_v2->d1.eid, eid, SMC_MAX_EID_LEN); len = SMCD_CLC_ACCEPT_CONFIRM_LEN_V2; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/smc/smc_clc.h +++ linux-riscv-6.5.0/net/smc/smc_clc.h @@ -197,8 +197,8 @@ } __packed; struct smcd_clc_msg_accept_confirm_common { /* SMCD accept/confirm */ - u64 gid; /* Sender GID */ - u64 token; /* DMB token */ + __be64 gid; /* Sender GID */ + __be64 token; /* DMB token */ u8 dmbe_idx; /* DMBE index */ #if defined(__BIG_ENDIAN_BITFIELD) u8 dmbe_size : 4, /* buf size (compressed) */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/smc/smc_close.c +++ linux-riscv-6.5.0/net/smc/smc_close.c @@ -116,7 +116,8 @@ struct sock *sk = &smc->sk; release_sock(sk); - cancel_work_sync(&smc->conn.close_work); + if (cancel_work_sync(&smc->conn.close_work)) + sock_put(sk); cancel_delayed_work_sync(&smc->conn.tx_work); lock_sock(sk); } @@ -173,7 +174,7 @@ break; } - sock_set_flag(sk, SOCK_DEAD); + smc_sock_set_flag(sk, SOCK_DEAD); sk->sk_state_change(sk); if (release_clcsock) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/sunrpc/auth.c +++ linux-riscv-6.5.0/net/sunrpc/auth.c @@ -769,9 +769,14 @@ * @task: controlling RPC task * @xdr: xdr_stream containing RPC Reply header * - * On success, @xdr is updated to point past the verifier and - * zero is returned. Otherwise, @xdr is in an undefined state - * and a negative errno is returned. + * Return values: + * %0: Verifier is valid. @xdr now points past the verifier. + * %-EIO: Verifier is corrupted or message ended early. + * %-EACCES: Verifier is intact but not valid. + * %-EPROTONOSUPPORT: Server does not support the requested auth type. + * + * When a negative errno is returned, @xdr is left in an undefined + * state. */ int rpcauth_checkverf(struct rpc_task *task, struct xdr_stream *xdr) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/sunrpc/auth_tls.c +++ linux-riscv-6.5.0/net/sunrpc/auth_tls.c @@ -129,9 +129,9 @@ if (*p != rpc_auth_null) return -EIO; if (xdr_stream_decode_opaque_inline(xdr, &str, starttls_len) != starttls_len) - return -EIO; + return -EPROTONOSUPPORT; if (memcmp(str, starttls_token, starttls_len)) - return -EIO; + return -EPROTONOSUPPORT; return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/sunrpc/rpcb_clnt.c +++ linux-riscv-6.5.0/net/sunrpc/rpcb_clnt.c @@ -769,6 +769,10 @@ child = rpcb_call_async(rpcb_clnt, map, proc); rpc_release_client(rpcb_clnt); + if (IS_ERR(child)) { + /* rpcb_map_release() has freed the arguments */ + return; + } xprt->stat.bind_count++; rpc_put_task(child); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c +++ linux-riscv-6.5.0/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c @@ -852,7 +852,8 @@ if (ret == -EINVAL) svc_rdma_send_error(rdma_xprt, ctxt, ret); svc_rdma_recv_ctxt_put(rdma_xprt, ctxt); - return ret; + svc_xprt_deferred_close(xprt); + return -ENOTCONN; out_backchannel: svc_rdma_handle_bc_reply(rqstp, ctxt); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/sunrpc/xprtsock.c +++ linux-riscv-6.5.0/net/sunrpc/xprtsock.c @@ -2645,6 +2645,10 @@ rcu_read_lock(); lower_xprt = rcu_dereference(lower_clnt->cl_xprt); rcu_read_unlock(); + + if (wait_on_bit_lock(&lower_xprt->state, XPRT_LOCKED, TASK_KILLABLE)) + goto out_unlock; + status = xs_tls_handshake_sync(lower_xprt, &upper_xprt->xprtsec); if (status) { trace_rpc_tls_not_started(upper_clnt, upper_xprt); @@ -2654,6 +2658,7 @@ status = xs_tcp_tls_finish_connecting(lower_xprt, upper_transport); if (status) goto out_close; + xprt_release_write(lower_xprt, NULL); trace_rpc_socket_connect(upper_xprt, upper_transport->sock, 0); if (!xprt_test_and_set_connected(upper_xprt)) { @@ -2675,6 +2680,7 @@ return; out_close: + xprt_release_write(lower_xprt, NULL); rpc_shutdown_client(lower_clnt); /* xprt_force_disconnect() wakes tasks with a fixed tk_status code. only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/tipc/link.c +++ linux-riscv-6.5.0/net/tipc/link.c @@ -1446,7 +1446,7 @@ p = (struct tipc_gap_ack_blks *)msg_data(hdr); sz = ntohs(p->len); /* Sanity check */ - if (sz == struct_size(p, gacks, p->ugack_cnt + p->bgack_cnt)) { + if (sz == struct_size(p, gacks, size_add(p->ugack_cnt, p->bgack_cnt))) { /* Good, check if the desired type exists */ if ((uc && p->ugack_cnt) || (!uc && p->bgack_cnt)) goto ok; @@ -1533,7 +1533,7 @@ __tipc_build_gap_ack_blks(ga, l, ga->bgack_cnt) : 0; /* Total len */ - len = struct_size(ga, gacks, ga->bgack_cnt + ga->ugack_cnt); + len = struct_size(ga, gacks, size_add(ga->bgack_cnt, ga->ugack_cnt)); ga->len = htons(len); return len; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/tipc/netlink.c +++ linux-riscv-6.5.0/net/tipc/netlink.c @@ -88,7 +88,7 @@ const struct nla_policy tipc_nl_link_policy[TIPC_NLA_LINK_MAX + 1] = { [TIPC_NLA_LINK_UNSPEC] = { .type = NLA_UNSPEC }, - [TIPC_NLA_LINK_NAME] = { .type = NLA_STRING, + [TIPC_NLA_LINK_NAME] = { .type = NLA_NUL_STRING, .len = TIPC_MAX_LINK_NAME }, [TIPC_NLA_LINK_MTU] = { .type = NLA_U32 }, [TIPC_NLA_LINK_BROADCAST] = { .type = NLA_FLAG }, @@ -125,7 +125,7 @@ const struct nla_policy tipc_nl_bearer_policy[TIPC_NLA_BEARER_MAX + 1] = { [TIPC_NLA_BEARER_UNSPEC] = { .type = NLA_UNSPEC }, - [TIPC_NLA_BEARER_NAME] = { .type = NLA_STRING, + [TIPC_NLA_BEARER_NAME] = { .type = NLA_NUL_STRING, .len = TIPC_MAX_BEARER_NAME }, [TIPC_NLA_BEARER_PROP] = { .type = NLA_NESTED }, [TIPC_NLA_BEARER_DOMAIN] = { .type = NLA_U32 } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/tipc/netlink_compat.c +++ linux-riscv-6.5.0/net/tipc/netlink_compat.c @@ -102,6 +102,7 @@ return -EMSGSIZE; skb_put(skb, TLV_SPACE(len)); + memset(tlv, 0, TLV_SPACE(len)); tlv->tlv_type = htons(type); tlv->tlv_len = htons(TLV_LENGTH(len)); if (len && data) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/tls/tls_main.c +++ linux-riscv-6.5.0/net/tls/tls_main.c @@ -96,8 +96,8 @@ int wait_on_pending_writer(struct sock *sk, long *timeo) { - int rc = 0; DEFINE_WAIT_FUNC(wait, woken_wake_function); + int ret, rc = 0; add_wait_queue(sk_sleep(sk), &wait); while (1) { @@ -111,9 +111,13 @@ break; } - if (sk_wait_event(sk, timeo, - !READ_ONCE(sk->sk_write_pending), &wait)) + ret = sk_wait_event(sk, timeo, + !READ_ONCE(sk->sk_write_pending), &wait); + if (ret) { + if (ret < 0) + rc = ret; break; + } } remove_wait_queue(sk_sleep(sk), &wait); return rc; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/unix/unix_bpf.c +++ linux-riscv-6.5.0/net/unix/unix_bpf.c @@ -159,12 +159,17 @@ int unix_stream_bpf_update_proto(struct sock *sk, struct sk_psock *psock, bool restore) { + struct sock *sk_pair; + if (restore) { sk->sk_write_space = psock->saved_write_space; sock_replace_proto(sk, psock->sk_proto); return 0; } + sk_pair = unix_peer(sk); + sock_hold(sk_pair); + psock->sk_pair = sk_pair; unix_stream_bpf_check_needs_rebuild(psock->sk_proto); sock_replace_proto(sk, &unix_stream_bpf_prot); return 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/vmw_vsock/af_vsock.c +++ linux-riscv-6.5.0/net/vmw_vsock/af_vsock.c @@ -89,6 +89,7 @@ #include #include #include +#include #include #include #include @@ -110,6 +111,7 @@ #include #include #include +#include static int __vsock_bind(struct sock *sk, struct sockaddr_vm *addr); static void vsock_sk_destruct(struct sock *sk); @@ -2134,6 +2136,10 @@ int err; sk = sock->sk; + + if (unlikely(flags & MSG_ERRQUEUE)) + return sock_recv_errqueue(sk, msg, len, SOL_VSOCK, VSOCK_RECVERR); + vsk = vsock_sk(sk); err = 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/vmw_vsock/virtio_transport.c +++ linux-riscv-6.5.0/net/vmw_vsock/virtio_transport.c @@ -555,6 +555,11 @@ virtio_device_ready(vdev); + return 0; +} + +static void virtio_vsock_vqs_start(struct virtio_vsock *vsock) +{ mutex_lock(&vsock->tx_lock); vsock->tx_run = true; mutex_unlock(&vsock->tx_lock); @@ -569,7 +574,16 @@ vsock->event_run = true; mutex_unlock(&vsock->event_lock); - return 0; + /* virtio_transport_send_pkt() can queue packets once + * the_virtio_vsock is set, but they won't be processed until + * vsock->tx_run is set to true. We queue vsock->send_pkt_work + * when initialization finishes to send those packets queued + * earlier. + * We don't need to queue the other workers (rx, event) because + * as long as we don't fill the queues with empty buffers, the + * host can't send us any notification. + */ + queue_work(virtio_vsock_workqueue, &vsock->send_pkt_work); } static void virtio_vsock_vqs_del(struct virtio_vsock *vsock) @@ -664,6 +678,7 @@ goto out; rcu_assign_pointer(the_virtio_vsock, vsock); + virtio_vsock_vqs_start(vsock); mutex_unlock(&the_virtio_vsock_mutex); @@ -736,6 +751,7 @@ goto out; rcu_assign_pointer(the_virtio_vsock, vsock); + virtio_vsock_vqs_start(vsock); out: mutex_unlock(&the_virtio_vsock_mutex); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/vmw_vsock/virtio_transport_common.c +++ linux-riscv-6.5.0/net/vmw_vsock/virtio_transport_common.c @@ -1150,11 +1150,17 @@ vsk->peer_shutdown |= RCV_SHUTDOWN; if (le32_to_cpu(hdr->flags) & VIRTIO_VSOCK_SHUTDOWN_SEND) vsk->peer_shutdown |= SEND_SHUTDOWN; - if (vsk->peer_shutdown == SHUTDOWN_MASK && - vsock_stream_has_data(vsk) <= 0 && - !sock_flag(sk, SOCK_DONE)) { - (void)virtio_transport_reset(vsk, NULL); - virtio_transport_do_close(vsk, true); + if (vsk->peer_shutdown == SHUTDOWN_MASK) { + if (vsock_stream_has_data(vsk) <= 0 && !sock_flag(sk, SOCK_DONE)) { + (void)virtio_transport_reset(vsk, NULL); + virtio_transport_do_close(vsk, true); + } + /* Remove this socket anyway because the remote peer sent + * the shutdown. This way a new connection will succeed + * if the remote peer uses the same source port, + * even if the old socket is still unreleased, but now disconnected. + */ + vsock_remove_sock(vsk); } if (le32_to_cpu(virtio_vsock_hdr(skb)->flags)) sk->sk_state_change(sk); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/wireless/scan.c +++ linux-riscv-6.5.0/net/wireless/scan.c @@ -908,6 +908,10 @@ !cfg80211_find_ssid_match(ap, request)) continue; + if (!is_broadcast_ether_addr(request->bssid) && + !ether_addr_equal(request->bssid, ap->bssid)) + continue; + if (!request->n_ssids && ap->multi_bss && !ap->transmitted_bssid) continue; @@ -2121,7 +2125,7 @@ if (!res) goto drop; - rdev_inform_bss(rdev, &res->pub, ies, data->drv_data); + rdev_inform_bss(rdev, &res->pub, ies, drv_data->drv_data); if (data->bss_source == BSS_SOURCE_MBSSID) { /* this is a nontransmitting bss, we need to add it to @@ -2354,8 +2358,8 @@ /* elem might be invalid after the memmove */ next = (void *)(elem->data + elem->datalen); - elem_datalen = elem->datalen; + if (elem->id == WLAN_EID_EXTENSION) { copied = elem->datalen - 1; if (copied > data_len) @@ -2376,7 +2380,7 @@ for (elem = next; elem->data < ies + ieslen && - elem->data + elem->datalen < ies + ieslen; + elem->data + elem->datalen <= ies + ieslen; elem = next) { /* elem might be invalid after the memmove */ next = (void *)(elem->data + elem->datalen); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/wireless/sysfs.c +++ linux-riscv-6.5.0/net/wireless/sysfs.c @@ -105,14 +105,14 @@ cfg80211_leave_all(rdev); cfg80211_process_rdev_events(rdev); } - cfg80211_process_wiphy_works(rdev); + cfg80211_process_wiphy_works(rdev, NULL); if (rdev->ops->suspend) ret = rdev_suspend(rdev, rdev->wiphy.wowlan_config); if (ret == 1) { /* Driver refuse to configure wowlan */ cfg80211_leave_all(rdev); cfg80211_process_rdev_events(rdev); - cfg80211_process_wiphy_works(rdev); + cfg80211_process_wiphy_works(rdev, NULL); ret = rdev_suspend(rdev, NULL); } if (ret == 0) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/xdp/xsk.c +++ linux-riscv-6.5.0/net/xdp/xsk.c @@ -723,7 +723,7 @@ rcu_read_lock(); if (xsk_check_common(xs)) - goto skip_tx; + goto out; pool = xs->pool; @@ -735,12 +735,11 @@ xsk_generic_xmit(sk); } -skip_tx: if (xs->rx && !xskq_prod_is_empty(xs->rx)) mask |= EPOLLIN | EPOLLRDNORM; if (xs->tx && xsk_tx_writeable(xs)) mask |= EPOLLOUT | EPOLLWRNORM; - +out: rcu_read_unlock(); return mask; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/xfrm/xfrm_interface_core.c +++ linux-riscv-6.5.0/net/xfrm/xfrm_interface_core.c @@ -380,8 +380,8 @@ skb->dev = dev; if (err) { - dev->stats.rx_errors++; - dev->stats.rx_dropped++; + DEV_STATS_INC(dev, rx_errors); + DEV_STATS_INC(dev, rx_dropped); return 0; } @@ -426,7 +426,6 @@ xfrmi_xmit2(struct sk_buff *skb, struct net_device *dev, struct flowi *fl) { struct xfrm_if *xi = netdev_priv(dev); - struct net_device_stats *stats = &xi->dev->stats; struct dst_entry *dst = skb_dst(skb); unsigned int length = skb->len; struct net_device *tdev; @@ -473,7 +472,7 @@ tdev = dst->dev; if (tdev == dev) { - stats->collisions++; + DEV_STATS_INC(dev, collisions); net_warn_ratelimited("%s: Local routing loop detected!\n", dev->name); goto tx_err_dst_release; @@ -512,13 +511,13 @@ if (net_xmit_eval(err) == 0) { dev_sw_netstats_tx_add(dev, 1, length); } else { - stats->tx_errors++; - stats->tx_aborted_errors++; + DEV_STATS_INC(dev, tx_errors); + DEV_STATS_INC(dev, tx_aborted_errors); } return 0; tx_err_link_failure: - stats->tx_carrier_errors++; + DEV_STATS_INC(dev, tx_carrier_errors); dst_link_failure(skb); tx_err_dst_release: dst_release(dst); @@ -528,7 +527,6 @@ static netdev_tx_t xfrmi_xmit(struct sk_buff *skb, struct net_device *dev) { struct xfrm_if *xi = netdev_priv(dev); - struct net_device_stats *stats = &xi->dev->stats; struct dst_entry *dst = skb_dst(skb); struct flowi fl; int ret; @@ -545,7 +543,7 @@ dst = ip6_route_output(dev_net(dev), NULL, &fl.u.ip6); if (dst->error) { dst_release(dst); - stats->tx_carrier_errors++; + DEV_STATS_INC(dev, tx_carrier_errors); goto tx_err; } skb_dst_set(skb, dst); @@ -561,7 +559,7 @@ fl.u.ip4.flowi4_flags |= FLOWI_FLAG_ANYSRC; rt = __ip_route_output_key(dev_net(dev), &fl.u.ip4); if (IS_ERR(rt)) { - stats->tx_carrier_errors++; + DEV_STATS_INC(dev, tx_carrier_errors); goto tx_err; } skb_dst_set(skb, &rt->dst); @@ -580,8 +578,8 @@ return NETDEV_TX_OK; tx_err: - stats->tx_errors++; - stats->tx_dropped++; + DEV_STATS_INC(dev, tx_errors); + DEV_STATS_INC(dev, tx_dropped); kfree_skb(skb); return NETDEV_TX_OK; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/net/xfrm/xfrm_policy.c +++ linux-riscv-6.5.0/net/xfrm/xfrm_policy.c @@ -851,7 +851,7 @@ struct hlist_node *newpos = NULL; bool matches_s, matches_d; - if (!policy->bydst_reinsert) + if (policy->walk.dead || !policy->bydst_reinsert) continue; WARN_ON_ONCE(policy->family != family); @@ -1256,8 +1256,11 @@ struct xfrm_pol_inexact_bin *bin; u8 dbits, sbits; + if (policy->walk.dead) + continue; + dir = xfrm_policy_id2dir(policy->index); - if (policy->walk.dead || dir >= XFRM_POLICY_MAX) + if (dir >= XFRM_POLICY_MAX) continue; if ((dir & XFRM_POLICY_MASK) == XFRM_POLICY_OUT) { @@ -1372,8 +1375,6 @@ * of an absolute inpredictability of ordering of rules. This will not pass. */ static u32 xfrm_gen_index(struct net *net, int dir, u32 index) { - static u32 idx_generator; - for (;;) { struct hlist_head *list; struct xfrm_policy *p; @@ -1381,8 +1382,8 @@ int found; if (!index) { - idx = (idx_generator | dir); - idx_generator += 8; + idx = (net->xfrm.idx_generator | dir); + net->xfrm.idx_generator += 8; } else { idx = index; index = 0; @@ -1823,9 +1824,11 @@ again: list_for_each_entry(pol, &net->xfrm.policy_all, walk.all) { + if (pol->walk.dead) + continue; + dir = xfrm_policy_id2dir(pol->index); - if (pol->walk.dead || - dir >= XFRM_POLICY_MAX || + if (dir >= XFRM_POLICY_MAX || pol->type != type) continue; @@ -1862,9 +1865,11 @@ again: list_for_each_entry(pol, &net->xfrm.policy_all, walk.all) { + if (pol->walk.dead) + continue; + dir = xfrm_policy_id2dir(pol->index); - if (pol->walk.dead || - dir >= XFRM_POLICY_MAX || + if (dir >= XFRM_POLICY_MAX || pol->xdo.dev != dev) continue; @@ -3215,7 +3220,7 @@ } for (i = 0; i < num_pols; i++) - pols[i]->curlft.use_time = ktime_get_real_seconds(); + WRITE_ONCE(pols[i]->curlft.use_time, ktime_get_real_seconds()); if (num_xfrms < 0) { /* Prohibit the flow */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/rust/Makefile +++ linux-riscv-6.5.0/rust/Makefile @@ -1,5 +1,8 @@ # SPDX-License-Identifier: GPL-2.0 +# Where to place rustdoc generated documentation +rustdoc_output := $(objtree)/Documentation/output/rust/rustdoc + obj-$(CONFIG_RUST) += core.o compiler_builtins.o always-$(CONFIG_RUST) += exports_core_generated.h @@ -65,7 +68,7 @@ OBJTREE=$(abspath $(objtree)) \ $(RUSTDOC) $(if $(rustdoc_host),$(rust_common_flags),$(rust_flags)) \ $(rustc_target_flags) -L$(objtree)/$(obj) \ - --output $(objtree)/$(obj)/doc \ + --output $(rustdoc_output) \ --crate-name $(subst rustdoc-,,$@) \ @$(objtree)/include/generated/rustc_cfg $< @@ -82,15 +85,14 @@ # and then retouch the generated files. rustdoc: rustdoc-core rustdoc-macros rustdoc-compiler_builtins \ rustdoc-alloc rustdoc-kernel - $(Q)cp $(srctree)/Documentation/images/logo.svg $(objtree)/$(obj)/doc - $(Q)cp $(srctree)/Documentation/images/COPYING-logo $(objtree)/$(obj)/doc - $(Q)find $(objtree)/$(obj)/doc -name '*.html' -type f -print0 | xargs -0 sed -Ei \ - -e 's:rust-logo\.svg:logo.svg:g' \ - -e 's:rust-logo\.png:logo.svg:g' \ - -e 's:favicon\.svg:logo.svg:g' \ - -e 's:::g' - $(Q)echo '.logo-container > img { object-fit: contain; }' \ - >> $(objtree)/$(obj)/doc/rustdoc.css + $(Q)cp $(srctree)/Documentation/images/logo.svg $(rustdoc_output)/static.files/ + $(Q)cp $(srctree)/Documentation/images/COPYING-logo $(rustdoc_output)/static.files/ + $(Q)find $(rustdoc_output) -name '*.html' -type f -print0 | xargs -0 sed -Ei \ + -e 's:rust-logo-[0-9a-f]+\.svg:logo.svg:g' \ + -e 's:favicon-[0-9a-f]+\.svg:logo.svg:g' \ + -e 's:::g' + $(Q)for f in $(rustdoc_output)/static.files/rustdoc-*.css; do \ + echo ".logo-container > img { object-fit: contain; }" >> $$f; done rustdoc-macros: private rustdoc_host = yes rustdoc-macros: private rustc_target_flags = --crate-type proc-macro \ @@ -154,7 +156,7 @@ @$(objtree)/include/generated/rustc_cfg \ $(rustc_target_flags) $(rustdoc_test_target_flags) \ --sysroot $(objtree)/$(obj)/test/sysroot $(rustdoc_test_quiet) \ - -L$(objtree)/$(obj)/test --output $(objtree)/$(obj)/doc \ + -L$(objtree)/$(obj)/test --output $(rustdoc_output) \ --crate-name $(subst rusttest-,,$@) $< # We cannot use `-Zpanic-abort-tests` because some tests are dynamic, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/rust/kernel/error.rs +++ linux-riscv-6.5.0/rust/kernel/error.rs @@ -37,7 +37,7 @@ declare_err!(E2BIG, "Argument list too long."); declare_err!(ENOEXEC, "Exec format error."); declare_err!(EBADF, "Bad file number."); - declare_err!(ECHILD, "Exec format error."); + declare_err!(ECHILD, "No child processes."); declare_err!(EAGAIN, "Try again."); declare_err!(ENOMEM, "Out of memory."); declare_err!(EACCES, "Permission denied."); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/rust/kernel/types.rs +++ linux-riscv-6.5.0/rust/kernel/types.rs @@ -6,7 +6,7 @@ use alloc::boxed::Box; use core::{ cell::UnsafeCell, - marker::PhantomData, + marker::{PhantomData, PhantomPinned}, mem::MaybeUninit, ops::{Deref, DerefMut}, ptr::NonNull, @@ -206,17 +206,26 @@ /// /// This is meant to be used with FFI objects that are never interpreted by Rust code. #[repr(transparent)] -pub struct Opaque(MaybeUninit>); +pub struct Opaque { + value: UnsafeCell>, + _pin: PhantomPinned, +} impl Opaque { /// Creates a new opaque value. pub const fn new(value: T) -> Self { - Self(MaybeUninit::new(UnsafeCell::new(value))) + Self { + value: UnsafeCell::new(MaybeUninit::new(value)), + _pin: PhantomPinned, + } } /// Creates an uninitialised value. pub const fn uninit() -> Self { - Self(MaybeUninit::uninit()) + Self { + value: UnsafeCell::new(MaybeUninit::uninit()), + _pin: PhantomPinned, + } } /// Creates a pin-initializer from the given initializer closure. @@ -240,7 +249,7 @@ /// Returns a raw pointer to the opaque data. pub fn get(&self) -> *mut T { - UnsafeCell::raw_get(self.0.as_ptr()) + UnsafeCell::get(&self.value).cast::() } /// Gets the value behind `this`. @@ -248,7 +257,7 @@ /// This function is useful to get access to the value without creating intermediate /// references. pub const fn raw_get(this: *const Self) -> *mut T { - UnsafeCell::raw_get(this.cast::>()) + UnsafeCell::raw_get(this.cast::>>()).cast::() } } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/samples/bpf/syscall_tp_user.c +++ linux-riscv-6.5.0/samples/bpf/syscall_tp_user.c @@ -17,9 +17,9 @@ static void usage(const char *cmd) { - printf("USAGE: %s [-i num_progs] [-h]\n", cmd); - printf(" -i num_progs # number of progs of the test\n"); - printf(" -h # help\n"); + printf("USAGE: %s [-i nr_tests] [-h]\n", cmd); + printf(" -i nr_tests # rounds of test to run\n"); + printf(" -h # help\n"); } static void verify_map(int map_id) @@ -45,14 +45,14 @@ } } -static int test(char *filename, int num_progs) +static int test(char *filename, int nr_tests) { - int map0_fds[num_progs], map1_fds[num_progs], fd, i, j = 0; - struct bpf_link *links[num_progs * 4]; - struct bpf_object *objs[num_progs]; + int map0_fds[nr_tests], map1_fds[nr_tests], fd, i, j = 0; + struct bpf_link **links = NULL; + struct bpf_object *objs[nr_tests]; struct bpf_program *prog; - for (i = 0; i < num_progs; i++) { + for (i = 0; i < nr_tests; i++) { objs[i] = bpf_object__open_file(filename, NULL); if (libbpf_get_error(objs[i])) { fprintf(stderr, "opening BPF object file failed\n"); @@ -60,6 +60,19 @@ goto cleanup; } + /* One-time initialization */ + if (!links) { + int nr_progs = 0; + + bpf_object__for_each_program(prog, objs[i]) + nr_progs += 1; + + links = calloc(nr_progs * nr_tests, sizeof(struct bpf_link *)); + + if (!links) + goto cleanup; + } + /* load BPF program */ if (bpf_object__load(objs[i])) { fprintf(stderr, "loading BPF object file failed\n"); @@ -101,14 +114,18 @@ close(fd); /* verify the map */ - for (i = 0; i < num_progs; i++) { + for (i = 0; i < nr_tests; i++) { verify_map(map0_fds[i]); verify_map(map1_fds[i]); } cleanup: - for (j--; j >= 0; j--) - bpf_link__destroy(links[j]); + if (links) { + for (j--; j >= 0; j--) + bpf_link__destroy(links[j]); + + free(links); + } for (i--; i >= 0; i--) bpf_object__close(objs[i]); @@ -117,13 +134,13 @@ int main(int argc, char **argv) { - int opt, num_progs = 1; + int opt, nr_tests = 1; char filename[256]; while ((opt = getopt(argc, argv, "i:h")) != -1) { switch (opt) { case 'i': - num_progs = atoi(optarg); + nr_tests = atoi(optarg); break; case 'h': default: @@ -134,5 +151,5 @@ snprintf(filename, sizeof(filename), "%s_kern.o", argv[0]); - return test(filename, num_progs); + return test(filename, nr_tests); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/scripts/Makefile.vmlinux +++ linux-riscv-6.5.0/scripts/Makefile.vmlinux @@ -19,6 +19,7 @@ ifdef CONFIG_MODULES KASAN_SANITIZE_.vmlinux.export.o := n +KCSAN_SANITIZE_.vmlinux.export.o := n GCOV_PROFILE_.vmlinux.export.o := n targets += .vmlinux.export.o vmlinux: .vmlinux.export.o only in patch2: unchanged: --- linux-riscv-6.5.0.orig/scripts/Makefile.vmlinux_o +++ linux-riscv-6.5.0/scripts/Makefile.vmlinux_o @@ -37,7 +37,8 @@ vmlinux-objtool-args-$(delay-objtool) += $(objtool-args-y) vmlinux-objtool-args-$(CONFIG_GCOV_KERNEL) += --no-unreachable -vmlinux-objtool-args-$(CONFIG_NOINSTR_VALIDATION) += --noinstr $(if $(CONFIG_CPU_UNRET_ENTRY), --unret) +vmlinux-objtool-args-$(CONFIG_NOINSTR_VALIDATION) += --noinstr \ + $(if $(or $(CONFIG_CPU_UNRET_ENTRY),$(CONFIG_CPU_SRSO)), --unret) objtool-args = $(vmlinux-objtool-args-y) --link only in patch2: unchanged: --- linux-riscv-6.5.0.orig/scripts/checkstack.pl +++ linux-riscv-6.5.0/scripts/checkstack.pl @@ -139,15 +139,11 @@ while (my $line = ) { if ($line =~ m/$funcre/) { $func = $1; - next if $line !~ m/^($xs*)/; + next if $line !~ m/^($x*)/; if ($total_size > $min_stack) { push @stack, "$intro$total_size\n"; } - - $addr = $1; - $addr =~ s/ /0/g; - $addr = "0x$addr"; - + $addr = "0x$1"; $intro = "$addr $func [$file]:"; my $padlen = 56 - length($intro); while ($padlen > 0) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/scripts/dtc/dt-extract-compatibles +++ linux-riscv-6.5.0/scripts/dtc/dt-extract-compatibles @@ -1,8 +1,8 @@ #!/usr/bin/env python3 # SPDX-License-Identifier: GPL-2.0-only +import fnmatch import os -import glob import re import argparse @@ -49,6 +49,24 @@ else: print(*compatibles, sep='\n') +def glob_without_symlinks(root, glob): + for path, dirs, files in os.walk(root): + # Ignore hidden directories + for d in dirs: + if fnmatch.fnmatch(d, ".*"): + dirs.remove(d) + for f in files: + if fnmatch.fnmatch(f, glob): + yield os.path.join(path, f) + +def files_to_parse(path_args): + for f in path_args: + if os.path.isdir(f): + for filename in glob_without_symlinks(f, "*.c"): + yield filename + else: + yield f + show_filename = False if __name__ == "__main__": @@ -59,11 +77,6 @@ show_filename = args.with_filename - for f in args.cfile: - if os.path.isdir(f): - for filename in glob.iglob(f + "/**/*.c", recursive=True): - compat_list = parse_compatibles(filename) - print_compat(filename, compat_list) - else: - compat_list = parse_compatibles(f) - print_compat(f, compat_list) + for f in files_to_parse(args.cfile): + compat_list = parse_compatibles(f) + print_compat(f, compat_list) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/scripts/gcc-plugins/randomize_layout_plugin.c +++ linux-riscv-6.5.0/scripts/gcc-plugins/randomize_layout_plugin.c @@ -191,12 +191,14 @@ static void performance_shuffle(tree *newtree, unsigned long length, ranctx *prng_state) { - unsigned long i, x; + unsigned long i, x, index; struct partition_group size_group[length]; unsigned long num_groups = 0; unsigned long randnum; partition_struct(newtree, length, (struct partition_group *)&size_group, &num_groups); + + /* FIXME: this group shuffle is currently a no-op. */ for (i = num_groups - 1; i > 0; i--) { struct partition_group tmp; randnum = ranval(prng_state) % (i + 1); @@ -206,11 +208,14 @@ } for (x = 0; x < num_groups; x++) { - for (i = size_group[x].start + size_group[x].length - 1; i > size_group[x].start; i--) { + for (index = size_group[x].length - 1; index > 0; index--) { tree tmp; + + i = size_group[x].start + index; if (DECL_BIT_FIELD_TYPE(newtree[i])) continue; - randnum = ranval(prng_state) % (i + 1); + randnum = ranval(prng_state) % (index + 1); + randnum += size_group[x].start; // we could handle this case differently if desired if (DECL_BIT_FIELD_TYPE(newtree[randnum])) continue; @@ -273,8 +278,6 @@ { const_tree fieldtype; const_tree typesize; - const_tree elemtype; - const_tree elemsize; fieldtype = TREE_TYPE(field); typesize = TYPE_SIZE(fieldtype); @@ -282,20 +285,12 @@ if (TREE_CODE(fieldtype) != ARRAY_TYPE) return false; - elemtype = TREE_TYPE(fieldtype); - elemsize = TYPE_SIZE(elemtype); - /* size of type is represented in bits */ if (typesize == NULL_TREE && TYPE_DOMAIN(fieldtype) != NULL_TREE && TYPE_MAX_VALUE(TYPE_DOMAIN(fieldtype)) == NULL_TREE) return true; - if (typesize != NULL_TREE && - (TREE_CONSTANT(typesize) && (!tree_to_uhwi(typesize) || - tree_to_uhwi(typesize) == tree_to_uhwi(elemsize)))) - return true; - return false; } @@ -344,8 +339,7 @@ /* * enforce that we don't randomize the layout of the last - * element of a struct if it's a 0 or 1-length array - * or a proper flexible array + * element of a struct if it's a proper flexible array */ if (is_flexible_array(newtree[num_fields - 1])) { has_flexarray = true; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/scripts/gdb/linux/device.py +++ linux-riscv-6.5.0/scripts/gdb/linux/device.py @@ -36,26 +36,26 @@ for kobj in kset_for_each_object(gdb.parse_and_eval('bus_kset')): subsys = container_of(kobj, kset_type.get_type().pointer(), 'kobj') subsys_priv = container_of(subsys, subsys_private_type.get_type().pointer(), 'subsys') - yield subsys_priv['bus'] + yield subsys_priv def for_each_class(): for kobj in kset_for_each_object(gdb.parse_and_eval('class_kset')): subsys = container_of(kobj, kset_type.get_type().pointer(), 'kobj') subsys_priv = container_of(subsys, subsys_private_type.get_type().pointer(), 'subsys') - yield subsys_priv['class'] + yield subsys_priv def get_bus_by_name(name): for item in for_each_bus(): - if item['name'].string() == name: + if item['bus']['name'].string() == name: return item raise gdb.GdbError("Can't find bus type {!r}".format(name)) def get_class_by_name(name): for item in for_each_class(): - if item['name'].string() == name: + if item['class']['name'].string() == name: return item raise gdb.GdbError("Can't find device class {!r}".format(name)) @@ -70,13 +70,13 @@ def bus_for_each_device(bus): - for kn in klist_for_each(bus['p']['klist_devices']): + for kn in klist_for_each(bus['klist_devices']): dp = container_of(kn, device_private_type.get_type().pointer(), 'knode_bus') yield dp['device'] def class_for_each_device(cls): - for kn in klist_for_each(cls['p']['klist_devices']): + for kn in klist_for_each(cls['klist_devices']): dp = container_of(kn, device_private_type.get_type().pointer(), 'knode_class') yield dp['device'] @@ -103,7 +103,7 @@ def invoke(self, arg, from_tty): if not arg: for bus in for_each_bus(): - gdb.write('bus {}:\t{}\n'.format(bus['name'].string(), bus)) + gdb.write('bus {}:\t{}\n'.format(bus['bus']['name'].string(), bus)) for dev in bus_for_each_device(bus): _show_device(dev, level=1) else: @@ -123,7 +123,7 @@ def invoke(self, arg, from_tty): if not arg: for cls in for_each_class(): - gdb.write("class {}:\t{}\n".format(cls['name'].string(), cls)) + gdb.write("class {}:\t{}\n".format(cls['class']['name'].string(), cls)) for dev in class_for_each_device(cls): _show_device(dev, level=1) else: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/scripts/kconfig/symbol.c +++ linux-riscv-6.5.0/scripts/kconfig/symbol.c @@ -122,9 +122,9 @@ static void sym_validate_range(struct symbol *sym) { struct property *prop; + struct symbol *range_sym; int base; long long val, val2; - char str[64]; switch (sym->type) { case S_INT: @@ -140,17 +140,15 @@ if (!prop) return; val = strtoll(sym->curr.val, NULL, base); - val2 = sym_get_range_val(prop->expr->left.sym, base); + range_sym = prop->expr->left.sym; + val2 = sym_get_range_val(range_sym, base); if (val >= val2) { - val2 = sym_get_range_val(prop->expr->right.sym, base); + range_sym = prop->expr->right.sym; + val2 = sym_get_range_val(range_sym, base); if (val <= val2) return; } - if (sym->type == S_INT) - sprintf(str, "%lld", val2); - else - sprintf(str, "0x%llx", val2); - sym->curr.val = xstrdup(str); + sym->curr.val = range_sym->curr.val; } static void sym_set_changed(struct symbol *sym) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/security/integrity/iint.c +++ linux-riscv-6.5.0/security/integrity/iint.c @@ -66,9 +66,32 @@ return iint; } -static void iint_free(struct integrity_iint_cache *iint) +#define IMA_MAX_NESTING (FILESYSTEM_MAX_STACK_DEPTH+1) + +/* + * It is not clear that IMA should be nested at all, but as long is it measures + * files both on overlayfs and on underlying fs, we need to annotate the iint + * mutex to avoid lockdep false positives related to IMA + overlayfs. + * See ovl_lockdep_annotate_inode_mutex_key() for more details. + */ +static inline void iint_lockdep_annotate(struct integrity_iint_cache *iint, + struct inode *inode) +{ +#ifdef CONFIG_LOCKDEP + static struct lock_class_key iint_mutex_key[IMA_MAX_NESTING]; + + int depth = inode->i_sb->s_stack_depth; + + if (WARN_ON_ONCE(depth < 0 || depth >= IMA_MAX_NESTING)) + depth = 0; + + lockdep_set_class(&iint->mutex, &iint_mutex_key[depth]); +#endif +} + +static void iint_init_always(struct integrity_iint_cache *iint, + struct inode *inode) { - kfree(iint->ima_hash); iint->ima_hash = NULL; iint->version = 0; iint->flags = 0UL; @@ -80,6 +103,14 @@ iint->ima_creds_status = INTEGRITY_UNKNOWN; iint->evm_status = INTEGRITY_UNKNOWN; iint->measured_pcrs = 0; + mutex_init(&iint->mutex); + iint_lockdep_annotate(iint, inode); +} + +static void iint_free(struct integrity_iint_cache *iint) +{ + kfree(iint->ima_hash); + mutex_destroy(&iint->mutex); kmem_cache_free(iint_cache, iint); } @@ -104,6 +135,8 @@ if (!iint) return NULL; + iint_init_always(iint, inode); + write_lock(&integrity_iint_lock); p = &integrity_iint_tree.rb_node; @@ -153,25 +186,18 @@ iint_free(iint); } -static void init_once(void *foo) +static void iint_init_once(void *foo) { struct integrity_iint_cache *iint = (struct integrity_iint_cache *) foo; memset(iint, 0, sizeof(*iint)); - iint->ima_file_status = INTEGRITY_UNKNOWN; - iint->ima_mmap_status = INTEGRITY_UNKNOWN; - iint->ima_bprm_status = INTEGRITY_UNKNOWN; - iint->ima_read_status = INTEGRITY_UNKNOWN; - iint->ima_creds_status = INTEGRITY_UNKNOWN; - iint->evm_status = INTEGRITY_UNKNOWN; - mutex_init(&iint->mutex); } static int __init integrity_iintcache_init(void) { iint_cache = kmem_cache_create("iint_cache", sizeof(struct integrity_iint_cache), - 0, SLAB_PANIC, init_once); + 0, SLAB_PANIC, iint_init_once); return 0; } DEFINE_LSM(integrity) = { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/security/integrity/integrity.h +++ linux-riscv-6.5.0/security/integrity/integrity.h @@ -164,6 +164,8 @@ unsigned long flags; unsigned long measured_pcrs; unsigned long atomic_flags; + unsigned long real_ino; + dev_t real_dev; enum integrity_status ima_file_status:4; enum integrity_status ima_mmap_status:4; enum integrity_status ima_bprm_status:4; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/security/keys/trusted-keys/trusted_tee.c +++ linux-riscv-6.5.0/security/keys/trusted-keys/trusted_tee.c @@ -65,24 +65,16 @@ int ret; struct tee_ioctl_invoke_arg inv_arg; struct tee_param param[4]; - struct tee_shm *reg_shm_in = NULL, *reg_shm_out = NULL; + struct tee_shm *reg_shm = NULL; memset(&inv_arg, 0, sizeof(inv_arg)); memset(¶m, 0, sizeof(param)); - reg_shm_in = tee_shm_register_kernel_buf(pvt_data.ctx, p->key, - p->key_len); - if (IS_ERR(reg_shm_in)) { - dev_err(pvt_data.dev, "key shm register failed\n"); - return PTR_ERR(reg_shm_in); - } - - reg_shm_out = tee_shm_register_kernel_buf(pvt_data.ctx, p->blob, - sizeof(p->blob)); - if (IS_ERR(reg_shm_out)) { - dev_err(pvt_data.dev, "blob shm register failed\n"); - ret = PTR_ERR(reg_shm_out); - goto out; + reg_shm = tee_shm_register_kernel_buf(pvt_data.ctx, p->key, + sizeof(p->key) + sizeof(p->blob)); + if (IS_ERR(reg_shm)) { + dev_err(pvt_data.dev, "shm register failed\n"); + return PTR_ERR(reg_shm); } inv_arg.func = TA_CMD_SEAL; @@ -90,13 +82,13 @@ inv_arg.num_params = 4; param[0].attr = TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INPUT; - param[0].u.memref.shm = reg_shm_in; + param[0].u.memref.shm = reg_shm; param[0].u.memref.size = p->key_len; param[0].u.memref.shm_offs = 0; param[1].attr = TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_OUTPUT; - param[1].u.memref.shm = reg_shm_out; + param[1].u.memref.shm = reg_shm; param[1].u.memref.size = sizeof(p->blob); - param[1].u.memref.shm_offs = 0; + param[1].u.memref.shm_offs = sizeof(p->key); ret = tee_client_invoke_func(pvt_data.ctx, &inv_arg, param); if ((ret < 0) || (inv_arg.ret != 0)) { @@ -107,11 +99,7 @@ p->blob_len = param[1].u.memref.size; } -out: - if (reg_shm_out) - tee_shm_free(reg_shm_out); - if (reg_shm_in) - tee_shm_free(reg_shm_in); + tee_shm_free(reg_shm); return ret; } @@ -124,24 +112,16 @@ int ret; struct tee_ioctl_invoke_arg inv_arg; struct tee_param param[4]; - struct tee_shm *reg_shm_in = NULL, *reg_shm_out = NULL; + struct tee_shm *reg_shm = NULL; memset(&inv_arg, 0, sizeof(inv_arg)); memset(¶m, 0, sizeof(param)); - reg_shm_in = tee_shm_register_kernel_buf(pvt_data.ctx, p->blob, - p->blob_len); - if (IS_ERR(reg_shm_in)) { - dev_err(pvt_data.dev, "blob shm register failed\n"); - return PTR_ERR(reg_shm_in); - } - - reg_shm_out = tee_shm_register_kernel_buf(pvt_data.ctx, p->key, - sizeof(p->key)); - if (IS_ERR(reg_shm_out)) { - dev_err(pvt_data.dev, "key shm register failed\n"); - ret = PTR_ERR(reg_shm_out); - goto out; + reg_shm = tee_shm_register_kernel_buf(pvt_data.ctx, p->key, + sizeof(p->key) + sizeof(p->blob)); + if (IS_ERR(reg_shm)) { + dev_err(pvt_data.dev, "shm register failed\n"); + return PTR_ERR(reg_shm); } inv_arg.func = TA_CMD_UNSEAL; @@ -149,11 +129,11 @@ inv_arg.num_params = 4; param[0].attr = TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_INPUT; - param[0].u.memref.shm = reg_shm_in; + param[0].u.memref.shm = reg_shm; param[0].u.memref.size = p->blob_len; - param[0].u.memref.shm_offs = 0; + param[0].u.memref.shm_offs = sizeof(p->key); param[1].attr = TEE_IOCTL_PARAM_ATTR_TYPE_MEMREF_OUTPUT; - param[1].u.memref.shm = reg_shm_out; + param[1].u.memref.shm = reg_shm; param[1].u.memref.size = sizeof(p->key); param[1].u.memref.shm_offs = 0; @@ -166,11 +146,7 @@ p->key_len = param[1].u.memref.size; } -out: - if (reg_shm_out) - tee_shm_free(reg_shm_out); - if (reg_shm_in) - tee_shm_free(reg_shm_in); + tee_shm_free(reg_shm); return ret; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/core/info.c +++ linux-riscv-6.5.0/sound/core/info.c @@ -56,7 +56,7 @@ }; static int snd_info_version_init(void); -static void snd_info_disconnect(struct snd_info_entry *entry); +static void snd_info_clear_entries(struct snd_info_entry *entry); /* @@ -569,11 +569,16 @@ { if (!card) return; - mutex_lock(&info_mutex); + proc_remove(card->proc_root_link); - card->proc_root_link = NULL; if (card->proc_root) - snd_info_disconnect(card->proc_root); + proc_remove(card->proc_root->p); + + mutex_lock(&info_mutex); + if (card->proc_root) + snd_info_clear_entries(card->proc_root); + card->proc_root_link = NULL; + card->proc_root = NULL; mutex_unlock(&info_mutex); } @@ -745,15 +750,14 @@ } EXPORT_SYMBOL(snd_info_create_card_entry); -static void snd_info_disconnect(struct snd_info_entry *entry) +static void snd_info_clear_entries(struct snd_info_entry *entry) { struct snd_info_entry *p; if (!entry->p) return; list_for_each_entry(p, &entry->children, list) - snd_info_disconnect(p); - proc_remove(entry->p); + snd_info_clear_entries(p); entry->p = NULL; } @@ -770,8 +774,9 @@ if (!entry) return; if (entry->p) { + proc_remove(entry->p); mutex_lock(&info_mutex); - snd_info_disconnect(entry); + snd_info_clear_entries(entry); mutex_unlock(&info_mutex); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/core/pcm.c +++ linux-riscv-6.5.0/sound/core/pcm.c @@ -253,6 +253,7 @@ STATE(DRAINING), STATE(PAUSED), STATE(SUSPENDED), + STATE(DISCONNECTED), }; static const char * const snd_pcm_access_names[] = { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/hda/hdac_stream.c +++ linux-riscv-6.5.0/sound/hda/hdac_stream.c @@ -354,8 +354,10 @@ struct hdac_stream *res = NULL; /* make a non-zero unique key for the substream */ - int key = (substream->pcm->device << 16) | (substream->number << 2) | - (substream->stream + 1); + int key = (substream->number << 2) | (substream->stream + 1); + + if (substream->pcm) + key |= (substream->pcm->device << 16); spin_lock_irq(&bus->reg_lock); list_for_each_entry(azx_dev, &bus->stream_list, list) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/codecs/da7219-aad.c +++ linux-riscv-6.5.0/sound/soc/codecs/da7219-aad.c @@ -59,9 +59,6 @@ bool micbias_up = false; int retries = 0; - /* Disable ground switch */ - snd_soc_component_update_bits(component, 0xFB, 0x01, 0x00); - /* Drive headphones/lineout */ snd_soc_component_update_bits(component, DA7219_HP_L_CTRL, DA7219_HP_L_AMP_OE_MASK, @@ -155,9 +152,6 @@ tonegen_freq_hptest = cpu_to_le16(DA7219_AAD_HPTEST_RAMP_FREQ_INT_OSC); } - /* Disable ground switch */ - snd_soc_component_update_bits(component, 0xFB, 0x01, 0x00); - /* Ensure gain ramping at fastest rate */ gain_ramp_ctrl = snd_soc_component_read(component, DA7219_GAIN_RAMP_CTRL); snd_soc_component_write(component, DA7219_GAIN_RAMP_CTRL, DA7219_GAIN_RAMP_RATE_X8); @@ -421,6 +415,11 @@ * handle a removal, and we can check at the end of * hptest if we have a valid result or not. */ + + cancel_delayed_work_sync(&da7219_aad->jack_det_work); + /* Disable ground switch */ + snd_soc_component_update_bits(component, 0xFB, 0x01, 0x00); + if (statusa & DA7219_JACK_TYPE_STS_MASK) { report |= SND_JACK_HEADSET; mask |= SND_JACK_HEADSET | SND_JACK_LINEOUT; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/codecs/lpass-tx-macro.c +++ linux-riscv-6.5.0/sound/soc/codecs/lpass-tx-macro.c @@ -2021,6 +2021,11 @@ tx->dev = dev; + /* Set active_decimator default value */ + tx->active_decimator[TX_MACRO_AIF1_CAP] = -1; + tx->active_decimator[TX_MACRO_AIF2_CAP] = -1; + tx->active_decimator[TX_MACRO_AIF3_CAP] = -1; + /* set MCLK and NPL rates */ clk_set_rate(tx->mclk, MCLK_FREQ); clk_set_rate(tx->npl, MCLK_FREQ); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/codecs/lpass-wsa-macro.c +++ linux-riscv-6.5.0/sound/soc/codecs/lpass-wsa-macro.c @@ -1685,6 +1685,9 @@ boost_path_cfg1 = CDC_WSA_RX1_RX_PATH_CFG1; reg = CDC_WSA_RX1_RX_PATH_CTL; reg_mix = CDC_WSA_RX1_RX_PATH_MIX_CTL; + } else { + dev_warn(component->dev, "Incorrect widget name in the driver\n"); + return -EINVAL; } switch (event) { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/codecs/rt5645.c +++ linux-riscv-6.5.0/sound/soc/codecs/rt5645.c @@ -3251,6 +3251,8 @@ RT5645_GP1_PIN_IRQ, RT5645_GP1_PIN_IRQ); regmap_update_bits(rt5645->regmap, RT5645_GEN_CTRL1, RT5645_DIG_GATE_CTRL, RT5645_DIG_GATE_CTRL); + regmap_update_bits(rt5645->regmap, RT5645_DEPOP_M1, + RT5645_HP_CB_MASK, RT5645_HP_CB_PU); } rt5645_irq(0, rt5645); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/codecs/tas2780.c +++ linux-riscv-6.5.0/sound/soc/codecs/tas2780.c @@ -39,7 +39,7 @@ usleep_range(2000, 2050); } - snd_soc_component_write(tas2780->component, TAS2780_SW_RST, + ret = snd_soc_component_write(tas2780->component, TAS2780_SW_RST, TAS2780_RST); if (ret) dev_err(tas2780->dev, "%s:errCode:0x%x Reset error!\n", only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/codecs/tlv320adc3xxx.c +++ linux-riscv-6.5.0/sound/soc/codecs/tlv320adc3xxx.c @@ -293,7 +293,7 @@ #define ADC3XXX_BYPASS_RPGA 0x80 /* MICBIAS control bits */ -#define ADC3XXX_MICBIAS_MASK 0x2 +#define ADC3XXX_MICBIAS_MASK 0x3 #define ADC3XXX_MICBIAS1_SHIFT 5 #define ADC3XXX_MICBIAS2_SHIFT 3 @@ -1099,7 +1099,7 @@ unsigned int val; if (!of_property_read_u32(np, propname, &val)) { - if (val >= ADC3XXX_MICBIAS_AVDD) { + if (val > ADC3XXX_MICBIAS_AVDD) { dev_err(dev, "Invalid property value for '%s'\n", propname); return -EINVAL; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/codecs/wcd938x-sdw.c +++ linux-riscv-6.5.0/sound/soc/codecs/wcd938x-sdw.c @@ -1278,7 +1278,31 @@ pm_runtime_set_active(dev); pm_runtime_enable(dev); - return component_add(dev, &wcd938x_sdw_component_ops); + ret = component_add(dev, &wcd938x_sdw_component_ops); + if (ret) + goto err_disable_rpm; + + return 0; + +err_disable_rpm: + pm_runtime_disable(dev); + pm_runtime_set_suspended(dev); + pm_runtime_dont_use_autosuspend(dev); + + return ret; +} + +static int wcd9380_remove(struct sdw_slave *pdev) +{ + struct device *dev = &pdev->dev; + + component_del(dev, &wcd938x_sdw_component_ops); + + pm_runtime_disable(dev); + pm_runtime_set_suspended(dev); + pm_runtime_dont_use_autosuspend(dev); + + return 0; } static const struct sdw_device_id wcd9380_slave_id[] = { @@ -1320,6 +1344,7 @@ static struct sdw_driver wcd9380_codec_driver = { .probe = wcd9380_probe, + .remove = wcd9380_remove, .ops = &wcd9380_slave_ops, .id_table = wcd9380_slave_id, .driver = { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/codecs/wcd938x.c +++ linux-riscv-6.5.0/sound/soc/codecs/wcd938x.c @@ -3325,8 +3325,10 @@ return dev_err_probe(dev, ret, "Failed to get supplies\n"); ret = regulator_bulk_enable(WCD938X_MAX_SUPPLY, wcd938x->supplies); - if (ret) + if (ret) { + regulator_bulk_free(WCD938X_MAX_SUPPLY, wcd938x->supplies); return dev_err_probe(dev, ret, "Failed to enable supplies\n"); + } wcd938x_dt_parse_micbias_info(dev, wcd938x); @@ -3435,7 +3437,8 @@ wcd938x->rxdev = wcd938x_sdw_device_get(wcd938x->rxnode); if (!wcd938x->rxdev) { dev_err(dev, "could not find slave with matching of node\n"); - return -EINVAL; + ret = -EINVAL; + goto err_unbind; } wcd938x->sdw_priv[AIF1_PB] = dev_get_drvdata(wcd938x->rxdev); wcd938x->sdw_priv[AIF1_PB]->wcd938x = wcd938x; @@ -3443,46 +3446,47 @@ wcd938x->txdev = wcd938x_sdw_device_get(wcd938x->txnode); if (!wcd938x->txdev) { dev_err(dev, "could not find txslave with matching of node\n"); - return -EINVAL; + ret = -EINVAL; + goto err_put_rxdev; } wcd938x->sdw_priv[AIF1_CAP] = dev_get_drvdata(wcd938x->txdev); wcd938x->sdw_priv[AIF1_CAP]->wcd938x = wcd938x; wcd938x->tx_sdw_dev = dev_to_sdw_dev(wcd938x->txdev); - if (!wcd938x->tx_sdw_dev) { - dev_err(dev, "could not get txslave with matching of dev\n"); - return -EINVAL; - } /* As TX is main CSR reg interface, which should not be suspended first. * expicilty add the dependency link */ if (!device_link_add(wcd938x->rxdev, wcd938x->txdev, DL_FLAG_STATELESS | DL_FLAG_PM_RUNTIME)) { dev_err(dev, "could not devlink tx and rx\n"); - return -EINVAL; + ret = -EINVAL; + goto err_put_txdev; } if (!device_link_add(dev, wcd938x->txdev, DL_FLAG_STATELESS | DL_FLAG_PM_RUNTIME)) { dev_err(dev, "could not devlink wcd and tx\n"); - return -EINVAL; + ret = -EINVAL; + goto err_remove_rxtx_link; } if (!device_link_add(dev, wcd938x->rxdev, DL_FLAG_STATELESS | DL_FLAG_PM_RUNTIME)) { dev_err(dev, "could not devlink wcd and rx\n"); - return -EINVAL; + ret = -EINVAL; + goto err_remove_tx_link; } wcd938x->regmap = dev_get_regmap(&wcd938x->tx_sdw_dev->dev, NULL); if (!wcd938x->regmap) { dev_err(dev, "could not get TX device regmap\n"); - return -EINVAL; + ret = -EINVAL; + goto err_remove_rx_link; } ret = wcd938x_irq_init(wcd938x, dev); if (ret) { dev_err(dev, "%s: IRQ init failed: %d\n", __func__, ret); - return ret; + goto err_remove_rx_link; } wcd938x->sdw_priv[AIF1_PB]->slave_irq = wcd938x->virq; @@ -3491,27 +3495,45 @@ ret = wcd938x_set_micbias_data(wcd938x); if (ret < 0) { dev_err(dev, "%s: bad micbias pdata\n", __func__); - return ret; + goto err_remove_rx_link; } ret = snd_soc_register_component(dev, &soc_codec_dev_wcd938x, wcd938x_dais, ARRAY_SIZE(wcd938x_dais)); - if (ret) + if (ret) { dev_err(dev, "%s: Codec registration failed\n", __func__); + goto err_remove_rx_link; + } - return ret; + return 0; +err_remove_rx_link: + device_link_remove(dev, wcd938x->rxdev); +err_remove_tx_link: + device_link_remove(dev, wcd938x->txdev); +err_remove_rxtx_link: + device_link_remove(wcd938x->rxdev, wcd938x->txdev); +err_put_txdev: + put_device(wcd938x->txdev); +err_put_rxdev: + put_device(wcd938x->rxdev); +err_unbind: + component_unbind_all(dev, wcd938x); + + return ret; } static void wcd938x_unbind(struct device *dev) { struct wcd938x_priv *wcd938x = dev_get_drvdata(dev); + snd_soc_unregister_component(dev); device_link_remove(dev, wcd938x->txdev); device_link_remove(dev, wcd938x->rxdev); device_link_remove(wcd938x->rxdev, wcd938x->txdev); - snd_soc_unregister_component(dev); + put_device(wcd938x->txdev); + put_device(wcd938x->rxdev); component_unbind_all(dev, wcd938x); } @@ -3572,13 +3594,13 @@ ret = wcd938x_add_slave_components(wcd938x, dev, &match); if (ret) - return ret; + goto err_disable_regulators; wcd938x_reset(wcd938x); ret = component_master_add_with_match(dev, &wcd938x_comp_ops, match); if (ret) - return ret; + goto err_disable_regulators; pm_runtime_set_autosuspend_delay(dev, 1000); pm_runtime_use_autosuspend(dev); @@ -3588,11 +3610,27 @@ pm_runtime_idle(dev); return 0; + +err_disable_regulators: + regulator_bulk_disable(WCD938X_MAX_SUPPLY, wcd938x->supplies); + regulator_bulk_free(WCD938X_MAX_SUPPLY, wcd938x->supplies); + + return ret; } static void wcd938x_remove(struct platform_device *pdev) { - component_master_del(&pdev->dev, &wcd938x_comp_ops); + struct device *dev = &pdev->dev; + struct wcd938x_priv *wcd938x = dev_get_drvdata(dev); + + component_master_del(dev, &wcd938x_comp_ops); + + pm_runtime_disable(dev); + pm_runtime_set_suspended(dev); + pm_runtime_dont_use_autosuspend(dev); + + regulator_bulk_disable(WCD938X_MAX_SUPPLY, wcd938x->supplies); + regulator_bulk_free(WCD938X_MAX_SUPPLY, wcd938x->supplies); } #if defined(CONFIG_OF) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/codecs/wsa883x.c +++ linux-riscv-6.5.0/sound/soc/codecs/wsa883x.c @@ -1203,9 +1203,6 @@ break; } - snd_soc_component_write_field(component, WSA883X_DRE_CTL_1, - WSA883X_DRE_GAIN_EN_MASK, - WSA883X_DRE_GAIN_FROM_CSR); if (wsa883x->port_enable[WSA883X_PORT_COMP]) snd_soc_component_write_field(component, WSA883X_DRE_CTL_0, WSA883X_DRE_OFFSET_MASK, @@ -1218,9 +1215,6 @@ snd_soc_component_write_field(component, WSA883X_PDM_WD_CTL, WSA883X_PDM_EN_MASK, WSA883X_PDM_ENABLE); - snd_soc_component_write_field(component, WSA883X_PA_FSM_CTL, - WSA883X_GLOBAL_PA_EN_MASK, - WSA883X_GLOBAL_PA_ENABLE); break; case SND_SOC_DAPM_PRE_PMD: @@ -1346,6 +1340,7 @@ .hw_free = wsa883x_hw_free, .mute_stream = wsa883x_digital_mute, .set_stream = wsa883x_set_sdw_stream, + .mute_unmute_on_trigger = true, }; static struct snd_soc_dai_driver wsa883x_dais[] = { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/fsl/fsl-asoc-card.c +++ linux-riscv-6.5.0/sound/soc/fsl/fsl-asoc-card.c @@ -41,6 +41,7 @@ /** * struct codec_priv - CODEC private data + * @mclk: Main clock of the CODEC * @mclk_freq: Clock rate of MCLK * @free_freq: Clock rate of MCLK for hw_free() * @mclk_id: MCLK (or main clock) id for set_sysclk() @@ -52,8 +53,8 @@ unsigned long mclk_freq; unsigned long free_freq; u32 mclk_id; - u32 fll_id; - u32 pll_id; + int fll_id; + int pll_id; }; /** @@ -206,7 +207,7 @@ } /* Specific configuration for PLL */ - if (codec_priv->pll_id && codec_priv->fll_id) { + if (codec_priv->pll_id >= 0 && codec_priv->fll_id >= 0) { if (priv->sample_format == SNDRV_PCM_FORMAT_S24_LE) pll_out = priv->sample_rate * 384; else @@ -248,7 +249,7 @@ priv->streams &= ~BIT(substream->stream); - if (!priv->streams && codec_priv->pll_id && codec_priv->fll_id) { + if (!priv->streams && codec_priv->pll_id >= 0 && codec_priv->fll_id >= 0) { /* Force freq to be free_freq to avoid error message in codec */ ret = snd_soc_dai_set_sysclk(asoc_rtd_to_codec(rtd, 0), codec_priv->mclk_id, @@ -621,6 +622,10 @@ priv->card.dapm_routes = audio_map; priv->card.num_dapm_routes = ARRAY_SIZE(audio_map); priv->card.driver_name = DRIVER_NAME; + + priv->codec_priv.fll_id = -1; + priv->codec_priv.pll_id = -1; + /* Diversify the card configurations */ if (of_device_is_compatible(np, "fsl,imx-audio-cs42888")) { codec_dai_name = "cs42888"; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/fsl/fsl_easrc.c +++ linux-riscv-6.5.0/sound/soc/fsl/fsl_easrc.c @@ -1966,17 +1966,21 @@ &fsl_easrc_dai, 1); if (ret) { dev_err(dev, "failed to register ASoC DAI\n"); - return ret; + goto err_pm_disable; } ret = devm_snd_soc_register_component(dev, &fsl_asrc_component, NULL, 0); if (ret) { dev_err(&pdev->dev, "failed to register ASoC platform\n"); - return ret; + goto err_pm_disable; } return 0; + +err_pm_disable: + pm_runtime_disable(&pdev->dev); + return ret; } static void fsl_easrc_remove(struct platform_device *pdev) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/fsl/mpc5200_dma.c +++ linux-riscv-6.5.0/sound/soc/fsl/mpc5200_dma.c @@ -100,6 +100,9 @@ /** * psc_dma_trigger: start and stop the DMA transfer. + * @component: triggered component + * @substream: triggered substream + * @cmd: triggered command * * This function is called by ALSA to start, stop, pause, and resume the DMA * transfer of data. only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/generic/simple-card.c +++ linux-riscv-6.5.0/sound/soc/generic/simple-card.c @@ -701,10 +701,12 @@ struct snd_soc_dai_link *dai_link = priv->dai_link; struct simple_dai_props *dai_props = priv->dai_props; + ret = -EINVAL; + cinfo = dev->platform_data; if (!cinfo) { dev_err(dev, "no info for asoc-simple-card\n"); - return -EINVAL; + goto err; } if (!cinfo->name || @@ -713,7 +715,7 @@ !cinfo->platform || !cinfo->cpu_dai.name) { dev_err(dev, "insufficient asoc_simple_card_info settings\n"); - return -EINVAL; + goto err; } cpus = dai_link->cpus; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/intel/common/soc-acpi-intel-cht-match.c +++ linux-riscv-6.5.0/sound/soc/intel/common/soc-acpi-intel-cht-match.c @@ -75,6 +75,39 @@ return arg; } +/* + * The Lenovo Yoga Tab 3 Pro YT3-X90, with Android factory OS has a buggy DSDT + * with the coded not being listed at all. + */ +static const struct dmi_system_id lenovo_yoga_tab3_x90[] = { + { + /* Lenovo Yoga Tab 3 Pro YT3-X90, codec missing from DSDT */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "CHERRYVIEW D1 PLATFORM"), + DMI_MATCH(DMI_PRODUCT_VERSION, "Blade3-10A-001"), + }, + }, + { } +}; + +static struct snd_soc_acpi_mach cht_lenovo_yoga_tab3_x90_mach = { + .id = "10WM5102", + .drv_name = "bytcr_wm5102", + .fw_filename = "intel/fw_sst_22a8.bin", + .board = "bytcr_wm5102", + .sof_tplg_filename = "sof-cht-wm5102.tplg", +}; + +static struct snd_soc_acpi_mach *lenovo_yt3_x90_quirk(void *arg) +{ + if (dmi_check_system(lenovo_yoga_tab3_x90)) + return &cht_lenovo_yoga_tab3_x90_mach; + + /* Skip wildcard match snd_soc_acpi_intel_cherrytrail_machines[] entry */ + return NULL; +} + static const struct snd_soc_acpi_codecs rt5640_comp_ids = { .num_codecs = 2, .codecs = { "10EC5640", "10EC3276" }, @@ -175,6 +208,16 @@ .drv_name = "sof_pcm512x", .sof_tplg_filename = "sof-cht-src-50khz-pcm512x.tplg", }, + /* + * Special case for the Lenovo Yoga Tab 3 Pro YT3-X90 where the DSDT + * misses the codec. Match on the SST id instead, lenovo_yt3_x90_quirk() + * will return a YT3 specific mach or NULL when called on other hw, + * skipping this entry. + */ + { + .id = "808622A8", + .machine_quirk = lenovo_yt3_x90_quirk, + }, #if IS_ENABLED(CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH) /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/intel/skylake/skl-sst-utils.c +++ linux-riscv-6.5.0/sound/soc/intel/skylake/skl-sst-utils.c @@ -299,6 +299,7 @@ module->instance_id = devm_kzalloc(ctx->dev, size, GFP_KERNEL); if (!module->instance_id) { ret = -ENOMEM; + kfree(module); goto free_uuid_list; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c +++ linux-riscv-6.5.0/sound/soc/mediatek/mt8186/mt8186-mt6366-rt1019-rt5682s.c @@ -1179,7 +1179,7 @@ playback_codec = of_get_child_by_name(pdev->dev.of_node, "playback-codecs"); if (!playback_codec) { ret = -EINVAL; - dev_err_probe(&pdev->dev, ret, "Property 'speaker-codecs' missing or invalid\n"); + dev_err_probe(&pdev->dev, ret, "Property 'playback-codecs' missing or invalid\n"); goto err_playback_codec; } @@ -1193,7 +1193,7 @@ for_each_card_prelinks(card, i, dai_link) { ret = mt8186_mt6366_card_set_be_link(card, dai_link, playback_codec, "I2S3"); if (ret) { - dev_err_probe(&pdev->dev, ret, "%s set speaker_codec fail\n", + dev_err_probe(&pdev->dev, ret, "%s set playback_codec fail\n", dai_link->name); goto err_probe; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/mediatek/mt8188/mt8188-mt6359.c +++ linux-riscv-6.5.0/sound/soc/mediatek/mt8188/mt8188-mt6359.c @@ -246,6 +246,11 @@ SND_SOC_DAPM_MIC("Headset Mic", NULL), SND_SOC_DAPM_SINK("HDMI"), SND_SOC_DAPM_SINK("DP"), + + /* dynamic pinctrl */ + SND_SOC_DAPM_PINCTRL("ETDM_SPK_PIN", "aud_etdm_spk_on", "aud_etdm_spk_off"), + SND_SOC_DAPM_PINCTRL("ETDM_HP_PIN", "aud_etdm_hp_on", "aud_etdm_hp_off"), + SND_SOC_DAPM_PINCTRL("MTKAIF_PIN", "aud_mtkaif_on", "aud_mtkaif_off"), }; static const struct snd_kcontrol_new mt8188_mt6359_controls[] = { @@ -267,6 +272,7 @@ snd_soc_rtdcom_lookup(rtd, AFE_PCM_NAME); struct snd_soc_component *cmpnt_codec = asoc_rtd_to_codec(rtd, 0)->component; + struct snd_soc_dapm_widget *pin_w = NULL, *w; struct mtk_base_afe *afe; struct mt8188_afe_private *afe_priv; struct mtkaif_param *param; @@ -306,6 +312,18 @@ return 0; } + for_each_card_widgets(rtd->card, w) { + if (!strcmp(w->name, "MTKAIF_PIN")) { + pin_w = w; + break; + } + } + + if (pin_w) + dapm_pinctrl_event(pin_w, NULL, SND_SOC_DAPM_PRE_PMU); + else + dev_dbg(afe->dev, "%s(), no pinmux widget, please check if default on\n", __func__); + pm_runtime_get_sync(afe->dev); mt6359_mtkaif_calibration_enable(cmpnt_codec); @@ -403,6 +421,9 @@ for (i = 0; i < MT8188_MTKAIF_MISO_NUM; i++) param->mtkaif_phase_cycle[i] = mtkaif_phase_cycle[i]; + if (pin_w) + dapm_pinctrl_event(pin_w, NULL, SND_SOC_DAPM_POST_PMD); + dev_dbg(afe->dev, "%s(), end, calibration ok %d\n", __func__, param->mtkaif_calibration_ok); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/pxa/pxa-ssp.c +++ linux-riscv-6.5.0/sound/soc/pxa/pxa-ssp.c @@ -779,7 +779,7 @@ if (IS_ERR(priv->extclk)) { ret = PTR_ERR(priv->extclk); if (ret == -EPROBE_DEFER) - return ret; + goto err_priv; priv->extclk = NULL; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/qcom/sc8280xp.c +++ linux-riscv-6.5.0/sound/soc/qcom/sc8280xp.c @@ -27,6 +27,23 @@ static int sc8280xp_snd_init(struct snd_soc_pcm_runtime *rtd) { struct sc8280xp_snd_data *data = snd_soc_card_get_drvdata(rtd->card); + struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0); + struct snd_soc_card *card = rtd->card; + + switch (cpu_dai->id) { + case WSA_CODEC_DMA_RX_0: + case WSA_CODEC_DMA_RX_1: + /* + * set limit of 0dB on Digital Volume for Speakers, + * this can prevent damage of speakers to some extent without + * active speaker protection + */ + snd_soc_limit_volume(card, "WSA_RX0 Digital Volume", 84); + snd_soc_limit_volume(card, "WSA_RX1 Digital Volume", 84); + break; + default: + break; + } return qcom_snd_wcd_jack_setup(rtd, &data->jack, &data->jack_setup); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/soc-component.c +++ linux-riscv-6.5.0/sound/soc/soc-component.c @@ -242,6 +242,7 @@ char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; struct snd_kcontrol *kctl; + /* When updating, change also snd_soc_dapm_widget_name_cmp() */ if (component->name_prefix) snprintf(name, ARRAY_SIZE(name), "%s %s", component->name_prefix, ctl); else only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/soc-core.c +++ linux-riscv-6.5.0/sound/soc/soc-core.c @@ -1259,7 +1259,7 @@ snd_soc_runtime_get_dai_fmt(rtd); ret = snd_soc_runtime_set_dai_fmt(rtd, dai_link->dai_fmt); if (ret) - return ret; + goto err; /* add DPCM sysfs entries */ soc_dpcm_debugfs_add(rtd); @@ -1284,17 +1284,26 @@ /* create compress_device if possible */ ret = snd_soc_dai_compress_new(cpu_dai, rtd, num); if (ret != -ENOTSUPP) - return ret; + goto err; /* create the pcm */ ret = soc_new_pcm(rtd, num); if (ret < 0) { dev_err(card->dev, "ASoC: can't create pcm %s :%d\n", dai_link->stream_name, ret); - return ret; + goto err; } - return snd_soc_pcm_dai_new(rtd); + ret = snd_soc_pcm_dai_new(rtd); + if (ret < 0) + goto err; + + rtd->initialized = true; + + return 0; +err: + snd_soc_link_exit(rtd); + return ret; } static void soc_set_name_prefix(struct snd_soc_card *card, @@ -1892,7 +1901,8 @@ /* release machine specific resources */ for_each_card_rtds(card, rtd) - snd_soc_link_exit(rtd); + if (rtd->initialized) + snd_soc_link_exit(rtd); /* remove and free each DAI */ soc_remove_link_dais(card); soc_remove_link_components(card); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/soc-dai.c +++ linux-riscv-6.5.0/sound/soc/soc-dai.c @@ -641,6 +641,10 @@ ret = soc_dai_trigger(dai, substream, cmd); if (ret < 0) break; + + if (dai->driver->ops && dai->driver->ops->mute_unmute_on_trigger) + snd_soc_dai_digital_mute(dai, 0, substream->stream); + soc_dai_mark_push(dai, substream, trigger); } break; @@ -651,6 +655,9 @@ if (rollback && !soc_dai_mark_match(dai, substream, trigger)) continue; + if (dai->driver->ops && dai->driver->ops->mute_unmute_on_trigger) + snd_soc_dai_digital_mute(dai, 1, substream->stream); + r = soc_dai_trigger(dai, substream, cmd); if (r < 0) ret = r; /* use last ret */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/soc-dapm.c +++ linux-riscv-6.5.0/sound/soc/soc-dapm.c @@ -2726,6 +2726,18 @@ } EXPORT_SYMBOL_GPL(snd_soc_dapm_update_dai); +int snd_soc_dapm_widget_name_cmp(struct snd_soc_dapm_widget *widget, const char *s) +{ + struct snd_soc_component *component = snd_soc_dapm_to_component(widget->dapm); + const char *wname = widget->name; + + if (component->name_prefix) + wname += strlen(component->name_prefix) + 1; /* plus space */ + + return strcmp(wname, s); +} +EXPORT_SYMBOL_GPL(snd_soc_dapm_widget_name_cmp); + /* * dapm_update_widget_flags() - Re-compute widget sink and source flags * @w: The widget for which to update the flags @@ -3656,7 +3668,7 @@ dapm_pinctrl_event(w, NULL, SND_SOC_DAPM_POST_PMD); break; case snd_soc_dapm_clock_supply: - w->clk = devm_clk_get(dapm->dev, w->name); + w->clk = devm_clk_get(dapm->dev, widget->name); if (IS_ERR(w->clk)) { ret = PTR_ERR(w->clk); goto request_failed; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/soc-ops.c +++ linux-riscv-6.5.0/sound/soc/soc-ops.c @@ -661,7 +661,7 @@ kctl = snd_soc_card_get_kcontrol(card, name); if (kctl) { struct soc_mixer_control *mc = (struct soc_mixer_control *)kctl->private_value; - if (max <= mc->max) { + if (max <= mc->max - mc->min) { mc->platform_max = max; ret = 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/soc-pcm.c +++ linux-riscv-6.5.0/sound/soc/soc-pcm.c @@ -698,14 +698,12 @@ if (!rollback) { snd_soc_runtime_deactivate(rtd, substream->stream); - /* clear the corresponding DAIs parameters when going to be inactive */ - for_each_rtd_dais(rtd, i, dai) { - if (snd_soc_dai_active(dai) == 0) - soc_pcm_set_dai_params(dai, NULL); - if (snd_soc_dai_stream_active(dai, substream->stream) == 0) - snd_soc_dai_digital_mute(dai, 1, substream->stream); - } + /* Make sure DAI parameters cleared if the DAI becomes inactive */ + for_each_rtd_dais(rtd, i, dai) + if (snd_soc_dai_active(dai) == 0 && + (dai->rate || dai->channels || dai->sample_bits)) + soc_pcm_set_dai_params(dai, NULL); } for_each_rtd_dais(rtd, i, dai) @@ -898,8 +896,10 @@ snd_soc_dapm_stream_event(rtd, substream->stream, SND_SOC_DAPM_STREAM_START); - for_each_rtd_dais(rtd, i, dai) - snd_soc_dai_digital_mute(dai, 0, substream->stream); + for_each_rtd_dais(rtd, i, dai) { + if (dai->driver->ops && !dai->driver->ops->mute_unmute_on_trigger) + snd_soc_dai_digital_mute(dai, 0, substream->stream); + } out: return soc_pcm_ret(rtd, ret); @@ -936,6 +936,17 @@ snd_soc_dpcm_mutex_assert_held(rtd); + /* clear the corresponding DAIs parameters when going to be inactive */ + for_each_rtd_dais(rtd, i, dai) { + if (snd_soc_dai_active(dai) == 1) + soc_pcm_set_dai_params(dai, NULL); + + if (snd_soc_dai_stream_active(dai, substream->stream) == 1) { + if (dai->driver->ops && !dai->driver->ops->mute_unmute_on_trigger) + snd_soc_dai_digital_mute(dai, 1, substream->stream); + } + } + /* run the stream event */ snd_soc_dapm_stream_stop(rtd, substream->stream); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/sof/ipc4.c +++ linux-riscv-6.5.0/sound/soc/sof/ipc4.c @@ -614,6 +614,9 @@ case SOF_IPC4_NOTIFY_LOG_BUFFER_STATUS: sof_ipc4_mtrace_update_pos(sdev, SOF_IPC4_LOG_CORE_GET(ipc4_msg->primary)); break; + case SOF_IPC4_NOTIFY_EXCEPTION_CAUGHT: + snd_sof_dsp_panic(sdev, 0, true); + break; default: dev_dbg(sdev->dev, "Unhandled DSP message: %#x|%#x\n", ipc4_msg->primary, ipc4_msg->extension); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/sof/sof-pci-dev.c +++ linux-riscv-6.5.0/sound/soc/sof/sof-pci-dev.c @@ -145,6 +145,13 @@ DMI_MATCH(DMI_PRODUCT_FAMILY, "Google"), } }, + { + .ident = "Google firmware", + .callback = chromebook_use_community_key, + .matches = { + DMI_MATCH(DMI_BIOS_VERSION, "Google"), + } + }, {}, }; @@ -214,6 +221,14 @@ return ret; sof_pdata->name = pci_name(pci); + + /* PCI defines a vendor ID of 0xFFFF as invalid. */ + if (pci->subsystem_vendor != 0xFFFF) { + sof_pdata->subsystem_vendor = pci->subsystem_vendor; + sof_pdata->subsystem_device = pci->subsystem_device; + sof_pdata->subsystem_id_set = true; + } + sof_pdata->desc = desc; sof_pdata->dev = dev; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/ti/ams-delta.c +++ linux-riscv-6.5.0/sound/soc/ti/ams-delta.c @@ -303,7 +303,7 @@ static void cx81801_close(struct tty_struct *tty) { struct snd_soc_component *component = tty->disc_data; - struct snd_soc_dapm_context *dapm = &component->card->dapm; + struct snd_soc_dapm_context *dapm; del_timer_sync(&cx81801_timer); @@ -315,6 +315,8 @@ v253_ops.close(tty); + dapm = &component->card->dapm; + /* Revert back to default audio input/output constellation */ snd_soc_dapm_mutex_lock(dapm); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/soc/ti/omap-mcbsp.c +++ linux-riscv-6.5.0/sound/soc/ti/omap-mcbsp.c @@ -74,14 +74,16 @@ return -EINVAL; } - pm_runtime_put_sync(mcbsp->dev); + if (mcbsp->active) + pm_runtime_put_sync(mcbsp->dev); r = clk_set_parent(mcbsp->fclk, fck_src); if (r) dev_err(mcbsp->dev, "CLKS: could not clk_set_parent() to %s\n", src); - pm_runtime_get_sync(mcbsp->dev); + if (mcbsp->active) + pm_runtime_get_sync(mcbsp->dev); clk_put(fck_src); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/sound/usb/mixer_quirks.c +++ linux-riscv-6.5.0/sound/usb/mixer_quirks.c @@ -2978,6 +2978,7 @@ #define SND_DJM_850_IDX 0x2 #define SND_DJM_900NXS2_IDX 0x3 #define SND_DJM_750MK2_IDX 0x4 +#define SND_DJM_450_IDX 0x5 #define SND_DJM_CTL(_name, suffix, _default_value, _windex) { \ @@ -3108,6 +3109,31 @@ }; +// DJM-450 +static const u16 snd_djm_opts_450_cap1[] = { + 0x0103, 0x0100, 0x0106, 0x0107, 0x0108, 0x0109, 0x010d, 0x010a }; + +static const u16 snd_djm_opts_450_cap2[] = { + 0x0203, 0x0200, 0x0206, 0x0207, 0x0208, 0x0209, 0x020d, 0x020a }; + +static const u16 snd_djm_opts_450_cap3[] = { + 0x030a, 0x0311, 0x0312, 0x0307, 0x0308, 0x0309, 0x030d }; + +static const u16 snd_djm_opts_450_pb1[] = { 0x0100, 0x0101, 0x0104 }; +static const u16 snd_djm_opts_450_pb2[] = { 0x0200, 0x0201, 0x0204 }; +static const u16 snd_djm_opts_450_pb3[] = { 0x0300, 0x0301, 0x0304 }; + +static const struct snd_djm_ctl snd_djm_ctls_450[] = { + SND_DJM_CTL("Capture Level", cap_level, 0, SND_DJM_WINDEX_CAPLVL), + SND_DJM_CTL("Ch1 Input", 450_cap1, 2, SND_DJM_WINDEX_CAP), + SND_DJM_CTL("Ch2 Input", 450_cap2, 2, SND_DJM_WINDEX_CAP), + SND_DJM_CTL("Ch3 Input", 450_cap3, 0, SND_DJM_WINDEX_CAP), + SND_DJM_CTL("Ch1 Output", 450_pb1, 0, SND_DJM_WINDEX_PB), + SND_DJM_CTL("Ch2 Output", 450_pb2, 1, SND_DJM_WINDEX_PB), + SND_DJM_CTL("Ch3 Output", 450_pb3, 2, SND_DJM_WINDEX_PB) +}; + + // DJM-750 static const u16 snd_djm_opts_750_cap1[] = { 0x0101, 0x0103, 0x0106, 0x0107, 0x0108, 0x0109, 0x010a, 0x010f }; @@ -3203,6 +3229,7 @@ [SND_DJM_850_IDX] = SND_DJM_DEVICE(850), [SND_DJM_900NXS2_IDX] = SND_DJM_DEVICE(900nxs2), [SND_DJM_750MK2_IDX] = SND_DJM_DEVICE(750mk2), + [SND_DJM_450_IDX] = SND_DJM_DEVICE(450), }; @@ -3449,6 +3476,9 @@ case USB_ID(0x2b73, 0x0017): /* Pioneer DJ DJM-250MK2 */ err = snd_djm_controls_create(mixer, SND_DJM_250MK2_IDX); break; + case USB_ID(0x2b73, 0x0013): /* Pioneer DJ DJM-450 */ + err = snd_djm_controls_create(mixer, SND_DJM_450_IDX); + break; case USB_ID(0x08e4, 0x017f): /* Pioneer DJ DJM-750 */ err = snd_djm_controls_create(mixer, SND_DJM_750_IDX); break; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/arch/parisc/include/uapi/asm/errno.h +++ linux-riscv-6.5.0/tools/arch/parisc/include/uapi/asm/errno.h @@ -75,7 +75,6 @@ /* We now return you to your regularly scheduled HPUX. */ -#define ENOSYM 215 /* symbol does not exist in executable */ #define ENOTSOCK 216 /* Socket operation on non-socket */ #define EDESTADDRREQ 217 /* Destination address required */ #define EMSGSIZE 218 /* Message too long */ @@ -101,7 +100,6 @@ #define ETIMEDOUT 238 /* Connection timed out */ #define ECONNREFUSED 239 /* Connection refused */ #define EREFUSED ECONNREFUSED /* for HP's NFS apparently */ -#define EREMOTERELEASE 240 /* Remote peer released connection */ #define EHOSTDOWN 241 /* Host is down */ #define EHOSTUNREACH 242 /* No route to host */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/include/linux/rwsem.h +++ linux-riscv-6.5.0/tools/include/linux/rwsem.h @@ -0,0 +1,40 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +#ifndef _TOOLS__RWSEM_H +#define _TOOLS__RWSEM_H + +#include + +struct rw_semaphore { + pthread_rwlock_t lock; +}; + +static inline int init_rwsem(struct rw_semaphore *sem) +{ + return pthread_rwlock_init(&sem->lock, NULL); +} + +static inline int exit_rwsem(struct rw_semaphore *sem) +{ + return pthread_rwlock_destroy(&sem->lock); +} + +static inline int down_read(struct rw_semaphore *sem) +{ + return pthread_rwlock_rdlock(&sem->lock); +} + +static inline int up_read(struct rw_semaphore *sem) +{ + return pthread_rwlock_unlock(&sem->lock); +} + +static inline int down_write(struct rw_semaphore *sem) +{ + return pthread_rwlock_wrlock(&sem->lock); +} + +static inline int up_write(struct rw_semaphore *sem) +{ + return pthread_rwlock_unlock(&sem->lock); +} +#endif /* _TOOLS_RWSEM_H */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/include/uapi/linux/prctl.h +++ linux-riscv-6.5.0/tools/include/uapi/linux/prctl.h @@ -283,7 +283,8 @@ /* Memory deny write / execute */ #define PR_SET_MDWE 65 -# define PR_MDWE_REFUSE_EXEC_GAIN 1 +# define PR_MDWE_REFUSE_EXEC_GAIN (1UL << 0) +# define PR_MDWE_NO_INHERIT (1UL << 1) #define PR_GET_MDWE 66 only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/lib/perf/include/internal/rc_check.h +++ linux-riscv-6.5.0/tools/lib/perf/include/internal/rc_check.h @@ -9,8 +9,12 @@ * Enable reference count checking implicitly with leak checking, which is * integrated into address sanitizer. */ -#if defined(LEAK_SANITIZER) || defined(ADDRESS_SANITIZER) +#if defined(__SANITIZE_ADDRESS__) || defined(LEAK_SANITIZER) || defined(ADDRESS_SANITIZER) #define REFCNT_CHECKING 1 +#elif defined(__has_feature) +#if __has_feature(address_sanitizer) || __has_feature(leak_sanitizer) +#define REFCNT_CHECKING 1 +#endif #endif /* only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/objtool/objtool.c +++ linux-riscv-6.5.0/tools/objtool/objtool.c @@ -146,7 +146,5 @@ exec_cmd_init("objtool", UNUSED, UNUSED, UNUSED); pager_init(UNUSED); - objtool_run(argc, argv); - - return 0; + return objtool_run(argc, argv); } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/Documentation/perf-kwork.txt +++ linux-riscv-6.5.0/tools/perf/Documentation/perf-kwork.txt @@ -8,7 +8,7 @@ SYNOPSIS -------- [verse] -'perf kwork' {record} +'perf kwork' {record|report|latency|timehist} DESCRIPTION ----------- only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/arch/arm64/util/mem-events.c +++ linux-riscv-6.5.0/tools/perf/arch/arm64/util/mem-events.c @@ -20,7 +20,7 @@ return &perf_mem_events[i]; } -char *perf_mem_events__name(int i, char *pmu_name __maybe_unused) +const char *perf_mem_events__name(int i, const char *pmu_name __maybe_unused) { struct perf_mem_event *e = perf_mem_events__ptr(i); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/arch/powerpc/util/mem-events.c +++ linux-riscv-6.5.0/tools/perf/arch/powerpc/util/mem-events.c @@ -3,10 +3,10 @@ #include "mem-events.h" /* PowerPC does not support 'ldlat' parameter. */ -char *perf_mem_events__name(int i, char *pmu_name __maybe_unused) +const char *perf_mem_events__name(int i, const char *pmu_name __maybe_unused) { if (i == PERF_MEM_EVENTS__LOAD) - return (char *) "cpu/mem-loads/"; + return "cpu/mem-loads/"; - return (char *) "cpu/mem-stores/"; + return "cpu/mem-stores/"; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/arch/x86/util/mem-events.c +++ linux-riscv-6.5.0/tools/perf/arch/x86/util/mem-events.c @@ -52,7 +52,7 @@ return leader->core.attr.config == MEM_LOADS_AUX; } -char *perf_mem_events__name(int i, char *pmu_name) +const char *perf_mem_events__name(int i, const char *pmu_name) { struct perf_mem_event *e = perf_mem_events__ptr(i); @@ -65,7 +65,7 @@ if (!pmu_name) { mem_loads_name__init = true; - pmu_name = (char *)"cpu"; + pmu_name = "cpu"; } if (perf_pmus__have_event(pmu_name, "mem-loads-aux")) { @@ -82,12 +82,12 @@ if (i == PERF_MEM_EVENTS__STORE) { if (!pmu_name) - pmu_name = (char *)"cpu"; + pmu_name = "cpu"; scnprintf(mem_stores_name, sizeof(mem_stores_name), e->name, pmu_name); return mem_stores_name; } - return (char *)e->name; + return e->name; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/arch/x86/util/pmu.c +++ linux-riscv-6.5.0/tools/perf/arch/x86/util/pmu.c @@ -126,7 +126,7 @@ return ret; } -static char *__pmu_find_real_name(const char *name) +static const char *__pmu_find_real_name(const char *name) { struct pmu_alias *pmu_alias; @@ -135,10 +135,10 @@ return pmu_alias->name; } - return (char *)name; + return name; } -char *pmu_find_real_name(const char *name) +const char *pmu_find_real_name(const char *name) { if (cached_list) return __pmu_find_real_name(name); @@ -149,7 +149,7 @@ return __pmu_find_real_name(name); } -static char *__pmu_find_alias_name(const char *name) +static const char *__pmu_find_alias_name(const char *name) { struct pmu_alias *pmu_alias; @@ -160,7 +160,7 @@ return NULL; } -char *pmu_find_alias_name(const char *name) +const char *pmu_find_alias_name(const char *name) { if (cached_list) return __pmu_find_alias_name(name); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/builtin-kwork.c +++ linux-riscv-6.5.0/tools/perf/builtin-kwork.c @@ -406,12 +406,14 @@ work = work_findnew(&class->work_root, &key, &kwork->cmp_id); if (work == NULL) { - free(atom); + atom_free(atom); return -1; } - if (!profile_event_match(kwork, work, sample)) + if (!profile_event_match(kwork, work, sample)) { + atom_free(atom); return 0; + } if (dst_type < KWORK_TRACE_MAX) { dst_atom = list_last_entry_or_null(&work->atom_list[dst_type], @@ -1692,9 +1694,10 @@ static struct perf_kwork kwork = { .class_list = LIST_HEAD_INIT(kwork.class_list), .tool = { - .mmap = perf_event__process_mmap, - .mmap2 = perf_event__process_mmap2, - .sample = perf_kwork__process_tracepoint_sample, + .mmap = perf_event__process_mmap, + .mmap2 = perf_event__process_mmap2, + .sample = perf_kwork__process_tracepoint_sample, + .ordered_events = true, }, .atom_page_list = LIST_HEAD_INIT(kwork.atom_page_list), .sort_list = LIST_HEAD_INIT(kwork.sort_list), only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/builtin-list.c +++ linux-riscv-6.5.0/tools/perf/builtin-list.c @@ -502,7 +502,7 @@ ret = -1; goto out; } - default_ps.pmu_glob = pmu->name; + default_ps.pmu_glob = strdup(pmu->name); } } print_cb.print_start(ps); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/builtin-stat.c +++ linux-riscv-6.5.0/tools/perf/builtin-stat.c @@ -1622,7 +1622,7 @@ * taking the highest cpu number to be the size of * the aggregation translate cpumap. */ - if (evsel_list->core.user_requested_cpus) + if (!perf_cpu_map__empty(evsel_list->core.user_requested_cpus)) nr = perf_cpu_map__max(evsel_list->core.user_requested_cpus).cpu; else nr = 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/examples/bpf/augmented_raw_syscalls.c +++ linux-riscv-6.5.0/tools/perf/examples/bpf/augmented_raw_syscalls.c @@ -147,7 +147,7 @@ unsigned int augmented_arg__read_str(struct augmented_arg *augmented_arg, const void *arg, unsigned int arg_len) { unsigned int augmented_len = sizeof(*augmented_arg); - int string_len = bpf_probe_read_str(&augmented_arg->value, arg_len, arg); + int string_len = bpf_probe_read_user_str(&augmented_arg->value, arg_len, arg); augmented_arg->size = augmented_arg->err = 0; /* @@ -196,7 +196,7 @@ if (socklen > sizeof(augmented_args->saddr)) socklen = sizeof(augmented_args->saddr); - bpf_probe_read(&augmented_args->saddr, socklen, sockaddr_arg); + bpf_probe_read_user(&augmented_args->saddr, socklen, sockaddr_arg); return augmented__output(args, augmented_args, len + socklen); } @@ -215,7 +215,7 @@ if (socklen > sizeof(augmented_args->saddr)) socklen = sizeof(augmented_args->saddr); - bpf_probe_read(&augmented_args->saddr, socklen, sockaddr_arg); + bpf_probe_read_user(&augmented_args->saddr, socklen, sockaddr_arg); return augmented__output(args, augmented_args, len + socklen); } @@ -305,7 +305,7 @@ if (augmented_args == NULL) goto failure; - if (bpf_probe_read(&augmented_args->__data, sizeof(*attr), attr) < 0) + if (bpf_probe_read_user(&augmented_args->__data, sizeof(*attr), attr) < 0) goto failure; attr_read = (const struct perf_event_attr_size *)augmented_args->__data; @@ -319,7 +319,7 @@ goto failure; // Now that we read attr->size and tested it against the size limits, read it completely - if (bpf_probe_read(&augmented_args->__data, size, attr) < 0) + if (bpf_probe_read_user(&augmented_args->__data, size, attr) < 0) goto failure; return augmented__output(args, augmented_args, len + size); @@ -341,7 +341,7 @@ if (size > sizeof(augmented_args->__data)) goto failure; - bpf_probe_read(&augmented_args->__data, size, rqtp_arg); + bpf_probe_read_user(&augmented_args->__data, size, rqtp_arg); return augmented__output(args, augmented_args, len + size); failure: @@ -380,7 +380,7 @@ if (augmented_args == NULL) return 1; - bpf_probe_read(&augmented_args->args, sizeof(augmented_args->args), args); + bpf_probe_read_kernel(&augmented_args->args, sizeof(augmented_args->args), args); /* * Jump to syscall specific augmenter, even if the default one, @@ -401,7 +401,7 @@ if (pid_filter__has(&pids_filtered, getpid())) return 0; - bpf_probe_read(&exit_args, sizeof(exit_args), args); + bpf_probe_read_kernel(&exit_args, sizeof(exit_args), args); /* * Jump to syscall specific return augmenter, even if the default one, * "!raw_syscalls:unaugmented" that will just return 1 to return the only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json +++ linux-riscv-6.5.0/tools/perf/pmu-events/arch/x86/broadwellde/bdwde-metrics.json @@ -49,6 +49,12 @@ "ScaleUnit": "100%" }, { + "BriefDescription": "Uncore frequency per die [GHZ]", + "MetricExpr": "tma_info_system_socket_clks / #num_dies / duration_time / 1e9", + "MetricGroup": "SoC", + "MetricName": "UNCORE_FREQ" + }, + { "BriefDescription": "Percentage of cycles spent in System Management Interrupts.", "MetricExpr": "((msr@aperf@ - cycles) / msr@aperf@ if msr@smi@ > 0 else 0)", "MetricGroup": "smi", @@ -652,7 +658,7 @@ }, { "BriefDescription": "Average external Memory Bandwidth Use for reads and writes [GB / sec]", - "MetricExpr": "64 * (arb@event\\=0x81\\,umask\\=0x1@ + arb@event\\=0x84\\,umask\\=0x1@) / 1e6 / duration_time / 1e3", + "MetricExpr": "64 * (UNC_M_CAS_COUNT.RD + UNC_M_CAS_COUNT.WR) / 1e9 / duration_time", "MetricGroup": "HPC;Mem;MemoryBW;SoC;tma_issueBW", "MetricName": "tma_info_system_dram_bw_use", "PublicDescription": "Average external Memory Bandwidth Use for reads and writes [GB / sec]. Related metrics: tma_fb_full, tma_mem_bandwidth, tma_sq_full" @@ -691,6 +697,12 @@ "MetricName": "tma_info_system_smt_2t_utilization" }, { + "BriefDescription": "Socket actual clocks when any core is active on that socket", + "MetricExpr": "cbox_0@event\\=0x0@", + "MetricGroup": "SoC", + "MetricName": "tma_info_system_socket_clks" + }, + { "BriefDescription": "Average Frequency Utilization relative nominal frequency", "MetricExpr": "tma_info_thread_clks / CPU_CLK_UNHALTED.REF_TSC", "MetricGroup": "Power", only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/tests/pmu-events.c +++ linux-riscv-6.5.0/tools/perf/tests/pmu-events.c @@ -508,7 +508,7 @@ } /* Verify aliases are as expected */ -static int __test_core_pmu_event_aliases(char *pmu_name, int *count) +static int __test_core_pmu_event_aliases(const char *pmu_name, int *count) { struct perf_pmu_test_event const **test_event_table; struct perf_pmu *pmu; @@ -635,7 +635,7 @@ static struct perf_pmu_test_pmu test_pmus[] = { { .pmu = { - .name = (char *)"hisi_sccl1_ddrc2", + .name = "hisi_sccl1_ddrc2", .is_uncore = 1, }, .aliases = { @@ -644,7 +644,7 @@ }, { .pmu = { - .name = (char *)"uncore_cbox_0", + .name = "uncore_cbox_0", .is_uncore = 1, }, .aliases = { @@ -655,7 +655,7 @@ }, { .pmu = { - .name = (char *)"hisi_sccl3_l3c7", + .name = "hisi_sccl3_l3c7", .is_uncore = 1, }, .aliases = { @@ -664,7 +664,7 @@ }, { .pmu = { - .name = (char *)"uncore_imc_free_running_0", + .name = "uncore_imc_free_running_0", .is_uncore = 1, }, .aliases = { @@ -673,7 +673,7 @@ }, { .pmu = { - .name = (char *)"uncore_imc_0", + .name = "uncore_imc_0", .is_uncore = 1, }, .aliases = { @@ -682,7 +682,7 @@ }, { .pmu = { - .name = (char *)"uncore_sys_ddr_pmu0", + .name = "uncore_sys_ddr_pmu0", .is_uncore = 1, .id = (char *)"v8", }, @@ -692,7 +692,7 @@ }, { .pmu = { - .name = (char *)"uncore_sys_ccn_pmu4", + .name = "uncore_sys_ccn_pmu4", .is_uncore = 1, .id = (char *)"0x01", }, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/util/bpf_off_cpu.c +++ linux-riscv-6.5.0/tools/perf/util/bpf_off_cpu.c @@ -98,7 +98,7 @@ /* v5.18 kernel added prev_state arg, so it needs to check the signature */ static void check_sched_switch_args(void) { - const struct btf *btf = bpf_object__btf(skel->obj); + const struct btf *btf = btf__load_vmlinux_btf(); const struct btf_type *t1, *t2, *t3; u32 type_id; @@ -116,7 +116,8 @@ return; t3 = btf__type_by_id(btf, t2->type); - if (t3 && btf_is_func_proto(t3) && btf_vlen(t3) == 4) { + /* btf_trace func proto has one more argument for the context */ + if (t3 && btf_is_func_proto(t3) && btf_vlen(t3) == 5) { /* new format: pass prev_state as 4th arg */ skel->rodata->has_prev_state = true; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/util/env.c +++ linux-riscv-6.5.0/tools/perf/util/env.c @@ -324,11 +324,9 @@ u32 pmu_num = 0; struct strbuf sb; - while ((pmu = perf_pmus__scan(pmu))) { - if (!pmu->name) - continue; + while ((pmu = perf_pmus__scan(pmu))) pmu_num++; - } + if (!pmu_num) { pr_debug("pmu mappings not available\n"); return -ENOENT; @@ -339,8 +337,6 @@ return -ENOMEM; while ((pmu = perf_pmus__scan(pmu))) { - if (!pmu->name) - continue; if (strbuf_addf(&sb, "%u:%s", pmu->type, pmu->name) < 0) goto error; /* include a NULL character at the end */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/util/evlist.c +++ linux-riscv-6.5.0/tools/perf/util/evlist.c @@ -251,6 +251,9 @@ .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_SW_DUMMY, .size = sizeof(attr), /* to capture ABI version */ + /* Avoid frequency mode for dummy events to avoid associated timers. */ + .freq = 0, + .sample_period = 1, }; return evsel__new_idx(&attr, evlist->core.nr_entries); @@ -277,8 +280,6 @@ evsel->core.attr.exclude_kernel = 1; evsel->core.attr.exclude_guest = 1; evsel->core.attr.exclude_hv = 1; - evsel->core.attr.freq = 0; - evsel->core.attr.sample_period = 1; evsel->core.system_wide = system_wide; evsel->no_aux_samples = true; evsel->name = strdup("dummy:u"); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/util/hist.c +++ linux-riscv-6.5.0/tools/perf/util/hist.c @@ -2676,8 +2676,6 @@ /* If we have branch cycles always annotate them. */ if (bs && bs->nr && entries[0].flags.cycles) { - int i; - bi = sample__resolve_bstack(sample, al); if (bi) { struct addr_map_symbol *prev = NULL; @@ -2692,7 +2690,7 @@ * Note that perf stores branches reversed from * program order! */ - for (i = bs->nr - 1; i >= 0; i--) { + for (int i = bs->nr - 1; i >= 0; i--) { addr_map_symbol__account_cycles(&bi[i].from, nonany_branch_mode ? NULL : prev, bi[i].flags.cycles); @@ -2701,6 +2699,12 @@ if (total_cycles) *total_cycles += bi[i].flags.cycles; } + for (unsigned int i = 0; i < bs->nr; i++) { + map__put(bi[i].to.ms.map); + maps__put(bi[i].to.ms.maps); + map__put(bi[i].from.ms.map); + maps__put(bi[i].from.ms.maps); + } free(bi); } } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/util/intel-pt.c +++ linux-riscv-6.5.0/tools/perf/util/intel-pt.c @@ -1512,9 +1512,11 @@ } else if (ptq->state->flags & INTEL_PT_ASYNC) { if (!ptq->state->to_ip) ptq->flags = PERF_IP_FLAG_BRANCH | + PERF_IP_FLAG_ASYNC | PERF_IP_FLAG_TRACE_END; else if (ptq->state->from_nr && !ptq->state->to_nr) ptq->flags = PERF_IP_FLAG_BRANCH | PERF_IP_FLAG_CALL | + PERF_IP_FLAG_ASYNC | PERF_IP_FLAG_VMEXIT; else ptq->flags = PERF_IP_FLAG_BRANCH | PERF_IP_FLAG_CALL | only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/util/machine.c +++ linux-riscv-6.5.0/tools/perf/util/machine.c @@ -2622,16 +2622,18 @@ save_lbr_cursor_node(thread, cursor, i); } - /* Add LBR ip from first entries.to */ - ip = entries[0].to; - flags = &entries[0].flags; - *branch_from = entries[0].from; - err = add_callchain_ip(thread, cursor, parent, - root_al, &cpumode, ip, - true, flags, NULL, - *branch_from); - if (err) - return err; + if (lbr_nr > 0) { + /* Add LBR ip from first entries.to */ + ip = entries[0].to; + flags = &entries[0].flags; + *branch_from = entries[0].from; + err = add_callchain_ip(thread, cursor, parent, + root_al, &cpumode, ip, + true, flags, NULL, + *branch_from); + if (err) + return err; + } return 0; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/util/mem-events.c +++ linux-riscv-6.5.0/tools/perf/util/mem-events.c @@ -37,7 +37,7 @@ return &perf_mem_events[i]; } -char * __weak perf_mem_events__name(int i, char *pmu_name __maybe_unused) +const char * __weak perf_mem_events__name(int i, const char *pmu_name __maybe_unused) { struct perf_mem_event *e = perf_mem_events__ptr(i); @@ -53,7 +53,7 @@ return mem_loads_name; } - return (char *)e->name; + return e->name; } __weak bool is_mem_loads_aux_event(struct evsel *leader __maybe_unused) @@ -185,8 +185,6 @@ { int i = *argv_nr, k = 0; struct perf_mem_event *e; - struct perf_pmu *pmu; - char *s; for (int j = 0; j < PERF_MEM_EVENTS__MAX; j++) { e = perf_mem_events__ptr(j); @@ -203,21 +201,24 @@ rec_argv[i++] = "-e"; rec_argv[i++] = perf_mem_events__name(j, NULL); } else { + struct perf_pmu *pmu = NULL; + if (!e->supported) { perf_mem_events__print_unsupport_hybrid(e, j); return -1; } while ((pmu = perf_pmus__scan(pmu)) != NULL) { + const char *s = perf_mem_events__name(j, pmu->name); + rec_argv[i++] = "-e"; - s = perf_mem_events__name(j, pmu->name); if (s) { - s = strdup(s); - if (!s) + char *copy = strdup(s); + if (!copy) return -1; - rec_argv[i++] = s; - rec_tmp[k++] = s; + rec_argv[i++] = copy; + rec_tmp[k++] = copy; } } } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/util/mem-events.h +++ linux-riscv-6.5.0/tools/perf/util/mem-events.h @@ -38,7 +38,7 @@ int perf_mem_events__parse(const char *str); int perf_mem_events__init(void); -char *perf_mem_events__name(int i, char *pmu_name); +const char *perf_mem_events__name(int i, const char *pmu_name); struct perf_mem_event *perf_mem_events__ptr(int i); bool is_mem_loads_aux_event(struct evsel *leader); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/util/metricgroup.c +++ linux-riscv-6.5.0/tools/perf/util/metricgroup.c @@ -225,7 +225,7 @@ m->pmu = pm->pmu ?: "cpu"; m->metric_name = pm->metric_name; - m->default_metricgroup_name = pm->default_metricgroup_name; + m->default_metricgroup_name = pm->default_metricgroup_name ?: ""; m->modifier = NULL; if (modifier) { m->modifier = strdup(modifier); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/util/parse-events.h +++ linux-riscv-6.5.0/tools/perf/util/parse-events.h @@ -190,7 +190,7 @@ u64 addr, char *type, u64 len, struct list_head *head_config); int parse_events_add_pmu(struct parse_events_state *parse_state, - struct list_head *list, char *name, + struct list_head *list, const char *name, struct list_head *head_config, bool auto_merge_stats); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/util/parse-events.l +++ linux-riscv-6.5.0/tools/perf/util/parse-events.l @@ -175,7 +175,6 @@ %x mem %s config %x event -%x array group [^,{}/]*[{][^}]*[}][^,{}/]* event_pmu [^,{}/]+[/][^/]*[/][^,{}/]* @@ -251,14 +250,6 @@ } } -{ -"]" { BEGIN(config); return ']'; } -{num_dec} { return value(yyscanner, 10); } -{num_hex} { return value(yyscanner, 16); } -, { return ','; } -"\.\.\." { return PE_ARRAY_RANGE; } -} - { /* * Please update config_term_names when new static term is added. @@ -302,8 +293,6 @@ {lc_type}-{lc_op_result} { return lc_str(yyscanner, _parse_state); } {lc_type}-{lc_op_result}-{lc_op_result} { return lc_str(yyscanner, _parse_state); } {name_minus} { return str(yyscanner, PE_NAME); } -\[all\] { return PE_ARRAY_ALL; } -"[" { BEGIN(array); return '['; } @{drv_cfg_term} { return drv_str(yyscanner, PE_DRV_CFG_TERM); } } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/perf/util/pmu.h +++ linux-riscv-6.5.0/tools/perf/util/pmu.h @@ -39,7 +39,7 @@ */ struct perf_pmu { /** @name: The name of the PMU such as "cpu". */ - char *name; + const char *name; /** * @alias_name: Optional alternate name for the PMU determined in * architecture specific code. @@ -275,10 +275,10 @@ const char *config_name); void perf_pmu__warn_invalid_formats(struct perf_pmu *pmu); -int perf_pmu__match(char *pattern, char *name, char *tok); +int perf_pmu__match(const char *pattern, const char *name, const char *tok); -char *pmu_find_real_name(const char *name); -char *pmu_find_alias_name(const char *name); +const char *pmu_find_real_name(const char *name); +const char *pmu_find_alias_name(const char *name); double perf_pmu__cpu_slots_per_cycle(void); int perf_pmu__event_source_devices_scnprintf(char *pathname, size_t size); int perf_pmu__pathname_scnprintf(char *buf, size_t size, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/power/cpupower/man/cpupower-powercap-info.1 +++ linux-riscv-6.5.0/tools/power/cpupower/man/cpupower-powercap-info.1 @@ -17,7 +17,7 @@ .SH "DOCUMENTATION" kernel sources: -Documentation/power/powercap/powercap.txt +Documentation/power/powercap/powercap.rst .SH "SEE ALSO" only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/power/pm-graph/sleepgraph.py +++ linux-riscv-6.5.0/tools/power/pm-graph/sleepgraph.py @@ -4151,7 +4151,7 @@ elif(re.match('Enabling non-boot CPUs .*', msg)): # start of first cpu resume cpu_start = ktime - elif(re.match('smpboot: CPU (?P[0-9]*) is now offline', msg)) \ + elif(re.match('smpboot: CPU (?P[0-9]*) is now offline', msg) \ or re.match('psci: CPU(?P[0-9]*) killed.*', msg)): # end of a cpu suspend, start of the next m = re.match('smpboot: CPU (?P[0-9]*) is now offline', msg) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/power/x86/turbostat/turbostat.c +++ linux-riscv-6.5.0/tools/power/x86/turbostat/turbostat.c @@ -2180,7 +2180,7 @@ if ((DO_BIC(BIC_CPU_c6) || soft_c1_residency_display(BIC_CPU_c6)) && !do_knl_cstates) { if (get_msr(cpu, MSR_CORE_C6_RESIDENCY, &c->c6)) return -7; - } else if (do_knl_cstates || soft_c1_residency_display(BIC_CPU_c6)) { + } else if (do_knl_cstates && soft_c1_residency_display(BIC_CPU_c6)) { if (get_msr(cpu, MSR_KNL_CORE_C6_RESIDENCY, &c->c6)) return -7; } @@ -5790,6 +5790,7 @@ rapl_probe(family, model); perf_limit_reasons_probe(family, model); automatic_cstate_conversion_probe(family, model); + prewake_cstate_probe(family, model); check_tcc_offset(model_orig); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/cxl/test/cxl.c +++ linux-riscv-6.5.0/tools/testing/cxl/test/cxl.c @@ -831,7 +831,7 @@ cxld->interleave_ways = 2; else cxld->interleave_ways = 1; - cxld->interleave_granularity = 256; + cxld->interleave_granularity = 4096; cxld->hpa_range = (struct range) { .start = base, .end = base + size - 1, only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/cxl/test/mem.c +++ linux-riscv-6.5.0/tools/testing/cxl/test/mem.c @@ -1450,11 +1450,11 @@ mdata->mes.mds = mds; cxl_mock_add_event_logs(&mdata->mes); - cxlmd = devm_cxl_add_memdev(cxlds); + cxlmd = devm_cxl_add_memdev(&pdev->dev, cxlds); if (IS_ERR(cxlmd)) return PTR_ERR(cxlmd); - rc = cxl_memdev_setup_fw_upload(mds); + rc = devm_cxl_setup_fw_upload(&pdev->dev, mds); if (rc) return rc; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/arm64/fp/za-fork.c +++ linux-riscv-6.5.0/tools/testing/selftests/arm64/fp/za-fork.c @@ -85,7 +85,7 @@ */ ret = open("/proc/sys/abi/sme_default_vector_length", O_RDONLY, 0); if (ret >= 0) { - ksft_test_result(fork_test(), "fork_test"); + ksft_test_result(fork_test(), "fork_test\n"); } else { ksft_print_msg("SME not supported\n"); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/bpf/prog_tests/module_fentry_shadow.c +++ linux-riscv-6.5.0/tools/testing/selftests/bpf/prog_tests/module_fentry_shadow.c @@ -61,6 +61,11 @@ int link_fd[2] = {}; __s32 btf_id[2] = {}; + if (!env.has_testmod) { + test__skip(); + return; + } + LIBBPF_OPTS(bpf_prog_load_opts, load_opts, .expected_attach_type = BPF_TRACE_FENTRY, ); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/bpf/prog_tests/tailcalls.c +++ linux-riscv-6.5.0/tools/testing/selftests/bpf/prog_tests/tailcalls.c @@ -271,11 +271,11 @@ data_map = bpf_object__find_map_by_name(obj, "tailcall.bss"); if (CHECK_FAIL(!data_map || !bpf_map__is_internal(data_map))) - return; + goto out; data_fd = bpf_map__fd(data_map); - if (CHECK_FAIL(map_fd < 0)) - return; + if (CHECK_FAIL(data_fd < 0)) + goto out; i = 0; err = bpf_map_lookup_elem(data_fd, &i, &val); @@ -352,11 +352,11 @@ data_map = bpf_object__find_map_by_name(obj, "tailcall.bss"); if (CHECK_FAIL(!data_map || !bpf_map__is_internal(data_map))) - return; + goto out; data_fd = bpf_map__fd(data_map); - if (CHECK_FAIL(map_fd < 0)) - return; + if (CHECK_FAIL(data_fd < 0)) + goto out; for (i = 0; i < bpf_map__max_entries(prog_array); i++) { snprintf(prog_name, sizeof(prog_name), "classifier_%d", i); @@ -442,11 +442,11 @@ data_map = bpf_object__find_map_by_name(obj, "tailcall.bss"); if (CHECK_FAIL(!data_map || !bpf_map__is_internal(data_map))) - return; + goto out; data_fd = bpf_map__fd(data_map); - if (CHECK_FAIL(map_fd < 0)) - return; + if (CHECK_FAIL(data_fd < 0)) + goto out; for (i = 0; i < bpf_map__max_entries(prog_array); i++) { snprintf(prog_name, sizeof(prog_name), "classifier_%d", i); @@ -631,11 +631,11 @@ data_map = bpf_object__find_map_by_name(obj, "tailcall.bss"); if (CHECK_FAIL(!data_map || !bpf_map__is_internal(data_map))) - return; + goto out; data_fd = bpf_map__fd(data_map); - if (CHECK_FAIL(map_fd < 0)) - return; + if (CHECK_FAIL(data_fd < 0)) + goto out; i = 0; err = bpf_map_lookup_elem(data_fd, &i, &val); @@ -805,11 +805,11 @@ data_map = bpf_object__find_map_by_name(obj, "tailcall.bss"); if (CHECK_FAIL(!data_map || !bpf_map__is_internal(data_map))) - return; + goto out; data_fd = bpf_map__fd(data_map); - if (CHECK_FAIL(map_fd < 0)) - return; + if (CHECK_FAIL(data_fd < 0)) + goto out; i = 0; val.noise = noise; @@ -872,7 +872,7 @@ ASSERT_EQ(topts.retval, 0, "tailcall retval"); data_fd = bpf_map__fd(obj->maps.bss); - if (!ASSERT_GE(map_fd, 0, "bss map fd")) + if (!ASSERT_GE(data_fd, 0, "bss map fd")) goto out; i = 0; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/bpf/verifier/ld_imm64.c +++ linux-riscv-6.5.0/tools/testing/selftests/bpf/verifier/ld_imm64.c @@ -9,8 +9,8 @@ BPF_MOV64_IMM(BPF_REG_0, 2), BPF_EXIT_INSN(), }, - .errstr = "invalid BPF_LD_IMM insn", - .errstr_unpriv = "R1 pointer comparison", + .errstr = "jump into the middle of ldimm64 insn 1", + .errstr_unpriv = "jump into the middle of ldimm64 insn 1", .result = REJECT, }, { @@ -23,8 +23,8 @@ BPF_LD_IMM64(BPF_REG_0, 1), BPF_EXIT_INSN(), }, - .errstr = "invalid BPF_LD_IMM insn", - .errstr_unpriv = "R1 pointer comparison", + .errstr = "jump into the middle of ldimm64 insn 1", + .errstr_unpriv = "jump into the middle of ldimm64 insn 1", .result = REJECT, }, { only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/clone3/clone3.c +++ linux-riscv-6.5.0/tools/testing/selftests/clone3/clone3.c @@ -196,7 +196,12 @@ CLONE3_ARGS_NO_TEST); /* Do a clone3() in a new time namespace */ - test_clone3(CLONE_NEWTIME, 0, 0, CLONE3_ARGS_NO_TEST); + if (access("/proc/self/ns/time", F_OK) == 0) { + test_clone3(CLONE_NEWTIME, 0, 0, CLONE3_ARGS_NO_TEST); + } else { + ksft_print_msg("Time namespaces are not supported\n"); + ksft_test_result_skip("Skipping clone3() with CLONE_NEWTIME\n"); + } /* Do a clone3() with exit signal (SIGCHLD) in flags */ test_clone3(SIGCHLD, 0, -EINVAL, CLONE3_ARGS_NO_TEST); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/efivarfs/create-read.c +++ linux-riscv-6.5.0/tools/testing/selftests/efivarfs/create-read.c @@ -32,8 +32,10 @@ rc = read(fd, buf, sizeof(buf)); if (rc != 0) { fprintf(stderr, "Reading a new var should return EOF\n"); + close(fd); return EXIT_FAILURE; } + close(fd); return EXIT_SUCCESS; } only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_non_uniq_symbol.tc +++ linux-riscv-6.5.0/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_non_uniq_symbol.tc @@ -0,0 +1,13 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# description: Test failure of registering kprobe on non unique symbol +# requires: kprobe_events + +SYMBOL='name_show' + +# We skip this test on kernel where SYMBOL is unique or does not exist. +if [ "$(grep -c -E "[[:alnum:]]+ t ${SYMBOL}" /proc/kallsyms)" -le '1' ]; then + exit_unsupported +fi + +! echo "p:test_non_unique ${SYMBOL}" > kprobe_events only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/lkdtm/config +++ linux-riscv-6.5.0/tools/testing/selftests/lkdtm/config @@ -9,7 +9,6 @@ CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y CONFIG_UBSAN=y CONFIG_UBSAN_BOUNDS=y -CONFIG_UBSAN_TRAP=y CONFIG_STACKPROTECTOR_STRONG=y CONFIG_SLUB_DEBUG=y CONFIG_SLUB_DEBUG_ON=y only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/lkdtm/tests.txt +++ linux-riscv-6.5.0/tools/testing/selftests/lkdtm/tests.txt @@ -7,7 +7,7 @@ #EXHAUST_STACK Corrupts memory on failure #CORRUPT_STACK Crashes entire system on success #CORRUPT_STACK_STRONG Crashes entire system on success -ARRAY_BOUNDS +ARRAY_BOUNDS call trace:|UBSAN: array-index-out-of-bounds CORRUPT_LIST_ADD list_add corruption CORRUPT_LIST_DEL list_del corruption STACK_GUARD_PAGE_LEADING only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/mm/mdwe_test.c +++ linux-riscv-6.5.0/tools/testing/selftests/mm/mdwe_test.c @@ -168,13 +168,10 @@ self->p = mmap(NULL, self->size, PROT_READ, self->flags, 0, 0); ASSERT_NE(self->p, MAP_FAILED); - p = mmap(self->p + self->size, self->size, PROT_READ | PROT_EXEC, + /* MAP_FIXED unmaps the existing page before mapping which is allowed */ + p = mmap(self->p, self->size, PROT_READ | PROT_EXEC, self->flags | MAP_FIXED, 0, 0); - if (variant->enabled) { - EXPECT_EQ(p, MAP_FAILED); - } else { - EXPECT_EQ(p, self->p); - } + EXPECT_EQ(p, self->p); } TEST_F(mdwe, arm64_BTI) only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/mm/mremap_dontunmap.c +++ linux-riscv-6.5.0/tools/testing/selftests/mm/mremap_dontunmap.c @@ -7,6 +7,7 @@ */ #define _GNU_SOURCE #include +#include #include #include #include only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/net/af_unix/diag_uid.c +++ linux-riscv-6.5.0/tools/testing/selftests/net/af_unix/diag_uid.c @@ -148,7 +148,6 @@ .msg_iov = &iov, .msg_iovlen = 1 }; - struct unix_diag_req *udr; struct nlmsghdr *nlh; int ret; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/net/cmsg_sender.c +++ linux-riscv-6.5.0/tools/testing/selftests/net/cmsg_sender.c @@ -416,9 +416,9 @@ { struct addrinfo hints, *ai; struct iovec iov[1]; + unsigned char *buf; struct msghdr msg; char cbuf[1024]; - char *buf; int err; int fd; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/net/ipsec.c +++ linux-riscv-6.5.0/tools/testing/selftests/net/ipsec.c @@ -2263,7 +2263,7 @@ int main(int argc, char **argv) { - unsigned int nr_process = 1; + long nr_process = 1; int route_sock = -1, ret = KSFT_SKIP; int test_desc_fd[2]; uint32_t route_seq; @@ -2284,7 +2284,7 @@ exit_usage(argv); } - if (nr_process > MAX_PROCESSES || !nr_process) { + if (nr_process > MAX_PROCESSES || nr_process < 1) { printk("nr_process should be between [1; %u]", MAX_PROCESSES); exit_usage(argv); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/net/mptcp/mptcp_connect.c +++ linux-riscv-6.5.0/tools/testing/selftests/net/mptcp/mptcp_connect.c @@ -18,6 +18,7 @@ #include #include +#include #include #include #include @@ -1125,15 +1126,11 @@ static void init_rng(void) { - int fd = open("/dev/urandom", O_RDONLY); unsigned int foo; - if (fd > 0) { - int ret = read(fd, &foo, sizeof(foo)); - - if (ret < 0) - srand(fd + foo); - close(fd); + if (getrandom(&foo, sizeof(foo), 0) == -1) { + perror("getrandom"); + exit(1); } srand(foo); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/net/mptcp/mptcp_inq.c +++ linux-riscv-6.5.0/tools/testing/selftests/net/mptcp/mptcp_inq.c @@ -18,6 +18,7 @@ #include #include +#include #include #include #include @@ -519,15 +520,11 @@ static void init_rng(void) { - int fd = open("/dev/urandom", O_RDONLY); unsigned int foo; - if (fd > 0) { - int ret = read(fd, &foo, sizeof(foo)); - - if (ret < 0) - srand(fd + foo); - close(fd); + if (getrandom(&foo, sizeof(foo), 0) == -1) { + perror("getrandom"); + exit(1); } srand(foo); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ linux-riscv-6.5.0/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -1383,7 +1383,9 @@ count=$(get_counter ${ns_tx} "MPTcpExtMPRstTx") if [ -z "$count" ]; then echo -n "[skip]" - elif [ $count -lt $rst_tx ]; then + # accept more rst than expected except if we don't expect any + elif { [ $rst_tx -ne 0 ] && [ $count -lt $rst_tx ]; } || + { [ $rst_tx -eq 0 ] && [ $count -ne 0 ]; }; then echo "[fail] got $count MP_RST[s] TX expected $rst_tx" fail_test else @@ -1394,7 +1396,9 @@ count=$(get_counter ${ns_rx} "MPTcpExtMPRstRx") if [ -z "$count" ]; then echo -n "[skip]" - elif [ "$count" -lt "$rst_rx" ]; then + # accept more rst than expected except if we don't expect any + elif { [ $rst_rx -ne 0 ] && [ $count -lt $rst_rx ]; } || + { [ $rst_rx -eq 0 ] && [ $count -ne 0 ]; }; then echo "[fail] got $count MP_RST[s] RX expected $rst_rx" fail_test else @@ -2282,6 +2286,7 @@ chk_join_nr 1 1 1 chk_rm_tx_nr 1 chk_rm_nr 1 1 + chk_rst_nr 0 0 fi # multiple subflows, remove @@ -2294,6 +2299,7 @@ run_tests $ns1 $ns2 10.0.1.1 slow chk_join_nr 2 2 2 chk_rm_nr 2 2 + chk_rst_nr 0 0 fi # single address, remove @@ -2306,6 +2312,7 @@ chk_join_nr 1 1 1 chk_add_nr 1 1 chk_rm_nr 1 1 invert + chk_rst_nr 0 0 fi # subflow and signal, remove @@ -2319,6 +2326,7 @@ chk_join_nr 2 2 2 chk_add_nr 1 1 chk_rm_nr 1 1 + chk_rst_nr 0 0 fi # subflows and signal, remove @@ -2333,6 +2341,7 @@ chk_join_nr 3 3 3 chk_add_nr 1 1 chk_rm_nr 2 2 + chk_rst_nr 0 0 fi # addresses remove @@ -2347,6 +2356,7 @@ chk_join_nr 3 3 3 chk_add_nr 3 3 chk_rm_nr 3 3 invert + chk_rst_nr 0 0 fi # invalid addresses remove @@ -2361,6 +2371,7 @@ chk_join_nr 1 1 1 chk_add_nr 3 3 chk_rm_nr 3 1 invert + chk_rst_nr 0 0 fi # subflows and signal, flush @@ -2375,6 +2386,7 @@ chk_join_nr 3 3 3 chk_add_nr 1 1 chk_rm_nr 1 3 invert simult + chk_rst_nr 0 0 fi # subflows flush @@ -2394,6 +2406,7 @@ else chk_rm_nr 3 3 fi + chk_rst_nr 0 0 fi # addresses flush @@ -2408,6 +2421,7 @@ chk_join_nr 3 3 3 chk_add_nr 3 3 chk_rm_nr 3 3 invert simult + chk_rst_nr 0 0 fi # invalid addresses flush @@ -2422,6 +2436,7 @@ chk_join_nr 1 1 1 chk_add_nr 3 3 chk_rm_nr 3 1 invert + chk_rst_nr 0 0 fi # remove id 0 subflow @@ -2433,6 +2448,7 @@ run_tests $ns1 $ns2 10.0.1.1 slow chk_join_nr 1 1 1 chk_rm_nr 1 1 + chk_rst_nr 0 0 fi # remove id 0 address @@ -2445,6 +2461,7 @@ chk_join_nr 1 1 1 chk_add_nr 1 1 chk_rm_nr 1 1 invert + chk_rst_nr 0 0 invert fi } @@ -3190,7 +3207,7 @@ if reset_check_counter "fastclose server test" "MPTcpExtMPFastcloseRx"; then test_linkfail=1024 addr_nr_ns2=fastclose_server \ run_tests $ns1 $ns2 10.0.1.1 - chk_join_nr 0 0 0 + chk_join_nr 0 0 0 0 0 0 1 chk_fclose_nr 1 1 invert chk_rst_nr 1 1 fi @@ -3242,6 +3259,7 @@ local addr=$1 local id=$2 local tk sp da dp + local cnt_addr cnt_sf tk=$(grep "type:1," "$evts_ns1" | sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q') @@ -3251,11 +3269,13 @@ sed -n 's/.*\(daddr6:\)\([0-9a-f:.]*\).*$/\2/p;q') dp=$(grep "type:10" "$evts_ns1" | sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q') + cnt_addr=$(rm_addr_count ${ns1}) + cnt_sf=$(rm_sf_count ${ns1}) ip netns exec $ns1 ./pm_nl_ctl rem token $tk id $id ip netns exec $ns1 ./pm_nl_ctl dsf lip "::ffff:$addr" \ lport $sp rip $da rport $dp token $tk - wait_rm_addr $ns1 1 - wait_rm_sf $ns1 1 + wait_rm_addr $ns1 "${cnt_addr}" + wait_rm_sf $ns1 "${cnt_sf}" } userspace_pm_add_sf() @@ -3277,17 +3297,20 @@ local addr=$1 local id=$2 local tk da dp sp + local cnt_addr cnt_sf tk=$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") da=$(sed -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$evts_ns2") dp=$(sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") sp=$(grep "type:10" "$evts_ns2" | sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') + cnt_addr=$(rm_addr_count ${ns2}) + cnt_sf=$(rm_sf_count ${ns2}) ip netns exec $ns2 ./pm_nl_ctl rem token $tk id $id ip netns exec $ns2 ./pm_nl_ctl dsf lip $addr lport $sp \ rip $da rport $dp token $tk - wait_rm_addr $ns2 1 - wait_rm_sf $ns2 1 + wait_rm_addr $ns2 "${cnt_addr}" + wait_rm_sf $ns2 "${cnt_sf}" } userspace_tests() only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/net/openvswitch/openvswitch.sh +++ linux-riscv-6.5.0/tools/testing/selftests/net/openvswitch/openvswitch.sh @@ -3,6 +3,8 @@ # # OVS kernel module self tests +trap ovs_exit_sig EXIT TERM INT ERR + # Kselftest framework requirement - SKIP code is 4. ksft_skip=4 @@ -202,7 +204,7 @@ fi if python3 ovs-dpctl.py -h 2>&1 | \ - grep "Need to install the python" >/dev/null 2>&1; then + grep -E "Need to (install|upgrade) the python" >/dev/null 2>&1; then stdbuf -o0 printf "TEST: %-60s [PYLIB]\n" "${tdesc}" return $ksft_skip fi only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/net/openvswitch/ovs-dpctl.py +++ linux-riscv-6.5.0/tools/testing/selftests/net/openvswitch/ovs-dpctl.py @@ -25,8 +25,10 @@ from pyroute2.netlink import nlmsg_atoms from pyroute2.netlink.exceptions import NetlinkError from pyroute2.netlink.generic import GenericNetlinkSocket + import pyroute2 + except ModuleNotFoundError: - print("Need to install the python pyroute2 package.") + print("Need to install the python pyroute2 package >= 0.6.") sys.exit(0) @@ -732,12 +734,14 @@ "src", lambda x: str(ipaddress.IPv4Address(x)), int, + convert_ipv4, ), ( "dst", "dst", - lambda x: str(ipaddress.IPv6Address(x)), + lambda x: str(ipaddress.IPv4Address(x)), int, + convert_ipv4, ), ("tp_src", "tp_src", "%d", int), ("tp_dst", "tp_dst", "%d", int), @@ -1457,6 +1461,12 @@ nlmsg_atoms.ovskey = ovskey nlmsg_atoms.ovsactions = ovsactions + # version check for pyroute2 + prverscheck = pyroute2.__version__.split(".") + if int(prverscheck[0]) == 0 and int(prverscheck[1]) < 6: + print("Need to upgrade the python pyroute2 package to >= 0.6.") + sys.exit(0) + parser = argparse.ArgumentParser() parser.add_argument( "-v", only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/net/pmtu.sh +++ linux-riscv-6.5.0/tools/testing/selftests/net/pmtu.sh @@ -2048,7 +2048,7 @@ case $ret in 0) all_skipped=false - [ $exitcode=$ksft_skip ] && exitcode=0 + [ $exitcode -eq $ksft_skip ] && exitcode=0 ;; $ksft_skip) [ $all_skipped = true ] && exitcode=$ksft_skip only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/netfilter/conntrack_sctp_collision.sh +++ linux-riscv-6.5.0/tools/testing/selftests/netfilter/conntrack_sctp_collision.sh @@ -0,0 +1,89 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 +# +# Testing For SCTP COLLISION SCENARIO as Below: +# +# 14:35:47.655279 IP CLIENT_IP.PORT > SERVER_IP.PORT: sctp (1) [INIT] [init tag: 2017837359] +# 14:35:48.353250 IP SERVER_IP.PORT > CLIENT_IP.PORT: sctp (1) [INIT] [init tag: 1187206187] +# 14:35:48.353275 IP CLIENT_IP.PORT > SERVER_IP.PORT: sctp (1) [INIT ACK] [init tag: 2017837359] +# 14:35:48.353283 IP SERVER_IP.PORT > CLIENT_IP.PORT: sctp (1) [COOKIE ECHO] +# 14:35:48.353977 IP CLIENT_IP.PORT > SERVER_IP.PORT: sctp (1) [COOKIE ACK] +# 14:35:48.855335 IP SERVER_IP.PORT > CLIENT_IP.PORT: sctp (1) [INIT ACK] [init tag: 164579970] +# +# TOPO: SERVER_NS (link0)<--->(link1) ROUTER_NS (link2)<--->(link3) CLIENT_NS + +CLIENT_NS=$(mktemp -u client-XXXXXXXX) +CLIENT_IP="198.51.200.1" +CLIENT_PORT=1234 + +SERVER_NS=$(mktemp -u server-XXXXXXXX) +SERVER_IP="198.51.100.1" +SERVER_PORT=1234 + +ROUTER_NS=$(mktemp -u router-XXXXXXXX) +CLIENT_GW="198.51.200.2" +SERVER_GW="198.51.100.2" + +# setup the topo +setup() { + ip net add $CLIENT_NS + ip net add $SERVER_NS + ip net add $ROUTER_NS + ip -n $SERVER_NS link add link0 type veth peer name link1 netns $ROUTER_NS + ip -n $CLIENT_NS link add link3 type veth peer name link2 netns $ROUTER_NS + + ip -n $SERVER_NS link set link0 up + ip -n $SERVER_NS addr add $SERVER_IP/24 dev link0 + ip -n $SERVER_NS route add $CLIENT_IP dev link0 via $SERVER_GW + + ip -n $ROUTER_NS link set link1 up + ip -n $ROUTER_NS link set link2 up + ip -n $ROUTER_NS addr add $SERVER_GW/24 dev link1 + ip -n $ROUTER_NS addr add $CLIENT_GW/24 dev link2 + ip net exec $ROUTER_NS sysctl -wq net.ipv4.ip_forward=1 + + ip -n $CLIENT_NS link set link3 up + ip -n $CLIENT_NS addr add $CLIENT_IP/24 dev link3 + ip -n $CLIENT_NS route add $SERVER_IP dev link3 via $CLIENT_GW + + # simulate the delay on OVS upcall by setting up a delay for INIT_ACK with + # tc on $SERVER_NS side + tc -n $SERVER_NS qdisc add dev link0 root handle 1: htb + tc -n $SERVER_NS class add dev link0 parent 1: classid 1:1 htb rate 100mbit + tc -n $SERVER_NS filter add dev link0 parent 1: protocol ip u32 match ip protocol 132 \ + 0xff match u8 2 0xff at 32 flowid 1:1 + tc -n $SERVER_NS qdisc add dev link0 parent 1:1 handle 10: netem delay 1200ms + + # simulate the ctstate check on OVS nf_conntrack + ip net exec $ROUTER_NS iptables -A FORWARD -m state --state INVALID,UNTRACKED -j DROP + ip net exec $ROUTER_NS iptables -A INPUT -p sctp -j DROP + + # use a smaller number for assoc's max_retrans to reproduce the issue + modprobe sctp + ip net exec $CLIENT_NS sysctl -wq net.sctp.association_max_retrans=3 +} + +cleanup() { + ip net exec $CLIENT_NS pkill sctp_collision 2>&1 >/dev/null + ip net exec $SERVER_NS pkill sctp_collision 2>&1 >/dev/null + ip net del "$CLIENT_NS" + ip net del "$SERVER_NS" + ip net del "$ROUTER_NS" +} + +do_test() { + ip net exec $SERVER_NS ./sctp_collision server \ + $SERVER_IP $SERVER_PORT $CLIENT_IP $CLIENT_PORT & + ip net exec $CLIENT_NS ./sctp_collision client \ + $CLIENT_IP $CLIENT_PORT $SERVER_IP $SERVER_PORT +} + +# NOTE: one way to work around the issue is set a smaller hb_interval +# ip net exec $CLIENT_NS sysctl -wq net.sctp.hb_interval=3500 + +# run the test case +trap cleanup EXIT +setup && \ +echo "Test for SCTP Collision in nf_conntrack:" && \ +do_test && echo "PASS!" +exit $? only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/netfilter/sctp_collision.c +++ linux-riscv-6.5.0/tools/testing/selftests/netfilter/sctp_collision.c @@ -0,0 +1,99 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include +#include +#include +#include +#include + +int main(int argc, char *argv[]) +{ + struct sockaddr_in saddr = {}, daddr = {}; + int sd, ret, len = sizeof(daddr); + struct timeval tv = {25, 0}; + char buf[] = "hello"; + + if (argc != 6 || (strcmp(argv[1], "server") && strcmp(argv[1], "client"))) { + printf("%s \n", + argv[0]); + return -1; + } + + sd = socket(AF_INET, SOCK_SEQPACKET, IPPROTO_SCTP); + if (sd < 0) { + printf("Failed to create sd\n"); + return -1; + } + + saddr.sin_family = AF_INET; + saddr.sin_addr.s_addr = inet_addr(argv[2]); + saddr.sin_port = htons(atoi(argv[3])); + + ret = bind(sd, (struct sockaddr *)&saddr, sizeof(saddr)); + if (ret < 0) { + printf("Failed to bind to address\n"); + goto out; + } + + ret = listen(sd, 5); + if (ret < 0) { + printf("Failed to listen on port\n"); + goto out; + } + + daddr.sin_family = AF_INET; + daddr.sin_addr.s_addr = inet_addr(argv[4]); + daddr.sin_port = htons(atoi(argv[5])); + + /* make test shorter than 25s */ + ret = setsockopt(sd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)); + if (ret < 0) { + printf("Failed to setsockopt SO_RCVTIMEO\n"); + goto out; + } + + if (!strcmp(argv[1], "server")) { + sleep(1); /* wait a bit for client's INIT */ + ret = connect(sd, (struct sockaddr *)&daddr, len); + if (ret < 0) { + printf("Failed to connect to peer\n"); + goto out; + } + ret = recvfrom(sd, buf, sizeof(buf), 0, (struct sockaddr *)&daddr, &len); + if (ret < 0) { + printf("Failed to recv msg %d\n", ret); + goto out; + } + ret = sendto(sd, buf, strlen(buf) + 1, 0, (struct sockaddr *)&daddr, len); + if (ret < 0) { + printf("Failed to send msg %d\n", ret); + goto out; + } + printf("Server: sent! %d\n", ret); + } + + if (!strcmp(argv[1], "client")) { + usleep(300000); /* wait a bit for server's listening */ + ret = connect(sd, (struct sockaddr *)&daddr, len); + if (ret < 0) { + printf("Failed to connect to peer\n"); + goto out; + } + sleep(1); /* wait a bit for server's delayed INIT_ACK to reproduce the issue */ + ret = sendto(sd, buf, strlen(buf) + 1, 0, (struct sockaddr *)&daddr, len); + if (ret < 0) { + printf("Failed to send msg %d\n", ret); + goto out; + } + ret = recvfrom(sd, buf, sizeof(buf), 0, (struct sockaddr *)&daddr, &len); + if (ret < 0) { + printf("Failed to recv msg %d\n", ret); + goto out; + } + printf("Client: rcvd! %d\n", ret); + } + ret = 0; +out: + close(sd); + return ret; +} only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/netfilter/xt_string.sh +++ linux-riscv-6.5.0/tools/testing/selftests/netfilter/xt_string.sh @@ -0,0 +1,128 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +# return code to signal skipped test +ksft_skip=4 +rc=0 + +if ! iptables --version >/dev/null 2>&1; then + echo "SKIP: Test needs iptables" + exit $ksft_skip +fi +if ! ip -V >/dev/null 2>&1; then + echo "SKIP: Test needs iproute2" + exit $ksft_skip +fi +if ! nc -h >/dev/null 2>&1; then + echo "SKIP: Test needs netcat" + exit $ksft_skip +fi + +pattern="foo bar baz" +patlen=11 +hdrlen=$((20 + 8)) # IPv4 + UDP +ns="ns-$(mktemp -u XXXXXXXX)" +trap 'ip netns del $ns' EXIT +ip netns add "$ns" +ip -net "$ns" link add d0 type dummy +ip -net "$ns" link set d0 up +ip -net "$ns" addr add 10.1.2.1/24 dev d0 + +#ip netns exec "$ns" tcpdump -npXi d0 & +#tcpdump_pid=$! +#trap 'kill $tcpdump_pid; ip netns del $ns' EXIT + +add_rule() { # (alg, from, to) + ip netns exec "$ns" \ + iptables -A OUTPUT -o d0 -m string \ + --string "$pattern" --algo $1 --from $2 --to $3 +} +showrules() { # () + ip netns exec "$ns" iptables -v -S OUTPUT | grep '^-A' +} +zerorules() { + ip netns exec "$ns" iptables -Z OUTPUT +} +countrule() { # (pattern) + showrules | grep -c -- "$*" +} +send() { # (offset) + ( for ((i = 0; i < $1 - $hdrlen; i++)); do + printf " " + done + printf "$pattern" + ) | ip netns exec "$ns" nc -w 1 -u 10.1.2.2 27374 +} + +add_rule bm 1000 1500 +add_rule bm 1400 1600 +add_rule kmp 1000 1500 +add_rule kmp 1400 1600 + +zerorules +send 0 +send $((1000 - $patlen)) +if [ $(countrule -c 0 0) -ne 4 ]; then + echo "FAIL: rules match data before --from" + showrules + ((rc--)) +fi + +zerorules +send 1000 +send $((1400 - $patlen)) +if [ $(countrule -c 2) -ne 2 ]; then + echo "FAIL: only two rules should match at low offset" + showrules + ((rc--)) +fi + +zerorules +send $((1500 - $patlen)) +if [ $(countrule -c 1) -ne 4 ]; then + echo "FAIL: all rules should match at end of packet" + showrules + ((rc--)) +fi + +zerorules +send 1495 +if [ $(countrule -c 1) -ne 1 ]; then + echo "FAIL: only kmp with proper --to should match pattern spanning fragments" + showrules + ((rc--)) +fi + +zerorules +send 1500 +if [ $(countrule -c 1) -ne 2 ]; then + echo "FAIL: two rules should match pattern at start of second fragment" + showrules + ((rc--)) +fi + +zerorules +send $((1600 - $patlen)) +if [ $(countrule -c 1) -ne 2 ]; then + echo "FAIL: two rules should match pattern at end of largest --to" + showrules + ((rc--)) +fi + +zerorules +send $((1600 - $patlen + 1)) +if [ $(countrule -c 1) -ne 0 ]; then + echo "FAIL: no rules should match pattern extending largest --to" + showrules + ((rc--)) +fi + +zerorules +send 1600 +if [ $(countrule -c 1) -ne 0 ]; then + echo "FAIL: no rule should match pattern past largest --to" + showrules + ((rc--)) +fi + +exit $rc only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/pidfd/pidfd_fdinfo_test.c +++ linux-riscv-6.5.0/tools/testing/selftests/pidfd/pidfd_fdinfo_test.c @@ -62,7 +62,7 @@ break; case PIDFD_PASS: - ksft_test_result_pass("%s test: Passed\n"); + ksft_test_result_pass("%s test: Passed\n", test_name); break; default: only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/pidfd/pidfd_test.c +++ linux-riscv-6.5.0/tools/testing/selftests/pidfd/pidfd_test.c @@ -381,13 +381,13 @@ static void *test_pidfd_poll_exec_thread(void *priv) { - ksft_print_msg("Child Thread: starting. pid %d tid %d ; and sleeping\n", + ksft_print_msg("Child Thread: starting. pid %d tid %ld ; and sleeping\n", getpid(), syscall(SYS_gettid)); ksft_print_msg("Child Thread: doing exec of sleep\n"); execl("/bin/sleep", "sleep", str(CHILD_THREAD_MIN_WAIT), (char *)NULL); - ksft_print_msg("Child Thread: DONE. pid %d tid %d\n", + ksft_print_msg("Child Thread: DONE. pid %d tid %ld\n", getpid(), syscall(SYS_gettid)); return NULL; } @@ -427,7 +427,7 @@ { pthread_t t1; - ksft_print_msg("Child (pidfd): starting. pid %d tid %d\n", getpid(), + ksft_print_msg("Child (pidfd): starting. pid %d tid %ld\n", getpid(), syscall(SYS_gettid)); pthread_create(&t1, NULL, test_pidfd_poll_exec_thread, NULL); /* @@ -480,10 +480,10 @@ static void *test_pidfd_poll_leader_exit_thread(void *priv) { - ksft_print_msg("Child Thread: starting. pid %d tid %d ; and sleeping\n", + ksft_print_msg("Child Thread: starting. pid %d tid %ld ; and sleeping\n", getpid(), syscall(SYS_gettid)); sleep(CHILD_THREAD_MIN_WAIT); - ksft_print_msg("Child Thread: DONE. pid %d tid %d\n", getpid(), syscall(SYS_gettid)); + ksft_print_msg("Child Thread: DONE. pid %d tid %ld\n", getpid(), syscall(SYS_gettid)); return NULL; } @@ -492,7 +492,7 @@ { pthread_t t1, t2; - ksft_print_msg("Child: starting. pid %d tid %d\n", getpid(), syscall(SYS_gettid)); + ksft_print_msg("Child: starting. pid %d tid %ld\n", getpid(), syscall(SYS_gettid)); pthread_create(&t1, NULL, test_pidfd_poll_leader_exit_thread, NULL); pthread_create(&t2, NULL, test_pidfd_poll_leader_exit_thread, NULL); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/resctrl/cmt_test.c +++ linux-riscv-6.5.0/tools/testing/selftests/resctrl/cmt_test.c @@ -90,9 +90,6 @@ if (ret) return ret; - if (!validate_resctrl_feature_request(CMT_STR)) - return -1; - ret = get_cbm_mask("L3", cbm_mask); if (ret) return ret; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/resctrl/mba_test.c +++ linux-riscv-6.5.0/tools/testing/selftests/resctrl/mba_test.c @@ -12,7 +12,7 @@ #define RESULT_FILE_NAME "result_mba" #define NUM_OF_RUNS 5 -#define MAX_DIFF_PERCENT 5 +#define MAX_DIFF_PERCENT 8 #define ALLOCATION_MAX 100 #define ALLOCATION_MIN 10 #define ALLOCATION_STEP 10 only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/resctrl/mbm_test.c +++ linux-riscv-6.5.0/tools/testing/selftests/resctrl/mbm_test.c @@ -11,7 +11,7 @@ #include "resctrl.h" #define RESULT_FILE_NAME "result_mbm" -#define MAX_DIFF_PERCENT 5 +#define MAX_DIFF_PERCENT 8 #define NUM_OF_RUNS 5 static int only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/resctrl/resctrl_tests.c +++ linux-riscv-6.5.0/tools/testing/selftests/resctrl/resctrl_tests.c @@ -224,9 +224,14 @@ return ksft_exit_skip("Not running as root. Skipping...\n"); if (has_ben) { + if (argc - ben_ind >= BENCHMARK_ARGS) + ksft_exit_fail_msg("Too long benchmark command.\n"); + /* Extract benchmark command from command line. */ for (i = ben_ind; i < argc; i++) { benchmark_cmd[i - ben_ind] = benchmark_cmd_area[i]; + if (strlen(argv[i]) >= BENCHMARK_ARG_SIZE) + ksft_exit_fail_msg("Too long benchmark command argument.\n"); sprintf(benchmark_cmd[i - ben_ind], "%s", argv[i]); } benchmark_cmd[ben_count] = NULL; only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/resctrl/resctrl_val.c +++ linux-riscv-6.5.0/tools/testing/selftests/resctrl/resctrl_val.c @@ -482,7 +482,7 @@ */ int signal_handler_register(void) { - struct sigaction sigact; + struct sigaction sigact = {}; int ret = 0; sigact.sa_sigaction = ctrlc_handler; @@ -504,7 +504,7 @@ */ void signal_handler_unregister(void) { - struct sigaction sigact; + struct sigaction sigact = {}; sigact.sa_handler = SIG_DFL; sigemptyset(&sigact.sa_mask); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/selftests/x86/lam.c +++ linux-riscv-6.5.0/tools/testing/selftests/x86/lam.c @@ -573,7 +573,7 @@ char path[PATH_MAX] = {0}; /* get current process path */ - if (readlink("/proc/self/exe", path, PATH_MAX) <= 0) + if (readlink("/proc/self/exe", path, PATH_MAX - 1) <= 0) return 1; int file_fd = open(path, O_RDONLY); @@ -680,14 +680,14 @@ perror("Fork failed."); ret = 1; } else if (pid == 0) { - char path[PATH_MAX]; + char path[PATH_MAX] = {0}; /* Set LAM mode in parent process */ if (set_lam(lam) != 0) return 1; /* Get current binary's path and the binary was run by execve */ - if (readlink("/proc/self/exe", path, PATH_MAX) <= 0) + if (readlink("/proc/self/exe", path, PATH_MAX - 1) <= 0) exit(-1); /* run binary to get LAM mode and return to parent process */ only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/testing/vsock/vsock_test.c +++ linux-riscv-6.5.0/tools/testing/vsock/vsock_test.c @@ -285,11 +285,12 @@ } #define SOCK_BUF_SIZE (2 * 1024 * 1024) -#define MAX_MSG_SIZE (32 * 1024) +#define MAX_MSG_PAGES 4 static void test_seqpacket_msg_bounds_client(const struct test_opts *opts) { unsigned long curr_hash; + size_t max_msg_size; int page_size; int msg_count; int fd; @@ -305,7 +306,8 @@ curr_hash = 0; page_size = getpagesize(); - msg_count = SOCK_BUF_SIZE / MAX_MSG_SIZE; + max_msg_size = MAX_MSG_PAGES * page_size; + msg_count = SOCK_BUF_SIZE / max_msg_size; for (int i = 0; i < msg_count; i++) { ssize_t send_size; @@ -316,7 +318,7 @@ /* Use "small" buffers and "big" buffers. */ if (i & 1) buf_size = page_size + - (rand() % (MAX_MSG_SIZE - page_size)); + (rand() % (max_msg_size - page_size)); else buf_size = 1 + (rand() % page_size); @@ -372,7 +374,6 @@ unsigned long remote_hash; unsigned long curr_hash; int fd; - char buf[MAX_MSG_SIZE]; struct msghdr msg = {0}; struct iovec iov = {0}; @@ -400,8 +401,13 @@ control_writeln("SRVREADY"); /* Wait, until peer sends whole data. */ control_expectln("SENDDONE"); - iov.iov_base = buf; - iov.iov_len = sizeof(buf); + iov.iov_len = MAX_MSG_PAGES * getpagesize(); + iov.iov_base = malloc(iov.iov_len); + if (!iov.iov_base) { + perror("malloc"); + exit(EXIT_FAILURE); + } + msg.msg_iov = &iov; msg.msg_iovlen = 1; @@ -426,6 +432,7 @@ curr_hash += hash_djb2(msg.msg_iov[0].iov_base, recv_size); } + free(iov.iov_base); close(fd); remote_hash = control_readulong(); only in patch2: unchanged: --- linux-riscv-6.5.0.orig/tools/tracing/rtla/src/utils.c +++ linux-riscv-6.5.0/tools/tracing/rtla/src/utils.c @@ -538,7 +538,7 @@ { char mount_point[MAX_PATH]; char type[100]; - int found; + int found = 0; FILE *fp; fp = fopen("/proc/mounts", "r");